diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..49ce8e3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+/.java_bin
+/.java_src
+/.jgit_version
+/.protobuf_version
+/config.mak
+/release
+/test
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/DEPLOY_GAE b/DEPLOY_GAE
new file mode 100644
index 0000000..4dea8b3
--- /dev/null
+++ b/DEPLOY_GAE
@@ -0,0 +1,90 @@
+Deploying Gerrit to Google App Engine
+=====================================
+
+To deploy Gerrit to a new (or an upgrade for an existing) Google
+App Engine instance:
+
+----
+	make update APPID=your-application-id ADMIN=your@email
+----
+
+where "your-application-id" is the unique application id you chose
+for the application instance at the time you registered it with
+Google App Engine;
+
+and where "your@email" is a Google Account username that is
+registered as a developer/administrator of the Google App Engine
+instance identified by $APPID.
+
+
+Saving Configuration
+--------------------
+
+If you are frequently deploying via the same user account or to the
+same instance you may want to save your configuration options into
+a local config.mak file:
+
+----
+	$ cat config.mak
+	ADMIN = your@email
+	APPID = your-application
+----
+
+as these parameters can then be left off of the make update
+command line:
+
+----
+	make update
+----
+
+
+Admin Only Lockout
+------------------
+
+When updating a Google App Engine instance Gerrit can be configured
+to only permit admin logins.  This may be useful when setting up
+a testing/development environment, where external users are not
+desired yet.
+
+Simply set ADMIN_ONLY=1 when running the build:
+
+----
+	make update ADMIN_ONLY=1 [other options...]
+----
+
+You may wish to have this configured in your config.mak file:
+
+----
+	$ cat config.mak
+	ifeq ($(APPID),your-private-id)
+		ADMIN_ONLY=1
+	endif
+----
+
+This way the lockout is automatically enabled when you run a build.
+
+To disable the lockout, run "make update" without ADMIN_ONLY set
+(e.g. delete or comment it out from your config.mak file).
+
+
+
+Special Options
+---------------
+
+When deploying to an internal Google App Engine instance you may
+need to set APPCFG_OPTS to point to the internal admin console.
+This is best configured in your config.mak file:
+
+----
+	$ cat config.mak
+	ADMIN = you@google.com
+	APPID = your-application
+
+	ifeq ($(APPID),internal-app-id)
+		APPCFG_OPTS = -s admin-console.some.internal.host.name
+	endif
+----
+
+As a Googler you will need to search the intranet to locate the
+correct hostname for the internal admin-console, or ask someone who
+is involved with Gerrit or the Google App Engine team for the name.
diff --git a/DEPLOY_MGR b/DEPLOY_MGR
new file mode 100644
index 0000000..ff330ac
--- /dev/null
+++ b/DEPLOY_MGR
@@ -0,0 +1,182 @@
+Deploying Gerrit's Manager Backend
+==================================
+
+The manager backend is a Java process that performs batch operations
+on local Git repositories, based on the metadata recorded into the
+Gerrit instance running on Google App Engine.
+
+To deploy the backend:
+
+----
+	$ make release-mgr
+	$ scp -r release/mgr you@some.server:mgr
+---
+
+
+Running
+-------
+
+To start the backend server process:
+
+----
+	$ ./bin/mgr mgr.config &
+----
+
+where mgr.config is the backend's configuration file (see below
+for details on its format and options).
+
+To stop the backend, send it a SIGINT:
+
+----
+	kill -INT $mgrpid
+----
+
+
+Creating Gerrit Projects and Branches
+-------------------------------------
+
+To create new projects/branches in Gerrit to match those available
+locally in Git run the mgr in the foreground with its sync option:
+
+----
+	$ ./bin/mgr mgr.config sync
+----
+
+The sync subcommand will create a new Gerrit project for any new
+Git repository found under codereview.basedir.  It also creates
+a new branch in Gerrit for any branch in any new or existing Git
+repository.
+
+
+
+Manager Configuration
+---------------------
+
+The manager backend requires a configuration file to designate
+which Git repositories it will have access to, and which Gerrit
+instance it communicates with.
+
+The configuration file is in `git config` format and can thus be
+automatically read/updated via `git config --file=<name>`.  It can
+also be hand-modified.  For more details on the file format, see
+`man git-config`.
+
+----
+	$ cat mgr.config
+	[user]
+	  name = Gerrit Code Review
+	  email = gerrit@localhost
+
+	[codereview]
+	  server = http://androidreview.appspot.com/
+	  basedir = /pub/scm/git
+	  username = role-account@gmail.com
+	  secureconfig = .secure-mgr-config
+	  sleep = 60
+
+	[log]
+	  file = mgr.log
+	  level = debug
+----
+
+A description of the major options follows:
+
+user.name::
+	Author/committer name Gerrit records when creating an
+	automatic merge commit.
+
+user.email::
+	Author/committer email Gerrit records when creating an
+	automatic merge commit.
+
+codereview.server::
+	URL of the Gerrit Google App Engine instance providing
+	database support and web user interface to the code review
+	system.  Presently only HTTP is supported.  Future releases
+	of Gerrit may support HTTPS, if/when Google App Engine ever
+	supports HTTPS.
+
+codereview.basedir::
+	Root directory that all Git repositories are relative to.
+	Repositories in this directory should be bare repositories.
+	The name of a project in Gerrit is appended to this directory
+	to determine the path of the corresponding Git repository
+	where change branches are stored and merges take place.
+
+codereview.username::
+	(Optional) Google Account username to authenticate to
+	codereview.server with.  This option is only required if the
+	Gerrit instance has been set to ADMIN_ONLY=1.  (Normally the
+	manager backend uses a more secure authentication strategy.)
+	If set, make sure codereview.password is also in the secure
+	configuration file.
+
+codereview.secureconfig::
+	Path to the secure configuration file (see below).
+	A relative path is evaluated relative to the main
+	configuration file.
+
+codereview.sleep::
+	Number of seconds between queries when Gerrit says there
+	is nothing waiting to be processed.  This is the maximum
+	latency between when an upload or merge request is first
+	stored in the data store and when the backend can process it.
+
+codereview.memory::
+	Maximum amount of Java heap memory to give to the manager
+	process.  Valid values are in bytes, with standard "m" and
+	"g" suffixes for "megabytes" and "gigabytes".  E.g. "256m"
+	would assign up to 256 megabytes of memory to the manager.
+
+log.file::
+	Path to the log file the server writes messages to.  If not
+	set messages are sent to stdout.
+
+log.level::
+	Set the verbosity of the logging.  Supported values are:
+	fatal, error, warning, info, debug, trace.  Later levels
+	include all messages from all earlier levels.
+
+
+Secure Configuration File
+-------------------------
+
+The secure configuration file stores additional details which
+should never be made public.  This file should be protected with
+filesystem level access controls, e.g. "chmod 0600" on UNIX prior
+to writing any information into it.
+
+----
+	$ cat .secure-mgr-config
+	[codereview]
+	  password = g3rr1t1sc001
+	  internalapikey = somebiglongkeystring
+----
+
+codereview.password::
+	(Optional) Password matching the Google Account listed
+	in codereview.username in the main configuration file.
+	This value is only required if the Gerrit instance is in
+	ADMIN_ONLY=1 mode and thus needs the backend to authenticate
+	with a Google Account.
+
+codereview.internalapikey::
+	The private key used for HMAC authentication between the
+	manager backend and the Gerrit instance running on Google
+	App Engine.  Any application developer/administrator can
+	get this key from http://APPID.appspot.com/admin/settings
+
+
+Parallel Operation Concerns
+---------------------------
+
+The backend uses aggressive caching, and is not yet fully safe to
+run concurrently with command line Git operations such as `git gc`,
+`git repack` or `git pack-refs`.
+
+Until the backend has been fully patched to support concurrent
+operations, do not run Git operations in repositories under
+codereview.basedir while a backend is running on that directory.
+
+In order to repack safely, stop the backend, run the repack activity,
+then start it back up again.
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
new file mode 100755
index 0000000..684610c
--- /dev/null
+++ b/GIT-VERSION-GEN
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+VN=$(git describe --abbrev=8 HEAD 2>/dev/null)
+case "$VN" in
+v[0-9]*) : happy ;;
+*)       exit 1  ;;
+esac
+
+dirty=$(sh -c 'git diff-index --name-only HEAD' 2>/dev/null) || dirty=
+case "$dirty" in
+'')
+	;;
+*)
+	VN="$VN-dirty" ;;
+esac
+
+echo $VN
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b52d80d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,401 @@
+# Gerrit
+#
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+# Define DATASTORE to the location where 'make serve' should store its
+# runtime data files; by default this is /tmp/dev_appserver.datastore.
+#
+# Define REMOTE=1 to enable remote hosts to connect to the development
+# web server started by 'make serve'.  This may be a security risk.
+#
+# Define EMAIL=1 to enable sending email messages during 'make serve'.
+# This may spam invalid addresses, so it is off by default.
+#
+# Define APPID to the unique Google App Engine application instance
+# 'make update' will upload the application files to.
+#
+# Define SDK to the location of the Google App Engine SDK download.
+#
+# Define PYSDK to the location of a 'python2.5' interpreter.
+#
+# Define ADMIN_ONLY to lock the release application build to only
+# its Google App Engine administrative accounts.
+#
+# Define ADMIN to the email address of an admin account that can
+# run appcfg.py to update the code.  This parameter is only used
+# by the administrative targets.
+#
+
+ifeq ($(shell uname),Darwin)
+	SDK = /usr/local/bin
+else
+	SDK = $(HOME)/google_appengine
+endif
+
+APPID         = gerrit-code-review-tool-demo
+APPNAME_HTML  = <i>Gerrit</i> Code Review Tool
+
+ADMIN         = set.ADMIN@read.the.docs
+PYSDK         = python2.5
+JAVAC         = javac -target 1.5
+CPIO          = cpio -pd
+DEV_APPSERVER = $(PYSDK) $(SDK)/dev_appserver.py
+APPCFG        = $(PYSDK) $(SDK)/appcfg.py $(APPCFG_OPTS) -e '$(ADMIN)'
+
+-include config.mak
+
+ifeq ($(APPID),android-codereview)
+APPNAME_HTML  = Android Code Review
+endif
+
+protobuf := ../protobuf
+PROTOC   := $(abspath $(protobuf)/src/protoc)
+jgit     := ../jgit
+MGR_APP  := mgrapp
+WEB_APP  := webapp
+WEB_ARG  :=
+
+ifdef DATASTORE
+	WEB_ARG += --datastore_path=$(DATASTORE)
+endif
+ifeq (1,$(REMOTE))
+	WEB_ARG += --address 0.0.0.0
+endif
+ifeq (1,$(EMAIL))
+	WEB_ARG += --enable_sendmail
+endif
+
+R_WEB      := release/web
+R_MGR      := release/mgr
+R_PYCLIENT := release/pyclient
+
+PYZIP_IGNORE := $(strip \
+	.gitignore \
+	.gitattributes \
+	\*.pyc \
+	\*.pyo \
+)
+django_IGNORE := $(strip \
+	.svn \
+	gis \
+	admin \
+	localflavor \
+	mysql \
+	mysql_old \
+	oracle \
+	postgresql \
+	postgresql_psycopg2 \
+	sqlite3 \
+	test \
+	\*.po \
+	\*.mo \
+)
+
+WEB_INCLUDE := $(strip \
+	__init__.py \
+	app.yaml \
+	index.yaml \
+	main.py \
+	settings.py \
+	static \
+	templates \
+)
+WEB_HASH := $(strip $(patsubst $(WEB_APP)/%,%,\
+	$(wildcard $(WEB_APP)/static/*.js) \
+	$(wildcard $(WEB_APP)/static/*.css) \
+))
+WEB_PYZIP := $(strip \
+	codereview \
+	django \
+	froofle \
+)
+PYCLIENT_INCLUDE := $(strip \
+	froofle \
+	codereview/__init__.py \
+	codereview/proto_client.py \
+	codereview/*_pb2.py \
+)
+
+PROTO_SRC            := proto
+PUBLIC_PROTO         := $(wildcard $(PROTO_SRC)/*.proto)
+INTERNAL_PROTO       := $(wildcard $(PROTO_SRC)/internal/*.proto)
+
+jgit_jar               := $(MGR_APP)/lib/jgit.jar
+jsch_jar               := $(MGR_APP)/lib/jsch.jar
+protobuf_jar           := $(MGR_APP)/lib/protobuf.jar
+protobuf_jar_src       := $(protobuf)/java/src/main/java
+codereview_proto_jar   := $(MGR_APP)/lib/codereview_proto.jar
+codereview_manager_jar := $(MGR_APP)/lib/codereview_manager.jar
+
+ALL_PROTO := $(strip \
+	$(PUBLIC_PROTO) \
+	$(INTERNAL_PROTO) \
+)
+
+MGR_LIB := $(strip \
+	$(jsch_jar) \
+	$(jgit_jar) \
+	$(wildcard $(MGR_APP)/lib/*.jar) \
+	$(protobuf_jar) \
+	$(codereview_proto_jar) \
+)
+MGR_LIB := $(sort $(MGR_LIB))
+MGR_LIB := $(filter-out $(codereview_manager_jar),$(MGR_LIB))
+
+GEN_JAR := $(strip \
+	$(jsch_jar) \
+	$(jgit_jar) \
+	$(protobuf_jar) \
+	$(codereview_proto_jar) \
+	$(codereview_manager_jar) \
+	\
+	$(basename $(jsch_jar))_src.zip \
+	$(basename $(jgit_jar))_src.zip \
+)
+
+PROTO_PY := $(patsubst $(PROTO_SRC)/%,$(WEB_APP)/codereview/%,\
+            $(patsubst %.proto,%_pb2.py,$(ALL_PROTO))) \
+            $(WEB_APP)/froofle/__init__.py
+
+
+## Top level targets
+##
+
+all: web mgr
+release: release-web release-mgr release-pyclient
+
+clean:
+	@rm -rf release .java_src .java_bin .proto_out
+	@rm -f .jgit_version .protobuf_version
+	@rm -f $(protobuf_jar_src)/com/google/protobuf/DescriptorProtos.java
+	@rm -f $(GEN_JAR)
+	@rm -rf $(WEB_APP)/froofle $(WEB_APP)/froofle+
+	@find $(WEB_APP)/codereview -name '*.pyc' | xargs rm -f
+	@find $(WEB_APP)/codereview -name '*_pb2.py' | xargs rm -f
+
+
+## Web application
+##
+
+web: $(PROTO_PY)
+
+serve: web
+	$(DEV_APPSERVER) $(WEB_ARG) $(WEB_APP)
+
+release-web: web
+	@echo Building Gerrit `./GIT-VERSION-GEN` for $(APPID):
+	@rm -rf $(R_WEB)
+	@mkdir -p $(R_WEB)
+	@cd $(WEB_APP) && \
+	 $(foreach a,$(WEB_PYZIP),\
+	   echo "  Packing $a.zip" && \
+	   find $a \
+	    $(foreach i,$(PYZIP_IGNORE), -name $i -prune -o) \
+	    $(foreach i,$(value $(a)_IGNORE), -name $i -prune -o) \
+	    -type f -print | \
+	   zip -q9 $(abspath $(R_WEB)/$a.zip) -@ &&) \
+	 echo "  Copying loose files" && \
+	 find $(WEB_INCLUDE) \
+	  $(foreach i,$(WEB_HASH), -path $i -prune -o) \
+	  -type f -print | $(CPIO) $(abspath $(R_WEB)) && \
+	 echo "  Hashing loose files" && \
+	 $(foreach i,$(WEB_HASH),\
+	   h=$$(openssl sha1 <$i) && \
+	   d=$(basename $i)-$$h$(suffix $i) && \
+	   echo "    $$d" && \
+	   cp $i $(abspath $(R_WEB))/$$d && \
+	   find $(abspath $(R_WEB)/templates) -type f \
+	   | xargs perl -pi -e "s,$i,$$d,g" && ) \
+	 true
+	@./GIT-VERSION-GEN >$(R_WEB)/static/application_version
+	@echo "This is Gerrit `./GIT-VERSION-GEN`" >$(R_WEB)/templates/live_revision.html
+	@perl -pi -e 's{PUBLIC APPLICATION NAME}{$(APPNAME_HTML)}' $(R_WEB)/templates/base.html
+	@perl -pi -e 's/(application:).*/$$1 $(APPID)/' $(R_WEB)/app.yaml
+ifdef ADMIN_ONLY
+	@echo '*** SETTING ADMIN_ONLY ***'
+	@perl -pi -e 's/^(.*)(script:.*main.py)/$$1login: admin\n$$1$$2/' $(R_WEB)/app.yaml
+endif
+	@echo $(R_WEB) built for $(APPID).
+
+update: release-web
+	$(APPCFG) update $(R_WEB)
+
+version:
+	@printf '%s = ' '$(APPID)'
+	@curl http://$(APPID).appspot.com/application_version
+
+## Python RPC client
+##
+
+release-pyclient: $(PROTO_PY)
+	@echo Building Python RPC client $(R_PYCLIENT)
+	@rm -rf $(R_PYCLIENT)
+	@mkdir -p $(R_PYCLIENT)
+	@cd $(WEB_APP) && \
+	 find $(PYCLIENT_INCLUDE) \
+	   $(foreach i,$(PYZIP_IGNORE), -name $i -prune -o) \
+	   -type f -print \
+	 | $(CPIO) $(abspath $(R_PYCLIENT))
+	@echo "__version__ = '`./GIT-VERSION-GEN`'" >>$(R_PYCLIENT)/codereview/__init__.py
+
+
+## Manager backend
+##
+
+mgr: $(codereview_manager_jar)
+
+release-mgr: mgr
+	@rm -rf $(R_MGR)
+	@mkdir -p $(R_MGR)
+	@cd $(MGR_APP) && \
+	 find bin \
+	  $(foreach i,.gitignore .gitattributes, -name $i -prune -o) \
+	  -type f -print \
+	 | $(CPIO) $(abspath $(R_MGR)) && \
+	 find lib -name \*.jar -type f -print \
+	 | $(CPIO) $(abspath $(R_MGR))
+	@echo $(R_MGR) built for `./GIT-VERSION-GEN`
+
+
+## Basic productions
+##
+
+$(PROTOC): .protobuf_version $(protobuf)/Makefile
+	$(MAKE) -C $(protobuf)
+	@touch $(PROTOC)
+$(protobuf)/configure: $(protobuf)/configure.ac .protobuf_version
+	cd $(protobuf) && ./autogen.sh
+$(protobuf)/Makefile: $(protobuf)/configure .protobuf_version
+	cd $(protobuf) && ./configure
+
+$(WEB_APP)/froofle/__init__.py: .protobuf_version $(PROTOC)
+	@echo Updating $(WEB_APP)/froofle ...
+	@rm -rf $(WEB_APP)/froofle $(WEB_APP)/froofle+
+	@mkdir $(WEB_APP)/froofle+
+	@cd $(protobuf)/python/google && \
+	 find . \
+	 $(foreach i,test_util.py \*_test.py, -name $i -prune -o) \
+	 -type f -name \*.py -print \
+	 | $(CPIO) $(abspath $(WEB_APP)/froofle+)
+	@cd $(protobuf)/python && \
+	 t=$(abspath .proto_out) && \
+	 rm -rf $$t && \
+	 mkdir -p $$t/google/protobuf && \
+	 $(PROTOC) -I../src -I. \
+	           --python_out=$$t \
+	           ../src/google/protobuf/descriptor.proto
+	@cp .proto_out/google/protobuf/descriptor_pb2.py \
+	    $(WEB_APP)/froofle+/protobuf
+	@rm -rf .proto_out
+	@find $(WEB_APP)/froofle+ -name __init__.py | xargs perl -ni -e ''
+	@find $(WEB_APP)/froofle+ -name '*.py' | xargs chmod a-x
+	@find $(WEB_APP)/froofle+ -name '*.py' \
+	 | xargs perl -pi -e 's/google(?!\.com)/froofle/g'
+	@mv $(WEB_APP)/froofle+ $(WEB_APP)/froofle
+
+$(WEB_APP)/codereview/%_pb2.py: $(PROTO_SRC)/%.proto $(PROTOC)
+	@echo protoc $< && \
+	 $(PROTOC) --python_out=$(dir $@) --proto_path=$(dir $<) $< && \
+	 perl -pi -e 's/google(?!\.com)/froofle/g' $@
+
+$(codereview_manager_jar): \
+		$(MGR_LIB) \
+		$(shell find $(MGR_APP)/src -type f)
+	@echo build $@
+	@rm -rf .java_bin && \
+	 b=$(abspath .java_bin) && \
+	 cd $(MGR_APP)/src && \
+	 mkdir $$b && \
+	 mkdir $$b/META-INF && \
+	 find META-INF/MANIFEST.MF | $(CPIO) $$b && \
+	 CLASSPATH=$$b && \
+	 $(foreach c,$(MGR_LIB),CLASSPATH=$$CLASSPATH:$(abspath $c) &&) \
+	 export CLASSPATH && \
+	 find . -name \*.java | xargs $(JAVAC) \
+		-encoding UTF-8 \
+		-g \
+		-d $$b
+	@cd .java_bin && jar cf $(abspath $@) .
+	@rm -rf .java_bin
+
+$(codereview_proto_jar): $(ALL_PROTO) $(protobuf_jar) $(PROTOC)
+	@echo build $@
+	@rm -rf .java_src .java_bin && \
+	 mkdir .java_src .java_bin && \
+	 $(foreach p,$(ALL_PROTO),\
+	  $(PROTOC) --java_out=.java_src --proto_path=$(dir $p) $p &&) \
+	 unset CLASSPATH && \
+	 cd .java_src && \
+	 find . -name '*.java' | xargs $(JAVAC) \
+		-encoding UTF-8 \
+		-g:none \
+		-nowarn \
+		-classpath $(abspath $(protobuf_jar)) \
+		-d ../.java_bin && \
+	 cd ../.java_bin && jar cf $(abspath $@) .
+	@rm -rf .java_src .java_bin
+
+$(protobuf_jar): \
+		$(protobuf)/src/google/protobuf/descriptor.proto \
+		$(shell find $(protobuf_jar_src) -type f)
+	@echo build $@
+	@rm -rf .java_bin && \
+	 b=$(abspath .java_bin) && \
+	 cd $(protobuf_jar_src) && \
+	 mkdir $$b && \
+	 CLASSPATH=$$b && \
+	 export CLASSPATH && \
+	 $(PROTOC) \
+		--java_out=. \
+		-I$(abspath $(protobuf)/src) \
+		$(abspath $(protobuf)/src/google/protobuf/descriptor.proto) && \
+	 find . -name \*.java | xargs $(JAVAC) \
+		-encoding UTF-8 \
+		-g \
+		-d $$b
+	@cd .java_bin && jar cf $(abspath $@) .
+	@rm -f $(protobuf_jar_src)/com/google/protobuf/DescriptorProtos.java
+	@rm -rf .java_bin
+
+$(jsch_jar): $(jgit)/org.spearce.jgit/lib/jsch-0.1.37.jar
+	rm -f $@ $(basename $@)_src.zip
+	cp $< $@
+	cp $(basename $<).zip $(basename $@)_src.zip
+
+$(jgit_jar): .jgit_version
+	rm -f $@ $(basename $@)_src.zip
+	cd $(jgit) && $(SHELL) ./make_jgit.sh
+	cp $(jgit)/jgit.jar $@
+	chmod 644 $@
+	cp $(jgit)/jgit_src.zip $(basename $@)_src.zip
+
+.jgit_version: jgit_phony
+	@a=`git --git-dir=$(jgit)/.git rev-parse HEAD 2>/dev/null`; \
+	 b=`cat .jgit_version 2>/dev/null`; \
+	 if test z$$a = z$$b; then : up to date; \
+	 else echo $$a >$@; fi
+
+.protobuf_version: protobuf_phony
+	@a=`git --git-dir=$(protobuf)/.git rev-parse HEAD 2>/dev/null`; \
+	 b=`cat .protobuf_version 2>/dev/null`; \
+	 if test z$$a = z$$b; then : up to date; \
+	 else echo $$a >$@; fi
+
+.PHONY: all clean release
+.PHONY: web release-web
+.PHONY: mgr release-mgr
+.PHONY: protobuf_phony
+.PHONY: jgit_phony
diff --git a/crm-data.tar.gz b/crm-data.tar.gz
new file mode 100644
index 0000000..b275dc9
--- /dev/null
+++ b/crm-data.tar.gz
Binary files differ
diff --git a/mgrapp/.classpath b/mgrapp/.classpath
new file mode 100644
index 0000000..4251917
--- /dev/null
+++ b/mgrapp/.classpath
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry exported="true" kind="lib" path="lib/codereview_proto.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/protobuf.jar" sourcepath="lib/protobuf_src.zip"/>
+	<classpathentry exported="true" kind="lib" path="lib/jgit.jar" sourcepath="lib/jgit_src.zip"/>
+	<classpathentry exported="true" kind="lib" path="lib/commons-httpclient.jar" sourcepath="lib/commons-httpclient_src.zip"/>
+	<classpathentry exported="true" kind="lib" path="lib/commons-codec.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/commons-logging.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jsch.jar"/>
+	<classpathentry kind="lib" path="lib/commons-net.jar" sourcepath="lib/commons-net_src.zip"/>
+	<classpathentry kind="output" path="out_classes"/>
+</classpath>
diff --git a/mgrapp/.gitignore b/mgrapp/.gitignore
new file mode 100644
index 0000000..f0ca765
--- /dev/null
+++ b/mgrapp/.gitignore
@@ -0,0 +1,8 @@
+/lib/*_src.zip
+/lib/codereview_proto.jar
+/lib/codereview_manager.jar
+/lib/protobuf.jar
+/lib/jsch.jar
+/lib/jgit.jar
+/out_classes
+/.password-*
diff --git a/mgrapp/.project b/mgrapp/.project
new file mode 100644
index 0000000..868f04e
--- /dev/null
+++ b/mgrapp/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>mgrapp</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/mgrapp/.settings/org.eclipse.core.resources.prefs b/mgrapp/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..82eb859
--- /dev/null
+++ b/mgrapp/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Sep 02 16:59:24 PDT 2008
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/mgrapp/.settings/org.eclipse.core.runtime.prefs b/mgrapp/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..8667cfd
--- /dev/null
+++ b/mgrapp/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,3 @@
+#Tue Sep 02 16:59:24 PDT 2008
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/mgrapp/.settings/org.eclipse.jdt.core.prefs b/mgrapp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..fa64d21
--- /dev/null
+++ b/mgrapp/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,268 @@
+#Thu Sep 04 11:18:51 PDT 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=16
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=0
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=0
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=2
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=3
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/mgrapp/.settings/org.eclipse.jdt.ui.prefs b/mgrapp/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..f37f6f0
--- /dev/null
+++ b/mgrapp/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,9 @@
+#Tue Sep 02 17:00:18 PDT 2008
+eclipse.preferences.version=1
+formatter_profile=_Google Format
+formatter_settings_version=11
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com.google;com;junit;net;org;java;javax;
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
diff --git a/mgrapp/bin/mgr b/mgrapp/bin/mgr
new file mode 100755
index 0000000..70ba710
--- /dev/null
+++ b/mgrapp/bin/mgr
@@ -0,0 +1,64 @@
+#!/bin/sh
+#
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if [ -z "$MGR_HOME" ]
+then
+	MGR_HOME=`which $0 2>/dev/null`
+	MGR_HOME=`dirname $MGR_HOME`
+	MGR_HOME=`dirname $MGR_HOME`
+fi
+
+if [ -z "$MGR_HOME" ]
+then
+	echo >&2 "error: MGR_HOME not set, cannot guess"
+	exit 1
+fi
+
+if ! [ -f "$MGR_HOME/lib/codereview_manager.jar" ]
+then
+	echo >&2 "error: MGR_HOME $MGR_HOME not compiled"
+	exit 1
+fi
+
+if [ -z "$1" ]
+then
+	echo >&2 "usage: $0 app.config [args]"
+	exit 1
+fi
+config_file=$1
+shift
+
+java_opts=
+
+m=`GIT_CONFIG=$config_file git config --get codereview.memory`
+if [ -n "$m" ]
+then
+	java_opts="$java_opts -Xmx${m}"
+fi
+
+CLASSPATH=
+for j in $MGR_HOME/lib/*.jar
+do
+	if [ -z "$CLASSPATH" ]
+	then
+		CLASSPATH=$j
+	else
+		CLASSPATH=$CLASSPATH:$j
+	fi
+done
+export CLASSPATH
+
+exec java $java_opts com.google.codereview.Main "$config_file" "$@"
diff --git a/mgrapp/compile.sh b/mgrapp/compile.sh
new file mode 100755
index 0000000..0a45a69
--- /dev/null
+++ b/mgrapp/compile.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+CLASSPATH=
+for j in `pwd`/lib/*.jar
+do
+	CLASSPATH=$CLASSPATH:$j
+done
+export CLASSPATH
+
+(cd src &&
+ mkdir -p ../bin &&
+ mkdir -p ../bin/META-INF &&
+ cp -f META-INF/MANIFEST.MF ../bin/META-INF &&
+ find . -name \*.java | xargs javac -g -d ../bin) &&
+(cd bin &&
+ rm -f ../codereview_manager.jar &&
+ jar cf ../codereview_manager.jar . ) || exit
diff --git a/mgrapp/lib/commons-codec.jar b/mgrapp/lib/commons-codec.jar
new file mode 100644
index 0000000..957b675
--- /dev/null
+++ b/mgrapp/lib/commons-codec.jar
Binary files differ
diff --git a/mgrapp/lib/commons-httpclient.jar b/mgrapp/lib/commons-httpclient.jar
new file mode 100644
index 0000000..7c59774
--- /dev/null
+++ b/mgrapp/lib/commons-httpclient.jar
Binary files differ
diff --git a/mgrapp/lib/commons-logging.jar b/mgrapp/lib/commons-logging.jar
new file mode 100644
index 0000000..8758a96
--- /dev/null
+++ b/mgrapp/lib/commons-logging.jar
Binary files differ
diff --git a/mgrapp/lib/commons-net.jar b/mgrapp/lib/commons-net.jar
new file mode 100644
index 0000000..9666a92
--- /dev/null
+++ b/mgrapp/lib/commons-net.jar
Binary files differ
diff --git a/mgrapp/src/META-INF/MANIFEST.MF b/mgrapp/src/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..db91724
--- /dev/null
+++ b/mgrapp/src/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: com.google.codereview.Main
+
diff --git a/mgrapp/src/com/google/codereview/Main.java b/mgrapp/src/com/google/codereview/Main.java
new file mode 100644
index 0000000..95a31b9
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/Main.java
@@ -0,0 +1,284 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview;
+
+import com.google.codereview.manager.Backend;
+import com.google.codereview.manager.ProjectSync;
+import com.google.codereview.manager.RepositoryCache;
+import com.google.codereview.manager.merge.PendingMerger;
+import com.google.codereview.manager.prune.BuildPruner;
+import com.google.codereview.manager.prune.BundlePruner;
+import com.google.codereview.manager.unpack.ReceivedBundleUnpacker;
+import com.google.codereview.rpc.HttpRpc;
+import com.google.githacks.BrokenShallowRepositoryCreator;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.spearce.jgit.lib.PersonIdent;
+import org.spearce.jgit.lib.RepositoryConfig;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Formatter;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
+import java.util.logging.StreamHandler;
+
+/** Server startup, invoked from the command line. */
+public class Main {
+  private static final Log LOG = LogFactory.getLog("main");
+  private static final String SEC_CODEREVIEW = "codereview";
+  private static final String SEC_LOG = "log";
+  private static final int FOUR_HOURS = 4 * 60 * 60; // seconds
+  private static final int ONCE_PER_DAY = 24 * 60 * 60;// seconds
+
+  public static void main(final String[] args) {
+    if (args.length == 0) {
+      System.err.println("usage: " + Main.class.getName() + " configfile");
+      System.exit(1);
+    }
+
+    final File configPath = new File(args[0]).getAbsoluteFile();
+    final RepositoryConfig config = new RepositoryConfig(null, configPath);
+    try {
+      config.load();
+    } catch (FileNotFoundException e) {
+      System.err.println("error: " + configPath + " not found");
+      System.exit(1);
+    } catch (IOException e) {
+      System.err.println("error: " + configPath + " not readable");
+      e.printStackTrace(System.err);
+      System.exit(1);
+    }
+
+    configureLogging(config, args.length > 1);
+    LOG.info("Read " + configPath);
+    final Main me = new Main(configPath, config);
+
+    if (args.length == 1) {
+      me.addShutdownHook();
+      me.start();
+    } else {
+      final String cmd = args[1];
+      if (cmd.equals("sync")) {
+        new ProjectSync(me.backend).sync();
+      } else if (cmd.equals("bsclone")) {
+        try {
+          final File src = new File(args[2]);
+          final File dst = new File(args[3]);
+          BrokenShallowRepositoryCreator.createRecursive(src, dst);
+        } catch (IOException err) {
+          System.err.println("error: " + err);
+        }
+      } else {
+        System.err.println("error: " + cmd + " not recognized");
+      }
+    }
+  }
+
+  private final RepositoryConfig config;
+  private final ScheduledThreadPoolExecutor pool;
+  private final int taskSleep;
+  private final Backend backend;
+
+  private Main(final File configPath, final RepositoryConfig rc) {
+    config = rc;
+
+    final int threads = config.getInt(SEC_CODEREVIEW, "threads", 10);
+    taskSleep = config.getInt(SEC_CODEREVIEW, "sleep", 10);
+    LOG.info("Starting thread pool with " + threads + " initial threads.");
+    pool = new ScheduledThreadPoolExecutor(threads);
+
+    final RepositoryCache repoCache = createRepositoryCache();
+    final HttpRpc rpc = createHttpRpc(configPath.getParentFile());
+    backend = new Backend(repoCache, rpc, pool, createUserPersonIdent());
+  }
+
+  private RepositoryCache createRepositoryCache() {
+    final File basedir = new File(required(SEC_CODEREVIEW, "basedir"));
+    return new RepositoryCache(basedir);
+  }
+
+  private HttpRpc createHttpRpc(final File base) throws ThreadDeath {
+    final URL serverUrl;
+    try {
+      serverUrl = new URL(required(SEC_CODEREVIEW, "server"));
+    } catch (MalformedURLException err) {
+      System.err.println("error: Bad URL in " + SEC_CODEREVIEW + ".server");
+      System.exit(1);
+      throw new ThreadDeath();
+    }
+
+    final String roleUser = config.getString(SEC_CODEREVIEW, null, "username");
+    File pwf = new File(required(SEC_CODEREVIEW, "secureconfig"));
+    if (!pwf.isAbsolute()) {
+      pwf = new File(base, pwf.getPath());
+    }
+
+    final RepositoryConfig pwc = new RepositoryConfig(null, pwf);
+    try {
+      pwc.load();
+    } catch (IOException e) {
+      System.err.println("error: Cannot read secureconfig: " + pwf + ": "
+          + e.getMessage());
+      System.exit(1);
+      throw new ThreadDeath();
+    }
+
+    final String rolePass = pwc.getString(SEC_CODEREVIEW, null, "password");
+    final String apiKey = pwc.getString(SEC_CODEREVIEW, null, "internalapikey");
+    return new HttpRpc(serverUrl, roleUser, rolePass, apiKey);
+  }
+
+  private PersonIdent createUserPersonIdent() {
+    final String name = required("user", "name");
+    final String email = required("user", "email");
+    return new PersonIdent(name, email, System.currentTimeMillis(), 0);
+  }
+
+  private void addShutdownHook() {
+    Runtime.getRuntime().addShutdownHook(new Thread() {
+      @Override
+      public void run() {
+        LOG.info("Shutting down thread pool.");
+        pool.shutdownNow();
+      }
+    });
+  }
+
+  private void start() {
+    schedule(new ReceivedBundleUnpacker(backend));
+    schedule(new PendingMerger(backend));
+    schedule(new BundlePruner(backend), FOUR_HOURS);
+    schedule(new BuildPruner(backend), ONCE_PER_DAY);
+  }
+
+  private void schedule(final Runnable t) {
+    schedule(t, taskSleep);
+  }
+
+  private void schedule(final Runnable t, final int sleep) {
+    pool.scheduleWithFixedDelay(t, 0, sleep, TimeUnit.SECONDS);
+  }
+
+  private String required(final String sec, final String key) {
+    final String r = config.getString(sec, null, key);
+    if (r == null || r.length() == 0) {
+      System.err.println("error: Missing required config " + sec + "." + key);
+      System.exit(1);
+    }
+    return r;
+  }
+
+  private static void configureLogging(final RepositoryConfig config,
+      final boolean interactive) {
+    final Logger root = Logger.getLogger("");
+    for (final Handler h : root.getHandlers())
+      root.removeHandler(h);
+
+    OutputStream out = System.out;
+    final String logfile = config.getString(SEC_LOG, null, "file");
+    if (logfile != null && !interactive) {
+      try {
+        out = new FileOutputStream(logfile, true);
+      } catch (IOException err) {
+        System.err.println("error: Cannot append to " + logfile);
+        System.err.println("error: " + err.toString());
+        System.exit(1);
+        throw new ThreadDeath();
+      }
+    }
+
+    final StreamHandler ch = new StreamHandler(out, new Formatter() {
+      private final SimpleDateFormat sdf;
+      private final StringWriter stringBuffer = new StringWriter();
+      private final PrintWriter p = new PrintWriter(stringBuffer);
+      {
+        sdf = new SimpleDateFormat("yyyyMMdd.HHmmss");
+      }
+
+      @Override
+      public String format(final LogRecord record) {
+        stringBuffer.getBuffer().setLength(0);
+        final String levelName = record.getLevel().getName();
+        p.print(sdf.format(new Date(record.getMillis())));
+        p.print(' ');
+        p.print(levelName);
+        for (int cnt = "WARNING".length() - levelName.length(); --cnt >= 0;) {
+          p.print(' ');
+        }
+        p.print(' ');
+        p.print(record.getLoggerName());
+        p.print(" - ");
+        p.print(record.getMessage());
+        p.print('\n');
+        if (record.getThrown() != null) {
+          record.getThrown().printStackTrace(p);
+          p.print('\n');
+        }
+        p.flush();
+        return stringBuffer.toString();
+      }
+    }) {
+      @Override
+      public synchronized void publish(final LogRecord record) {
+        super.publish(record);
+        flush();
+      }
+    };
+    root.addHandler(ch);
+
+    final Level levelObj;
+    final String levelStr = config.getString(SEC_LOG, null, "level");
+    if (levelStr == null || levelStr.length() == 0) {
+      levelObj = Level.INFO;
+    } else if ("trace".equalsIgnoreCase(levelStr)) {
+      levelObj = Level.FINEST;
+    } else if ("debug".equalsIgnoreCase(levelStr)) {
+      levelObj = Level.FINE;
+    } else if ("info".equalsIgnoreCase(levelStr)) {
+      levelObj = Level.INFO;
+    } else if ("warning".equalsIgnoreCase(levelStr)
+        || "warn".equalsIgnoreCase(levelStr)) {
+      levelObj = Level.WARNING;
+    } else if ("error".equalsIgnoreCase(levelStr)) {
+      levelObj = Level.SEVERE;
+    } else if ("fatal".equalsIgnoreCase(levelStr)) {
+      levelObj = Level.SEVERE;
+    } else {
+      System.out.println("warning: Bad " + SEC_LOG + ".level " + levelStr
+          + "; assuming info");
+      levelObj = Level.INFO;
+    }
+    ch.setLevel(levelObj);
+    root.setLevel(levelObj);
+
+    Logger.getLogger("httpclient").setLevel(Level.WARNING);
+    Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.WARNING);
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/Backend.java b/mgrapp/src/com/google/codereview/manager/Backend.java
new file mode 100644
index 0000000..58167f2
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/Backend.java
@@ -0,0 +1,108 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager;
+
+import com.google.codereview.internal.Admin.AdminService;
+import com.google.codereview.internal.Build.BuildService;
+import com.google.codereview.internal.BundleStore.BundleStoreService;
+import com.google.codereview.internal.Change.ChangeService;
+import com.google.codereview.internal.Merge.MergeService;
+import com.google.protobuf.RpcChannel;
+
+import org.spearce.jgit.lib.PersonIdent;
+
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Configuration and state related to a single Gerrit backend process.
+ */
+public class Backend {
+  private final RepositoryCache repoCache;
+  private final RpcChannel rpc;
+  private final ScheduledExecutorService executor;
+  private final PersonIdent mergeIdent;
+
+  private final AdminService adminSvc;
+  private final BuildService buildSvc;
+  private final BundleStoreService bundleStoreSvc;
+  private final ChangeService changeSvc;
+  private final MergeService mergeSvc;
+
+  public Backend(final RepositoryCache cache, final RpcChannel api,
+      final ScheduledExecutorService threadPool,
+      final PersonIdent performMergsAs) {
+    repoCache = cache;
+    rpc = api;
+    executor = threadPool;
+    mergeIdent = performMergsAs;
+
+    adminSvc = AdminService.newStub(rpc);
+    buildSvc = BuildService.newStub(rpc);
+    bundleStoreSvc = BundleStoreService.newStub(rpc);
+    changeSvc = ChangeService.newStub(rpc);
+    mergeSvc = MergeService.newStub(rpc);
+  }
+
+  public RepositoryCache getRepositoryCache() {
+    return repoCache;
+  }
+
+  public RpcChannel getRpcChannel() {
+    return rpc;
+  }
+
+  public PersonIdent getMergeIdentity() {
+    return mergeIdent;
+  }
+
+  /**
+   * @return a copy of {@link #getMergeIdentity()} modified to use the current
+   *         system clock as the time, in the GMT/UTC time zone.
+   */
+  public PersonIdent newMergeIdentity() {
+    return new PersonIdent(getMergeIdentity(), System.currentTimeMillis(), 0);
+  }
+
+  /**
+   * Schedule a task for execution on a background thread.
+   * 
+   * @param task runnable to perform the task. The task will be executed once,
+   *        as soon as a thread is available.
+   */
+  public void asyncExec(final Runnable task) {
+    executor.schedule(task, 0, TimeUnit.MILLISECONDS);
+  }
+
+  public AdminService getAdminService() {
+    return adminSvc;
+  }
+
+  public BuildService getBuildService() {
+    return buildSvc;
+  }
+
+  public BundleStoreService getBundleStoreService() {
+    return bundleStoreSvc;
+  }
+
+  public ChangeService getChangeService() {
+    return changeSvc;
+  }
+
+  public MergeService getMergeService() {
+    return mergeSvc;
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/InvalidRepositoryException.java b/mgrapp/src/com/google/codereview/manager/InvalidRepositoryException.java
new file mode 100644
index 0000000..0928418
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/InvalidRepositoryException.java
@@ -0,0 +1,26 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager;
+
+/** Indicates a directory does not contain a valid Git repository. */
+public class InvalidRepositoryException extends Exception {
+  public InvalidRepositoryException(final String name) {
+    super(name);
+  }
+
+  public InvalidRepositoryException(final String name, final Throwable err) {
+    super(name, err);
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/ProjectSync.java b/mgrapp/src/com/google/codereview/manager/ProjectSync.java
new file mode 100644
index 0000000..b3d2d9e
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/ProjectSync.java
@@ -0,0 +1,132 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager;
+
+import com.google.codereview.internal.SyncProject.BranchSync;
+import com.google.codereview.internal.SyncProject.SyncProjectRequest;
+import com.google.codereview.internal.SyncProject.SyncProjectResponse;
+import com.google.codereview.rpc.SimpleController;
+import com.google.codereview.util.GitMetaUtil;
+import com.google.protobuf.RpcCallback;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.spearce.jgit.errors.IncorrectObjectTypeException;
+import org.spearce.jgit.lib.Constants;
+import org.spearce.jgit.lib.Ref;
+import org.spearce.jgit.lib.Repository;
+import org.spearce.jgit.revwalk.RevCommit;
+import org.spearce.jgit.revwalk.RevWalk;
+
+import java.io.File;
+import java.io.IOException;
+
+public class ProjectSync {
+  private static final Log LOG = LogFactory.getLog(ProjectSync.class);
+
+  private final Backend server;
+
+  public ProjectSync(final Backend be) {
+    server = be;
+  }
+
+  public void sync() {
+    syncDirectoryImpl(server.getRepositoryCache().getBaseDirectory(), "");
+  }
+
+  private void syncDirectoryImpl(final File root, final String prefix) {
+    final File[] entries = root.listFiles();
+    if (entries == null) {
+      return;
+    }
+
+    for (final File f : entries) {
+      final String fName = f.getName();
+      if (fName.equals(".") || fName.equals("..")) {
+        continue;
+      }
+
+      if (!f.isDirectory()) {
+        continue;
+      }
+
+      String fullName = prefix + fName;
+      final Repository db;
+      try {
+        db = GitMetaUtil.open(f);
+      } catch (IOException e) {
+        LOG.error("Cannot open " + f + ": " + e.toString());
+        continue;
+      }
+
+      if (db != null) {
+        try {
+          if (fullName.endsWith(".git")) {
+            fullName = fullName.substring(0, fullName.length() - 4);
+          }
+          sync(fullName, db);
+        } finally {
+          db.close();
+        }
+      } else {
+        syncDirectoryImpl(f, fullName + "/");
+      }
+    }
+  }
+
+  public void sync(final String name, final Repository db) {
+    final SyncProjectRequest.Builder req = SyncProjectRequest.newBuilder();
+    req.setProjectName(name);
+
+    try {
+      final RevWalk rw = new RevWalk(db);
+      for (final Ref ref : db.getAllRefs().values()) {
+        if (ref.getName().startsWith(Constants.R_HEADS)) {
+          final RevCommit c;
+          try {
+            c = rw.parseCommit(ref.getObjectId());
+          } catch (IncorrectObjectTypeException e) {
+            continue;
+          }
+          req.addBranch(toBranch(ref, c));
+        }
+      }
+    } catch (IOException err) {
+      LOG.error("Cannot synchronize " + name, err);
+    }
+
+    send(req.build());
+  }
+
+  private BranchSync toBranch(final Ref r, final RevCommit c) {
+    final BranchSync.Builder bs = BranchSync.newBuilder();
+    bs.setBranchName(r.getName());
+    bs.setCommit(GitMetaUtil.toGitCommit(c));
+    return bs.build();
+  }
+
+  private void send(final SyncProjectRequest req) {
+    final SimpleController ctrl = new SimpleController();
+    server.getAdminService().syncProject(ctrl, req,
+        new RpcCallback<SyncProjectResponse>() {
+          public void run(final SyncProjectResponse rsp) {
+          }
+        });
+    if (ctrl.failed()) {
+      final String name = req.getProjectName();
+      LOG.error("syncProject " + name + ": " + ctrl.errorText());
+    }
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/RepositoryCache.java b/mgrapp/src/com/google/codereview/manager/RepositoryCache.java
new file mode 100644
index 0000000..bc106b2
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/RepositoryCache.java
@@ -0,0 +1,89 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager;
+
+import com.google.codereview.util.GitMetaUtil;
+
+import org.spearce.jgit.lib.Repository;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.ref.Reference;
+import java.lang.ref.SoftReference;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+/** Cache of active Git repositories being used by the manager. */
+public class RepositoryCache {
+  private static final Pattern REPO_NAME =
+      Pattern.compile("^[A-Za-z][A-Za-z0-9/_-]+$");
+
+  private final File base;
+
+  private final Map<String, Reference<Repository>> cache;
+
+  /**
+   * Create a new cache to manage a specific base directory (and below).
+   * 
+   * @param basedir top level directory that contains all repositories.
+   */
+  public RepositoryCache(final File basedir) {
+    base = basedir;
+    cache = new HashMap<String, Reference<Repository>>();
+  }
+
+  /**
+   * @return the base directory which contains all known repositories.
+   */
+  public File getBaseDirectory() {
+    return base;
+  }
+
+  /**
+   * Get (or open) a repository by name.
+   * 
+   * @param name the repository name, relative to the base directory supplied
+   *        when the cache was created.
+   * @return the cached Repository instance.
+   * @throws InvalidRepositoryException the name does not denote an existing
+   *         repository, or the name cannot be read as a repository.
+   */
+  public synchronized Repository get(String name)
+      throws InvalidRepositoryException {
+    if (name.endsWith(".git")) {
+      name = name.substring(0, name.length() - 4);
+    }
+
+    if (!REPO_NAME.matcher(name).matches()) {
+      throw new InvalidRepositoryException(name);
+    }
+
+    final Reference<Repository> ref = cache.get(name);
+    Repository db = ref != null ? ref.get() : null;
+    if (db == null) {
+      try {
+        db = GitMetaUtil.open(new File(base, name));
+        if (db == null) {
+          throw new InvalidRepositoryException(name);
+        }
+      } catch (IOException err) {
+        throw new InvalidRepositoryException(name, err);
+      }
+      cache.put(name, new SoftReference<Repository>(db));
+    }
+    return db;
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/StopProcessingException.java b/mgrapp/src/com/google/codereview/manager/StopProcessingException.java
new file mode 100644
index 0000000..ac0b2fa
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/StopProcessingException.java
@@ -0,0 +1,30 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager;
+
+/** Indicates the worker task wants to be unscheduled and never run again. */
+public class StopProcessingException extends RuntimeException {
+  public StopProcessingException(String message) {
+    super(message);
+  }
+
+  public StopProcessingException(Throwable cause) {
+    super(cause);
+  }
+
+  public StopProcessingException(String message, Throwable cause) {
+    super(message, cause);
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/merge/BranchUpdater.java b/mgrapp/src/com/google/codereview/manager/merge/BranchUpdater.java
new file mode 100644
index 0000000..3304d74
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/merge/BranchUpdater.java
@@ -0,0 +1,69 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.merge;
+
+import com.google.codereview.internal.PostBranchUpdate.PostBranchUpdateRequest;
+import com.google.codereview.internal.PostBranchUpdate.PostBranchUpdateResponse;
+import com.google.codereview.internal.PostBuildResult.PostBuildResultResponse;
+import com.google.codereview.manager.Backend;
+import com.google.codereview.rpc.SimpleController;
+import com.google.protobuf.RpcCallback;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class BranchUpdater {
+  private static final Log LOG = LogFactory.getLog(BranchUpdater.class);
+
+  private final Backend server;
+
+  public BranchUpdater(final Backend be) {
+    server = be;
+  }
+
+  public void updateBranch(final PostBuildResultResponse buildInfo) {
+    if (new UpdateOp(server.getRepositoryCache(), buildInfo).update()) {
+      final PostBranchUpdateRequest.Builder req;
+
+      req = PostBranchUpdateRequest.newBuilder();
+      req.setBranchKey(buildInfo.getDestBranchKey());
+      req.addAllNewChange(buildInfo.getNewChangeList());
+      send(req.build());
+    } else {
+      final PostBranchUpdateRequest.Builder req;
+
+      req = PostBranchUpdateRequest.newBuilder();
+      req.setBranchKey(buildInfo.getDestBranchKey());
+      // Don't mark any changes merged.
+      send(req.build());
+    }
+  }
+
+  private void send(final PostBranchUpdateRequest msg) {
+    if (LOG.isDebugEnabled()) {
+      LOG.debug("\n" + msg);
+    }
+
+    final SimpleController ctrl = new SimpleController();
+    server.getMergeService().postBranchUpdate(ctrl, msg,
+        new RpcCallback<PostBranchUpdateResponse>() {
+          public void run(final PostBranchUpdateResponse rsp) {
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.warn("postBranchUpdate failed: " + ctrl.errorText());
+    }
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/merge/CodeReviewCommit.java b/mgrapp/src/com/google/codereview/manager/merge/CodeReviewCommit.java
new file mode 100644
index 0000000..7d64ebb
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/merge/CodeReviewCommit.java
@@ -0,0 +1,51 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.merge;
+
+import com.google.codereview.internal.PostMergeResult.MergeResultItem;
+
+import org.spearce.jgit.lib.AnyObjectId;
+import org.spearce.jgit.revwalk.RevCommit;
+
+/** Extended commit entity with code review specific metadata. */
+class CodeReviewCommit extends RevCommit {
+  /**
+   * Unique key of the PatchSet entity from the code review system.
+   * <p>
+   * This value is only available on commits that have a PatchSet represented in
+   * the code review system and whose PatchSet is in the current submit queue.
+   * Merge commits created during the merge or commits that aren't in the submit
+   * queue will keep this member null.
+   */
+  String patchsetKey;
+
+  /**
+   * Ordinal position of this commit within the submit queue.
+   * <p>
+   * Only valid if {@link #patchsetKey} is not null.
+   */
+  int originalOrder;
+
+  /**
+   * The result status for this commit.
+   * <p>
+   * Only valid if {@link #patchsetKey} is not null.
+   */
+  MergeResultItem.CodeType statusCode;
+
+  CodeReviewCommit(final AnyObjectId id) {
+    super(id);
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/merge/MergeException.java b/mgrapp/src/com/google/codereview/manager/merge/MergeException.java
new file mode 100644
index 0000000..3928a33
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/merge/MergeException.java
@@ -0,0 +1,26 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.merge;
+
+/** Indicates the current branch's queue cannot be processed at this time. */
+class MergeException extends Exception {
+  MergeException(final String msg) {
+    super(msg, null);
+  }
+
+  MergeException(final String msg, final Throwable why) {
+    super(msg, why);
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/merge/MergeOp.java b/mgrapp/src/com/google/codereview/manager/merge/MergeOp.java
new file mode 100644
index 0000000..aabd3e5
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/merge/MergeOp.java
@@ -0,0 +1,386 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.merge;
+
+import com.google.codereview.internal.PendingMerge.PendingMergeItem;
+import com.google.codereview.internal.PendingMerge.PendingMergeResponse;
+import com.google.codereview.internal.PostMergeResult.MergeResultItem;
+import com.google.codereview.internal.PostMergeResult.PostMergeResultRequest;
+import com.google.codereview.manager.Backend;
+import com.google.codereview.manager.InvalidRepositoryException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.spearce.jgit.errors.IncorrectObjectTypeException;
+import org.spearce.jgit.errors.MissingObjectException;
+import org.spearce.jgit.lib.AnyObjectId;
+import org.spearce.jgit.lib.Commit;
+import org.spearce.jgit.lib.Constants;
+import org.spearce.jgit.lib.ObjectId;
+import org.spearce.jgit.lib.PersonIdent;
+import org.spearce.jgit.lib.Ref;
+import org.spearce.jgit.lib.RefUpdate;
+import org.spearce.jgit.lib.Repository;
+import org.spearce.jgit.merge.MergeStrategy;
+import org.spearce.jgit.merge.Merger;
+import org.spearce.jgit.revwalk.RevCommit;
+import org.spearce.jgit.revwalk.RevSort;
+import org.spearce.jgit.revwalk.RevWalk;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Merges changes in submission order into a single branch.
+ * <p>
+ * Branches are reduced to the minimum number of heads needed to merge
+ * everything. This allows commits to be entered into the queue in any order
+ * (such as ancestors before descendants) and only the most recent commit on any
+ * line of development will be merged. All unmerged commits along a line of
+ * development must be in the submission queue in order to merge the tip of that
+ * line.
+ * <p>
+ * Conflicts are handled by discarding the entire line of development and
+ * marking it as conflicting, even if an earlier commit along that same line can
+ * be merged cleanly.
+ */
+class MergeOp {
+  private static final Log LOG = LogFactory.getLog(MergeOp.class);
+
+  static String mergePinName(final AnyObjectId id) {
+    return mergePinName(id.name());
+  }
+
+  static String mergePinName(final String idstr) {
+    return "refs/merges/" + idstr;
+  }
+
+  private final Backend server;
+  private final PendingMergeResponse in;
+  private final PersonIdent mergeIdent;
+  private final Collection<MergeResultItem> updates;
+  private final List<CodeReviewCommit> toMerge;
+  private Repository db;
+  private RevWalk rw;
+  private CodeReviewCommit branchTip;
+  private CodeReviewCommit mergeTip;
+  private final List<CodeReviewCommit> newChanges;
+
+  MergeOp(final Backend be, final PendingMergeResponse mergeInfo) {
+    server = be;
+    in = mergeInfo;
+    mergeIdent = server.newMergeIdentity();
+    updates = new ArrayList<MergeResultItem>();
+    toMerge = new ArrayList<CodeReviewCommit>();
+    newChanges = new ArrayList<CodeReviewCommit>();
+  }
+
+  PostMergeResultRequest merge() {
+    final String loc = in.getDestProjectName() + " " + in.getDestBranchName();
+    LOG.debug("Merging " + loc);
+    try {
+      mergeImpl();
+
+      final PostMergeResultRequest.Builder update;
+      update = PostMergeResultRequest.newBuilder();
+      update.setDestBranchKey(in.getDestBranchKey());
+      update.addAllChange(updates);
+      return update.build();
+    } catch (MergeException ee) {
+      LOG.error("Error merging " + loc, ee);
+
+      mergeTip = null;
+
+      final PostMergeResultRequest.Builder update;
+      update = PostMergeResultRequest.newBuilder();
+      update.setDestBranchKey(in.getDestBranchKey());
+      for (final PendingMergeItem pmi : in.getChangeList()) {
+        update.addChange(suspend(pmi));
+      }
+      return update.build();
+    }
+  }
+
+  CodeReviewCommit getMergeTip() {
+    return mergeTip;
+  }
+
+  Collection<CodeReviewCommit> getNewChanges() {
+    return Collections.unmodifiableCollection(newChanges);
+  }
+
+  private void mergeImpl() throws MergeException {
+    openRepository();
+    openBranch();
+    validateChangeList();
+    reduceToMinimalMerge();
+    mergeTopics();
+    markCleanMerges();
+    pinMergeCommit();
+  }
+
+  private void openRepository() throws MergeException {
+    final String name = in.getDestProjectName();
+    try {
+      db = server.getRepositoryCache().get(name);
+    } catch (InvalidRepositoryException notGit) {
+      final String m = "Repository \"" + name + "\" unknown.";
+      throw new MergeException(m, notGit);
+    }
+
+    rw = new RevWalk(db) {
+      @Override
+      protected RevCommit createCommit(final AnyObjectId id) {
+        return new CodeReviewCommit(id);
+      }
+    };
+  }
+
+  private void openBranch() throws MergeException {
+    try {
+      final RefUpdate ru = db.updateRef(in.getDestBranchName());
+      if (ru.getOldObjectId() != null) {
+        branchTip = (CodeReviewCommit) rw.parseCommit(ru.getOldObjectId());
+      } else {
+        branchTip = null;
+      }
+    } catch (IOException e) {
+      throw new MergeException("Cannot open branch", e);
+    }
+  }
+
+  private void validateChangeList() throws MergeException {
+    final Set<ObjectId> tips = new HashSet<ObjectId>();
+    for (final Ref r : db.getAllRefs().values()) {
+      tips.add(r.getObjectId());
+    }
+
+    int commitOrder = 0;
+    for (final PendingMergeItem pmi : in.getChangeList()) {
+      final String idstr = pmi.getRevisionId();
+      final ObjectId id;
+      try {
+        id = ObjectId.fromString(idstr);
+      } catch (IllegalArgumentException iae) {
+        throw new MergeException("Invalid ObjectId: " + idstr);
+      }
+
+      if (!tips.contains(id)) {
+        // TODO Technically the proper way to do this test is to use a
+        // RevWalk on "$id --not --all" and test for an empty set. But
+        // that is way slower than looking for a ref directly pointing
+        // at the desired tip. We should always have a ref available.
+        //
+        // TODO this is actually an error, the branch is gone but we
+        // want to merge the issue. We can't safely do that if the
+        // tip is not reachable.
+
+        LOG.error("Cannot find branch head for " + id.name());
+        updates.add(suspend(pmi));
+        continue;
+      }
+
+      final CodeReviewCommit commit;
+      try {
+        commit = (CodeReviewCommit) rw.parseCommit(id);
+      } catch (IOException e) {
+        throw new MergeException("Invalid issue commit " + id, e);
+      }
+      commit.patchsetKey = pmi.getPatchsetKey();
+      commit.originalOrder = commitOrder++;
+      LOG.debug("Commit " + commit.name() + " is " + commit.patchsetKey);
+
+      if (branchTip != null) {
+        // If this commit is already merged its a bug in the queuing code
+        // that we got back here. Just mark it complete and move on. Its
+        // merged and that is all that mattered to the requestor.
+        //
+        try {
+          if (rw.isMergedInto(commit, branchTip)) {
+            commit.statusCode = MergeResultItem.CodeType.ALREADY_MERGED;
+            updates.add(toResult(commit));
+            LOG.debug("Already merged " + commit.name());
+            continue;
+          }
+        } catch (IOException err) {
+          throw new MergeException("Cannot perform merge base test", err);
+        }
+      }
+
+      toMerge.add(commit);
+    }
+  }
+
+  private void reduceToMinimalMerge() throws MergeException {
+    final Collection<CodeReviewCommit> heads;
+    try {
+      heads = new MergeSorter(rw, branchTip).sort(toMerge);
+    } catch (IOException e) {
+      throw new MergeException("Branch head sorting failed", e);
+    }
+
+    for (final CodeReviewCommit c : toMerge) {
+      if (c.statusCode != null) {
+        updates.add(toResult(c));
+      }
+    }
+
+    toMerge.clear();
+    toMerge.addAll(heads);
+    Collections.sort(toMerge, new Comparator<CodeReviewCommit>() {
+      public int compare(final CodeReviewCommit a, final CodeReviewCommit b) {
+        return a.originalOrder - b.originalOrder;
+      }
+    });
+  }
+
+  private void mergeTopics() throws MergeException {
+    mergeTip = branchTip;
+
+    // Take the first fast-forward available, if any is available in the set.
+    //
+    for (final Iterator<CodeReviewCommit> i = toMerge.iterator(); i.hasNext();) {
+      try {
+        final CodeReviewCommit n = i.next();
+        if (mergeTip == null || rw.isMergedInto(mergeTip, n)) {
+          mergeTip = n;
+          i.remove();
+          LOG.debug("Fast-forward to " + n.name());
+          break;
+        }
+      } catch (IOException e) {
+        throw new MergeException("Cannot fast-forward test during merge", e);
+      }
+    }
+
+    // For every other commit do a pair-wise merge.
+    //
+    while (!toMerge.isEmpty()) {
+      final CodeReviewCommit n = toMerge.remove(0);
+      final Merger m = MergeStrategy.SIMPLE_TWO_WAY_IN_CORE.newMerger(db);
+      try {
+        if (m.merge(new AnyObjectId[] {mergeTip, n})) {
+          writeMergeCommit(m, n);
+
+          LOG.debug("Merged " + n.name());
+        } else {
+          rw.reset();
+          rw.markStart(n);
+          rw.markUninteresting(mergeTip);
+          CodeReviewCommit failed;
+          while ((failed = (CodeReviewCommit) rw.next()) != null) {
+            if (failed.patchsetKey != null) {
+              failed.statusCode = MergeResultItem.CodeType.PATH_CONFLICT;
+              updates.add(toResult(failed));
+            }
+          }
+          LOG.debug("Rejected (path conflict) " + n.name());
+        }
+      } catch (IOException e) {
+        throw new MergeException("Cannot merge " + n.name(), e);
+      }
+    }
+  }
+
+  private void writeMergeCommit(final Merger m, final CodeReviewCommit n)
+      throws IOException, MissingObjectException, IncorrectObjectTypeException {
+    final Commit mergeCommit = new Commit(db);
+    mergeCommit.setTreeId(m.getResultTreeId());
+    mergeCommit.setParentIds(new ObjectId[] {mergeTip, n});
+    mergeCommit.setAuthor(mergeIdent);
+    mergeCommit.setCommitter(mergeCommit.getAuthor());
+    mergeCommit.setMessage("Merge");
+
+    final ObjectId id = m.getObjectWriter().writeCommit(mergeCommit);
+    mergeTip = (CodeReviewCommit) rw.parseCommit(id);
+  }
+
+  private void markCleanMerges() throws MergeException {
+    try {
+      rw.reset();
+      rw.sort(RevSort.REVERSE);
+      rw.markStart(mergeTip);
+      if (branchTip != null) {
+        rw.markUninteresting(branchTip);
+      } else {
+        for (final Ref r : db.getAllRefs().values()) {
+          if (r.getName().startsWith(Constants.R_HEADS)
+              || r.getName().startsWith(Constants.R_TAGS)) {
+            try {
+              rw.markUninteresting(rw.parseCommit(r.getObjectId()));
+            } catch (IncorrectObjectTypeException iote) {
+              // Not a commit? Skip over it.
+            }
+          }
+        }
+      }
+
+      CodeReviewCommit c;
+      while ((c = (CodeReviewCommit) rw.next()) != null) {
+        if (c.patchsetKey != null) {
+          c.statusCode = MergeResultItem.CodeType.CLEAN_MERGE;
+          updates.add(toResult(c));
+          newChanges.add(c);
+        }
+      }
+    } catch (IOException e) {
+      throw new MergeException("Cannot mark clean merges", e);
+    }
+  }
+
+  private void pinMergeCommit() throws MergeException {
+    final String name = mergePinName(mergeTip.getId());
+    final RefUpdate.Result r;
+    try {
+      final RefUpdate u = db.updateRef(name);
+      u.setNewObjectId(mergeTip.getId());
+      u.setRefLogMessage("Merged submit queue", false);
+      r = u.update();
+    } catch (IOException err) {
+      final String m = "Failure creating " + name;
+      throw new MergeException(m, err);
+    }
+
+    if (r == RefUpdate.Result.NEW) {
+    } else if (r == RefUpdate.Result.FAST_FORWARD) {
+    } else if (r == RefUpdate.Result.FORCED) {
+    } else if (r == RefUpdate.Result.NO_CHANGE) {
+    } else {
+      final String m = "Failure creating " + name + ": " + r.name();
+      throw new MergeException(m);
+    }
+  }
+
+  private static MergeResultItem suspend(final PendingMergeItem pmi) {
+    final MergeResultItem.Builder delay = MergeResultItem.newBuilder();
+    delay.setStatusCode(MergeResultItem.CodeType.MISSING_DEPENDENCY);
+    delay.setPatchsetKey(pmi.getPatchsetKey());
+    return delay.build();
+  }
+
+  private static MergeResultItem toResult(final CodeReviewCommit c) {
+    final MergeResultItem.Builder delay = MergeResultItem.newBuilder();
+    delay.setStatusCode(c.statusCode);
+    delay.setPatchsetKey(c.patchsetKey);
+    return delay.build();
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/merge/MergeSorter.java b/mgrapp/src/com/google/codereview/manager/merge/MergeSorter.java
new file mode 100644
index 0000000..0fa45ba
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/merge/MergeSorter.java
@@ -0,0 +1,96 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.merge;
+
+import com.google.codereview.internal.PostMergeResult.MergeResultItem;
+
+import org.spearce.jgit.revwalk.RevCommit;
+import org.spearce.jgit.revwalk.RevCommitList;
+import org.spearce.jgit.revwalk.RevFlag;
+import org.spearce.jgit.revwalk.RevWalk;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+class MergeSorter {
+  private final RevWalk rw;
+  private final RevCommit base;
+  private final RevFlag CAN_MERGE;
+
+  MergeSorter(final RevWalk walk, final RevCommit branchHead) {
+    rw = walk;
+    CAN_MERGE = rw.newFlag("CAN_MERGE");
+    base = branchHead;
+  }
+
+  Collection<CodeReviewCommit> sort(final Collection<CodeReviewCommit> incoming)
+      throws IOException {
+    final Set<CodeReviewCommit> heads = new HashSet<CodeReviewCommit>();
+    final Set<CodeReviewCommit> sort = prepareList(incoming);
+    INCOMING: while (!sort.isEmpty()) {
+      final CodeReviewCommit n = removeOne(sort);
+
+      rw.resetRetain(CAN_MERGE);
+      rw.markStart(n);
+      if (base != null) {
+        rw.markUninteresting(base);
+      }
+
+      RevCommit c;
+      final RevCommitList<RevCommit> contents = new RevCommitList<RevCommit>();
+      while ((c = rw.next()) != null) {
+        if (!c.has(CAN_MERGE)) {
+          // We cannot merge n as it would bring something we
+          // aren't permitted to merge at this time. Drop n.
+          //
+          n.statusCode = MergeResultItem.CodeType.MISSING_DEPENDENCY;
+          continue INCOMING;
+        }
+        contents.add(c);
+      }
+
+      // Anything reachable through us is better merged by just
+      // merging us directly. So prune our ancestors out and let
+      // us merge instead.
+      //
+      sort.removeAll(contents);
+      heads.removeAll(contents);
+      heads.add(n);
+    }
+    return heads;
+  }
+
+  private Set<CodeReviewCommit> prepareList(
+      final Collection<CodeReviewCommit> in) {
+    final HashSet<CodeReviewCommit> sort = new HashSet<CodeReviewCommit>();
+    for (final CodeReviewCommit c : in) {
+      if (!c.has(CAN_MERGE)) {
+        c.add(CAN_MERGE);
+        sort.add(c);
+      }
+    }
+    return sort;
+  }
+
+  private static <T> T removeOne(final Collection<T> c) {
+    final Iterator<T> i = c.iterator();
+    final T r = i.next();
+    i.remove();
+    return r;
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/merge/PendingMerger.java b/mgrapp/src/com/google/codereview/manager/merge/PendingMerger.java
new file mode 100644
index 0000000..bad3aa0
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/merge/PendingMerger.java
@@ -0,0 +1,197 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.merge;
+
+import com.google.codereview.internal.PendingMerge.PendingMergeRequest;
+import com.google.codereview.internal.PendingMerge.PendingMergeResponse;
+import com.google.codereview.internal.PostBranchUpdate.PostBranchUpdateRequest;
+import com.google.codereview.internal.PostBranchUpdate.PostBranchUpdateResponse;
+import com.google.codereview.internal.PostBuildResult.PostBuildResultRequest;
+import com.google.codereview.internal.PostBuildResult.PostBuildResultResponse;
+import com.google.codereview.internal.PostMergeResult.PostMergeResultRequest;
+import com.google.codereview.internal.PostMergeResult.PostMergeResultResponse;
+import com.google.codereview.internal.SubmitBuild.SubmitBuildRequest;
+import com.google.codereview.internal.SubmitBuild.SubmitBuildResponse;
+import com.google.codereview.manager.Backend;
+import com.google.codereview.manager.StopProcessingException;
+import com.google.codereview.rpc.SimpleController;
+import com.google.codereview.util.MutableBoolean;
+import com.google.protobuf.RpcCallback;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.spearce.jgit.lib.ObjectId;
+
+/** Merges changes from branches with changes waiting to be merged. */
+public class PendingMerger implements Runnable {
+  private static final Log LOG = LogFactory.getLog(PendingMerger.class);
+
+  private static final PendingMergeRequest NEXT_REQ =
+      PendingMergeRequest.getDefaultInstance();
+
+  private final Backend server;
+  private final BranchUpdater updater;
+
+  public PendingMerger(final Backend be) {
+    server = be;
+    updater = new BranchUpdater(server);
+  }
+
+  public void run() {
+    try {
+      runImpl();
+    } catch (RuntimeException err) {
+      LOG.fatal("Unexpected runtime failure", err);
+      throw err;
+    } catch (Error err) {
+      LOG.fatal("Unexpected runtime failure", err);
+      throw err;
+    }
+  }
+
+  private void runImpl() {
+    boolean tryAnother;
+    do {
+      tryAnother = next();
+    } while (tryAnother);
+  }
+
+  private boolean next() {
+    final MutableBoolean tryAnother = new MutableBoolean();
+    final SimpleController ctrl = new SimpleController();
+    server.getMergeService().nextPendingMerge(ctrl, NEXT_REQ,
+        new RpcCallback<PendingMergeResponse>() {
+          public void run(final PendingMergeResponse rsp) {
+            tryAnother.value = merge(rsp);
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.warn("nextPendingMerge failed: " + ctrl.errorText());
+      tryAnother.value = false;
+    }
+    return tryAnother.value;
+  }
+
+  private boolean merge(final PendingMergeResponse rsp) {
+    final PendingMergeResponse.CodeType sc = rsp.getStatusCode();
+    if (sc == PendingMergeResponse.CodeType.QUEUE_EMPTY) {
+      return false;
+    }
+
+    if (sc == PendingMergeResponse.CodeType.MERGE_READY) {
+      mergeImpl(rsp);
+      return true;
+    }
+
+    throw new StopProcessingException("unknown status " + sc.name());
+  }
+
+  protected void mergeImpl(final PendingMergeResponse rsp) {
+    final MergeOp mo = new MergeOp(server, rsp);
+    final PostMergeResultRequest result = mo.merge();
+
+    send(result);
+
+    if (mo.getMergeTip() != null && !mo.getNewChanges().isEmpty()) {
+      final SubmitBuildRequest.Builder b = SubmitBuildRequest.newBuilder();
+      b.setBranchKey(rsp.getDestBranchKey());
+      b.setRevisionId(mo.getMergeTip().name());
+      for (final CodeReviewCommit c : mo.getNewChanges()) {
+        if (c.patchsetKey != null) {
+          b.addNewChange(c.patchsetKey);
+        }
+      }
+      send(b.build(), mo.getMergeTip().getId());
+    } else {
+      final PostBranchUpdateRequest.Builder b;
+
+      b = PostBranchUpdateRequest.newBuilder();
+      b.setBranchKey(rsp.getDestBranchKey());
+      // Don't mark any changes merged.
+      send(b.build());
+    }
+  }
+
+  private void send(final PostMergeResultRequest msg) {
+    if (LOG.isDebugEnabled()) {
+      LOG.debug("\n" + msg);
+    }
+
+    final SimpleController ctrl = new SimpleController();
+    server.getMergeService().postMergeResult(ctrl, msg,
+        new RpcCallback<PostMergeResultResponse>() {
+          public void run(final PostMergeResultResponse rsp) {
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.warn("postMergeResult failed: " + ctrl.errorText());
+    }
+  }
+
+  private void send(final SubmitBuildRequest msg, final ObjectId id) {
+    if (LOG.isDebugEnabled()) {
+      LOG.debug("\n" + msg);
+    }
+
+    final SimpleController ctrl = new SimpleController();
+    server.getBuildService().submitBuild(ctrl, msg,
+        new RpcCallback<SubmitBuildResponse>() {
+          public void run(final SubmitBuildResponse rsp) {
+            scheduleBuild(rsp, id);
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.warn("submitBuild failed: " + ctrl.errorText());
+    }
+  }
+
+  private void scheduleBuild(final SubmitBuildResponse rsp, final ObjectId id) {
+    final int buildId = rsp.getBuildId();
+    LOG.debug("Merge commit " + id.name() + " is build " + buildId);
+
+    // For now assume the build was successful.
+    //
+    final PostBuildResultRequest.Builder req;
+    req = PostBuildResultRequest.newBuilder();
+    req.setBuildId(buildId);
+    req.setBuildStatus(PostBuildResultRequest.ResultType.SUCCESS);
+    final SimpleController ctrl = new SimpleController();
+    server.getBuildService().postBuildResult(ctrl, req.build(),
+        new RpcCallback<PostBuildResultResponse>() {
+          public void run(final PostBuildResultResponse rsp) {
+            updater.updateBranch(rsp);
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.warn("postBuildResult failed: " + ctrl.errorText());
+    }
+  }
+
+  private void send(final PostBranchUpdateRequest msg) {
+    if (LOG.isDebugEnabled()) {
+      LOG.debug("\n" + msg);
+    }
+
+    final SimpleController ctrl = new SimpleController();
+    server.getMergeService().postBranchUpdate(ctrl, msg,
+        new RpcCallback<PostBranchUpdateResponse>() {
+          public void run(final PostBranchUpdateResponse rsp) {
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.warn("postBranchUpdate failed: " + ctrl.errorText());
+    }
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/merge/UpdateOp.java b/mgrapp/src/com/google/codereview/manager/merge/UpdateOp.java
new file mode 100644
index 0000000..efc715d
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/merge/UpdateOp.java
@@ -0,0 +1,130 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.merge;
+
+import com.google.codereview.internal.PostBuildResult.PostBuildResultResponse;
+import com.google.codereview.manager.InvalidRepositoryException;
+import com.google.codereview.manager.RepositoryCache;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.spearce.jgit.lib.ObjectId;
+import org.spearce.jgit.lib.RefUpdate;
+import org.spearce.jgit.lib.Repository;
+import org.spearce.jgit.revwalk.RevCommit;
+import org.spearce.jgit.revwalk.RevWalk;
+
+import java.io.IOException;
+
+public class UpdateOp {
+  private static final Log LOG = LogFactory.getLog(UpdateOp.class);
+
+  private final RepositoryCache repoCache;
+  private final PostBuildResultResponse in;
+  private Repository db;
+  private RevCommit newCommit;
+  private RevWalk rw;
+  private RefUpdate branch;
+
+  UpdateOp(final RepositoryCache rc, final PostBuildResultResponse mergeInfo) {
+    repoCache = rc;
+    in = mergeInfo;
+  }
+
+  boolean update() {
+    final String loc = in.getDestProjectName() + " " + in.getDestBranchName();
+    LOG.debug("Updating " + loc);
+    try {
+      updateImpl();
+      return true;
+    } catch (MergeException ee) {
+      LOG.error("Error updating " + loc, ee);
+      return false;
+    } finally {
+      if (db != null && rw != null) {
+        unpinMerge();
+      }
+    }
+  }
+
+  private void unpinMerge() {
+    final String name = MergeOp.mergePinName(in.getRevisionId());
+    try {
+      final RefUpdate ru = db.updateRef(name);
+      ru.setNewObjectId(ru.getOldObjectId());
+      ru.delete(rw);
+    } catch (IOException err) {
+      LOG.warn("Cannot remove " + name, err);
+    }
+  }
+
+  private void updateImpl() throws MergeException {
+    openRepository();
+    openBranch();
+    parseCommit();
+    updateBranch();
+  }
+
+  private void openRepository() throws MergeException {
+    final String name = in.getDestProjectName();
+    try {
+      db = repoCache.get(name);
+    } catch (InvalidRepositoryException notGit) {
+      final String m = "Repository \"" + name + "\" unknown.";
+      throw new MergeException(m, notGit);
+    }
+    rw = new RevWalk(db);
+  }
+
+  private void openBranch() throws MergeException {
+    try {
+      branch = db.updateRef(in.getDestBranchName());
+    } catch (IOException e) {
+      throw new MergeException("Cannot open branch", e);
+    }
+  }
+
+  private void parseCommit() throws MergeException {
+    try {
+      newCommit = rw.parseCommit(ObjectId.fromString(in.getRevisionId()));
+    } catch (IllegalArgumentException e) {
+      throw new MergeException("Not a commit name: " + in.getRevisionId());
+    } catch (IOException e) {
+      throw new MergeException("Not a commit name: " + in.getRevisionId(), e);
+    }
+  }
+
+  private void updateBranch() throws MergeException {
+    branch.setForceUpdate(false);
+    branch.setNewObjectId(newCommit);
+    branch.setRefLogMessage(newCommit.getShortMessage(), false);
+
+    final RefUpdate.Result r;
+    try {
+      r = branch.update(rw);
+    } catch (IOException err) {
+      final String m = "Failure updating " + branch.getName();
+      throw new MergeException(m, err);
+    }
+
+    if (r == RefUpdate.Result.NEW) {
+    } else if (r == RefUpdate.Result.FAST_FORWARD) {
+    } else if (r == RefUpdate.Result.NO_CHANGE) {
+    } else {
+      final String m = "Failure updating " + branch.getName() + ": " + r.name();
+      throw new MergeException(m);
+    }
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/prune/BuildPruner.java b/mgrapp/src/com/google/codereview/manager/prune/BuildPruner.java
new file mode 100644
index 0000000..cf93325
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/prune/BuildPruner.java
@@ -0,0 +1,89 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.prune;
+
+import com.google.codereview.internal.PruneBuilds.PruneBuildsRequest;
+import com.google.codereview.internal.PruneBuilds.PruneBuildsResponse;
+import com.google.codereview.manager.Backend;
+import com.google.codereview.manager.StopProcessingException;
+import com.google.codereview.rpc.SimpleController;
+import com.google.codereview.util.MutableBoolean;
+import com.google.protobuf.RpcCallback;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/** Deletes unnecessary builds from the data store. */
+public class BuildPruner implements Runnable {
+  private static final Log LOG = LogFactory.getLog(BuildPruner.class);
+
+  private static final PruneBuildsRequest NEXT_REQ =
+      PruneBuildsRequest.getDefaultInstance();
+
+  private final Backend server;
+
+  public BuildPruner(final Backend be) {
+    server = be;
+  }
+
+  public void run() {
+    try {
+      runImpl();
+    } catch (RuntimeException err) {
+      LOG.fatal("Unexpected runtime failure", err);
+      throw err;
+    } catch (Error err) {
+      LOG.fatal("Unexpected runtime failure", err);
+      throw err;
+    }
+  }
+
+  private void runImpl() {
+    boolean tryAnother;
+    do {
+      tryAnother = next();
+    } while (tryAnother);
+  }
+
+  private boolean next() {
+    final MutableBoolean tryAnother = new MutableBoolean();
+    final SimpleController ctrl = new SimpleController();
+    server.getBuildService().pruneBuilds(ctrl, NEXT_REQ,
+        new RpcCallback<PruneBuildsResponse>() {
+          public void run(final PruneBuildsResponse rsp) {
+            tryAnother.value = prune(rsp);
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.warn("pruneBuilds failed: " + ctrl.errorText());
+      tryAnother.value = false;
+    }
+    return tryAnother.value;
+  }
+
+  private boolean prune(final PruneBuildsResponse rsp) {
+    final PruneBuildsResponse.CodeType sc = rsp.getStatusCode();
+
+    if (sc == PruneBuildsResponse.CodeType.QUEUE_EMPTY) {
+      return false;
+    }
+
+    if (sc == PruneBuildsResponse.CodeType.BUILDS_PRUNED) {
+      return true;
+    }
+
+    throw new StopProcessingException("unknown status " + sc.name());
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/prune/BundlePruner.java b/mgrapp/src/com/google/codereview/manager/prune/BundlePruner.java
new file mode 100644
index 0000000..60a9bad
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/prune/BundlePruner.java
@@ -0,0 +1,89 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.prune;
+
+import com.google.codereview.internal.PruneBundles.PruneBundlesRequest;
+import com.google.codereview.internal.PruneBundles.PruneBundlesResponse;
+import com.google.codereview.manager.Backend;
+import com.google.codereview.manager.StopProcessingException;
+import com.google.codereview.rpc.SimpleController;
+import com.google.codereview.util.MutableBoolean;
+import com.google.protobuf.RpcCallback;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/** Deletes invalid bundles from the data store. */
+public class BundlePruner implements Runnable {
+  private static final Log LOG = LogFactory.getLog(BundlePruner.class);
+
+  private static final PruneBundlesRequest NEXT_REQ =
+      PruneBundlesRequest.getDefaultInstance();
+
+  private final Backend server;
+
+  public BundlePruner(final Backend be) {
+    server = be;
+  }
+
+  public void run() {
+    try {
+      runImpl();
+    } catch (RuntimeException err) {
+      LOG.fatal("Unexpected runtime failure", err);
+      throw err;
+    } catch (Error err) {
+      LOG.fatal("Unexpected runtime failure", err);
+      throw err;
+    }
+  }
+
+  private void runImpl() {
+    boolean tryAnother;
+    do {
+      tryAnother = next();
+    } while (tryAnother);
+  }
+
+  private boolean next() {
+    final MutableBoolean tryAnother = new MutableBoolean();
+    final SimpleController ctrl = new SimpleController();
+    server.getBundleStoreService().pruneBundles(ctrl, NEXT_REQ,
+        new RpcCallback<PruneBundlesResponse>() {
+          public void run(final PruneBundlesResponse rsp) {
+            tryAnother.value = prune(rsp);
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.warn("pruneBundles failed: " + ctrl.errorText());
+      tryAnother.value = false;
+    }
+    return tryAnother.value;
+  }
+
+  private boolean prune(final PruneBundlesResponse rsp) {
+    final PruneBundlesResponse.CodeType sc = rsp.getStatusCode();
+
+    if (sc == PruneBundlesResponse.CodeType.QUEUE_EMPTY) {
+      return false;
+    }
+
+    if (sc == PruneBundlesResponse.CodeType.BUNDLES_PRUNED) {
+      return true;
+    }
+
+    throw new StopProcessingException("unknown status " + sc.name());
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/unpack/DiffReader.java b/mgrapp/src/com/google/codereview/manager/unpack/DiffReader.java
new file mode 100644
index 0000000..866ca75
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/unpack/DiffReader.java
@@ -0,0 +1,149 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import static org.spearce.jgit.lib.Constants.encodeASCII;
+
+import com.google.codereview.internal.UploadPatchsetFile.UploadPatchsetFileRequest.StatusType;
+
+import org.spearce.jgit.lib.Constants;
+import org.spearce.jgit.lib.ObjectId;
+import org.spearce.jgit.lib.ObjectWriter;
+import org.spearce.jgit.lib.Repository;
+import org.spearce.jgit.lib.Tree;
+import org.spearce.jgit.revwalk.RevCommit;
+import org.spearce.jgit.util.RawParseUtils;
+
+import java.io.IOException;
+
+/** Parses 'git diff-tree' output into {@link FileDiff} objects. */
+class DiffReader {
+  private static final byte[] GIT_DIFF = encodeASCII("diff --git a/");
+  private static final byte[] H_DELETED_FILE = encodeASCII("deleted file ");
+  private static final byte[] H_NEW_FILE = encodeASCII("new file ");
+  private static final byte[] H_INDEX = encodeASCII("index ");
+  static final byte[] H_NEWPATH = encodeASCII("+++ b/");
+  private static final byte[] H_BINARY = encodeASCII("Binary file");
+  private static final int MAX_PATCH_SIZE = 1024 * 1024; // bytes
+
+  static boolean match(final byte[] key, final byte[] line, int offset) {
+    int remain = line.length - offset;
+    if (remain < key.length) {
+      return false;
+    }
+    for (int k = 0; k < key.length;) {
+      if (key[k++] != line[offset++]) {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  private static String str(final byte[] b, final int off) {
+    return RawParseUtils.decode(Constants.CHARSET, b, off, b.length);
+  }
+
+  private Process proc;
+  private RecordInputStream in;
+  private FileDiff current;
+
+  DiffReader(final Repository db, final RevCommit c) throws IOException {
+    final String baseTree;
+    if (c.getParentCount() > 0) {
+      baseTree = c.getParent(0).getTree().getId().name();
+    } else {
+      baseTree = new ObjectWriter(db).writeTree(new Tree(db)).name();
+    }
+    final String headTree = c.getTree().getId().name();
+    proc =
+        Runtime.getRuntime().exec(
+            new String[] {"git", "--git-dir=.", "diff-tree", "--unified=1",
+                "-M", "--full-index", baseTree, headTree}, null,
+            db.getDirectory());
+    proc.getOutputStream().close();
+    proc.getErrorStream().close();
+    in = new RecordInputStream(proc.getInputStream());
+  }
+
+  FileDiff next() throws IOException {
+    return readOneDiff();
+  }
+
+  private FileDiff readOneDiff() throws IOException {
+    boolean consume = false;
+    for (;;) {
+      final byte[] hdr = in.readRecord('\n');
+      if (hdr == null) {
+        final FileDiff prior = current;
+        current = null;
+        return prior;
+      }
+
+      if (match(GIT_DIFF, hdr, 0)) {
+        final FileDiff prior = current;
+        current = new FileDiff();
+        current.appendLine(hdr);
+
+        // TODO(sop) This can split the old and new names wrong if the
+        // old name was "f b/c". Until we can do diffs in-core we'll
+        // just assume nobody uses spaces in filenames.
+        //
+        final String hdrStr = str(hdr, 0);
+        final int newpos = hdrStr.indexOf(" b/");
+        if (newpos > 0) {
+          current.setFilename(hdrStr.substring(newpos + 3));
+        }
+
+        if (prior != null) {
+          return prior;
+        } else {
+          continue;
+        }
+      }
+
+      if (match(H_INDEX, hdr, 0)) {
+        current.setBaseId(ObjectId.fromString(hdr, H_INDEX.length));
+        current.setFinalId(ObjectId.fromString(hdr, H_INDEX.length
+            + Constants.OBJECT_ID_LENGTH * 2 + 2));
+      } else if (match(H_NEW_FILE, hdr, 0)) {
+        current.setStatus(StatusType.ADD);
+      } else if (match(H_DELETED_FILE, hdr, 0)) {
+        current.setStatus(StatusType.DELETE);
+      } else if (match(H_BINARY, hdr, 0)) {
+        current.setBinary(true);
+      } else if (match(H_NEWPATH, hdr, 0)) {
+        current.setFilename(str(hdr, H_NEWPATH.length));
+      }
+
+      if (consume) {
+        continue;
+      } else if (current.getPatchSize() + hdr.length >= MAX_PATCH_SIZE) {
+        current.truncatePatch();
+        consume = true;
+      } else {
+        current.appendLine(hdr);
+      }
+    }
+  }
+
+  void close() throws IOException {
+    in.close();
+    try {
+      proc.waitFor();
+    } catch (InterruptedException ie) {
+      //
+    }
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/unpack/FileDiff.java b/mgrapp/src/com/google/codereview/manager/unpack/FileDiff.java
new file mode 100644
index 0000000..ec0f67f
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/unpack/FileDiff.java
@@ -0,0 +1,119 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import static org.spearce.jgit.lib.Constants.encodeASCII;
+
+import com.google.codereview.internal.UploadPatchsetFile.UploadPatchsetFileRequest.StatusType;
+
+import org.spearce.jgit.lib.AnyObjectId;
+import org.spearce.jgit.lib.ObjectId;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/** Computed difference for a single file. */
+class FileDiff {
+  private ObjectId baseId;
+  private ObjectId finalId;
+  private String filename;
+  private boolean binary;
+  private boolean truncated;
+  private List<byte[]> lines = new ArrayList<byte[]>();
+  private StatusType status = StatusType.MODIFY;
+  private int linesSize;
+
+  ObjectId getBaseId() {
+    return baseId;
+  }
+
+  void setBaseId(final AnyObjectId id) {
+    baseId = id.toObjectId();
+  }
+
+  ObjectId getFinalId() {
+    return finalId;
+  }
+
+  void setFinalId(final AnyObjectId id) {
+    finalId = id.toObjectId();
+  }
+
+  String getFilename() {
+    return filename;
+  }
+
+  void setFilename(final String name) {
+    filename = name;
+  }
+
+  StatusType getStatus() {
+    return status;
+  }
+
+  void setStatus(final StatusType t) {
+    status = t;
+  }
+
+  boolean isBinary() {
+    return binary;
+  }
+
+  void setBinary(final boolean b) {
+    binary = b;
+  }
+
+  boolean isTruncated() {
+    return truncated;
+  }
+
+  void setTruncated(final boolean b) {
+    truncated = b;
+  }
+
+  byte[] getPatch() {
+    final byte[] r = new byte[linesSize + lines.size()];
+    int pos = 0;
+    for (final byte[] line : lines) {
+      System.arraycopy(line, 0, r, pos, line.length);
+      pos += line.length;
+      r[pos++] = '\n';
+    }
+    return r;
+  }
+
+  int getPatchSize() {
+    return linesSize;
+  }
+
+  void appendLine(final byte[] line) {
+    lines.add(line);
+    linesSize += line.length;
+  }
+
+  void truncatePatch() {
+    final List<byte[]> oldLines = lines;
+
+    linesSize = 0;
+    lines = new ArrayList<byte[]>();
+    for (final byte[] b : oldLines) {
+      appendLine(b);
+      if (DiffReader.match(DiffReader.H_NEWPATH, b, 0)) {
+        appendLine(encodeASCII("File content is too large to display"));
+        break;
+      }
+    }
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/unpack/PatchSetUploader.java b/mgrapp/src/com/google/codereview/manager/unpack/PatchSetUploader.java
new file mode 100644
index 0000000..160a3d6
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/unpack/PatchSetUploader.java
@@ -0,0 +1,256 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import com.google.codereview.internal.CompletePatchset.CompletePatchsetRequest;
+import com.google.codereview.internal.CompletePatchset.CompletePatchsetResponse;
+import com.google.codereview.internal.UploadPatchsetFile.UploadPatchsetFileRequest;
+import com.google.codereview.internal.UploadPatchsetFile.UploadPatchsetFileResponse;
+import com.google.codereview.manager.Backend;
+import com.google.codereview.manager.StopProcessingException;
+import com.google.codereview.rpc.SimpleController;
+import com.google.protobuf.ByteString;
+import com.google.protobuf.RpcCallback;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.spearce.jgit.lib.Constants;
+import org.spearce.jgit.lib.ObjectId;
+import org.spearce.jgit.lib.ObjectLoader;
+import org.spearce.jgit.lib.Repository;
+import org.spearce.jgit.revwalk.RevCommit;
+
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.security.MessageDigest;
+import java.util.zip.Deflater;
+import java.util.zip.DeflaterOutputStream;
+import java.util.zip.InflaterInputStream;
+
+
+class PatchSetUploader implements Runnable {
+  private static final Log LOG = LogFactory.getLog(PatchSetUploader.class);
+  private static final int MAX_DATA_SIZE = 1022 * 1024; // bytes
+  private static final String EMPTY_BLOB_ID;
+  private static final ByteString EMPTY_DEFLATE;
+
+  static {
+    final MessageDigest md = Constants.newMessageDigest();
+    md.update(Constants.encodeASCII("blob 0\0"));
+    EMPTY_BLOB_ID = ObjectId.fromRaw(md.digest()).name();
+    EMPTY_DEFLATE = deflate(new byte[0]);
+  }
+
+  private final Backend server;
+  private final Repository db;
+  private final RevCommit commit;
+  private final String commitName;
+  private final String patchsetKey;
+  private ByteString.Output compressedFilenames;
+  private Writer filenameOut;
+
+  PatchSetUploader(final Backend be, final Repository sourceRepo,
+      final RevCommit sourceCommit, final String destPatchsetKey) {
+    server = be;
+    db = sourceRepo;
+    commit = sourceCommit;
+    commitName = commit.getId().name();
+    patchsetKey = destPatchsetKey;
+  }
+
+  private String logkey() {
+    return db.getDirectory().getAbsolutePath() + " " + commitName;
+  }
+
+  public void run() {
+    LOG.debug(logkey() + " begin");
+    try {
+      runImpl();
+    } catch (RuntimeException e) {
+      LOG.fatal(logkey() + " failure", e);
+    } catch (Error e) {
+      LOG.fatal(logkey() + " failure", e);
+    }
+  }
+
+  private void runImpl() {
+    try {
+      compressedFilenames = ByteString.newOutput();
+      filenameOut =
+          new OutputStreamWriter(new DeflaterOutputStream(compressedFilenames,
+              new Deflater(Deflater.DEFAULT_COMPRESSION)), "UTF-8");
+    } catch (IOException e) {
+      LOG.error(logkey() + " cannot initialize filename compression", e);
+      return;
+    }
+
+    try {
+      final DiffReader dr = new DiffReader(db, commit);
+      try {
+        boolean first = true;
+        FileDiff file;
+        while ((file = dr.next()) != null) {
+          storeOneDiff(file);
+
+          if (first) {
+            first = false;
+          } else {
+            filenameOut.write('\0');
+          }
+          filenameOut.write(file.getFilename());
+        }
+      } finally {
+        dr.close();
+      }
+      filenameOut.close();
+    } catch (StopProcessingException halt) {
+      return;
+    } catch (IOException err) {
+      LOG.error(logkey() + " diff failed", err);
+      return;
+    }
+
+    final CompletePatchsetRequest.Builder req;
+    req = CompletePatchsetRequest.newBuilder();
+    req.setPatchsetKey(patchsetKey);
+    req.setCompressedFilenames(compressedFilenames.toByteString());
+    final SimpleController ctrl = new SimpleController();
+    server.getChangeService().completePatchset(ctrl, req.build(),
+        new RpcCallback<CompletePatchsetResponse>() {
+          public void run(final CompletePatchsetResponse rsp) {
+            LOG.debug(logkey() + " complete");
+          }
+        });
+    if (ctrl.failed()) {
+      final String why = ctrl.errorText();
+      LOG.error(logkey() + " completing failed: " + why);
+    }
+  }
+
+  private void storeOneDiff(final FileDiff diff) throws StopProcessingException {
+    final UploadPatchsetFileRequest req = toFileRequest(diff);
+    final SimpleController ctrl = new SimpleController();
+    server.getChangeService().uploadPatchsetFile(ctrl, req,
+        new RpcCallback<UploadPatchsetFileResponse>() {
+          public void run(final UploadPatchsetFileResponse rsp) {
+            final UploadPatchsetFileResponse.CodeType sc = rsp.getStatusCode();
+            final String fn = req.getFileName();
+            final String pk = req.getPatchsetKey();
+
+            if (sc == UploadPatchsetFileResponse.CodeType.CREATED) {
+              LOG.debug(logkey() + " uploaded " + fn);
+            } else if (sc == UploadPatchsetFileResponse.CodeType.CLOSED) {
+              ctrl.setFailed("patchset closed " + pk);
+            } else if (sc == UploadPatchsetFileResponse.CodeType.UNKNOWN_PATCHSET) {
+              ctrl.setFailed("patchset unknown " + pk);
+            } else if (sc == UploadPatchsetFileResponse.CodeType.PATCHING_ERROR) {
+              ctrl.setFailed("server cannot apply patch");
+            } else {
+              ctrl.setFailed("Unknown status " + sc.name() + " " + pk);
+            }
+          }
+        });
+    if (ctrl.failed()) {
+      final String fn = req.getFileName();
+      final String why = ctrl.errorText();
+      LOG.error(logkey() + " uploading " + fn + " failed: " + why);
+      throw new StopProcessingException(why);
+    }
+  }
+
+  private UploadPatchsetFileRequest toFileRequest(final FileDiff diff) {
+    final UploadPatchsetFileRequest.Builder req;
+
+    req = UploadPatchsetFileRequest.newBuilder();
+    req.setPatchsetKey(patchsetKey);
+    req.setFileName(diff.getFilename());
+    req.setStatus(diff.getStatus());
+
+    ByteString patchz = deflate(diff.getPatch());
+
+    if (!diff.isBinary() && !diff.isTruncated()) {
+      final ObjectId baseId = diff.getBaseId();
+
+      if (baseId == null || ObjectId.equals(baseId, ObjectId.zeroId())) {
+        req.setBaseId(EMPTY_BLOB_ID);
+        req.setBaseZ(EMPTY_DEFLATE);
+      } else {
+        try {
+          final ObjectLoader ldr = db.openBlob(baseId);
+          if (ldr == null) {
+            LOG.fatal(logkey() + " missing " + baseId.name());
+            throw new StopProcessingException("No " + baseId.name());
+          }
+
+          final ByteString basez = deflate(ldr.getCachedBytes());
+          if (basez.size() + patchz.size() > MAX_DATA_SIZE) {
+            diff.truncatePatch();
+            patchz = deflate(diff.getPatch());
+          } else {
+            req.setBaseId(baseId.name());
+            req.setBaseZ(basez);
+          }
+        } catch (IOException err) {
+          LOG.fatal(logkey() + " cannot read base " + baseId.name(), err);
+          throw new StopProcessingException("No " + baseId.name());
+        }
+      }
+    }
+
+    if (!diff.isBinary() && !diff.isTruncated()) {
+      final ObjectId finalId = diff.getFinalId();
+      if (finalId == null || ObjectId.equals(finalId, ObjectId.zeroId())) {
+        req.setFinalId(EMPTY_BLOB_ID);
+      } else {
+        req.setFinalId(finalId.name());
+      }
+    }
+
+    req.setPatchZ(patchz);
+    req.setPatchId(hashOfInflated(patchz));
+
+    return req.build();
+  }
+
+  private static ByteString deflate(final byte[] buf) {
+    final ByteString.Output r = ByteString.newOutput();
+    final DeflaterOutputStream out = new DeflaterOutputStream(r);
+    try {
+      out.write(buf);
+      out.close();
+    } catch (IOException err) {
+      // This should not happen.
+      throw new StopProcessingException("Unexpected IO error", err);
+    }
+    return r.toByteString();
+  }
+
+  private static String hashOfInflated(final ByteString in) {
+    final MessageDigest md = Constants.newMessageDigest();
+    final byte[] tmp = new byte[512];
+    final InflaterInputStream iis = new InflaterInputStream(in.newInput());
+    int cnt;
+    try {
+      while ((cnt = iis.read(tmp)) > 0) {
+        md.update(tmp, 0, cnt);
+      }
+    } catch (IOException err) {
+      // This should not happen.
+      throw new StopProcessingException("Unexpected IO error", err);
+    }
+    return ObjectId.fromRaw(md.digest()).name();
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/unpack/ReceivedBundleUnpacker.java b/mgrapp/src/com/google/codereview/manager/unpack/ReceivedBundleUnpacker.java
new file mode 100644
index 0000000..942013d
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/unpack/ReceivedBundleUnpacker.java
@@ -0,0 +1,118 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import com.google.codereview.internal.NextReceivedBundle.NextReceivedBundleRequest;
+import com.google.codereview.internal.NextReceivedBundle.NextReceivedBundleResponse;
+import com.google.codereview.internal.UpdateReceivedBundle.UpdateReceivedBundleRequest;
+import com.google.codereview.internal.UpdateReceivedBundle.UpdateReceivedBundleResponse;
+import com.google.codereview.manager.Backend;
+import com.google.codereview.manager.StopProcessingException;
+import com.google.codereview.rpc.SimpleController;
+import com.google.codereview.util.MutableBoolean;
+import com.google.protobuf.RpcCallback;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/** Obtains newly received bundles and unpacks them into Git. */
+public class ReceivedBundleUnpacker implements Runnable {
+  private static final Log LOG =
+      LogFactory.getLog(ReceivedBundleUnpacker.class);
+
+  private static final NextReceivedBundleRequest NEXT_REQ =
+      NextReceivedBundleRequest.getDefaultInstance();
+
+  private final Backend server;
+
+  public ReceivedBundleUnpacker(final Backend be) {
+    server = be;
+  }
+
+  public void run() {
+    try {
+      runImpl();
+    } catch (RuntimeException err) {
+      LOG.fatal("Unexpected runtime failure", err);
+      throw err;
+    } catch (Error err) {
+      LOG.fatal("Unexpected runtime failure", err);
+      throw err;
+    }
+  }
+
+  private void runImpl() {
+    boolean tryAnother;
+    do {
+      tryAnother = next();
+    } while (tryAnother);
+  }
+
+  private boolean next() {
+    final MutableBoolean tryAnother = new MutableBoolean();
+    final SimpleController ctrl = new SimpleController();
+    server.getBundleStoreService().nextReceivedBundle(ctrl, NEXT_REQ,
+        new RpcCallback<NextReceivedBundleResponse>() {
+          public void run(final NextReceivedBundleResponse rsp) {
+            tryAnother.value = unpack(rsp);
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.warn("nextReceivedBundle failed: " + ctrl.errorText());
+      tryAnother.value = false;
+    }
+    return tryAnother.value;
+  }
+
+  private boolean unpack(final NextReceivedBundleResponse rsp) {
+    final NextReceivedBundleResponse.CodeType sc = rsp.getStatusCode();
+    if (sc == NextReceivedBundleResponse.CodeType.QUEUE_EMPTY) {
+      return false;
+    }
+
+    if (sc == NextReceivedBundleResponse.CodeType.BUNDLE_AVAILABLE) {
+      send(unpackImpl(rsp));
+      return true;
+    }
+
+    throw new StopProcessingException("unknown status " + sc.name());
+  }
+
+  protected UpdateReceivedBundleRequest unpackImpl(
+      final NextReceivedBundleResponse rsp) {
+    return new UnpackBundleOp(server, rsp).unpack();
+  }
+
+  private void send(final UpdateReceivedBundleRequest req) {
+    final String key = req.getBundleKey();
+    final String sc = req.getStatusCode().name();
+    LOG.debug("Bundle " + key + ", status " + sc);
+
+    final SimpleController ctrl = new SimpleController();
+    server.getBundleStoreService().updateReceivedBundle(ctrl, req,
+        new RpcCallback<UpdateReceivedBundleResponse>() {
+          public void run(final UpdateReceivedBundleResponse rsp) {
+            final UpdateReceivedBundleResponse.CodeType sc =
+                rsp.getStatusCode();
+            if (sc != UpdateReceivedBundleResponse.CodeType.UPDATED) {
+              ctrl.setFailed(sc.name());
+            }
+          }
+        });
+    if (ctrl.failed()) {
+      LOG.error("Updating bundle " + key + " failed: " + ctrl.errorText());
+    }
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/unpack/RecordInputStream.java b/mgrapp/src/com/google/codereview/manager/unpack/RecordInputStream.java
new file mode 100644
index 0000000..3fe0974
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/unpack/RecordInputStream.java
@@ -0,0 +1,144 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/** Buffering input stream which can read entire lines. */
+class RecordInputStream extends InputStream {
+  private InputStream in;
+  private byte[] buf;
+  private int pos;
+  private int end;
+
+  RecordInputStream(final InputStream in) {
+    this.in = in;
+    buf = new byte[4096];
+  }
+
+  @Override
+  public void close() throws IOException {
+    try {
+      in.close();
+    } finally {
+      in = null;
+      buf = null;
+    }
+  }
+
+  private boolean fill() throws IOException {
+    pos = 0;
+    end = in.read(buf, pos, buf.length);
+    if (end < 0) {
+      end = 0;
+      return false;
+    }
+    return true;
+  }
+
+  @Override
+  public int read() throws IOException {
+    if (pos == end && !fill()) {
+      return -1;
+    }
+    return buf[pos++];
+  }
+
+  @Override
+  public int read(final byte[] b, final int off, final int len)
+      throws IOException {
+    if (pos == end && !fill()) {
+      return -1;
+    }
+    final int cnt = Math.min(len, end - pos);
+    System.arraycopy(buf, pos, b, off, cnt);
+    pos += cnt;
+    return cnt;
+  }
+
+  /**
+   * Read a record terminated by the separator byte.
+   * 
+   * @param sep byte which delimits the end of a record.
+   * @return record content, with the separator removed from the end. The empty
+   *         array indicates an empty record; null indicates stream EOF.
+   * @throws IOException the stream could not be read from.
+   */
+  byte[] readRecord(final int sep) throws IOException {
+    if (pos == end && !fill()) {
+      return null;
+    }
+
+    byte[] line = fastReadRecord(sep);
+    if (line != null) {
+      return line;
+    }
+
+    if (end - pos <= buf.length / 2) {
+      int cnt = end - pos;
+      System.arraycopy(buf, pos, buf, 0, cnt);
+      pos = 0;
+      end = cnt;
+
+      cnt = in.read(buf, end, buf.length - end);
+      if (cnt < 0) {
+        final byte[] r = new byte[end];
+        System.arraycopy(buf, 0, r, 0, end);
+        pos = end = 0;
+        return r;
+      }
+      end += cnt;
+
+      line = fastReadRecord(sep);
+      if (line != null) {
+        return line;
+      }
+    }
+
+    final ByteArrayOutputStream out = new ByteArrayOutputStream();
+    out.write(buf, pos, end - pos);
+    for (;;) {
+      if (!fill()) {
+        return out.toByteArray();
+      }
+
+      for (int lf = pos; lf < end; lf++) {
+        if (buf[lf] == sep) {
+          out.write(buf, pos, lf - pos);
+          pos = lf + 1;
+          return out.toByteArray();
+        }
+      }
+
+      out.write(buf, pos, end - pos);
+      pos = end;
+    }
+  }
+
+  private byte[] fastReadRecord(final int sep) {
+    for (int lf = pos; lf < end; lf++) {
+      if (buf[lf] == sep) {
+        final int cnt = lf - pos;
+        final byte[] r = new byte[cnt];
+        System.arraycopy(buf, pos, r, 0, cnt);
+        pos = lf + 1;
+        return r;
+      }
+    }
+    return null;
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/unpack/UnpackBundleOp.java b/mgrapp/src/com/google/codereview/manager/unpack/UnpackBundleOp.java
new file mode 100644
index 0000000..0b57269
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/unpack/UnpackBundleOp.java
@@ -0,0 +1,331 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import com.google.codereview.internal.NextReceivedBundle.BundleSegmentRequest;
+import com.google.codereview.internal.NextReceivedBundle.BundleSegmentResponse;
+import com.google.codereview.internal.NextReceivedBundle.NextReceivedBundleResponse;
+import com.google.codereview.internal.SubmitChange.SubmitChangeRequest;
+import com.google.codereview.internal.SubmitChange.SubmitChangeResponse;
+import com.google.codereview.internal.UpdateReceivedBundle.UpdateReceivedBundleRequest;
+import com.google.codereview.internal.UpdateReceivedBundle.UpdateReceivedBundleRequest.CodeType;
+import com.google.codereview.manager.Backend;
+import com.google.codereview.manager.InvalidRepositoryException;
+import com.google.codereview.rpc.SimpleController;
+import com.google.codereview.util.GitMetaUtil;
+import com.google.codereview.util.MutableBoolean;
+import com.google.protobuf.RpcCallback;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.spearce.jgit.errors.MissingBundlePrerequisiteException;
+import org.spearce.jgit.lib.NullProgressMonitor;
+import org.spearce.jgit.lib.ObjectId;
+import org.spearce.jgit.lib.Ref;
+import org.spearce.jgit.lib.RefUpdate;
+import org.spearce.jgit.lib.Repository;
+import org.spearce.jgit.revwalk.RevCommit;
+import org.spearce.jgit.revwalk.RevSort;
+import org.spearce.jgit.revwalk.RevWalk;
+import org.spearce.jgit.transport.FetchConnection;
+import org.spearce.jgit.transport.Transport;
+import org.spearce.jgit.transport.TransportBundleStream;
+import org.spearce.jgit.transport.URIish;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/** Unpacks a bundle and imports the commits into the code review system. */
+class UnpackBundleOp {
+  private static final Log LOG = LogFactory.getLog(UnpackBundleOp.class);
+
+  private static String refOf(final int changeId, final int patchsetId) {
+    final StringBuilder b = new StringBuilder();
+    final int dh = changeId % 100;
+    b.append("refs/changes/");
+    if (dh < 10) {
+      b.append('0');
+    }
+    b.append(dh);
+    b.append('/');
+    b.append(changeId);
+    b.append('/');
+    b.append(patchsetId);
+    return b.toString();
+  }
+
+  private final Backend server;
+  private final NextReceivedBundleResponse in;
+  private Repository db;
+  private ObjectId tip;
+  private int changeId;
+  private int patchsetId;
+  private String patchsetKey;
+
+  UnpackBundleOp(final Backend be, final NextReceivedBundleResponse bundleInfo) {
+    server = be;
+    in = bundleInfo;
+  }
+
+  UpdateReceivedBundleRequest unpack() {
+    final UpdateReceivedBundleRequest.Builder update;
+    update = UpdateReceivedBundleRequest.newBuilder();
+    update.setBundleKey(in.getBundleKey());
+    try {
+      unpackImpl();
+      update.setStatusCode(CodeType.UNPACKED_OK);
+    } catch (UnpackException ue) {
+      update.setStatusCode(ue.status);
+      update.setErrorDetails(ue.details);
+      LOG.error("Unpacking bundle " + in.getBundleKey() + " failed.", ue);
+    }
+    return update.build();
+  }
+
+  private void unpackImpl() throws UnpackException {
+    LOG.debug("Unpacking bundle " + in.getBundleKey());
+    openRepository();
+    unpackTip();
+    createChanges(newCommits());
+  }
+
+  private void openRepository() throws UnpackException {
+    try {
+      db = server.getRepositoryCache().get(in.getDestProject());
+    } catch (InvalidRepositoryException notGit) {
+      final String m = "Repository \"" + in.getDestProject() + "\" unknown.";
+      throw new UnpackException(CodeType.UNKNOWN_PROJECT, m, notGit);
+    }
+  }
+
+  private void unpackTip() throws UnpackException {
+    final Transport bundleTransport = openBundle();
+    try {
+      final FetchConnection fc = bundleTransport.openFetch();
+      if (fc.getRefs().size() > 1) {
+        final String m = "Bundle contains more than one head";
+        throw new UnpackException(CodeType.INVALID_BUNDLE, m);
+      } else if (fc.getRefs().size() == 0) {
+        final String m = "Bundle contains no heads";
+        throw new UnpackException(CodeType.INVALID_BUNDLE, m);
+      }
+
+      fc.fetch(NullProgressMonitor.INSTANCE, fc.getRefs());
+      tip = fc.getRefs().iterator().next().getObjectId();
+      LOG.debug("Unpacked " + tip.name() + " from " + in.getBundleKey());
+    } catch (MissingBundlePrerequisiteException e) {
+      throw new UnpackException(CodeType.MISSING_BASE, e.getMessage(), e);
+    } catch (IOException readError) {
+      final String m = "Processing the bundle stream failed";
+      throw new UnpackException(CodeType.INVALID_BUNDLE, m, readError);
+    } finally {
+      bundleTransport.close();
+    }
+  }
+
+  private List<RevCommit> newCommits() throws UnpackException {
+    final RevWalk rw = new RevWalk(db);
+    rw.sort(RevSort.REVERSE, true);
+    rw.sort(RevSort.TOPO, true);
+
+    try {
+      rw.markStart(rw.parseCommit(tip));
+    } catch (IOException e) {
+      final String m = "Chain " + tip.name() + " is corrupt";
+      throw new UnpackException(CodeType.INVALID_BUNDLE, m, e);
+    }
+
+    for (final Ref r : db.getAllRefs().values()) {
+      try {
+        rw.markUninteresting(rw.parseCommit(r.getObjectId()));
+      } catch (IOException err) {
+        final String m = "Local ref is invalid";
+        throw new UnpackException(CodeType.SUSPEND_BUNDLE, m, err);
+      }
+    }
+
+    try {
+      final List<RevCommit> newList = new ArrayList<RevCommit>();
+      RevCommit c;
+      while ((c = rw.next()) != null) {
+        // Ensure the parents are parsed so we know the parent's tree.
+        // We need that later to compute a difference.
+        //
+        for (final RevCommit p : c.getParents()) {
+          rw.parse(p);
+        }
+        newList.add(c);
+      }
+      return newList;
+    } catch (IOException e) {
+      final String m = "Chain " + tip.name() + " is corrupt";
+      throw new UnpackException(CodeType.INVALID_BUNDLE, m, e);
+    }
+  }
+
+  private void createChanges(final List<RevCommit> newCommits)
+      throws UnpackException {
+    for (final RevCommit c : newCommits) {
+      if (submitChange(c)) {
+        createChangeRef(c);
+        server.asyncExec(new PatchSetUploader(server, db, c, patchsetKey));
+      }
+    }
+  }
+
+  private boolean submitChange(final RevCommit c) throws UnpackException {
+    final SubmitChangeRequest.Builder req = SubmitChangeRequest.newBuilder();
+
+    req.setOwner(in.getOwner());
+    req.setDestBranchKey(in.getDestBranchKey());
+    req.setCommit(GitMetaUtil.toGitCommit(c));
+
+    final MutableBoolean continueCreation = new MutableBoolean();
+    final SimpleController ctrl = new SimpleController();
+    server.getChangeService().submitChange(ctrl, req.build(),
+        new RpcCallback<SubmitChangeResponse>() {
+          public void run(final SubmitChangeResponse rsp) {
+            final SubmitChangeResponse.CodeType sc = rsp.getStatusCode();
+
+            if (sc == SubmitChangeResponse.CodeType.CREATED) {
+              changeId = rsp.getChangeId();
+              patchsetId = rsp.getPatchsetId();
+              patchsetKey = rsp.getPatchsetKey();
+              continueCreation.value = true;
+              LOG.debug("Commit " + c.getId().name() + " is change " + changeId
+                  + " patchset " + patchsetId);
+
+            } else if (sc == SubmitChangeResponse.CodeType.PATCHSET_EXISTS) {
+              LOG.debug("Commit " + c.getId().name() + " exists in data store");
+
+            } else {
+              ctrl.setFailed("Unknown status " + sc.name());
+            }
+          }
+        });
+    if (ctrl.failed()) {
+      throw new UnpackException(CodeType.SUSPEND_BUNDLE, ctrl.errorText());
+    }
+    return continueCreation.value;
+  }
+
+  private void createChangeRef(final RevCommit c) throws UnpackException {
+    final String name = refOf(changeId, patchsetId);
+    final RefUpdate.Result r;
+    try {
+      final RefUpdate u = db.updateRef(name);
+      u.setNewObjectId(c.getId());
+      u.setForceUpdate(true);
+      u.setRefLogMessage("Change submitted", false);
+      r = u.update();
+    } catch (IOException err) {
+      final String m = "Failure creating " + name;
+      throw new UnpackException(CodeType.SUSPEND_BUNDLE, m, err);
+    }
+
+    if (r == RefUpdate.Result.NEW) {
+    } else if (r == RefUpdate.Result.FAST_FORWARD) {
+    } else if (r == RefUpdate.Result.FORCED) {
+    } else if (r == RefUpdate.Result.NO_CHANGE) {
+    } else {
+      final String m = "Failure creating " + name + ": " + r.name();
+      throw new UnpackException(CodeType.SUSPEND_BUNDLE, m);
+    }
+  }
+
+  private TransportBundleStream openBundle() {
+    final URIish uri = makeURI(in);
+    return new TransportBundleStream(db, uri, new BundleStream());
+  }
+
+  private static URIish makeURI(final NextReceivedBundleResponse in) {
+    URIish u = new URIish();
+    u = u.setScheme("codereview-bundle");
+    u = u.setPath(in.getBundleKey());
+    return u;
+  }
+
+  private class BundleStream extends InputStream {
+    private int segmentId = 1;
+    private final int totalSegments = in.getNSegments();
+    private InputStream stream = in.getBundleData().newInput();
+
+    @Override
+    public int read() throws IOException {
+      for (;;) {
+        if (stream == null) {
+          return -1;
+        }
+
+        final int r = stream.read();
+        if (r < 0) {
+          openNextStream();
+        } else {
+          return r;
+        }
+      }
+    }
+
+    @Override
+    public int read(final byte[] b, final int off, final int len)
+        throws IOException {
+      for (;;) {
+        if (stream == null) {
+          return -1;
+        }
+
+        final int r = stream.read(b, off, len);
+        if (r < 0) {
+          openNextStream();
+        } else {
+          return r;
+        }
+      }
+    }
+
+    private void openNextStream() throws IOException {
+      if (segmentId >= totalSegments) {
+        stream = null;
+        return;
+      }
+
+      segmentId++;
+      final BundleSegmentRequest.Builder req;
+
+      req = BundleSegmentRequest.newBuilder();
+      req.setBundleKey(in.getBundleKey());
+      req.setSegmentId(segmentId);
+
+      final SimpleController ctrl = new SimpleController();
+      server.getBundleStoreService().bundleSegment(ctrl, req.build(),
+          new RpcCallback<BundleSegmentResponse>() {
+            public void run(final BundleSegmentResponse rsp) {
+              final BundleSegmentResponse.CodeType sc = rsp.getStatusCode();
+              if (sc == BundleSegmentResponse.CodeType.DATA) {
+                stream = rsp.getBundleData().newInput();
+              } else {
+                ctrl.setFailed(sc.name());
+              }
+            }
+          });
+      if (ctrl.failed()) {
+        throw new IOException("Bundle" + in.getBundleKey() + " segment "
+            + segmentId + " unavailable: " + ctrl.errorText());
+      }
+    }
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/manager/unpack/UnpackException.java b/mgrapp/src/com/google/codereview/manager/unpack/UnpackException.java
new file mode 100644
index 0000000..d1af4a0
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/manager/unpack/UnpackException.java
@@ -0,0 +1,35 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import com.google.codereview.internal.UpdateReceivedBundle.UpdateReceivedBundleRequest.CodeType;
+
+/** Indicates unpacking failed and the bundle cannot be processed. */
+class UnpackException extends Exception {
+  final CodeType status;
+  final String details;
+
+  UnpackException(final CodeType s, final String msg) {
+    super(msg, null);
+    status = s;
+    details = msg;
+  }
+
+  UnpackException(final CodeType s, final String msg, final Throwable why) {
+    super(msg, why);
+    status = s;
+    details = msg;
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/rpc/HttpRpc.java b/mgrapp/src/com/google/codereview/rpc/HttpRpc.java
new file mode 100644
index 0000000..4d22c2e
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/rpc/HttpRpc.java
@@ -0,0 +1,441 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.rpc;
+
+import com.google.codereview.NeedRetry.RetryRequestLaterResponse;
+import com.google.protobuf.Message;
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.RpcChannel;
+import com.google.protobuf.RpcController;
+import com.google.protobuf.Descriptors.MethodDescriptor;
+import com.google.protobuf.Message.Builder;
+
+import org.apache.commons.httpclient.Cookie;
+import org.apache.commons.httpclient.Header;
+import org.apache.commons.httpclient.HostConfiguration;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.URI;
+import org.apache.commons.httpclient.URIException;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
+import org.spearce.jgit.util.Base64;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.ConnectException;
+import java.net.URL;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.zip.InflaterInputStream;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+
+/**
+ * Simple protocol buffer RPC embedded inside HTTP POST.
+ * <p>
+ * Request messages are POSTed to "/proto/$serviceName/$methodName".
+ * Authentication for the user is always obtained via the user's Google Account,
+ * with session cookies automatically renewing themselves if expired.
+ * <p>
+ * This implementation is thread safe. Callers may use a single HttpRpc over
+ * multiple threads in order to pool and reuse connections across threads.
+ * <p>
+ * All remote calls are performed synchronously. This is a simplification within
+ * the implementation, as it is unlikely the remote side can support parallel
+ * requests over the same top level entities.
+ * <p>
+ * Authentication is tied to Google accounts.
+ */
+public class HttpRpc implements RpcChannel {
+  private static final String ENC = "UTF-8";
+
+  private static final Message RETRY_LATER =
+      RetryRequestLaterResponse.getDefaultInstance();
+
+  /** URL required to authenticate the user into their Google account. */
+  private static final URI LOGIN;
+
+  /**
+   * Maximum number of connections we should make to 'production' servers.
+   * <p>
+   * If the servers are running on Google owned infrastructure such as the
+   * www.google.com or Google App Engine we can generally push at least one or
+   * two connections per thread without causing any trouble.
+   */
+  private static final int MAX_PROD_CONNS = 10;
+
+  /** Special token used in authentication to verify we were successful. */
+  private static final String AUTH_CONTINUE_TOKEN = "http://localhost/";
+
+  static {
+    try {
+      LOGIN = new URI("https://www.google.com/accounts/ClientLogin", true);
+    } catch (URIException err) {
+      final ExceptionInInitializerError le;
+      le = new ExceptionInInitializerError("Bad LOGIN URL");
+      le.initCause(err);
+      throw le;
+    }
+  }
+
+  private final HttpClient http;
+  private final URI server;
+  private final String userEmail;
+  private final String userPassword;
+  private final byte[] apiKey;
+  private boolean authenticated;
+
+  /**
+   * Create a new RPC implementation.
+   * 
+   * @param host protocol, server host, and port number. The path component is
+   *        ignored as requests are made absolute ('/proto/$service/$method').
+   * @param user name to authenticate to Google with. This is very likely the
+   *        user's email address.
+   * @param pass password for the user's Google account.
+   * @param apiKeyStr (optional) the internal API key. If supplied all requests
+   *        will be signed with the key, in case the request requires the
+   *        internal API authentication.
+   */
+  public HttpRpc(final URL host, final String user, final String pass,
+      final String apiKeyStr) {
+    http = new HttpClient(new MultiThreadedHttpConnectionManager());
+    userEmail = user;
+    userPassword = pass;
+    apiKey = apiKeyStr != null ? Base64.decode(apiKeyStr) : null;
+
+    final HttpConnectionManagerParams params =
+        http.getHttpConnectionManager().getParams();
+    try {
+      server = new URI(host.toExternalForm(), true);
+
+      final HostConfiguration serverConfig = new HostConfiguration();
+      serverConfig.setHost(server);
+
+      // The development server cannot do normal authentication so we must
+      // fake it here by injecting a development server specific cookie.
+      //
+      if ("localhost".equals(server.getHost())) {
+        if (userEmail != null) {
+          final Cookie c = new Cookie();
+          c.setDomain(server.getHost());
+          c.setPath("/");
+          c.setName("dev_appserver_login");
+          c.setValue(userEmail + ":False");
+          http.getState().addCookie(c);
+        }
+        authenticated = true;
+        params.setMaxConnectionsPerHost(serverConfig, 1);
+      } else {
+        params.setMaxConnectionsPerHost(serverConfig, MAX_PROD_CONNS);
+      }
+
+      final HostConfiguration clientLoginConfig = new HostConfiguration();
+      clientLoginConfig.setHost(LOGIN);
+      params.setMaxConnectionsPerHost(clientLoginConfig, MAX_PROD_CONNS);
+    } catch (URIException e) {
+      throw new IllegalArgumentException("Bad URL: " + host.toExternalForm(), e);
+    }
+  }
+
+  public void callMethod(final MethodDescriptor method,
+      final RpcController controller, final Message request,
+      final Message responsePrototype, final RpcCallback<Message> done) {
+    final URI uri;
+    final String svcName = method.getService().getName();
+    final String methodName = method.getName();
+    try {
+      uri = new URI(server, "/proto/" + svcName + "/" + methodName, true);
+    } catch (URIException urlError) {
+      controller.setFailed(urlError.toString());
+      return;
+    }
+
+    final MessageRequestEntity entity;
+    try {
+      entity = new MessageRequestEntity(request);
+    } catch (IOException err) {
+      controller.setFailed("cannot encode request: " + err);
+      return;
+    }
+
+    if (controller instanceof SimpleController) {
+      ((SimpleController) controller).markFirstRequest();
+    }
+
+    for (;;) {
+      final PostMethod conn = new PostMethod();
+      Message responseMessage = null;
+      try {
+        conn.setDoAuthentication(false);
+        conn.setURI(uri);
+        conn.setRequestEntity(entity);
+
+        ensureAuthenticated();
+        for (int attempts = 1; responseMessage == null; attempts++) {
+          if (apiKey != null) {
+            sign(conn);
+          }
+
+          final int status = http.executeMethod(conn);
+          if (HttpStatus.SC_OK == status) {
+            responseMessage = parseResponse(conn, responsePrototype);
+          } else if (HttpStatus.SC_UNAUTHORIZED == status) {
+            if (attempts == 2) {
+              responseMessage = null;
+              controller.setFailed("Authentication required");
+              break;
+            }
+            synchronized (this) {
+              authenticated = false;
+              ensureAuthenticated();
+            }
+          } else if (HttpStatus.SC_FORBIDDEN == status
+              || HttpStatus.SC_NOT_FOUND == status
+              || HttpStatus.SC_UNSUPPORTED_MEDIA_TYPE == status) {
+            String body = conn.getResponseBodyAsString(60);
+            if (body.indexOf('\n') > 0)
+              body = body.substring(0, body.indexOf('\n'));
+            responseMessage = null;
+            controller.setFailed(svcName + ": " + body);
+            break;
+          } else {
+            responseMessage = null;
+            controller.setFailed("HTTP failure: " + status);
+            break;
+          }
+        }
+      } catch (ConnectException ce) {
+        final String why = ce.getMessage() + " " + server;
+        if (controller instanceof SimpleController) {
+          final SimpleController sc = (SimpleController) controller;
+          if (sc.retry()) {
+            continue;
+          } else {
+            controller.setFailed(controller.errorText() + ": " + why);
+            break;
+          }
+        } else {
+          controller.setFailed(why);
+          break;
+        }
+      } catch (IOException err) {
+        controller.setFailed("HTTP failure: " + err.getMessage());
+        break;
+      } finally {
+        conn.releaseConnection();
+      }
+
+      if (responseMessage instanceof RetryRequestLaterResponse) {
+        if (controller instanceof SimpleController) {
+          final SimpleController sc = (SimpleController) controller;
+          if (sc.retry()) {
+            continue;
+          }
+        }
+
+        controller.setFailed("remote requested retry");
+        break;
+      }
+
+      if (responseMessage != null) {
+        done.run(responseMessage);
+      }
+
+      break;
+    }
+
+    entity.destroy();
+  }
+
+  private Message parseResponse(final PostMethod conn,
+      final Message responsePrototype) throws IOException {
+    final Header typeHeader = conn.getResponseHeader("Content-Type");
+    if (typeHeader == null) {
+      throw new IOException("No Content-Type in response");
+    }
+    final String[] typeTokens = typeHeader.getValue().split("; ");
+    if (!MessageRequestEntity.TYPE.equals(typeTokens[0])) {
+      throw new IOException("Invalid Content-Type " + typeHeader.getValue());
+    }
+
+    String rspName = null;
+    String rspCompress = null;
+    for (int i = 1; i < typeTokens.length; i++) {
+      final String tok = typeTokens[i];
+      if (tok.startsWith("name=")) {
+        rspName = tok.substring("name=".length());
+      } else if (tok.startsWith("compress=")) {
+        rspCompress = tok.substring("compress=".length());
+      }
+    }
+
+    String expName = responsePrototype.getDescriptorForType().getFullName();
+    final Builder builder;
+    if (expName.equals(rspName)) {
+      builder = responsePrototype.newBuilderForType();
+    } else if (rspName.equals(RETRY_LATER.getDescriptorForType().getFullName())) {
+      builder = RETRY_LATER.newBuilderForType();
+    } else {
+      throw new IOException("Expected a " + expName + " got " + rspName);
+    }
+
+    InputStream in = conn.getResponseBodyAsStream();
+    if ("deflate".equals(rspCompress)) {
+      in = new InflaterInputStream(in);
+    } else if (rspCompress != null) {
+      throw new IOException("Unsupported compression " + rspCompress);
+    }
+
+    try {
+      builder.mergeFrom(in);
+    } finally {
+      in.close();
+    }
+    return builder.build();
+  }
+
+  private synchronized void ensureAuthenticated() throws IOException {
+    if (!authenticated) {
+      if (userEmail != null && userPassword != null) {
+        computeAuthCookie(computeAuthToken());
+      }
+      authenticated = true;
+    }
+  }
+
+  private String computeAuthToken() throws IOException {
+    final PostMethod conn = new PostMethod();
+    try {
+      conn.setDoAuthentication(false);
+      conn.setURI(LOGIN);
+      conn.setRequestBody(new NameValuePair[] {
+          new NameValuePair("Email", userEmail),
+          new NameValuePair("Passwd", userPassword),
+          new NameValuePair("service", "ah"),
+          new NameValuePair("source", "gerrit-codereview-manager"),
+          new NameValuePair("accountType", "HOSTED_OR_GOOGLE")});
+
+      final int status = http.executeMethod(conn);
+      final Map<String, String> rsp =
+          splitPairs(conn.getResponseBodyAsStream());
+      if (status != HttpStatus.SC_OK) {
+        throw new IOException("Authentication failed: " + rsp.get("Error"));
+      }
+      return rsp.get("Auth");
+    } finally {
+      conn.releaseConnection();
+    }
+  }
+
+  private void computeAuthCookie(final String authToken) throws IOException {
+    final GetMethod conn = new GetMethod();
+    try {
+      conn.setFollowRedirects(false);
+      conn.setDoAuthentication(false);
+      conn.setURI(new URI(server, "/_ah/login", true));
+      conn.setQueryString(new NameValuePair[] {
+          new NameValuePair("continue", AUTH_CONTINUE_TOKEN),
+          new NameValuePair("auth", authToken),});
+
+      final int status = http.executeMethod(conn);
+      final Header location = conn.getResponseHeader("Location");
+      if (status != HttpStatus.SC_MOVED_TEMPORARILY || location == null
+          || !AUTH_CONTINUE_TOKEN.equals(location.getValue())) {
+        throw new IOException("Obtaining authentication cookie failed: "
+            + status);
+      }
+    } finally {
+      conn.releaseConnection();
+    }
+  }
+
+  private Map<String, String> splitPairs(final InputStream cin)
+      throws IOException {
+    final HashMap<String, String> rsp = new HashMap<String, String>();
+    final BufferedReader in =
+        new BufferedReader(new InputStreamReader(cin, ENC));
+    try {
+      String line;
+      while ((line = in.readLine()) != null) {
+        final int eq = line.indexOf('=');
+        if (eq >= 0) {
+          rsp.put(line.substring(0, eq), line.substring(eq + 1));
+        }
+      }
+    } finally {
+      in.close();
+    }
+    return rsp;
+  }
+
+  private void sign(final PostMethod conn) throws IOException {
+    conn.setRequestHeader("X-Date-UTC", xDateUTC());
+
+    final StringBuilder b = new StringBuilder();
+
+    b.append("POST ");
+    b.append(conn.getPath());
+    b.append('\n');
+
+    b.append("X-Date-UTC: ");
+    b.append(conn.getRequestHeader("X-Date-UTC").getValue());
+    b.append('\n');
+
+    b.append("Content-Type: ");
+    b.append(conn.getRequestEntity().getContentType());
+    b.append('\n');
+
+    b.append('\n');
+
+    final String sec;
+    try {
+      final Mac m = Mac.getInstance("HmacSHA1");
+      m.init(new SecretKeySpec(apiKey, "HmacSHA1"));
+      m.update(b.toString().getBytes("UTF-8"));
+      conn.getRequestEntity().writeRequest(new OutputStream() {
+        @Override
+        public void write(byte[] b, int off, int len) {
+          m.update(b, off, len);
+        }
+
+        @Override
+        public void write(int b) {
+          m.update((byte) b);
+        }
+      });
+      sec = Base64.encodeBytes(m.doFinal());
+    } catch (NoSuchAlgorithmException e) {
+      throw new IOException("No HmacSHA1 support:" + e.getMessage());
+    } catch (InvalidKeyException e) {
+      throw new IOException("Invalid key: " + e.getMessage());
+    }
+    conn.setRequestHeader("Authorization", "proto :" + sec);
+  }
+
+  private String xDateUTC() {
+    return String.valueOf(System.currentTimeMillis() / 1000L);
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/rpc/MessageRequestEntity.java b/mgrapp/src/com/google/codereview/rpc/MessageRequestEntity.java
new file mode 100644
index 0000000..ba9afd3
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/rpc/MessageRequestEntity.java
@@ -0,0 +1,88 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.rpc;
+
+import com.google.protobuf.Message;
+
+import org.apache.commons.httpclient.methods.RequestEntity;
+import org.spearce.jgit.lib.NullProgressMonitor;
+import org.spearce.jgit.util.TemporaryBuffer;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.zip.DeflaterOutputStream;
+
+/**
+ * Formats a protocol buffer Message into an HTTP request body.
+ * <p>
+ * The compressed binary serialized form is always used.
+ */
+public class MessageRequestEntity implements RequestEntity {
+  /** Content-Type for a protocol buffer. */
+  public static final String TYPE = "application/x-google-protobuf";
+
+  private final Message msg;
+  private final String name;
+  private final TemporaryBuffer temp;
+
+  /**
+   * Create a new request for a single message.
+   * 
+   * @param m the message to serialize and transmit.
+   * @throws IOException the message could not be compressed into temporary
+   *         storage. The local file system may be full, or the message is
+   *         unable to compress itself.
+   */
+  public MessageRequestEntity(final Message m) throws IOException {
+    msg = m;
+    name = msg.getDescriptorForType().getFullName();
+    temp = new TemporaryBuffer();
+    final DeflaterOutputStream dos = new DeflaterOutputStream(temp);
+    try {
+      msg.writeTo(dos);
+    } finally {
+      dos.close();
+    }
+  }
+
+  public long getContentLength() {
+    return (int) temp.length();
+  }
+
+  public String getContentType() {
+    return TYPE + "; name=" + name + "; compress=deflate";
+  }
+
+  public boolean isRepeatable() {
+    return true;
+  }
+
+  public void writeRequest(final OutputStream out) throws IOException {
+    temp.writeTo(out, NullProgressMonitor.INSTANCE);
+  }
+
+  public void destroy() {
+    temp.destroy();
+  }
+
+  @Override
+  public String toString() {
+    final StringBuilder r = new StringBuilder();
+    r.append(name);
+    r.append('\n');
+    r.append(msg.toString());
+    return r.toString();
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/rpc/SimpleController.java b/mgrapp/src/com/google/codereview/rpc/SimpleController.java
new file mode 100644
index 0000000..6f0736c
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/rpc/SimpleController.java
@@ -0,0 +1,97 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.rpc;
+
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.RpcController;
+
+import java.util.Random;
+
+/**
+ * A simple controller which does not support cancellation.
+ * <p>
+ * Users should check {@link #failed()} to determine if a call failed.
+ */
+public class SimpleController implements RpcController {
+  private static final int SLEEP_MIN = 100; // milliseconds
+  private static final int SLEEP_MAX = 2 * 60 * 1000; // milliseconds
+  private static final int MAX_ATTEMPT_PERIOD = 30 * 60 * 1000; // milliseconds
+  private static final ThreadLocal<Random> SLEEP_RNG =
+      new ThreadLocal<Random>() {
+        @Override
+        protected Random initialValue() {
+          return new Random();
+        }
+      };
+
+  private static int waitTime() {
+    return SLEEP_MIN + SLEEP_RNG.get().nextInt(SLEEP_MAX - SLEEP_MIN);
+  }
+
+  private String errorText;
+  private long start;
+
+  public String errorText() {
+    return errorText;
+  }
+
+  public boolean failed() {
+    return errorText != null;
+  }
+
+  public void reset() {
+    errorText = null;
+  }
+
+  public void setFailed(final String reason) {
+    errorText = reason;
+  }
+
+  public void startCancel() {
+    throw new UnsupportedOperationException();
+  }
+
+  public boolean isCanceled() {
+    return false;
+  }
+
+  public void notifyOnCancel(final RpcCallback<Object> callback) {
+    throw new UnsupportedOperationException();
+  }
+
+  boolean retry() {
+    if (System.currentTimeMillis() - start < MAX_ATTEMPT_PERIOD) {
+      try {
+        Thread.sleep(waitTime());
+      } catch (InterruptedException ie) {
+        // Just let the thread continue anyway.
+      }
+      return true;
+    }
+
+    if (start == 0) {
+      setFailed("retry not supported by the RpcChannel");
+      return false;
+    }
+
+    final int s = MAX_ATTEMPT_PERIOD / 1000;
+    setFailed("cannot complete in <" + s + " seconds");
+    return false;
+  }
+
+  void markFirstRequest() {
+    start = System.currentTimeMillis();
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/util/GitMetaUtil.java b/mgrapp/src/com/google/codereview/util/GitMetaUtil.java
new file mode 100644
index 0000000..0625a6f
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/util/GitMetaUtil.java
@@ -0,0 +1,73 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.util;
+
+import com.google.codereview.internal.GitMeta.GitCommit;
+import com.google.codereview.internal.GitMeta.GitPerson;
+
+import org.spearce.jgit.lib.PersonIdent;
+import org.spearce.jgit.lib.Repository;
+import org.spearce.jgit.revwalk.RevCommit;
+
+import java.io.File;
+import java.io.IOException;
+
+public class GitMetaUtil {
+  public static GitCommit toGitCommit(final RevCommit c) {
+    final GitCommit.Builder b = GitCommit.newBuilder();
+    b.setId(c.getId().name());
+    for (final RevCommit p : c.getParents())
+      b.addParentId(p.getId().name());
+    b.setAuthor(toGitPerson(c.getAuthorIdent()));
+    b.setCommitter(toGitPerson(c.getCommitterIdent()));
+    b.setMessage(c.getFullMessage());
+    b.setSubject(c.getShortMessage());
+    return b.build();
+  }
+
+  public static GitPerson toGitPerson(final PersonIdent who) {
+    final GitPerson.Builder b = GitPerson.newBuilder();
+    b.setName(who.getName());
+    b.setEmail(who.getEmailAddress());
+    b.setWhen((int) (who.getWhen().getTime() / 1000L));
+    b.setTz(who.getTimeZoneOffset());
+    return b.build();
+  }
+
+  public static boolean isGitRepository(final File gitdir) {
+    return new File(gitdir, "config").isFile()
+        && new File(gitdir, "HEAD").isFile()
+        && new File(gitdir, "objects").isDirectory()
+        && new File(gitdir, "refs/heads").isDirectory();
+  }
+
+  public static Repository open(final File gitdir) throws IOException {
+    if (isGitRepository(gitdir)) {
+      return new Repository(gitdir);
+    }
+
+    if (isGitRepository(new File(gitdir, ".git"))) {
+      return new Repository(new File(gitdir, ".git"));
+    }
+
+    final String name = gitdir.getName();
+    final File parent = gitdir.getParentFile();
+    if (isGitRepository(new File(parent, name + ".git"))) {
+      return new Repository(new File(parent, name + ".git"));
+    }
+
+    return null;
+  }
+}
diff --git a/mgrapp/src/com/google/codereview/util/MutableBoolean.java b/mgrapp/src/com/google/codereview/util/MutableBoolean.java
new file mode 100644
index 0000000..1329d4a
--- /dev/null
+++ b/mgrapp/src/com/google/codereview/util/MutableBoolean.java
@@ -0,0 +1,33 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.util;
+
+import com.google.protobuf.RpcCallback;
+
+/**
+ * A simple boolean which can be modified.
+ * <p>
+ * This can be useful in a {@link RpcCallback}.
+ */
+public class MutableBoolean {
+  public boolean value;
+
+  public MutableBoolean() {
+  }
+
+  public MutableBoolean(final boolean initial) {
+    value = initial;
+  }
+}
diff --git a/mgrapp/src/com/google/githacks/BrokenShallowRepositoryCreator.java b/mgrapp/src/com/google/githacks/BrokenShallowRepositoryCreator.java
new file mode 100644
index 0000000..1682dd6
--- /dev/null
+++ b/mgrapp/src/com/google/githacks/BrokenShallowRepositoryCreator.java
@@ -0,0 +1,270 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.githacks;
+
+import com.google.codereview.util.GitMetaUtil;
+
+import org.spearce.jgit.lib.Constants;
+import org.spearce.jgit.lib.LockFile;
+import org.spearce.jgit.lib.ObjectId;
+import org.spearce.jgit.lib.PackWriter;
+import org.spearce.jgit.lib.Ref;
+import org.spearce.jgit.lib.RefUpdate;
+import org.spearce.jgit.lib.Repository;
+import org.spearce.jgit.lib.TextProgressMonitor;
+import org.spearce.jgit.revwalk.RevCommit;
+import org.spearce.jgit.revwalk.RevObject;
+import org.spearce.jgit.revwalk.RevWalk;
+import org.spearce.jgit.treewalk.TreeWalk;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Creates a broken shallow repository with a populated assumed base.
+ * <p>
+ * Broken shallow repositories contain a handful of commits (the assumed base)
+ * and the trees referenced by those commits, but not the blobs or the commit
+ * ancestors. These repositories are meant to only be used as a source to fetch
+ * an overlay from, where the native Git protocol negotiated the assumed base as
+ * the common ancestor.
+ * <p>
+ * The created repository is not marked as shallow and does not have any grafts
+ * in it. Clients (or applications) which attempt to walk back through history
+ * beyond the assumed base will encounter missing objects and crash. Not
+ * configuring the shallow or grafts file is a "data integrity" feature to
+ * ensure that clients fetching or cloning from this shallow repository will not
+ * be able to succeed, as they do not (and would not receive) the needed but
+ * missing objects.
+ */
+public class BrokenShallowRepositoryCreator {
+  /**
+   * Create (or update) broken shallow repositories, recursively.
+   * 
+   * @param srcTop the root of the source tree.
+   * @param dstTop the root of the destination tree.
+   * @throws IOException a repository failed to be converted.
+   */
+  public static void createRecursive(final File srcTop, final File dstTop)
+      throws IOException {
+    final File[] srcEntries = srcTop.listFiles();
+    if (srcEntries == null) {
+      return;
+    }
+
+    for (final File srcEnt : srcEntries) {
+      final String srcName = srcEnt.getName();
+      if (srcName.equals(".") || srcName.equals("..")) {
+        continue;
+      } else if (!srcEnt.isDirectory()) {
+        continue;
+      } else if (GitMetaUtil.isGitRepository(srcEnt)) {
+        create(srcEnt, new File(dstTop, srcEnt.getName()));
+      } else {
+        createRecursive(srcEnt, new File(dstTop, srcEnt.getName()));
+      }
+    }
+  }
+
+  /**
+   * Create (or update) a broken shallow repository.
+   * 
+   * @param srcGitDir the source repository, where commits and trees can be
+   *        copied from.
+   * @param dstGitDir the destination repository, where the tree data (but not
+   *        blob data) will be packed into. If this directory does not exist it
+   *        will be automatically created.
+   * @throws IOException there was an error reading from the source or writing
+   *         to the destination repository.
+   */
+  public static void create(final File srcGitDir, final File dstGitDir)
+      throws IOException {
+    final Repository srcdb = new Repository(srcGitDir);
+
+    final RevWalk srcwalk = new RevWalk(srcdb);
+    final List<ObjectId> assumed = readAssumedBase(srcdb);
+    final List<RevObject> toCopy = new ArrayList<RevObject>(assumed.size() * 2);
+    final TreeWalk tw = new TreeWalk(srcdb);
+    for (final ObjectId id : assumed) {
+      final RevCommit c = srcwalk.parseCommit(id);
+      toCopy.add(c);
+      toCopy.add(c.getTree());
+
+      tw.reset();
+      tw.addTree(c.getTree());
+
+      while (tw.next()) {
+        switch (tw.getFileMode(0).getObjectType()) {
+          case Constants.OBJ_TREE:
+            toCopy.add(srcwalk.lookupTree(tw.getObjectId(0)));
+            tw.enterSubtree();
+            break;
+          case Constants.OBJ_BLOB:
+            break;
+          default:
+            break;
+        }
+      }
+    }
+
+    final Repository destdb = new Repository(dstGitDir);
+    if (!destdb.getDirectory().exists()) {
+      destdb.create();
+    }
+
+    final List<ObjectId> destAssumed = readAssumedBase(destdb);
+    destAssumed.addAll(assumed);
+    writeAssumedBase(destdb, destAssumed);
+
+    if (destAssumed.isEmpty()) {
+      // Nothing assumed, it doesn't need special processing from us.
+      //
+      return;
+    }
+
+    System.out.println("Packing " + destdb.getDirectory());
+
+    // Prepare pack of the assumed base. Clients wouldn't need to
+    // fetch this pack, as they already have its contents.
+    //
+    PackWriter packer = new PackWriter(srcdb, new TextProgressMonitor());
+    packer.preparePack(toCopy.iterator());
+    storePack(destdb, packer);
+
+    // Prepare a pack of everything else not in the assumed base. This
+    // would need to be fetched. We build it second so it has a newer
+    // timestamp when it goes into the list of packs, and will therefore
+    // be searched first by clients.
+    //
+    final Map<String, Ref> srcrefs = srcdb.getAllRefs();
+    final List<ObjectId> need = new ArrayList<ObjectId>();
+    for (final Ref r : srcrefs.values()) {
+      need.add(r.getObjectId());
+    }
+    packer = new PackWriter(srcdb, new TextProgressMonitor());
+    packer.preparePack(need, destAssumed, false, false);
+    storePack(destdb, packer);
+
+    // Force all of the refs in destdb to match srcdb. We want full
+    // mirroring style semantics now that the objects are in place.
+    //
+    final RevWalk dstwalk = new RevWalk(destdb);
+    destdb.writeSymref(Constants.HEAD, srcdb.getFullBranch());
+    for (final Ref r : destdb.getAllRefs().values()) {
+      if (!srcrefs.containsKey(r.getName())) {
+        final RefUpdate u = destdb.updateRef(r.getName());
+        u.setForceUpdate(true);
+        u.delete(dstwalk);
+      }
+    }
+
+    for (final Ref r : srcrefs.values()) {
+      final RefUpdate u = destdb.updateRef(r.getName());
+      if (u.getOldObjectId() == null
+          || !u.getOldObjectId().equals(r.getObjectId())) {
+        u.setNewObjectId(r.getObjectId());
+        u.setForceUpdate(true);
+        u.update(dstwalk);
+      }
+    }
+
+    srcdb.close();
+    destdb.close();
+  }
+
+  private static void storePack(final Repository destdb, PackWriter packer)
+      throws FileNotFoundException, IOException {
+    final String packName = "pack-" + packer.computeName().name();
+    final File packDir = new File(destdb.getObjectsDirectory(), "pack");
+    final File packPath = new File(packDir, packName + ".pack");
+    final File idxPath = new File(packDir, packName + ".idx");
+
+    if (!packPath.exists() && !idxPath.exists()) {
+      {
+        final OutputStream os = new FileOutputStream(packPath);
+        try {
+          packer.writePack(os);
+        } finally {
+          os.close();
+        }
+        packPath.setReadOnly();
+      }
+      {
+        final OutputStream os = new FileOutputStream(idxPath);
+        try {
+          packer.writeIndex(os);
+        } finally {
+          os.close();
+        }
+        idxPath.setReadOnly();
+      }
+    }
+  }
+
+  private static List<ObjectId> readAssumedBase(final Repository db)
+      throws IOException {
+    final List<ObjectId> list = new ArrayList<ObjectId>();
+    try {
+      final BufferedReader br;
+
+      br = new BufferedReader(new FileReader(infoAssumedBase(db)));
+      try {
+        String line;
+        while ((line = br.readLine()) != null) {
+          list.add(ObjectId.fromString(line));
+        }
+      } finally {
+        br.close();
+      }
+    } catch (FileNotFoundException noList) {
+      // Ignore it. We'll return an empty list to the caller.
+    }
+    return list;
+  }
+
+  private static void writeAssumedBase(final Repository db,
+      final List<ObjectId> newList) throws IOException {
+    if (newList == null || newList.isEmpty()) {
+      infoAssumedBase(db).delete();
+      return;
+    }
+
+    final LockFile lf = new LockFile(infoAssumedBase(db));
+    if (!lf.lock()) {
+      throw new IOException("Cannot lock " + infoAssumedBase(db));
+    }
+
+    final OutputStream ow = lf.getOutputStream();
+    for (final ObjectId id : newList) {
+      id.copyTo(ow);
+    }
+    ow.close();
+    if (!lf.commit()) {
+      throw new IOException("Cannot commit " + infoAssumedBase(db));
+    }
+  }
+
+  private static File infoAssumedBase(final Repository db) {
+    return new File(db.getDirectory(), "info/assumed-base");
+  }
+}
diff --git a/proto/internal/admin.proto b/proto/internal/admin.proto
new file mode 100644
index 0000000..b7f156e
--- /dev/null
+++ b/proto/internal/admin.proto
@@ -0,0 +1,23 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+import "sync_project.proto";
+
+service AdminService {
+  rpc SyncProject(SyncProjectRequest)
+  returns (SyncProjectResponse);
+}
diff --git a/proto/internal/build.proto b/proto/internal/build.proto
new file mode 100644
index 0000000..ebe0bea
--- /dev/null
+++ b/proto/internal/build.proto
@@ -0,0 +1,37 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+import "submit_build.proto";
+import "post_build_result.proto";
+import "prune_builds.proto";
+
+service BuildService {
+  // Denote that a project build is starting.
+  //
+  rpc SubmitBuild(SubmitBuildRequest)
+  returns (SubmitBuildResponse);
+
+  // Update an open build attempt with its status.
+  //
+  rpc PostBuildResult(PostBuildResultRequest)
+  returns (PostBuildResultResponse);
+
+  // Clear out any build logs we don't need any more.
+  //
+  rpc PruneBuilds(PruneBuildsRequest)
+  returns (PruneBuildsResponse);
+}
diff --git a/proto/internal/bundle_store.proto b/proto/internal/bundle_store.proto
new file mode 100644
index 0000000..bbdbd5d
--- /dev/null
+++ b/proto/internal/bundle_store.proto
@@ -0,0 +1,43 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+import "next_received_bundle.proto";
+import "prune_bundles.proto";
+import "update_received_bundle.proto";
+
+service BundleStoreService {
+  // Grab the next available bundle.  The bundle is deferred from
+  // processing for a short period of time to avoid duplicate work.
+  //
+  rpc NextReceivedBundle(NextReceivedBundleRequest)
+  returns (NextReceivedBundleResponse);
+
+  // Get a single, specific segment of a bundle.
+  //
+  rpc BundleSegment(BundleSegmentRequest)
+  returns (BundleSegmentResponse);
+
+  // Acknowledge a bundle as received into Git.
+  //
+  rpc UpdateReceivedBundle(UpdateReceivedBundleRequest)
+  returns (UpdateReceivedBundleResponse);
+
+  // Clear out any bundles we don't need any longer.
+  //
+  rpc PruneBundles(PruneBundlesRequest)
+  returns (PruneBundlesResponse);
+}
diff --git a/proto/internal/change.proto b/proto/internal/change.proto
new file mode 100644
index 0000000..d4a8e6c
--- /dev/null
+++ b/proto/internal/change.proto
@@ -0,0 +1,37 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+import "complete_patchset.proto";
+import "submit_change.proto";
+import "upload_patchset_file.proto";
+
+service ChangeService {
+  // Create a change and (empty) patchset for a Git commit.
+  //
+  rpc SubmitChange(SubmitChangeRequest)
+  returns (SubmitChangeResponse);
+
+  // Attaches a file to an existing patchset
+  //
+  rpc UploadPatchsetFile(UploadPatchsetFileRequest)
+  returns (UploadPatchsetFileResponse);
+
+  // Mark a patchset as complete (fully uploaded)
+  //
+  rpc CompletePatchset(CompletePatchsetRequest)
+  returns (CompletePatchsetResponse);
+}
diff --git a/proto/internal/complete_patchset.proto b/proto/internal/complete_patchset.proto
new file mode 100644
index 0000000..e016f78
--- /dev/null
+++ b/proto/internal/complete_patchset.proto
@@ -0,0 +1,31 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+message CompletePatchsetRequest {
+  // Unique key for the patchset.
+  //
+  required string patchset_key = 10;
+
+  // Complete list of paths in this patch.  Paths are
+  // encoded in UTF-8, null delimited and the list is
+  // compressed with deflate to reduce storage space.
+  //
+  optional bytes compressed_filenames = 11;
+}
+
+message CompletePatchsetResponse {
+}
diff --git a/proto/internal/git_meta.proto b/proto/internal/git_meta.proto
new file mode 100644
index 0000000..8c6e3b2
--- /dev/null
+++ b/proto/internal/git_meta.proto
@@ -0,0 +1,63 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+message GitPerson {
+  // "Givenname Surname" of the person this identifies.
+  //
+  required string name = 1;
+
+  // "who@example.com"; email address of the person.
+  //
+  required string email = 2;
+
+  // UTC seconds since epoch of the time event
+  //
+  required int32 when = 3;
+
+  // Person's preferred timezone offset, minutes east of UTC.
+  //
+  required int32 tz = 4;
+}
+
+message GitCommit {
+  // Commit hash as a hex string.
+  //
+  required string id = 1;
+
+  // Parent commit(s) this commit depends upon in ancestry.
+  // Formatted as hex strings.
+  //
+  repeated string parent_id = 2;
+
+  // Identity of the author of the commit.
+  //
+  required GitPerson author = 3;
+
+  // Identity of the committer (creator) of the commit.
+  // If not present use author instead (as committer is
+  // identical to author, a very common case).
+  //
+  optional GitPerson committer = 4;
+
+  // Message body of the commit.
+  //
+  optional string message = 5;
+
+  // First line (no LF) of the message.
+  //
+  optional string subject = 6;
+}
diff --git a/proto/internal/merge.proto b/proto/internal/merge.proto
new file mode 100644
index 0000000..40024dc
--- /dev/null
+++ b/proto/internal/merge.proto
@@ -0,0 +1,38 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+import "pending_merge.proto";
+import "post_branch_update.proto";
+import "post_merge_result.proto";
+
+service MergeService {
+  // Grab the next available pending merge.
+  //
+  rpc NextPendingMerge(PendingMergeRequest)
+  returns (PendingMergeResponse);
+
+  // Updates the status of a pending merge.
+  //
+  rpc PostMergeResult(PostMergeResultRequest)
+  returns (PostMergeResultResponse);
+
+  // Notify the data store that a branch has
+  // updated to a new revision.
+  //
+  rpc PostBranchUpdate(PostBranchUpdateRequest)
+  returns (PostBranchUpdateResponse);
+}
diff --git a/proto/internal/next_received_bundle.proto b/proto/internal/next_received_bundle.proto
new file mode 100644
index 0000000..d556eee
--- /dev/null
+++ b/proto/internal/next_received_bundle.proto
@@ -0,0 +1,73 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+message NextReceivedBundleRequest {
+}
+
+message NextReceivedBundleResponse {
+  enum CodeType {
+    BUNDLE_AVAILABLE = 1;
+    QUEUE_EMPTY = 2;
+  }
+  required CodeType status_code = 1;
+
+  // Unique identification of this bundle record.
+  //
+  optional string bundle_key = 2;
+
+  // Name of the project this bundle is applied to.
+  //
+  optional string dest_project = 3;
+
+  // Key of the project this bundle is applied to.
+  //
+  optional string dest_project_key = 4;
+
+  // Key of the branch the uploader thought the bundle
+  // should be applied to.
+  //
+  optional string dest_branch_key = 5;
+
+  // The unmodified bundle file, including its header.
+  //
+  optional bytes bundle_data = 6;
+
+  // Total number of segments in the bundle.
+  //
+  optional int32 n_segments = 8;
+
+  // Identification key for the owner of the bundle.
+  // Issues created will be tied back to them.
+  //
+  optional string owner = 7;
+}
+
+message BundleSegmentRequest {
+  required string bundle_key = 10;
+  required int32 segment_id = 11;
+}
+
+message BundleSegmentResponse {
+  enum CodeType {
+    DATA = 1;
+
+    UNKNOWN_BUNDLE = 2;
+    UNKNOWN_SEGMENT = 3;
+  }
+  required CodeType status_code = 10;
+  optional bytes bundle_data = 11;
+}
diff --git a/proto/internal/pending_merge.proto b/proto/internal/pending_merge.proto
new file mode 100644
index 0000000..b7ed3d5
--- /dev/null
+++ b/proto/internal/pending_merge.proto
@@ -0,0 +1,64 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+// Request for the next available pending merge
+//
+message PendingMergeRequest {
+}
+
+// A single revision needing to be merged
+//
+message PendingMergeItem {
+  // Unique key of the PatchSet to merge
+  //
+  required string patchset_key = 1;
+
+  // Revision in the VCS
+  //
+  required string revision_id = 2;
+}
+
+// A repository+branch pair, and the commits to merge into it
+//
+message PendingMergeResponse {
+  enum CodeType {
+    QUEUE_EMPTY = 1;
+    MERGE_READY = 2;
+  }
+  required CodeType status_code = 10;
+
+  // The repository the merge should take place in
+  //
+  optional string dest_project_name = 11;
+
+  // Unique key for the repository
+  //
+  optional string dest_project_key = 12;
+
+  // The branch the result of the merge goes into
+  //
+  optional string dest_branch_name = 13;
+
+  // Unique key for the branch (and repository).
+  //
+  optional string dest_branch_key = 14;
+
+  // One or more commits to merge into dest_branch
+  // (all commits must be in dest_repository already)
+  //
+  repeated PendingMergeItem change = 1;
+}
diff --git a/proto/internal/post_branch_update.proto b/proto/internal/post_branch_update.proto
new file mode 100644
index 0000000..5d99b2b
--- /dev/null
+++ b/proto/internal/post_branch_update.proto
@@ -0,0 +1,30 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+message PostBranchUpdateRequest {
+  // Unique key for the branch (and repository).
+  //
+  required string branch_key = 10;
+
+  // Unique keys of the PatchSets which were added
+  // into the branch.
+  //
+  repeated string new_change = 1;
+}
+
+message PostBranchUpdateResponse {
+}
diff --git a/proto/internal/post_build_result.proto b/proto/internal/post_build_result.proto
new file mode 100644
index 0000000..c0be468
--- /dev/null
+++ b/proto/internal/post_build_result.proto
@@ -0,0 +1,68 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+// Update a build entity with the results of the build
+// (status of build, log file)
+//
+message PostBuildResultRequest {
+  // Unique number assigned by a previous SubmitBuildResponse
+  //
+  required int32 build_id = 10;
+
+  enum ResultType {
+    SUCCESS = 1;   // the build (and/or tests) completed normally
+    FAILURE = 2;   // the build (and/or tests) did not pass
+  }
+  required ResultType build_status = 11;
+
+  // Complete output (log file and/or captured stdout/stderr)
+  // This message usually contains embedded newlines and is
+  // the direct output of 'make' or some other process.
+  //
+  optional string build_log = 12;
+}
+
+// Information about a branch that needs to finish merging
+//
+message PostBuildResultResponse {
+  // The repository the merge should take place in
+  //
+  optional string dest_project_name = 10;
+
+  // Unique key for the repository
+  //
+  optional string dest_project_key = 11;
+
+  // The branch the result of the merge goes into
+  //
+  optional string dest_branch_name = 12;
+
+  // Unique key for the branch (and repository).
+  //
+  optional string dest_branch_key = 13;
+
+  // Revision the branch should advance to if the branch
+  // wants to advance based on the build result.
+  //
+  optional string revision_id = 14;
+
+  // Unique keys of the PatchSets which would be added
+  // to the branch if the branch is updated to match
+  // revision_id
+  //
+  repeated string new_change = 1;
+}
diff --git a/proto/internal/post_merge_result.proto b/proto/internal/post_merge_result.proto
new file mode 100644
index 0000000..cea6371
--- /dev/null
+++ b/proto/internal/post_merge_result.proto
@@ -0,0 +1,43 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+message MergeResultItem {
+  enum CodeType {
+    CLEAN_MERGE = 1;        // change merged clean
+    ALREADY_MERGED = 2;     // previously merged into the branch
+    MISSING_DEPENDENCY = 3; // another issue is still required
+    PATH_CONFLICT = 4;      // path level conflict; not trivial
+  }
+  required CodeType status_code = 1;
+
+  // Unique key of the PatchSet to merge
+  //
+  required string patchset_key = 2;
+}
+
+message PostMergeResultRequest {
+  // Unique key of the branch this merge submits into.
+  //
+  required string dest_branch_key = 10;
+
+  // Individual patch set update responses
+  //
+  repeated MergeResultItem change = 1;
+}
+
+message PostMergeResultResponse {
+}
diff --git a/proto/internal/prune_builds.proto b/proto/internal/prune_builds.proto
new file mode 100644
index 0000000..326de5c
--- /dev/null
+++ b/proto/internal/prune_builds.proto
@@ -0,0 +1,27 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+message PruneBuildsRequest {
+}
+
+message PruneBuildsResponse {
+  enum CodeType {
+    BUILDS_PRUNED = 1;
+    QUEUE_EMPTY = 2;
+  }
+  required CodeType status_code = 10;
+}
diff --git a/proto/internal/prune_bundles.proto b/proto/internal/prune_bundles.proto
new file mode 100644
index 0000000..baa0c0e
--- /dev/null
+++ b/proto/internal/prune_bundles.proto
@@ -0,0 +1,27 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+message PruneBundlesRequest {
+}
+
+message PruneBundlesResponse {
+  enum CodeType {
+    BUNDLES_PRUNED = 1;
+    QUEUE_EMPTY = 2;
+  }
+  required CodeType status_code = 10;
+}
diff --git a/proto/internal/submit_build.proto b/proto/internal/submit_build.proto
new file mode 100644
index 0000000..e369184
--- /dev/null
+++ b/proto/internal/submit_build.proto
@@ -0,0 +1,26 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+message SubmitBuildRequest {
+  required string branch_key = 10;
+  required string revision_id = 11;
+  repeated string new_change = 1;
+}
+
+message SubmitBuildResponse {
+  optional int32 build_id = 10;
+}
diff --git a/proto/internal/submit_change.proto b/proto/internal/submit_change.proto
new file mode 100644
index 0000000..3ff4371
--- /dev/null
+++ b/proto/internal/submit_change.proto
@@ -0,0 +1,55 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+import "git_meta.proto";
+
+message SubmitChangeRequest {
+  // Key of the branch the owner wants the change on.
+  //
+  required string dest_branch_key = 10;
+
+  // Parsed description of the commit at the tip of topic_branch.
+  // Identity of the change owner (usually this is the
+  // bundle owner).
+  //
+  required string owner = 11;
+
+  // Dependencies are inferred by commit.parent_id.
+  //
+  required GitCommit commit = 12;
+}
+
+message SubmitChangeResponse {
+  enum CodeType {
+    CREATED = 1;
+    PATCHSET_EXISTS = 2;
+    UNKNOWN_BRANCH = 3;
+  }
+  required CodeType status_code = 10;
+
+  // The identifier for the change.
+  //
+  optional int32 change_id = 11;
+
+  // Identifier for the patchset within the change.
+  //
+  optional int32 patchset_id = 12;
+
+  // Unique key for the patchset.
+  //
+  optional string patchset_key = 13;
+}
diff --git a/proto/internal/sync_project.proto b/proto/internal/sync_project.proto
new file mode 100644
index 0000000..f661da7
--- /dev/null
+++ b/proto/internal/sync_project.proto
@@ -0,0 +1,31 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+import "git_meta.proto";
+
+message BranchSync {
+  required string branch_name = 1;
+  required GitCommit commit = 2;
+}
+
+message SyncProjectRequest {
+  required string project_name = 10;
+  repeated BranchSync branch = 1;
+}
+
+message SyncProjectResponse {
+}
diff --git a/proto/internal/update_received_bundle.proto b/proto/internal/update_received_bundle.proto
new file mode 100644
index 0000000..13f2e06
--- /dev/null
+++ b/proto/internal/update_received_bundle.proto
@@ -0,0 +1,44 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+message UpdateReceivedBundleRequest {
+  enum CodeType {
+    UNPACKED_OK = 1;
+    UNKNOWN_PROJECT = 2;
+    INVALID_BUNDLE = 3;
+    MISSING_BASE = 4;
+    SUSPEND_BUNDLE = 5;
+  }
+  required CodeType status_code = 1;
+
+  // Unique identification of the bundle record.
+  //
+  required string bundle_key = 2;
+
+  // Exception details related to why the bundle is bad.
+  //
+  optional string error_details = 3;
+}
+
+message UpdateReceivedBundleResponse {
+  enum CodeType {
+    UPDATED = 1;
+    UNKNOWN_BUNDLE = 2;
+    INVALID_STATE = 3;
+  }
+  required CodeType status_code = 1;
+}
diff --git a/proto/internal/upload_patchset_file.proto b/proto/internal/upload_patchset_file.proto
new file mode 100644
index 0000000..3c1748b
--- /dev/null
+++ b/proto/internal/upload_patchset_file.proto
@@ -0,0 +1,61 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview.internal;
+option java_package = "com.google.codereview.internal";
+
+import "git_meta.proto";
+
+message UploadPatchsetFileRequest {
+  // Unique key for the patchset.
+  //
+  required string patchset_key = 10;
+
+  // Path of the file once the patch is applied
+  //
+  required string file_name = 11;
+
+  // Type of change made to the file
+  //
+  enum StatusType {
+    ADD = 1;
+    MODIFY = 2;
+    DELETE = 3;
+  }
+  required StatusType status = 13;
+
+  // Deflated base content for the file (pre-image), encoding
+  // is not specified, but should be UTF-8.  base_id is the
+  // Git style blob SHA-1 hash of the inflated base_data.
+  //
+  optional bytes base_z = 14;
+  optional string base_id = 15;
+
+  // Deflated gerrit friendly patch format for the file
+  //
+  optional bytes patch_z = 16;
+  optional string patch_id = 17;
+  optional string final_id = 18;
+}
+
+message UploadPatchsetFileResponse {
+  enum CodeType {
+    CREATED = 1;
+
+    CLOSED = 2;           // the patchset is not accepting files
+    UNKNOWN_PATCHSET = 3; // the patchset key is invalid
+    PATCHING_ERROR = 4;   // the patch could not be applied
+  }
+  required CodeType status_code = 10;
+}
diff --git a/proto/need_retry.proto b/proto/need_retry.proto
new file mode 100644
index 0000000..d1b02fe
--- /dev/null
+++ b/proto/need_retry.proto
@@ -0,0 +1,29 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview;
+option java_package = "com.google.codereview";
+
+// Message sent in reply to any "atomic" RPC asking
+// the client to sleep a bit, then resubmit the same
+// request message to the server.
+//
+// If any work was performed before the retry was
+// returned, the server assures the client that
+// duplicate records won't be created as a result
+// of the resubmission.
+//
+
+message RetryRequestLaterResponse {
+}
diff --git a/proto/review.proto b/proto/review.proto
new file mode 100644
index 0000000..ffc5934
--- /dev/null
+++ b/proto/review.proto
@@ -0,0 +1,32 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview;
+option java_package = "com.google.codereview";
+
+import "upload_bundle.proto";
+
+// Review service operations available to users.
+//
+service ReviewService {
+  // Upload a Git bundle file for review and merging.
+  //
+  rpc UploadBundle (UploadBundleRequest)
+  returns (UploadBundleResponse);
+
+  // Continue uploading a partial bundle.
+  //
+  rpc ContinueBundle (UploadBundleContinue)
+  returns (UploadBundleResponse);
+}
diff --git a/proto/upload_bundle.proto b/proto/upload_bundle.proto
new file mode 100644
index 0000000..47fc968
--- /dev/null
+++ b/proto/upload_bundle.proto
@@ -0,0 +1,98 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package codereview;
+option java_package = "com.google.codereview";
+
+// Uploads a bundle to start a review process.
+//
+
+message UploadBundleRequest {
+  // Name of the project this bundle is applied to.
+  //
+  required string dest_project = 10;
+
+  // Name of the branch the uploader thinks it should
+  // have its tip commit merged into.
+  //
+  required string dest_branch = 11;
+
+  // Set if this is a partial bundle upload.  Remaining
+  // segments can be supplied with UploadBundleContinue.
+  //
+  required bool partial_upload = 12;
+
+  // The unmodified bundle file, including its text based header.
+  //
+  // The bundle must have exactly 1 ref available, but the
+  // name of the ref does not matter.  It only needs to be
+  // a valid ref name ("refs/..." or "HEAD").
+  //
+  // This may be a partial fragment of the bundle, in which
+  // case the partial_upload flag must be set.
+  //
+  required bytes bundle_data = 13;
+
+  // An object id known to be in this bundle.  Typically only
+  // commits and/or annotated tags would be enumerated here.
+  //
+  repeated string contained_object = 1;
+}
+
+message UploadBundleResponse {
+  enum CodeType {
+    RECEIVED = 1;         // the bundle is fully uploaded
+    CONTINUE = 4;         // client should use UploadBundleContinue
+
+    UNAUTHORIZED_USER = 7;  // the user account is not allowed to upload
+
+    UNKNOWN_PROJECT = 2;  // the project is invalid
+    UNKNOWN_BRANCH = 3;   // the branch is invalid
+    UNKNOWN_BUNDLE = 5;   // the bundle id is invalid
+    NOT_BUNDLE_OWNER = 6; // the bundle is not your bundle
+    BUNDLE_CLOSED = 8;    // the bundle is already uploaded
+  }
+  required CodeType status_code = 10;
+
+  // Unique identification of this bundle record.
+  // (RECEIVED, CONTINUE)
+  //
+  optional string bundle_id = 11;
+}
+
+message UploadBundleContinue {
+  // The bundle identifier supplied by UploadBundleResponse
+  //
+  required string bundle_id = 10;
+
+  // The segment number of this segment in the bundle.
+  //
+  // The first segment (created by UploadBundleRequest)
+  // is always 1.  The first UploadBundleContinue should
+  // use a segment_id of 2.
+  //
+  required int32 segment_id = 11;
+
+  // Set if this is a partial bundle upload.  Remaining
+  // segments can be supplied with UploadBundleContinue.
+  //
+  required bool partial_upload = 12;
+
+  // The next data segment for the bundle.
+  //
+  // This may be a partial fragment of the bundle, in which
+  // case the partial_upload flag must be set.
+  //
+  optional bytes bundle_data = 13;
+}
diff --git a/test-utils.sh b/test-utils.sh
new file mode 100644
index 0000000..5f82930
--- /dev/null
+++ b/test-utils.sh
@@ -0,0 +1,165 @@
+#
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+## 
+## Source this script into your shell:
+##
+##   . test-utils.sh
+##
+## so that you can run:
+##
+##   gerrit clean
+##   gerrit reset
+##   gerrit gae
+##   gerrit crm
+##
+## to setup a local testing environment using the Google App Engine
+## SDK and a local Java installation.
+##
+
+TEST_DIR=test
+TEST_CRM_DATA_DIR=$TEST_DIR/crm-data
+TEST_GERRIT_DATASTORE_DIR=$TEST_DIR/gerrit-datastore
+
+TEST_CLIENT0=$TEST_DIR/client0
+TEST_CLIENT1=$TEST_DIR/client1
+TEST_LOCAL_CONFIG=$TEST_DIR/localhost.config
+
+TEST_CRM_PASSWORD_FILE=$TEST_DIR/.crm-password
+
+function gerrit-clean()
+{
+  rm -rf $TEST_DIR
+}
+
+function gerrit-reset()
+{
+  FULL_GIT_BASE=`pwd`/$TEST_CRM_DATA_DIR
+
+  # delete the old data
+  gerrit-clean
+
+  # make the crm data
+  FULL_CRM_DATA_FILE=`pwd`/crm-data.tar.gz
+  mkdir -p $TEST_DIR/crm-data
+  ( cd $TEST_CRM_DATA_DIR ; tar zxf $FULL_CRM_DATA_FILE )
+
+  # make two git clients (should use repo)
+  mkdir -p $TEST_CLIENT0
+  ( cd $TEST_CLIENT0 ; git clone $FULL_GIT_BASE/test.git > /dev/null)
+  mkdir -p $TEST_CLIENT1
+  ( cd $TEST_CLIENT1 ; git clone $FULL_GIT_BASE/test.git > /dev/null)
+
+  make all
+
+  # make localhost.config
+  echo "[user]" > $TEST_LOCAL_CONFIG
+  echo "  name = Gerrit Code Review" >> $TEST_LOCAL_CONFIG
+  echo "  email = gerrit@localhost" >> $TEST_LOCAL_CONFIG
+  echo "" >> $TEST_LOCAL_CONFIG
+  echo "[codereview]" >> $TEST_LOCAL_CONFIG
+  echo "  server = http://localhost:8080/" >> $TEST_LOCAL_CONFIG
+  echo "  basedir = $(pwd)/$TEST_CRM_DATA_DIR"  >> $TEST_LOCAL_CONFIG
+  echo "  username = android-git@google.com" >> $TEST_LOCAL_CONFIG
+  echo "  secureconfig = .crm-password" \
+      >> $TEST_LOCAL_CONFIG
+  echo "  sleep = 10" >> $TEST_LOCAL_CONFIG
+  echo "  threads = 1" >> $TEST_LOCAL_CONFIG
+
+  echo
+  echo "Finished.  Now you can run:"
+  echo "   gerrit gae   to run the app engine server"
+  echo "   gerrit crm   to run the crm server"
+  echo
+}
+
+
+# pack the git repository into a new crm-data.tar.gz
+function gerrit-pack-crm-data()
+{
+  FULL_CRM_DATA_FILE=`pwd`/crm-data.tar.gz
+  rm -f crm-data.tar.gz
+  ( cd $TEST_CRM_DATA_DIR ; tar czf $FULL_CRM_DATA_FILE * )
+}
+
+# run the google app engine dev server
+function gerrit-gae()
+{
+  FULL_GERRIT_DATASTORE_DIR=`pwd`/$TEST_GERRIT_DATASTORE_DIR
+  make serve DATASTORE=$FULL_GERRIT_DATASTORE_DIR
+}
+
+# run the crm server
+function gerrit-crm()
+{
+  if [ ! -f $TEST_CRM_PASSWORD_FILE ] ; then
+    ( curl http://localhost:8080/dev_init > $TEST_CRM_PASSWORD_FILE )
+    ( ./mgrapp/bin/mgr $TEST_LOCAL_CONFIG sync)
+  fi
+  ( ./mgrapp/bin/mgr $TEST_LOCAL_CONFIG )
+}
+
+function gerrit-help()
+{
+  echo "commands:"
+  echo "  clean"
+  echo "  reset"
+  echo "  pack-crm-data"
+  echo "  gae"
+  echo "  crm"
+  echo "  upload"
+}
+
+function gerrit-upload()
+{
+  python2.5 ../../../webapp/git_upload.py -s localhost:8080 \
+    -e author@example.com -p test -b refs/heads/master -B HEAD^
+}
+
+# main gerrit command
+function gerrit()
+{
+  if [ ! -f test-utils.sh ] ; then
+    echo Run gerrit from the directory that contains test-utils.sh
+    return
+  fi
+
+  case $1 in
+    clean)
+      gerrit-clean
+      ;;
+    reset)
+      gerrit-reset
+      ;;
+    pack-crm-data)
+      gerrit-pack-crm-data
+      ;;
+    gae)
+      gerrit-gae
+      ;;
+    crm)
+      gerrit-crm
+      ;;
+    help)
+      gerrit-help
+      ;;
+    *)
+      echo invalid gerrit command $1
+      ;;
+  esac
+}
+
+
+# vi: sts=2 ts=2 sw=2 nocindent
diff --git a/tests_mgrapp/.classpath b/tests_mgrapp/.classpath
new file mode 100644
index 0000000..7ce87a6
--- /dev/null
+++ b/tests_mgrapp/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/mgrapp"/>
+	<classpathentry kind="output" path="out_classes"/>
+</classpath>
diff --git a/tests_mgrapp/.gitignore b/tests_mgrapp/.gitignore
new file mode 100644
index 0000000..7b04794
--- /dev/null
+++ b/tests_mgrapp/.gitignore
@@ -0,0 +1 @@
+/out_classes
diff --git a/tests_mgrapp/.project b/tests_mgrapp/.project
new file mode 100644
index 0000000..e4c1e9b
--- /dev/null
+++ b/tests_mgrapp/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>tests_mgrapp</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests_mgrapp/.settings/org.eclipse.core.resources.prefs b/tests_mgrapp/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..82eb859
--- /dev/null
+++ b/tests_mgrapp/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Sep 02 16:59:24 PDT 2008
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/tests_mgrapp/.settings/org.eclipse.core.runtime.prefs b/tests_mgrapp/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..8667cfd
--- /dev/null
+++ b/tests_mgrapp/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,3 @@
+#Tue Sep 02 16:59:24 PDT 2008
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/tests_mgrapp/.settings/org.eclipse.jdt.core.prefs b/tests_mgrapp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..fa64d21
--- /dev/null
+++ b/tests_mgrapp/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,268 @@
+#Thu Sep 04 11:18:51 PDT 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=16
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=0
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=0
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=2
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=3
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/tests_mgrapp/.settings/org.eclipse.jdt.ui.prefs b/tests_mgrapp/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..f37f6f0
--- /dev/null
+++ b/tests_mgrapp/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,9 @@
+#Tue Sep 02 17:00:18 PDT 2008
+eclipse.preferences.version=1
+formatter_profile=_Google Format
+formatter_settings_version=11
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com.google;com;junit;net;org;java;javax;
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
diff --git a/tests_mgrapp/src/com/google/codereview/TrashTestCase.java b/tests_mgrapp/src/com/google/codereview/TrashTestCase.java
new file mode 100644
index 0000000..c374b1a
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/TrashTestCase.java
@@ -0,0 +1,59 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview;
+
+import junit.framework.TestCase;
+
+import java.io.File;
+
+/**
+ * JUnit TestCase with support for creating a temporary directory.
+ */
+public abstract class TrashTestCase extends TestCase {
+  protected File tempRoot;
+
+  @Override
+  protected void setUp() throws Exception {
+    super.setUp();
+
+    tempRoot = File.createTempFile("codereview", "test");
+    tempRoot.delete();
+    tempRoot.mkdir();
+  }
+
+  @Override
+  protected void tearDown() throws Exception {
+    if (tempRoot != null) {
+      rm(tempRoot);
+    }
+    super.tearDown();
+  }
+
+  protected static void rm(final File dir) {
+    final File[] list = dir.listFiles();
+    for (int i = 0; list != null && i < list.length; i++) {
+      final File f = list[i];
+      if (f.getName().equals(".") || f.getName().equals("..")) {
+        continue;
+      }
+      if (f.isDirectory()) {
+        rm(f);
+      } else {
+        f.delete();
+      }
+    }
+    dir.delete();
+  }
+}
diff --git a/tests_mgrapp/src/com/google/codereview/manager/RepositoryCacheTest.java b/tests_mgrapp/src/com/google/codereview/manager/RepositoryCacheTest.java
new file mode 100644
index 0000000..8bf541a
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/manager/RepositoryCacheTest.java
@@ -0,0 +1,84 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager;
+
+import com.google.codereview.TrashTestCase;
+
+import org.spearce.jgit.lib.Repository;
+
+import java.io.File;
+
+public class RepositoryCacheTest extends TrashTestCase {
+  public void testCreateCache() {
+    final RepositoryCache rc = new RepositoryCache(tempRoot);
+  }
+
+  public void testLookupInvalidNames() {
+    final RepositoryCache rc = new RepositoryCache(tempRoot);
+    assertInvalidRepository(rc, "");
+    assertInvalidRepository(rc, "^");
+    assertInvalidRepository(rc, ".");
+    assertInvalidRepository(rc, "..");
+    assertInvalidRepository(rc, "../foo");
+    assertInvalidRepository(rc, "/foo");
+    assertInvalidRepository(rc, "/foo/bar");
+    assertInvalidRepository(rc, "bar/../foo");
+    assertInvalidRepository(rc, "bar\\..\\foo");
+  }
+
+  private void assertInvalidRepository(final RepositoryCache rc, final String n) {
+    try {
+      rc.get(n);
+      fail("Cache accepted name " + n);
+    } catch (InvalidRepositoryException err) {
+      assertEquals(n, err.getMessage());
+    }
+  }
+
+  public void testLookupNotCreatedRepository() {
+    final String name = "test.git";
+    final RepositoryCache rc = new RepositoryCache(tempRoot);
+    try {
+      rc.get(name);
+    } catch (InvalidRepositoryException err) {
+      assertEquals(name, err.getMessage());
+    }
+  }
+
+  public void testLookupExistingEmptyRepository() throws Exception {
+    final RepositoryCache rc = new RepositoryCache(tempRoot);
+
+    // Create after the cache is built, to test creation-on-the-fly.
+    //
+    final String[] names = {"test.git", "foo/bar/test.git"};
+    final File[] gitdir = new File[names.length];
+    for (int i = 0; i < names.length; i++) {
+      gitdir[i] = new File(tempRoot, names[i]);
+      final Repository r = new Repository(gitdir[i]);
+      r.create();
+      assertTrue(gitdir[i].isDirectory());
+    }
+
+    final Repository[] cached = new Repository[names.length];
+    for (int i = 0; i < names.length; i++) {
+      cached[i] = rc.get(names[i]);
+      assertNotNull(cached[i]);
+      assertEquals(gitdir[i], cached[i].getDirectory());
+    }
+    for (int i = 0; i < names.length; i++) {
+      assertSame(cached[i], rc.get(names[i]));
+    }
+  }
+}
diff --git a/tests_mgrapp/src/com/google/codereview/manager/unpack/DiffReaderTest.java b/tests_mgrapp/src/com/google/codereview/manager/unpack/DiffReaderTest.java
new file mode 100644
index 0000000..43f9141
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/manager/unpack/DiffReaderTest.java
@@ -0,0 +1,193 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import com.google.codereview.TrashTestCase;
+import com.google.codereview.internal.UploadPatchsetFile.UploadPatchsetFileRequest.StatusType;
+
+import org.spearce.jgit.lib.Commit;
+import org.spearce.jgit.lib.ObjectId;
+import org.spearce.jgit.lib.ObjectWriter;
+import org.spearce.jgit.lib.PersonIdent;
+import org.spearce.jgit.lib.Repository;
+import org.spearce.jgit.lib.Tree;
+import org.spearce.jgit.revwalk.RevCommit;
+import org.spearce.jgit.revwalk.RevWalk;
+
+import java.io.File;
+import java.io.IOException;
+
+public class DiffReaderTest extends TrashTestCase {
+  private Repository db;
+  private ObjectWriter writer;
+
+  @Override
+  protected void setUp() throws Exception {
+    super.setUp();
+
+    db = new Repository(new File(tempRoot, ".git"));
+    db.create();
+    writer = new ObjectWriter(db);
+  }
+
+  public void testAddOneTextFile_RootCommit() throws Exception {
+    final Tree top = new Tree(db);
+    final ObjectId blobId = blob("a\nb\n");
+    top.addFile("foo").setId(blobId);
+    final RevCommit c = commit(top);
+    final DiffReader dr = new DiffReader(db, c);
+
+    final FileDiff foo = dr.next();
+    assertNotNull(foo);
+    assertEquals("foo", foo.getFilename());
+    assertSame(StatusType.ADD, foo.getStatus());
+    assertEquals(ObjectId.zeroId(), foo.getBaseId());
+    assertEquals("diff --git a/foo b/foo\n" + "new file mode 100644\n"
+        + "index " + ObjectId.zeroId().name() + ".." + blobId.name() + "\n"
+        + "--- /dev/null\n" + "+++ b/foo\n" + "@@ -0,0 +1,2 @@\n" + "+a\n"
+        + "+b\n", foo.getPatch());
+
+    assertNull(dr.next());
+    dr.close();
+  }
+
+  public void testAddOneTextFile_ExistingTree() throws Exception {
+    final Tree top = new Tree(db);
+    final RevCommit parent = commit(top);
+    final ObjectId blobId = blob("a\nb\n");
+    top.addFile("foo").setId(blobId);
+    final RevCommit c = commit(top, parent);
+    final DiffReader dr = new DiffReader(db, c);
+
+    final FileDiff foo = dr.next();
+    assertNotNull(foo);
+    assertEquals("foo", foo.getFilename());
+    assertSame(StatusType.ADD, foo.getStatus());
+    assertEquals(ObjectId.zeroId(), foo.getBaseId());
+    assertEquals("diff --git a/foo b/foo\n" + "new file mode 100644\n"
+        + "index " + ObjectId.zeroId().name() + ".." + blobId.name() + "\n"
+        + "--- /dev/null\n" + "+++ b/foo\n" + "@@ -0,0 +1,2 @@\n" + "+a\n"
+        + "+b\n", foo.getPatch());
+
+    assertNull(dr.next());
+    dr.close();
+  }
+
+  public void testDeleteOneTextFile() throws Exception {
+    final Tree top = new Tree(db);
+    final ObjectId blobId = blob("a\nb\n");
+    top.addFile("foo").setId(blobId);
+    final RevCommit parent = commit(top);
+    top.findBlobMember("foo").delete();
+    final RevCommit c = commit(top, parent);
+    final DiffReader dr = new DiffReader(db, c);
+
+    final FileDiff foo = dr.next();
+    assertNotNull(foo);
+    assertEquals("foo", foo.getFilename());
+    assertSame(StatusType.DELETE, foo.getStatus());
+    assertEquals(blobId, foo.getBaseId());
+    assertEquals("diff --git a/foo b/foo\n" + "deleted file mode 100644\n"
+        + "index " + blobId.name() + ".." + ObjectId.zeroId().name() + "\n"
+        + "--- a/foo\n" + "+++ /dev/null\n" + "@@ -1,2 +0,0 @@\n" + "-a\n"
+        + "-b\n", foo.getPatch());
+
+    assertNull(dr.next());
+    dr.close();
+  }
+
+  public void testModifyTwoTextFiles() throws Exception {
+    final Tree top = new Tree(db);
+    final ObjectId barBaseId = blob("a\nc\n");
+    top.addFile("bar").setId(barBaseId);
+    final ObjectId fooBaseId = blob("a\nb\n");
+    top.addFile("foo").setId(fooBaseId);
+
+    final RevCommit parent = commit(top);
+    final ObjectId barNewId = blob("a\nd\nc\n");
+    top.findBlobMember("bar").setId(barNewId);
+    final ObjectId fooNewId = blob("a\nc\nb\n");
+    top.findBlobMember("foo").setId(fooNewId);
+
+    final RevCommit c = commit(top, parent);
+    final DiffReader dr = new DiffReader(db, c);
+
+    final FileDiff bar = dr.next();
+    assertNotNull(bar);
+    assertEquals("bar", bar.getFilename());
+    assertSame(StatusType.MODIFY, bar.getStatus());
+    assertEquals(barBaseId, bar.getBaseId());
+    assertEquals("diff --git a/bar b/bar\n" + "index " + barBaseId.name()
+        + ".." + barNewId.name() + " 100644\n" + "--- a/bar\n" + "+++ b/bar\n"
+        + "@@ -1,2 +1,3 @@\n" + " a\n" + "+d\n" + " c\n", bar.getPatch());
+
+    final FileDiff foo = dr.next();
+    assertNotNull(foo);
+    assertEquals("foo", foo.getFilename());
+    assertSame(StatusType.MODIFY, foo.getStatus());
+    assertEquals(fooBaseId, foo.getBaseId());
+    assertEquals("diff --git a/foo b/foo\n" + "index " + fooBaseId.name()
+        + ".." + fooNewId.name() + " 100644\n" + "--- a/foo\n" + "+++ b/foo\n"
+        + "@@ -1,2 +1,3 @@\n" + " a\n" + "+c\n" + " b\n", foo.getPatch());
+
+    assertNull(dr.next());
+    dr.close();
+  }
+
+  public void testAddBinaryFile() throws Exception {
+    final Tree top = new Tree(db);
+    final ObjectId blobId = blob("\0\1\2\0\1\2\0\1\2");
+    top.addFile("foo").setId(blobId);
+    final RevCommit c = commit(top);
+    final DiffReader dr = new DiffReader(db, c);
+
+    final FileDiff foo = dr.next();
+    assertNotNull(foo);
+    assertEquals("foo", foo.getFilename());
+    assertSame(StatusType.ADD, foo.getStatus());
+    assertEquals(ObjectId.zeroId(), foo.getBaseId());
+    assertEquals("diff --git a/foo b/foo\n" + "new file mode 100644\n"
+        + "index " + ObjectId.zeroId().name() + ".." + blobId.name() + "\n"
+        + "Binary files /dev/null and b/foo differ\n", foo.getPatch());
+
+    assertNull(dr.next());
+    dr.close();
+  }
+
+  private ObjectId blob(final String content) throws IOException {
+    return writer.writeBlob(content.getBytes("UTF-8"));
+  }
+
+  private RevCommit commit(final Tree top, final RevCommit... parents)
+      throws IOException {
+    final Commit c = new Commit(db);
+    c.setTreeId(writer.writeTree(top));
+    final ObjectId parentIds[] = new ObjectId[parents.length];
+    for (int i = 0; i < parents.length; i++) {
+      parentIds[i] = parents[i].getId();
+    }
+    c.setParentIds(parentIds);
+    c.setAuthor(new PersonIdent("A U Thor <a@example.com> 1 +0000"));
+    c.setCommitter(c.getAuthor());
+    c.setMessage("");
+    c.setCommitId(writer.writeCommit(c));
+    final RevWalk rw = new RevWalk(db);
+    final RevCommit r = rw.parseCommit(c.getCommitId());
+    for (final RevCommit p : r.getParents()) {
+      rw.parse(p);
+    }
+    return r;
+  }
+}
diff --git a/tests_mgrapp/src/com/google/codereview/manager/unpack/FileDiffTest.java b/tests_mgrapp/src/com/google/codereview/manager/unpack/FileDiffTest.java
new file mode 100644
index 0000000..6e866ea
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/manager/unpack/FileDiffTest.java
@@ -0,0 +1,88 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import com.google.codereview.internal.UploadPatchsetFile.UploadPatchsetFileRequest.StatusType;
+
+import junit.framework.TestCase;
+
+import org.spearce.jgit.lib.ObjectId;
+
+import java.io.UnsupportedEncodingException;
+
+public class FileDiffTest extends TestCase {
+  public void testConstructor() {
+    final FileDiff fd = new FileDiff();
+    assertNull(fd.getBaseId());
+    assertNull(fd.getFilename());
+    assertSame(StatusType.MODIFY, fd.getStatus());
+    assertEquals("", fd.getPatch());
+  }
+
+  public void testBaseId() {
+    final ObjectId id1 =
+        ObjectId.fromString("fc5ac44497e0548c32506b9c584248fc49bb9f97");
+    final ObjectId id2 =
+        ObjectId.fromString("8abf2492d8c5228192a3cba5528e47b3a4bb87e0");
+    final FileDiff fd = new FileDiff();
+    fd.setBaseId(id1);
+    assertSame(id1, fd.getBaseId());
+    fd.setBaseId(id2);
+    assertSame(id2, fd.getBaseId());
+  }
+
+  public void testFilename() {
+    final FileDiff fd = new FileDiff();
+    final String name1 = "foo";
+    final String name2 = "foo/bar/baz";
+    fd.setFilename(name1);
+    assertSame(name1, fd.getFilename());
+    fd.setFilename(name2);
+    assertSame(name2, fd.getFilename());
+  }
+
+  public void testStatus() {
+    final FileDiff fd = new FileDiff();
+    fd.setStatus(StatusType.ADD);
+    assertSame(StatusType.ADD, fd.getStatus());
+    fd.setStatus(StatusType.MODIFY);
+    assertSame(StatusType.MODIFY, fd.getStatus());
+    fd.setStatus(StatusType.DELETE);
+    assertSame(StatusType.DELETE, fd.getStatus());
+  }
+
+  public void testPatchBody() {
+    final FileDiff fd = new FileDiff();
+    final String n1 = "diff --git a/foo b/foo";
+    final String n2 = "--- a/foo";
+    final String n3 = "+++ b/foo";
+    final String n4 = "@@ -20,7 + 20,7 @@";
+
+    fd.appendLine(toBytes(n1));
+    fd.appendLine(toBytes(n2));
+    fd.appendLine(toBytes(n3));
+    fd.appendLine(toBytes(n4));
+    assertEquals(n1 + "\n" + n2 + "\n" + n3 + "\n" + n4 + "\n", fd.getPatch());
+  }
+
+  private static byte[] toBytes(final String s) {
+    final String enc = "UTF-8";
+    try {
+      return s.getBytes(enc);
+    } catch (UnsupportedEncodingException uee) {
+      throw new RuntimeException("No " + enc + " support?", uee);
+    }
+  }
+}
diff --git a/tests_mgrapp/src/com/google/codereview/manager/unpack/ReceivedBundleUnpackerTest.java b/tests_mgrapp/src/com/google/codereview/manager/unpack/ReceivedBundleUnpackerTest.java
new file mode 100644
index 0000000..cad463e
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/manager/unpack/ReceivedBundleUnpackerTest.java
@@ -0,0 +1,205 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import com.google.codereview.TrashTestCase;
+import com.google.codereview.internal.NextReceivedBundle.NextReceivedBundleRequest;
+import com.google.codereview.internal.NextReceivedBundle.NextReceivedBundleResponse;
+import com.google.codereview.internal.UpdateReceivedBundle.UpdateReceivedBundleRequest;
+import com.google.codereview.internal.UpdateReceivedBundle.UpdateReceivedBundleResponse;
+import com.google.codereview.manager.Backend;
+import com.google.codereview.manager.RepositoryCache;
+import com.google.codereview.rpc.MockRpcChannel;
+import com.google.protobuf.ByteString;
+import com.google.protobuf.Message;
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.RpcChannel;
+import com.google.protobuf.RpcController;
+import com.google.protobuf.Descriptors.MethodDescriptor;
+
+import org.spearce.jgit.lib.Repository;
+
+import java.io.File;
+
+public class ReceivedBundleUnpackerTest extends TrashTestCase {
+  private MockRpcChannel rpc;
+  private RepositoryCache repoCache;
+  private Backend server;
+
+  @Override
+  protected void setUp() throws Exception {
+    super.setUp();
+
+    rpc = new MockRpcChannel();
+    repoCache = new RepositoryCache(tempRoot);
+    server = new Backend(repoCache, rpc, null, null);
+    new Repository(new File(tempRoot, "foo.git")).create();
+  }
+
+  public void testNextReceivedBundle_EmptyQueue() throws Exception {
+    final ReceivedBundleUnpacker rbu = newRBU();
+    rpc.add(new RpcChannel() {
+      public void callMethod(final MethodDescriptor method,
+          final RpcController controller, final Message request,
+          final Message responsePrototype, final RpcCallback<Message> done) {
+        assertEquals("NextReceivedBundle", method.getName());
+        assertSame(NextReceivedBundleRequest.getDefaultInstance(), request);
+
+        final NextReceivedBundleResponse.Builder r =
+            NextReceivedBundleResponse.newBuilder();
+        r.setStatusCode(NextReceivedBundleResponse.CodeType.QUEUE_EMPTY);
+        done.run(r.build());
+      }
+    });
+    rbu.run();
+    rpc.assertAllCallsMade();
+  }
+
+  public void testNextReceivedBundle_GetBundle() throws Exception {
+    final String bundleKey = "bundle-key-abcd123efg";
+    final NextReceivedBundleResponse nrb[] = new NextReceivedBundleResponse[1];
+    final UpdateReceivedBundleRequest urbr[] =
+        new UpdateReceivedBundleRequest[1];
+
+    final ReceivedBundleUnpacker rbu =
+        new ReceivedBundleUnpacker(server) {
+          @Override
+          protected UpdateReceivedBundleRequest unpackImpl(
+              final NextReceivedBundleResponse rsp) {
+            assertNotNull("unpackImpl only after bundle available", nrb[0]);
+            assertSame(nrb[0], rsp);
+
+            final UpdateReceivedBundleRequest.Builder r =
+                UpdateReceivedBundleRequest.newBuilder();
+            r.setBundleKey(bundleKey);
+            r.setStatusCode(UpdateReceivedBundleRequest.CodeType.UNPACKED_OK);
+            urbr[0] = r.build();
+            return urbr[0];
+          }
+        };
+
+    rpc.add(new RpcChannel() {
+      public void callMethod(final MethodDescriptor method,
+          final RpcController controller, final Message request,
+          final Message responsePrototype, final RpcCallback<Message> done) {
+        assertEquals("NextReceivedBundle", method.getName());
+        assertSame(NextReceivedBundleRequest.getDefaultInstance(), request);
+
+        final NextReceivedBundleResponse.Builder r =
+            NextReceivedBundleResponse.newBuilder();
+        r.setStatusCode(NextReceivedBundleResponse.CodeType.BUNDLE_AVAILABLE);
+        r.setBundleKey(bundleKey);
+        r.setBundleData(ByteString.EMPTY);
+        r.setDestProject("foo.git");
+        r.setDestProjectKey("project:foo.git");
+        r.setDestBranchKey("branch:refs/heads/master");
+        r.setOwner("author@example.com");
+        nrb[0] = r.build();
+        done.run(nrb[0]);
+      }
+    });
+
+    rpc.add(new RpcChannel() {
+      public void callMethod(final MethodDescriptor method,
+          final RpcController controller, final Message request,
+          final Message responsePrototype, final RpcCallback<Message> done) {
+        assertEquals("UpdateReceivedBundle", method.getName());
+        assertSame(urbr[0], request);
+
+        final UpdateReceivedBundleResponse.Builder r =
+            UpdateReceivedBundleResponse.newBuilder();
+        r.setStatusCode(UpdateReceivedBundleResponse.CodeType.UPDATED);
+        done.run(r.build());
+      }
+    });
+
+    rpc.add(new RpcChannel() {
+      public void callMethod(final MethodDescriptor method,
+          final RpcController controller, final Message request,
+          final Message responsePrototype, final RpcCallback<Message> done) {
+        assertEquals("NextReceivedBundle", method.getName());
+        assertSame(NextReceivedBundleRequest.getDefaultInstance(), request);
+
+        final NextReceivedBundleResponse.Builder r =
+            NextReceivedBundleResponse.newBuilder();
+        r.setStatusCode(NextReceivedBundleResponse.CodeType.QUEUE_EMPTY);
+        done.run(r.build());
+      }
+    });
+
+    rbu.run();
+    assertNotNull(nrb[0]);
+    assertNotNull(urbr[0]);
+    rpc.assertAllCallsMade();
+  }
+
+  public void testNextReceivedBundle_RpcFailure() throws Exception {
+    final ReceivedBundleUnpacker rbu = newRBU();
+    rpc.add(new RpcChannel() {
+      public void callMethod(final MethodDescriptor method,
+          final RpcController controller, final Message request,
+          final Message responsePrototype, final RpcCallback<Message> done) {
+        assertEquals("NextReceivedBundle", method.getName());
+        controller.setFailed("mock failure");
+      }
+    });
+    rbu.run();
+    rpc.assertAllCallsMade();
+  }
+
+  public void testNextReceivedBundle_RuntimeException() throws Exception {
+    final String msg = "test-a-message-win-a-prize";
+    final ReceivedBundleUnpacker rbu = newRBU();
+    rpc.add(new RpcChannel() {
+      public void callMethod(final MethodDescriptor method,
+          final RpcController controller, final Message request,
+          final Message responsePrototype, final RpcCallback<Message> done) {
+        assertEquals("NextReceivedBundle", method.getName());
+        throw new RuntimeException(msg);
+      }
+    });
+    try {
+      rbu.run();
+      fail("Unpacker did not rethrow an unexpected runtime exception");
+    } catch (RuntimeException re) {
+      assertEquals(msg, re.getMessage());
+    }
+    rpc.assertAllCallsMade();
+  }
+
+  public void testNextReceivedBundle_RuntimeError() throws Exception {
+    final String msg = "test-a-message-win-a-prize";
+    final ReceivedBundleUnpacker rbu = newRBU();
+    rpc.add(new RpcChannel() {
+      public void callMethod(final MethodDescriptor method,
+          final RpcController controller, final Message request,
+          final Message responsePrototype, final RpcCallback<Message> done) {
+        assertEquals("NextReceivedBundle", method.getName());
+        throw new OutOfMemoryError(msg);
+      }
+    });
+    try {
+      rbu.run();
+      fail("Unpacker did not rethrow an unexpected OutOfMemoryError");
+    } catch (OutOfMemoryError re) {
+      assertEquals(msg, re.getMessage());
+    }
+    rpc.assertAllCallsMade();
+  }
+
+  private ReceivedBundleUnpacker newRBU() {
+    return new ReceivedBundleUnpacker(server);
+  }
+}
diff --git a/tests_mgrapp/src/com/google/codereview/manager/unpack/RecordInputStreamTest.java b/tests_mgrapp/src/com/google/codereview/manager/unpack/RecordInputStreamTest.java
new file mode 100644
index 0000000..c848af2
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/manager/unpack/RecordInputStreamTest.java
@@ -0,0 +1,135 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.manager.unpack;
+
+import junit.framework.TestCase;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+
+public class RecordInputStreamTest extends TestCase {
+  public void testEmptyStream() throws IOException {
+    final RecordInputStream in = b("");
+    assertEquals(-1, in.read());
+    assertEquals(-1, in.read());
+    assertEquals(-1, in.read(new byte[8], 0, 8));
+    assertNull(in.readRecord('\n'));
+    in.close();
+  }
+
+  public void testReadOneByte() throws IOException {
+    final String exp = "abc";
+    final RecordInputStream in = b(exp);
+    assertEquals(exp.charAt(0), in.read());
+    assertEquals(exp.charAt(1), in.read());
+    assertEquals(exp.charAt(2), in.read());
+    assertEquals(-1, in.read());
+    in.close();
+  }
+
+  public void testReadBlockOffset0() throws IOException {
+    final String exp = "abc";
+    final RecordInputStream in = b(exp);
+    final byte[] act = new byte[exp.length()];
+    assertEquals(act.length, in.read(act, 0, act.length));
+    assertEquals(exp.charAt(0), act[0]);
+    assertEquals(exp.charAt(1), act[1]);
+    assertEquals(exp.charAt(2), act[2]);
+    assertEquals(-1, in.read(act, 0, act.length));
+    in.close();
+  }
+
+  public void testReadBlockOffset1() throws IOException {
+    final String exp = "abc";
+    final RecordInputStream in = b(exp);
+    assertEquals(exp.charAt(0), in.read());
+    final byte[] act = new byte[exp.length() - 1];
+    assertEquals(act.length, in.read(act, 0, act.length));
+    assertEquals(exp.charAt(1), act[0]);
+    assertEquals(exp.charAt(2), act[1]);
+    assertEquals(-1, in.read(act, 0, act.length));
+    in.close();
+  }
+
+  public void testReadRecord_SeparatorOnly() throws IOException {
+    final String rec1 = "foo";
+    final String rec2 = "bar";
+    final char sep = '\0';
+    final RecordInputStream in = b(rec1 + sep + rec2);
+    assertTrue(Arrays.equals(toBytes(rec1), in.readRecord(sep)));
+    assertTrue(Arrays.equals(toBytes(rec2), in.readRecord(sep)));
+    assertNull(in.readRecord(sep));
+    in.close();
+  }
+
+  public void testReadRecord_Terminated() throws IOException {
+    final String rec1 = "foo";
+    final String rec2 = "bar";
+    final char sep = '\0';
+    final RecordInputStream in = b(rec1 + sep + rec2 + sep);
+    assertTrue(Arrays.equals(toBytes(rec1), in.readRecord(sep)));
+    assertTrue(Arrays.equals(toBytes(rec2), in.readRecord(sep)));
+    assertNull(in.readRecord(sep));
+    in.close();
+  }
+
+  public void testReadRecord_EmptyRecords() throws IOException {
+    final char sep = '\0';
+    final RecordInputStream in = b("" + sep + "" + sep);
+    assertTrue(Arrays.equals(new byte[0], in.readRecord(sep)));
+    assertTrue(Arrays.equals(new byte[0], in.readRecord(sep)));
+    assertNull(in.readRecord(sep));
+    in.close();
+  }
+
+  public void testReadRecord_PartialRecordInBuffer() throws IOException {
+    final int huge = 16 * 1024;
+    final StringBuilder temp = new StringBuilder(huge);
+    for (int i = 0; i < huge; i++) {
+      temp.append('x');
+    }
+    final char sep = '\n';
+    final String ts = temp.toString();
+    final RecordInputStream in = b(ts + "1" + sep + ts + "2");
+    assertEquals(ts + "1", toString(in.readRecord(sep)));
+    assertEquals(ts + "2", toString(in.readRecord(sep)));
+    assertNull(in.readRecord(sep));
+    in.close();
+  }
+
+  private static RecordInputStream b(final String s) {
+    return new RecordInputStream(new ByteArrayInputStream(toBytes(s)));
+  }
+
+  private static byte[] toBytes(final String s) {
+    final String enc = "UTF-8";
+    try {
+      return s.getBytes(enc);
+    } catch (UnsupportedEncodingException uee) {
+      throw new RuntimeException("No " + enc + " support?", uee);
+    }
+  }
+
+  private static String toString(final byte[] b) {
+    final String enc = "UTF-8";
+    try {
+      return new String(b, 0, b.length, enc);
+    } catch (UnsupportedEncodingException uee) {
+      throw new RuntimeException("No " + enc + " support?", uee);
+    }
+  }
+}
diff --git a/tests_mgrapp/src/com/google/codereview/rpc/MessageRequestEntityTest.java b/tests_mgrapp/src/com/google/codereview/rpc/MessageRequestEntityTest.java
new file mode 100644
index 0000000..adf5995
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/rpc/MessageRequestEntityTest.java
@@ -0,0 +1,61 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.rpc;
+
+import com.google.codereview.internal.SubmitChange.SubmitChangeResponse;
+import com.google.protobuf.Message;
+
+import junit.framework.TestCase;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.zip.DeflaterOutputStream;
+
+public class MessageRequestEntityTest extends TestCase {
+  public void testCompressedEntity() throws Exception {
+    final Message msg = buildMessage();
+    final byte[] bin = compress(msg);
+    final String contentType =
+        "application/x-google-protobuf"
+            + "; name=codereview.internal.SubmitChangeResponse"
+            + "; compress=deflate";
+
+    final MessageRequestEntity mre = new MessageRequestEntity(msg);
+    assertTrue(mre.isRepeatable());
+    assertEquals(bin.length, mre.getContentLength());
+    assertEquals(contentType, mre.getContentType());
+
+    for (int i = 0; i < 5; i++) {
+      final ByteArrayOutputStream compressed = new ByteArrayOutputStream();
+      mre.writeRequest(compressed);
+      assertTrue(Arrays.equals(bin, compressed.toByteArray()));
+    }
+  }
+
+  private static Message buildMessage() {
+    final SubmitChangeResponse.Builder r = SubmitChangeResponse.newBuilder();
+    r.setStatusCode(SubmitChangeResponse.CodeType.PATCHSET_EXISTS);
+    return r.build();
+  }
+
+  private static byte[] compress(final Message m) throws IOException {
+    final ByteArrayOutputStream out = new ByteArrayOutputStream();
+    final DeflaterOutputStream dos = new DeflaterOutputStream(out);
+    m.writeTo(dos);
+    dos.close();
+    return out.toByteArray();
+  }
+}
diff --git a/tests_mgrapp/src/com/google/codereview/rpc/MockRpcChannel.java b/tests_mgrapp/src/com/google/codereview/rpc/MockRpcChannel.java
new file mode 100644
index 0000000..4a1f1a4
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/rpc/MockRpcChannel.java
@@ -0,0 +1,48 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.rpc;
+
+import com.google.protobuf.Message;
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.RpcChannel;
+import com.google.protobuf.RpcController;
+import com.google.protobuf.Descriptors.MethodDescriptor;
+
+import junit.framework.TestCase;
+
+import java.util.LinkedList;
+
+public class MockRpcChannel implements RpcChannel {
+  private LinkedList<RpcChannel> calls = new LinkedList<RpcChannel>();
+
+  public void add(final RpcChannel c) {
+    calls.add(c);
+  }
+
+  public void callMethod(final MethodDescriptor method,
+      final RpcController controller, final Message request,
+      final Message responsePrototype, final RpcCallback<Message> done) {
+    if (calls.isEmpty()) {
+      TestCase.fail("Incorrect call for " + method.getFullName());
+    }
+
+    final RpcChannel c = calls.removeFirst();
+    c.callMethod(method, controller, request, responsePrototype, done);
+  }
+
+  public void assertAllCallsMade() {
+    TestCase.assertTrue(calls.isEmpty());
+  }
+}
diff --git a/tests_mgrapp/src/com/google/codereview/rpc/SimpleControllerTest.java b/tests_mgrapp/src/com/google/codereview/rpc/SimpleControllerTest.java
new file mode 100644
index 0000000..9496f45
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/rpc/SimpleControllerTest.java
@@ -0,0 +1,68 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.rpc;
+
+import com.google.protobuf.RpcCallback;
+
+import junit.framework.TestCase;
+
+public class SimpleControllerTest extends TestCase {
+  public void testDefaultConstructor() {
+    final SimpleController sc = new SimpleController();
+    assertNull(sc.errorText());
+    assertFalse(sc.failed());
+    assertFalse(sc.isCanceled());
+  }
+
+  public void testNotifyCancelUnsupported() {
+    try {
+      new SimpleController().notifyOnCancel(new RpcCallback<Object>() {
+        public void run(Object parameter) {
+          fail("Callback invoked during notifyOnCancel setup");
+        }
+      });
+      fail("notifyOnCancel accepted a callback");
+    } catch (UnsupportedOperationException e) {
+      // Pass
+    }
+  }
+
+  public void testStartCancelUnsupported() {
+    try {
+      new SimpleController().startCancel();
+      fail("startCancel did not fail");
+    } catch (UnsupportedOperationException e) {
+      // Pass
+    }
+  }
+
+  public void testSetFailed() {
+    final String reason = "we failed, yes we did";
+    final SimpleController sc = new SimpleController();
+    sc.setFailed(reason);
+    assertTrue(sc.failed());
+    assertSame(reason, sc.errorText());
+  }
+
+  public void testResetClearedFailure() {
+    final String reason = "we failed, yes we did";
+    final SimpleController sc = new SimpleController();
+    sc.setFailed(reason);
+    sc.reset();
+    assertNull(sc.errorText());
+    assertFalse(sc.failed());
+    assertFalse(sc.isCanceled());
+  }
+}
diff --git a/tests_mgrapp/src/com/google/codereview/util/MutableBooleanTest.java b/tests_mgrapp/src/com/google/codereview/util/MutableBooleanTest.java
new file mode 100644
index 0000000..7d4d646
--- /dev/null
+++ b/tests_mgrapp/src/com/google/codereview/util/MutableBooleanTest.java
@@ -0,0 +1,44 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.codereview.util;
+
+import junit.framework.TestCase;
+
+
+public class MutableBooleanTest extends TestCase {
+  public void testCreateDefault() {
+    final MutableBoolean b = new MutableBoolean();
+    assertFalse(b.value);
+  }
+
+  public void testCreateTrue() {
+    final MutableBoolean b = new MutableBoolean(true);
+    assertTrue(b.value);
+  }
+
+  public void testCreateFalse() {
+    final MutableBoolean b = new MutableBoolean(false);
+    assertFalse(b.value);
+  }
+
+  public void testMutable() {
+    final MutableBoolean b = new MutableBoolean();
+    assertFalse(b.value);
+    b.value = true;
+    assertTrue(b.value);
+    b.value = false;
+    assertFalse(b.value);
+  }
+}
diff --git a/webapp/.gitignore b/webapp/.gitignore
new file mode 100644
index 0000000..88e22b4
--- /dev/null
+++ b/webapp/.gitignore
@@ -0,0 +1,4 @@
+*.pyc
+/froofle
+/codereview/*_pb2.py
+/codereview/internal/*_pb2.py
diff --git a/webapp/TODO b/webapp/TODO
new file mode 100644
index 0000000..5e6493f
--- /dev/null
+++ b/webapp/TODO
@@ -0,0 +1,64 @@
+Bugs
+----
+
+If a user never logs in, someone else can grab their nickname
+See the issue tracker at code.google.com/p/gerrit for more bugs
+
+Data Cleaning
+-------------
+
+Email addresses should be lowercased before comparing
+Nicknames too???
+Nicknames should not be allowed to contain multiple internal spaces
+    nor internal whitespace other than space
+
+Sending Mail
+------------
+
+Should allow registered nicknames in Reviewers and CC fields
+Normalize emails to nicknames in these fields even when editing, if known
+
+Issues
+------
+
+Archive issues (that's per user rather than per issue)
+
+Patch Sets
+----------
+
+Edit patch set message
+Delete patch sets
+
+Searching, Organizing
+---------------------
+
+View all open issues by base, or by repository
+View all closed issues (issue 15 in the tracker)
+
+Commenting
+----------
+
+Add stars
+Add non-inline comments per file, per patchset, per issue
+Keyboard shortcut for entering a comment at the blue line
+    (isn't this already in the JS code?)
+
+Diffs and Patches
+-----------------
+
+Improve UI for selecting patch set deltas; handle missing files better
+Syntax colorization
+Record revision and show in UI; indicate action (add/edit/delete)
+Add line length option
+Need a more powerful way to specify the URL for finding a revision (?)
+
+User Experience
+---------------
+
+Make Edit Issue show the form inline instead of opening a new page?
+Right-justify the "Id" and "Drafts (mine)" headings in the Issues list table
+
+Software Engineering
+--------------------
+
+Unittests
diff --git a/webapp/__init__.py b/webapp/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/__init__.py
diff --git a/webapp/app.yaml b/webapp/app.yaml
new file mode 100644
index 0000000..fea66ed
--- /dev/null
+++ b/webapp/app.yaml
@@ -0,0 +1,28 @@
+application: gerrit-code-review-tool-demo
+version: 1
+runtime: python
+api_version: 1
+
+default_expiration: 7d  # This is good for images, which never change
+
+handlers:
+
+- url: /(robots.txt|favicon.ico)
+  static_files: static/\1
+  upload: static/(robots.txt|favicon.ico)
+
+- url: /google7db36eb2cc527940.html
+  static_files: static/robots.txt
+  upload: static/robots.txt
+
+- url: /(application_version)
+  static_files: static/\1
+  mime_type: text/plain
+  expiration: 1s
+  upload: static/application_version
+
+- url: /static
+  static_dir: static
+
+- url: .*
+  script: main.py
diff --git a/webapp/codereview/__init__.py b/webapp/codereview/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/codereview/__init__.py
diff --git a/webapp/codereview/dev_init.py b/webapp/codereview/dev_init.py
new file mode 100644
index 0000000..175f68b
--- /dev/null
+++ b/webapp/codereview/dev_init.py
@@ -0,0 +1,31 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Init the dev instance."""
+
+from django.http import HttpResponse
+
+import models
+from view_util import devenv_required
+
+@devenv_required
+def dev_init(request):
+  settings = models.Settings.get_settings()
+  key = settings.internal_api_key
+
+  return HttpResponse(
+    "[codereview]\n"
+    "    internalapikey = %s\n"
+    "\n"
+    % (key))
diff --git a/webapp/codereview/email.py b/webapp/codereview/email.py
new file mode 100644
index 0000000..61881c4
--- /dev/null
+++ b/webapp/codereview/email.py
@@ -0,0 +1,92 @@
+# Copyright 2008 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+
+from google.appengine.ext import db
+from google.appengine.api import mail
+from google.appengine.api import users
+
+import django.template
+
+import models
+import email
+
+def get_default_sender():
+  return models.Settings.get_settings().from_email
+
+def _encode_safely(s):
+  """Helper to turn a unicode string into 8-bit bytes."""
+  if isinstance(s, unicode):
+    s = s.encode('utf-8')
+  return s
+
+def _to_email_string(obj):
+  if isinstance(obj, str):
+    return obj
+  elif isinstance(obj, unicode):
+    return obj.encode('utf-8')
+  elif isinstance(obj, db.Email):
+    account = models.Account.get_account_for_email(obj)
+  elif isinstance(obj, users.User):
+    account = models.Account.get_account_for_user(obj)
+  elif isinstance(obj, models.Account):
+    account = obj
+  if account:
+    result = account.get_email_formatted()
+  else:
+    result = str(email)
+  return _encode_safely(result)
+
+def send(sender, to, subject, template, template_args):
+  """Sends an email based on a template.
+
+  All email address parameters can be: strings, unicode, db.Email users.User
+  or models.Account objects.
+
+  Args:
+    sender:   The From address.  Null if it should be sent from the role acct.
+    to:       An email address or a list of email address to be in the To field.
+    subject:  The subject line.
+    template: The name of the template file to use from the mail dir.
+    template_args:  A map of args to be pasaed to the template
+  """
+  if not sender:
+    sender_string = get_default_sender()
+    if not sender_string:
+      logging.warn('not sending email because there is no from address')
+      return 'not sending email because there is no from address'
+  else:
+    sender_string = _to_email_string(sender)
+  to_string = [_to_email_string(e) for e in to]
+  body = django.template.loader.render_to_string(template, template_args)
+  mail.send_mail(sender=sender_string, to=to_string, subject=subject, body=body)
+
+def make_change_subject(change):
+  subject = "(%s) %s" % (change.dest_project.name, change.subject)
+  if change.message_set.count(1) > 0:
+    subject = 'Re: ' + subject
+  return subject
+
+def send_change_message(request, change, template, template_args):
+  to_users = set([change.owner] + change.reviewers + change.cc)
+  subject = make_change_subject(change)
+  args = {
+      'url': request.build_absolute_uri('/%s' % change.key().id()),
+    }
+  if template_args:
+    args.update(template_args)
+  email.send(request.user, to_users, subject, template, args)
+
+
diff --git a/webapp/codereview/engine.py b/webapp/codereview/engine.py
new file mode 100644
index 0000000..a1f0777
--- /dev/null
+++ b/webapp/codereview/engine.py
@@ -0,0 +1,709 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Diff rendering in HTML for Gerrit."""
+
+# Python imports
+import re
+import cgi
+import difflib
+import logging
+import urlparse
+
+# AppEngine imports
+from google.appengine.api import urlfetch
+from google.appengine.api import users
+from google.appengine.ext import db
+
+# Django imports
+from django.template import loader
+
+# Local imports
+import library
+import models
+import patching
+import intra_region_diff
+
+
+# NOTE: this function is duplicated in upload.py, keep them in sync.
+def SplitPatch(data):
+  """Splits a patch into separate pieces for each file.
+
+  Args:
+    data: A string containing the output of svn diff.
+
+  Returns:
+    A list of 2-tuple (filename, text) where text is the svn diff output
+      pertaining to filename.
+  """
+  patches = []
+  filename = None
+  diff = []
+  for line in data.splitlines(True):
+    new_filename = None
+    if line.startswith('Index:'):
+      unused, new_filename = line.split(':', 1)
+      new_filename = new_filename.strip()
+    elif line.startswith('Property changes on:'):
+      unused, temp_filename = line.split(':', 1)
+      # When a file is modified, paths use '/' between directories, however
+      # when a property is modified '\' is used on Windows.  Make them the same
+      # otherwise the file shows up twice.
+      temp_filename = temp_filename.strip().replace('\\', '/')
+      if temp_filename != filename:
+        # File has property changes but no modifications, create a new diff.
+        new_filename = temp_filename
+    if new_filename:
+      if filename and diff:
+        patches.append((filename, ''.join(diff)))
+      filename = new_filename
+      diff = [line]
+      continue
+    if diff is not None:
+      diff.append(line)
+  if filename and diff:
+    patches.append((filename, ''.join(diff)))
+  return patches
+
+
+
+def RenderDiffTableRows(request, old_lines, chunks, patch,
+                        colwidth=80,
+                        debug=False,
+                        context=models.DEFAULT_CONTEXT):
+  """Render the HTML table rows for a side-by-side diff for a patch.
+
+  Args:
+    request: Django Request object.
+    old_lines: List of lines representing the original file.
+    chunks: List of chunks as returned by patching.ParsePatchToChunks().
+    patch: A models.Patch instance.
+    colwidth: Optional column width (default 80).
+    debug: Optional debugging flag (default False).
+    context: Maximum number of rows surrounding a change (default CONTEXT).
+
+  Yields:
+    Strings, each of which represents the text rendering one complete
+    pair of lines of the side-by-side diff, possibly including comments.
+    Each yielded string may consist of several <tr> elements.
+  """
+  rows =  _RenderDiffTableRows(request, old_lines, chunks, patch,
+                               colwidth, debug)
+  return _CleanupTableRowsGenerator(rows, context)
+
+
+def RenderDiff2TableRows(request, old_lines, old_patch, new_lines, new_patch,
+                         colwidth=80,
+                         debug=False,
+                         context=models.DEFAULT_CONTEXT):
+  """Render the HTML table rows for a side-by-side diff between two patches.
+
+  Args:
+    request: Django Request object.
+    old_lines: List of lines representing the patched file on the left.
+    old_patch: The models.Patch instance corresponding to old_lines.
+    new_lines: List of lines representing the patched file on the right.
+    new_patch: The models.Patch instance corresponding to new_lines.
+    colwidth: Optional column width (default 80).
+    debug: Optional debugging flag (default False).
+    context: Maximum number of visible context lines (default models.DEFAULT_CONTEXT).
+
+  Yields:
+    Strings, each of which represents the text rendering one complete
+    pair of lines of the side-by-side diff, possibly including comments.
+    Each yielded string may consist of several <tr> elements.
+  """
+  rows = _RenderDiff2TableRows(request, old_lines, old_patch,
+                               new_lines, new_patch, colwidth, debug)
+  return _CleanupTableRowsGenerator(rows, context)
+
+
+def _CleanupTableRowsGenerator(rows, context):
+  """Cleanup rows returned by _TableRowGenerator for output.
+
+  Args:
+    rows: List of tuples (tag, text)
+    context: Maximum number of visible context lines.
+
+  Yields:
+    Rows marked as 'equal' are possibly contracted using _ShortenBuffer().
+    Stops on rows marked as 'error'.
+  """
+  buffer = []
+  for tag, text in rows:
+    if tag == 'equal':
+      buffer.append(text)
+      continue
+    else:
+      for t in _ShortenBuffer(buffer, context):
+        yield t
+      buffer = []
+    yield text
+    if tag == 'error':
+      yield None
+      break
+  if buffer:
+    for t in _ShortenBuffer(buffer, context):
+      yield t
+
+
+def _ShortenBuffer(buffer, context):
+  """Render a possibly contracted series of HTML table rows.
+
+  Args:
+    buffer: a list of strings representing HTML table rows.
+    context: Maximum number of visible context lines.
+
+  Yields:
+    If the buffer has fewer than 3 times context items, yield all
+    the items.  Otherwise, yield the first context items, a single
+    table row representing the contraction, and the last context
+    items.
+  """
+  if len(buffer) < 3*context:
+    for t in buffer:
+      yield t
+  else:
+    last_id = None
+    for t in buffer[:context]:
+      m = re.match('^<tr( name="hook")? id="pair-(?P<rowcount>\d+)">', t)
+      if m:
+        last_id = int(m.groupdict().get("rowcount"))
+      yield t
+    skip = len(buffer) - 2*context
+    if skip <= 10:
+      expand_link = ('<a href="javascript:M_expandSkipped(%(before)d, '
+                     '%(after)d, \'b\', %(skip)d)">Show</a>')
+    else:
+      expand_link = ('<a href="javascript:M_expandSkipped(%(before)d, '
+                     '%(after)d, \'t\', %(skip)d)">Show 10 above</a> '
+                     '<a href="javascript:M_expandSkipped(%(before)d, '
+                     '%(after)d, \'b\', %(skip)d)">Show 10 below</a> ')
+    expand_link = expand_link % {'before': last_id+1,
+                                 'after': last_id+skip,
+                                 'skip': last_id}
+    yield ('<tr id="skip-%d"><td colspan="2" align="center" '
+           'style="background:lightblue">'
+           '(...skipping <span id="skipcount-%d">%d</span> matching lines...) '
+           '<span id="skiplinks-%d">%s</span>'
+           '</td></tr>\n' % (last_id, last_id, skip,
+                             last_id, expand_link))
+    for t in buffer[-context:]:
+      yield t
+
+
+def _RenderDiff2TableRows(request, old_lines, old_patch, new_lines, new_patch,
+                         colwidth=80, debug=False):
+  """Internal version of RenderDiff2TableRows().
+
+  Args:
+    The same as for RenderDiff2TableRows.
+
+  Yields:
+    Tuples (tag, row) where tag is an indication of the row type.
+  """
+  old_dict = {}
+  new_dict = {}
+  for patch, dct in [(old_patch, old_dict), (new_patch, new_dict)]:
+    # XXX GQL doesn't support OR yet...  Otherwise we'd be using that.
+    for comment in models.Comment.gql(
+        'WHERE patch = :1 AND left = FALSE ORDER BY date', patch):
+      if comment.draft and comment.author != request.user:
+        continue  # Only show your own drafts
+      comment.complete(patch)
+      lst = dct.setdefault(comment.lineno, [])
+      lst.append(comment)
+      library.prefetch_names([comment.author])
+  return _TableRowGenerator(old_patch, old_dict, len(old_lines)+1, 'new',
+                            new_patch, new_dict, len(new_lines)+1, 'new',
+                            _GenerateTriples(old_lines, new_lines),
+                            colwidth, debug)
+
+
+def _GenerateTriples(old_lines, new_lines):
+  """Helper for _RenderDiff2TableRows yielding input for _TableRowGenerator.
+
+  Args:
+    old_lines: List of lines representing the patched file on the left.
+    new_lines: List of lines representing the patched file on the right.
+
+  Yields:
+    Tuples (tag, old_slice, new_slice) where tag is a tag as returned by
+    difflib.SequenceMatchser.get_opcodes(), and old_slice and new_slice
+    are lists of lines taken from old_lines and new_lines.
+  """
+  sm = difflib.SequenceMatcher(None, old_lines, new_lines)
+  for tag, i1, i2, j1, j2 in sm.get_opcodes():
+    yield tag, old_lines[i1:i2], new_lines[j1:j2]
+
+
+def _GetComments(request):
+  """Helper that returns comments for a patch.
+
+  Args:
+    request: Django Request object.
+
+  Returns:
+    A 2-tuple of (old, new) where old/new are dictionaries that holds comments
+      for that file, mapping from line number to a Comment entity.
+  """
+  old_dict = {}
+  new_dict = {}
+  # XXX GQL doesn't support OR yet...  Otherwise we'd be using
+  # .gql('WHERE patch = :1 AND (draft = FALSE OR author = :2) ORDER BY data',
+  #      patch, request.user)
+  for comment in models.Comment.gql('WHERE patch = :1 ORDER BY date',
+                                    request.patch):
+    if comment.draft and comment.author != request.user:
+      continue  # Only show your own drafts
+    comment.complete(request.patch)
+    if comment.left:
+      dct = old_dict
+    else:
+      dct = new_dict
+    dct.setdefault(comment.lineno, []).append(comment)
+    library.prefetch_names([comment.author])
+  return old_dict, new_dict
+
+
+def _RenderDiffTableRows(request, old_lines, chunks, patch,
+                         colwidth=80, debug=False):
+  """Internal version of RenderDiffTableRows().
+
+  Args:
+    The same as for RenderDiffTableRows.
+
+  Yields:
+    Tuples (tag, row) where tag is an indication of the row type.
+  """
+  old_dict = {}
+  new_dict = {}
+  if patch:
+    old_dict, new_dict = _GetComments(request)
+  old_max, new_max = _ComputeLineCounts(old_lines, chunks)
+  return _TableRowGenerator(patch, old_dict, old_max, 'old',
+                            patch, new_dict, new_max, 'new',
+                            patching.PatchChunks(old_lines, chunks),
+                            colwidth, debug)
+
+
+def _TableRowGenerator(old_patch, old_dict, old_max, old_snapshot,
+                       new_patch, new_dict, new_max, new_snapshot,
+                       triple_iterator, colwidth=80, debug=False):
+  """Helper function to render side-by-side table rows.
+
+  Args:
+    old_patch: First models.Patch instance.
+    old_dict: Dictionary with line numbers as keys and comments as values (left)
+    old_max: Line count of the patch on the left.
+    old_snapshot: A tag used in the comments form.
+    new_patch: Second models.Patch instance.
+    new_dict: Same as old_dict, but for the right side.
+    new_max: Line count of the patch on the right.
+    new_snapshot: A tag used in the comments form.
+    triple_iterator: Iterator that yields (tag, old, new) triples.
+    colwidth: Optional column width (default 80).
+    debug: Optional debugging flag (default False).
+
+  Yields:
+    Tuples (tag, row) where tag is an indication of the row type and
+    row is an HTML fragment representing one or more <td> elements.
+  """
+  diff_params = intra_region_diff.GetDiffParams(dbg=debug)
+  ndigits = 1 + max(len(str(old_max)), len(str(new_max)))
+  indent = 1 + ndigits
+  old_offset = new_offset = 0
+  row_count = 0
+
+  # Render a row with a message if a side is empty or both sides are equal.
+  if old_patch == new_patch and (old_max == 0 or new_max == 0):
+    if old_max == 0:
+      msg_old = '(Empty)'
+    else:
+      msg_old = ''
+    if new_max == 0:
+      msg_new = '(Empty)'
+    else:
+      msg_new = ''
+    yield '', ('<tr><td class="info">%s</td>'
+               '<td class="info">%s</td></tr>' % (msg_old, msg_new))
+  # TODO(sop)
+  #elif old_patch == new_patch:
+  #  old_patch.patch_hash == new_patch.patch_hash
+  #  yield '', ('<tr><td class="info" colspan="2">'
+  #             '(Both sides are equal)</td></tr>')
+
+  for tag, old, new in triple_iterator:
+    if tag.startswith('error'):
+      yield 'error', '<tr><td><h3>%s</h3></td></tr>\n' % cgi.escape(tag)
+      return
+    old1 = old_offset
+    old_offset = old2 = old1 + len(old)
+    new1 = new_offset
+    new_offset = new2 = new1 + len(new)
+    old_buff = []
+    new_buff = []
+    frag_list = []
+    do_ir_diff = tag == 'replace' and intra_region_diff.CanDoIRDiff(old, new)
+
+    for i in xrange(max(len(old), len(new))):
+      row_count += 1
+      old_lineno = old1 + i + 1
+      new_lineno = new1 + i + 1
+      old_valid = old1+i < old2
+      new_valid = new1+i < new2
+
+      # Start rendering the first row
+      frags = []
+      if i == 0 and tag != 'equal':
+        # Mark the first row of each non-equal chunk as a 'hook'.
+        frags.append('<tr name="hook"')
+      else:
+        frags.append('<tr')
+      frags.append(' id="pair-%d">' % row_count)
+
+      old_intra_diff = ''
+      new_intra_diff = ''
+      if old_valid:
+        old_intra_diff = old[i]
+      if new_valid:
+        new_intra_diff = new[i]
+
+      frag_list.append(frags)
+      if do_ir_diff:
+        # Don't render yet. Keep saving state necessary to render the whole
+        # region until we have encountered all the lines in the region.
+        old_buff.append([old_valid, old_lineno, old_intra_diff])
+        new_buff.append([new_valid, new_lineno, new_intra_diff])
+      else:
+        # We render line by line as usual if do_ir_diff is false
+        old_intra_diff = intra_region_diff.Fold(
+          old_intra_diff, colwidth + indent, indent, indent)
+        new_intra_diff = intra_region_diff.Fold(
+          new_intra_diff, colwidth + indent, indent, indent)
+        old_buff_out = [[old_valid, old_lineno,
+                         (old_intra_diff, True, None)]]
+        new_buff_out = [[new_valid, new_lineno,
+                         (new_intra_diff, True, None)]]
+        for tg, frag in _RenderDiffInternal(old_buff_out, new_buff_out,
+                                            ndigits, tag, frag_list,
+                                            do_ir_diff,
+                                            old_dict, new_dict,
+                                            old_patch, new_patch,
+                                            old_snapshot, new_snapshot,
+                                            colwidth, debug):
+          yield tg, frag
+        frag_list = []
+
+    if do_ir_diff:
+      # So this was a replace block which means that the whole region still
+      # needs to be rendered.
+      old_lines = [b[2] for b in old_buff]
+      new_lines = [b[2] for b in new_buff]
+      ret = intra_region_diff.IntraRegionDiff(old_lines, new_lines,
+                                              diff_params)
+      old_chunks, new_chunks, ratio = ret
+      old_tag = 'old'
+      new_tag = 'new'
+
+      old_diff_out = intra_region_diff.RenderIntraRegionDiff(
+        old_lines, old_chunks, old_tag, ratio,
+        limit=colwidth, indent=indent,
+        dbg=debug)
+      new_diff_out = intra_region_diff.RenderIntraRegionDiff(
+        new_lines, new_chunks, new_tag, ratio,
+        limit=colwidth, indent=indent,
+        dbg=debug)
+      for (i, b) in enumerate(old_buff):
+        b[2] = old_diff_out[i]
+      for (i, b) in enumerate(new_buff):
+        b[2] = new_diff_out[i]
+
+      for tg, frag in _RenderDiffInternal(old_buff, new_buff,
+                                          ndigits, tag, frag_list,
+                                          do_ir_diff,
+                                          old_dict, new_dict,
+                                          old_patch, new_patch,
+                                          old_snapshot, new_snapshot,
+                                          colwidth, debug):
+        yield tg, frag
+      old_buff = []
+      new_buff = []
+
+
+def _CleanupTableRows(rows):
+  """Cleanup rows returned by _TableRowGenerator.
+
+  Args:
+    rows: Sequence of (tag, text) tuples.
+
+  Yields:
+    Rows marked as 'equal' are possibly contracted using _ShortenBuffer().
+    Stops on rows marked as 'error'.
+  """
+  buffer = []
+  for tag, text in rows:
+    if tag == 'equal':
+      buffer.append(text)
+      continue
+    else:
+      for t in _ShortenBuffer(buffer):
+        yield t
+      buffer = []
+    yield text
+    if tag == 'error':
+      yield None
+      break
+  if buffer:
+    for t in _ShortenBuffer(buffer):
+      yield t
+
+
+def _RenderDiffInternal(old_buff, new_buff, ndigits, tag, frag_list,
+                        do_ir_diff, old_dict, new_dict,
+                        old_patch, new_patch,
+                        old_snapshot, new_snapshot,
+                        colwidth, debug):
+  """Helper for _TableRowGenerator()."""
+  obegin = (intra_region_diff.BEGIN_TAG %
+            intra_region_diff.COLOR_SCHEME['old']['match'])
+  nbegin = (intra_region_diff.BEGIN_TAG %
+            intra_region_diff.COLOR_SCHEME['new']['match'])
+  oend = intra_region_diff.END_TAG
+  nend = oend
+  user = users.get_current_user()
+
+  for i in xrange(len(old_buff)):
+    tg = tag
+    old_valid, old_lineno, old_out = old_buff[i]
+    new_valid, new_lineno, new_out = new_buff[i]
+    old_intra_diff, old_has_newline, old_debug_info = old_out
+    new_intra_diff, new_has_newline, new_debug_info = new_out
+
+    frags = frag_list[i]
+    # Render left text column
+    frags.append(_RenderDiffColumn(old_patch, old_valid, tag, ndigits,
+                                   old_lineno, obegin, oend, old_intra_diff,
+                                   do_ir_diff, old_has_newline, 'old'))
+
+    # Render right text column
+    frags.append(_RenderDiffColumn(new_patch, new_valid, tag, ndigits,
+                                   new_lineno, nbegin, nend, new_intra_diff,
+                                   do_ir_diff, new_has_newline, 'new'))
+
+    # End rendering the first row
+    frags.append('</tr>\n')
+
+    if debug:
+      frags.append('<tr>')
+      if old_debug_info:
+        frags.append('<td class="debug-info">%s</td>' %
+                     old_debug_info.replace('\n', '<br>'))
+      else:
+        frags.append('<td></td>')
+      if new_debug_info:
+        frags.append('<td class="debug-info">%s</td>' %
+                     new_debug_info.replace('\n', '<br>'))
+      else:
+        frags.append('<td></td>')
+      frags.append('</tr>\n')
+
+    if old_patch or new_patch:
+      # Start rendering the second row
+      if ((old_valid and old_lineno in old_dict) or
+          (new_valid and new_lineno in new_dict)):
+        tg += '_comment'
+        frags.append('<tr class="inline-comments" name="hook">')
+      else:
+        frags.append('<tr class="inline-comments">')
+
+      # Render left inline comments
+      frags.append(_RenderInlineComments(old_valid, old_lineno, old_dict,
+                                         user, old_patch, old_snapshot, 'old'))
+
+      # Render right inline comments
+      frags.append(_RenderInlineComments(new_valid, new_lineno, new_dict,
+                                         user, new_patch, new_snapshot, 'new'))
+
+      # End rendering the second row
+      frags.append('</tr>\n')
+
+    # Yield the combined fragments
+    yield tg, ''.join(frags)
+
+
+def _RenderDiffColumn(patch, line_valid, tag, ndigits, lineno, begin, end,
+                      intra_diff, do_ir_diff, has_newline, prefix):
+  """Helper function for _RenderDiffInternal().
+
+  Returns:
+    A rendered column.
+  """
+  if line_valid:
+    cls_attr = '%s%s' % (prefix, tag)
+    if tag == 'equal':
+      lno = '%*d' % (ndigits, lineno)
+    else:
+      lno = _MarkupNumber(ndigits, lineno, 'u')
+    if tag == 'replace':
+      col_content = ('%s%s %s%s' % (begin, lno, end, intra_diff))
+      # If IR diff has been turned off or there is no matching new line at
+      # the end then switch to dark background CSS style.
+      if not do_ir_diff or not has_newline:
+        cls_attr = cls_attr + '1'
+    else:
+      col_content = '%s %s' % (lno, intra_diff)
+    return '<td class="%s" id="%scode%d">%s</td>' % (cls_attr, prefix,
+                                                     lineno, col_content)
+  else:
+    return '<td class="%sblank"></td>' % prefix
+
+
+def _RenderInlineComments(line_valid, lineno, data, user,
+                          patch, snapshot, prefix):
+  """Helper function for _RenderDiffInternal().
+
+  Returns:
+    Rendered comments.
+  """
+  comments = []
+  if line_valid:
+    comments.append('<td id="%s-line-%s">' % (prefix, lineno))
+    if lineno in data:
+      comments.append(
+        _ExpandTemplate('inline_comment.html',
+                        inline_draft_url='/inline_draft',
+                        user=user,
+                        patch=patch,
+                        patchset=patch.patchset,
+                        change=patch.patchset.change,
+                        snapshot=snapshot,
+                        side='a' if prefix == 'old' else 'b',
+                        comments=data[lineno],
+                        lineno=lineno,
+                        ))
+    comments.append('</td>')
+  else:
+    comments.append('<td></td>')
+  return ''.join(comments)
+
+
+def RenderUnifiedTableRows(request, parsed_lines):
+  """Render the HTML table rows for a unified diff for a patch.
+
+  Args:
+    request: Django Request object.
+    parsed_lines: List of tuples for each line that contain the line number,
+      if they exist, for the old and new file.
+
+  Returns:
+    A list of html table rows.
+  """
+  old_dict, new_dict = _GetComments(request)
+
+  rows = []
+  for old_line_no, new_line_no, line_text in parsed_lines:
+    row1_id = row2_id = ''
+    # When a line is unchanged (i.e. both old_line_no and new_line_no aren't 0)
+    # pick the old column line numbers when adding a comment.
+    if old_line_no:
+      row1_id = 'id="oldcode%d"' % old_line_no
+      row2_id = 'id="old-line-%d"' % old_line_no
+    elif new_line_no:
+      row1_id = 'id="newcode%d"' % new_line_no
+      row2_id = 'id="new-line-%d"' % new_line_no
+    rows.append('<tr><td class="udiff" %s>%s</td></tr>' %
+                (row1_id, cgi.escape(line_text)))
+
+    frags = []
+    if old_line_no in old_dict or new_line_no in new_dict:
+      frags.append('<tr class="inline-comments" name="hook">')
+      if old_line_no in old_dict:
+        dct = old_dict
+        line_no = old_line_no
+        snapshot = 'old'
+      else:
+        dct = new_dict
+        line_no = new_line_no
+        snapshot = 'new'
+      frags.append(_RenderInlineComments(True, line_no, dct, request.user,
+                   request.patch, snapshot, snapshot))
+    else:
+      frags.append('<tr class="inline-comments">')
+      frags.append('<td ' + row2_id +'></td>')
+    frags.append('</tr>')
+    rows.append(''.join(frags))
+  return rows
+
+
+def _ComputeLineCounts(old_lines, chunks):
+  """Compute the length of the old and new sides of a diff.
+
+  Args:
+    old_lines: List of lines representing the original file.
+    chunks: List of chunks as returned by patching.ParsePatchToChunks().
+
+  Returns:
+    A tuple (old_len, new_len) representing len(old_lines) and
+    len(new_lines), where new_lines is the list representing the
+    result of applying the patch chunks to old_lines, however, without
+    actually computing new_lines.
+  """
+  old_len = len(old_lines)
+  new_len = old_len
+  if chunks:
+    (old_a, old_b), (new_a, new_b), old_lines, new_lines = chunks[-1]
+    new_len += new_b - old_b
+  return old_len, new_len
+
+
+def _MarkupNumber(ndigits, number, tag):
+  """Format a number in HTML in a given width with extra markup.
+
+  Args:
+    ndigits: the total width available for formatting
+    number: the number to be formatted
+    tag: HTML tag name, e.g. 'u'
+
+  Returns:
+    An HTML string that displays as ndigits wide, with the
+    number right-aligned and surrounded by an HTML tag; for example,
+    _MarkupNumber(42, 4, 'u') returns '  <u>42</u>'.
+  """
+  formatted_number = str(number)
+  space_prefix = ' ' * (ndigits - len(formatted_number))
+  return '%s<%s>%s</%s>' % (space_prefix, tag, formatted_number, tag)
+
+
+def _ExpandTemplate(name, **params):
+  """Wrapper around django.template.loader.render_to_string().
+
+  For convenience, this takes keyword arguments instead of a dict.
+  """
+  return loader.render_to_string(name, params)
+
+
+def ToText(text):
+  """Helper to turn a string into a db.Text instance.
+
+  Args:
+    text: a string.
+
+  Returns:
+    A db.Text instance.
+  """
+  try:
+    return db.Text(text, encoding='utf-8')
+  except UnicodeDecodeError:
+    return db.Text(text, encoding='latin-1')
diff --git a/webapp/codereview/fields.py b/webapp/codereview/fields.py
new file mode 100644
index 0000000..1236ff1
--- /dev/null
+++ b/webapp/codereview/fields.py
@@ -0,0 +1,337 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Custom fields and widgets for Gerrit.
+
+This requires Django 0.97.pre.
+"""
+
+
+### Imports ###
+
+import string
+import logging
+
+import django.forms.widgets
+import django.forms.fields
+from django import forms
+from django.utils import encoding
+from django.utils import safestring
+from django.forms import util
+from django.utils import html
+from django.utils import simplejson
+from google.appengine.ext import db
+
+import models
+
+def person_to_dict(v):
+  entry = {}
+  if isinstance(v, models.Account):
+    entry["type"] = "user"
+    entry["key"] = "user/" + v.email
+    entry["email"] = v.email
+    entry["real_name"] = v.real_name
+    entry["sort_key"] = "2/" + unicode(v.user)
+  elif isinstance(v, models.AccountGroup):
+    entry["type"] = "group"
+    entry["key"] = "group/" + str(v.key())
+    entry["name"] = v.name
+    entry["sort_key"] = "1/" + unicode(v.name)
+  else:
+    raise AssertionError("bad value: " + str(v))
+  return entry
+
+def people_to_dicts(value):
+  data = []
+  for v in value:
+    if isinstance(v, list):
+      data.extend(people_to_dicts(v))
+    elif v:
+      data.append(person_to_dict(v))
+  data.sort(lambda a,b: cmp(a["sort_key"], b["sort_key"]))
+  return data
+
+
+### User/Group Field ###
+
+class UserGroupWidget(django.forms.widgets.Widget):
+  """The widget that is used with UserGroupField."""
+  def __init__(self, allow_users=True, allow_groups=True, attrs=None):
+    self.attrs = {'cols': '40', 'rows': '10'}
+    self.allow_users = allow_users
+    self.allow_groups = allow_groups
+    if attrs:
+      self.attrs.update(attrs)
+
+  def render(self, name, value, attrs=None):
+    if value is None:
+      value = []
+    return safestring.mark_safe(
+        u"""
+        <div id="%(name)s_mom"></div>
+        <script>
+          UserGroupField_insertField(document.getElementById('%(name)s_mom'),
+              '%(name)s', %(allow_users)s, %(allow_groups)s, %(initial)s);
+        </script>
+        """ % { "name":name,
+                "initial":self._render_initial_js(value),
+                "allow_users": ("true" if self.allow_users else "false"),
+                "allow_groups": ("true" if self.allow_groups else "false"),
+              })
+
+  def _render_initial_js(self, value):
+    data = people_to_dicts(value)
+    return "[%s]" % ','.join(map(simplejson.dumps, data))
+
+  def value_from_datadict(self, data, files, name):
+    return data.getlist(name + "_keys")
+
+
+class UserGroupField(django.forms.fields.Field):
+  """A Field that picks a list of users and groups."""
+
+  def __init__(self, *args, **kwargs):
+    self.allow_users = kwargs.pop("allow_users", True)
+    self.allow_groups = kwargs.pop("allow_groups", True)
+    self.widget = UserGroupWidget(self.allow_users, self.allow_groups)
+    super(UserGroupField, self).__init__(*args, **kwargs)
+
+  def clean(self, data, initial=None):
+    def get_correct_model(key):
+      (type,id) = key.split("/", 1)
+      if id:
+        try:
+          if type == "user":
+            return models.Account.get_account_for_email(id)
+          elif type == "group":
+            return models.AccountGroup.get(id)
+        except db.BadKeyError, v:
+          pass
+      raise forms.ValidationError("invalid key")
+    keys = data
+    result = [get_correct_model(key) for key in keys]
+    super(UserGroupField, self).clean(initial or result)
+    return result
+
+  @classmethod
+  def get_users(cls, cleaned):
+    """Returns the users, given the cleaned data from the form.
+
+    e.g.
+    model_obj.usrs = fields.UserGroupField.get_users(form.cleaned_data['field'])
+    """
+    return [x.user for x in cleaned if isinstance(x, models.Account)]
+
+  @classmethod
+  def get_groups(cls, cleaned):
+    """Returns the groups, given the cleaned data from the form.
+
+    e.g.
+    groups = fields.UserGroupField.get_users(form.cleaned_data['field'])
+    """
+    return [x for x in cleaned if isinstance(x, models.AccountGroup)]
+
+  @classmethod
+  def get_group_keys(cls, cleaned):
+    """Returns keys for the groups, given the cleaned data from the form.
+
+    e.g.
+    groups = fields.UserGroupField.get_users(form.cleaned_data['field'])
+    """
+    return [x.key() for x in cleaned if isinstance(x, models.AccountGroup)]
+
+  @classmethod
+  def get_user_and_group_keys(cls, cleaned):
+    """Returns the users and the groups for the cleaned data from the form.
+
+    e.g.
+    (model_obj.users,model_obj.groups
+        ) = fields.UserGroupField.get_user_and_group_keys(
+        form.cleaned_data['field'])
+    """
+    return (UserGroupField.get_users(cleaned),
+            UserGroupField.get_group_keys(cleaned))
+
+  @classmethod
+  def field_value_for_keys(cls, users=[], groups=[]):
+    """Return the value suitable for this field from a list keys.
+
+    e.g.
+    form_initial_values['field'] = fields.UserGroupField.field_value_for_keys(
+              users, group_keys)
+    """
+    return ([models.AccountGroup.get(k) for k in groups]
+          + [models.Account.get_account_for_user(u) for u in users])
+  
+
+### Approvers Field ###
+
+class ApproversWidget(django.forms.widgets.Widget):
+  """The widget for ApproversField"""
+
+  def __init__(self, allow_users=True, allow_groups=True, attrs=None,
+        approvers=None, verifiers=None):
+    self.attrs = {'cols': '40', 'rows': '10'}
+    if attrs:
+      self.attrs.update(attrs)
+    self.approvers = approvers or UserGroupWidget();
+    self.verifiers = verifiers or UserGroupWidget();
+
+  def render(self, name, value, attrs=None):
+    if value is None:
+      value = []
+    styles = self.attrs.get("styles", {})
+    return safestring.mark_safe(
+        u"""
+        <div id="%(name)s_mom"></div>
+        <script>
+          ApproversField_insertField('%(name)s_mom', '%(name)s', %(initial)s,
+              %(styles)s);
+        </script>
+        """ % {
+          "name": name,
+          "initial": self._render_initial_js(name, value),
+          "styles": simplejson.dumps(styles),
+        })
+
+
+  def _render_initial_js(self, name, value):
+    data = []
+    index = 0
+    for v in value:
+      # BEGIN DEBUGGING
+      key = "initial_%d" % index
+      files = v["files"]
+      bad_files = v.get("bad_files", [])
+      approvers = v["approvers"]
+      verifiers = v["verifiers"]
+      # END DEBUGGING
+      entry = {}
+      entry["key"] = "initial_%d" % index
+      entry["files"] = encoding.force_unicode("\n".join(files))
+      entry["bad_files"] = map(encoding.force_unicode, bad_files)
+      entry["approvers"] = people_to_dicts(approvers)
+      entry["verifiers"] = people_to_dicts(verifiers)
+      data.append(entry)
+      index = index + 1
+    rows = []
+    for entry in data:
+      rows.append(simplejson.dumps(entry))
+    return "[%s]" % ','.join(rows)
+    
+
+  def value_from_datadict(self, data, files, name):
+    result = []
+    keys = data.getlist(name + "_keys")
+    for key in keys:
+      field_key = "%s_%s" % (name, key)
+      files = filter(string.strip, data.get(field_key + "_files").splitlines())
+      bad_files = []
+      for f in files:
+        if not models.ApprovalRight.validate_file(f):
+          err = True
+          bad_files.append(f)
+      approvers = self.approvers.value_from_datadict(data, files,
+          field_key + "_approvers")
+      verifiers = self.verifiers.value_from_datadict(data, files,
+          field_key + "_verifiers")
+      result.append({
+              "key": key,
+              "files": files,
+              "bad_files": bad_files,
+              "approvers": approvers,
+              "verifiers": verifiers,
+          })
+    return result
+
+
+class ApproversField(django.forms.fields.Field):
+  """A Field to pick which users/groups can edit which field"""
+  approvers = UserGroupField();
+  verifiers = UserGroupField();
+  widget = ApproversWidget(approvers=approvers.widget,
+      verifiers=verifiers.widget, attrs={"styles": {
+        "approval": "approval"
+      }})
+
+  def __init__(self, *args, **kwargs):
+    super(ApproversField, self).__init__(*args, **kwargs)
+
+  def clean(self, data, initial=None):
+    result = []
+    err = False
+    for d in data:
+      files = d["files"]
+      if len(d["bad_files"]) > 0:
+        err = True
+      approvers = self.approvers.clean(d["approvers"])
+      verifiers = self.verifiers.clean(d["verifiers"])
+      result.append({"files": files, "approvers": approvers,
+          "verifiers": verifiers})
+    if False:
+      for r in result:
+        logging.info("clean: files=" + str(r["files"]))
+        logging.info("   approvers=" + str(r["approvers"]))
+        logging.info("   verifiers=" + str(r["verifiers"]))
+    super(ApproversField, self).clean(initial or result)
+    if err:
+        raise forms.ValidationError("invalid files")
+    return result
+
+### Project field ###
+
+class ProjectSelectWidget(django.forms.widgets.Widget):
+  """A widget that lets a user pick a set of projects."""
+  def __init__(self, attrs=None):
+    super(ProjectSelectWidget, self).__init__(attrs)
+    if attrs:
+      self.attrs.update(attrs)
+
+  def render(self, name, value, attrs=None):
+    if value is None:
+      value = []
+    project_list = [{'name': p.name, 'key': str(p.key())}
+                    for p in models.Project.get_all_projects()]
+    return safestring.mark_safe(
+        u"""
+        <div id="%(name)s_mom"></div>
+        <script>
+          ProjectField_insertField(document.getElementById('%(name)s_mom'),
+              '%(name)s', %(project_list)s, %(initial)s);
+        </script>
+        """ % { "name": name,
+                "project_list": self._render_js_list(project_list),
+                "initial": self._render_js_list([str(v) for v in value]),
+              })
+
+  def _render_js_list(self, value):
+    return "[%s]" % ','.join(map(simplejson.dumps, value))
+
+  def value_from_datadict(self, data, files, name):
+    return set([v.strip() for v in data.getlist(name) if len(v.strip()) > 0])
+
+class ProjectSelectField(django.forms.fields.Field):
+  """A Field that lets a user pick a set of projects."""
+
+  def __init__(self, *args, **kwargs):
+    self.widget = ProjectSelectWidget()
+    super(ProjectSelectField, self).__init__(*args, **kwargs)
+
+  def clean(self, data, initial=None):
+    objects = models.Project.get(data)
+    result = [o.key() for o in objects if o]
+    super(ProjectSelectField, self).clean(initial or result)
+    return result
+
+
diff --git a/webapp/codereview/git_models.py b/webapp/codereview/git_models.py
new file mode 100644
index 0000000..ff9e81d
--- /dev/null
+++ b/webapp/codereview/git_models.py
@@ -0,0 +1,148 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Git specific data model (schema) for Gerrit."""
+
+# Python imports
+import hashlib
+import logging
+import re
+
+# AppEngine imports
+from google.appengine.ext import db
+from google.appengine.api import users
+
+# Gerrit imports
+from models import gql
+import models
+import memcache
+
+### Exceptions ###
+
+class InvalidBundleId(Exception):
+  """Bundle does not exist in data store."""
+
+class InvalidBundleState(Exception):
+  """Bundle has different state than expected."""
+
+
+### Bundles ###
+
+class ReceivedBundleSegment(models.BackedUpModel):
+  """Binary segment of a submitted bundle."""
+
+  # parent == ReceivedBundle
+  segment_id = db.IntegerProperty(required=True)  # == key
+  bundle_data = db.BlobProperty()
+
+
+class ReceivedBundle(models.BackedUpModel):
+  """A Git bundle submitted for review."""
+
+  _NewIsEmpty = memcache.Key("ReceivedBundle.NewIsEmpty")
+
+  STATE_UPLOADING = "UPLOADING"
+  STATE_NEW = "NEW"
+  STATE_UNPACKING = "UNPACKING"
+  STATE_UNPACKED = "UNPACKED"
+  STATE_INVALID = "INVALID"
+  STATE_SUSPENDED = "SUSPENDED"
+
+  state = db.StringProperty(required=True, default=STATE_UPLOADING,
+                            choices=(STATE_UPLOADING,
+                                     STATE_NEW,
+                                     STATE_UNPACKING,
+                                     STATE_UNPACKED,
+                                     STATE_INVALID,
+                                     STATE_SUSPENDED))
+  invalid_details = db.TextProperty()
+
+  # Where does this bundle merge to?
+  dest_project = db.ReferenceProperty(models.Project, required=True)
+  dest_branch = db.ReferenceProperty(models.Branch, required=True)
+
+  # Who submitted this bundle, and when.
+  owner = db.UserProperty(required=True)
+  created = db.DateTimeProperty(required=True, auto_now_add=True)
+  modified = db.DateTimeProperty(required=True, auto_now=True)
+
+  # How much bundle is there?
+  n_segments = db.IntegerProperty(required=True, default=0)
+  contained_objects = db.StringListProperty()
+
+  @classmethod
+  def lock_next_new(cls):
+    if ReceivedBundle._NewIsEmpty.get() == 1:
+      return None
+
+    try:
+      rb = cls._lock_next_new_imp()
+    except Timeout:
+      return None
+    except TransactionFailedError:
+      return None
+
+    if rb is None:
+      ReceivedBundle._NewIsEmpty.set(1)
+    return rb
+
+  def ready(self):
+      ReceivedBundle._NewIsEmpty.clear()
+
+  @classmethod
+  def _lock_next_new_imp(cls):
+    for attempt in xrange(5):
+      ro_rb = gql(cls, "WHERE state = :1 ORDER BY created",
+                  ReceivedBundle.STATE_NEW).get()
+      if ro_rb is None:
+        return None
+
+      def trans(key):
+        rb = db.get(key)
+        if rb.state == ReceivedBundle.STATE_NEW:
+          rb.state = ReceivedBundle.STATE_UNPACKING
+          rb.put()
+          return True
+        return False
+      if db.run_in_transaction(trans, ro_rb.key()):
+        return ro_rb
+    return None
+
+  @classmethod
+  def update_state(cls, keystr, old_state, new_state, err_msg):
+    key = db.Key(keystr)
+    if key.kind() != cls.__name__:
+        raise InvalidBundleId, keystr
+    def trans():
+      rb = db.get(key)
+      if rb is None:
+        raise InvalidBundleId, keystr
+      if rb.state != old_state:
+        raise InvalidBundleState, "%s != %s" % (rb.state, old_state)
+      rb.state = new_state
+      rb.invalid_details = err_msg
+      rb.put()
+    db.run_in_transaction(trans)
+
+  def set_segment(self, segment_id, data):
+    key = 's%d' % segment_id
+    ReceivedBundleSegment.get_or_insert(
+      key,
+      segment_id = segment_id,
+      bundle_data = db.Blob(data),
+      parent = self)
+
+  def get_segment(self, segment_id):
+    key = 's%d' % segment_id
+    return ReceivedBundleSegment.get_by_key_name(key, parent = self)
diff --git a/webapp/codereview/internal/__init__.py b/webapp/codereview/internal/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/codereview/internal/__init__.py
diff --git a/webapp/codereview/internal/admin_service.py b/webapp/codereview/internal/admin_service.py
new file mode 100644
index 0000000..a331663
--- /dev/null
+++ b/webapp/codereview/internal/admin_service.py
@@ -0,0 +1,49 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import datetime
+import logging
+
+from google.appengine.ext import db
+
+from codereview import models
+from codereview.models import gql
+
+from admin_pb2 import AdminService
+from sync_project_pb2 import *
+from util import u, InternalAPI
+
+class AdminServiceImp(AdminService, InternalAPI):
+  def SyncProject(self, rpc_controller, req, done):
+    rsp = SyncProjectResponse()
+
+    proj = models.Project.get_project_for_name(req.project_name)
+    if proj is None:
+      proj = models.Project(name = req.project_name)
+      proj.put()
+
+    really_exists = set()
+    for bs in req.branch:
+      branch = models.Branch.get_or_insert_branch(proj, bs.branch_name)
+      really_exists.add(branch.name)
+
+    to_delete = []
+    for b in list(gql(models.Branch, 'WHERE project = :1', proj)):
+      if b.name not in really_exists:
+        to_delete += gql(models.BuildAttempt, 'WHERE branch = :1', b)
+
+    if to_delete:
+      db.delete(to_delete)
+
+    done(rsp)
diff --git a/webapp/codereview/internal/build_service.py b/webapp/codereview/internal/build_service.py
new file mode 100644
index 0000000..9f8bb0c
--- /dev/null
+++ b/webapp/codereview/internal/build_service.py
@@ -0,0 +1,110 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import datetime
+import logging
+
+from google.appengine.ext import db
+
+from codereview import models
+from codereview.models import gql
+
+from build_pb2 import BuildService
+from submit_build_pb2 import *
+from post_build_result_pb2 import *
+from prune_builds_pb2 import *
+from util import InternalAPI, automatic_retry
+
+MAX_PRUNE = 100
+
+class BuildServiceImp(BuildService, InternalAPI):
+  @automatic_retry
+  def SubmitBuild(self, rpc_controller, req, done):
+    rsp = SubmitBuildResponse()
+
+    branch = db.get(db.Key(req.branch_key))
+    new_changes = [db.Key(c) for c in req.new_change]
+
+    build = models.BuildAttempt(
+              branch = branch,
+              revision_id = req.revision_id,
+              new_changes = new_changes)
+    build.put()
+
+    rsp.build_id = build.key().id()
+    done(rsp)
+
+  @automatic_retry
+  def PostBuildResult(self, rpc_controller, req, done):
+    rsp = PostBuildResultResponse()
+
+    if req.build_status == PostBuildResultRequest.SUCCESS:
+      ok = True
+    elif req.build_status == PostBuildResultRequest.BUILD_FAILED:
+      ok = False
+    else:
+      raise InvalidValueError, req.build_status
+
+    build = models.BuildAttempt.get_by_id(req.build_id)
+    if not build.finished:
+      build.finished = True
+      build.success = ok
+      build.put()
+
+    branch = build.branch
+    project = branch.project
+
+    rsp.dest_project_name = str(project.name)
+    rsp.dest_project_key = str(project.key())
+
+    rsp.dest_branch_name = str(branch.name)
+    rsp.dest_branch_key = str(branch.key())
+
+    rsp.revision_id = str(build.revision_id)
+    for patchset_key in build.new_changes:
+      rsp.new_change.append(str(patchset_key))
+
+    done(rsp)
+
+  @automatic_retry
+  def PruneBuilds(self, rpc_controller, req, done):
+    rsp = PruneBuildsResponse()
+
+    build_list = []
+
+    for m in [_AgedSuccess,
+              _AgedFailed,
+              ]:
+      build_list.extend(m())
+      if len(build_list) >= MAX_PRUNE:
+        break
+
+    if build_list:
+      db.delete(build_list)
+      rsp.status_code = PruneBuildsResponse.BUILDS_PRUNED
+    else:
+      rsp.status_code = PruneBuildsResponse.QUEUE_EMPTY
+    done(rsp)
+
+def _AgedSuccess():
+  aged = datetime.datetime.now() - datetime.timedelta(days=2)
+  return gql(models.BuildAttempt,
+             'WHERE success = :1 AND started <= :2',
+             True, aged).fetch(MAX_PRUNE)
+
+def _AgedFailed():
+  aged = datetime.datetime.now() - datetime.timedelta(days=7)
+  return gql(models.BuildAttempt,
+             'WHERE success = :1 AND started <= :2',
+             False, aged).fetch(MAX_PRUNE)
diff --git a/webapp/codereview/internal/bundle_store_service.py b/webapp/codereview/internal/bundle_store_service.py
new file mode 100644
index 0000000..7cd26cb
--- /dev/null
+++ b/webapp/codereview/internal/bundle_store_service.py
@@ -0,0 +1,158 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import datetime
+import logging
+
+from google.appengine.ext import db
+
+from codereview.models import gql
+from codereview.git_models import *
+
+from bundle_store_pb2 import BundleStoreService
+from next_received_bundle_pb2 import *
+from update_received_bundle_pb2 import *
+from prune_bundles_pb2 import *
+from util import InternalAPI, u, commit_to_revision, automatic_retry
+
+MAX_PRUNE = 10
+MAX_SEGS_PER_PRUNE = 10
+
+class BundleStoreServiceImp(BundleStoreService, InternalAPI):
+  @automatic_retry
+  def NextReceivedBundle(self, rpc_controller, req, done):
+    rsp = NextReceivedBundleResponse()
+
+    rb = ReceivedBundle.lock_next_new()
+    if rb:
+      rsp.status_code = NextReceivedBundleResponse.BUNDLE_AVAILABLE
+      rsp.bundle_key = str(rb.key())
+      rsp.dest_project = str(rb.dest_project.name)
+      rsp.dest_project_key = str(rb.dest_project.key())
+      rsp.dest_branch_key = str(rb.dest_branch.key())
+      rsp.owner = str(rb.owner.email())
+      rsp.n_segments = rb.n_segments
+      seg = rb.get_segment(1)
+      if seg:
+        rsp.bundle_data = seg.bundle_data
+    else:
+      rsp.status_code = NextReceivedBundleResponse.QUEUE_EMPTY
+    done(rsp)
+
+  @automatic_retry
+  def BundleSegment(self, rpc_controller, req, done):
+    rsp = BundleSegmentResponse()
+
+    rb = db.get(db.Key(req.bundle_key))
+    if not rb:
+      rsp.status_code = BundleSegmentResponse.UNKNOWN_BUNDLE
+      done(rsp)
+      return
+
+    seg = rb.get_segment(req.segment_id)
+    if seg:
+      rsp.status_code = BundleSegmentResponse.DATA
+      rsp.bundle_data = seg.bundle_data
+    else:
+      rsp.status_code = BundleSegmentResponse.UNKNOWN_SEGMENT
+    done(rsp)
+
+  @automatic_retry
+  def UpdateReceivedBundle(self, rpc_controller, req, done):
+    rsp = UpdateReceivedBundleResponse()
+
+    old_state = ReceivedBundle.STATE_UNPACKING
+    sc = req.status_code
+    if UpdateReceivedBundleRequest.UNPACKED_OK == sc:
+      new_state = ReceivedBundle.STATE_UNPACKED
+      err_msg = None
+    elif UpdateReceivedBundleRequest.SUSPEND_BUNDLE == sc:
+      new_state = ReceivedBundle.STATE_SUSPENDED
+      err_msg = req.error_details
+    else:
+      new_state = ReceivedBundle.STATE_INVALID
+      err_msg = req.error_details
+
+    try:
+      ReceivedBundle.update_state(req.bundle_key, old_state, new_state, err_msg)
+      rsp.status_code = UpdateReceivedBundleResponse.UPDATED
+    except InvalidBundleId, err:
+      logging.warn("Invalid bundle id %s: %s" % (req.bundle_key, err))
+      rsp.status_code = UpdateReceivedBundleResponse.INVALID_BUNDLE
+    except InvalidBundleState, err:
+      logging.warn("Invalid bundle state %s: %s" % (req.bundle_key, err))
+      rsp.status_code = UpdateReceivedBundleResponse.INVALID_STATE
+    done(rsp)
+
+  @automatic_retry
+  def PruneBundles(self, rpc_controller, req, done):
+    rsp = PruneBundlesResponse()
+
+    rb_list = []
+    to_rm = []
+
+    for m in [_AgedUploading,
+              _AgedInvalid,
+              _AgedSuspended,
+              _AgedUnpacking,
+              _AgedUnpacked,
+              ]:
+      rb_list.extend(m())
+      if len(rb_list) >= MAX_PRUNE:
+        break
+
+    for rb in rb_list:
+      segs = gql(ReceivedBundleSegment,
+                'WHERE ANCESTOR IS :1',
+                rb).fetch(MAX_SEGS_PER_PRUNE)
+      if len(segs) < MAX_SEGS_PER_PRUNE:
+        to_rm.append(rb)
+      to_rm.extend(segs)
+
+    if to_rm:
+      db.delete(to_rm)
+      rsp.status_code = PruneBundlesResponse.BUNDLES_PRUNED
+    else:
+      rsp.status_code = PruneBundlesResponse.QUEUE_EMPTY
+    done(rsp)
+
+def _AgedUploading():
+  aged = datetime.datetime.now() - datetime.timedelta(days=7)
+  return gql(ReceivedBundle,
+             'WHERE state = :1 AND created <= :2',
+             ReceivedBundle.STATE_UPLOADING, aged).fetch(MAX_PRUNE)
+
+def _AgedInvalid():
+  aged = datetime.datetime.now() - datetime.timedelta(days=2)
+  return gql(ReceivedBundle,
+             'WHERE state = :1 AND created <= :2',
+             ReceivedBundle.STATE_INVALID, aged).fetch(MAX_PRUNE)
+
+def _AgedSuspended():
+  aged = datetime.datetime.now() - datetime.timedelta(days=7)
+  return gql(ReceivedBundle,
+             'WHERE state = :1 AND created <= :2',
+             ReceivedBundle.STATE_SUSPENDED, aged).fetch(MAX_PRUNE)
+
+def _AgedUnpacking():
+  aged = datetime.datetime.now() - datetime.timedelta(days=7)
+  return gql(ReceivedBundle,
+             'WHERE state = :1 AND created <= :2',
+             ReceivedBundle.STATE_UNPACKING, aged).fetch(MAX_PRUNE)
+
+def _AgedUnpacked():
+  aged = datetime.datetime.now() - datetime.timedelta(hours=1)
+  return gql(ReceivedBundle,
+             'WHERE state = :1 AND created <= :2',
+             ReceivedBundle.STATE_UNPACKED, aged).fetch(MAX_PRUNE)
diff --git a/webapp/codereview/internal/change_service.py b/webapp/codereview/internal/change_service.py
new file mode 100644
index 0000000..1ce26dc
--- /dev/null
+++ b/webapp/codereview/internal/change_service.py
@@ -0,0 +1,165 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+
+from google.appengine.api import users
+from google.appengine.ext import db
+
+from codereview import models
+
+from change_pb2 import ChangeService
+from complete_patchset_pb2 import *
+from upload_patchset_file_pb2 import *
+from submit_change_pb2 import *
+from util import *
+
+class ChangeServiceImp(ChangeService, InternalAPI):
+
+  @automatic_retry
+  def SubmitChange(self, rpc_controller, req, done):
+    rsp = SubmitChangeResponse()
+
+    user = users.User(req.owner)
+    branch = db.get(db.Key(req.dest_branch_key))
+    if not branch:
+      rsp.status_code = SubmitChangeResponse.UNKNOWN_BRANCH
+      done(rsp)
+
+    rev = commit_to_revision(branch.project, req.commit)
+    if rev.patchset:
+      rsp.status_code = SubmitChangeResponse.PATCHSET_EXISTS
+      done(rsp)
+
+    subject = u(req.commit.subject)[0:100]
+
+    def trans():
+      change = models.Change(
+                 subject = subject,
+                 description = u(req.commit.message),
+                 owner = user,
+                 dest_project = branch.project,
+                 dest_branch = branch,
+                 n_patchsets = 1)
+      change.put()
+
+      patchset = models.PatchSet(
+                   change = change,
+                   owner = user,
+                   parent = change,
+                   revision = rev,
+                   id = 1)
+      patchset.put()
+      return (change, patchset)
+    change, patchset = db.run_in_transaction(trans)
+
+    if rev.link_patchset(patchset):
+      rsp.status_code = SubmitChangeResponse.CREATED
+      rsp.change_id = change.key().id()
+      rsp.patchset_id = patchset.id
+      rsp.patchset_key = str(patchset.key())
+    else:
+      db.delete([change, patchset])
+      rsp.status_code = SubmitChangeResponse.PATCHSET_EXISTS
+    done(rsp)
+
+  @automatic_retry
+  def UploadPatchsetFile(self, rpc_controller, req, done):
+    rsp = UploadPatchsetFileResponse()
+
+    patchset = db.get(db.Key(req.patchset_key))
+    if not patchset:
+      rsp.status_code = UploadPatchsetFileResponse.UNKNOWN_PATCHSET
+      done(rsp)
+      return
+
+    if patchset.complete or patchset.change.closed:
+      rsp.status_code = UploadPatchsetFileResponse.CLOSED
+      done(rsp)
+      return
+
+    if UploadPatchsetFileRequest.ADD == req.status:
+      status = 'A'
+    elif UploadPatchsetFileRequest.MODIFY == req.status:
+      status = 'M'
+    elif UploadPatchsetFileRequest.DELETE == req.status:
+      status = 'D'
+    else:
+      status = '?'
+
+    try:
+      if req.base_id:
+        old_data = models.DeltaContent.create_content(
+                     id = req.base_id,
+                     text_z = req.base_z)
+        new_data = models.DeltaContent.create_content(
+                     id = req.final_id,
+                     text_z = req.patch_z,
+                     base = old_data)
+        if new_data.text_z == req.patch_z:
+          diff_data = new_data
+        else:
+          diff_data = models.DeltaContent.create_patch(
+                        id = req.patch_id,
+                        text_z = req.patch_z)
+      else:
+        old_data = None
+        new_data = None
+        diff_data = models.DeltaContent.create_patch(
+                      id = req.patch_id,
+                      text_z = req.patch_z)
+    except models.DeltaPatchingException:
+      logging.error("Patch error on change %s, patch set %s, file %s"
+        % (patchset.change.key().id(),
+           str(patchset.id),
+           u(req.file_name))
+      )
+      rsp.status_code = UploadPatchsetFileResponse.PATCHING_ERROR
+      done(rsp)
+      return
+
+    patch = models.Patch.get_or_insert_patch(
+              patchset = patchset,
+              filename = u(req.file_name),
+              status = status,
+              n_comments = 0,
+              old_data = old_data,
+              new_data = new_data,
+              diff_data = diff_data)
+
+    if old_data:
+      models.CachedDeltaContent.get(old_data.key())
+      models.CachedDeltaContent.get(new_data.key())
+      if diff_data != new_data:
+        models.CachedDeltaContent.get(diff_data.key())
+    else:
+      models.CachedDeltaContent.get(diff_data.key())
+
+    rsp.status_code = UploadPatchsetFileResponse.CREATED
+    done(rsp)
+
+  @automatic_retry
+  def CompletePatchset(serlf, rpc_controller, req, done):
+    rsp = CompletePatchsetResponse()
+
+    patchset = db.get(db.Key(req.patchset_key))
+    if not patchset.complete:
+      patchset.complete = True
+      patchset.put()
+
+      if len(req.compressed_filenames) > 0:
+        models.PatchSetFilenames.store_compressed(
+          patchset,
+          req.compressed_filenames)
+    done(rsp)
diff --git a/webapp/codereview/internal/merge_service.py b/webapp/codereview/internal/merge_service.py
new file mode 100644
index 0000000..bf9c721
--- /dev/null
+++ b/webapp/codereview/internal/merge_service.py
@@ -0,0 +1,161 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+
+from google.appengine.ext import db
+
+from codereview import models
+from codereview.models import gql
+
+from merge_pb2 import MergeService
+from pending_merge_pb2 import *
+from post_merge_result_pb2 import *
+from post_branch_update_pb2 import *
+from util import InternalAPI, automatic_retry
+
+from codereview import email
+
+def _send_clean_merge_email(http_request, change):
+  if not change.emailed_clean_merge:
+    email.send_change_message(http_request, change,
+                              "mails/clean_merge.txt", None)
+    change.emailed_clean_merge = True
+  
+def _send_missing_dependency_merge_email(http_request, change):
+  if not change.emailed_clean_merge:
+    email.send_change_message(http_request, change,
+                              "mails/missing_dependency.txt", None)
+    change.emailed_missing_dependency = True
+
+def _send_path_conflict_email(http_request, change):
+  if not change.emailed_clean_merge:
+    email.send_change_message(http_request, change,
+                              "mails/path_conflict.txt", None)
+    change.emailed_path_conflict = True
+
+
+class InvalidBranchStatusError(Exception):
+  """The branch cannot be updated in this way at this time."""
+
+class MergeServiceImp(MergeService, InternalAPI):
+  @automatic_retry
+  def NextPendingMerge(self, rpc_controller, req, done):
+
+    patchsets = []
+    while not patchsets:
+      branch = gql(models.Branch,
+                  "WHERE status = 'NEEDS_MERGE'"
+                  " ORDER BY merge_submitted").get()
+      if branch is None:
+        break
+      patchsets = branch.begin_merge()
+
+    rsp = PendingMergeResponse()
+    if patchsets:
+      first = patchsets[0].change
+      rsp.status_code = PendingMergeResponse.MERGE_READY
+      rsp.dest_project_name = str(first.dest_project.name)
+      rsp.dest_project_key = str(first.dest_project.key())
+      rsp.dest_branch_name = str(first.dest_branch.name)
+      rsp.dest_branch_key = str(first.dest_branch.key())
+      for ps in patchsets:
+        pmi = rsp.change.add()
+        pmi.patchset_key = str(ps.key())
+        pmi.revision_id = str(ps.revision.id)
+    else:
+      rsp.status_code = PendingMergeResponse.QUEUE_EMPTY
+    done(rsp)
+
+  @automatic_retry
+  def PostMergeResult(self, rpc_controller, req, done):
+    rsp = PostMergeResultResponse()
+
+    success = []
+    fail = []
+    defer = []
+
+    for ri in req.change:
+      sc = ri.status_code
+      ps = db.get(db.Key(ri.patchset_key))
+
+      if ps.change.merged:
+        success.append(ps)
+        continue
+
+      def chg_trans(key):
+        change = db.get(key)
+        if change.merge_patchset.key() != ps.key():
+          return False
+
+        if sc == MergeResultItem.CLEAN_MERGE:
+          pass
+
+        elif sc == MergeResultItem.ALREADY_MERGED:
+          change.merged = True
+          change.closed = True
+          change.put()
+
+        elif sc == MergeResultItem.MISSING_DEPENDENCY:
+          pass
+
+        elif sc == MergeResultItem.PATH_CONFLICT:
+          change.unsubmit_merge()
+          change.put()
+
+        return True
+      if db.run_in_transaction(chg_trans, ps.change.key()):
+        if sc == MergeResultItem.CLEAN_MERGE:
+          _send_clean_merge_email(self.http_request, ps.change)
+          ps.change.put()
+
+        elif sc == MergeResultItem.ALREADY_MERGED:
+          success.append(ps)
+
+        elif sc == MergeResultItem.MISSING_DEPENDENCY:
+          _send_missing_dependency_merge_email(self.http_request, ps.change)
+          ps.change.put()
+          defer.append(ps)
+
+        elif sc == MergeResultItem.PATH_CONFLICT:
+          _send_path_conflict_email(self.http_request, ps.change)
+          ps.change.put()
+          fail.append(ps)
+      else:
+        fail.append(ps)
+
+    branch = db.get(db.Key(req.dest_branch_key))
+    branch.finish_merge(success, fail, defer)
+
+    done(rsp)
+
+  @automatic_retry
+  def PostBranchUpdate(self, rpc_controller, req, done):
+    rsp = PostBranchUpdateResponse()
+
+    branch = db.get(db.Key(req.branch_key))
+    merged = [db.get(db.Key(c_key)) for c_key in req.new_change]
+
+    branch.merged(merged)
+
+    for ps in merged:
+      def trans(key):
+        change = db.get(key)
+        if change.merge_patchset.key() == ps.key():
+          change.merged = True
+          change.closed = True
+          change.put()
+      db.run_in_transaction(trans, ps.change.key())
+
+    done(rsp)
diff --git a/webapp/codereview/internal/util.py b/webapp/codereview/internal/util.py
new file mode 100644
index 0000000..267fe29
--- /dev/null
+++ b/webapp/codereview/internal/util.py
@@ -0,0 +1,75 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import datetime
+
+from google.appengine.ext import db
+from codereview import models
+from codereview.need_retry_pb2 import RetryRequestLaterResponse
+
+class InternalAPI(object):
+  """
+    Marker superclass for service implementations which should be
+    restricted to only role accounts executing batch processing.
+  """
+  def __init__(self):
+    pass
+
+def u(str):
+  """Decode the UTF-8 byte sequence into a unicode object."""
+  return str.decode('utf_8')
+
+def commit_to_revision(proj, commit):
+  """Converts a GitCommit into a RevisionId data store object.
+  """
+  p_a = commit.author
+  p_c = commit.committer
+
+  return models.RevisionId.get_or_insert_revision(
+          project = proj,
+          id = commit.id,
+          ancestors = [p for p in commit.parent_id],
+          message = db.Text(u(commit.message)),
+
+          author_name = u(p_a.name),
+          author_email = db.Email(u(p_a.email)),
+          author_when = datetime.datetime.utcfromtimestamp(p_a.when),
+          author_tz = p_a.tz,
+
+          committer_name = u(p_c.name),
+          committer_email = db.Email(u(p_c.email)),
+          committer_when = datetime.datetime.utcfromtimestamp(p_c.when),
+          committer_tz = p_a.tz,
+          )
+
+def automatic_retry(func):
+  """Decorator that catches data store errors and sends a retry response."""
+  def retry_wrapper(self, rpc_controller, req, done):
+    try:
+      func(self, rpc_controller, req, done)
+
+    except db.InternalError:
+      rsp = RetryRequestLaterResponse()
+      done(rsp)
+
+    except db.Timeout:
+      rsp = RetryRequestLaterResponse()
+      done(rsp)
+
+    except db.TransactionFailedError:
+      rsp = RetryRequestLaterResponse()
+      done(rsp)
+
+  return retry_wrapper
+
diff --git a/webapp/codereview/intra_region_diff.py b/webapp/codereview/intra_region_diff.py
new file mode 100644
index 0000000..3383c70
--- /dev/null
+++ b/webapp/codereview/intra_region_diff.py
@@ -0,0 +1,699 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Intra-region diff utilities.
+
+Intra-region diff highlights the blocks of code which have been changed or
+deleted within a region. So instead of highlighting the whole region marked as
+changed, the user can see what exactly was changed within that region.
+
+Terminology:
+  'region' is a list of consecutive code lines.
+  'word' is the unit of intra-region diff. Its definition is arbitrary based on
+   what we think as to be a good unit of difference between two regions.
+  'block' is a small section of code within a region. It can span multiple
+  lines. There can be multiple non overlapping blocks within a region. A block
+  can potentially span the whole region.
+
+The blocks have two representations. One is of the format (offset1, offset2,
+size) which is returned by the SequenceMatcher to indicate a match of
+length 'size' starting at offset1 in the first/old line and starting at offset2
+in the second/new line. We convert this representation to a pair of tuples i.e.
+(offset1, size) and (offset2, size) for rendering each side of the diff
+separately. This latter representation is also more efficient for doing
+compaction of adjacent blocks which reduces the size of the HTML markup. See
+CompactBlocks for more details.
+
+SequenceMatcher always returns one special matching block at the end with
+contents (len(line1), len(line2), 0). We retain this special block as it
+simplifies for loops in rendering the last non-matching block. All functions
+which deal with the sequence of blocks assume presence of the special block at
+the end of the sequence and retain it.
+"""
+
+import cgi
+import difflib
+import re
+
+# Tag to begin a diff chunk.
+BEGIN_TAG = "<span class=\"%s\">"
+# Tag to end a diff block.
+END_TAG = "</span>"
+# Tag used for visual tab indication
+TAB_TAG = ("<span class=\"visualtab\" title=\"Visual tab indicator. "
+           "Change settings above to hide.\">&raquo;</span>")
+# Color scheme to govern the display properties of diff blocks and matching
+# blocks. Each value e.g. 'oldlight' corresponds to a CSS style.
+COLOR_SCHEME = {
+  'old': {
+          'match':      'oldlight',
+          'diff':       'olddark',
+          'bckgrnd':    'oldlight',
+         },
+  'new': {
+          'match':      'newlight',
+          'diff':       'newdark',
+          'bckgrnd':    'newlight',
+         },
+  'oldmove': {
+          'match':      'movelight',
+          'diff':       'oldmovedark',
+          'bckgrnd':    'movelight'
+  },
+  'newmove': {
+          'match':      'newlight',
+          'diff':       'newdark',
+          'bckgrnd':    'newlight'
+  },
+}
+# Regular expressions to tokenize lines. Default is 'b'.
+EXPRS = {
+         'a': r'(\w+|[^\w\s]+|\s+)',
+         'b': r'([A-Za-z0-9]+|[^A-Za-z0-9])',
+         'c': r'([A-Za-z0-9_]+|[^A-Za-z0-9_])',
+        }
+# Maximum total characters in old and new lines for doing intra-region diffs.
+# Intra-region diff for larger regions is hard to comprehend and wastes CPU
+# time.
+MAX_TOTAL_LEN = 10000
+
+
+def ExpandTabs(text, tabsize=8, tab_marker=None):
+  """Expand tab characters in a string into spaces with an optional marker.
+
+  Args:
+    text: a string containing tab characters.
+    tabsize: the number of spaces that a tab represents
+    tab_marker: a character; if not None, we replace the first character
+                of each tab expansion with this.
+  """
+  tabpos = text.find("\t")
+  while tabpos >= 0:
+    fillwidth = tabsize - (tabpos % tabsize)
+    if fillwidth == 0:
+      fillwidth = tabsize
+    if tab_marker:
+      fill = tab_marker + " " * (fillwidth - 1)
+    else:
+      fill = " " * fillwidth
+    # We avoid str.replace in case tab_marker is \t
+    text = text[:tabpos] + fill + text[tabpos+1:]
+    tabpos = text.find("\t", tabpos + 1)
+  return text
+
+
+def Fold(text, limit=85, indent=5, offset=0, tabsize=8, mark_tabs=False):
+  """Break a long string into multiple lines.
+
+  Lines longer than 'limit' are broken up into pieces of at most
+  'limit' characters; continuation lines start with 'indent' spaces.
+
+  'offset' is used to indicate if 'text' itself doesn't align with
+  the beginning of line e.g. we are trying to Fold a line when we have
+  already printed 'offset' number of characters to the output.
+
+  This also translates tabs into 'tabsize' spaces. If 'mark_tabs' is true,
+  then we indicate the first character of each expanded tab visually.
+
+  Input and output are assumed to be in UTF-8; the computation is done
+  in Unicode.  (Still not good enough if zero-width characters are
+  present.) If the input is not valid UTF-8, then the encoding is
+  passed through, potentially breaking up multi-byte characters.
+  We pass the line through cgi.escape before returning it.
+
+  A trailing newline is always stripped from the input first.
+  """
+  assert tabsize > 0, tabsize
+  if text.endswith("\n"):
+    text = text[:-1]
+  try:
+    text = unicode(text, "utf-8")
+  except:
+    pass
+  if "\t" in text:
+    # If mark_tabs is true, we retain one \t character as a marker during
+    # expansion so that we later replace it with an HTML snippet.
+    tab_marker = mark_tabs and "\t" or None
+    rest = text[indent-offset:]
+    text = text[:indent-offset] + ExpandTabs(rest, tabsize, tab_marker)
+  # Perform wrapping.
+  if len(text) > limit - offset:
+    parts = []
+    prefix = ""
+    i = 0
+    j = limit - offset
+    while i < len(text):
+      parts.append(prefix + text[i:j])
+      i = j
+      j += limit - indent
+      prefix = " " * indent
+    text = "\n".join(parts)
+  # Colorize tab markers (after calling escape)
+  text = cgi.escape(text)
+  text = text.replace("\t", TAB_TAG)
+  if isinstance(text, unicode):
+    return text.encode("utf-8", "replace")
+  return text
+
+
+def CompactBlocks(blocks):
+  """Compacts adjacent code blocks.
+
+  In many cases 2 adjacent blocks can be merged into one. This allows
+  to do some further processing on those blocks.
+
+  Args:
+    blocks: [(offset1, size), ...]
+
+  Returns:
+    A list with the same structure as the input with adjacent blocks
+    merged.  However, the last block (which is always assumed to have
+    a zero size) is never merged.  For example, the input
+    [(0, 2), (2, 8), (10, 5), (15, 0)]
+    will produce the output [(0, 15), (15, 0)].
+  """
+  if len(blocks) == 1:
+    return blocks
+  result = [blocks[0]]
+  for block in blocks[1:-1]:
+    last_start, last_len = result[-1]
+    curr_start, curr_len = block
+    if last_start + last_len == curr_start:
+      result[-1] = last_start, last_len + curr_len
+    else:
+      result.append(block)
+  result.append(blocks[-1])
+  return result
+
+
+def FilterBlocks(blocks, filter_func):
+  """Gets rid of any blocks if filter_func evaluates false for them.
+
+  Args:
+    blocks: [(offset1, offset2, size), ...]; must have at least 1 entry
+    filter_func: a boolean function taking a single argument of the form
+                 (offset1, offset2, size)
+
+  Returns:
+    A list with the same structure with entries for which filter_func()
+    returns false removed.  However, the last block is always included.
+  """
+  # We retain the 'special' block at the end.
+  res = [b for b in blocks[:-1] if filter_func(b)]
+  res.append(blocks[-1])
+  return res
+
+
+def GetDiffParams(expr='b', min_match_ratio=0.6, min_match_size=2, dbg=False):
+  """Returns a tuple of various parameters which affect intra region diffs.
+
+  Args:
+    expr: regular expression id to use to identify 'words' in the intra region
+          diff
+    min_match_ratio: minimum similarity between regions to qualify for intra
+                     region diff
+    min_match_size: the smallest matching block size to use. Blocks smaller
+                    than this are ignored.
+    dbg: to turn on generation of debugging information for the diff
+
+  Returns:
+    4 tuple (expr, min_match_ratio, min_match_size, dbg) that can be used to
+    customize diff. It can be passed to functions like WordDiff and
+    IntraLineDiff.
+  """
+  assert expr in EXPRS
+  assert min_match_size in xrange(1,5)
+  assert min_match_ratio > 0.0 and min_match_ratio < 1.0
+  return (expr, min_match_ratio, min_match_size, dbg)
+
+
+def CanDoIRDiff(old_lines, new_lines):
+  """Tells if it would be worth computing the intra region diff.
+
+  Calculating IR diff is costly and is usually helpful only for small regions.
+  We use a heuristic that if the total number of characters is more than a
+  certain threshold then we assume it is not worth computing the IR diff.
+
+  Args:
+    old_lines: an array of strings containing old text
+    new_lines: an array of strings containing new text
+
+  Returns:
+    True if we think it is worth computing IR diff for the region defined
+    by old_lines and new_lines, False otherwise.
+
+  TODO: Let GetDiffParams handle MAX_TOTAL_LEN param also.
+  """
+  total_chars = (sum(len(line) for line in old_lines) +
+                 sum(len(line) for line in new_lines))
+  return total_chars <= MAX_TOTAL_LEN
+
+
+def WordDiff(line1, line2, diff_params):
+  """Returns blocks with positions indiciating word level diffs.
+
+  Args:
+    line1: string representing the left part of the diff
+    line2: string representing the right part of the diff
+    diff_params: return value of GetDiffParams
+
+  Returns:
+    A tuple (blocks, ratio) where:
+      blocks: [(offset1, offset2, size), ...] such that
+              line1[offset1:offset1+size] == line2[offset2:offset2+size]
+              and the last block is always (len(line1), len(line2), 0)
+      ratio: a float giving the diff ratio computed by SequenceMatcher.
+  """
+  match_expr, min_match_ratio, min_match_size, dbg = diff_params
+  exp = EXPRS[match_expr]
+  # We want to split at proper character boundaries in UTF8 text.
+  try:
+    line1_u = unicode(line1, "utf8")
+  except:
+    line1_u = line1
+  try:
+    line2_u = unicode(line2, "utf8")
+  except:
+    line2_u = line2
+  def _ToUTF8(s):
+    if isinstance(s, unicode):
+      return s.encode("utf8")
+    return s
+  a = map(_ToUTF8, re.findall(exp, line1_u, re.U))
+  b = map(_ToUTF8, re.findall(exp, line2_u, re.U))
+  s = difflib.SequenceMatcher(None, a, b)
+  matching_blocks = s.get_matching_blocks()
+  ratio = s.ratio()
+  # Don't show intra region diffs if both lines are too different and there is
+  # more than one block of difference. If there is only one change then we
+  # still show the intra region diff regardless of how different the blocks
+  # are.
+  # Note: We compare len(matching_blocks) with 3 because one block of change
+  # results in 2 matching blocks. We add the one special block and we get 3
+  # matching blocks per one block of change.
+  if ratio < min_match_ratio and len(matching_blocks) > 3:
+    return ([(0, 0, 0)], ratio)
+  # For now convert to character level blocks because we already have
+  # the code to deal with folding across lines for character blocks.
+  # Create arrays lena an lenb which have cumulative word lengths
+  # corresponding to word positions in a and b
+  lena = []
+  last = 0
+  for w in a:
+    lena.append(last)
+    last += len(w)
+  lenb = []
+  last = 0
+  for w in b:
+    lenb.append(last)
+    last += len(w)
+  lena.append(len(line1))
+  lenb.append(len(line2))
+  # Convert to character blocks
+  blocks = []
+  for s1, s2, blen in matching_blocks[:-1]:
+    apos = lena[s1]
+    bpos = lenb[s2]
+    block_len = lena[s1+blen] - apos
+    blocks.append((apos, bpos, block_len))
+  # Recreate the special block.
+  blocks.append((len(line1), len(line2), 0))
+  # Filter any matching blocks which are smaller than the desired threshold.
+  # We don't remove matching blocks with only a newline character as doing so
+  # results in showing the matching newline character as non matching which
+  # doesn't look good.
+  blocks = FilterBlocks(blocks, lambda b: (b[2] >= min_match_size or
+                                           line1[b[0]:b[0]+b[2]] == '\n'))
+  return (blocks, ratio)
+
+
+def IntraLineDiff(line1, line2, diff_params, diff_func=WordDiff):
+  """Computes intraline diff blocks.
+
+  Args:
+    line1: string representing the left part of the diff
+    line2: string representing the right part of the diff
+    diff_params: return value of GetDiffParams
+    diff_func: a function whose signature matches that of WordDiff() above
+
+  Returns:
+    A tuple of (blocks1, blocks2) corresponding to line1 and line2.
+    Each element of the tuple is an array of (start_pos, length)
+    tuples denoting a diff block.
+  """
+  blocks, ratio = diff_func(line1, line2, diff_params)
+  blocks1 = [(start1, length) for (start1, start2, length) in blocks]
+  blocks2 = [(start2, length) for (start1, start2, length) in blocks]
+
+  return (blocks1, blocks2, ratio)
+
+
+def DumpDiff(blocks, line1, line2):
+  """Helper function to debug diff related problems.
+
+  Args:
+    blocks: [(offset1, offset2, size), ...]
+    line1: string representing the left part of the diff
+    line2: string representing the right part of the diff
+  """
+  for offset1, offset2, size in blocks:
+    print offset1, offset2, size
+    print offset1, size, ":  ", line1[offset1:offset1+size]
+    print offset2, size, ":  ", line2[offset2:offset2+size]
+
+
+def RenderIntraLineDiff(blocks, line, tag, dbg_info=None, limit=80, indent=5,
+                        tabsize=8, mark_tabs=False):
+  """Renders the diff blocks returned by IntraLineDiff function.
+
+  Args:
+    blocks: [(start_pos,  size), ...]
+    line: line of code on which the blocks are to be rendered.
+    tag: 'new' or 'old' to control the color scheme.
+    dbg_info: a string that holds debugging informaion header. Debug
+              information is rendered only if dbg_info is not None.
+    limit: folding limit to be passed to the Fold function.
+    indent: indentation size to be passed to the Fold function.
+    tabsize: the number of spaces that a tab represents
+    mark_tabs: if True, mark the first character of each expanded tab visually
+
+  Returns:
+    A tuple of two elements. First element is the rendered version of
+    the input 'line'. Second element tells if the line has a matching
+    newline character.
+  """
+  res = ""
+  prev_start, prev_len = 0, 0
+  has_newline = False
+  debug_info = dbg_info
+  if dbg_info:
+    debug_info += "\nBlock Count: %d\nBlocks: " % (len(blocks) - 1)
+  for curr_start, curr_len in blocks:
+    if dbg_info and curr_len > 0:
+      debug_info += Fold("\n(%d, %d):|%s|" %
+                         (curr_start, curr_len,
+                          line[curr_start:curr_start+curr_len]),
+                         limit, indent, tabsize, mark_tabs)
+    res += FoldBlock(line, prev_start + prev_len, curr_start, limit, indent,
+                     tag, 'diff', tabsize, mark_tabs)
+    res += FoldBlock(line, curr_start, curr_start + curr_len, limit, indent,
+                     tag, 'match', tabsize, mark_tabs)
+    # TODO: This test should be out of loop rather than inside. Once we
+    # filter out some junk from blocks (e.g. some empty blocks) we should do
+    # this test only on the last matching block.
+    if line[curr_start:curr_start+curr_len].endswith('\n'):
+      has_newline = True
+    prev_start, prev_len = curr_start, curr_len
+  return (res, has_newline, debug_info)
+
+
+def FoldBlock(src, start, end, limit, indent, tag, btype, tabsize=8,
+              mark_tabs=False):
+  """Folds and renders a block.
+
+  Args:
+    src: line of code
+    start: starting position of the block within 'src'.
+    end: ending position of the block within 'src'.
+    limit: folding limit
+    indent: indentation to use for folding.
+    tag: 'new' or 'old' to control the color scheme.
+    btype: block type i.e. 'match' or 'diff' to control the color schme.
+    tabsize: the number of spaces that a tab represents
+    mark_tabs: if True, mark the first character of each expanded tab visually
+
+  Returns:
+    A string represeting the rendered block.
+  """
+  text = src[start:end]
+  # We ignore newlines because we do newline management ourselves.
+  # Any other new lines with at the end will be stripped off by the Fold
+  # method.
+  if start >= end or text == '\n':
+    return ""
+  fbegin, lend, nl_plus_indent = GetTags(tag, btype, indent)
+  # 'bol' is beginning of line
+  offset_from_bol = start % limit
+  res = ""
+  # If this is the first block of the line and this is not the first line then
+  # insert newline + indent. This special case is not dealt with in the for
+  # loop below.
+  if offset_from_bol == 0 and not start == 0:
+    res = nl_plus_indent
+  text = Fold(text, limit, 0, offset_from_bol, tabsize, mark_tabs)
+  folded_lines = text.split("\n")
+  for (j, l) in enumerate(folded_lines):
+    if l:
+      res += (fbegin + l + lend)
+    # Add new line plus indent except for the last line.
+    if j < len(folded_lines) - 1:
+      res += nl_plus_indent
+  return res
+
+
+def GetTags(tag, btype, indent):
+  """Returns various tags for rendering diff blocks.
+
+  Args:
+    tag: a key from COLOR_SCHEME
+    btype: 'match' or 'diff'
+    indent: indentation to use
+  Returns
+    A 3 tuple (begin_tag, end_tag, formatted_indent_block)
+  """
+  assert tag in COLOR_SCHEME
+  assert btype in ['match', 'diff']
+  fbegin = BEGIN_TAG % COLOR_SCHEME[tag][btype]
+  bbegin = BEGIN_TAG % COLOR_SCHEME[tag]['bckgrnd']
+  lend = END_TAG
+  nl_plus_indent = '\n'
+  if indent > 0:
+    nl_plus_indent += bbegin + cgi.escape(" "*indent) + lend
+  return fbegin, lend, nl_plus_indent
+
+
+def ConvertToSingleLine(lines):
+  """Transforms a sequence of strings into a single line.
+
+  Returns the state that can be used to reconstruct the original lines with
+  the newline separators placed at the original place.
+
+  Args:
+    lines: sequence of strings
+
+  Returns:
+    Returns (single_line, state) tuple. 'state' shouldn't be modified by the
+    caller. It is only used to pass to other functions which will do certain
+    operations on this state.
+
+    'state' is an array containing a dictionary for each item in lines. Each
+    dictionary has two elements 'pos' and 'blocks'. 'pos' is the end position
+    of each line in the final converted string. 'blocks' is an array of blocks
+    for each line of code. These blocks are added using MarkBlock function.
+  """
+  state = []
+  total_length = 0
+  for l in lines:
+    total_length += len(l)
+    # TODO: Use a tuple instead.
+    state.append({     'pos': total_length, # the line split point
+                    'blocks': []            # blocks which belong to this line
+                 })
+  result = "".join(lines)
+  assert len(state) == len(lines)
+  return (result, state)
+
+
+def MarkBlock(state, begin, end):
+  """Marks a block on a region such that it doesn't cross line boundaries.
+
+  It is an operation that can be performed on the single line which was
+  returned by the ConvertToSingleLine function. This operation marks arbitrary
+  block [begin,end) on the text. It also ensures that if [begin,end) crosses
+  line boundaries in the original region then it splits the section up in 2 or
+  more blocks such that no block crosses the boundaries.
+
+  Args:
+    state: the state returned by ConvertToSingleLine function. The state
+           contained is modified by this function.
+    begin: Beginning of the block.
+    end: End of the block (exclusive).
+
+  Returns:
+    None.
+  """
+  # TODO: Make sure already existing blocks don't overlap
+  if begin == end:
+    return
+  last_pos = 0
+  for entry in state:
+    pos = entry['pos']
+    if begin >= last_pos and begin < pos:
+      if end < pos:
+        # block doesn't cross any line boundary
+        entry['blocks'].append((begin, end))
+      else:
+        # block crosses the line boundary
+        entry['blocks'].append((begin, pos))
+        MarkBlock(state, pos, end)
+      break
+    last_pos = pos
+
+
+def GetBlocks(state):
+  """Returns all the blocks corresponding to the lines in the region.
+
+  Args:
+    state: the state returned by ConvertToSingleLine().
+
+  Returns:
+    An array of [(start_pos, length), ..] with an entry for each line in the
+    region.
+  """
+  result = []
+  last_pos = 0
+  for entry in state:
+    pos = entry['pos']
+    # Calculate block start points from the beginning of individual lines.
+    blocks = [(s[0]-last_pos, s[1]-s[0]) for s in entry['blocks']]
+    # Add one end marker block.
+    blocks.append((pos-last_pos, 0))
+    result.append(blocks)
+    last_pos = pos
+  return result
+
+
+def IntraRegionDiff(old_lines, new_lines, diff_params):
+  """Computes intra region diff.
+
+  Args:
+    old_lines: array of strings
+    new_lines: array of strings
+    diff_params: return value of GetDiffParams
+
+  Returns:
+    A tuple (old_blocks, new_blocks) containing matching blocks for old and new
+    lines.
+  """
+  old_line, old_state = ConvertToSingleLine(old_lines)
+  new_line, new_state = ConvertToSingleLine(new_lines)
+  old_blocks, new_blocks, ratio = IntraLineDiff(old_line, new_line, diff_params)
+  for begin, length in old_blocks:
+    MarkBlock(old_state, begin, begin+length)
+  old_blocks = GetBlocks(old_state)
+
+  for begin, length in new_blocks:
+    MarkBlock(new_state, begin, begin+length)
+  new_blocks = GetBlocks(new_state)
+
+  return (old_blocks, new_blocks, ratio)
+
+
+def NormalizeBlocks(blocks, line):
+  """Normalizes block representation of an intra line diff.
+
+  One diff can have multiple representations. Some times the diff returned by
+  the difflib for similar text sections is different even within same region.
+  For example if 2 already indented lines were indented with one additional
+  space character, the difflib may return the non matching space character to
+  be any of the already existing spaces. So one line may show non matching
+  space character as the first space character and the second line may show it
+  to be the last space character. This is sometimes confusing. This is the
+  side effect of the new regular expression we are using in WordDiff for
+  identifying indvidual words. This regular expression ('b') treats a sequence
+  of punctuation and whitespace characters as individual characters. It has
+  some visual advantages for showing a character level punctuation change as
+  one character change rather than a group of character change.
+
+  Making the normalization too generic can have performance implications. So
+  this implementation of normalize blocks intends to handle only one case.
+  Let's say S represents the space character and () marks a matching block.
+  Then the normalize operation will do following:
+
+     SSSS(SS)(ABCD) => SSSS(SS)(ABCD)
+     (SS)SSSS(ABCD) => SSSS(SS)(ABCD)
+     (SSSS)SS(ABCD) => SS(SSSS)(ABCD)
+
+     and so on..
+
+  Args:
+    blocks: An array of (offset, len) tuples defined on 'line'. These blocks
+            mark the matching areas. Anything between these matching blocks is
+            considered non-matching.
+    line: The text string on which the blocks are defined.
+
+  Returns:
+    An array of (offset, len) tuples representing the same diff but in
+    normalized form.
+  """
+  result = []
+  prev_start, prev_len = blocks[0]
+  for curr_start, curr_len in blocks[1:]:
+    # Note: nm_ is a prefix for non matching and m_ is a prefix for matching.
+    m_len, nm_len  = prev_len, curr_start - (prev_start+prev_len)
+    # This if condition checks if matching and non matching parts are greater
+    # than zero length and are comprised of spaces ONLY. The last condition
+    # deals with most of the observed cases of strange diffs.
+    # Note: curr_start - prev_start == m_l + nm_l
+    #       So line[prev_start:curr_start] == matching_part + non_matching_part.
+    text = line[prev_start:curr_start]
+    if m_len > 0 and nm_len > 0 and text == ' ' * len(text):
+      # Move the matching block towards the end i.e. normalize.
+      result.append((prev_start + nm_len, m_len))
+    else:
+      # Keep the existing matching block.
+      result.append((prev_start, prev_len))
+    prev_start, prev_len = curr_start, curr_len
+  result.append(blocks[-1])
+  assert len(result) == len(blocks)
+  return result
+
+
+def RenderIntraRegionDiff(lines, diff_blocks, tag, ratio, limit=80, indent=5,
+                          tabsize=8, mark_tabs=False, dbg=False):
+  """Renders intra region diff for one side.
+
+  Args:
+    lines: list of strings representing source code in the region
+    diff_blocks: blocks that were returned for this region by IntraRegionDiff()
+    tag: 'new' or 'old'
+    ratio: similarity ratio returned by the diff computing function
+    limit: folding limit
+    indent: indentation size
+    tabsize: the number of spaces that a tab represents
+    mark_tabs: if True, mark the first character of each expanded tab visually
+    dbg: indicates if debug information should be rendered
+
+  Returns:
+    A list of strings representing the rendered version of each item in input
+    'lines'.
+  """
+  result = []
+  dbg_info = None
+  if dbg:
+    dbg_info = 'Ratio: %.1f' % ratio
+  for line, blocks in zip(lines, diff_blocks):
+    blocks = NormalizeBlocks(blocks, line)
+    blocks = CompactBlocks(blocks)
+    diff = RenderIntraLineDiff(blocks,
+                               line,
+                               tag,
+                               dbg_info=dbg_info,
+                               limit=limit,
+                               indent=indent,
+                               tabsize=tabsize,
+                               mark_tabs=mark_tabs)
+    result.append(diff)
+  assert len(result) == len(lines)
+  return result
diff --git a/webapp/codereview/library.py b/webapp/codereview/library.py
new file mode 100644
index 0000000..82d6b29
--- /dev/null
+++ b/webapp/codereview/library.py
@@ -0,0 +1,207 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Django template library for Gerrit."""
+
+import cgi
+import logging
+
+from google.appengine.api import memcache
+from google.appengine.api import users
+
+import django.template
+import django.utils.safestring
+from django.utils.safestring import mark_safe
+from django.utils.timesince import timesince
+
+from memcache import CachedDict
+import models
+import view_util
+
+register = django.template.Library()
+
+class _CachedUser(object):
+  """Important data about an Account, pickled into memcache for
+     faster access when rendering pages to clients.
+  """
+  email = None
+  real_name = None
+  exists = False
+
+def _store_users(emails):
+  def _cache(pair):
+    email, account = pair
+    r = _CachedUser()
+    if account:
+      r.email = account.email
+      r.real_name = account.real_name
+      r.exists = account.real_name_entered
+    else:
+      r.email = email
+      r.real_name = email
+      if '@' in r.real_name:
+        r.real_name = r.real_name.split('@', 1)[0]
+    if r.real_name is None:
+      r.real_name = 'Unknown Person (%s)' % r.email
+    return r
+  all = zip(emails, models.Account.get_accounts_for_emails(emails))
+  return map(_cache, all)
+_user_cache = CachedDict(prefix = 'CachedUser:',
+                         compute_multi = _store_users,
+                         timeout = 300)
+
+def _to_email(u):
+  if isinstance(u, users.User):
+    return u.email()
+  return u
+
+def prefetch_names(emails):
+  _user_cache.prefetch(map(_to_email, emails))
+
+
+@register.filter
+def real_name(email, arg=None):
+  """Render an email address or a User object as a real_name.
+
+  If the input is a user object that equals the current user,
+  'me' is returned, unless the filter argument is non-empty.
+  Example:
+    {{foo|real_name}} may render 'me';
+    {{foo|real_name:"x"}} will never render 'me'.
+  """
+  return real_names([email], arg)
+
+@register.filter
+def real_names(email_list, arg=None):
+  """Render a list of email addresses or User objects as real_names.
+
+  Each list item is first formatter via the real_name() filter above,
+  and then the resulting strings are separated by commas.
+  The filter argument is the same as for real_name() above.
+  """
+  if arg:
+    user = None
+  else:
+    user = users.get_current_user()
+
+  email_list = map(_to_email, email_list)
+  all = _user_cache.get_multi(email_list)
+
+  names = []
+  for email in email_list:
+    if user and user.email() == email:
+      names.append('me')
+    else:
+      names.append(all[email].real_name)
+  return ', '.join(names)
+
+
+@register.filter
+def show_user(email, arg=None):
+  """Render a link to the user's dashboard, with text being
+     the real_name.
+  """
+  return show_users([email], arg)
+
+@register.filter
+def show_users(email_list, arg=None):
+  """Render list of links to each user's dashboard, with text
+     being the real_name.
+  """
+  if arg:
+    user = None
+  else:
+    user = users.get_current_user()
+
+  email_list = map(_to_email, email_list)
+  all = _user_cache.get_multi(email_list)
+
+  names = []
+  for email in email_list:
+    if user and user.email() == email:
+      names.append('me')
+    else:
+      u = all[email]
+      if u.exists:
+        names.append(
+          '<a href="/user/%(link)s"'
+          ' onMouseOver="M_showUserInfoPopup(this)">'
+          '%(name)s</a>'
+          % {'link': cgi.escape(u.email.replace('@',',,')),
+             'name': cgi.escape(u.real_name)}
+        )
+      else:
+        names.append(cgi.escape(u.real_name))
+  return mark_safe(', '.join(names))
+
+
+def _init_lgtm_text():
+  r = {}
+  for key, value in models.LGTM_CHOICES:
+    r[key] = value
+  return r
+_lgtm_text = _init_lgtm_text()
+
+@register.filter
+def review_status_text(status, arg=None):
+  try:
+    return _lgtm_text[status]
+  except KeyError:
+    return ''
+
+
+_lgtm_icon = {
+  'lgtm':    mark_safe('<img src="/static/check.png" />'),
+  'yes':     mark_safe('<font color="#08a400">+1</font>'),
+  'abstain': '',
+  'no':      mark_safe('<font color="#d10000"><b>-1</b></font>'),
+  'reject':  mark_safe('<img src="/static/x.png" />'),
+}
+
+@register.filter
+def review_status_icons(status, arg=None):
+  try:
+    return _lgtm_icon[status]
+  except KeyError:
+    return ''
+
+
+@register.filter
+def form_xsrf(url, arg=None):
+  x = view_util.xsrf_for(url)
+  return mark_safe('<input type="hidden" name="xsrf" value="%s" />' % x)
+
+@register.filter
+def bare_xsrf(url, arg=None):
+  return mark_safe(view_util.xsrf_for(url))
+
+_abbrev_units = {
+  'year': 'y',     'years': 'y',
+  'month': 'mo',   'months': 'm',
+  'week': 'w',     'weeks': 'w',
+  'day': 'd',      'days': 'd',
+  'hour': 'h',     'hours': 'h',
+  'minute': 'min', 'minutes': 'mins',
+}
+
+@register.filter
+def abbrevtimesince(d, arg=None):
+  r = []
+  for p in timesince(d).split(', '):
+    cnt, unit = p.split(' ', 2)
+    try:
+      r.append('%s %s' % (cnt, _abbrev_units[unit]))
+    except KeyError:
+      r.append(p)
+  return ', '.join(r)
diff --git a/webapp/codereview/memcache.py b/webapp/codereview/memcache.py
new file mode 100644
index 0000000..72bdfa2
--- /dev/null
+++ b/webapp/codereview/memcache.py
@@ -0,0 +1,156 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Utility support for dealing with memcache."""
+
+from google.appengine.api import memcache
+from google.appengine.runtime import DeadlineExceededError
+
+import cStringIO
+import pickle
+import zlib
+
+
+class Key(object):
+  def __init__(self, key, timeout=None, compress=False):
+    if compress:
+      key += '(z)'
+    self._key = key
+    self._timeout = timeout
+    self._compress = compress
+
+  def get(self, compute=None):
+    try:
+      r = memcache.get(self._key)
+      if r and self._compress:
+        r = pickle.load(cStringIO.StringIO(zlib.decompress(r)))
+    except DeadlineExceededError:
+      r = None
+
+    if r is not None:
+      return r
+
+    if compute is not None:
+      r = compute()
+      if r is not None:
+        self.set(r)
+    return r
+
+  def clear(self):
+    try:
+      memcache.delete(self._key)
+    except DeadlineExceededError:
+      pass
+
+  def set(self, value):
+    try:
+      if self._compress:
+        buf = cStringIO.StringIO()
+        pickle.dump(value, buf, -1)
+        value = zlib.compress(buf.getvalue())
+
+      if self._timeout is None:
+        memcache.set(self._key, value)
+      else:
+        memcache.set(self._key, value, self._timeout)
+    except DeadlineExceededError:
+      pass
+
+
+class CachedDict(object):
+  """A cache of zero or more memcache keys.  The dictionary of
+     acquired keys is also cached locally in this process, but
+     can be forcibly cleared by clear_local.
+  """
+  def __init__(self,
+               prefix,
+               timeout,
+               compute_one = None,
+               compute_multi = None):
+    self._prefix = prefix
+    self._timeout = timeout
+    self._cache = {}
+    self._prefetch = set()
+
+    if compute_multi:
+      self._compute = compute_multi
+    elif compute_one:
+      self._compute = lambda x: map(compute_one, x)
+    else:
+      raise ValueError, 'compute_one or compute_multi required'
+
+  def prefetch(self, keys):
+    for item_key in keys:
+      if item_key not in self._cache:
+        self._prefetch.add(item_key)
+
+  def get_multi(self, keys):
+    result = {}
+
+    not_local = []
+    for item_key in keys:
+      try:
+        result[item_key] = self._cache[item_key]
+      except KeyError:
+        not_local.append(item_key)
+
+    if not_local:
+      to_get = []
+      to_get.extend(not_local)
+      to_get.extend(self._prefetch)
+      self._prefetch = set()
+
+      try:
+        cached = memcache.get_multi(to_get, self._prefix)
+      except DeadlineExceededError:
+        cached = {}
+
+      to_compute = []
+      for item_key in to_get:
+        try:
+          r = cached[item_key]
+        except KeyError:
+          to_compute.append(item_key)
+          continue
+        self._cache[item_key] = r
+        result[item_key] = r
+
+      if to_compute:
+        to_cache = {}
+        for item_key, r in zip(to_compute, self._compute(to_compute)):
+          if r is not None:
+            to_cache[item_key] = r
+          self._cache[item_key] = r
+          result[item_key] = r
+
+        if to_cache:
+          try:
+            memcache.set_multi(to_cache, self._timeout, self._prefix)
+          except DeadlineExceededError:
+            pass
+    return result
+
+  def get(self, key):
+    return get_multi([key])[key]
+
+  def clear_local(self):
+    self._cache = {}
+    self._prefetch = set()
+
+  def clear(self):
+    try:
+      memcache.delete_multi(self._prefix)
+    except DeadlineExceededError:
+      pass
+    self.clear_local()
diff --git a/webapp/codereview/middleware.py b/webapp/codereview/middleware.py
new file mode 100644
index 0000000..165f5cd
--- /dev/null
+++ b/webapp/codereview/middleware.py
@@ -0,0 +1,71 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Custom middleware.  Some of this may be generally useful."""
+
+import logging
+import time
+
+from google.appengine.api import users
+from django.utils.http import http_date
+
+import models
+import view_util
+import library
+
+class NoCacheMiddleware(object):
+  """Set the cache-control and expires headers."""
+
+  def process_response(self, request, response):
+    response['Cache-Control'] = 'no-cache'
+    response['Expires'] = http_date(time.time() - 1)
+    return response
+
+
+class ClearXsrfKeyMiddleware(object):
+  """Sets the xsrf_key to None so it can later be read."""
+
+  def process_request(self, request):
+    view_util._xsrf_key = None
+    view_util._xsrf_now = None
+    view_util._xsrf_cache = {}
+    library._user_cache.clear_local()
+
+
+class AddUserToRequestMiddleware(object):
+  """Add a user object and a user_is_admin flag to each request."""
+
+  def process_request(self, request):
+    request.user = users.get_current_user()
+    if request.user:
+      request.is_gae_admin = users.is_current_user_admin()
+      request.user_is_admin = models.AccountGroup.is_user_admin(request.user)
+      request.projects_owned_by_user = models.Project.projects_owned_by_user(
+          request.user)
+      request.show_admin_tab = (request.user_is_admin
+          or len(request.projects_owned_by_user) > 0)
+    else:
+      request.is_gae_admin = False
+      request.user_is_admin = False
+      request.projects_owend_by_user = set()
+      request.show_admin_tab = False
+
+    # Update the cached value of the current user's Account
+    account = None
+    if request.user is not None:
+      account = models.Account.get_account_for_user(request.user)
+      request.account = account
+    else:
+      request.account = None
+    models.Account.current_user_account = account
diff --git a/webapp/codereview/models.py b/webapp/codereview/models.py
new file mode 100644
index 0000000..60a0515
--- /dev/null
+++ b/webapp/codereview/models.py
@@ -0,0 +1,1480 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""App Engine data model (schema) definition for Gerrit."""
+
+# Python imports
+import base64
+import datetime
+import hashlib
+import logging
+import random
+import re
+import zlib
+
+# AppEngine imports
+from google.appengine.ext import db
+from google.appengine.api import memcache
+from google.appengine.api import users
+
+# Local imports
+from memcache import Key as MemCacheKey
+import patching
+
+
+DEFAULT_CONTEXT = 10
+CONTEXT_CHOICES = (3, 10, 25, 50, 75, 100)
+FETCH_MAX = 1000
+MAX_DELTA_DEPTH = 10
+
+LGTM_CHOICES = (
+    ('lgtm', 'Looks good to me, approved.'),
+    ('yes', 'Looks good to me, but someone else must approve.'),
+    ('abstain', 'No score.'),
+    ('no', 'I would prefer that you didn\'t submit this.'),
+    ('reject', 'Do not submit.'),
+  )
+LIMITED_LGTM_CHOICES = [choice for choice in LGTM_CHOICES
+        if choice[0] != 'lgtm' and choice[0] != 'reject']
+
+### GQL query cache ###
+
+
+_query_cache = {}
+
+class BackedUpModel(db.Model):
+  """Base class for our models that keeps a property used for backup."""
+
+  last_backed_up = db.IntegerProperty(default=0)
+
+  def __init__(self, *args, **kwargs):
+    db.Model.__init__(self, *args, **kwargs)
+
+def gql(cls, clause, *args, **kwds):
+  """Return a query object, from the cache if possible.
+
+  Args:
+    cls: a BackedUpModel subclass.
+    clause: a query clause, e.g. 'WHERE draft = TRUE'.
+    *args, **kwds: positional and keyword arguments to be bound to the query.
+
+  Returns:
+    A db.GqlQuery instance corresponding to the query with *args and
+    **kwds bound to the query.
+  """
+  query_string = 'SELECT * FROM %s %s' % (cls.kind(), clause)
+  query = _query_cache.get(query_string)
+  if query is None:
+    _query_cache[query_string] = query = db.GqlQuery(query_string)
+  query.bind(*args, **kwds)
+  return query
+
+
+### Exceptions ###
+
+class InvalidLgtmException(Exception):
+  """User is not alloewd to LGTM this change."""
+
+class InvalidVerifierException(Exception):
+  """User is not alloewd to verify this change."""
+
+class InvalidSubmitMergeException(Exception):
+  """The change cannot me scheduled for merge."""
+
+class DeltaPatchingException(Exception):
+  """Applying a patch yield the wrong hash."""
+
+
+### Settings ###
+
+def _genkey(n=26):
+  k = ''.join(map(chr, (random.randrange(256) for i in xrange(n))))
+  return base64.b64encode(k)
+
+class Settings(BackedUpModel):
+  """Global settings for the application instance."""
+
+  analytics = db.StringProperty()
+  internal_api_key = db.StringProperty()
+  xsrf_key = db.StringProperty()
+  from_email = db.StringProperty()
+
+  _Key = MemCacheKey('Settings_Singleton')
+
+  @classmethod
+  def get_settings(cls):
+    """Get the Settings singleton.
+
+    If possible, get it from memcache.  If it's not there, it tries to do a 
+    normal get().  Only if that fails does it call get_or_insert, because of
+    possible contention errors due to get_or_insert's transaction.
+    """
+    def read():
+      result = cls.get_by_key_name('settings')
+      if result:
+        return result
+      else:
+        return cls.get_or_insert('settings',
+                                  internal_api_key=_genkey(26),
+                                  xsrf_key=_genkey(26))
+    return Settings._Key.get(read)
+
+  def put(self):
+    BackedUpModel.put(self)
+    self._Key.clear()
+
+
+### Approval rights ###
+
+def _flatten_users_and_groups(users, groups):
+  """Returns a set of the users and the groups provided"""
+  result = set()
+  for user in users:
+    result.add(user)
+  if groups:
+    for group in db.get(groups):
+      for user in group.members:
+        result.add(user)
+  return result
+
+
+class ApprovalRight(BackedUpModel):
+  """The tuple of a set of path patterns and a set of users who can approve
+  changes for those paths."""
+  files = db.StringListProperty()
+  approvers_users = db.ListProperty(users.User)
+  approvers_groups = db.ListProperty(db.Key)
+  verifiers_users = db.ListProperty(users.User)
+  verifiers_groups = db.ListProperty(db.Key)
+  required = db.BooleanProperty()
+
+  def approvers(self):
+    """Returns a set of the users who are approvers."""
+    return _flatten_users_and_groups(self.approvers_users,
+        self.approvers_groups)
+
+  def verifiers(self):
+    """Returns a set of the users who are verifiers."""
+    return _flatten_users_and_groups(self.verifiers_users,
+        self.verifiers_groups)
+
+  @classmethod
+  def validate_file(cls, file):
+    """Returns whether this is a valid file path.
+    
+    The rules:
+      - The length must be > 0
+      - The file path must start with a '/'
+      - The file path must contain either 0 or 1 '...'
+      - If it contains one '...', it must either be last or directly
+        after the first '/'
+        
+        These last two limitations could be removed someday but are
+        good enough for now.
+    """
+    if len(file) == 0:
+      return False
+    if file[0] != '/':
+      return False
+    (before, during, after) = file.partition("...")
+    if during == "" and after == "":
+      return True
+    if before != "/":
+      return False
+    if after.find("...") != -1:
+      return False
+    return True
+
+### Projects ###
+
+class Project(BackedUpModel):
+  """An open source project.
+
+  Projects have owners who can set approvers and stuff.
+  """
+
+  name = db.StringProperty(required=True)
+  comment = db.StringProperty(required=False)
+  owners_users = db.ListProperty(users.User)
+  owners_groups = db.ListProperty(db.Key)
+  code_reviews = db.ListProperty(db.Key)
+
+  @classmethod
+  def get_all_projects(cls):
+    """Return all projects"""
+    all = cls.all()
+    all.order('name')
+    return list(all)
+
+  @classmethod
+  def get_project_for_name(cls, name):
+    return cls.gql('WHERE name=:name', name=name).get()
+
+  def remove(self):
+    """delete this project"""
+    db.delete(ApprovalRight.get(self.code_reviews))
+    self.delete()
+
+  def set_code_reviews(self, approval_right_keys):
+    for key in self.code_reviews:
+      val = ApprovalRight.get(key)
+      if val:
+        db.delete(val)
+    self.code_reviews = approval_right_keys
+
+  def get_code_reviews(self):
+    return [ApprovalRight.get(key) for key in self.code_reviews]
+
+  def is_code_reviewed(self):
+    return True
+
+  def put(self):
+    memcache.flush_all()
+    BackedUpModel.put(self)
+
+  @classmethod
+  def projects_owned_by_user(cls, user):
+    memcache.flush_all()
+    key = "projects_owned_by_user_%s" % user.email()
+    result = memcache.get(key)
+    if result is None:
+      result = set(
+          Project.gql("WHERE owner_users=:user", user=user).fetch(1000))
+      groups = AccountGroup.gql("WHERE members=:user", user=user).fetch(1000)
+      if groups:
+        pr = Project.gql(
+            "WHERE owners_groups IN :groups",
+            groups=[g.key() for g in groups]).fetch(1000)
+        result.update(pr)
+      memcache.set(key, [p.key() for p in result])
+    return result
+
+
+class Branch(BackedUpModel):
+  """A branch in a specific Project."""
+
+  project = db.ReferenceProperty(Project, required=True)
+  name = db.StringProperty(required=True) # == key
+
+  status = db.StringProperty(choices=('NEEDS_MERGE',
+                                      'MERGING',
+                                      'BUILDING'))
+  merge_submitted = db.DateTimeProperty()
+  to_merge = db.ListProperty(db.Key) # PatchSets
+  merging = db.ListProperty(db.Key) # PatchSets
+  waiting = db.ListProperty(db.Key) # PatchSets
+
+  @classmethod
+  def get_or_insert_branch(cls, project, name):
+    key = 'p.%s %s' % (project.key().id(), name)
+    return cls.get_or_insert(key, project=project, name=name)
+
+  @classmethod
+  def get_branch_for_name(cls, project, name):
+    key = 'p.%s %s' % (project.key().id(), name)
+    return cls.get_by_key_name(key)
+
+  @property
+  def short_name(self):
+    if self.name.startswith("refs/heads/"):
+      return self.name[len("refs/heads/"):]
+    return self.name
+
+  def is_code_reviewed(self):
+    return True
+
+  def merge_patchset(self, patchset):
+    """Add a patchset to the end of the branch's merge queue
+
+    This method runs in an independent transaction.
+    """
+    ps_key = patchset.key()
+    def trans(key):
+      b = db.get(key)
+      if not ps_key in b.to_merge:
+        b.to_merge.append(ps_key)
+        if b.status is None:
+          b.status = 'NEEDS_MERGE'
+          b.merge_submitted = datetime.datetime.now()
+        b.put()
+    db.run_in_transaction(trans, self.key())
+
+  def begin_merge(self):
+    """Lock this branch and start merging patchsets.
+
+    This method runs in an independent transaction.
+    """
+    def trans(key):
+      b = db.get(key)
+      if b.status == 'NEEDS_MERGE':
+        b.status = 'MERGING'
+        b.merging.extend(b.waiting)
+        b.merging.extend(b.to_merge)
+        b.waiting = []
+        b.to_merge = []
+        b.put()
+        return b.merging
+      return []
+    keys = db.run_in_transaction(trans, self.key())
+    objs = db.get(keys)
+
+    good = []
+    torm = []
+    for k, o in zip(keys, objs):
+      if o:
+        good.append(o)
+      else:
+        torm.append(k)
+
+    if torm:
+      def clear_branch(key):
+        b = db.get(key)
+
+        for ps_key in torm:
+          if ps_key in b.merging:
+            b.merging.remove(ps_key)
+
+        if not good and b.status in ('MERGING', 'BUILDING'):
+          if b.to_merge:
+            b.status = 'NEEDS_MERGE'
+          else:
+            b.status = None
+
+        b.put()
+      db.run_in_transaction(clear_branch, self.key())
+    return good
+
+  def finish_merge(self, success, fail, defer):
+    """Update our patchset lists with the results of a merge.
+
+    This method runs in an independent transaction.
+    """
+    def trans(key):
+      b = db.get(key)
+
+      rm = []
+      rm.extend(success)
+      rm.extend(fail)
+      for ps in rm:
+        ps_key = ps.key()
+
+        if ps_key in b.to_merge:
+          b.to_merge.remove(ps_key)
+        if ps_key in b.merging:
+          b.merging.remove(ps_key)
+        if ps_key in b.waiting:
+          b.waiting.remove(ps_key)
+
+      for ps in defer:
+        ps_key = ps.key()
+
+        if ps_key in b.to_merge:
+          b.to_merge.remove(ps_key)
+        if ps_key in b.merging:
+          b.merging.remove(ps_key)
+        if ps_key not in b.waiting:
+          b.waiting.append(ps_key)
+
+      b.put()
+    db.run_in_transaction(trans, self.key())
+
+  def merged(self, merged):
+    """Updates the branch to include pending PatchSets.
+
+    This method runs in an independent transaction.
+    """
+    def trans(key):
+      b = db.get(key)
+
+      for ps in merged:
+        ps_key = ps.key()
+
+        if ps_key in b.to_merge:
+          b.to_merge.remove(ps_key)
+        if ps_key in b.merging:
+          b.merging.remove(ps_key)
+        if ps_key in b.waiting:
+          b.waiting.remove(ps_key)
+
+      if b.status in ('MERGING', 'BUILDING'):
+        if b.to_merge:
+          b.status = 'NEEDS_MERGE'
+        else:
+          b.status = None
+      b.put()
+    db.run_in_transaction(trans, self.key())
+
+
+### Revisions ###
+
+class RevisionId(BackedUpModel):
+  """A specific revision of a project."""
+
+  project = db.ReferenceProperty(Project, required=True)
+  id = db.StringProperty(required=True) # == key
+
+  author_name = db.StringProperty()
+  author_email = db.EmailProperty()
+  author_when = db.DateTimeProperty()
+  author_tz = db.IntegerProperty()
+
+  committer_name = db.StringProperty()
+  committer_email = db.EmailProperty()
+  committer_when = db.DateTimeProperty()
+  committer_tz = db.IntegerProperty()
+
+  ancestors = db.StringListProperty() # other RevisionId.id
+  message = db.TextProperty()
+
+  patchset_key = db.StringProperty()
+  def _get_patchset(self):
+    try:
+      return self._patchset_obj
+    except AttributeError:
+      k_str = self._patchset_key
+      if k_str:
+        self._patchset_obj = db.get(db.Key(k_str))
+      else:
+        self._patchset_obj = None
+    return self._patchset_obj
+
+  def _set_patchset(self, p):
+    if p is None:
+      self._patchset_key = None
+      self._patchset_obj = None
+    else:
+      self._patchset_key = str(p.key())
+      self._patchset_obj = p
+  patchset = property(_get_patchset, _set_patchset)
+
+  @classmethod
+  def get_or_insert_revision(cls, project, id, **kw):
+    key = 'p.%s %s' % (project.key().id(), id)
+    return cls.get_or_insert(key, project=project, id=id, **kw)
+
+  @classmethod
+  def get_revision(cls, project, id):
+    key = 'p.%s %s' % (project.key().id(), id)
+    return cls.get_by_key_name(key)
+
+  @classmethod
+  def get_for_patchset(cls, patchset):
+    """Get all revisions linked to a patchset.
+    """
+    return gql(cls, 'WHERE patchset_key = :1', str(patchset.key()))
+
+  def add_ancestor(self, other_id):
+    """Adds the other revision as an ancestor for this one.
+
+    If the other rev is already in the list, does nothing.
+    """
+    if not other_id in self.ancestors:
+      self.ancestors.append(other_id)
+
+  def remove_ancestor(self, other_id):
+    """Removes an ancestor previously stored.
+
+    If the other rev is not already in the list, does nothing.
+    """
+    if other_id in self.ancestors:
+      self.ancestors.remove(other_id)
+
+  def get_ancestors(self):
+    """Fully fetches all ancestors from the data store.
+    """
+    p_id = self.project.key().id()
+    names = ['p.%s %s' % (p_id, i) for i in self.ancestors]
+    return [r for r in RevisionId.get_by_key_name(names) if r]
+
+  def get_children(self):
+    """Obtain the revisions that depend upon this one.
+    """
+    return gql(RevisionId,
+               'WHERE project = :1 AND ancestors = :2',
+               self.project, self.id)
+
+  def link_patchset(self, new_patchset):
+    """Uniquely connect one patchset to this revision.
+
+    Returns True if the passed patchset is the single patchset;
+    False if another patchset has already been linked onto it.
+    """
+    def trans(self_key):
+      c = db.get(self_key)
+      if c.patchset is None:
+        c.patchset = new_patchset
+        c.put()
+        return True
+      return False
+    return db.run_in_transaction(trans, self.key())
+
+
+class BuildAttempt(BackedUpModel):
+  """A specific build attempt."""
+
+  branch = db.ReferenceProperty(Branch, required=True)
+  revision_id = db.StringProperty(required=True)
+  new_changes = db.ListProperty(db.Key) # PatchSet
+
+  started = db.DateTimeProperty(auto_now_add=True)
+  finished = db.BooleanProperty(default=False)
+  success = db.BooleanProperty()
+
+
+### Changes, PatchSets, Patches, DeltaContents, Comments, Messages ###
+
+class Change(BackedUpModel):
+  """The major top-level entity.
+
+  It has one or more PatchSets as its descendants.
+  """
+
+  subject = db.StringProperty(required=True)
+  description = db.TextProperty()
+  owner = db.UserProperty(required=True)
+  created = db.DateTimeProperty(auto_now_add=True)
+  modified = db.DateTimeProperty(auto_now=True)
+  reviewers = db.ListProperty(db.Email)
+  claimed = db.BooleanProperty(default=False)
+  cc = db.ListProperty(db.Email)
+  closed = db.BooleanProperty(default=False)
+  n_comments = db.IntegerProperty(default=0)
+  n_patchsets = db.IntegerProperty(default=0)
+
+  dest_project = db.ReferenceProperty(Project, required=True)
+  dest_branch = db.ReferenceProperty(Branch, required=True)
+
+  merge_submitted = db.DateTimeProperty()
+  merged = db.BooleanProperty(default=False)
+
+  emailed_clean_merge = db.BooleanProperty(default=False)
+  emailed_missing_dependency = db.BooleanProperty(default=False)
+  emailed_path_conflict = db.BooleanProperty(default=False)
+
+  merge_patchset_key = db.StringProperty()
+  def _get_merge_patchset(self):
+    try:
+      return self._merge_patchset_obj
+    except AttributeError:
+      k_str = self._merge_patchset_key
+      if k_str:
+        self._merge_patchset_obj = db.get(db.Key(k_str))
+      else:
+        self._merge_patchset_obj = None
+    return self._merge_patchset_obj
+
+  def _set_merge_patchset(self, p):
+    if p is None:
+      self._merge_patchset_key = None
+      self._merge_patchset_obj = None
+    else:
+      self._merge_patchset_key = str(p.key())
+      self._merge_patchset_obj = p
+  merge_patchset = property(_get_merge_patchset, _set_merge_patchset)
+
+  _is_starred = None
+
+  @property
+  def is_starred(self):
+    """Whether the current user has this change starred."""
+    if self._is_starred is not None:
+      return self._is_starred
+    account = Account.current_user_account
+    self._is_starred = account is not None and self.key().id() in account.stars
+    return self._is_starred
+
+  def update_comment_count(self, n):
+    """Increment the n_comments property by n.
+    """
+    self.n_comments += n
+
+  @property
+  def num_comments(self):
+    """The number of non-draft comments for this change.
+
+    This is almost an alias for self.n_comments, except that if
+    n_comments is None, it is computed through a query, and stored,
+    using n_comments as a cache.
+    """
+    return self.n_comments
+
+  _num_drafts = None
+
+  @property
+  def num_drafts(self):
+    """The number of draft comments on this change for the current user.
+
+    The value is expensive to compute, so it is cached.
+    """
+    if self._num_drafts is None:
+      account = Account.current_user_account
+      if account is None:
+        self._num_drafts = 0
+      else:
+        query = gql(Comment,
+            'WHERE ANCESTOR IS :1 AND author = :2 AND draft = TRUE',
+            self, account.user)
+        self._num_drafts = query.count()
+    return self._num_drafts
+
+  def new_patchset(self, **kw):
+    """Construct a new patchset for this change.
+    """
+    def trans(change_key):
+      change = db.get(change_key)
+      change.n_patchsets += 1
+      id = change.n_patchsets
+      change.put()
+
+      patchset = PatchSet(change=change, parent=change, id=id, **kw)
+      patchset.put()
+      return patchset
+    return db.run_in_transaction(trans, self.key())
+
+  def set_review_status(self, user):
+    """Gets or inserts the ReviewStatus object for the suppiled user."""
+    return ReviewStatus.get_or_insert_status(self, user)
+
+  def get_review_status(self, user=None):
+    """Return the lgtm status for the given user if supplied.  All for this 
+    change otherwise."""
+    if user:
+      # The owner must be checked separately because she automatically
+      # approves / verifies her own change and there is no ReviewStatus
+      # for that one.
+      if user == self.owner:
+        return []
+      return ReviewStatus.get_status_for_user(self, user)
+    else:
+      return ReviewStatus.all_for_change(self)
+
+  @classmethod
+  def get_reviewer_status(cls, reviews):
+    """Return a tuple of who has commented on the changes.
+
+    The owner of the change is automatically added to the list
+
+    Args:
+      reviews  a list of ReviewStatus objects are returned from
+               get_review_status().
+
+    Returns:
+      A map of the LGTM_CHOICES keys to users, plus the mapping
+          verified_by --> the uesrs who verified it
+    """
+    result = {}
+    for (k,v) in LGTM_CHOICES:
+      result[k] = [r.user for r in reviews if r.lgtm == k]
+    result["verified_by"] = [r.user for r in reviews if r.verified]
+    return result
+
+  @property
+  def is_submitted(self):
+    """Return true if the change has been submitted for merge.
+    """
+    return self.merge_submitted is not None
+
+  def submit_merge(self, patchset):
+    """Schedule a specific patchset of the change to be merged.
+    """
+    branch = self.dest_branch
+    if not branch:
+      raise InvalidSubmitMergeException, 'No branch defined'
+
+    if self.merged:
+      raise InvalidSubmitMergeException, 'Already merged'
+
+    if self.is_submitted:
+      raise InvalidSubmitMergeException, \
+        "Already merging patch set %s" % self.merge_patchset.id
+
+    branch.merge_patchset(patchset)
+    self.merge_submitted = datetime.datetime.now()
+    self.merge_patchset = patchset
+    self.emailed_clean_merge = False
+    self.emailed_missing_dependency = False
+    self.emailed_path_conflict = False
+
+  def unsubmit_merge(self):
+    """Unschedule a merge of this change.
+    """
+    if self.merged:
+      raise InvalidSubmitMergeException, 'Already merged'
+
+    self.merge_submitted = None
+    self.merge_patchset = None
+
+  def set_reviewers(self, reviewers):
+    self.reviewers = reviewers
+    self.claimed = len(reviewers) != 0
+
+
+class PatchSetFilenames(BackedUpModel):
+  """A list of the file names in a PatchSet.
+
+  This is a descendant of a PatchSet.
+  """
+
+  compressed_filenames = db.BlobProperty()
+
+  @classmethod
+  def _mc(cls, patchset):
+    return MemCacheKey("PatchSet %s filenames" % patchset.key())
+
+  @classmethod
+  def store_compressed(cls, patchset, bin):
+    cls(key_name = 'filenames',
+        compressed_filenames = db.Blob(bin),
+        parent = patchset).put()
+    cls._mc(patchset).set(cls._split(bin))
+
+  @classmethod
+  def get_list(cls, patchset):
+    def read():
+      c = cls.get_by_key_name('filenames', parent = patchset)
+      if c:
+        return cls._split(c.compressed_filenames)
+      names = patchset._all_filenames()
+      bin = zlib.compress("\0".join(names).encode('utf_8'), 9)
+      cls(key_name = 'filenames',
+          compressed_filenames = db.Blob(bin),
+          parent = patchset).put()
+      return names
+    return cls._mc(patchset).get(read)
+
+  @classmethod
+  def _split(cls, bin):
+    tmp = zlib.decompress(bin).split("\0")
+    return [s.decode('utf_8') for s in tmp]
+
+
+class PatchSet(BackedUpModel):
+  """A set of patchset uploaded together.
+
+  This is a descendant of an Change and has Patches as descendants.
+  """
+
+  id = db.IntegerProperty(required=True)
+  change = db.ReferenceProperty(Change, required=True) # == parent
+  message = db.StringProperty()
+  owner = db.UserProperty(required=True)
+  created = db.DateTimeProperty(auto_now_add=True)
+  modified = db.DateTimeProperty(auto_now=True)
+  revision = db.ReferenceProperty(RevisionId, required=True)
+  complete = db.BooleanProperty(default=False)
+
+  _filenames = None
+
+  @property
+  def filenames(self):
+    if self._filenames is None:
+      self._filenames = PatchSetFilenames.get_list(self)
+    return self._filenames
+
+  def _all_filenames(self):
+    last = ''
+    names = []
+    while True:
+      list = gql(Patch,
+                 'WHERE patchset = :1 AND filename > :2'
+                 ' ORDER BY filename',
+                 self, last).fetch(500)
+      if not list:
+        break
+      for p in list:
+        names.append(p.filename)
+      last = list[-1].filename
+    return names
+
+
+class Message(BackedUpModel):
+  """A copy of a message sent out in email.
+
+  This is a descendant of an Change.
+  """
+
+  change = db.ReferenceProperty(Change, required=True)  # == parent
+  subject = db.StringProperty()
+  sender = db.EmailProperty()
+  recipients = db.ListProperty(db.Email)
+  date = db.DateTimeProperty(auto_now_add=True)
+  text = db.TextProperty()
+
+
+class CachedDeltaContent(object):
+  """A fully inflated DeltaContent stored in memcache.
+  """
+  def __init__(self, dc):
+    self.data_lines = dc.data_lines
+    self.patch_lines = dc.patch_lines
+    self.is_patch = dc.is_patch
+    self.is_data = dc.is_data
+
+  @property
+  def data_text(self):
+    if self.data_lines is None:
+      return None
+    return ''.join(self.data_lines)
+
+  @property
+  def patch_text(self):
+    if self.patch_lines is None:
+      return None
+    return ''.join(self.patch_lines)
+
+  @classmethod
+  def get(cls, key):
+    def load():
+      dc = db.get(key)
+      if dc:
+        return cls(dc)
+      return None
+    return MemCacheKey('DeltaContent:%s' % key.name(),
+                       compress = True).get(load)
+
+
+def _apply_patch(old_lines, patch_name, dif_lines):
+  new_lines = []
+  chunks = patching.ParsePatchToChunks(dif_lines, patch_name)
+  for tag, old, new in patching.PatchChunks(old_lines, chunks):
+    new_lines.extend(new)
+  return ''.join(new_lines)
+
+def _blob_hash(data):
+  m = hashlib.sha1()
+  m.update("blob %d\0" % len(data))
+  m.update(data)
+  return m.hexdigest()
+
+
+class DeltaContent(BackedUpModel):
+  """Any content, such as for the old or new image of a Patch,
+     or the patch data itself.
+
+     These are stored as top-level entities.
+
+     Key:
+        Git blob SHA-1 of inflate(text)
+      -or-
+        Randomly generated name if this is a patch
+  """
+
+  text_z = db.BlobProperty(required=True)
+  depth = db.IntegerProperty(default=0, required=True)
+  base = db.SelfReferenceProperty()
+
+  _data_lines = None
+  _data_text = None
+  _patch_text = None
+  _patch_lines = None
+
+  @classmethod
+  def create_patch(cls, id, text_z):
+    key_name = 'patch:%s' % id
+    return cls.get_or_insert(key_name,
+                             text_z = db.Blob(text_z),
+                             depth = 0,
+                             base = None)
+
+  @classmethod
+  def create_content(cls, id, text_z, base = None):
+    """Create (or lookup and return an existing) content instance.
+
+       Arguments:
+        id:
+          Git blob SHA-1 hash of the fully inflated content.
+        text_z:
+          If base is None this is the deflated content whose hash
+          is id.
+
+          If base is supplied this is a patch which when applied to
+          base yields the content whose hash is id.
+        base:
+          The base content if text_z is a patch.
+    """
+    key_name = 'content:%s' % id
+    r = cls.get_by_key_name(key_name)
+    if r:
+      return r
+
+    if base is None:
+      return cls.get_or_insert(key_name,
+                               text_z = db.Blob(text_z),
+                               depth = 0,
+                               base = None)
+
+    my_text = _apply_patch(base.data_lines,
+                           id,
+                           zlib.decompress(text_z).splitlines(True))
+    cmp_id = _blob_hash(my_text)
+    if id != cmp_id:
+      raise DeltaPatchingException()
+
+    if base.depth < MAX_DELTA_DEPTH:
+      return cls.get_or_insert(key_name,
+                               text_z = db.Blob(text_z),
+                               depth = base.depth + 1,
+                               base = base)
+    return cls.get_or_insert(key_name,
+                             text_z = db.Blob(zlib.compress(my_text)),
+                             depth = 0,
+                             base = None)
+
+  @property
+  def is_patch(self):
+    return self._base or self.key().name().startswith('patch:')
+
+  @property
+  def is_data(self):
+    return self.key().name().startswith('content:')
+
+  @property
+  def data_text(self):
+    if self._data_text is None:
+      if self._base:
+        base = CachedDeltaContent.get(self._base)
+        raw = _apply_patch(base.data_lines,
+                           self.key().name(),
+                           self.patch_lines)
+      else:
+        raw = zlib.decompress(self.text_z)
+      self._data_text = raw
+    return self._data_text
+
+  @property
+  def data_lines(self):
+    if self._data_lines is None:
+      self._data_lines = self.data_text.splitlines(True)
+    return self._data_lines
+
+  @property
+  def patch_text(self):
+    if not self.is_patch:
+      return None
+    if self._patch_text is None:
+      self._patch_text = zlib.decompress(self.text_z)
+    return self._patch_text
+
+  @property
+  def patch_lines(self):
+    if not self.is_patch:
+      return None
+    if self._patch_lines is None:
+      self._patch_lines = self.patch_text.splitlines(True)
+    return self._patch_lines
+
+
+class Patch(BackedUpModel):
+  """A single patch, i.e. a set of changes to a single file.
+
+  This is a descendant of a PatchSet.
+  """
+
+  patchset = db.ReferenceProperty(PatchSet, required=True)  # == parent
+  filename = db.StringProperty(required=True)
+  status = db.StringProperty(required=True)  # 'A', 'M', 'D'
+  n_comments = db.IntegerProperty()
+
+  old_data = db.ReferenceProperty(DeltaContent, collection_name='olddata_set')
+  new_data = db.ReferenceProperty(DeltaContent, collection_name='newdata_set')
+  diff_data = db.ReferenceProperty(DeltaContent, collection_name='diffdata_set')
+
+  @classmethod
+  def get_or_insert_patch(cls, patchset, filename, **kw):
+    """Get or insert the patch for a specific file path.
+
+    This method runs in an independent transaction.
+    """
+    m = hashlib.sha1()
+    m.update(filename)
+    key = 'z%s' % m.hexdigest()
+    return cls.get_or_insert(key,
+                             parent = patchset,
+                             patchset = patchset,
+                             filename = filename,
+                             **kw)
+
+  @classmethod
+  def get_patch(cls, parent, id_str):
+    if id_str.startswith('z'):
+      return cls.get_by_key_name(id_str, parent=parent);
+    else:
+      return cls.get_by_id(int(id_str), parent=parent);
+
+  @property
+  def id(self):
+    return str(self.key().id_or_name())
+
+  @property
+  def num_comments(self):
+    """The number of non-draft comments for this patch.
+    """
+    return self.n_comments
+
+  def update_comment_count(self, n):
+    """Increment the n_comments property by n.
+    """
+    self.n_comments += n
+
+  _num_drafts = None
+
+  @property
+  def num_drafts(self):
+    """The number of draft comments on this patch for the current user.
+
+    The value is expensive to compute, so it is cached.
+    """
+    if self._num_drafts is None:
+      user = Account.current_user_account
+      if user is None:
+        self._num_drafts = 0
+      else:
+        query = gql(Comment,
+                    'WHERE patch = :1 AND draft = TRUE AND author = :2',
+                    self, user.user)
+        self._num_drafts = query.count()
+    return self._num_drafts
+
+  def _data(self, name):
+    prop = '_%s_CachedDeltaContent' % name
+    try:
+      c = getattr(self, prop)
+    except AttributeError:
+      # XXX Using internal knowledge about db package:
+      # Key for ReferenceProperty 'foo' is '_foo'.
+
+      data_key = getattr(self, '_%s_data' % name, None)
+      if data_key:
+        c = CachedDeltaContent.get(data_key)
+        if data_key in ('diff', 'new') \
+           and self._diff_data == self._new_data:
+          self._diff_CachedDeltaContent = c
+          self._new_CachedDeltaContent = c
+        else:
+          setattr(self, prop, c)
+      else:
+        c = None
+        setattr(self, prop, c)
+    return c
+
+  @property
+  def patch_text(self):
+    """Get the patch converting old_text to new_text.
+    """
+    return self._data('diff').patch_text
+
+  @property
+  def patch_lines(self):
+    """The patch_text split into lines, retaining line endings.
+    """
+    return self._data('diff').patch_lines
+
+  @property
+  def old_text(self):
+    """Original version of the file text.
+    """
+    d = self._data('old')
+    if d:
+      return d.data_text
+    return ''
+
+  @property
+  def old_lines(self):
+    """The old_text split into lines, retaining line endings.
+    """
+    d = self._data('old')
+    if d:
+      return d.data_lines
+    return []
+
+  @property
+  def new_text(self):
+    """Get self.new_content
+    """
+    d = self._data('new')
+    if d:
+      return d.data_text
+    return ''
+
+  @property
+  def new_lines(self):
+    """The new_text split into lines, retaining line endings.
+    """
+    d = self._data('new')
+    if d:
+      return d.data_lines
+    return []
+
+
+class Comment(BackedUpModel):
+  """A Comment for a specific line of a specific file.
+
+  This is a descendant of a Patch.
+  """
+
+  patch = db.ReferenceProperty(Patch)  # == parent
+  message_id = db.StringProperty()  # == key_name
+  author = db.UserProperty()
+  date = db.DateTimeProperty(auto_now=True)
+  lineno = db.IntegerProperty()
+  text = db.TextProperty()
+  left = db.BooleanProperty()
+  draft = db.BooleanProperty(required=True, default=True)
+
+  def complete(self, patch):
+    """Set the shorttext and buckets attributes."""
+    # TODO(guido): Turn these into caching proprties instead.
+    # TODO(guido): Properly parse the text into quoted and unquoted buckets.
+    self.shorttext = self.text.lstrip()[:50].rstrip()
+    self.buckets = [Bucket(text=self.text)]
+
+
+class Bucket(BackedUpModel):
+  """A 'Bucket' of text.
+
+  A comment may consist of multiple text buckets, some of which may be
+  collapsed by default (when they represent quoted text).
+
+  NOTE: This entity is never written to the database.  See Comment.complete().
+  """
+  # TODO(guido): Flesh this out.
+
+  text = db.TextProperty()
+
+
+class ReviewStatus(BackedUpModel):
+  """The information for whether a user has LGTMed or verified a change."""
+  change = db.ReferenceProperty(Change, required=True)  # == parent
+  user = db.UserProperty(required=True)
+  lgtm = db.StringProperty()
+  verified = db.BooleanProperty()
+
+  @classmethod
+  def get_or_insert_status(cls, change, user):
+    key = '<%s>' % user.email
+    return cls.get_or_insert(key,
+                             change=change,
+                             user=user,
+                             parent=change)
+
+  @classmethod
+  def get_status_for_user(cls, change, user):
+    key = '<%s>' % user.email
+    return cls.get_by_key_name(key, parent=change)
+
+  @classmethod
+  def all_for_change(cls, change):
+    return gql(ReviewStatus,
+               'WHERE ANCESTOR IS :1',
+               change).fetch(FETCH_MAX)
+
+
+### Contributor License Agreements ###
+
+class IndividualCLA:
+  NONE = 0
+
+
+### Accounts ###
+
+
+class Account(BackedUpModel):
+  """Maps a user or email address to a user-selected real_name, and more.
+
+  Nicknames do not have to be unique.
+
+  The default real_name is generated from the email address by
+  stripping the first '@' sign and everything after it.  The email
+  should not be empty nor should it start with '@' (AssertionError
+  error is raised if either of these happens).
+
+  Holds a list of ids of starred changes.  The expectation
+  that you won't have more than a dozen or so starred changes (a few
+  hundred in extreme cases) and the memory used up by a list of
+  integers of that size is very modest, so this is an efficient
+  solution.  (If someone found a use case for having thousands of
+  starred changes we'd have to think of a different approach.)
+
+  Returns whether a user is authorized to do lgtm or verify.
+  For now, these authorization check methods do not test which repository
+  the change is in.  This will change.
+  """
+
+  user = db.UserProperty(required=True)
+  email = db.EmailProperty(required=True)  # key == <email>
+  preferred_email = db.EmailProperty()
+
+  created = db.DateTimeProperty(auto_now_add=True)
+  modified = db.DateTimeProperty(auto_now=True)
+
+  welcomed = db.BooleanProperty(default=False)
+  real_name_entered = db.BooleanProperty(default=False)
+  real_name = db.StringProperty()
+  mailing_address = db.TextProperty()
+  mailing_address_country = db.StringProperty()
+  phone_number = db.StringProperty()
+  fax_number = db.StringProperty()
+
+  cla_verified = db.BooleanProperty(default=False)
+  cla_verified_by = db.UserProperty()
+  cla_verified_timestamp = db.DateTimeProperty() # the first time it's set
+  individual_cla_version = db.IntegerProperty(default=IndividualCLA.NONE)
+  individual_cla_timestamp = db.DateTimeProperty()
+  cla_comments = db.TextProperty()
+
+  default_context = db.IntegerProperty(default=DEFAULT_CONTEXT,
+                                       choices=CONTEXT_CHOICES)
+  stars = db.ListProperty(int)  # Change ids of all starred changes
+  unclaimed_changes_projects = db.ListProperty(db.Key)
+
+  # Current user's Account.  Updated by middleware.AddUserToRequestMiddleware.
+  current_user_account = None
+
+  def get_email(self):
+    "Gets the email that this person wants us to use -- separate from login."
+    if self.preferred_email:
+      return self.preferred_email
+    else:
+      return self.email
+
+  def get_email_formatted(self):
+    return '"%s" <%s>' % (self.real_name, self.get_email())
+
+  @classmethod
+  def get_account_for_user(cls, user):
+    """Get the Account for a user, creating a default one if needed."""
+    email = user.email()
+    assert email
+    key = '<%s>' % email
+    # Since usually the account already exists, first try getting it
+    # without the transaction implied by get_or_insert().
+    account = cls.get_by_key_name(key)
+    if account is not None:
+      return account
+    real_name = user.nickname()
+    if '@' in real_name:
+      real_name = real_name.split('@', 1)[0]
+    assert real_name
+    return cls.get_or_insert(key, user=user, email=email, real_name=real_name)
+
+  @classmethod
+  def get_account_for_email(cls, email):
+    """Get the Account for an email address, or return None."""
+    assert email
+    key = '<%s>' % email
+    return cls.get_by_key_name(key)
+
+  @classmethod
+  def get_accounts_for_emails(cls, emails):
+    """Get the Accounts for all email address.
+    """
+    return cls.get_by_key_name(map(lambda x: '<%s>' % x, emails))
+
+  @classmethod
+  def get_real_name_for_email(cls, email):
+    """Get the real_name for an email address, possibly a default."""
+    account = cls.get_account_for_email(email)
+    if account is not None and account.real_name:
+      return account.real_name
+    real_name = email
+    if '@' in real_name:
+      real_name = real_name.split('@', 1)[0]
+    assert real_name
+    return real_name
+
+  @classmethod
+  def get_accounts_for_real_name(cls, real_name):
+    """Get the list of Accounts that have this real_name."""
+    assert real_name
+    assert '@' not in real_name
+    return list(gql(cls, 'WHERE real_name = :1', real_name))
+
+  @classmethod
+  def get_email_for_real_name(cls, real_name):
+    """Turn a real_name into an email address.
+
+    If the real_name is not unique or does not exist, this returns None.
+    """
+    accounts = cls.get_accounts_for_real_name(real_name)
+    if len(accounts) != 1:
+      return None
+    return accounts[0].email
+
+  _drafts = None
+
+  @property
+  def drafts(self):
+    """A list of change ids that have drafts by this user.
+
+    This is cached in memcache.
+    """
+    if self._drafts is None:
+      if self._initialize_drafts():
+        self._save_drafts()
+    return self._drafts
+
+  def update_drafts(self, change, have_drafts=None):
+    """Update the user's draft status for this change.
+
+    Args:
+      change: an Change instance.
+      have_drafts: optional bool forcing the draft status.  By default,
+          change.num_drafts is inspected (which may query the datastore).
+
+    The Account is written to the datastore if necessary.
+    """
+    dirty = False
+    if self._drafts is None:
+      dirty = self._initialize_drafts()
+    id = change.key().id()
+    if have_drafts is None:
+      have_drafts = bool(change.num_drafts)  # Beware, this may do a query.
+    if have_drafts:
+      if id not in self._drafts:
+        self._drafts.append(id)
+        dirty = True
+    else:
+      if id in self._drafts:
+        self._drafts.remove(id)
+        dirty = True
+    if dirty:
+      self._save_drafts()
+
+  def _initialize_drafts(self):
+    """Initialize self._drafts from scratch.
+
+    This mostly exists as a schema conversion utility.
+
+    Returns:
+      True if the user should call self._save_drafts(), False if not.
+    """
+    drafts = memcache.get('user_drafts:' + self.email)
+    if drafts is not None:
+      self._drafts = drafts
+      return False
+    # We're looking for the Change key id.  The ancestry of comments goes:
+    # Change -> PatchSet -> Patch -> Comment.
+    change_ids = set(comment.key().parent().parent().parent().id()
+                    for comment in gql(Comment,
+                                       'WHERE author = :1 AND draft = TRUE',
+                                       self.user))
+    self._drafts = list(change_ids)
+    return True
+
+  def _save_drafts(self):
+    """Save self._drafts to memcache."""
+    memcache.set('user_drafts:' + self.email, self._drafts, 3600)
+
+  def can_lgtm(self):
+    """Returns whether the user can lgtm a given change.
+    
+    For now returns true and doesn't take the change to check.
+    """
+    return True
+
+  def can_verify(self):
+    """Returns whether the user can verify a given change.
+
+    For now returns true and doesn't take the change to check.
+    """
+    return True
+
+  @classmethod
+  def get_all_accounts(cls):
+    """Return all accounts"""
+    all = cls.all()
+    all.order('real_name')
+    return list(all)
+
+
+### Group ###
+
+AUTO_GROUPS = ['admin', 'submitters']
+
+class AccountGroup(BackedUpModel):
+  """A set of users.  Permissions are assigned to groups.
+  
+  There are some groups that can't be deleted -- like admin and all
+  """
+  
+  name = db.StringProperty(required=True)
+  comment = db.TextProperty(required=False)
+  members = db.ListProperty(users.User)
+
+  @classmethod
+  def get_all_groups(cls):
+    """Return all groups"""
+    all = cls.all()
+    all.order('name')
+    return list(all)
+
+  @property
+  def is_auto_group(self):
+    """These groups can't be deleted."""
+    return self.name in AUTO_GROUPS
+
+  @classmethod
+  def create_groups(cls):
+    for group_name in AUTO_GROUPS:
+      def trans():
+        g = cls(name=group_name, comment=(
+            'Auto created %s group' % group_name))
+        g.put()
+      q = cls.gql('WHERE name=:name', name=group_name)
+      if q.get() is None:
+        db.run_in_transaction(trans)
+
+  @classmethod
+  def get_group_for_name(cls, name):
+    return cls.gql('WHERE name=:name', name=name).get()
+
+  def remove(self):
+    """delete this group"""
+    def trans(group):
+      group.delete()
+      # this will do the ON DELETE CASCADE once the users are in there
+    db.run_in_transaction(trans, self)
+
+  def put(self):
+    if self.name in ['admin', 'submitters']:
+      memcache.delete('group_members:%s' % self.name)
+    BackedUpModel.put(self)
+
+  @classmethod
+  def _is_in_cached_group(cls, user, group):
+    if not user:
+      return False
+    cache_key = 'group_members:%s' % group
+    users = memcache.get(cache_key)
+    if not users:
+      g = AccountGroup.get_group_for_name(group)
+      if not g:
+        AccountGroup.create_groups()
+        g = AccountGroup.get_group_for_name(group)
+      if len(g.members) == 0:
+        # if there are no users in this group, everyone is in this group
+        # (helps with testing, upgrading and bootstrapping)
+        # In prod this never really happens, so don't bother caching it
+        return True
+      users = [u.email() for u in g.members]
+      memcache.set(cache_key, users)
+    return user.email() in users
+
+  @classmethod
+  def is_user_admin(cls, user):
+    return AccountGroup._is_in_cached_group(user, 'admin')
+
+  @classmethod
+  def is_user_submitter(cls, user):
+    return AccountGroup._is_in_cached_group(user, 'submitters')
diff --git a/webapp/codereview/patching.py b/webapp/codereview/patching.py
new file mode 100644
index 0000000..7175cd8
--- /dev/null
+++ b/webapp/codereview/patching.py
@@ -0,0 +1,245 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Utility to read and apply a unified diff without forking patch(1).
+
+For a discussion of the unified diff format, see my blog on Artima:
+http://www.artima.com/weblogs/viewpost.jsp?thread=164293
+"""
+
+import difflib
+import logging
+import re
+import sys
+
+
+_CHUNK_RE = re.compile(r"""
+  @@
+  \s+
+  -
+  (?: (\d+) (?: , (\d+) )?)
+  \s+
+  \+
+  (?: (\d+) (?: , (\d+) )?)
+  \s+
+  @@
+""", re.VERBOSE)
+
+
+def PatchLines(old_lines, patch_lines, name="<patch>"):
+  """Patches the old_lines with patches read from patch_lines.
+
+  This only reads unified diffs.  The header lines are ignored.
+  Yields (tag, old, new) tuples where old and new are lists of lines.
+  The tag can either start with "error" or be a tag from difflib: "equal",
+  "insert", "delete", "replace".  After "error" is yielded, no more
+  tuples are yielded.  It is possible that consecutive "equal" tuples
+  are yielded.
+  """
+  chunks = ParsePatchToChunks(patch_lines, name)
+  if chunks is None:
+    return iter([("error: ParsePatchToChunks failed", [], [])])
+  return PatchChunks(old_lines, chunks)
+
+
+def PatchChunks(old_lines, chunks):
+  """Patche old_lines with chunks.
+
+  Yields (tag, old, new) tuples where old and new are lists of lines.
+  The tag can either start with "error" or be a tag from difflib: "equal",
+  "insert", "delete", "replace".  After "error" is yielded, no more
+  tuples are yielded.  It is possible that consecutive "equal" tuples
+  are yielded.
+  """
+  if not chunks:
+    # The patch is a no-op
+    yield ("equal", old_lines, old_lines)
+    return
+
+  old_pos = 0
+  for (old_i, old_j), (new_i, new_j), old_chunk, new_chunk in chunks:
+    eq = old_lines[old_pos:old_i]
+    if eq:
+      yield "equal", eq, eq
+    old_pos = old_i
+    # Check that the patch matches the target file
+    if old_lines[old_i:old_j] != old_chunk:
+      logging.error("mismatch:%s.%s.", old_lines[old_i:old_j], old_chunk)
+      yield ("error: old chunk mismatch", old_lines[old_i:old_j], old_chunk)
+      return
+    # TODO(guido): ParsePatch knows the diff details, but throws the info away
+    sm = difflib.SequenceMatcher(None, old_chunk, new_chunk)
+    for tag, i1, i2, j1, j2 in sm.get_opcodes():
+      yield tag, old_chunk[i1:i2], new_chunk[j1:j2]
+    old_pos = old_j
+
+  # Copy the final matching chunk if any.
+  eq = old_lines[old_pos:]
+  if eq:
+    yield ("equal", eq, eq)
+
+
+_NO_NEWLINE_MESSAGE = "\\ No newline at end of file"
+
+
+def ParsePatchToChunks(lines, name="<patch>"):
+  """Parses a patch from a list of lines.
+
+  Return a list of chunks, where each chunk is a tuple:
+
+    old_range, new_range, old_lines, new_lines
+
+  Returns a list of chunks (possibly empty); or None if there's a problem.
+  """
+  lineno = 0
+  raw_chunk = []
+  chunks = []
+  old_range = new_range = None
+  old_last = new_last = 0
+  in_prelude = True
+  for line in lines:
+    lineno += 1
+    if in_prelude:
+      # Skip leading lines until after we've seen one starting with '+++'
+      if line.startswith("+++"):
+        in_prelude = False
+      continue
+    match = _CHUNK_RE.match(line)
+    if match:
+      if raw_chunk:
+        # Process the lines in the previous chunk
+        old_chunk = []
+        new_chunk = []
+        for tag, rest in raw_chunk:
+          if tag in (" ", "-"):
+            old_chunk.append(rest)
+          if tag in (" ", "+"):
+            new_chunk.append(rest)
+        # Check consistency
+        old_i, old_j = old_range
+        new_i, new_j = new_range
+        if len(old_chunk) != old_j - old_i or len(new_chunk) != new_j - new_i:
+          logging.warn("%s:%s: previous chunk has incorrect length",
+                       name, lineno)
+          return None
+        chunks.append((old_range, new_range, old_chunk, new_chunk))
+        raw_chunk = []
+      # Parse the @@ header
+      old_ln, old_n, new_ln, new_n = match.groups()
+      old_ln, old_n, new_ln, new_n = map(long,
+                                         (old_ln, old_n or 1,
+                                          new_ln, new_n or 1))
+      # Convert the numbers to list indices we can use
+      if old_n == 0:
+        old_i = old_ln
+      else:
+        old_i = old_ln - 1
+      old_j = old_i + old_n
+      old_range = old_i, old_j
+      if new_n == 0:
+        new_i = new_ln
+      else:
+        new_i = new_ln - 1
+      new_j =new_i + new_n
+      new_range = new_i, new_j
+      # Check header consistency with previous header
+      if old_i < old_last or new_i < new_last:
+        logging.warn("%s:%s: chunk header out of order: %r",
+                     name, lineno, line)
+        return None
+      if old_i - old_last != new_i - new_last:
+        logging.warn("%s:%s: inconsistent chunk header: %r",
+                     name, lineno, line)
+        return None
+      old_last = old_j
+      new_last = new_j
+    else:
+      tag, rest = line[0], line[1:]
+      if tag in (" ", "-", "+"):
+        raw_chunk.append((tag, rest))
+      elif line.startswith(_NO_NEWLINE_MESSAGE):
+        # TODO(guido): need to check that no more lines follow for this file
+        if raw_chunk:
+          last_tag, last_rest = raw_chunk[-1]
+          if last_rest.endswith("\n"):
+            raw_chunk[-1] = (last_tag, last_rest[:-1])
+      else:
+        # Only log if it's a non-blank line.  Blank lines we see a lot.
+        if line and line.strip():
+          logging.warn("%s:%d: indecypherable input: %r", name, lineno, line)
+        if chunks or raw_chunk:
+          break  # Trailing garbage isn't so bad
+        return None
+  if raw_chunk:
+    # Process the lines in the last chunk
+    old_chunk = []
+    new_chunk = []
+    for tag, rest in raw_chunk:
+      if tag in (" ", "-"):
+        old_chunk.append(rest)
+      if tag in (" ", "+"):
+        new_chunk.append(rest)
+    # Check consistency
+    old_i, old_j = old_range
+    new_i, new_j = new_range
+    if len(old_chunk) != old_j - old_i or len(new_chunk) != new_j - new_i:
+      print >>sys.stderr, ("%s:%s: last chunk has incorrect length" %
+                           (name, lineno))
+      return None
+    chunks.append((old_range, new_range, old_chunk, new_chunk))
+    raw_chunk = []
+  return chunks
+
+
+# TODO: can we share some of this code with ParsePatchToChunks?
+def ParsePatchToLines(lines):
+  """Parses a patch from a list of lines.
+
+  Returns None on error, otherwise a list of 3-tuples:
+    (old_line_no, new_line_no, line)
+
+    A line number can be 0 if it doesn't exist in the old/new file.
+  """
+  result = []
+  in_prelude = True
+  for line in lines:
+    if in_prelude:
+      result.append((0, 0, line))
+      # Skip leading lines until after we've seen one starting with '+++'
+      if line.startswith("+++"):
+        in_prelude = False
+    elif line.startswith("@"):
+      result.append((0, 0, line))
+      match = _CHUNK_RE.match(line)
+      if not match:
+        logging.warn("ParsePatchToLines match failed on %s", line)
+        return None
+      old_ln = int(match.groups()[0])
+      new_ln = int(match.groups()[2])
+    else:
+      if line[0] == "-":
+        result.append((old_ln, 0, line))
+        old_ln += 1
+      elif line[0] == "+":
+        result.append((0, new_ln, line))
+        new_ln += 1
+      elif line[0] == " ":
+        result.append((old_ln, new_ln, line))
+        old_ln += 1
+        new_ln += 1
+      elif line.startswith(_NO_NEWLINE_MESSAGE):
+        continue
+      else:  # Something else, could be property changes etc.
+        result.append((0, 0, line))
+  return result
diff --git a/webapp/codereview/people.py b/webapp/codereview/people.py
new file mode 100644
index 0000000..0621796
--- /dev/null
+++ b/webapp/codereview/people.py
@@ -0,0 +1,302 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Info about the users
+
+This requires Django 0.97.pre.
+"""
+
+import datetime
+import logging
+
+from django import forms
+from django import http
+from django.utils import simplejson
+
+import models
+import views
+import fields
+from view_util import *
+
+def respond_json(obj):
+  data = simplejson.dumps(obj)
+  return http.HttpResponse(data,
+      mimetype="text/javascript; charset=utf-8")
+
+def get_user_info(request):
+  """check if the requested user exists
+  
+  Parameters:
+    id: the user's email address or the group name
+    allow_users: whether users are allowed, true by default
+    allow_groups: whether groups are allowed, true by default
+
+  Result:
+  If user/group not found:
+    null
+  If user found: map of
+    type: "user"
+    key: a unique key for this user
+    email: their email address
+    real_name: the user's real name
+  If group found: map of
+    type: "group"
+    key: a unique key for this group
+    name: the name of the group
+
+  If users or groups are not allowed, then null will be returned
+  even if there does happen to be a user or group with that name
+  """
+  id = request.REQUEST.get("id", None)
+  if not id:
+    return http.HttpResponseServerError("id not provided")
+  allow_users = request.REQUEST.get("allow_users", "true")
+  allow_groups = request.REQUEST.get("allow_groups", "true")
+  if allow_users != "false":
+    account = models.Account.get_account_for_email(id)
+    if account:
+      return respond_json({
+          'allow_users': allow_users,
+          'allow_groups': allow_groups,
+          'type': 'user',
+          'key': "user/" + account.email,
+          'email': account.email,
+          'real_name': account.real_name,
+          })
+  if allow_groups != "false":
+    group = models.AccountGroup.get_group_for_name(id)
+    if group:
+      return respond_json({
+          'allow_users': allow_users,
+          'allow_groups': allow_groups,
+          'type': 'group',
+          'key': "group/" + str(group.key()),
+          'name': group.name,
+          })
+  return respond_json(None)
+
+@admin_required
+def admin_people_info(request):
+  """/admin/people_info"""
+  op = request.REQUEST.get("op", None)
+  if op == "get_user_info":
+    return get_user_info(request);
+  return http.HttpResponseServerError("op=" + str(op))
+
+@admin_required
+def admin_users(request):
+  """/admin/users - list of all users"""
+  accounts = models.Account.get_all_accounts()
+  return respond(request, 'admin_users.html', {'users': accounts})
+
+@admin_required
+def admin_users_verify_cla(request):
+  """/admin/users - list of all users"""
+  accounts = models.Account.gql('WHERE welcomed=True '
+                              + 'AND individual_cla_version != 0'
+                              + 'AND cla_verified=False').fetch(1000)
+  return respond(request, 'admin_users.html', {'users': accounts})
+
+
+def _get_groups_for_account(account):
+  return models.gql(models.AccountGroup,
+                    'WHERE members = :1',
+                    account.user).fetch(models.FETCH_MAX)
+
+def _set_groups_for_account(account, groups):
+  u = account.user
+  existing = _get_groups_for_account(account)
+  # remove from the ones that don't have it any more
+  group_keys = [g.key() for g in groups]
+  for g in existing:
+    if g.key() not in group_keys:
+      g.members.remove(u)
+      g.put()
+  # add to the ones that didn't have it before
+  existing_keys = [g.key() for g in existing]
+  for g in groups:
+    if g.key() not in existing_keys:
+      g.members.append(u)
+      g.put()
+  
+class AdminUserForm(BaseForm):
+  _template = 'admin_user.html'
+
+  dest = forms.fields.CharField(widget=forms.widgets.HiddenInput)
+
+  # user info
+  real_name = forms.CharField(max_length=60)
+  preferred_email = forms.EmailField(required=False)
+  mailing_address = forms.CharField(required=False,
+                          max_length=150,
+                          widget=forms.Textarea(attrs={'rows': 4, 'cols': 60}))
+  mailing_address_country = forms.CharField(max_length=30, required=False)
+  phone_number = forms.CharField(max_length=30, required=False)
+  fax_number = forms.CharField(max_length=30, required=False)
+
+  # groups
+  groups = fields.UserGroupField(allow_users=False, allow_groups=True)
+
+  # cla
+  cla_verified = forms.fields.BooleanField(required=False)
+  cla_comments = forms.CharField(required=False,
+                          max_length=300,
+                          widget=forms.Textarea(attrs={'rows': 6, 'cols': 60}))
+
+  @classmethod
+  def _init(cls, state):
+    account = state['account']
+    dest = state['dest']
+    return {
+        'initial': {
+            'dest': dest,
+            'real_name': account.real_name,
+            'preferred_email': account.preferred_email,
+            'mailing_address': account.mailing_address,
+            'mailing_address_country': account.mailing_address_country,
+            'phone_number': account.phone_number,
+            'fax_number': account.fax_number,
+            'groups': _get_groups_for_account(account),
+            'cla_verified': account.cla_verified,
+            'cla_verified_by': account.cla_verified_by,
+            'cla_verified_timestamp': account.cla_verified_timestamp,
+            'individual_cla_version': account.individual_cla_version,
+            'individual_cla_timestamp': account.individual_cla_timestamp,
+            'cla_comments': account.cla_comments,
+          },
+        }
+
+  def _save(self, cd, state):
+    account = state['account']
+    account.real_name = cd['real_name'].strip()
+    if cd['preferred_email']:
+      account.preferred_email = cd['preferred_email']
+    account.mailing_address = cd['mailing_address']
+    account.mailing_address_country = cd['mailing_address_country']
+    account.phone_number = cd['phone_number']
+    account.fax_number = cd['fax_number']
+    if account.cla_verified != cd['cla_verified']:
+      account.cla_verified = cd['cla_verified']
+      account.cla_verified_by = models.Account.current_user_account.user
+    if cd['cla_verified'] and account.cla_verified_timestamp is None:
+      account.cla_verified_timestamp = datetime.datetime.utcnow()
+    account.cla_comments = cd['cla_comments']
+    account.put()
+    _set_groups_for_account(account, 
+                            fields.UserGroupField.get_groups(cd['groups']))
+    if self.is_valid():
+      return HttpResponseRedirect(cd['dest'])
+
+
+@admin_required
+def admin_user(request, email):
+  """/admin/user/email@address.com - edit this user"""
+  account = models.Account.get_account_for_email(email)
+  referrer = request.META.get('HTTP_REFERER', '/admin/users')
+  state = {
+      'account': account,
+      'dest': referrer,
+    }
+  return process_form(request, AdminUserForm, state, None, {'email':email})
+  
+@admin_required
+def admin_groups(request):
+  """/admin/groups - list of all groups"""
+  models.AccountGroup.create_groups()
+  groups = models.AccountGroup.get_all_groups()
+  return respond(request, 'admin_groups.html', {'groups': groups})
+
+class AdminGroupForm(BaseForm):
+  _template = 'admin_group.html'
+
+  name = forms.CharField(max_length=30)
+  comment = forms.CharField(required=False,
+                            max_length=10000,
+                            widget=forms.Textarea(attrs={'cols': 60}))
+  members = fields.UserGroupField(allow_users=True, allow_groups=False)
+
+  @classmethod
+  def _init(cls, group):
+     who = group.members
+     who = fields.UserGroupField.field_value_for_keys(users = who)
+     return {'initial': {'name': group.name,
+             'comment': group.comment,
+             'members': who
+            }}
+
+  def _save(self, cd, group):
+    new_name = cd['name'].strip()
+    if group.is_auto_group and group.name != new_name:
+      self.errors['name'] = ['Name can not be changed']
+
+    # TODO(joeo): Big race condition here.
+    #
+    in_use = models.AccountGroup.get_group_for_name(new_name)
+    if in_use and group.key() != in_use.key():
+      self.errors['name'] = ['Name is already in use']
+
+    if self.is_valid():
+      group.name = new_name
+      group.comment = cd['comment']
+      group.members = fields.UserGroupField.get_users(cd['members'])
+      group.put()
+
+@admin_required
+def admin_group(request, name):
+  """/admin/group/group - edit this group"""
+  group = models.AccountGroup.get_group_for_name(name)
+  def done():
+    return HttpResponseRedirect('/admin/groups')
+  return process_form(request, AdminGroupForm, group, done,
+                      {'group': group,
+                       'del_url': '/admin/group_delete/%s' % group.name,
+                      })
+  
+class AdminNewGroupForm(AdminGroupForm):
+  @classmethod
+  def _init(cls, group):
+     return {'initial': {'name': '', 'comment': ''}}
+
+  def _save(self, cd, group):
+    new_name = cd['name'].strip()
+
+    # TODO(joeo): Big race condition here.
+    #
+    if models.AccountGroup.get_group_for_name(new_name):
+      self.errors['name'] = ['Name is already in use']
+
+    if self.is_valid():
+      who = fields.UserGroupField.get_users(cd['members'])
+      group = models.AccountGroup(name = new_name,
+                                  comment = cd['comment'],
+                                  members = who)
+      group.put()
+
+@admin_required
+def admin_group_new(request):
+  """/admin/group/GROUP - add a new group"""
+  def done():
+    return HttpResponseRedirect('/admin/groups')
+  return process_form(request, AdminNewGroupForm, [], done)
+
+@gae_admin_required
+@xsrf_required
+def admin_group_delete(request, name):
+  """/admin/group_delete/GROUP - add a new group"""
+  group = models.AccountGroup.get_group_for_name(name)
+  assert group
+  group.remove()
+  return HttpResponseRedirect('/admin/groups')
+
+
diff --git a/webapp/codereview/project.py b/webapp/codereview/project.py
new file mode 100644
index 0000000..d69dbdf
--- /dev/null
+++ b/webapp/codereview/project.py
@@ -0,0 +1,472 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Project related views and functions.
+
+This requires Django 0.97.pre.
+"""
+
+
+# Python imports
+import os
+import cgi
+import random
+import re
+import logging
+import binascii
+import datetime
+import urllib
+import md5
+from xml.etree import ElementTree
+from cStringIO import StringIO
+
+# AppEngine imports
+from google.appengine.api import mail
+from google.appengine.api import memcache
+from google.appengine.api import users
+from google.appengine.api import urlfetch
+from google.appengine.ext import db
+from google.appengine.ext.db import djangoforms
+
+# Django imports
+# TODO(guido): Don't import classes/functions directly.
+from django import http
+from django import forms
+from django.http import HttpResponse, HttpResponseRedirect
+from django.http import HttpResponseForbidden, HttpResponseNotFound
+from django.shortcuts import render_to_response
+from django.utils import simplejson
+from django.forms import formsets
+
+# Local imports
+import models
+import engine
+import library
+import patching
+import fields
+import views
+from view_util import *
+
+## Project CRUD ##
+
+def _assert_project_and_owner(request, project):
+  "If the current user is not an owner of this project or an admin, give a 404."
+  if not project:
+    raise http.Http404()
+  if not request.user or not ((project.key() in [
+          p.key() for p in request.projects_owned_by_user])
+      or request.user_is_admin):
+    raise http.Http404()
+
+@project_owner_or_admin_required
+def project_list(request):
+  """/admin/projects - list of all projects"""
+  if request.user_is_admin:
+    projects = models.Project.get_all_projects()
+  else:
+    projects = models.Project.projects_owned_by_user(request.user)
+    logging.info("project_list projects=" + str(projects))
+    if not projects:
+      raise http.Http404()
+  return respond(request, 'admin_projects.html', {'projects': projects})
+
+def _keys_for(values):
+  return [x.key() for x in values]
+
+def _users_to_accounts(users):
+  return map(models.Account.get_account_for_user, users)
+
+def _combine_users_and_groups(users, groupKeys):
+  return models.AccountGroup.get(groupKeys) + _users_to_accounts(users)
+
+def _field_to_approval_right(cleaned):
+  result = models.ApprovalRight()
+  result.files = cleaned["files"]
+  (result.approvers_users,result.approvers_groups
+      ) = fields.UserGroupField.get_user_and_group_keys(cleaned["approvers"])
+  (result.verifiers_users,result.verifiers_groups
+      ) = fields.UserGroupField.get_user_and_group_keys(cleaned["verifiers"])
+  result.put()
+  return result
+
+def _approval_right_to_field(key):
+  val = models.ApprovalRight.get(key)
+  if not val:
+    raise KeyError("no ApprovalRight for key: " + str(key))
+  return {
+      'files': val.files,
+      'approvers': _combine_users_and_groups(val.approvers_users,
+                      val.approvers_groups),
+      'verifiers': _combine_users_and_groups(val.verifiers_users,
+                      val.verifiers_groups),
+    }
+
+class AdminProjectForm(BaseForm):
+  _template = 'admin_project.html'
+
+  name = forms.CharField(max_length=30)
+  comment = forms.CharField(required=False,
+                            max_length=10000,
+                            widget=forms.Textarea(attrs={'cols': 60}))
+  owners = fields.UserGroupField()
+  code_reviews = fields.ApproversField()
+
+  @classmethod
+  def _init(cls, project):
+     owners = fields.UserGroupField.field_value_for_keys(
+                project.owners_users,
+                project.owners_groups),
+     return {'initial': {'name': project.name,
+             'comment': project.comment,
+             'owners': owners,
+             'code_reviews': map(_approval_right_to_field,
+                                 project.code_reviews),
+            }}
+
+  def _save(self, cd, project):
+    new_name = cd['name'].strip()
+
+    # TODO(joeo): Big race condition here.
+    #
+    in_use = models.Project.get_project_for_name(new_name)
+    if in_use and project.key() != in_use.key():
+      self.errors['name'] = ['Name is already in use']
+
+    if self.is_valid():
+      project.name = new_name
+      project.comment = cd['comment']
+      project.owners_users, project.owners_groups = \
+        fields.UserGroupField.get_user_and_group_keys(cd['owners'])
+      project.set_code_reviews(_keys_for(map(_field_to_approval_right,
+                                         cd['code_reviews'])))
+      project.put()
+
+def project_edit(request, name):
+  """/admin/project/project - edit this project"""
+  project = models.Project.get_project_for_name(name)
+  _assert_project_and_owner(request, project)
+  def done():
+    return HttpResponseRedirect('/admin/projects')
+  return process_form(request, AdminProjectForm, project, done,
+                      {'project':project,
+                       'del_url': '/admin/project_delete/%s' % project.name,
+                      })
+
+class AdminNewProjectForm(AdminProjectForm):
+  @classmethod
+  def _init(cls, state):
+    return {'initial': {'name': '', 'comment': ''}}
+
+  def _save(self, cd, state):
+    name = cd['name'].strip()
+
+    # TODO(joeo): Big race condition here.
+    #
+    if models.Project.get_project_for_name(name):
+      self.errors['name'] = ['Name is already in use']
+
+    if self.is_valid():
+      owners_users = fields.UserGroupField.get_users(cd['owners'])
+      owners_groups = fields.UserGroupField.get_group_keys(cd['owners'])
+
+      project = models.Project(name = name,
+                               comment = cd['comment'],
+                               owners_users = owners_users,
+                               owners_groups = owners_groups)
+      project.set_code_reviews(_keys_for(map(_field_to_approval_right,
+                               cd['code_reviews'])))
+      project.put()
+
+@admin_required
+def project_new(request):
+  """/admin/project/GROUP - add a new project"""
+  def done():
+    return HttpResponseRedirect('/admin/projects')
+  return process_form(request, AdminNewProjectForm, [], done)
+
+@gae_admin_required
+@xsrf_required
+def project_delete(request, name):
+  """/admin/project_delete/GROUP - add a new project"""
+  project = models.Project.get_project_for_name(name)
+  assert project
+  project.remove()
+  return HttpResponseRedirect('/admin/projects')
+
+
+def _matches_file_pattern(pattern, files):
+  """Returns whether the list of files matches the pattern"""
+  for filename in files:
+    if regex.match(filename):
+      return True
+  return False
+
+def _is_leaf_pattern(pattern):
+  """Returns whether the pattern ends with ..."""
+  return not pattern.endswith("...")
+
+def _split_rules_for_review(project):
+  """Gets the approval file pattern rules for a project
+
+  Returns:
+    A tuple of:
+      0 - A list of tuples of:
+        0 - leaf pattern rules (rules of the form /.../xxx)
+        1 - the ApprovalRight object
+      1 - A list of tuples of:
+        0 - directory pattern rules (rules of the form /xxx/...)
+        1 - the ApprovalRight object
+  """
+  leaf_rules = []
+  dir_rules = []
+
+  for approval_right in project.get_code_reviews():
+    for pattern in approval_right.files:
+      if _is_leaf_pattern(pattern):
+        leaf_rules.append((pattern, approval_right))
+      else:
+        dir_rules.append((pattern, approval_right))
+
+  return (leaf_rules, dir_rules)
+
+def _file_pattern_to_regex(pattern):
+  if pattern.startswith('/'):
+    pattern = pattern[1:]
+  return re.compile('^%s$' % pattern.replace("...", ".*?"))
+
+def _convert_pattern_to_regex(rules):
+  return [(_file_pattern_to_regex(pattern),pattern,approval_right)
+      for (pattern,approval_right) in rules]
+
+def _flatten_rule_users(rules):
+  flattened = {}
+  def _flatten_approval_right(approval_right):
+    if not flattened.has_key(approval_right):
+      flattened[approval_right] = {
+          'required': approval_right.required,
+          'approvers': set([u.email() for u in approval_right.approvers()]),
+          'verifiers': set([u.email() for u in approval_right.verifiers()]),
+        }
+    return flattened[approval_right]
+  return [(regex,pattern,_flatten_approval_right(approval_right))
+      for (regex,pattern,approval_right) in rules]
+
+def _split_files_for_review(project, files):
+  """Return a mapping of files to the set of users that can approve or verify
+  that file.
+
+  Returns:
+    A tuple of booleans, corresponding to (can_approve, can_verify).
+  """
+  result = {}
+
+  (leaf_rules, dir_rules) = _split_rules_for_review(project)
+
+  leaf_rules = _convert_pattern_to_regex(leaf_rules)
+  dir_rules = _convert_pattern_to_regex(dir_rules)
+
+  leaf_rules = _flatten_rule_users(leaf_rules)
+  dir_rules = _flatten_rule_users(dir_rules)
+
+  for file in files:
+    approvers = []
+    verifiers = []
+    # check leaf rules -- we want all of those that match
+    for (regex,pattern,flat_approval_right) in leaf_rules:
+      if _is_leaf_pattern(pattern):
+        if regex.match(file):
+          user_set = flat_approval_right['approvers']
+          if not user_set in approvers:
+            approvers.append(user_set)
+          user_set = flat_approval_right['verifiers']
+          if not user_set in verifiers:
+            verifiers.append(user_set)
+    # check dir rules -- we want all of those that match
+    dir_rule_approvers = set()
+    dir_rule_verifiers = set()
+    for (regex,pattern,flat_approval_right) in reversed(dir_rules):
+      if not _is_leaf_pattern(pattern):
+        if regex.match(file):
+          dir_rule_approvers |= flat_approval_right['approvers']
+          dir_rule_verifiers |= flat_approval_right['verifiers']
+          if flat_approval_right['required']:
+            break
+    if not dir_rule_approvers in approvers:
+      approvers.append(dir_rule_approvers)
+    if not dir_rule_verifiers in verifiers:
+      verifiers.append(dir_rule_verifiers)
+    # save the result
+    result[file] = {
+          'approvers': approvers,
+          'verifiers': verifiers,
+        }
+
+  return result
+
+def _check_users(possible, actual):
+  """Return whether for each set in possible there is one entry from actual """
+  for user_set in possible:
+    inter = user_set.intersection(actual)
+    if len(user_set.intersection(actual)) == 0:
+      return False
+  return True
+
+def _match_users(possible, actual):
+  """Return the users who have actually approved/verified a change"""
+  matched = set()
+  for user_set in possible:
+    inter = user_set.intersection(actual)
+    matched |= inter
+  return matched
+
+def ready_to_submit(branch, owner, reviewer_status, files):
+  """Returns whether the supplied change is ready to submit.
+
+  These are the rules for whether a change is considered ready to submit:
+
+  1. If the project, repository or branch has code reviews turned off, then
+     the change is ok.
+  2. If all of the following are true, the change is ok:
+    a. Either:
+        i. Someone who is authorized to lgtm each file has done so.
+        ii. For each file where the owner is the only approver in the list,
+            there is at least one other person that has given a positive 
+            score.
+    b. No one who is authorized to say no has done so.
+
+  If 'owner' can lgtm or verify a change, she is added to the respective list.
+
+  Args:
+    branch:           The branch that this change is in (a Branch object).
+    owner:            The user that owns the change. (a User object).
+    reviewer_status:  A map as returned by Change.get_reviewer_status()
+    files:            A list of the files that are affected.
+
+  Returns:
+    A tuple containing:
+      0 - whether the change is ready to submit over all,
+      1 - whether it has been approved,
+      2 - whether it has been denied
+      3 - whether it has been verified.
+      4 - A tuple of
+            0 - whether the owner has lgtm rights
+            1 - whether the owner has verification rights
+  """
+
+  if branch is None:
+    return (False, False, False, False, (False, False))
+  project = branch.project
+  if not project.is_code_reviewed():
+    return (True, True, False, True, (False, False))
+  if not branch.is_code_reviewed():
+    return (True, True, False, True, (False, False))
+
+  approved_cnt = 0
+  verified_cnt = 0
+  denied_cnt = 0
+  owner_auto_lgtm = False
+  owner_auto_verify = False
+
+  lgtm_emails = set([u.email() for u in reviewer_status['lgtm']])
+  reject_emails = set([u.email() for u in reviewer_status['reject']])
+  verified_by_emails = set([u.email() for u in reviewer_status['verified_by']])
+  owner_email = owner.email()
+
+  files_to_approve = _split_files_for_review(project, files)
+  if files_to_approve:
+    for (file,user_sets) in files_to_approve.iteritems():
+      # check the real approvals - the owner is checked in this list
+      if _check_users(user_sets['approvers'], lgtm_emails):
+        approved_cnt += 1
+      if _check_users(user_sets['approvers'], reject_emails):
+        denied_cnt += 1
+      if _check_users(user_sets['verifiers'], verified_by_emails):
+        verified_cnt += 1
+      # check the owner auto-approve
+      if _check_users(user_sets['approvers'], [owner_email]):
+        owner_auto_lgtm = True
+      if _check_users(user_sets['verifiers'], [owner_email]):
+        owner_auto_verify = True
+
+    require_review = False
+    approved = ((approved_cnt == len(files_to_approve))
+                or (owner_auto_lgtm
+                    and ((not require_review)
+                          or (len(reviewer_status['yes']) > 0
+                               or len(reviewer_status['lgtm']) > 0))))
+    verified = verified_cnt == len(files_to_approve) or owner_auto_verify
+    denied = denied_cnt > 0
+  else:
+    approved = False
+    verified = False
+    denied = False
+
+  real_approvers = _match_users(user_sets['approvers'], lgtm_emails) 
+  real_deniers = _match_users(user_sets['approvers'], reject_emails) 
+  real_verifiers = _match_users(user_sets['verifiers'], verified_by_emails) 
+
+  return {
+      'can_submit': approved and verified and (not denied),
+      'approved': approved,
+      'denied': denied,
+      'verified': verified,
+      'owner_auto_lgtm': owner_auto_lgtm,
+      'owner_auto_verify': owner_auto_verify,
+      'real_approvers': real_approvers,
+      'real_deniers': real_deniers,
+      'real_verifiers': real_verifiers,
+    }
+
+def user_can_approve(user, change):
+  """Returns whether the user can approve or verify this change.
+
+  Args:
+    user:   The user to test (a User object)
+    branch: The branch that this change is in (a Branch object)
+    files:  A list of files in question
+
+  Returns:
+    A map of 'approve' and 'verify' to booleans of whether the user
+    can approve or verify at least one of these files.
+  """
+  # pick the files
+  patchsets = list(change.patchset_set.order('id'))
+  if not patchsets:
+    return (False, False)
+  files = patchsets[-1].filenames
+
+  branch = change.dest_branch
+  project = branch.project
+
+  if not project.is_code_reviewed():
+    return (True, True)
+  files_to_approve = _split_files_for_review(project, files)
+  if not files_to_approve:
+    return (False, False)
+
+  email = user.email()
+  can_approve = False
+  can_verify = False
+  for (file,user_sets) in files_to_approve.iteritems(): 
+    for user_set in user_sets["approvers"]:
+      if email in user_set:
+        can_approve = True
+    for user_set in user_sets["verifiers"]:
+      if email in user_set:
+        can_verify = True
+    if can_approve and can_verify:
+      # short circuit
+      return (True, True)
+
+  return (can_approve, can_verify)
diff --git a/webapp/codereview/proto_client.py b/webapp/codereview/proto_client.py
new file mode 100755
index 0000000..e11beff
--- /dev/null
+++ b/webapp/codereview/proto_client.py
@@ -0,0 +1,349 @@
+# Copyright 2007, 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base64
+import cookielib
+import getpass
+import logging
+import md5
+import os
+import random
+import socket
+import time
+import urllib
+import urllib2
+import urlparse
+
+from froofle.protobuf.service import RpcChannel
+from froofle.protobuf.service import RpcController
+from need_retry_pb2 import RetryRequestLaterResponse;
+
+class ClientLoginError(urllib2.HTTPError):
+  """Raised to indicate an error authenticating with ClientLogin."""
+
+  def __init__(self, url, code, msg, headers, args):
+    urllib2.HTTPError.__init__(self, url, code, msg, headers, None)
+    self.args = args
+    self.reason = args["Error"]
+
+
+class Proxy(object):
+  class _ResultHolder(object):
+    def __call__(self, result):
+      self._result = result
+
+  class _RemoteController(RpcController):
+    def Reset(self):
+      pass
+  
+    def Failed(self):
+      pass
+  
+    def ErrorText(self):
+      pass
+  
+    def StartCancel(self):
+      pass
+  
+    def SetFailed(self, reason):
+      raise RuntimeError, reason
+  
+    def IsCancelled(self):
+      pass
+  
+    def NotifyOnCancel(self, callback):
+      pass
+  
+  def __init__(self, stub):
+    self._stub = stub
+
+  def __getattr__(self, key):
+    method = getattr(self._stub, key)
+
+    def call(request):
+      done = self._ResultHolder()
+      method(self._RemoteController(), request, done)
+      return done._result
+
+    return call
+
+
+class HttpRpc(RpcChannel):
+  """Simple protobuf over HTTP POST implementation."""
+
+  def __init__(self, host, auth_function,
+               host_override=None,
+               extra_headers={},
+               cookie_file=None):
+    """Creates a new HttpRpc.
+
+    Args:
+      host: The host to send requests to.
+      auth_function: A function that takes no arguments and returns an
+        (email, password) tuple when called. Will be called if authentication
+        is required.
+      host_override: The host header to send to the server (defaults to host).
+      extra_headers: A dict of extra headers to append to every request.
+      cookie_file: If not None, name of the file in ~/ to save the
+        cookie jar into.  Applications are encouraged to set this to
+        '.$appname_cookies' or some otherwise unique name.
+    """
+    self.host = host.lower()
+    self.host_override = host_override
+    self.auth_function = auth_function
+    self.authenticated = False
+    self.extra_headers = extra_headers
+    self.xsrf_token = None
+    if cookie_file is None:
+      self.cookie_file = None
+    else:
+      self.cookie_file = os.path.expanduser("~/%s" % cookie_file)
+    self.opener = self._GetOpener()
+    if self.host_override:
+      logging.info("Server: %s; Host: %s", self.host, self.host_override)
+    else:
+      logging.info("Server: %s", self.host)
+
+  def CallMethod(self, method, controller, request, response_type, done):
+    pat = "application/x-google-protobuf; name=%s"
+
+    url = "/proto/%s/%s" % (method.containing_service.name, method.name)
+    reqbin = request.SerializeToString()
+    reqtyp = pat % request.DESCRIPTOR.full_name
+    reqmd5 = base64.b64encode(md5.new(reqbin).digest())
+
+    start = time.time()
+    while True:
+      t, b = self._Send(url, reqbin, reqtyp, reqmd5)
+      if t == (pat % RetryRequestLaterResponse.DESCRIPTOR.full_name):
+        if time.time() >= (start + 1800):
+          controller.SetFailed("timeout")
+          return
+        s = random.uniform(0.250, 2.000)
+        print "Busy, retrying in %.3f seconds ..." % s
+        time.sleep(s)
+        continue
+
+      if t == (pat % response_type.DESCRIPTOR.full_name):
+        response = response_type()
+        response.ParseFromString(b)
+        done(response)
+      else:
+        controller.SetFailed("Unexpected %s response" % t)
+      break
+
+  def _CreateRequest(self, url, data=None):
+    """Creates a new urllib request."""
+    logging.debug("Creating request for: '%s' with payload:\n%s", url, data)
+    req = urllib2.Request(url, data=data)
+    if self.host_override:
+      req.add_header("Host", self.host_override)
+    for key, value in self.extra_headers.iteritems():
+      req.add_header(key, value)
+    return req
+
+  def _GetAuthToken(self, email, password):
+    """Uses ClientLogin to authenticate the user, returning an auth token.
+
+    Args:
+      email:    The user's email address
+      password: The user's password
+
+    Raises:
+      ClientLoginError: If there was an error authenticating with ClientLogin.
+      HTTPError: If there was some other form of HTTP error.
+
+    Returns:
+      The authentication token returned by ClientLogin.
+    """
+    req = self._CreateRequest(
+        url="https://www.google.com/accounts/ClientLogin",
+        data=urllib.urlencode({
+            "Email": email,
+            "Passwd": password,
+            "service": "ah",
+            "source": "gerrit-codereview-client",
+            "accountType": "HOSTED_OR_GOOGLE",
+        })
+    )
+    try:
+      response = self.opener.open(req)
+      response_body = response.read()
+      response_dict = dict(x.split("=")
+                           for x in response_body.split("\n") if x)
+      return response_dict["Auth"]
+    except urllib2.HTTPError, e:
+      if e.code == 403:
+        body = e.read()
+        response_dict = dict(x.split("=", 1) for x in body.split("\n") if x)
+        raise ClientLoginError(req.get_full_url(), e.code, e.msg,
+                               e.headers, response_dict)
+      else:
+        raise
+
+  def _GetAuthCookie(self, auth_token):
+    """Fetches authentication cookies for an authentication token.
+
+    Args:
+      auth_token: The authentication token returned by ClientLogin.
+
+    Raises:
+      HTTPError: If there was an error fetching the authentication cookies.
+    """
+    # This is a dummy value to allow us to identify when we're successful.
+    continue_location = "http://localhost/"
+    args = {"continue": continue_location, "auth": auth_token}
+    req = self._CreateRequest("http://%s/_ah/login?%s" %
+                              (self.host, urllib.urlencode(args)))
+    try:
+      response = self.opener.open(req)
+    except urllib2.HTTPError, e:
+      response = e
+    if (response.code != 302 or
+        response.info()["location"] != continue_location):
+      raise urllib2.HTTPError(req.get_full_url(), response.code, response.msg,
+                              response.headers, response.fp)
+    self.authenticated = True
+
+  def _GetXsrfToken(self):
+    """Fetches /proto/_token for use in X-XSRF-Token HTTP header.
+
+    Raises:
+      HTTPError: If there was an error fetching a new token.
+    """
+    tries = 0
+    while True:
+      url = "http://%s/proto/_token" % self.host
+      req = self._CreateRequest(url)
+      try:
+        response = self.opener.open(req)
+        self.xsrf_token = response.read()
+        return
+      except urllib2.HTTPError, e:
+        if tries > 3:
+          raise
+        elif e.code == 401:
+          self._Authenticate()
+        else:
+          raise
+
+  def _Authenticate(self):
+    """Authenticates the user.
+
+    The authentication process works as follows:
+     1) We get a username and password from the user
+     2) We use ClientLogin to obtain an AUTH token for the user
+        (see http://code.google.com/apis/accounts/AuthForInstalledApps.html).
+     3) We pass the auth token to /_ah/login on the server to obtain an
+        authentication cookie. If login was successful, it tries to redirect
+        us to the URL we provided.
+
+    If we attempt to access the upload API without first obtaining an
+    authentication cookie, it returns a 401 response and directs us to
+    authenticate ourselves with ClientLogin.
+    """
+    for i in range(3):
+      credentials = self.auth_function()
+      auth_token = self._GetAuthToken(credentials[0], credentials[1])
+      self._GetAuthCookie(auth_token)
+      if self.cookie_file is not None:
+        self.cookie_jar.save()
+      return
+
+  def _Send(self, request_path, payload, content_type, content_md5):
+    """Sends an RPC and returns the response.
+
+    Args:
+      request_path: The path to send the request to, eg /api/appversion/create.
+      payload: The body of the request, or None to send an empty request.
+      content_type: The Content-Type header to use.
+      content_md5: The Content-MD5 header to use.
+
+    Returns:
+      The content type, as a string.
+      The response body, as a string.
+    """
+    if not self.authenticated:
+      self._Authenticate()
+    if not self.xsrf_token:
+      self._GetXsrfToken()
+
+    old_timeout = socket.getdefaulttimeout()
+    socket.setdefaulttimeout(None)
+    try:
+      tries = 0
+      while True:
+        tries += 1
+        url = "http://%s%s" % (self.host, request_path)
+        req = self._CreateRequest(url=url, data=payload)
+        req.add_header("Content-Type", content_type)
+        req.add_header("Content-MD5", content_md5)
+        req.add_header("X-XSRF-Token", self.xsrf_token)
+        try:
+          f = self.opener.open(req)
+          hdr = f.info()
+          type = hdr.getheader('Content-Type',
+                               'application/octet-stream')
+          response = f.read()
+          f.close()
+          return type, response
+        except urllib2.HTTPError, e:
+          if tries > 3:
+            raise
+          elif e.code == 401:
+            self._Authenticate()
+          elif e.code == 403:
+            if not hasattr(e, 'read'):
+              e.read = lambda self: ''
+            raise RuntimeError, '403\nxsrf: %s\n%s' \
+                  % (self.xsrf_token, e.read())
+          else:
+            raise
+    finally:
+      socket.setdefaulttimeout(old_timeout)
+
+  def _GetOpener(self):
+    """Returns an OpenerDirector that supports cookies and ignores redirects.
+
+    Returns:
+      A urllib2.OpenerDirector object.
+    """
+    opener = urllib2.OpenerDirector()
+    opener.add_handler(urllib2.ProxyHandler())
+    opener.add_handler(urllib2.UnknownHandler())
+    opener.add_handler(urllib2.HTTPHandler())
+    opener.add_handler(urllib2.HTTPDefaultErrorHandler())
+    opener.add_handler(urllib2.HTTPSHandler())
+    opener.add_handler(urllib2.HTTPErrorProcessor())
+    if self.cookie_file is not None:
+      self.cookie_jar = cookielib.MozillaCookieJar(self.cookie_file)
+      if os.path.exists(self.cookie_file):
+        try:
+          self.cookie_jar.load()
+          self.authenticated = True
+        except (cookielib.LoadError, IOError):
+          # Failed to load cookies - just ignore them.
+          pass
+      else:
+        # Create an empty cookie file with mode 600
+        fd = os.open(self.cookie_file, os.O_CREAT, 0600)
+        os.close(fd)
+      # Always chmod the cookie file
+      os.chmod(self.cookie_file, 0600)
+    else:
+      # Don't save cookies across runs of update.py.
+      self.cookie_jar = cookielib.CookieJar()
+    opener.add_handler(urllib2.HTTPCookieProcessor(self.cookie_jar))
+    return opener
+
diff --git a/webapp/codereview/proto_server.py b/webapp/codereview/proto_server.py
new file mode 100644
index 0000000..fe9784a
--- /dev/null
+++ b/webapp/codereview/proto_server.py
@@ -0,0 +1,211 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base64
+import hashlib
+import hmac
+import logging
+import time
+import zlib
+
+from google.appengine.api import users
+from google.appengine.ext import webapp
+from google.appengine.ext.webapp import util
+
+from django.http import HttpResponse
+from froofle.protobuf.service import RpcController
+
+from codereview.models import Account, Settings
+from codereview.internal.util import InternalAPI
+from codereview.view_util import xsrf_for, is_xsrf_ok
+
+from codereview.review_service import ReviewServiceImp
+from codereview.internal.admin_service import AdminServiceImp
+from codereview.internal.build_service import BuildServiceImp
+from codereview.internal.bundle_store_service import BundleStoreServiceImp
+from codereview.internal.change_service import ChangeServiceImp
+from codereview.internal.merge_service import MergeServiceImp
+
+MAX_TIME_WINDOW = 5 * 60 # seconds
+XSRF_PATH = '/proto/'
+services = {}
+
+def register_service(s_impl):
+  services[s_impl.GetDescriptor().name] = s_impl
+
+register_service(ReviewServiceImp())
+register_service(AdminServiceImp())
+register_service(BuildServiceImp())
+register_service(BundleStoreServiceImp())
+register_service(ChangeServiceImp())
+register_service(MergeServiceImp())
+
+class _LocalController(RpcController):
+  def __init__(self, s_impl):
+    self._failed = None
+    self._service = s_impl
+
+  def Reset(self):
+    pass
+
+  def Failed(self):
+    pass
+
+  def ErrorText(self):
+    pass
+
+  def StartCancel(self):
+    pass
+
+  def SetFailed(self, reason):
+    logging.error("Failed on %s: %s" % (
+      self._service.__class__.__name__,
+      reason))
+    self._failed = reason
+
+  def IsCancelled(self):
+    pass
+
+  def NotifyOnCancel(self, callback):
+    pass
+
+  def HasFailed(self):
+    return self._failed is not None
+
+def token(req):
+  user = users.get_current_user()
+  if not user:
+    return HttpResponse(status=401, content="User must be logged in.")
+  return HttpResponse(content = xsrf_for(XSRF_PATH),
+                      content_type = 'application/octet-stream')
+
+def serve(req, service_name, action_name):
+  try:
+    type_str = req.META['CONTENT_TYPE']
+  except KeyError:
+    return HttpResponse(status=415, content="Invalid request body type")
+
+  type = type_str.split('; ')
+  type_dict = {}
+  type_dict['name'] = None
+  type_dict['compress'] = None
+  for t in type[1:]:
+    name, val = t.split('=', 1)
+    type_dict[name] = val
+  if type[0] != "application/x-google-protobuf":
+    return HttpResponse(status=415, content="Invalid request body type")
+
+  try: s_impl = services[service_name]
+  except KeyError:
+    return HttpResponse(status=404, content="Service not recognized.")
+
+  method = s_impl.GetDescriptor().FindMethodByName(action_name)
+  if not method:
+    return HttpResponse(status=404, content="Method not recognized.")
+
+  request = s_impl.GetRequestClass(method)()
+  request_name = request.DESCRIPTOR.full_name
+  if type_dict['name'] != request_name:
+    return HttpResponse(status=415,
+                        content="Expected a %s" % request_name)
+
+  raw_body = req.raw_post_data
+  msg_bin = raw_body
+
+  if 'HTTP_CONTENT_MD5' in req.META:
+    expmd5 = req.META['HTTP_CONTENT_MD5']
+
+    actmd5 = hashlib.md5()
+    actmd5.update(raw_body)
+    actmd5 = base64.b64encode(actmd5.digest())
+
+    if actmd5 != expmd5:
+      return HttpResponse(status=412,
+                          content="Content-MD5 incorrect")
+
+  compression = type_dict['compress']
+  if compression == 'deflate':
+    msg_bin = zlib.decompress(msg_bin)
+  elif compression:
+    return HttpResponse(status=415,
+                        content="Unsupported compression %s" % compression)
+
+  if isinstance(s_impl, InternalAPI):
+    key = Settings.get_settings().internal_api_key
+    key = base64.b64decode(key)
+
+    try:
+      date = int(req.META['HTTP_X_DATE_UTC'])
+    except KeyError:
+      return HttpResponse(status=403,
+                          content="X-Date-UTC header is required.")
+
+    try:
+      exp_sig = req.META['HTTP_AUTHORIZATION']
+    except KeyError:
+      return HttpResponse(status=403,
+                          content="Authorization header is required.")
+
+    if not exp_sig.startswith("proto :"):
+      return HttpResponse(status=403,
+                          content="Malformed authorization header.")
+    exp_sig = exp_sig[len("proto :"):]
+
+    now = time.time()
+    if abs(date - now) > MAX_TIME_WINDOW:
+      return HttpResponse(status=403,
+                          content="Request is too early or too late.")
+
+    m = hmac.new(key, digestmod=hashlib.sha1)
+    m.update('POST %s\n' % req.path)
+    m.update('X-Date-UTC: %s\n' % date)
+    m.update('Content-Type: %s\n' % type_str)
+    m.update('\n')
+    m.update(raw_body)
+    if base64.b64encode(m.digest()) != exp_sig:
+      return HttpResponse(status=403,
+                          content="Invalid request signature.")
+  else:
+    user = users.get_current_user()
+    if not user:
+      return HttpResponse(status=401, content="User must be logged in.")
+
+    try:
+      xsrf = req.META['HTTP_X_XSRF_TOKEN']
+    except KeyError:
+      return HttpResponse(status=403,
+                          content="X-XSRF-Token header required.")
+    if not is_xsrf_ok(req, path=XSRF_PATH, xsrf=xsrf):
+      return HttpResponse(status=403,
+                          content="X-XSRF-Token invalid.")
+
+  request.ParseFromString(msg_bin)
+  controller = _LocalController(s_impl)
+
+  class result_caddy:
+    _r = HttpResponse(status=500)
+    def __call__(self, r):
+      if r is not None:
+        r_bin = r.SerializeToString()
+        r_name = r.DESCRIPTOR.full_name
+        r_type = "application/x-google-protobuf; name=%s" % r_name
+        self._r = HttpResponse(content_type = r_type, content = r_bin)
+  done = result_caddy()
+
+  s_impl.http_request = req
+
+  s_impl.CallMethod(method, controller, request, done)
+  if controller.HasFailed():
+    return HttpResponse(status=500)
+  return done._r
diff --git a/webapp/codereview/review_service.py b/webapp/codereview/review_service.py
new file mode 100644
index 0000000..58dca73
--- /dev/null
+++ b/webapp/codereview/review_service.py
@@ -0,0 +1,125 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+
+from google.appengine.api import users
+from google.appengine.ext import db
+
+from models import gql, Project, Branch, Account
+import git_models
+
+from review_pb2 import *
+from upload_bundle_pb2 import *
+from internal.util import automatic_retry
+
+class ReviewServiceImp(ReviewService):
+  """
+    Implements the review_service API for developer clients.
+  """
+
+  @automatic_retry
+  def UploadBundle(self, rpc_controller, req, done):
+    """
+      Receives an uploaded Git style bundle and queues it for processing.
+    """
+    rsp = UploadBundleResponse()
+
+    # can't get here if there isn't a current user
+    current_user = users.get_current_user()
+    
+    if not Account.get_account_for_user(current_user).cla_verified:
+      rsp.status_code = UploadBundleResponse.UNAUTHORIZED_USER
+      done(rsp)
+      return
+
+    if not req.dest_project:
+      rsp.status_code = UploadBundleResponse.UNKNOWN_PROJECT
+      done(rsp)
+      return
+
+    proj = req.dest_project
+    if proj.endswith(".git"):
+      proj = proj[0 : len(proj) - 4]
+
+    proj = Project.get_project_for_name(proj)
+    if not proj:
+      rsp.status_code = UploadBundleResponse.UNKNOWN_PROJECT
+      done(rsp)
+      return
+
+    if not req.dest_branch:
+      rsp.status_code = UploadBundleResponse.UNKNOWN_BRANCH
+      done(rsp)
+
+    brch = Branch.get_branch_for_name(proj, req.dest_branch)
+    if not brch:
+      rsp.status_code = UploadBundleResponse.UNKNOWN_BRANCH
+      done(rsp)
+      return
+
+    rb = git_models.ReceivedBundle(
+      dest_project = proj,
+      dest_branch = brch,
+      owner = current_user,
+      state = git_models.ReceivedBundle.STATE_UPLOADING,
+      contained_objects = list(req.contained_object))
+    rb.put()
+
+    rsp.bundle_id = str(rb.key().id())
+    self._store_segment(req, rsp, rb, 1)
+    done(rsp)
+
+  @automatic_retry
+  def ContinueBundle(self, rpc_controller, req, done):
+    rsp = UploadBundleResponse()
+    rsp.bundle_id = req.bundle_id
+
+    rb = git_models.ReceivedBundle.get_by_id(int(req.bundle_id))
+    if rb is None:
+      rsp.status_code = UploadBundleResponse.UNKNOWN_BUNDLE
+      done(rsp)
+      return
+
+    if rb.owner != users.get_current_user():
+      rsp.status_code = UploadBundleResponse.NOT_BUNDLE_OWNER
+      done(rsp)
+      return
+
+    self._store_segment(req, rsp, rb, req.segment_id)
+    done(rsp)
+
+  def _store_segment(self, req, rsp, rb, segment_id):
+    rb.set_segment(segment_id, req.bundle_data)
+    def trans():
+      b = db.get(rb.key())
+      if b.state != git_models.ReceivedBundle.STATE_UPLOADING:
+        return False
+
+      if b.n_segments < segment_id:
+        b.n_segments = segment_id
+      if not req.partial_upload:
+        b.state = git_models.ReceivedBundle.STATE_NEW
+      b.put()
+      return True
+
+    if db.run_in_transaction(trans):
+      if req.partial_upload:
+        rsp.status_code = UploadBundleResponse.CONTINUE
+      else:
+        rb.ready()
+        rsp.status_code = UploadBundleResponse.RECEIVED
+    else:
+      rsp.status_code = UploadBundleResponse.BUNDLE_CLOSED
+
diff --git a/webapp/codereview/settings.py b/webapp/codereview/settings.py
new file mode 100644
index 0000000..c2c34cd
--- /dev/null
+++ b/webapp/codereview/settings.py
@@ -0,0 +1,266 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Views for the settings section of Gerrit.
+
+This requires Django 0.97.pre.
+"""
+
+import datetime
+import logging
+import urllib
+
+from google.appengine.api import memcache
+
+from django import forms
+from django import http
+
+import fields
+import models
+import views
+from view_util import *
+
+
+### Users settings page -- /settings ###
+
+def validate_real_name(real_name):
+  """Returns None if real_name is fine and an error message otherwise."""
+  if not real_name:
+    return 'Name cannot be empty.'
+  elif real_name == 'me':
+    return 'Of course, you are what you are.  But \'me\' is for everyone.'
+  elif '"' in real_name:
+    return 'Name cannot contain the quotation mark (") character'
+  else:
+    return None
+
+
+class SettingsForm(BaseForm):
+  _template = 'settings.html'
+
+  context = forms.IntegerField(widget = forms.Select(
+                               choices = [(x, "%d lines" % x) \
+                                          for x \
+                                          in models.CONTEXT_CHOICES]
+                               ),
+                               label = 'Context')
+  unclaimed_changes_projects = fields.ProjectSelectField()
+
+  @classmethod
+  def _init(cls, account):
+    return {'initial': {
+              'context': account.default_context,
+              'unclaimed_changes_projects': account.unclaimed_changes_projects,
+              }
+            }
+
+  def _save(self, cd, account):
+    account.default_context = cd.get("context")
+    account.unclaimed_changes_projects = cd.get("unclaimed_changes_projects")
+    memcache.delete(views.unclaimed_project_memcache_key(account.user))
+    account.put()
+
+@login_required
+def settings(request):
+  account = models.Account.current_user_account
+  def done():
+    return http.HttpResponseRedirect('/mine')
+  return process_form(request, SettingsForm, account, done)
+
+
+### Welcome page -- /settings/welcome ###
+
+class WelcomeForm1(BaseForm):
+  _template = 'settings_welcome_1.html'
+
+  dest = forms.fields.CharField(widget=forms.widgets.HiddenInput)
+  real_name = forms.fields.CharField()
+
+  @classmethod
+  def _init(cls, state):
+    account = state['account']
+    if account.real_name_entered:
+      real_name = account.real_name
+    else:
+      real_name = ""
+    return {'initial': {
+              'real_name': real_name,
+              'dest': state['dest'],
+            }
+          }
+
+  def _save(self, cd, state):
+    account = state['account']
+    account.real_name = cd['real_name']
+    account.real_name_entered = True
+    account.put()
+
+    return _init_form(WelcomeForm2, cd)
+
+class WelcomeForm2(BaseForm):
+  _template = 'settings_welcome_2.html'
+
+  cla = forms.fields.CharField(widget=forms.widgets.RadioSelect(choices=(
+                            'none', 'individual', 'corporate')))
+  dest = forms.fields.CharField(widget=forms.widgets.HiddenInput)
+
+  @classmethod
+  def _init(cls, state):
+    return {'initial': {
+              'dest': state['dest'],
+              'cla': 'none',
+            }
+          }
+
+  def _pre_verify(self, get, post):
+    if not post.get('continue'):
+      return _init_form(WelcomeForm1, post)
+
+  def _save(self, cd, state):
+    cla = cd['cla']
+    if cla == 'none':
+      account = state['account']
+      account.welcomed = True
+      account.put()
+      return _init_form(WelcomeForm4, cd)
+    elif cla == 'individual':
+      return _init_form(WelcomeForm3Individual, cd)
+    elif cla == 'corporate':
+      return _init_form(WelcomeForm3Corporate, cd)
+
+
+class WelcomeForm3Individual(BaseForm):
+  _template = 'settings_welcome_3_individual.html'
+
+  dest = forms.fields.CharField(widget=forms.widgets.HiddenInput)
+
+  i_agree = forms.fields.CharField()
+
+  mailing_address = forms.CharField(required=True,
+                          max_length=150,
+                          widget=forms.Textarea(attrs={'rows': 4, 'cols': 60}))
+  mailing_address_country = forms.CharField(max_length=30, required=True)
+  phone_number = forms.CharField(max_length=30, required=True)
+  fax_number = forms.CharField(max_length=30, required=False)
+
+  @classmethod
+  def _init(cls, state):
+    return {'initial': {
+              'dest': state['dest'],
+            }
+          }
+
+  def _pre_verify(self, get, post):
+    if not post.get('continue'):
+      return _init_form(WelcomeForm2, post)
+
+  def _save(self, cd, state):
+    if cd['i_agree'].lower() != 'i agree':
+      self.errors['i_agree'] = 'You must agree to this license.'
+      return
+    account = state['account']
+    # NOTE: just using 1 for now, future versions can come later
+    account.individual_cla_version = 1
+    account.mailing_address = cd['mailing_address']
+    account.mailing_address_country = cd['mailing_address_country']
+    account.phone_number = cd['phone_number']
+    account.fax_number = cd['fax_number']
+    account.individual_cla_timestamp = datetime.datetime.utcnow()
+    account.welcomed = True
+    account.put()
+
+    return _init_form(WelcomeForm4, cd)
+
+class WelcomeForm3Corporate(BaseForm):
+  _template = 'settings_welcome_3_corporate.html'
+
+  dest = forms.fields.CharField(widget=forms.widgets.HiddenInput)
+
+  @classmethod
+  def _init(cls, state):
+    return {'initial': {
+              'dest': state['dest'],
+            }
+          }
+
+  def _pre_verify(self, get, post):
+    if not post.get('continue'):
+      return _init_form(WelcomeForm2, post)
+
+  def _save(self, cd, state):
+    account = state['account']
+    account.welcomed = True
+    account.put()
+  
+    return _init_form(WelcomeForm4, cd)
+
+class WelcomeForm4(BaseForm):
+  _template = 'settings_welcome_4.html'
+
+  dest = forms.fields.CharField(widget=forms.widgets.HiddenInput)
+
+  @classmethod
+  def _init(cls, state):
+    return {'initial': {
+              'dest': state['dest'],
+            }
+          }
+
+  def _save(self, cd, state):
+    return http.HttpResponseRedirect(cd['dest'])
+
+
+
+_SETTINGS_STEPS = {
+  '1':      WelcomeForm1,
+  '2':      WelcomeForm2,
+  '3ind':   WelcomeForm3Individual,
+  '3corp':  WelcomeForm3Corporate,
+  '4':      WelcomeForm4,
+}
+
+def _init_form(cls, post):
+  state = {
+      'dest': post['dest'],
+      'account': models.Account.current_user_account,
+    }
+  kwargs = cls._init(state)
+  # ok to pull this from post b/c it'll be
+  # validated later when they submit
+  kwargs['initial']['xsrf'] = post['xsrf']
+  return cls(**kwargs)
+
+@login_required
+def settings_welcome(request):
+  if request.method == 'GET':
+    state = {
+      'dest': request.GET['dest'],
+      'account': models.Account.current_user_account,
+    }
+    return process_form(request, WelcomeForm1, state, None)
+  else:
+    try:
+      step = str(request.POST['step'])
+      form_cls = _SETTINGS_STEPS[step]
+    except KeyError:
+      raise http.Http404 
+    state = {
+      'dest': request.POST['dest'],
+      'account': models.Account.current_user_account,
+    }
+    params = {
+      'post_url': '/settings/welcome?dest=%s' % urllib.quote(state['dest']),
+    }
+    return process_form(request, form_cls, state, None)
+
diff --git a/webapp/codereview/urls.py b/webapp/codereview/urls.py
new file mode 100644
index 0000000..3e5e15f
--- /dev/null
+++ b/webapp/codereview/urls.py
@@ -0,0 +1,76 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""URL mappings for Gerrit."""
+
+# NOTE: Must import *, since Django looks for things here, e.g. handler500.
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns(
+    'codereview',
+    (r'^dev_init$', 'dev_init.dev_init'),
+    (r'^proto/_token$', 'proto_server.token'),
+    (r'^proto/([^/]*)/([^/]*)$', 'proto_server.serve'),
+    (r'^$', 'views.index'),
+    (r'^all$', 'views.all'),
+    (r'^mine$', 'views.mine'),
+    (r'^unclaimed$', 'views.unclaimed'),
+    (r'^starred$', 'views.starred'),
+    (r'^r/([0-9a-f]{4,40})$', 'views.revision_redirect'),
+    (r'^(\d+)$', 'views.show'),
+    (r'^(\d+)/show$', 'views.show'),
+    (r'^(\d+)/edit$', 'views.edit'),
+    (r'^(\d+)/delete$', 'views.delete'),
+    (r'^(\d+)/publish$', 'views.publish'),
+    (r'^(\d+)/merge/(\d+)$', 'views.merge'),
+    (r'^(\d+)/ajax_patchset/(\d+)$', 'views.ajax_patchset'),
+    (r'^download/change(\d+)_(\d+)_(\d+|z[0-9a-f]{40})\.diff', 'views.download_patch'),
+    (r'^download/bundle(\d+)_(\d+)$', 'views.download_bundle'),
+    (r'^(\d+)/patch/(\d+)/(\d+|z[0-9a-f]{40})$', 'views.patch'),
+    (r'^(\d+)/diff/(\d+)/(\d+|z[0-9a-f]{40})$', 'views.diff'),
+    (r'^(\d+)/diff2/(\d+):(\d+)/(\d+|z[0-9a-f]{40})$', 'views.diff2'),
+    (r'^(\d+)/diff_skipped_lines/(\d+)/(\d+|z[0-9a-f]{40})/(\d+)/(\d+)/([tb])$',
+     'views.diff_skipped_lines'),
+    (r'^(\d+)/diff2_skipped_lines/(\d+):(\d+)/(\d+|z[0-9a-f]{40})/(\d+)/(\d+)/([tb])$',
+     'views.diff2_skipped_lines'),
+    (r'^star$', 'views.star'),
+    (r'^unstar$', 'views.unstar'),
+    (r'^user/(.+)$', 'views.show_user'),
+    (r'^ajax_user_mine/(.+)/(\d+)$', 'views.ajax_user_mine'),
+    (r'^ajax_user_review/(.+)/(\d+)$', 'views.ajax_user_review'),
+    (r'^ajax_user_closed/(.+)/(\d+)$', 'views.ajax_user_closed'),
+    (r'^inline_draft$', 'views.inline_draft'),
+    (r'^settings$', 'settings.settings'),
+    (r'^settings/welcome$', 'settings.settings_welcome'),
+    (r'^user_popup/(.+)$', 'views.user_popup'),
+    (r'^admin$', 'views.admin'),
+    (r'^admin/settings$', 'views.admin_settings'),
+    (r'^admin/settings/analytics$', 'views.admin_settings_analytics'),
+    (r'^admin/settings/from_email$', 'views.admin_settings_from_email'),
+    (r'^admin/settings/from_email_test$', 'views.admin_settings_from_email_test'),
+    (r'^admin/users$', 'people.admin_users'),
+    (r'^admin/users/verify_cla$', 'people.admin_users_verify_cla'),
+    (r'^admin/people_info$', 'people.admin_people_info'),
+    (r'^admin/user/(.+)$', 'people.admin_user'),
+    (r'^admin/groups$', 'people.admin_groups'),
+    (r'^admin/group_new$', 'people.admin_group_new'),
+    (r'^admin/group/(.+)$', 'people.admin_group'),
+    (r'^admin/group_delete/(.+)$', 'people.admin_group_delete'),
+    (r'^admin/projects$', 'project.project_list'),
+    (r'^admin/project_new$', 'project.project_new'),
+    (r'^admin/project/(.+)$', 'project.project_edit'),
+    (r'^admin/project_delete/(.+)$', 'project.project_delete'),
+    (r'^admin/datastore_delete$', 'views.admin_datastore_delete'),
+    (r'^admin/datastore_upgrade$', 'views.admin_datastore_upgrade'),
+    )
diff --git a/webapp/codereview/view_util.py b/webapp/codereview/view_util.py
new file mode 100644
index 0000000..3d3ba36
--- /dev/null
+++ b/webapp/codereview/view_util.py
@@ -0,0 +1,446 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base64
+import hashlib
+import hmac
+import logging
+import os
+import time
+import urllib
+
+from google.appengine.api import users
+from google.appengine.runtime import DeadlineExceededError
+
+import django
+from django.template import loader as template_loader
+from django.http import HttpResponse, \
+                        HttpResponseRedirect, \
+                        HttpResponseForbidden, \
+                        HttpResponseNotFound
+from django.forms import ValidationError
+
+# Add our own template library.
+_library_name = __name__.rsplit('.', 1)[0] + '.library'
+if not django.template.libraries.get(_library_name, None):
+  django.template.add_to_builtins(_library_name)
+del _library_name
+
+import models
+
+IS_DEV = os.environ['SERVER_SOFTWARE'].startswith('Dev')
+MAX_XSRF_WINDOW = 4 * 60 * 60  # seconds
+
+### Decorators for request handlers ###
+
+def login_required(func):
+  """Decorator that redirects to the login page if you're not logged in."""
+  def login_wrapper(request, *args, **kwds):
+    if request.user is None:
+      return HttpResponseRedirect(
+          users.create_login_url(request.get_full_path()))
+    if not request.account.welcomed and request.path != '/settings/welcome':
+      return HttpResponseRedirect(
+          '/settings/welcome?dest=%s' % urllib.quote(request.get_full_path()))
+    return func(request, *args, **kwds)
+  return login_wrapper
+
+
+def gae_admin_required(func):
+  def admin_wrapper(request, *args, **kwds):
+    """Decorator that insists that you are a GAE admin/developer.
+    """
+    if request.user is None:
+      path = request.get_full_path()
+      return HttpResponseRedirect(users.create_login_url(path))
+    if not request.is_gae_admin:
+      return HttpResponseNotFound('Page not found')
+    return func(request, *args, **kwds)
+  return admin_wrapper
+
+
+def admin_required(func):
+  def admin_wrapper(request, *args, **kwds):
+    """Decorator that insists that you're logged in as administratior."""
+    if request.user is None:
+      return HttpResponseRedirect(
+          users.create_login_url(request.get_full_path()))
+    if not request.user_is_admin:
+      return HttpResponseNotFound('Page not found')
+    return func(request, *args, **kwds)
+  return admin_wrapper
+
+
+def project_owner_or_admin_required(func):
+  def admin_wrapper(request, *args, **kwds):
+    """Decorator that insists that you're logged in as administratior."""
+    if request.user is None:
+      return HttpResponseRedirect(
+          users.create_login_url(request.get_full_path()))
+    if not (request.user_is_admin or request.projects_owned_by_user):
+      return HttpResponseNotFound('Page not found')
+    return func(request, *args, **kwds)
+  return admin_wrapper
+
+
+def devenv_required(func):
+  def devenv_wrapper(request, *args, **kwds):
+    """Decorator that insists that you're on the development server."""
+    if not IS_DEV:
+      return HttpResponseNotFound('Page not found')
+    return func(request, *args, **kwds)
+  return devenv_wrapper
+
+
+def change_required(func):
+  """Decorator that processes the change_id handler argument."""
+  def change_wrapper(request, change_id, *args, **kwds):
+    change = models.Change.get_by_id(int(change_id))
+    if change is None:
+      return HttpResponseNotFound('No change exists with that id (%s)' %
+                                  change_id)
+    request.change = change
+    return func(request, *args, **kwds)
+  return change_wrapper
+
+
+def posted_change_required(func):
+  """Decorator that processes POST['change_id']
+  """
+  def change_wrapper(request, *args, **kwds):
+    try:
+      change_id = request.POST['change_id']
+    except KeyError:
+      return HttpResponseNotFound('No change supplied.')
+    change = models.Change.get_by_id(int(change_id))
+    if change is None:
+      return HttpResponseNotFound('No change exists with that id (%s)' %
+                                  change_id)
+    request.change = change
+    return func(request, *args, **kwds)
+  return change_wrapper
+
+
+def user_key_required(func):
+  """Decorator that processes the user handler argument."""
+  def user_key_wrapper(request, user_key, *args, **kwds):
+    user_key = urllib.unquote(user_key)
+    if '@' in user_key:
+      request.user_to_show = users.User(user_key)
+    elif ',,' in user_key:
+      request.user_to_show = users.User(user_key.replace(',,','@'))
+    else:
+      accounts = models.Account.get_accounts_for_real_name(user_key)
+      if not accounts:
+        logging.info("account not found for real_name %s" % user_key)
+        return HttpResponseNotFound('No user found with that key (%s)' %
+                                    user_key)
+      request.user_to_show = accounts[0].user
+    return func(request, *args, **kwds)
+  return user_key_wrapper
+
+
+def change_owner_required(func):
+  """Decorator that processes the change_id argument and insists you own it."""
+  @change_required
+  @login_required
+  def change_owner_wrapper(request, *args, **kwds):
+    if request.change.owner != request.user:
+      return HttpResponseForbidden('You do not own this change')
+    return func(request, *args, **kwds)
+  return change_owner_wrapper
+
+
+def patchset_required(func):
+  """Decorator that processes the patchset_id argument."""
+  @change_required
+  def patchset_wrapper(request, patchset_id, *args, **kwds):
+    patchset = models.PatchSet.get_by_id(int(patchset_id), parent=request.change)
+    if patchset is None:
+      return HttpResponseNotFound('No patch set exists with that id (%s)' %
+                                  patchset_id)
+    patchset.change = request.change
+    request.patchset = patchset
+    return func(request, *args, **kwds)
+  return patchset_wrapper
+
+
+def patch_required(func):
+  """Decorator that processes the patch_id argument."""
+  @patchset_required
+  def patch_wrapper(request, patch_id, *args, **kwds):
+    patch = models.Patch.get_patch(request.patchset, patch_id)
+    if patch is None:
+      return HttpResponseNotFound('No patch exists with that id (%s %s)' %
+                                  (request.patchset.key().id(), patch_id))
+    patch.patchset = request.patchset
+    request.patch = patch
+    return func(request, *args, **kwds)
+  return patch_wrapper
+
+
+### Render Django template ###
+
+def _parse_template(name):
+  return template_loader.get_template(name)
+
+def _lookup_template(name):
+  try:
+    t = _template_cache[name]
+  except KeyError:
+    t = _parse_template(name)
+    _template_cache[name] = t
+  return t
+_template_cache = {}
+
+if IS_DEV:
+  _get_template = _parse_template
+else:
+  _get_template = _lookup_template
+
+def respond(request, template, params=None, status=200):
+  """Render a response, passing standard stuff to the response.
+
+  Args:
+    request: The request object.
+    template: The template name; '.html' is appended automatically.
+    params: A dict giving the template parameters; modified in-place.
+
+  Returns:
+    A Django HttpResponse
+  """
+  try:
+    if params is None:
+      params = {}
+
+    params['request'] = request
+    params['user'] = request.user
+    params['is_gae_admin'] = request.is_gae_admin
+    params['is_dev'] = IS_DEV
+    params['analytics'] = models.Settings.get_settings().analytics
+    my_path = request.get_full_path()
+
+    if request.user is None:
+      params['sign_in'] = users.create_login_url(my_path)
+    else:
+      params['sign_out'] = users.create_logout_url(my_path)
+      params['star_url'] = '/star'
+      params['unstar_url'] = '/unstar'
+      params['inline_draft_url'] = '/inline_draft'
+
+    if not template.endswith('.html'):
+      template += '.html'
+    type = 'text/html; charset=UTF-8'
+
+    ctx = django.template.Context(params)
+    body = _get_template(template).render(ctx)
+    return HttpResponse(content = body,
+                        status = status,
+                        content_type= type)
+  except DeadlineExceededError:
+    logging.exception('DeadlineExceededError')
+    return HttpResponse(status=500, content='DeadlineExceededError')
+  except MemoryError:
+    logging.exception('MemoryError')
+    return HttpResponse(status=500, content='MemoryError')
+  except AssertionError:
+    logging.exception('AssertionError')
+    return HttpResponse(status=500, content='AssertionError')
+
+
+### Form Handling ###
+
+_xsrf_key = None
+_xsrf_now = None
+_xsrf_cache = {}
+
+def _now():
+  global _xsrf_now
+
+  if _xsrf_now is None:
+    _xsrf_now = time.time()
+  return _xsrf_now
+
+def _xsrf_sign(path, when):
+  global _xsrf_key
+
+  if _xsrf_key is None:
+    _xsrf_key = models.Settings.get_settings().xsrf_key
+    _xsrf_key = base64.b64decode(_xsrf_key)
+
+  user = users.get_current_user()
+  if user:
+    user_name = user.email()
+  else:
+    user_name = '-'
+
+  tok = [user_name, path, str(when)]
+  xsrf = hmac.new(_xsrf_key, digestmod=hashlib.sha1)
+  xsrf.update(':'.join(tok))
+  return base64.b64encode(str(when) + ':' + xsrf.digest())
+
+def _xsrf_check(path, xsrf):
+  if not xsrf:
+    return False
+  try:
+    when = int(base64.b64decode(xsrf).split(':', 2)[0])
+  except TypeError:
+    return False
+  except ValueError:
+    return False
+  except UnicodeEncodeError:
+    return False
+  if abs(_now() - when) > MAX_XSRF_WINDOW:
+    return False
+  return xsrf == _xsrf_sign(path, when)
+
+
+class BaseForm(django.forms.Form):
+  """A Django form which provides automatic XSRF protection,
+     assuming it is parsed/displayed by process_form()
+  """
+
+  # Name of the template the form renders itself as.
+  #
+  # Must be replaced by the subclass.
+  #
+  _template = None
+
+  xsrf = django.forms.CharField(required = False,
+                                widget = django.forms.HiddenInput)
+
+  @classmethod
+  def _init(cls, state):
+    """Obtain the initial values for the fields of the form.
+
+       Args:
+         state:  state object supplied by the caller of process_form
+       Returns:
+         dict of form constructor keywords; at minimum the key
+         'initial' must be a dict
+    """
+    return {'initial': {}}
+
+  def _pre_verify(self, get, post):
+    """Gives the form a crack at the raw post data before verification.
+
+       If this method returns an HttpResponse object, that will be
+       returned, and _save will not be called.
+    """
+    return None
+
+  def _save(self, cd, state):
+    """Processes the form data, typically saving it to the db.
+
+       Adding an error to self.errors['fieldname'] will cause
+       the form to be redisplayed, in case the save routine finds
+       problems with the submitted data and wants the user to try
+       and correct them.
+
+       Args:
+         cd:  dict of cleaned field values (same as self.cleaned_data)
+         state:  state object supplied by the caller of process_form
+    """
+    raise NotImplementedError()
+
+
+def process_form(request, form_cls, state, done, params=None):
+  """Display (or parse and process) an HTML form.
+
+     Args:
+       request:   Django request object
+       form_cls:  class object for a subclass of BaseForm
+
+       state:     any application state object, to be passed into
+                  the _init and _save methods of BaseForm
+
+       done:      a callable invoked after _save is successful;
+                  its return value is the result of this function
+
+       params:    dictional of additional parameters to pass into
+                  the Django template
+     Returns:
+       an HttpResponse (or the result of done() if _save was called)
+  """
+  if params is None:
+    params = {}
+
+  def _handle_result(result):
+    if isinstance(result, HttpResponse):
+      return result
+    elif isinstance(result, BaseForm):
+      params['form'] = result
+      return respond(request, result._template, params)
+    
+  if request.method == 'POST':
+    form = form_cls(request.POST)
+
+    if _xsrf_check(request.get_full_path(), request.POST.get('xsrf')):
+      result = form._pre_verify(request.GET, request.POST)
+      if result:
+        return _handle_result(result)
+      if form.is_valid():
+        # for form.cleaned_data to exist
+        result = form._save(form.cleaned_data, state)
+        if result:
+          return _handle_result(result)
+        if form.is_valid():
+          return done()
+    else:
+      if form.is_valid():  # this check forces cleaned_data
+        i = dict(form.cleaned_data)
+        i['xsrf'] = xsrf_for(request.get_full_path())
+        form = form_cls(initial=i)
+        form._errors = {}
+        form._errors['xsrf'] = ['Form token timed out.  Try again.']
+  else:
+    kwargs = form_cls._init(state)
+    kwargs['initial']['xsrf'] = xsrf_for(request.get_full_path())
+    form = form_cls(**kwargs)
+
+  params['form'] = form
+  return respond(request, form._template, params)
+
+
+def xsrf_for(path):
+  try:
+    return _xsrf_cache[path]
+  except KeyError:
+    pass
+  r = _xsrf_sign(path, int(_now()))
+  _xsrf_cache[path] = r
+  return r
+
+def is_xsrf_ok(request, path=None, xsrf=None):
+  if path is None:
+    path = request.get_full_path()
+  if xsrf is None:
+    xsrf = request.POST.get('xsrf')
+  return _xsrf_check(path, xsrf)
+
+def xsrf_required(func):
+  """Decorator that requires invocation by HTTP POST only,
+     and the form must have an 'xsrf' field with a valid
+     xsrf key (see xsrf_for() to make such keys).
+
+     Implies @login_required
+  """
+  def post_wrapper(request, *args, **kwds):
+    if request.method != 'POST':
+      return HttpResponse("POST request required.", status=405)
+    if not is_xsrf_ok(request):
+      return HttpResponse("Invalid xsrf signature."
+                          " Reload the prior page.", status=405)
+    return func(request, *args, **kwds)
+  return login_required(post_wrapper)
diff --git a/webapp/codereview/views.py b/webapp/codereview/views.py
new file mode 100644
index 0000000..c4eba3f
--- /dev/null
+++ b/webapp/codereview/views.py
@@ -0,0 +1,1541 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Views for Gerrit.
+
+This requires Django 0.97.pre.
+"""
+
+
+### Imports ###
+
+
+# Python imports
+import os
+import cgi
+import random
+import re
+import logging
+import binascii
+import datetime
+import hashlib
+import zlib
+from xml.etree import ElementTree
+from cStringIO import StringIO
+
+# AppEngine imports
+from google.appengine.api import mail
+from google.appengine.api import memcache
+from google.appengine.api import users
+from google.appengine.ext import db
+from google.appengine.ext.db import djangoforms
+
+# Django imports
+# TODO(guido): Don't import classes/functions directly.
+from django import forms
+from django import http
+from django.http import HttpResponse, HttpResponseRedirect
+from django.http import HttpResponseForbidden, HttpResponseNotFound
+from django.shortcuts import render_to_response
+import django.template
+from django.utils import simplejson
+from django.forms import formsets
+
+# Local imports
+from memcache import Key as MemCacheKey
+import models
+import email
+import engine
+import library
+import patching
+import fields
+import project
+import git_models
+from view_util import *
+
+
+### Constants ###
+
+MAX_ROWS = 1000
+
+
+### Helper functions ###
+
+
+def _random_bytes(n):
+  """Helper returning a string of random bytes of given length."""
+  return ''.join(map(chr, (random.randrange(256) for i in xrange(n))))
+
+
+### Request handlers ###
+
+
+def index(request):
+  """/ - Show a list of patches."""
+  if request.user is None:
+    return all(request)
+  else:
+    return mine(request)
+
+
+DEFAULT_LIMIT = 10
+
+def all(request):
+  """/all - Show a list of up to DEFAULT_LIMIT recent change."""
+  offset = request.GET.get('offset')
+  if offset:
+    try:
+      offset = int(offset)
+    except:
+      offset = 0
+    else:
+      offset = max(0, offset)
+  else:
+    offset = 0
+  limit = request.GET.get('limit')
+  if limit:
+    try:
+      limit = int(limit)
+    except:
+      limit = DEFAULT_LIMIT
+    else:
+      limit = max(1, min(limit, 100))
+  else:
+    limit = DEFAULT_LIMIT
+  query = db.GqlQuery('SELECT * FROM Change '
+                      'WHERE closed = FALSE ORDER BY modified DESC')
+  # Fetch one more to see if there should be a 'next' link
+  changes = query.fetch(limit+1, offset)
+  more = bool(changes[limit:])
+  if more:
+    del changes[limit:]
+  if more:
+    next = '/all?offset=%d&limit=%d' % (offset+limit, limit)
+  else:
+    next = ''
+  if offset > 0:
+    prev = '/all?offset=%d&limit=%d' % (max(0, offset-limit), limit)
+  else:
+    prev = ''
+  newest = ''
+  if offset > limit:
+    newest = '/all?limit=%d' % limit
+
+  _optimize_draft_counts(changes)
+  _prefetch_names(changes)
+  return respond(request, 'all.html',
+                 {'changes': changes, 'limit': limit,
+                  'newest': newest, 'prev': prev, 'next': next,
+                  'first': offset+1,
+                  'last': len(changes) > 1 and offset+len(changes) or None})
+
+
+def _optimize_draft_counts(changes):
+  """Force _num_drafts to zero for changes that are known to have no drafts.
+
+  Args:
+    changes: list of model.Change instances.
+
+  This inspects the drafts attribute of the current user's Account
+  instance, and forces the draft count to zero of those changes in the
+  list that aren't mentioned there.
+
+  If there is no current user, all draft counts are forced to 0.
+  """
+  account = models.Account.current_user_account
+  if account is None:
+    change_ids = None
+  else:
+    change_ids = account.drafts
+  for change in changes:
+    if change_ids is None or change.key().id() not in change_ids:
+      change._num_drafts = 0
+
+def _prefetch_names(changes):
+  for c in changes:
+    library.prefetch_names([c.owner])
+    library.prefetch_names(c.reviewers)
+    library.prefetch_names(c.cc)
+
+
+@login_required
+def mine(request):
+  """/mine - Show a list of changes created by the current user."""
+  request.user_to_show = request.user
+  return _show_user(request)
+
+def unclaimed_project_memcache_key(user):
+  return "user_unclaimed_projects:%s" % user.email()
+
+@login_required
+def unclaimed(request):
+  """/unclaimed - Show changes with no reviewer listed for user's selected
+  projects."""
+  def _get_unclaimed_projects(user):
+    memcache_key = unclaimed_project_memcache_key(user)
+    keys = memcache.get(memcache_key)
+    if keys is None:
+      account = models.Account.get_account_for_user(user)
+      keys = account.unclaimed_changes_projects
+      err = memcache.set(memcache_key, keys)
+    result = models.Project.get(keys)
+    if not result:
+      result = []
+    return result
+
+  user = request.user
+  changes = []
+
+  projects = _get_unclaimed_projects(request.user)
+  for project in projects:
+    c = models.gql(models.Change,
+                          ' WHERE closed = FALSE'
+                          '   AND claimed = FALSE'
+                          '   AND dest_project = :dest_project'
+                          ' ORDER BY modified DESC',
+                          dest_project=project.key()).fetch(1000)
+    if c:
+      _optimize_draft_counts(c)
+      _prefetch_names(c)
+      changes.append({
+          'name': project.name,
+          'changes': c,
+        })
+
+  vars = {
+      'projects': changes,
+    }
+
+  return respond(request, 'unclaimed.html', vars)
+
+
+@login_required
+def starred(request):
+  """/starred - Show a list of changes starred by the current user."""
+  stars = models.Account.current_user_account.stars
+  if not stars:
+    changes = []
+  else:
+    changes = [change for change in models.Change.get_by_id(stars)
+                    if change is not None]
+    _optimize_draft_counts(changes)
+    _prefetch_names(changes)
+  return respond(request, 'starred.html', {'changes': changes})
+
+
+@user_key_required
+def show_user(request):
+  """/user - Show the user's dashboard"""
+  return _show_user(request)
+
+@user_key_required
+def ajax_user_mine(request, offset_str):
+  m = _user_mine(request, request.user_to_show, int(offset_str))
+  return _respond_paged(request,'change_pagedrow.html',
+                        'change', 'mine', m)
+
+@user_key_required
+def ajax_user_review(request, offset_str):
+  m = _user_review(request, request.user_to_show, int(offset_str))
+  return _respond_paged(request,'change_pagedrow.html',
+                        'change', 'review', m)
+
+@user_key_required
+def ajax_user_closed(request, offset_str):
+  m = _user_closed(request, request.user_to_show, int(offset_str))
+  return _respond_paged(request,'change_pagedrow.html',
+                        'change', 'closed', m)
+
+def _respond_paged(request, template, new_pfx, old_pfx, vars):
+  return respond(request, template, {
+                 new_pfx + '_list': vars[old_pfx + '_list'],
+                 new_pfx + '_opos': vars[old_pfx + '_opos'],
+                 new_pfx + '_oend': vars[old_pfx + '_oend'],
+                 new_pfx + '_prev': vars[old_pfx + '_prev'],
+                 new_pfx + '_next': vars[old_pfx + '_next']
+                 })
+
+def _paginate(prefix, n, offset, q):
+  list = q.fetch(n + 1, offset - 1)
+  have = len(list)
+
+  if have == n + 1:
+    list = list[0:-1]
+    have = n
+    next = offset + n
+    if next >= 1000:
+      next = None
+  else:
+    next = None
+
+  if offset == 0:
+    prev = None
+  else:
+    prev = offset - n
+    if prev < 0:
+      prev = 0
+
+  if next:
+    last = next - 1
+  else:
+    last = offset + have - 1
+
+  for i in list:
+    i.paginate_row_type = prefix
+
+  return {prefix + '_list': list,
+          prefix + '_opos': offset,
+          prefix + '_oend': last,
+          prefix + '_prev': prev,
+          prefix + '_next': next}
+
+
+def _user_mine(request, user, offset):
+  r = _paginate('mine', 10, offset,
+    models.gql(models.Change,
+      'WHERE closed = FALSE AND owner = :1'
+      ' ORDER BY modified DESC',
+      user))
+  _optimize_draft_counts(r['mine_list'])
+  _prefetch_names(r['mine_list'])
+  return r
+
+def _user_review(request, user, offset):
+  r = _paginate('review', 10, offset,
+    models.gql(models.Change,
+      'WHERE closed = FALSE AND reviewers = :1'
+      ' ORDER BY modified DESC',
+      user.email()))
+  _optimize_draft_counts(r['review_list'])
+  _prefetch_names(r['review_list'])
+  return r
+
+def _user_closed(request, user, offset):
+  r =  _paginate('closed', 10, offset,
+    models.gql(models.Change,
+      'WHERE closed = TRUE AND owner = :1 AND modified > :2'
+      ' ORDER BY modified DESC',
+      user,
+      datetime.datetime.now() - datetime.timedelta(days=7)
+      ))
+  _optimize_draft_counts(r['closed_list'])
+  _prefetch_names(r['closed_list'])
+  return r
+
+def _show_user(request):
+  user = request.user_to_show
+
+  mine = _user_mine(request, user, 1)
+  review = _user_review(request, user, 1)
+  closed = _user_closed(request, user, 1)
+
+  vars = {'email': user.email()}
+  vars.update(mine)
+  vars.update(review)
+  vars.update(closed)
+
+  return respond(request, 'user.html', vars)
+
+
+def _get_emails(form, label):
+  """Helper to return the list of reviewers, or None for error."""
+  emails = []
+  raw_emails = form.cleaned_data.get(label)
+  if raw_emails:
+    for email in raw_emails.split(','):
+      email = email.strip().lower()
+      if email and email not in emails:
+        try:
+          email = db.Email(email)
+          if email.count('@') != 1:
+            raise db.BadValueError('Invalid email address: %s' % email)
+          head, tail = email.split('@')
+          if '.' not in tail:
+            raise db.BadValueError('Invalid email address: %s' % email)
+        except db.BadValueError, err:
+          form.errors[label] = [unicode(err)]
+          continue
+        emails.append(email)
+  return emails
+
+def _prepare_show_patchset(user, patchset):
+  if user:
+    drafts = list(models.gql(models.Comment,
+             'WHERE ANCESTOR IS :1'
+             ' AND draft = TRUE'
+             ' AND author = :2',
+             patchset, user))
+  else:
+    drafts = []
+
+  max_rows = 100
+  if len(patchset.filenames) < max_rows:
+    files = models.gql(models.Patch,
+                       'WHERE patchset = :1 ORDER BY filename',
+                        patchset).fetch(max_rows)
+    patchset.n_comments = 0
+    patchset.n_drafts = len(drafts)
+    patchset.patches = files
+
+    if drafts:
+      p_bykey = dict()
+      for p in patchset.patches:
+        p_bykey[p.key()] = p
+        p._num_drafts = 0
+        patchset.n_comments += p.num_comments
+
+      for d in drafts:
+        if d.parent_key() in p_bykey:
+          p = p_bykey[d.parent_key()]
+          p._num_drafts += 1
+    else:
+      for p in patchset.patches:
+          p._num_drafts = 0
+  else:
+    patchset.freaking_huge = True
+    patchset.patches = []
+
+
+def _restrict_lgtm(lgtm, can_approve):
+  if not can_approve:
+    if lgtm == 'lgtm':
+      return 'yes'
+    elif lgtm == 'reject':
+      return 'no'
+  return lgtm
+    
+
+def _restrict_verified(verified, can_verify):
+  if can_verify:
+    return verified
+  else:
+    return False
+
+def _map_status(rs, real_approvers, real_deniers, real_verifiers):
+  email = rs.user.email()
+  lgtm = _restrict_lgtm(rs.lgtm,
+      (email in real_approvers) or (email in real_deniers))
+  verified = _restrict_verified(rs.verified, email in real_verifiers)
+  return {
+      'user': rs.user,
+      'lgtm': lgtm,
+      'verified': verified,
+    }
+
+@change_required
+def show(request, form=None):
+  """/<change> - Show a change."""
+  change = request.change
+
+  messages = list(change.message_set.order('date'))
+  patchsets = list(change.patchset_set.order('id'))
+  if not patchsets:
+    return HttpResponse('No patchset available.')
+
+  last_patchset = patchsets[-1]
+  _prepare_show_patchset(request.user, last_patchset)
+
+  if last_patchset.patches:
+    first_patch = last_patchset.patches[0]
+  else:
+    first_patch = None
+
+  depends_on = [ r.patchset.change
+                 for r in last_patchset.revision.get_ancestors()
+                 if r.patchset ]
+  needed_by  = [ r.patchset.change
+                 for r in last_patchset.revision.get_children()
+                 if r.patchset ]
+
+  # approvals
+  review_status = change.get_review_status()
+  reviewer_status = models.Change.get_reviewer_status(review_status)
+  ready_to_submit = project.ready_to_submit(
+      change.dest_branch,
+      change.owner,
+      reviewer_status,
+      last_patchset.filenames)
+
+  # if the owner can lgtm or verify, show her too
+  author_status = {
+      'lgtm': 'lgtm' if ready_to_submit['owner_auto_lgtm'] else 'abstain',
+      'verified': ready_to_submit['owner_auto_verify']
+    }
+
+  show_dependencies = len(needed_by) > 0
+  for c in depends_on:
+    if not c.closed:
+      show_dependencies = True
+  if change.closed:
+    show_dependencies = False
+
+  can_submit = ready_to_submit['can_submit']
+  if not last_patchset.complete:
+    can_submit = False
+
+  real_approvers = ready_to_submit['real_approvers']
+  real_deniers = ready_to_submit['real_deniers']
+  real_verifiers = ready_to_submit['real_verifiers']
+
+  real_review_status = [
+      _map_status(rs, real_approvers, real_deniers, real_verifiers)
+      for rs in review_status]
+
+  # If the change isn't ready to submit, don't bother with this because
+  # they can't submit it anyway.
+  if can_submit:
+    user_can_submit = models.AccountGroup.is_user_submitter(request.user)
+  else:
+    user_can_submit = False
+
+  show_submit_button = ((not change.is_submitted)
+                        and ready_to_submit
+                        and user_can_submit)
+
+  _prefetch_names([change])
+  _prefetch_names(depends_on)
+  _prefetch_names(needed_by)
+  library.prefetch_names(map(lambda s: s.user, review_status))
+  return respond(request, 'change.html', {
+                  'change': change,
+                  'ready_to_submit': can_submit,
+                  'user_can_submit': user_can_submit,
+                  'show_submit_button': show_submit_button,
+                  'is_approved': ready_to_submit['approved'],
+                  'is_rejected': ready_to_submit['denied'],
+                  'is_verified': ready_to_submit['verified'],
+                  'author_status': author_status,
+                  'review_status': real_review_status,
+                  'depends_on': depends_on,
+                  'needed_by': needed_by,
+                  'show_dependencies': show_dependencies,
+                  'patchsets': patchsets,
+                  'messages': messages,
+                  'last_patchset': last_patchset,
+                  'first_patch': first_patch,
+                  'reply_url': '/%s/publish' % change.key().id(),
+                  'merge_url': '/%s/merge/%s' % (change.key().id(),
+                                                 last_patchset.key().id()),
+                })
+
+
+@patchset_required
+def ajax_patchset(request):
+  """/<change>/ajax_patchset/<ps> - Format one patchset."""
+  change = request.change
+  patchset = request.patchset
+
+  _prepare_show_patchset(request.user, patchset)
+  return respond(request, 'patchset.html',
+                 {'change' : request.change,
+                  'patchset' : request.patchset
+                 })
+
+
+def revision_redirect(request, hash):
+  """/r/<hash> - Redirect to a Change for this git revision, if we can."""
+  hash = hash.lower()
+  if len(hash) < 40:
+    q = models.gql(models.RevisionId,
+                   "WHERE id > :1 AND id < :2",
+                   hash, hash.ljust(40, 'z'))
+  else:
+    q = models.gql(models.RevisionId, "WHERE id=:1", hash)
+  revs = q.fetch(2)
+  count = len(revs)
+
+  if count == 1:
+    rev_id = revs[0]
+    if rev_id.patchset:
+      return HttpResponseRedirect('/%s' % rev_id.patchset.change.key().id())
+    else:
+      return respond(request, 'change_revision_unknown.html', { 'hash': hash })
+
+  if count > 0:
+    return http.HttpResponseServerError("error 500: multiple matches for hash")
+
+  if len(hash) < 40:
+    q = models.gql(git_models.ReceivedBundle,
+                   "WHERE contained_objects > :1"
+                   "  AND contained_objects < :2",
+                   hash, hash.ljust(40, 'z'))
+  else:
+    q = models.gql(git_models.ReceivedBundle,
+                   "WHERE contained_objects=:1",
+                   hash)
+  rb = q.get()
+  if rb:
+    return respond(request, 'change_revision_uploading.html',
+                   { 'hash': hash })
+  else:
+    return respond(request, 'change_revision_unknown.html',
+                   { 'hash': hash },
+                   status = 404)
+
+
+class EditChangeForm(BaseForm):
+  _template = 'edit.html'
+
+  reviewers = forms.CharField(required=False,
+                              max_length=1000,
+                              widget=forms.TextInput(attrs={'size': 60}))
+  cc = forms.CharField(required=False,
+                       max_length=1000,
+                       label = 'CC',
+                       widget=forms.TextInput(attrs={'size': 60}))
+  closed = forms.BooleanField(required=False)
+
+  @classmethod
+  def _init(cls, change):
+    return {'initial': {'reviewers': ', '.join(change.reviewers),
+            'cc': ', '.join(change.cc),
+            'closed': change.closed}}
+
+  def _save(self, cd, change):
+    change.closed = cd['closed']
+    change.set_reviewers(_get_emails(self, 'reviewers'))
+    change.cc = _get_emails(self, 'cc')
+    change.put()
+
+@change_owner_required
+def edit(request):
+  """/<change>/edit - Edit a change."""
+  change = request.change
+  id = change.key().id()
+  def done():
+    return HttpResponseRedirect('/%s' % id)
+  return process_form(request, EditChangeForm, change, done,
+                      {'change': change,
+                       'del_url': '/%s/delete' % id})
+
+
+@change_owner_required
+@xsrf_required
+def delete(request):
+  """/<change>/delete - Delete a change.  There is no way back."""
+  change = request.change
+
+  for ps in models.PatchSet.gql('WHERE ANCESTOR IS :1', change):
+    for rev in models.RevisionId.get_for_patchset(ps):
+      rev.patchset = None
+      rev.put()
+
+  tbd = []
+  for cls in [models.Patch,
+              models.PatchSet,
+              models.PatchSetFilenames,
+              models.Comment,
+              models.Message,
+              models.ReviewStatus]:
+    tbd += cls.gql('WHERE ANCESTOR IS :1', change).fetch(50)
+    if len(tbd) > 100:
+      db.delete(tbd)
+      return respond(request, 'delete_loop.html',
+                     {'change': change,
+                      'del_url': '/%s/delete' % id})
+
+  tbd += [change]
+  db.delete(tbd)
+  return HttpResponseRedirect('/mine')
+
+
+@xsrf_required
+@patchset_required
+def merge(request):
+  """/<change>/merge/<patchset> - Submit a change for merge."""
+  change = request.change
+  patchset = request.patchset
+  patchset.patches = list(patchset.patch_set.order('filename'))
+
+  if not models.AccountGroup.is_user_submitter(request.user):
+    # The button shouldn't exist if they can't do it, if they somehow
+    # managed to get here, just send them back to the change
+    # (which ought to have the button gone this time).
+    return HttpResponseRedirect('/%d' % change.key().id())
+
+  # approvals
+  reviewer_status = models.Change.get_reviewer_status(
+      change.get_review_status())
+  ready_to_submit = project.ready_to_submit(
+      change.dest_branch,
+      change.owner,
+      reviewer_status,
+      patchset.filenames)
+
+  if not ready_to_submit['can_submit']:
+    # Again, the button shouldn't have been there in this case.
+    # Just send 'em back to the change page.
+    return HttpResponseRedirect('/%d' % change.key().id())
+
+  try:
+    change.submit_merge(patchset)
+    change.put()
+  except models.InvalidSubmitMergeException, why:
+    return HttpResponseForbidden(str(why))
+  return HttpResponseRedirect('/mine')
+
+
+@patch_required
+def patch(request):
+  """/<change>/patch/<patchset>/<patch> - View a raw patch."""
+  return patch_helper(request)
+
+
+def patch_helper(request, nav_type='patch'):
+  """Returns a unified diff.
+
+  Args:
+    request: Django Request object.
+    nav_type: the navigation used in the url (i.e. patch/diff/diff2).  Normally
+      the user looks at either unified or side-by-side diffs at one time, going
+      through all the files in the same mode.  However, if side-by-side is not
+      available for some files, we temporarly switch them to unified view, then
+      switch them back when we can.  This way they don't miss any files.
+
+  Returns:
+    Whatever respond() returns.
+  """
+  _add_next_prev(request.patchset, request.patch)
+  request.patch.nav_type = nav_type
+  parsed_lines = patching.ParsePatchToLines(request.patch.patch_lines)
+  if parsed_lines is None:
+    return HttpResponseNotFound('Can\'t parse the patch')
+  rows = engine.RenderUnifiedTableRows(request, parsed_lines)
+  return respond(request, 'patch.html',
+                 {'patch': request.patch,
+                  'patchset': request.patchset,
+                  'rows': rows,
+                  'change': request.change})
+
+
+@patch_required
+def download_patch(request):
+  """/download/change<change>_<patchset>_<patch>.diff - Download patch."""
+  return HttpResponse(request.patch.patch_text, content_type='text/plain')
+
+
+def _get_context_for_user(request):
+  """Returns the context setting for a user.
+
+  The value is validated against models.CONTEXT_CHOICES.
+  If an invalid value is found, the value is overwritten with
+  models.DEFAULT_CONTEXT.
+  """
+  if request.user:
+    account = models.Account.current_user_account
+    default_context = account.default_context
+  else:
+    default_context = models.DEFAULT_CONTEXT
+  try:
+    context = int(request.GET.get("context", default_context))
+  except ValueError:
+    context = default_context
+  if context not in models.CONTEXT_CHOICES:
+    context = models.DEFAULT_CONTEXT
+  return context
+
+
+@patch_required
+def diff(request):
+  """/<change>/diff/<patchset>/<patch> - View a patch as a side-by-side diff"""
+  patchset = request.patchset
+  patch = request.patch
+
+  context = _get_context_for_user(request)
+  rows = _get_diff_table_rows(request, patch, context)
+  if isinstance(rows, HttpResponseNotFound):
+    return rows
+
+  _add_next_prev(patchset, patch)
+  return respond(request, 'diff.html',
+                 {'change': request.change, 'patchset': patchset,
+                  'patch': patch, 'rows': rows,
+                  'context': context, 'context_values': models.CONTEXT_CHOICES})
+
+
+def _get_diff_table_rows(request, patch, context):
+  """Helper function that returns rendered rows for a patch"""
+  chunks = patching.ParsePatchToChunks(patch.patch_lines,
+                                       patch.filename)
+  if chunks is None:
+    return HttpResponseNotFound('Can\'t parse the patch')
+
+  return list(engine.RenderDiffTableRows(request, patch.old_lines,
+                                         chunks, patch,
+                                         context=context))
+
+
+@patch_required
+def diff_skipped_lines(request, id_before, id_after, where):
+  """/<change>/diff/<patchset>/<patch> - Returns a fragment of skipped lines"""
+  patchset = request.patchset
+  patch = request.patch
+
+  # TODO: allow context = None?
+  rows = _get_diff_table_rows(request, patch, 10000)
+  if isinstance(rows, HttpResponseNotFound):
+    return rows
+  return _get_skipped_lines_response(rows, id_before, id_after, where)
+
+
+def _get_skipped_lines_response(rows, id_before, id_after, where):
+  """Helper function that creates a Response object for skipped lines"""
+  response_rows = []
+  id_before = int(id_before)
+  id_after = int(id_after)
+
+  if where == "b":
+    rows.reverse()
+
+  for row in rows:
+    m = re.match('^<tr( name="hook")? id="pair-(?P<rowcount>\d+)">', row)
+    if m:
+      curr_id = int(m.groupdict().get("rowcount"))
+      if curr_id < id_before or curr_id > id_after:
+        continue
+      if where  == "b" and curr_id <= id_after:
+        response_rows.append(row)
+      elif where == "t" and curr_id >= id_before:
+        response_rows.append(row)
+      if len(response_rows) >= 10:
+        break
+
+  # Create a usable structure for the JS part
+  response = []
+  dom = ElementTree.parse(StringIO('<div>%s</div>' % "".join(response_rows)))
+  for node in dom.getroot().getchildren():
+    content = "\n".join([ElementTree.tostring(x) for x in node.getchildren()])
+    response.append([node.items(), content])
+  return HttpResponse(simplejson.dumps(response))
+
+
+def _get_diff2_data(request, ps_left_id, ps_right_id, patch_id, context):
+  """Helper function that returns objects for diff2 views"""
+  ps_left = models.PatchSet.get_by_id(int(ps_left_id), parent=request.change)
+  if ps_left is None:
+    return HttpResponseNotFound('No patch set exists with that id (%s)' %
+                                ps_left_id)
+  ps_left.change = request.change
+  ps_right = models.PatchSet.get_by_id(int(ps_right_id), parent=request.change)
+  if ps_right is None:
+    return HttpResponseNotFound('No patch set exists with that id (%s)' %
+                                ps_right_id)
+  ps_right.change = request.change
+  patch_right = models.Patch.get_patch(ps_right, patch_id)
+  if patch_right is None:
+    return HttpResponseNotFound('No patch exists with that id (%s/%s)' %
+                                (ps_right_id, patch_id))
+  patch_right.patchset = ps_right
+  # Now find the corresponding patch in ps_left
+  patch_left = models.Patch.gql('WHERE patchset = :1 AND filename = :2',
+                                ps_left, patch_right.filename).get()
+  if patch_left is None:
+    return HttpResponseNotFound(
+        "Patch set %s doesn't have a patch with filename %s" %
+        (ps_left_id, patch_right.filename))
+
+  rows = engine.RenderDiff2TableRows(request,
+                                     patch_left.new_lines, patch_left,
+                                     patch_right.new_lines, patch_right,
+                                     context=context)
+  rows = list(rows)
+  if rows and rows[-1] is None:
+    del rows[-1]
+
+  return dict(patch_left=patch_left, ps_left=ps_left,
+              patch_right=patch_right, ps_right=ps_right,
+              rows=rows)
+
+
+@change_required
+def diff2(request, ps_left_id, ps_right_id, patch_id):
+  """/<change>/diff2/... - View the delta between two different patch sets."""
+  context = _get_context_for_user(request)
+  data = _get_diff2_data(request, ps_left_id, ps_right_id, patch_id, context)
+  if isinstance(data, HttpResponseNotFound):
+    return data
+
+  _add_next_prev(data["ps_right"], data["patch_right"])
+  return respond(request, 'diff2.html',
+                 {'change': request.change,
+                  'ps_left': data["ps_left"],
+                  'patch_left': data["patch_left"],
+                  'ps_right': data["ps_right"],
+                  'patch_right': data["patch_right"],
+                  'rows': data["rows"],
+                  'patch_id': patch_id,
+                  'context': context,
+                  'context_values': models.CONTEXT_CHOICES,
+                  })
+
+
+@change_required
+def diff2_skipped_lines(request, ps_left_id, ps_right_id, patch_id,
+                        id_before, id_after, where):
+  """/<change>/diff2/... - Returns a fragment of skipped lines"""
+  data = _get_diff2_data(request, ps_left_id, ps_right_id, patch_id, 10000)
+  if isinstance(data, HttpResponseNotFound):
+    return data
+  return _get_skipped_lines_response(data["rows"], id_before, id_after, where)
+
+
+def _add_next_prev(patchset, patch):
+  """Helper to add .next and .prev attributes to a patch object."""
+  patch.prev = patch.next = None
+  patches = list(models.Patch.gql("WHERE patchset = :1 ORDER BY filename",
+                                  patchset))
+  patchset.patches = patches  # Required to render the jump to select.
+  last = None
+  for p in patches:
+    if last is not None:
+      if p.filename == patch.filename:
+        patch.prev = last
+      elif last.filename == patch.filename:
+        patch.next = p
+        break
+    last = p
+
+
+def inline_draft(request):
+  """/inline_draft - Ajax handler to submit an in-line draft comment.
+
+  This wraps _inline_draft(); all exceptions are logged and cause an
+  abbreviated response indicating something went wrong.
+  """
+  if request.method != 'POST':
+    return HttpResponse("POST request required.", status=405)
+  try:
+    return _inline_draft(request)
+  except Exception, err:
+    s = ''
+    for k,v in request.POST.iteritems():
+      s += '\n%s=%s' % (k, v)
+    logging.exception('Exception in inline_draft processing:%s' % s)
+    return HttpResponse('<font color="red">'
+                        'Please report error "%s".'
+                        '</font>'
+                        % err.__class__.__name__)
+
+
+def _inline_draft(request):
+  """Helper to submit an in-line draft comment.
+  """
+  # Don't use @login_required; JS doesn't understand redirects.
+  if not request.user:
+    return HttpResponse('<font color="red">Not logged in</font>')
+
+  if not is_xsrf_ok(request):
+    return HttpResponse('<font color="red">'
+                        'Stale xsrf signature.<br />'
+                        'Please reload the page and try again.'
+                        '</font>')
+
+  snapshot = request.POST.get('snapshot')
+  assert snapshot in ('old', 'new'), repr(snapshot)
+  left = (snapshot == 'old')
+  side = request.POST.get('side')
+  assert side in ('a', 'b'), repr(side)  # Display left (a) or right (b)
+  change_id = int(request.POST['change'])
+  change = models.Change.get_by_id(change_id)
+  assert change  # XXX
+  patchset_id = request.POST.get('patchset') or request.POST[side == 'a' and 'ps_left' or 'ps_right']
+  patchset = models.PatchSet.get_by_id(int(patchset_id), parent=change)
+  assert patchset  # XXX
+  patch_id = request.POST.get('patch') or request.POST[side == 'a' and 'patch_left' or 'patch_right']
+  patch = models.Patch.get_patch(patchset, patch_id)
+  assert patch  # XXX
+  text = request.POST.get('text')
+  lineno = int(request.POST['lineno'])
+  message_id = request.POST.get('message_id')
+  comment = None
+  if message_id:
+    comment = models.Comment.get_by_key_name(message_id, parent=patch)
+    if comment is None or not comment.draft or comment.author != request.user:
+      comment = None
+      message_id = None
+  if not message_id:
+    # Prefix with 'z' to avoid key names starting with digits.
+    message_id = 'z' + binascii.hexlify(_random_bytes(16))
+
+  if not text.rstrip():
+    if comment is not None:
+      assert comment.draft and comment.author == request.user
+      comment.delete()  # Deletion
+      comment = None
+      # Re-query the comment count.
+      models.Account.current_user_account.update_drafts(change)
+  else:
+    if comment is None:
+      comment = models.Comment(
+                  patch=patch,
+                  key_name=message_id,
+                  parent=patch)
+    comment.lineno = lineno
+    comment.left = left
+    comment.author = request.user
+    comment.text = db.Text(text)
+    comment.message_id = message_id
+    comment.put()
+    # The actual count doesn't matter, just that there's at least one.
+    models.Account.current_user_account.update_drafts(change, 1)
+
+  query = models.Comment.gql(
+      'WHERE patch = :patch AND lineno = :lineno AND left = :left '
+      'ORDER BY date',
+      patch=patch, lineno=lineno, left=left)
+  comments = list(c for c in query if not c.draft or c.author == request.user)
+  if comment is not None and comment.author is None:
+    # Show anonymous draft even though we don't save it
+    comments.append(comment)
+  if not comments:
+    return HttpResponse(' ')
+  for c in comments:
+    c.complete(patch)
+  return render_to_response('inline_comment.html',
+                            {'inline_draft_url': '/inline_draft',
+                             'user': request.user,
+                             'patch': patch,
+                             'patchset': patchset,
+                             'change': change,
+                             'comments': comments,
+                             'lineno': lineno,
+                             'snapshot': snapshot,
+                             'side': side})
+
+
+class PublishCommentsForm(BaseForm):
+  _template = 'publish.html'
+
+  reviewers = forms.CharField(required=False,
+                              max_length=1000,
+                              widget=forms.TextInput(attrs={'size': 60}))
+  cc = forms.CharField(required=False,
+                       max_length=1000,
+                       label = 'CC',
+                       widget=forms.TextInput(attrs={'size': 60}))
+  send_mail = forms.BooleanField(required=False)
+  message = forms.CharField(required=False,
+                            max_length=10000,
+                            widget=forms.Textarea(attrs={'cols': 60}))
+
+  lgtm = forms.CharField(label='Code review')
+  verified = forms.BooleanField(required=False,
+                                label='Verified')
+
+
+
+  def __init__(self, *args, **kwargs):
+    is_initial = kwargs.pop('is_initial', False)
+    self.user_can_approve = kwargs.pop('user_can_approve', False)
+    self.user_can_verify = kwargs.pop('user_can_verify', False)
+    self.user_is_owner = kwargs.pop('user_is_owner', False)
+
+    BaseForm.__init__(self, *args, **kwargs)
+
+    if is_initial:
+      # only show the available lgtm options
+      lgtm_field = self.fields.get("lgtm")
+      if self.user_can_approve and not self.user_is_owner:
+        lgtm_field.widget = forms.RadioSelect(choices=models.LGTM_CHOICES)
+      else:
+        lgtm_field.widget = forms.RadioSelect(
+               choices=models.LIMITED_LGTM_CHOICES)
+      
+      # only show verified if the user can do it
+      if not self.user_can_verify or self.user_is_owner:
+        del self.fields['verified']
+
+  @classmethod
+  def _init(cls, state):
+    request, change = state
+    user = request.user
+
+    reviewers = list(change.reviewers)
+    cc = list(change.cc)
+
+    if user != change.owner and user.email() not in reviewers:
+      reviewers.append(user.email())
+      if user.email() in cc:
+        cc.remove(user.email())
+
+    (user_can_approve,user_can_verify) = project.user_can_approve(
+          request.user, change)
+
+    # Pick the proper review / verify status
+    review = change.get_review_status(user)
+    if review:
+      lgtm = _restrict_lgtm(review.lgtm, user_can_approve)
+      verified = review.verified
+    else:
+      lgtm = 'abstain'
+      verified = False
+
+    return {'initial': {
+              'reviewers': ', '.join(reviewers),
+              'cc': ', '.join(cc),
+              'send_mail': True,
+              'lgtm': lgtm,
+              'verified': verified
+              },
+            'user_can_approve': user_can_approve,
+            'user_can_verify': user_can_verify,
+            'user_is_owner': user == change.owner,
+            'is_initial': True,
+          }
+
+  def _save(self, cd, state):
+    request, change = state
+    user = request.user
+
+    tbd, comments = _get_draft_comments(request, change)
+    reviewers = _get_emails(self, 'reviewers')
+    cc = _get_emails(self, 'cc')
+    (self.user_can_approve,self.user_can_verify) = project.user_can_approve(
+          request.user, change)
+    lgtm = _restrict_lgtm(cd.get('lgtm', ''), self.user_can_approve)
+    verified = _restrict_verified(cd.get('verified', False),
+          self.user_can_verify)
+
+    if user != change.owner:
+      # Owners shouldn't have their own review status as it
+      # is implied that 'lgtm' and verified by them.
+      #
+      review_status = _update_review_status(change,
+                                            user,
+                                            lgtm,
+                                            verified)
+      tbd.append(review_status)
+
+    change.set_reviewers(reviewers)
+    change.cc = cc
+    change.update_comment_count(len(comments))
+
+    msg = _make_comment_message(request, change, lgtm, verified,
+                        cd['message'],
+                        comments,
+                        cd['send_mail'])
+    tbd.append(msg)
+    tbd.append(change)
+
+    while tbd:
+      db.put(tbd[:50])
+      tbd = tbd[50:]
+    models.Account.current_user_account.update_drafts(change, 0)
+
+@change_required
+@login_required
+def publish(request):
+  """ /<change>/publish - Publish draft comments and send mail."""
+  change = request.change
+
+  tbd, comments = _get_draft_comments(request, change, True)
+  preview = _get_draft_details(request, comments)
+
+  def done():
+    return HttpResponseRedirect('/%s' % change.key().id())
+  return process_form(request, PublishCommentsForm, (request, change), done,
+                      {'change': change,
+                       'preview' : preview})
+
+
+def _update_review_status(change, user, lgtm, verified):
+  """Creates / updates the ReviewStatus for a user, returns that object."""
+  review = change.set_review_status(user)
+  review.lgtm = lgtm
+  review.verified = verified
+  return review
+
+
+
+def _encode_safely(s):
+  """Helper to turn a unicode string into 8-bit bytes."""
+  if isinstance(s, unicode):
+    s = s.encode('utf-8')
+  return s
+
+
+def _get_draft_comments(request, change, preview=False):
+  """Helper to return objects to put() and a list of draft comments.
+
+  If preview is True, the list of objects to put() is empty to avoid changes
+  to the datastore.
+
+  Args:
+    request: Django Request object.
+    change: Change instance.
+    preview: Preview flag (default: False).
+
+  Returns:
+    2-tuple (put_objects, comments).
+  """
+  comments = []
+  tbd = []
+  dps = dict()
+
+  # XXX Should request all drafts for this change once, now we can.
+  for patchset in change.patchset_set.order('id'):
+    ps_comments = list(models.Comment.gql(
+        'WHERE ANCESTOR IS :1 AND author = :2 AND draft = TRUE',
+        patchset, request.user))
+    if ps_comments:
+      patches = dict((p.key(), p) for p in patchset.patch_set)
+      for p in patches.itervalues():
+        p.patchset = patchset
+      for c in ps_comments:
+        c.draft = False
+        # XXX Using internal knowledge about db package: the key for
+        # reference property foo is stored as _foo.
+        pkey = getattr(c, '_patch', None)
+        if pkey in patches:
+          patch = patches[pkey]
+          c.patch = patch
+        if pkey not in dps:
+          dps[pkey] = c.patch
+        c.patch.update_comment_count(1)
+      if not preview:
+        tbd += ps_comments
+      ps_comments.sort(key=lambda c: (c.patch.filename, not c.left,
+                                      c.lineno, c.date))
+      comments += ps_comments
+  if not preview:
+    tbd += dps.values()
+  return tbd, comments
+
+FILE_LINE = '======================================================================'
+COMMENT_LINE = '------------------------------'
+
+def _get_draft_details(request, comments):
+  """Helper to display comments with context in the email message."""
+  last_key = None
+  output = []
+  linecache = {}  # Maps (c.patch.filename, c.left) to list of lines
+  for c in comments:
+    if (c.patch.filename, c.left) != last_key:
+      if not last_key is None:
+        output.append('%s\n' % FILE_LINE)
+      url = request.build_absolute_uri('/%d/diff/%d/%s' %
+                                       (request.change.key().id(),
+                                        c.patch.patchset.key().id(),
+                                        c.patch.id))
+      output.append('\n%s\n%s\nFile %s:' % (FILE_LINE, url, c.patch.filename))
+      last_key = (c.patch.filename, c.left)
+      patch = c.patch
+      if c.left:
+        linecache[last_key] = patch.old_lines
+      else:
+        linecache[last_key] = patch.new_lines
+    file_lines = linecache.get(last_key, ())
+    context = ''
+    if 1 <= c.lineno <= len(file_lines):
+      context = file_lines[c.lineno - 1].strip()
+    url = request.build_absolute_uri('/%d/diff/%d/%s#%scode%d' %
+                                     (request.change.key().id(),
+                                      c.patch.patchset.key().id(),
+                                      c.patch.id,
+                                      c.left and "old" or "new",
+                                      c.lineno))
+    output.append('%s\nLine %d: %s\n%s'  % (COMMENT_LINE, c.lineno,
+                                                context, c.text.rstrip()))
+  if not last_key is None:
+    output.append('%s\n' % FILE_LINE)
+  return '\n'.join(output)
+
+def _make_comment_message(request, change, lgtm, verified, message,
+                  comments=None, send_mail=False):
+  """Helper to create a Message instance and optionally send an email."""
+  # Decide who should receive mail
+  my_email = db.Email(request.user.email())
+  to = [db.Email(change.owner.email())] + change.reviewers
+  cc = change.cc[:]
+  reply_to = to + cc
+  if my_email in to and len(to) > 1:  # send_mail() wants a non-empty to list
+    to.remove(my_email)
+  if my_email in cc:
+    cc.remove(my_email)
+  subject = email.make_change_subject(change)
+  if comments:
+    details = _get_draft_details(request, comments)
+  else:
+    details = ''
+  prefix = ''
+  if lgtm:
+    prefix = prefix + [y for (x,y) in models.LGTM_CHOICES
+                       if x == lgtm][0] + '\n'
+  if verified:
+    prefix = prefix + 'Verified.\n'
+  if prefix:
+    prefix = prefix + '\n'
+  message = message.replace('\r\n', '\n')
+  message = prefix + message
+  text = ((message.strip() + '\n\n' + details.strip())).strip()
+  msg = models.Message(change=change,
+                       subject=subject,
+                       sender=my_email,
+                       recipients=reply_to,
+                       text=db.Text(text),
+                       parent=change)
+
+  if send_mail:
+    to_users = set([change.owner] + change.reviewers + cc)
+    template_args = {
+        'message': message,
+        'details': details,
+      }
+    email.send_change_message(request, change,
+                              'mails/comment.txt', template_args)
+
+  return msg
+
+
+@xsrf_required
+@posted_change_required
+def star(request):
+  account = models.Account.current_user_account
+  if account.stars is None:
+    account.stars = []
+  id = request.change.key().id()
+  if id not in account.stars:
+    account.stars.append(id)
+    account.put()
+  return respond(request, 'change_star.html', {'change': request.change})
+
+
+@xsrf_required
+@posted_change_required
+def unstar(request):
+  account = models.Account.current_user_account
+  if account.stars is None:
+    account.stars = []
+  id = request.change.key().id()
+  if id in account.stars:
+    account.stars[:] = [i for i in account.stars if i != id]
+    account.put()
+  return respond(request, 'change_star.html', {'change': request.change})
+
+
+@gae_admin_required
+def download_bundle(request, bundle_id, segment_id):
+  """/download/bundle(\d+)_(\d+) - get a bundle segment"""
+  rb = git_models.ReceivedBundle.get_by_id(int(bundle_id))
+  if not rb:
+    return HttpResponseNotFound('No bundle exists with that id (%s)' % bundle_id)
+  seg = rb.get_segment(int(segment_id))
+  if not seg:
+    return HttpResponseNotFound('No segment %s in bundle %s' % (segment_id,bundle_id))
+  return HttpResponse(seg.bundle_data,
+                      content_type='application/x-git-bundle-segment')
+
+
+### Administration ###
+
+@project_owner_or_admin_required
+def admin(request):
+  """/admin - user & other settings"""
+  return respond(request, 'admin.html', {})
+
+@gae_admin_required
+def admin_settings(request):
+  settings = models.Settings.get_settings()
+  return respond(request, 'admin_settings.html', {
+            'settings': settings,
+            'from_email_test_xsrf': xsrf_for('/admin/settings/from_email_test')
+          })
+
+class AdminSettingsAnalyticsForm(BaseForm):
+  _template = 'admin_settings_analytics.html'
+
+  analytics = forms.CharField(required=False, max_length=20,
+                              widget=forms.TextInput(attrs={'size': 20}))
+
+  @classmethod
+  def _init(cls, state):
+    settings = models.Settings.get_settings()
+    return {'initial': {
+                'analytics': settings.analytics,
+              }
+            }
+
+  def _save(self, cd, change):
+    settings = models.Settings.get_settings()
+    settings.analytics = cd['analytics']
+    settings.put()
+
+@gae_admin_required
+def admin_settings_analytics(request):
+  def done():
+    return HttpResponseRedirect('/admin/settings')
+  return process_form(request, AdminSettingsAnalyticsForm, None, done)
+
+class AdminSettingsFromEmailForm(BaseForm):
+  _template = 'admin_settings_from_email.html'
+
+  from_email = forms.CharField(required=False,
+                              max_length=60,
+                              widget=forms.TextInput(attrs={'size': 60}))
+
+  @classmethod
+  def _init(cls, state):
+    settings = models.Settings.get_settings()
+    return {'initial': {
+                'from_email': settings.from_email,
+              }
+            }
+
+  def _save(self, cd, change):
+    settings = models.Settings.get_settings()
+    settings.from_email = cd['from_email']
+    settings.put()
+
+@gae_admin_required
+def admin_settings_from_email(request):
+  def done():
+    return HttpResponseRedirect('/admin/settings')
+  return process_form(request, AdminSettingsFromEmailForm, None, done)
+
+@gae_admin_required
+def admin_settings_from_email_test(request):
+  if request.method == 'POST':
+    if is_xsrf_ok(request, xsrf=request.POST.get('xsrf')):
+      address = email.get_default_sender()
+      try:
+        mail.check_email_valid(address, 'blah')
+        email.send(None, [models.Account.current_user_account], 'test',
+                              'mails/from_email_test.txt', None)
+        status = 'email sent'
+      except mail.InvalidEmailError:
+        status = 'invalid email address'
+      return respond(request, 'admin_settings_from_email_test.html', {
+                  'status': status,
+                  'address': address
+                })
+  return HttpResponse('<font color="red">Ich don\'t think so!</font>')
+
+
+
+### User Profiles ###
+
+def validate_real_name(real_name):
+  """Returns None if real_name is fine and an error message otherwise."""
+  if not real_name:
+    return 'Name cannot be empty.'
+  elif real_name == 'me':
+    return 'Of course, you are what you are.  But \'me\' is for everyone.'
+  else:
+    return None
+
+
+@user_key_required
+def user_popup(request):
+  """/user_popup - Pop up to show the user info."""
+  try:
+    user = request.user_to_show
+    def gen():
+      account = models.Account.get_account_for_user(user)
+      return render_to_response('user_popup.html', {'account': account})
+    return MemCacheKey('user_popup:' + user.email(), 300).get(gen)
+  except Exception, err:
+    logging.exception('Exception in user_popup processing:')
+    return HttpResponse(
+      '<font color="red">Error: %s; please report!</font>'
+      % err.__class__.__name__)
+
+
+class AdminDataStoreDeleteForm(BaseForm):
+  _template = 'admin_datastore_delete.html'
+
+  really = forms.CharField(required=True)
+
+  def _save(self, cd, request):
+    if cd['really'] != 'DELETE EVERYTHING':
+      return self
+
+    max_cnt = 50
+    rm = []
+    specials = []
+    for cls in [models.ApprovalRight,
+                models.Project,
+                models.Branch,
+                models.RevisionId,
+                models.BuildAttempt,
+                models.Change,
+                models.PatchSetFilenames,
+                models.PatchSet,
+                models.Message,
+                models.DeltaContent,
+                models.Patch,
+                models.Comment,
+                models.Bucket,
+                models.ReviewStatus,
+                models.Account,
+                models.AccountGroup,
+                git_models.ReceivedBundleSegment,
+                git_models.ReceivedBundle,
+               ]:
+      all = cls.all().fetch(max_cnt)
+      if cls == models.Account:
+        for a in all:
+          if a.key() == request.account.key():
+            specials.append(a)
+          else:
+            rm.append(a)
+      elif cls == models.AccountGroup:
+        for a in all:
+          if a.is_auto_group:
+            specials.append(a)
+          else:
+            rm.append(a)
+      else:
+        rm.extend(all)
+      if len(rm) >= max_cnt:
+        break
+
+    if rm:
+      # Delete this block of data and continue via
+      # a JavaScript reload in the browser.
+      #
+      db.delete(rm)
+      return self
+
+    # We are done with the bulk of the content, but we need
+    # to clean up a few special objects.
+    #
+    library._user_cache.clear()
+    models.Settings._Key.clear()
+
+    specials.extend(models.Settings.all().fetch(100))
+    db.delete(specials)
+    return None
+
+@gae_admin_required
+def admin_datastore_delete(request):
+  def done():
+    return HttpResponseRedirect('/')
+  return process_form(request, AdminDataStoreDeleteForm, request, done)
+
+
+class AdminDataStoreUpgradeForm(BaseForm):
+  _template = 'admin_datastore_upgrade.html'
+
+  really = forms.CharField(required=True)
+
+  def _save(self, cd, request):
+    if cd['really'] != 'UPGRADE':
+      return self
+    return None
+
+@gae_admin_required
+def admin_datastore_upgrade(request):
+  def done():
+    return HttpResponseRedirect('/')
+  return process_form(request, AdminDataStoreUpgradeForm, request, done)
diff --git a/webapp/django/__init__.py b/webapp/django/__init__.py
new file mode 100644
index 0000000..d0f42e5
--- /dev/null
+++ b/webapp/django/__init__.py
@@ -0,0 +1,9 @@
+VERSION = (1, 0, 'beta_1')
+
+def get_version():
+    "Returns the version as a human-format string."
+    v = '.'.join([str(i) for i in VERSION[:-1]])
+    if VERSION[-1]:
+        from django.utils.version import get_svn_revision
+        v = '%s-%s-%s' % (v, VERSION[-1], get_svn_revision())
+    return v
diff --git a/webapp/django/bin/__init__.py b/webapp/django/bin/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/bin/__init__.py
diff --git a/webapp/django/bin/compile-messages.py b/webapp/django/bin/compile-messages.py
new file mode 100755
index 0000000..0deaf6a
--- /dev/null
+++ b/webapp/django/bin/compile-messages.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+if __name__ == "__main__":
+    import sys
+    name = sys.argv[0]
+    args = ' '.join(sys.argv[1:])
+    print >> sys.stderr, "%s has been moved into django-admin.py" % name
+    print >> sys.stderr, 'Please run "django-admin.py compilemessages %s" instead.'% args
+    print >> sys.stderr
+    sys.exit(1)
+
diff --git a/webapp/django/bin/daily_cleanup.py b/webapp/django/bin/daily_cleanup.py
new file mode 100644
index 0000000..c9f4cb9
--- /dev/null
+++ b/webapp/django/bin/daily_cleanup.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python
+
+"""
+Daily cleanup job.
+
+Can be run as a cronjob to clean out old data from the database (only expired
+sessions at the moment).
+"""
+
+from django.core import management
+
+if __name__ == "__main__":
+    management.call_command('cleanup')
diff --git a/webapp/django/bin/django-admin.py b/webapp/django/bin/django-admin.py
new file mode 100755
index 0000000..f518cdc
--- /dev/null
+++ b/webapp/django/bin/django-admin.py
@@ -0,0 +1,5 @@
+#!/usr/bin/env python
+from django.core import management
+
+if __name__ == "__main__":
+    management.execute_from_command_line()
diff --git a/webapp/django/bin/make-messages.py b/webapp/django/bin/make-messages.py
new file mode 100755
index 0000000..1c84416
--- /dev/null
+++ b/webapp/django/bin/make-messages.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+if __name__ == "__main__":
+    import sys
+    name = sys.argv[0]
+    args = ' '.join(sys.argv[1:])
+    print >> sys.stderr, "%s has been moved into django-admin.py" % name
+    print >> sys.stderr, 'Please run "django-admin.py makemessages %s" instead.'% args
+    print >> sys.stderr
+    sys.exit(1)
+
diff --git a/webapp/django/bin/profiling/__init__.py b/webapp/django/bin/profiling/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/bin/profiling/__init__.py
diff --git a/webapp/django/bin/profiling/gather_profile_stats.py b/webapp/django/bin/profiling/gather_profile_stats.py
new file mode 100644
index 0000000..0fd2b7f
--- /dev/null
+++ b/webapp/django/bin/profiling/gather_profile_stats.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+
+"""
+gather_profile_stats.py /path/to/dir/of/profiles
+
+Note that the aggregated profiles must be read with pstats.Stats, not
+hotshot.stats (the formats are incompatible)
+"""
+
+from hotshot import stats
+import pstats
+import sys, os
+
+def gather_stats(p):
+    profiles = {}
+    for f in os.listdir(p):
+        if f.endswith('.agg.prof'):
+            path = f[:-9]
+            prof = pstats.Stats(os.path.join(p, f))
+        elif f.endswith('.prof'):
+            bits = f.split('.')
+            path = ".".join(bits[:-3])
+            prof = stats.load(os.path.join(p, f))
+        else:
+            continue
+        print "Processing %s" % f
+        if path in profiles:
+            profiles[path].add(prof)
+        else:
+            profiles[path] = prof
+        os.unlink(os.path.join(p, f))
+    for (path, prof) in profiles.items():
+        prof.dump_stats(os.path.join(p, "%s.agg.prof" % path))
+    
+if __name__ == '__main__':
+    gather_stats(sys.argv[1])
diff --git a/webapp/django/bin/unique-messages.py b/webapp/django/bin/unique-messages.py
new file mode 100755
index 0000000..c601a9e
--- /dev/null
+++ b/webapp/django/bin/unique-messages.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+
+import os
+import sys
+
+def unique_messages():
+    basedir = None
+
+    if os.path.isdir(os.path.join('conf', 'locale')):
+        basedir = os.path.abspath(os.path.join('conf', 'locale'))
+    elif os.path.isdir('locale'):
+        basedir = os.path.abspath('locale')
+    else:
+        print "this script should be run from the django svn tree or your project or app tree"
+        sys.exit(1)
+
+    for (dirpath, dirnames, filenames) in os.walk(basedir):
+        for f in filenames:
+            if f.endswith('.po'):
+                sys.stderr.write('processing file %s in %s\n' % (f, dirpath))
+                pf = os.path.splitext(os.path.join(dirpath, f))[0]
+                cmd = 'msguniq "%s.po"' % pf
+                stdout = os.popen(cmd)
+                msg = stdout.read()
+                open('%s.po' % pf, 'w').write(msg)
+
+if __name__ == "__main__":
+    unique_messages()
diff --git a/webapp/django/conf/__init__.py b/webapp/django/conf/__init__.py
new file mode 100644
index 0000000..fc69bed
--- /dev/null
+++ b/webapp/django/conf/__init__.py
@@ -0,0 +1,153 @@
+"""
+Settings and configuration for Django.
+
+Values will be read from the module specified by the DJANGO_SETTINGS_MODULE environment
+variable, and then from django.conf.global_settings; see the global settings file for
+a list of all possible variables.
+"""
+
+import os
+import time     # Needed for Windows
+from django.conf import global_settings
+
+ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
+
+class LazySettings(object):
+    """
+    A lazy proxy for either global Django settings or a custom settings object.
+    The user can manually configure settings prior to using them. Otherwise,
+    Django uses the settings module pointed to by DJANGO_SETTINGS_MODULE.
+    """
+    def __init__(self):
+        # _target must be either None or something that supports attribute
+        # access (getattr, hasattr, etc).
+        self._target = None
+
+    def __getattr__(self, name):
+        if self._target is None:
+            self._import_settings()
+        if name == '__members__':
+            # Used to implement dir(obj), for example.
+            return self._target.get_all_members()
+        return getattr(self._target, name)
+
+    def __setattr__(self, name, value):
+        if name == '_target':
+            # Assign directly to self.__dict__, because otherwise we'd call
+            # __setattr__(), which would be an infinite loop.
+            self.__dict__['_target'] = value
+        else:
+            if self._target is None:
+                self._import_settings()
+            setattr(self._target, name, value)
+
+    def _import_settings(self):
+        """
+        Load the settings module pointed to by the environment variable. This
+        is used the first time we need any settings at all, if the user has not
+        previously configured the settings manually.
+        """
+        try:
+            settings_module = os.environ[ENVIRONMENT_VARIABLE]
+            if not settings_module: # If it's set but is an empty string.
+                raise KeyError
+        except KeyError:
+            # NOTE: This is arguably an EnvironmentError, but that causes
+            # problems with Python's interactive help.
+            raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
+
+        self._target = Settings(settings_module)
+
+    def configure(self, default_settings=global_settings, **options):
+        """
+        Called to manually configure the settings. The 'default_settings'
+        parameter sets where to retrieve any unspecified values from (its
+        argument must support attribute access (__getattr__)).
+        """
+        if self._target != None:
+            raise RuntimeError, 'Settings already configured.'
+        holder = UserSettingsHolder(default_settings)
+        for name, value in options.items():
+            setattr(holder, name, value)
+        self._target = holder
+
+    def configured(self):
+        """
+        Returns True if the settings have already been configured.
+        """
+        return bool(self._target)
+    configured = property(configured)
+
+class Settings(object):
+    def __init__(self, settings_module):
+        # update this dict from global settings (but only for ALL_CAPS settings)
+        for setting in dir(global_settings):
+            if setting == setting.upper():
+                setattr(self, setting, getattr(global_settings, setting))
+
+        # store the settings module in case someone later cares
+        self.SETTINGS_MODULE = settings_module
+
+        try:
+            mod = __import__(self.SETTINGS_MODULE, {}, {}, [''])
+        except ImportError, e:
+            raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
+
+        # Settings that should be converted into tuples if they're mistakenly entered
+        # as strings.
+        tuple_settings = ("INSTALLED_APPS", "TEMPLATE_DIRS")
+
+        for setting in dir(mod):
+            if setting == setting.upper():
+                setting_value = getattr(mod, setting)
+                if setting in tuple_settings and type(setting_value) == str:
+                    setting_value = (setting_value,) # In case the user forgot the comma.
+                setattr(self, setting, setting_value)
+
+        # Expand entries in INSTALLED_APPS like "django.contrib.*" to a list
+        # of all those apps.
+        new_installed_apps = []
+        for app in self.INSTALLED_APPS:
+            if app.endswith('.*'):
+                appdir = os.path.dirname(__import__(app[:-2], {}, {}, ['']).__file__)
+                app_subdirs = os.listdir(appdir)
+                app_subdirs.sort()
+                for d in app_subdirs:
+                    if d.isalpha() and os.path.isdir(os.path.join(appdir, d)):
+                        new_installed_apps.append('%s.%s' % (app[:-2], d))
+            else:
+                new_installed_apps.append(app)
+        self.INSTALLED_APPS = new_installed_apps
+
+        if hasattr(time, 'tzset'):
+            # Move the time zone info into os.environ. See ticket #2315 for why
+            # we don't do this unconditionally (breaks Windows).
+            os.environ['TZ'] = self.TIME_ZONE
+            time.tzset()
+
+    def get_all_members(self):
+        return dir(self)
+
+class UserSettingsHolder(object):
+    """
+    Holder for user configured settings.
+    """
+    # SETTINGS_MODULE doesn't make much sense in the manually configured
+    # (standalone) case.
+    SETTINGS_MODULE = None
+
+    def __init__(self, default_settings):
+        """
+        Requests for configuration variables not in this class are satisfied
+        from the module specified in default_settings (if possible).
+        """
+        self.default_settings = default_settings
+
+    def __getattr__(self, name):
+        return getattr(self.default_settings, name)
+
+    def get_all_members(self):
+        return dir(self) + dir(self.default_settings)
+
+settings = LazySettings()
+
diff --git a/webapp/django/conf/app_template/__init__.py b/webapp/django/conf/app_template/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/conf/app_template/__init__.py
diff --git a/webapp/django/conf/app_template/models.py b/webapp/django/conf/app_template/models.py
new file mode 100644
index 0000000..71a8362
--- /dev/null
+++ b/webapp/django/conf/app_template/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/webapp/django/conf/app_template/views.py b/webapp/django/conf/app_template/views.py
new file mode 100644
index 0000000..60f00ef
--- /dev/null
+++ b/webapp/django/conf/app_template/views.py
@@ -0,0 +1 @@
+# Create your views here.
diff --git a/webapp/django/conf/global_settings.py b/webapp/django/conf/global_settings.py
new file mode 100644
index 0000000..2c48571
--- /dev/null
+++ b/webapp/django/conf/global_settings.py
@@ -0,0 +1,397 @@
+# Default Django settings. Override these with settings in the module
+# pointed-to by the DJANGO_SETTINGS_MODULE environment variable.
+
+# This is defined here as a do-nothing function because we can't import
+# django.utils.translation -- that module depends on the settings.
+gettext_noop = lambda s: s
+
+####################
+# CORE             #
+####################
+
+DEBUG = False
+TEMPLATE_DEBUG = False
+
+# Whether the framework should propagate raw exceptions rather than catching
+# them. This is useful under some testing siutations and should never be used
+# on a live site.
+DEBUG_PROPAGATE_EXCEPTIONS = False
+
+# Whether to use the "Etag" header. This saves bandwidth but slows down performance.
+USE_ETAGS = False
+
+# People who get code error notifications.
+# In the format (('Full Name', 'email@domain.com'), ('Full Name', 'anotheremail@domain.com'))
+ADMINS = ()
+
+# Tuple of IP addresses, as strings, that:
+#   * See debug comments, when DEBUG is true
+#   * Receive x-headers
+INTERNAL_IPS = ()
+
+# Local time zone for this installation. All choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name (although not all
+# systems may support all possibilities).
+TIME_ZONE = 'America/Chicago'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'en-us'
+
+# Languages we provide translations for, out of the box. The language name
+# should be the utf-8 encoded local name for the language.
+LANGUAGES = (
+    ('ar', gettext_noop('Arabic')),
+    ('bn', gettext_noop('Bengali')),
+    ('bg', gettext_noop('Bulgarian')),
+    ('ca', gettext_noop('Catalan')),
+    ('cs', gettext_noop('Czech')),
+    ('cy', gettext_noop('Welsh')),
+    ('da', gettext_noop('Danish')),
+    ('de', gettext_noop('German')),
+    ('el', gettext_noop('Greek')),
+    ('en', gettext_noop('English')),
+    ('es', gettext_noop('Spanish')),
+    ('et', gettext_noop('Estonian')), 
+    ('es-ar', gettext_noop('Argentinean Spanish')),
+    ('eu', gettext_noop('Basque')),
+    ('fa', gettext_noop('Persian')),
+    ('fi', gettext_noop('Finnish')),
+    ('fr', gettext_noop('French')),
+    ('ga', gettext_noop('Irish')),
+    ('gl', gettext_noop('Galician')),
+    ('hu', gettext_noop('Hungarian')),
+    ('he', gettext_noop('Hebrew')),
+    ('hr', gettext_noop('Croatian')),
+    ('is', gettext_noop('Icelandic')),
+    ('it', gettext_noop('Italian')),
+    ('ja', gettext_noop('Japanese')),
+    ('ka', gettext_noop('Georgian')),
+    ('ko', gettext_noop('Korean')),
+    ('km', gettext_noop('Khmer')),
+    ('kn', gettext_noop('Kannada')),
+    ('lv', gettext_noop('Latvian')),
+    ('lt', gettext_noop('Lithuanian')),
+    ('mk', gettext_noop('Macedonian')),
+    ('nl', gettext_noop('Dutch')),
+    ('no', gettext_noop('Norwegian')),
+    ('pl', gettext_noop('Polish')),
+    ('pt', gettext_noop('Portugese')),
+    ('pt-br', gettext_noop('Brazilian Portuguese')),
+    ('ro', gettext_noop('Romanian')),
+    ('ru', gettext_noop('Russian')),
+    ('sk', gettext_noop('Slovak')),
+    ('sl', gettext_noop('Slovenian')),
+    ('sr', gettext_noop('Serbian')),
+    ('sv', gettext_noop('Swedish')),
+    ('ta', gettext_noop('Tamil')),
+    ('te', gettext_noop('Telugu')),
+    ('tr', gettext_noop('Turkish')),
+    ('uk', gettext_noop('Ukrainian')),
+    ('zh-cn', gettext_noop('Simplified Chinese')),
+    ('zh-tw', gettext_noop('Traditional Chinese')),
+)
+
+# Languages using BiDi (right-to-left) layout
+LANGUAGES_BIDI = ("he", "ar", "fa")
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+LOCALE_PATHS = ()
+LANGUAGE_COOKIE_NAME = 'django_language'
+
+# Not-necessarily-technical managers of the site. They get broken link
+# notifications and other various e-mails.
+MANAGERS = ADMINS
+
+# Default content type and charset to use for all HttpResponse objects, if a
+# MIME type isn't manually specified. These are used to construct the
+# Content-Type header.
+DEFAULT_CONTENT_TYPE = 'text/html'
+DEFAULT_CHARSET = 'utf-8'
+
+# Encoding of files read from disk (template and initial SQL files).
+FILE_CHARSET = 'utf-8'
+
+# E-mail address that error messages come from.
+SERVER_EMAIL = 'root@localhost'
+
+# Whether to send broken-link e-mails.
+SEND_BROKEN_LINK_EMAILS = False
+
+# Database connection info.
+DATABASE_ENGINE = ''           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+DATABASE_NAME = ''             # Or path to database file if using sqlite3.
+DATABASE_USER = ''             # Not used with sqlite3.
+DATABASE_PASSWORD = ''         # Not used with sqlite3.
+DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
+DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
+DATABASE_OPTIONS = {}          # Set to empty dictionary for default.
+
+# Host for sending e-mail.
+EMAIL_HOST = 'localhost'
+
+# Port for sending e-mail.
+EMAIL_PORT = 25
+
+# Optional SMTP authentication information for EMAIL_HOST.
+EMAIL_HOST_USER = ''
+EMAIL_HOST_PASSWORD = ''
+EMAIL_USE_TLS = False
+
+# List of strings representing installed apps.
+INSTALLED_APPS = ()
+
+# List of locations of the template source files, in search order.
+TEMPLATE_DIRS = ()
+
+# List of callables that know how to import templates from various sources.
+# See the comments in django/core/template/loader.py for interface
+# documentation.
+TEMPLATE_LOADERS = (
+    'django.template.loaders.filesystem.load_template_source',
+    'django.template.loaders.app_directories.load_template_source',
+#     'django.template.loaders.eggs.load_template_source',
+)
+
+# List of processors used by RequestContext to populate the context.
+# Each one should be a callable that takes the request object as its
+# only parameter and returns a dictionary to add to the context.
+TEMPLATE_CONTEXT_PROCESSORS = (
+    'django.core.context_processors.auth',
+    'django.core.context_processors.debug',
+    'django.core.context_processors.i18n',
+    'django.core.context_processors.media',
+#    'django.core.context_processors.request',
+)
+
+# Output to use in template system for invalid (e.g. misspelled) variables.
+TEMPLATE_STRING_IF_INVALID = ''
+
+# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
+# trailing slash.
+# Examples: "http://foo.com/media/", "/media/".
+ADMIN_MEDIA_PREFIX = '/media/'
+
+# Default e-mail address to use for various automated correspondence from
+# the site managers.
+DEFAULT_FROM_EMAIL = 'webmaster@localhost'
+
+# Subject-line prefix for email messages send with django.core.mail.mail_admins
+# or ...mail_managers.  Make sure to include the trailing space.
+EMAIL_SUBJECT_PREFIX = '[Django] '
+
+# Whether to append trailing slashes to URLs.
+APPEND_SLASH = True
+
+# Whether to prepend the "www." subdomain to URLs that don't have it.
+PREPEND_WWW = False
+
+# Override the server-derived value of SCRIPT_NAME
+FORCE_SCRIPT_NAME = None
+
+# List of compiled regular expression objects representing User-Agent strings
+# that are not allowed to visit any page, systemwide. Use this for bad
+# robots/crawlers. Here are a few examples:
+#     import re
+#     DISALLOWED_USER_AGENTS = (
+#         re.compile(r'^NaverBot.*'),
+#         re.compile(r'^EmailSiphon.*'),
+#         re.compile(r'^SiteSucker.*'),
+#         re.compile(r'^sohu-search')
+#     )
+DISALLOWED_USER_AGENTS = ()
+
+ABSOLUTE_URL_OVERRIDES = {}
+
+# Tuple of strings representing allowed prefixes for the {% ssi %} tag.
+# Example: ('/home/html', '/var/www')
+ALLOWED_INCLUDE_ROOTS = ()
+
+# If this is a admin settings module, this should be a list of
+# settings modules (in the format 'foo.bar.baz') for which this admin
+# is an admin.
+ADMIN_FOR = ()
+
+# 404s that may be ignored.
+IGNORABLE_404_STARTS = ('/cgi-bin/', '/_vti_bin', '/_vti_inf')
+IGNORABLE_404_ENDS = ('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php')
+
+# A secret key for this particular Django installation. Used in secret-key
+# hashing algorithms. Set this in your settings, or Django will complain
+# loudly.
+SECRET_KEY = ''
+
+# Path to the "jing" executable -- needed to validate XMLFields
+JING_PATH = "/usr/bin/jing"
+
+# Default file storage mechanism that holds media.
+DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
+
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = ''
+
+# URL that handles the media served from MEDIA_ROOT.
+# Example: "http://media.lawrence.com"
+MEDIA_URL = ''
+
+# List of upload handler classes to be applied in order.
+FILE_UPLOAD_HANDLERS = (
+    'django.core.files.uploadhandler.MemoryFileUploadHandler',
+    'django.core.files.uploadhandler.TemporaryFileUploadHandler',
+)
+
+# Maximum size, in bytes, of a request before it will be streamed to the
+# file system instead of into memory.
+FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440 # i.e. 2.5 MB
+
+# Directory in which upload streamed files will be temporarily saved. A value of
+# `None` will make Django use the operating system's default temporary directory
+# (i.e. "/tmp" on *nix systems).
+FILE_UPLOAD_TEMP_DIR = None
+
+# Default formatting for date objects. See all available format strings here:
+# http://www.djangoproject.com/documentation/templates/#now
+DATE_FORMAT = 'N j, Y'
+
+# Default formatting for datetime objects. See all available format strings here:
+# http://www.djangoproject.com/documentation/templates/#now
+DATETIME_FORMAT = 'N j, Y, P'
+
+# Default formatting for time objects. See all available format strings here:
+# http://www.djangoproject.com/documentation/templates/#now
+TIME_FORMAT = 'P'
+
+# Default formatting for date objects when only the year and month are relevant.
+# See all available format strings here:
+# http://www.djangoproject.com/documentation/templates/#now
+YEAR_MONTH_FORMAT = 'F Y'
+
+# Default formatting for date objects when only the month and day are relevant.
+# See all available format strings here:
+# http://www.djangoproject.com/documentation/templates/#now
+MONTH_DAY_FORMAT = 'F j'
+
+# Do you want to manage transactions manually?
+# Hint: you really don't!
+TRANSACTIONS_MANAGED = False
+
+# The User-Agent string to use when checking for URL validity through the
+# isExistingURL validator.
+from django import get_version
+URL_VALIDATOR_USER_AGENT = "Django/%s (http://www.djangoproject.com)" % get_version()
+
+# The tablespaces to use for each model when not specified otherwise.
+DEFAULT_TABLESPACE = ''
+DEFAULT_INDEX_TABLESPACE = ''
+
+##############
+# MIDDLEWARE #
+##############
+
+# List of middleware classes to use.  Order is important; in the request phase,
+# this middleware classes will be applied in the order given, and in the
+# response phase the middleware will be applied in reverse order.
+MIDDLEWARE_CLASSES = (
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+#     'django.middleware.http.ConditionalGetMiddleware',
+#     'django.middleware.gzip.GZipMiddleware',
+    'django.middleware.common.CommonMiddleware',
+)
+
+############
+# SESSIONS #
+############
+
+SESSION_COOKIE_NAME = 'sessionid'                       # Cookie name. This can be whatever you want.
+SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2               # Age of cookie, in seconds (default: 2 weeks).
+SESSION_COOKIE_DOMAIN = None                            # A string like ".lawrence.com", or None for standard domain cookie.
+SESSION_COOKIE_SECURE = False                           # Whether the session cookie should be secure (https:// only).
+SESSION_COOKIE_PATH = '/'                               # The path of the session cookie.
+SESSION_SAVE_EVERY_REQUEST = False                      # Whether to save the session data on every request.
+SESSION_EXPIRE_AT_BROWSER_CLOSE = False                 # Whether a user's session cookie expires when the Web browser is closed.
+SESSION_ENGINE = 'django.contrib.sessions.backends.db'  # The module to store session data
+SESSION_FILE_PATH = None                                # Directory to store session files if using the file session module. If None, the backend will use a sensible default.
+
+#########
+# CACHE #
+#########
+
+# The cache backend to use.  See the docstring in django.core.cache for the
+# possible values.
+CACHE_BACKEND = 'locmem://'
+CACHE_MIDDLEWARE_KEY_PREFIX = ''
+CACHE_MIDDLEWARE_SECONDS = 600
+
+####################
+# COMMENTS         #
+####################
+
+COMMENTS_ALLOW_PROFANITIES = False
+
+# The profanities that will trigger a validation error in the
+# 'hasNoProfanities' validator. All of these should be in lowercase.
+PROFANITIES_LIST = ('asshat', 'asshead', 'asshole', 'cunt', 'fuck', 'gook', 'nigger', 'shit')
+
+# The group ID that designates which users are banned.
+# Set to None if you're not using it.
+COMMENTS_BANNED_USERS_GROUP = None
+
+# The group ID that designates which users can moderate comments.
+# Set to None if you're not using it.
+COMMENTS_MODERATORS_GROUP = None
+
+# The group ID that designates the users whose comments should be e-mailed to MANAGERS.
+# Set to None if you're not using it.
+COMMENTS_SKETCHY_USERS_GROUP = None
+
+# The system will e-mail MANAGERS the first COMMENTS_FIRST_FEW comments by each
+# user. Set this to 0 if you want to disable it.
+COMMENTS_FIRST_FEW = 0
+
+# A tuple of IP addresses that have been banned from participating in various
+# Django-powered features.
+BANNED_IPS = ()
+
+##################
+# AUTHENTICATION #
+##################
+
+AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
+
+LOGIN_URL = '/accounts/login/'
+
+LOGOUT_URL = '/accounts/logout/'
+
+LOGIN_REDIRECT_URL = '/accounts/profile/'
+
+# The number of days a password reset link is valid for
+PASSWORD_RESET_TIMEOUT_DAYS = 3
+
+###########
+# TESTING #
+###########
+
+# The name of the method to use to invoke the test suite
+TEST_RUNNER = 'django.test.simple.run_tests'
+
+# The name of the database to use for testing purposes.
+# If None, a name of 'test_' + DATABASE_NAME will be assumed
+TEST_DATABASE_NAME = None
+
+# Strings used to set the character set and collation order for the test
+# database. These values are passed literally to the server, so they are
+# backend-dependent. If None, no special settings are sent (system defaults are
+# used).
+TEST_DATABASE_CHARSET = None
+TEST_DATABASE_COLLATION = None
+
+############
+# FIXTURES #
+############
+
+# The list of directories to search for fixtures
+FIXTURE_DIRS = ()
diff --git a/webapp/django/conf/locale/ar/LC_MESSAGES/django.mo b/webapp/django/conf/locale/ar/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..c52a2ab
--- /dev/null
+++ b/webapp/django/conf/locale/ar/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ar/LC_MESSAGES/django.po b/webapp/django/conf/locale/ar/LC_MESSAGES/django.po
new file mode 100644
index 0000000..5bbe749
--- /dev/null
+++ b/webapp/django/conf/locale/ar/LC_MESSAGES/django.po
@@ -0,0 +1,1989 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the django package.
+# Ahmad Alhashemi <trans@ahmadh.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-07-03 19:22+0300\n"
+"PO-Revision-Date: 2006-07-06 23:46+0300\n"
+"Last-Translator: Ahmad Alhashemi <ahmad@ahmadh.com>\n"
+"Language-Team: Ahmad Alhashemi <trans@ahmadh.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n == 1? 0 : (n == 2? 1 : (n <= 10? 2 : 3)));\n"
+"X-Poedit-Language: Arabic\n"
+"X-Poedit-Country: KUWAIT\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: .\conf\global_settings.py:37
+msgid "Bengali"
+msgstr "بنغالي"
+
+#: .\conf\global_settings.py:38
+msgid "Czech"
+msgstr "تشيكي"
+
+#: .\conf\global_settings.py:39
+msgid "Welsh"
+msgstr "ويلزي"
+
+#: .\conf\global_settings.py:40
+msgid "Danish"
+msgstr "دنماركي"
+
+#: .\conf\global_settings.py:41
+msgid "German"
+msgstr "ألماني"
+
+#: .\conf\global_settings.py:42
+msgid "Greek"
+msgstr "اغريقي"
+
+#: .\conf\global_settings.py:43
+msgid "English"
+msgstr "انجليزي"
+
+#: .\conf\global_settings.py:44
+msgid "Spanish"
+msgstr "اسباني"
+
+#: .\conf\global_settings.py:45
+msgid "Argentinean Spanish"
+msgstr "اسباني أرجنتيني"
+
+#: .\conf\global_settings.py:46
+msgid "French"
+msgstr "فرنسي"
+
+#: .\conf\global_settings.py:47
+msgid "Galician"
+msgstr "جاليسي"
+
+#: .\conf\global_settings.py:48
+msgid "Hungarian"
+msgstr "هنغاري"
+
+#: .\conf\global_settings.py:49
+msgid "Hebrew"
+msgstr "عبري"
+
+#: .\conf\global_settings.py:50
+msgid "Icelandic"
+msgstr "آيسلندي"
+
+#: .\conf\global_settings.py:51
+msgid "Italian"
+msgstr "ايطالي"
+
+#: .\conf\global_settings.py:52
+msgid "Japanese"
+msgstr "ياباني"
+
+#: .\conf\global_settings.py:53
+msgid "Dutch"
+msgstr "هولندي"
+
+#: .\conf\global_settings.py:54
+msgid "Norwegian"
+msgstr "نرويجي"
+
+#: .\conf\global_settings.py:55
+msgid "Brazilian"
+msgstr "برازيلي"
+
+#: .\conf\global_settings.py:56
+msgid "Romanian"
+msgstr "روماني"
+
+#: .\conf\global_settings.py:57
+msgid "Russian"
+msgstr "روسي"
+
+#: .\conf\global_settings.py:58
+msgid "Slovak"
+msgstr "سلوفاك"
+
+#: .\conf\global_settings.py:59
+msgid "Slovenian"
+msgstr "سلوفاتي"
+
+#: .\conf\global_settings.py:60
+msgid "Serbian"
+msgstr "صربي"
+
+#: .\conf\global_settings.py:61
+msgid "Swedish"
+msgstr "سويدي"
+
+#: .\conf\global_settings.py:62
+msgid "Ukrainian"
+msgstr "أكراني"
+
+#: .\conf\global_settings.py:63
+msgid "Simplified Chinese"
+msgstr "صيني مبسط"
+
+#: .\conf\global_settings.py:64
+msgid "Traditional Chinese"
+msgstr "صيني تقليدي"
+
+#: .\contrib\admin\filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>بواسطة %s:</h3>\n"
+"<ul>\n"
+
+#: .\contrib\admin\filterspecs.py:70
+#: .\contrib\admin\filterspecs.py:88
+#: .\contrib\admin\filterspecs.py:143
+#: .\contrib\admin\filterspecs.py:169
+msgid "All"
+msgstr "كافة"
+
+#: .\contrib\admin\filterspecs.py:109
+msgid "Any date"
+msgstr "أي تاريخ"
+
+#: .\contrib\admin\filterspecs.py:110
+msgid "Today"
+msgstr "اليوم"
+
+#: .\contrib\admin\filterspecs.py:113
+msgid "Past 7 days"
+msgstr "الأيام 7 الماضية"
+
+#: .\contrib\admin\filterspecs.py:115
+msgid "This month"
+msgstr "هذا الشهر"
+
+#: .\contrib\admin\filterspecs.py:117
+msgid "This year"
+msgstr "هذه السنة"
+
+#: .\contrib\admin\filterspecs.py:143
+msgid "Yes"
+msgstr "نعم"
+
+#: .\contrib\admin\filterspecs.py:143
+msgid "No"
+msgstr "لا"
+
+#: .\contrib\admin\filterspecs.py:150
+msgid "Unknown"
+msgstr "غير معروف"
+
+#: .\contrib\admin\models.py:16
+msgid "action time"
+msgstr "وقت العملية"
+
+#: .\contrib\admin\models.py:19
+msgid "object id"
+msgstr "معرف العنصر"
+
+#: .\contrib\admin\models.py:20
+msgid "object repr"
+msgstr "ممثل العنصر"
+
+#: .\contrib\admin\models.py:21
+msgid "action flag"
+msgstr "علامة العملية"
+
+#: .\contrib\admin\models.py:22
+msgid "change message"
+msgstr "تغيير الرسالة"
+
+#: .\contrib\admin\models.py:25
+msgid "log entry"
+msgstr "مدخل السجل"
+
+#: .\contrib\admin\models.py:26
+msgid "log entries"
+msgstr "مدخلات السجل"
+
+#: .\contrib\admin\templates\admin\404.html.py:4
+#: .\contrib\admin\templates\admin\404.html.py:8
+msgid "Page not found"
+msgstr "تعذر العثور على الصفحة"
+
+#: .\contrib\admin\templates\admin\404.html.py:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "نحن آسفون، لكننا لم نعثر على الصفحة المطلوبة."
+
+#: .\contrib\admin\templates\admin\500.html.py:4
+#: .\contrib\admin\templates\admin\base.html.py:29
+#: .\contrib\admin\templates\admin\change_form.html.py:13
+#: .\contrib\admin\templates\admin\change_list.html.py:6
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:6
+#: .\contrib\admin\templates\admin\invalid_setup.html.py:4
+#: .\contrib\admin\templates\admin\object_history.html.py:5
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3
+#: .\contrib\admin\templates\registration\logged_out.html.py:4
+#: .\contrib\admin\templates\registration\password_change_done.html.py:4
+#: .\contrib\admin\templates\registration\password_change_form.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:4
+msgid "Home"
+msgstr "الرئيسية"
+
+#: .\contrib\admin\templates\admin\500.html.py:4
+msgid "Server error"
+msgstr "خطأ في المزود"
+
+#: .\contrib\admin\templates\admin\500.html.py:6
+msgid "Server error (500)"
+msgstr "خطأ في المزود (500)"
+
+#: .\contrib\admin\templates\admin\500.html.py:9
+msgid "Server Error <em>(500)</em>"
+msgstr "خطأ في المزود <em>(500)</em>"
+
+#: .\contrib\admin\templates\admin\500.html.py:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "حدث خطأ، وقم تم الابلاغ عنه إلى مدراء الموقع عبر البريد الإلكترونيوسيتم حل المشكلة قريبا إن شاء الله، شكرا لك على صبرك."
+
+#: .\contrib\admin\templates\admin\base.html.py:24
+msgid "Welcome,"
+msgstr "أهلا، "
+
+#: .\contrib\admin\templates\admin\base.html.py:24
+#: .\contrib\admin\templates\admin\change_form.html.py:10
+#: .\contrib\admin\templates\admin\change_list.html.py:5
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:3
+#: .\contrib\admin\templates\admin\object_history.html.py:3
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3
+#: .\contrib\admin\templates\registration\password_change_done.html.py:3
+#: .\contrib\admin\templates\registration\password_change_form.html.py:3
+msgid "Documentation"
+msgstr "التعليمات"
+
+#: .\contrib\admin\templates\admin\base.html.py:24
+#: .\contrib\admin\templates\admin\change_form.html.py:10
+#: .\contrib\admin\templates\admin\change_list.html.py:5
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:3
+#: .\contrib\admin\templates\admin\object_history.html.py:3
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:4
+#: .\contrib\admin\templates\admin_doc\index.html.py:4
+#: .\contrib\admin\templates\admin_doc\missing_docutils.html.py:4
+#: .\contrib\admin\templates\admin_doc\model_detail.html.py:3
+#: .\contrib\admin\templates\admin_doc\model_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\template_detail.html.py:4
+#: .\contrib\admin\templates\admin_doc\template_filter_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\template_tag_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\view_detail.html.py:4
+#: .\contrib\admin\templates\admin_doc\view_index.html.py:5
+#: .\contrib\admin\templates\registration\password_change_done.html.py:3
+#: .\contrib\admin\templates\registration\password_change_form.html.py:3
+msgid "Change password"
+msgstr "تغيير كلمة المرور"
+
+#: .\contrib\admin\templates\admin\base.html.py:24
+#: .\contrib\admin\templates\admin\change_form.html.py:10
+#: .\contrib\admin\templates\admin\change_list.html.py:5
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:3
+#: .\contrib\admin\templates\admin\object_history.html.py:3
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:4
+#: .\contrib\admin\templates\admin_doc\index.html.py:4
+#: .\contrib\admin\templates\admin_doc\missing_docutils.html.py:4
+#: .\contrib\admin\templates\admin_doc\model_detail.html.py:3
+#: .\contrib\admin\templates\admin_doc\model_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\template_detail.html.py:4
+#: .\contrib\admin\templates\admin_doc\template_filter_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\template_tag_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\view_detail.html.py:4
+#: .\contrib\admin\templates\admin_doc\view_index.html.py:5
+#: .\contrib\admin\templates\registration\password_change_done.html.py:3
+#: .\contrib\admin\templates\registration\password_change_form.html.py:3
+#: .\contrib\comments\templates\comments\form.html.py:8
+msgid "Log out"
+msgstr "خروج"
+
+#: .\contrib\admin\templates\admin\base_site.html.py:4
+msgid "Django site admin"
+msgstr "إدارة موقع جاننغو"
+
+#: .\contrib\admin\templates\admin\base_site.html.py:7
+msgid "Django administration"
+msgstr "إدارة جانغو"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:15
+#: .\contrib\admin\templates\admin\index.html.py:28
+msgid "Add"
+msgstr "إضافة"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:20
+#: .\contrib\admin\templates\admin\object_history.html.py:5
+msgid "History"
+msgstr "تاريخ"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:21
+msgid "View on site"
+msgstr "عرض على الموقع"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:30
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "الرجاء اصلاح الخطأ التالي."
+msgstr[1] "الرجاء اصلاح الخطئين التاليين."
+msgstr[2] "الرجاء اصلاح الأخطاء التالية."
+msgstr[3] "الرجاء اصلاح الأخطاء التالية."
+
+#: .\contrib\admin\templates\admin\change_form.html.py:48
+msgid "Ordering"
+msgstr "الترتيب"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:51
+msgid "Order:"
+msgstr "الترتيب"
+
+#: .\contrib\admin\templates\admin\change_list.html.py:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "اضافة %(name)s"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:9
+#: .\contrib\admin\templates\admin\submit_line.html.py:3
+msgid "Delete"
+msgstr "حذف"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:14
+#, python-format
+msgid "Deleting the %(object_name)s '%(object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "حذف %(object_name)s '%(object)s' سيؤدي إلى حذف العناصر المتعلقة به، لكن هذا الحساب لا يملك الصلاحية لحذف أنواع العناصر التالية:"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:21
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of the following related items will be deleted:"
+msgstr "هل أنت متأكد من أنك تريد حذف %(object_name)s \"%(object)s\"? كافة العناصر التالية المتعلقة به سيتم حذفها:"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:26
+msgid "Yes, I'm sure"
+msgstr "نعم، أنا متأكد"
+
+#: .\contrib\admin\templates\admin\filter.html.py:2
+#, python-format
+msgid " By %(title)s "
+msgstr " بواسطة %(title)s "
+
+#: .\contrib\admin\templates\admin\filters.html.py:4
+msgid "Filter"
+msgstr "مرشح"
+
+#: .\contrib\admin\templates\admin\index.html.py:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "النماذج المتوفرة في برنامج %(name)s."
+
+#: .\contrib\admin\templates\admin\index.html.py:34
+msgid "Change"
+msgstr "تغيير"
+
+#: .\contrib\admin\templates\admin\index.html.py:44
+msgid "You don't have permission to edit anything."
+msgstr "ليست لديك الصلاحية لتعديل أي شيء."
+
+#: .\contrib\admin\templates\admin\index.html.py:52
+msgid "Recent Actions"
+msgstr "العمليات الأخيرة"
+
+#: .\contrib\admin\templates\admin\index.html.py:53
+msgid "My Actions"
+msgstr "عملياتي"
+
+#: .\contrib\admin\templates\admin\index.html.py:57
+msgid "None available"
+msgstr "لا يوجد"
+
+#: .\contrib\admin\templates\admin\invalid_setup.html.py:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "هنالك أمر خاطئ في تركيب قاعدة بياناتك، تأكد من أنه تم انشاء جداول قاعدة البيانات الملائمة، وتأكد من أن قاعدة البيانات قابلة للقراءة من قبل المستخدم الملائم."
+
+#: .\contrib\admin\templates\admin\login.html.py:17
+#: .\contrib\comments\templates\comments\form.html.py:6
+#: .\contrib\comments\templates\comments\form.html.py:8
+msgid "Username:"
+msgstr "اسم المستخدم:"
+
+#: .\contrib\admin\templates\admin\login.html.py:20
+#: .\contrib\comments\templates\comments\form.html.py:6
+msgid "Password:"
+msgstr "كلمة المرور:"
+
+#: .\contrib\admin\templates\admin\login.html.py:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+
+#: .\contrib\admin\templates\admin\login.html.py:25
+#: .\contrib\admin\views\decorators.py:24
+msgid "Log in"
+msgstr "دخول"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:18
+msgid "Date/time"
+msgstr "التاريخ/الوقت"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:19
+msgid "User"
+msgstr "المستخدم"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:20
+msgid "Action"
+msgstr "العملية"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr ""
+
+#: .\contrib\admin\templates\admin\object_history.html.py:36
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "هذا العنصر لا يملك تاريخ تغييرات، على الأغلب أن هذا العنصر لم يتم انشاءه عبر نظام الإدارة هذا."
+
+#: .\contrib\admin\templates\admin\pagination.html.py:10
+msgid "Show all"
+msgstr "عرض الكل"
+
+#: .\contrib\admin\templates\admin\search_form.html.py:8
+msgid "Go"
+msgstr "انطلق"
+
+#: .\contrib\admin\templates\admin\search_form.html.py:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "نتيحة واحدة"
+msgstr[1] "نتيجتان"
+msgstr[2] "%(counter)s نتائج"
+msgstr[3] "%(counter)s نتيحة"
+
+#: .\contrib\admin\templates\admin\search_form.html.py:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "المجموع %(full_result_count)s"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:4
+msgid "Save as new"
+msgstr "حفظ كجديد"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:5
+msgid "Save and add another"
+msgstr "حفظ وإضافة آخر"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:6
+msgid "Save and continue editing"
+msgstr "حفظ واستمرار التعديل"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:7
+msgid "Save"
+msgstr "حفظ"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3
+msgid "Bookmarklets"
+msgstr "أوامر المفضلة"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:5
+msgid "Documentation bookmarklets"
+msgstr "أوامر مفضلة التعليمات"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">لتركيب أوامر المفضلة، قم بسحب الوصلة إلى\n"
+"شريط أدات المفضلات في متصفحك، أو قم بالضغط عليها بالزر الأيمن وأضفها إلى مفضلاتك.\n"
+"سيمكنك الآن أن اختيار أوامر المفضلة من أي صفحة في الموقع، لاحظ بأن بعض\n"
+"أوامر المفضلة هذه معدة لتعمل على أجهزة كمبيوتر تعتبر على أنها \"داخلية\"\n"
+"(تحدث إلى مسؤول النظم إذا لم تكن متأكدا ما إذا كان كمبيوتر يعتبر \"داخليا\").</p>\n"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:19
+msgid "Documentation for this page"
+msgstr "التعليمات لهذه الصفحة"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:20
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "ينتقل بك من أي صفحة إلى تعليمات العرض الذي أنشأ هذه الصفحة."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:22
+msgid "Show object ID"
+msgstr "عرض معرف الكائن"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:23
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "عرض نوع البيانات والمعرف الفريد للصفحات التي تمثل كائنا واحدا."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:25
+msgid "Edit this object (current window)"
+msgstr "تعديل هذا الكائن (النافذة الحالية)"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "ينتقل بك إلى صفحة الإدارة للصفحات التي تمثل كائنا واحدا."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:28
+msgid "Edit this object (new window)"
+msgstr "تعديل هذا العنصر (نافذة جديدة)"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "كما سبق، لكن يفتح صفحة الإدارة في نافذة جديدة."
+
+#: .\contrib\admin\templates\registration\logged_out.html.py:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "شكرا لك على قضائك بعض الوقت مع الموقع اليوم."
+
+#: .\contrib\admin\templates\registration\logged_out.html.py:10
+msgid "Log in again"
+msgstr "دخول مرة أخرى"
+
+#: .\contrib\admin\templates\registration\password_change_done.html.py:4
+#: .\contrib\admin\templates\registration\password_change_form.html.py:4
+#: .\contrib\admin\templates\registration\password_change_form.html.py:6
+#: .\contrib\admin\templates\registration\password_change_form.html.py:10
+msgid "Password change"
+msgstr "تغيير كلمة المرور"
+
+#: .\contrib\admin\templates\registration\password_change_done.html.py:6
+#: .\contrib\admin\templates\registration\password_change_done.html.py:10
+msgid "Password change successful"
+msgstr "تم تغيير كلمة المرور بنجاح"
+
+#: .\contrib\admin\templates\registration\password_change_done.html.py:12
+msgid "Your password was changed."
+msgstr "لقد تغيرت كلمة مرورك."
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "الرجاء ادخال كلمة مرورك القديمة، زيادة في الأمان، ثم ادخل كلمة مرورك الجديدة مرتين لنكون متأكدين من أنك كتبتها بصورة صحيحة."
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:17
+msgid "Old password:"
+msgstr "كلمة المرور القديمة:"
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:19
+msgid "New password:"
+msgstr "كلمة المرور الجديدة:"
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:21
+msgid "Confirm password:"
+msgstr "تأكيد كلمة المرور:"
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:23
+msgid "Change my password"
+msgstr "تغيير كلمة المرور الخاصة بي"
+
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:6
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:10
+msgid "Password reset"
+msgstr "اعادة ضبط كلمة المرور"
+
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:6
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:10
+msgid "Password reset successful"
+msgstr "تمت عملية اعادة ضبط كلمة المرور بنجاح"
+
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "لقد قمنا بارسال كلمة مرور جديدة إلى عنوان البريد الإلكتروني الذي أدخلتها، ستصلك قريبا إن شاء الله."
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "لقد وصلتك رسالة البريد الإلكتروني هذه لأنك طلبت إعادة ضبط كلمة المرور."
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "لحسابك المستخدم الخاص بك في %(site_name)s"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "كلمة مرورك الجديدة هي: %(new_password)s"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "يمكنك تغيير كلمة المرور هذه بالذهاب إلى هذه الصفحة:"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:11
+msgid "Your username, in case you've forgotten:"
+msgstr "اسم المستخدم الخاص بك، في حال كنت قد نسيته:"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:13
+msgid "Thanks for using our site!"
+msgstr "شكرا لاستخدامك لموقعنا!"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "فريق %(site_name)s"
+
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "نسيت كلمة المرور الخاصة بك؟ قم بادخال عنوان بريدك الإلكتروني بالأسفل وسنقوم باعادة ضبط كلمة المرور الخاصة بك وارسال كلمة المرور الجديدة إليك عبر البريد الإلكتروني."
+
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:16
+msgid "E-mail address:"
+msgstr "عنوان البريد الإلكتروني:"
+
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:16
+msgid "Reset my password"
+msgstr "اعادة ضبط كلمة المرور"
+
+#: .\contrib\admin\templates\widget\date_time.html.py:3
+msgid "Date:"
+msgstr "التاريخ:"
+
+#: .\contrib\admin\templates\widget\date_time.html.py:4
+msgid "Time:"
+msgstr "الوقت:"
+
+#: .\contrib\admin\templates\widget\file.html.py:2
+msgid "Currently:"
+msgstr "حاليا:"
+
+#: .\contrib\admin\templates\widget\file.html.py:3
+msgid "Change:"
+msgstr "تغيير:"
+
+#: .\contrib\admin\templatetags\admin_list.py:230
+msgid "All dates"
+msgstr "كافة التواريخ"
+
+#: .\contrib\admin\views\decorators.py:10
+#: .\contrib\auth\forms.py:37
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "الرجاء ادخال اسم مستخدم وكلمة مرور صحيحين، الرجاء الانتباه إلى أن كلا الحقلين حساس لحالة الأحرف من حيث كونها كبيرة أو صغيرة."
+
+#: .\contrib\admin\views\decorators.py:62
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "الرجاء الدخول مرة أخرى لأن جلستك انتهت، لا تقلق: البيانات التي قمت بارسالها حفظت."
+
+#: .\contrib\admin\views\decorators.py:69
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "يبدو بأن متصفحك غير معد لقبول الكوكيز، قم بتفعيل الكوكيز من فضلك ثم تحديث هذه الصفحة والمحاولة مرة أخرى."
+
+#: .\contrib\admin\views\decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "اسم المستخدم يجب أن لا يحتوي على علامة '@'."
+
+#: .\contrib\admin\views\decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "بريدك الإلكتروني ليس اسم المستخدم الخاص بك، جرب استخدام '%s' بدلا من ذلك."
+
+#: .\contrib\admin\views\doc.py:291
+#: .\contrib\admin\views\doc.py:301
+#: .\contrib\admin\views\doc.py:303
+#: .\contrib\admin\views\doc.py:309
+#: .\contrib\admin\views\doc.py:310
+#: .\contrib\admin\views\doc.py:312
+msgid "Integer"
+msgstr "عدد صحيح"
+
+#: .\contrib\admin\views\doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "ثنائي (إما صح أو خطأ)"
+
+#: .\contrib\admin\views\doc.py:293
+#: .\contrib\admin\views\doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "سلسلة نصية (تصل إلى %(maxlength)s)"
+
+#: .\contrib\admin\views\doc.py:294
+msgid "Comma-separated integers"
+msgstr "أرقام صحيحة مفصولة بفواصل comma"
+
+#: .\contrib\admin\views\doc.py:295
+msgid "Date (without time)"
+msgstr "التاريخ (بدون الوقت)"
+
+#: .\contrib\admin\views\doc.py:296
+msgid "Date (with time)"
+msgstr "التاريخ (مع الوقت)"
+
+#: .\contrib\admin\views\doc.py:297
+msgid "E-mail address"
+msgstr "عنوان البريد الإلكتروني"
+
+#: .\contrib\admin\views\doc.py:298
+#: .\contrib\admin\views\doc.py:299
+#: .\contrib\admin\views\doc.py:302
+msgid "File path"
+msgstr "مسار الملف"
+
+#: .\contrib\admin\views\doc.py:300
+msgid "Decimal number"
+msgstr "رقم عشري"
+
+#: .\contrib\admin\views\doc.py:304
+#: .\contrib\comments\models.py:85
+msgid "IP address"
+msgstr "عنوان IP"
+
+#: .\contrib\admin\views\doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "ثنائي (إما صح أو خطأ أو لاشيء)"
+
+#: .\contrib\admin\views\doc.py:307
+msgid "Relation to parent model"
+msgstr "العلاقة بالنموذج الأب"
+
+#: .\contrib\admin\views\doc.py:308
+msgid "Phone number"
+msgstr "رقم هاتف"
+
+#: .\contrib\admin\views\doc.py:313
+msgid "Text"
+msgstr "نص"
+
+#: .\contrib\admin\views\doc.py:314
+msgid "Time"
+msgstr "وقت"
+
+#: .\contrib\admin\views\doc.py:315
+#: .\contrib\flatpages\models.py:7
+msgid "URL"
+msgstr "وصلة"
+
+#: .\contrib\admin\views\doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "ولاية أمريكية (حرفان كبيران)"
+
+#: .\contrib\admin\views\doc.py:317
+msgid "XML text"
+msgstr "نص XML"
+
+#: .\contrib\admin\views\main.py:226
+msgid "Site administration"
+msgstr "إدارة الموقع"
+
+#: .\contrib\admin\views\main.py:260
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "تم اضافة %(name)s \"%(obj)s\" بنجاح."
+
+#: .\contrib\admin\views\main.py:264
+#: .\contrib\admin\views\main.py:348
+msgid "You may edit it again below."
+msgstr "يمكنك تعديله مجددا في الأسفل."
+
+#: .\contrib\admin\views\main.py:272
+#: .\contrib\admin\views\main.py:357
+#, python-format
+msgid "You may add another %s below."
+msgstr "يمكنك إضافة %s آخر بالأسفل."
+
+#: .\contrib\admin\views\main.py:290
+#, python-format
+msgid "Add %s"
+msgstr "اضافة %s"
+
+#: .\contrib\admin\views\main.py:336
+#, python-format
+msgid "Added %s."
+msgstr "اضاف %s."
+
+#: .\contrib\admin\views\main.py:336
+#: .\contrib\admin\views\main.py:338
+#: .\contrib\admin\views\main.py:340
+msgid "and"
+msgstr "و"
+
+#: .\contrib\admin\views\main.py:338
+#, python-format
+msgid "Changed %s."
+msgstr "غير %s."
+
+#: .\contrib\admin\views\main.py:340
+#, python-format
+msgid "Deleted %s."
+msgstr "حذف %s."
+
+#: .\contrib\admin\views\main.py:343
+msgid "No fields changed."
+msgstr "لم يتم تغيير أية حقول."
+
+#: .\contrib\admin\views\main.py:346
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "تم تغيير %(name)s \"%(obj)s\" بنجاح."
+
+#: .\contrib\admin\views\main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "تم اضافة %(name)s \"%(obj)s\" بنجاح، يمكنك تعديله مرة أخرى بالأسفل."
+
+#: .\contrib\admin\views\main.py:392
+#, python-format
+msgid "Change %s"
+msgstr "تغيير %s"
+
+#: .\contrib\admin\views\main.py:474
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "%(fieldname)s واحد أو أكثر في %(name)s: %(obj)s"
+
+#: .\contrib\admin\views\main.py:479
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "%(fieldname)s واحد أو أكثر في %(name)s:"
+
+#: .\contrib\admin\views\main.py:512
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "تم حذف %(name)s \"%(obj)s\" بنجاح."
+
+#: .\contrib\admin\views\main.py:515
+msgid "Are you sure?"
+msgstr "هل أنت متأكد؟"
+
+#: .\contrib\admin\views\main.py:537
+#, python-format
+msgid "Change history: %s"
+msgstr "تاريخ التغيير: %s"
+
+#: .\contrib\admin\views\main.py:571
+#, python-format
+msgid "Select %s"
+msgstr "اختر %s"
+
+#: .\contrib\admin\views\main.py:571
+#, python-format
+msgid "Select %s to change"
+msgstr "اختر %s لتغييره"
+
+#: .\contrib\admin\views\main.py:747
+msgid "Database error"
+msgstr "خطـأ في قاعدة البيانات"
+
+#: .\contrib\auth\forms.py:30
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "يبدو بأن الكوكيز غير مفعله في متصفحك، الكوكيز مطلوبة للتمكن من الدخول."
+
+#: .\contrib\auth\forms.py:39
+msgid "This account is inactive."
+msgstr "هذا الحساب غير فعال."
+
+#: .\contrib\auth\models.py:37
+#: .\contrib\auth\models.py:56
+msgid "name"
+msgstr "الاسم"
+
+#: .\contrib\auth\models.py:39
+msgid "codename"
+msgstr "الاسم الرمزي"
+
+#: .\contrib\auth\models.py:41
+msgid "permission"
+msgstr "الصلاحية"
+
+#: .\contrib\auth\models.py:42
+#: .\contrib\auth\models.py:57
+msgid "permissions"
+msgstr "الصلاحيات"
+
+#: .\contrib\auth\models.py:59
+msgid "group"
+msgstr "المجموعة"
+
+#: .\contrib\auth\models.py:60
+#: .\contrib\auth\models.py:99
+msgid "groups"
+msgstr "المجموعات"
+
+#: .\contrib\auth\models.py:89
+msgid "username"
+msgstr "اسم المستخدم"
+
+#: .\contrib\auth\models.py:89
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "مطلوب. 30 خانة أو أقل. خانات حرف رقمية فقط (أحرف، أرقام والشرطة السفلية)."
+
+#: .\contrib\auth\models.py:90
+msgid "first name"
+msgstr "الاسم الأول"
+
+#: .\contrib\auth\models.py:91
+msgid "last name"
+msgstr "الاسم الأخير"
+
+#: .\contrib\auth\models.py:92
+msgid "e-mail address"
+msgstr "عنوان البريد الإلكتروني"
+
+#: .\contrib\auth\models.py:93
+msgid "password"
+msgstr "كلمة المرور"
+
+#: .\contrib\auth\models.py:93
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr "استخدم '[algo]$[salt]$[hexdigest]'"
+
+#: .\contrib\auth\models.py:94
+msgid "staff status"
+msgstr "حالة الطاقم"
+
+#: .\contrib\auth\models.py:94
+msgid "Designates whether the user can log into this admin site."
+msgstr "يحدد ما إذا كان المستخدم يستطيع الدخول إلى موقع الإدارة هذا."
+
+#: .\contrib\auth\models.py:95
+msgid "active"
+msgstr "فعال"
+
+#: .\contrib\auth\models.py:95
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "يحدد ما إذا كان المستخدم يستطيع الدخول إلى لوحة تحكم جانغو، قم بتحديد هذا الخيار بدلا من حذف حسابات المستخدمين."
+
+#: .\contrib\auth\models.py:96
+msgid "superuser status"
+msgstr "حالة المستخدم بالقوى الخارقة"
+
+#: .\contrib\auth\models.py:96
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "حدد بأن هذا المستخدم يمتلك كافة الصلاحيات دون الحاجة لتحديدها له تصريحا."
+
+#: .\contrib\auth\models.py:97
+msgid "last login"
+msgstr "آخر عملية دخول"
+
+#: .\contrib\auth\models.py:98
+msgid "date joined"
+msgstr "تاريخ الانضمام"
+
+#: .\contrib\auth\models.py:100
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "بالإضافة إلى الصلاحيات المحددة للمستخدم يدويا، فإن المستخدم يحصل أيضا على كافة صلاحيات المجموعة التي ينتمي إليها."
+
+#: .\contrib\auth\models.py:101
+msgid "user permissions"
+msgstr "صلاحيات المستخدم"
+
+#: .\contrib\auth\models.py:104
+msgid "user"
+msgstr "المستخدم"
+
+#: .\contrib\auth\models.py:105
+msgid "users"
+msgstr "المستخدمين"
+
+#: .\contrib\auth\models.py:110
+msgid "Personal info"
+msgstr "المعلومات الشخصية"
+
+#: .\contrib\auth\models.py:111
+msgid "Permissions"
+msgstr "الصلاحيات"
+
+#: .\contrib\auth\models.py:112
+msgid "Important dates"
+msgstr "تواريخ مهمة"
+
+#: .\contrib\auth\models.py:113
+msgid "Groups"
+msgstr "المجموعات"
+
+#: .\contrib\auth\models.py:250
+msgid "message"
+msgstr "رسالة"
+
+#: .\contrib\auth\views.py:40
+msgid "Logged out"
+msgstr "خروج"
+
+#: .\contrib\comments\models.py:67
+#: .\contrib\comments\models.py:166
+msgid "object ID"
+msgstr "معرف العنصر"
+
+#: .\contrib\comments\models.py:68
+msgid "headline"
+msgstr "عنوان"
+
+#: .\contrib\comments\models.py:69
+#: .\contrib\comments\models.py:90
+#: .\contrib\comments\models.py:167
+msgid "comment"
+msgstr "تعليق"
+
+#: .\contrib\comments\models.py:70
+msgid "rating #1"
+msgstr "تقييم #1"
+
+#: .\contrib\comments\models.py:71
+msgid "rating #2"
+msgstr "تقييم #2"
+
+#: .\contrib\comments\models.py:72
+msgid "rating #3"
+msgstr "تقييم #3"
+
+#: .\contrib\comments\models.py:73
+msgid "rating #4"
+msgstr "تقييم #4"
+
+#: .\contrib\comments\models.py:74
+msgid "rating #5"
+msgstr "تقييم #5"
+
+#: .\contrib\comments\models.py:75
+msgid "rating #6"
+msgstr "تقييم #8"
+
+#: .\contrib\comments\models.py:76
+msgid "rating #7"
+msgstr "تقييم #7"
+
+#: .\contrib\comments\models.py:77
+msgid "rating #8"
+msgstr "تقييم #8"
+
+#: .\contrib\comments\models.py:82
+msgid "is valid rating"
+msgstr "تقييم صالح"
+
+#: .\contrib\comments\models.py:83
+#: .\contrib\comments\models.py:169
+msgid "date/time submitted"
+msgstr "تم ارسال التاريخ/الوقت"
+
+#: .\contrib\comments\models.py:84
+#: .\contrib\comments\models.py:170
+msgid "is public"
+msgstr "عام"
+
+#: .\contrib\comments\models.py:86
+msgid "is removed"
+msgstr "محذوف"
+
+#: .\contrib\comments\models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "قم بتحديد هذا المربع إذا كان التعليق غير لائق، سيتم عرض الرسالة \"تم حذف هذا التعليق\" بدلا منه."
+
+#: .\contrib\comments\models.py:91
+msgid "comments"
+msgstr "تعليقات"
+
+#: .\contrib\comments\models.py:131
+#: .\contrib\comments\models.py:207
+msgid "Content object"
+msgstr "عنصر محتوى"
+
+#: .\contrib\comments\models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"أرسلت بواسطة %(user)s في %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: .\contrib\comments\models.py:168
+msgid "person's name"
+msgstr "اسم الشخص"
+
+#: .\contrib\comments\models.py:171
+msgid "ip address"
+msgstr "عنوان ip"
+
+#: .\contrib\comments\models.py:173
+msgid "approved by staff"
+msgstr "موافق عليه من قبل الطاقم"
+
+#: .\contrib\comments\models.py:176
+msgid "free comment"
+msgstr "تعليق حر"
+
+#: .\contrib\comments\models.py:177
+msgid "free comments"
+msgstr "تعليقات حرة"
+
+#: .\contrib\comments\models.py:233
+msgid "score"
+msgstr "الدرجة"
+
+#: .\contrib\comments\models.py:234
+msgid "score date"
+msgstr "تاريخ الدرجة"
+
+#: .\contrib\comments\models.py:237
+msgid "karma score"
+msgstr "درجة الكارما"
+
+#: .\contrib\comments\models.py:238
+msgid "karma scores"
+msgstr "درجات الكارما"
+
+#: .\contrib\comments\models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "تقييم %(score)d بواسطة %(user)s"
+
+#: .\contrib\comments\models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"هذا التعليق تم تعليمه بواسطة %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: .\contrib\comments\models.py:265
+msgid "flag date"
+msgstr "تاريخ التعليم"
+
+#: .\contrib\comments\models.py:268
+msgid "user flag"
+msgstr "علامة مستخدم"
+
+#: .\contrib\comments\models.py:269
+msgid "user flags"
+msgstr "علامات المستخدم"
+
+#: .\contrib\comments\models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "علامة بواسطة %r"
+
+#: .\contrib\comments\models.py:278
+msgid "deletion date"
+msgstr "تاريخ الحذف"
+
+#: .\contrib\comments\models.py:280
+msgid "moderator deletion"
+msgstr "حذف المراقب"
+
+#: .\contrib\comments\models.py:281
+msgid "moderator deletions"
+msgstr "حذوفات المراقب"
+
+#: .\contrib\comments\models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "حذف المراقب بواسطة %r"
+
+#: .\contrib\comments\templates\comments\form.html.py:6
+msgid "Forgotten your password?"
+msgstr "نسيت كلمة المرور؟"
+
+#: .\contrib\comments\templates\comments\form.html.py:12
+msgid "Ratings"
+msgstr "التقييمات"
+
+#: .\contrib\comments\templates\comments\form.html.py:12
+#: .\contrib\comments\templates\comments\form.html.py:23
+msgid "Required"
+msgstr "مطلوب"
+
+#: .\contrib\comments\templates\comments\form.html.py:12
+#: .\contrib\comments\templates\comments\form.html.py:23
+msgid "Optional"
+msgstr "اختياري"
+
+#: .\contrib\comments\templates\comments\form.html.py:23
+msgid "Post a photo"
+msgstr "ارسال صورة"
+
+#: .\contrib\comments\templates\comments\form.html.py:28
+#: .\contrib\comments\templates\comments\freeform.html.py:5
+msgid "Comment:"
+msgstr "تعليق:"
+
+#: .\contrib\comments\templates\comments\form.html.py:34
+#: .\contrib\comments\templates\comments\freeform.html.py:9
+msgid "Preview comment"
+msgstr "استعراض التعليق"
+
+#: .\contrib\comments\templates\comments\freeform.html.py:4
+msgid "Your name:"
+msgstr "اسمك:"
+
+#: .\contrib\comments\views\comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "هذا التقييم مطلوب لأنك قمت بادخال تقييم واحد على الأقل."
+
+#: .\contrib\comments\views\comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"هذا التعليق كتب بواسطة شخص لديه أقل من تعليق واحد:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"هذا التعليق كتب بواسطة شخص لديه أقل من تعليقان:\n"
+"\n"
+"%(text)s"
+msgstr[2] ""
+"هذا التعليق كتب بواسطة شخص لديه أقل من %(count)s تعليقات:\n"
+"\n"
+"%(text)s"
+msgstr[3] ""
+"هذا التعليق كتب بواسطة شخص لديه أقل من %(count)s تعليق:\n"
+"\n"
+"%(text)s"
+
+#: .\contrib\comments\views\comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"هذا التعليق كتب بواسطة عضو سطحي:\n"
+"\n"
+"%(text)s"
+
+#: .\contrib\comments\views\comments.py:188
+#: .\contrib\comments\views\comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "يسمح باستخدام POST فقط"
+
+#: .\contrib\comments\views\comments.py:192
+#: .\contrib\comments\views\comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "لم يتم ارسال واحد أو أكثر من الحقول المطلوبة."
+
+#: .\contrib\comments\views\comments.py:196
+#: .\contrib\comments\views\comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "شخص ما قام بالتلاعب بنموذج التعليق (انتهاك أمني)"
+
+#: .\contrib\comments\views\comments.py:206
+#: .\contrib\comments\views\comments.py:292
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "نموذج التعليق احتوى 'هدف' غير صحيح -- معرف الكائن كان غير صحيحا"
+
+#: .\contrib\comments\views\comments.py:257
+#: .\contrib\comments\views\comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "نموذج التعليق لم يحدد أيا من 'استعراض' أو 'ارسال'"
+
+#: .\contrib\comments\views\karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "لا يمكن للمستخدمين المجهولين التصويت"
+
+#: .\contrib\comments\views\karma.py:23
+msgid "Invalid comment ID"
+msgstr "معرف التعليق غير صحيح"
+
+#: .\contrib\comments\views\karma.py:25
+msgid "No voting for yourself"
+msgstr "لا يمكنك التصويت لنفسك"
+
+#: .\contrib\contenttypes\models.py:20
+msgid "python model class name"
+msgstr "اسم صنف النموذج في python"
+
+#: .\contrib\contenttypes\models.py:23
+msgid "content type"
+msgstr "نوع البيانات"
+
+#: .\contrib\contenttypes\models.py:24
+msgid "content types"
+msgstr "أنواع البيانات"
+
+#: .\contrib\flatpages\models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "مثال: '/about/contact/'. تأكد من وضع شرطات في البداية والنهاية."
+
+#: .\contrib\flatpages\models.py:9
+msgid "title"
+msgstr "العنوان"
+
+#: .\contrib\flatpages\models.py:10
+msgid "content"
+msgstr "المحتوى"
+
+#: .\contrib\flatpages\models.py:11
+msgid "enable comments"
+msgstr "السماح بالتعليقات"
+
+#: .\contrib\flatpages\models.py:12
+msgid "template name"
+msgstr "اسم القالب"
+
+#: .\contrib\flatpages\models.py:13
+msgid "Example: 'flatpages/contact_page'. If this isn't provided, the system will use 'flatpages/default'."
+msgstr "مثال: 'flatpages/contact_page'. إذا لم يتم تحديده فإن النظام سيقوم باستخدام 'flatpages/default'."
+
+#: .\contrib\flatpages\models.py:14
+msgid "registration required"
+msgstr "التسجيل مطلوب"
+
+#: .\contrib\flatpages\models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "إذا كان هذا الخيار محددا، فإن المستخدمين الداخلين فقط سيتمكنون من مشاهدة الصفحة."
+
+#: .\contrib\flatpages\models.py:18
+msgid "flat page"
+msgstr "صفحة مسطحة"
+
+#: .\contrib\flatpages\models.py:19
+msgid "flat pages"
+msgstr "صفحات مسطحة"
+
+#: .\contrib\redirects\models.py:7
+msgid "redirect from"
+msgstr "نموذج إعادة توجيه"
+
+#: .\contrib\redirects\models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "يجب أن يكون هذا مسارا مطلقا وبدون اسم النطاق. مثال: '/events/search/'."
+
+#: .\contrib\redirects\models.py:9
+msgid "redirect to"
+msgstr "إعادة توجيه إلى"
+
+#: .\contrib\redirects\models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "يجب أن يكون هذا مسارا مطلقا (كما في الذي فوقه) عنوانا كاملا يبدأ بالمقطع 'http://'."
+
+#: .\contrib\redirects\models.py:13
+msgid "redirect"
+msgstr "إعادة توجيه"
+
+#: .\contrib\redirects\models.py:14
+msgid "redirects"
+msgstr "إعادات توجيه"
+
+#: .\contrib\sessions\models.py:41
+msgid "session key"
+msgstr "مفتاح الجلسة"
+
+#: .\contrib\sessions\models.py:42
+msgid "session data"
+msgstr "بيانات الجلسة"
+
+#: .\contrib\sessions\models.py:43
+msgid "expire date"
+msgstr "تاريخ الانتهاء"
+
+#: .\contrib\sessions\models.py:47
+msgid "session"
+msgstr "جلسة"
+
+#: .\contrib\sessions\models.py:48
+msgid "sessions"
+msgstr "جلسات"
+
+#: .\contrib\sites\models.py:10
+msgid "domain name"
+msgstr "اسم النطاق"
+
+#: .\contrib\sites\models.py:11
+msgid "display name"
+msgstr "اسم العرض"
+
+#: .\contrib\sites\models.py:15
+msgid "site"
+msgstr "موقع"
+
+#: .\contrib\sites\models.py:16
+msgid "sites"
+msgstr "مواقع"
+
+#: .\core\validators.py:63
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "هذه القيمة يجب أن تحتوي فقط على الأحرف والأرقام والشرطة السفلية."
+
+#: .\core\validators.py:67
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "هذه القيمة يجب أن تحتوي فقط على الأحرف والأرقام والشرطات السفلية والشرطة العادية والشرطات المائلة."
+
+#: .\core\validators.py:75
+msgid "Uppercase letters are not allowed here."
+msgstr "الحروف الكبيرة غير مسموح بها هنا."
+
+#: .\core\validators.py:79
+msgid "Lowercase letters are not allowed here."
+msgstr "الحروف الصغيرة غير مسموح بها هنا."
+
+#: .\core\validators.py:86
+msgid "Enter only digits separated by commas."
+msgstr "أدخل أرقاما فقط مفصول بينها بفواصل comma."
+
+#: .\core\validators.py:98
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "أدخل عناوين بريد إلكتروني صالحة مفصول بينها بفواصل comma."
+
+#: .\core\validators.py:102
+msgid "Please enter a valid IP address."
+msgstr "أدخل عنوان IP صالح من فضلك."
+
+#: .\core\validators.py:106
+msgid "Empty values are not allowed here."
+msgstr "القيم الفارغة غير مسموح بها هنا."
+
+#: .\core\validators.py:110
+msgid "Non-numeric characters aren't allowed here."
+msgstr "الخانات غير الرقمية غير مسموح بها هنا."
+
+#: .\core\validators.py:114
+msgid "This value can't be comprised solely of digits."
+msgstr "لا يمكن أن تكون القيمة مكونة من الأرقام فقط."
+
+#: .\core\validators.py:119
+msgid "Enter a whole number."
+msgstr "أدخل رقما صحيحا."
+
+#: .\core\validators.py:123
+msgid "Only alphabetical characters are allowed here."
+msgstr "فقط الخانات الحرفية مسموح بها هنا."
+
+#: .\core\validators.py:127
+#: .\db\models\fields\__init__.py:412
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "أدخل تاريخا صحيحا بتنسيق YYYY-MM-DD."
+
+#: .\core\validators.py:131
+msgid "Enter a valid time in HH:MM format."
+msgstr "أدخل وقتا صحيحا بتنسيق HH:MM."
+
+#: .\core\validators.py:135
+#: .\db\models\fields\__init__.py:474
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "أدخل تاريخ/وقت صحيحين بتنسيق YYYY-MM-DD HH:MM."
+
+#: .\core\validators.py:139
+msgid "Enter a valid e-mail address."
+msgstr "أدخل عنوان بريد إلكتروني صحيح."
+
+#: .\core\validators.py:151
+#: .\core\validators.py:379
+#: .\forms\__init__.py:659
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "لم يتم ارسال ملف، الرجاء التأكد من نوع ترميز (encoding type) النموذج."
+
+#: .\core\validators.py:155
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "قم برفع صورة صالحة، الملف الذي قمت برفعه إما أنه ليس ملفا لصورة أو أنه ملف معطوب."
+
+#: .\core\validators.py:162
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "العنوان %s لا يحتوي على صورة صالحة."
+
+#: .\core\validators.py:166
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "رقم الهاتف يجب أن يكون بتنسيق XXX-XXX-XXXX. \"%s\" غير صالح."
+
+#: .\core\validators.py:174
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "هذا العنوان %s لا يشير إلى مقطع فيديو QuickTime صالح."
+
+#: .\core\validators.py:178
+msgid "A valid URL is required."
+msgstr "يجب ادخال عنوان صالح."
+
+#: .\core\validators.py:192
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"مطلوب شفرة HTML صالحة، الأخطاء على وجه التحديد هي:\n"
+"%s"
+
+#: .\core\validators.py:199
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML مهيئة بصورة سيئة: %s"
+
+#: .\core\validators.py:209
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "وصلة غير صالحة: %s"
+
+#: .\core\validators.py:213
+#: .\core\validators.py:215
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "الوصلة %s غير صحيحة."
+
+#: .\core\validators.py:221
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "أدخل اختصار ولاية أمريكية صحيحا."
+
+#: .\core\validators.py:236
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "انته إلى ما تقول! الكلمة %s غير مسموح بها هنا."
+msgstr[1] "انتبه إلى ما تقول! الكلمتان %s غير مسموح بهما هنا."
+msgstr[2] "انتبه إلى ما تقول! الكلمات %s غير مسموح بها هنا."
+msgstr[3] "انتبه إلى ما تقول! الكلمات %s غير مسموح بها هنا."
+
+#: .\core\validators.py:243
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "هذا الحقل يجب أن يطابق الحقل '%s'."
+
+#: .\core\validators.py:262
+msgid "Please enter something for at least one field."
+msgstr "الرجاء ادخال شيء ما في حقل واحد على الأقل."
+
+#: .\core\validators.py:271
+#: .\core\validators.py:282
+msgid "Please enter both fields or leave them both empty."
+msgstr "الرجاء ادخال كلا الحقلين أن ترك كلاهما فارغا."
+
+#: .\core\validators.py:289
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "هذا الحقل يجب أن يعطي إذا كان %(field)s %(value)s"
+
+#: .\core\validators.py:301
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "هذا الحقل يجب أن يعطى إذا لم يكن %(field)s %(value)s"
+
+#: .\core\validators.py:320
+msgid "Duplicate values are not allowed."
+msgstr "القيم المكررة غير مسموح بها."
+
+#: .\core\validators.py:343
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "يجب أن تكون القيام من مضاعفات %s."
+
+#: .\core\validators.py:354
+msgid "Please enter a valid decimal number."
+msgstr "الرجاء ادخال رقم عشري صالح."
+
+#: .\core\validators.py:356
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "رجاء أدخل رقم عشري صالح مكون من خانة واحدة على الأكثر."
+msgstr[1] "رجاء أدخل رقم عشري صالح مكون من خانتين على الأكثر."
+msgstr[2] "رجاء أدخل رقم عشري صالح مكون من %s خانات على الأكثر."
+msgstr[3] "رجاء أدخل رقم عشري صالح مكون من %s خانة على الأكثر."
+
+#: .\core\validators.py:359
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "رجاء أدخل رقم عشري صالح يكون الجزء الصحيح منه مكونا من خانة واحدة على الأكثر."
+msgstr[1] "رجاء أدخل رقم عشري صالح يكون الجزء الصحيح منه مكونا من خانتين على الأكثر."
+msgstr[2] "رجاء أدخل رقم عشري صالح يكون الجزء الصحيح منه مكونا من %s خانات على الأكثر."
+msgstr[3] "رجاء أدخل رقم عشري صالح يكون الجزء الصحيح منه مكونا من %s خانة على الأكثر."
+
+#: .\core\validators.py:362
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "الرجاء ادخال رقم عشري صالح تكون فيه خانة عشرية واحدة على الأكثر."
+msgstr[1] "الرجاء ادخال رقم عشري صالح تكون فيه خانتان عشريتان على الأكثر."
+msgstr[2] "الرجاء ادخال رقم عشري صالح تكون فيه %s خانات عشرية على الأكثر."
+msgstr[3] "الرجاء ادخال رقم عشري صالح تكون فيه %s خانة عشرية على الأكثر."
+
+#: .\core\validators.py:372
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "تأكد من أن حجم الملف الذي قمت برفعه لا يقل عن  %s بايت."
+
+#: .\core\validators.py:373
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "تأكد من أن الملف الذي قمت برفعه لا يزيد عن %s بايت."
+
+#: .\core\validators.py:390
+msgid "The format for this field is wrong."
+msgstr "تنسيق هذا الحقل خاطئ."
+
+#: .\core\validators.py:405
+msgid "This field is invalid."
+msgstr "هذا الحقل غير صحيح."
+
+#: .\core\validators.py:441
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "تعذر جلب أي شيء من %s."
+
+#: .\core\validators.py:444
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "الوصلة %(url)s أعادت ترويسة Content-Type الخاطئة '%(contenttype)s'."
+
+#: .\core\validators.py:477
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "الرجاء اغلاق الوسم %(tag)s في سطر %(line)s. (يبدأ السطر هكذا \"%(start)s\".)"
+
+#: .\core\validators.py:481
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "بعض النص الذي يبدأ في سطر %(line)s غير مسموح به في هذا السياق. (يبدأ السطر هكذا \"%(start)s\".)"
+
+#: .\core\validators.py:486
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" في السطر %(line)s هي سمة غير صالحة. (يبدأ السطر هكذا \"%(start)s\".)"
+
+#: .\core\validators.py:491
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\" في السطر %(line)s وسم غير صالح. (يبدأ السطر هكذا \"%(start)s\".)"
+
+#: .\core\validators.py:495
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "هنالك وسم في السطر %(line)s تنقصه سمة واحدة أو أكثر. (يبدأ السطر هكذا \"%(start)s\".)"
+
+#: .\core\validators.py:500
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "السمة \"%(attr)s\" في السطر %(line)s تمتلك قيمة غير صالحة. (يبدأ السطر هكذا \"%(start)s\".)"
+
+#: .\db\models\manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s مع هذا %(type)s موجودة بالفعل لأجل %(field)s."
+
+#: .\db\models\fields\related.py:51
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "الرجاء ادخال %s صالح."
+
+#: .\db\models\fields\related.py:618
+msgid "Separate multiple IDs with commas."
+msgstr "افصل بين المعرفات بفواصل comma."
+
+#: .\db\models\fields\related.py:620
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "اضغط زر التحكم \"Control\", أو \"Command\" على أجهزة Mac لاختيار أكثر من واحد."
+
+#: .\db\models\fields\related.py:664
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "الرجاء ادخال معرفات %(self)s صالحة، القيمة %(value)r غير صالحة."
+msgstr[1] "الرجاء ادخال معرفات %(self)s صالحة، القيمتان %(value)r غير صالحة."
+msgstr[2] "الرجاء ادخال معرفات %(self)s صالحة، القيم %(value)r غير صالحة."
+msgstr[3] "الرجاء ادخال معرفات %(self)s صالحة، القيم %(value)r غير صالحة."
+
+#: .\db\models\fields\__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s بالحقل %(fieldname)s موجود بالفعل."
+
+#: .\db\models\fields\__init__.py:114
+#: .\db\models\fields\__init__.py:265
+#: .\db\models\fields\__init__.py:548
+#: .\db\models\fields\__init__.py:559
+#: .\forms\__init__.py:346
+msgid "This field is required."
+msgstr "هذا الحقل مطلوب."
+
+#: .\db\models\fields\__init__.py:337
+msgid "This value must be an integer."
+msgstr "هذه القيمة يجب أن تكون رقما صحيحا."
+
+#: .\db\models\fields\__init__.py:369
+msgid "This value must be either True or False."
+msgstr "هذه القيمة يجب أن تكون إما صح أو خطأ."
+
+#: .\db\models\fields\__init__.py:385
+msgid "This field cannot be null."
+msgstr "لا يمكن أن تكون قيمة هذا الحقل لا شيء."
+
+#: .\db\models\fields\__init__.py:568
+msgid "Enter a valid filename."
+msgstr "أدخل اسم ملف صالح."
+
+#: .\forms\__init__.py:381
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "تأكد من أن النص الذي أدخلته أقل من خانة واحدة."
+msgstr[1] "تأكد من أن النص الذي أدخلته أقل من خانتين."
+msgstr[2] "تأكد من أن النص الذي أدخلته أقل من %s خانات."
+msgstr[3] "تأكد من أن النص الذي أدخلته أقل من %s خانة."
+
+#: .\forms\__init__.py:386
+msgid "Line breaks are not allowed here."
+msgstr "الأسطر الجديدة غير مسموح هتا."
+
+#: .\forms\__init__.py:485
+#: .\forms\__init__.py:558
+#: .\forms\__init__.py:597
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "حدد خيارا صحيحا; '%(data)s' ليست ضمن %(choices)s."
+
+#: .\forms\__init__.py:661
+msgid "The submitted file is empty."
+msgstr "الملف الذي قمت بارساله فارغ."
+
+#: .\forms\__init__.py:717
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "أدخل رقما صحيحا بين -32,768 و 32,767."
+
+#: .\forms\__init__.py:727
+msgid "Enter a positive number."
+msgstr "أدخل رقما موجبا."
+
+#: .\forms\__init__.py:737
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "أدخل رقما صحيحا بين 0 و 32,767."
+
+#: .\template\defaultfilters.py:401
+msgid "yes,no,maybe"
+msgstr "نعم،لا،ربما"
+
+#: .\utils\dates.py:6
+msgid "Monday"
+msgstr "الاثنين"
+
+#: .\utils\dates.py:6
+msgid "Tuesday"
+msgstr "الثلاثاء"
+
+#: .\utils\dates.py:6
+msgid "Wednesday"
+msgstr "الأربعاء"
+
+#: .\utils\dates.py:6
+msgid "Thursday"
+msgstr "الخميس"
+
+#: .\utils\dates.py:6
+msgid "Friday"
+msgstr "الجمعة"
+
+#: .\utils\dates.py:7
+msgid "Saturday"
+msgstr "السبت"
+
+#: .\utils\dates.py:7
+msgid "Sunday"
+msgstr "الأحد"
+
+#: .\utils\dates.py:14
+msgid "January"
+msgstr "يناير"
+
+#: .\utils\dates.py:14
+msgid "February"
+msgstr "فبراير"
+
+#: .\utils\dates.py:14
+#: .\utils\dates.py:27
+msgid "March"
+msgstr "مارس"
+
+#: .\utils\dates.py:14
+#: .\utils\dates.py:27
+msgid "April"
+msgstr "ابريل"
+
+#: .\utils\dates.py:14
+#: .\utils\dates.py:27
+msgid "May"
+msgstr "مايو"
+
+#: .\utils\dates.py:14
+#: .\utils\dates.py:27
+msgid "June"
+msgstr "يونيو"
+
+#: .\utils\dates.py:15
+#: .\utils\dates.py:27
+msgid "July"
+msgstr "يوليو"
+
+#: .\utils\dates.py:15
+msgid "August"
+msgstr "أغسطس"
+
+#: .\utils\dates.py:15
+msgid "September"
+msgstr "سبتمبر"
+
+#: .\utils\dates.py:15
+msgid "October"
+msgstr "أكتوبر"
+
+#: .\utils\dates.py:15
+msgid "November"
+msgstr "نوفمبر"
+
+#: .\utils\dates.py:16
+msgid "December"
+msgstr "ديسمبر"
+
+#: .\utils\dates.py:19
+msgid "jan"
+msgstr ""
+
+#: .\utils\dates.py:19
+msgid "feb"
+msgstr ""
+
+#: .\utils\dates.py:19
+msgid "mar"
+msgstr ""
+
+#: .\utils\dates.py:19
+msgid "apr"
+msgstr ""
+
+#: .\utils\dates.py:19
+msgid "may"
+msgstr ""
+
+#: .\utils\dates.py:19
+msgid "jun"
+msgstr ""
+
+#: .\utils\dates.py:20
+msgid "jul"
+msgstr ""
+
+#: .\utils\dates.py:20
+msgid "aug"
+msgstr ""
+
+#: .\utils\dates.py:20
+msgid "sep"
+msgstr ""
+
+#: .\utils\dates.py:20
+msgid "oct"
+msgstr ""
+
+#: .\utils\dates.py:20
+msgid "nov"
+msgstr ""
+
+#: .\utils\dates.py:20
+msgid "dec"
+msgstr ""
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "يناير"
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "فبراير"
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "أغسطس"
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "سبتمبر"
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "أكتوبر"
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "نوفمبر"
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "ديسمبر"
+
+#: .\utils\timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "سنة"
+msgstr[1] "سنتان"
+msgstr[2] "سنوات"
+msgstr[3] "سنة"
+
+#: .\utils\timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "شهر"
+msgstr[1] "شهران"
+msgstr[2] "شهور"
+msgstr[3] "شهر"
+
+#: .\utils\timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "أسبوع"
+msgstr[1] "أسبوعان"
+msgstr[2] "أسابيع"
+msgstr[3] "أسبوع"
+
+#: .\utils\timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "يوم"
+msgstr[1] "يومان"
+msgstr[2] "أيام"
+msgstr[3] "يوم"
+
+#: .\utils\timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "ساعة"
+msgstr[1] "ساعتان"
+msgstr[2] "ساعات"
+msgstr[3] "ساعة"
+
+#: .\utils\timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "دقيقة"
+msgstr[1] "دقيقتان"
+msgstr[2] "دقائق"
+msgstr[3] "دقيقة"
+
+#: .\utils\translation.py:363
+msgid "DATE_FORMAT"
+msgstr ""
+
+#: .\utils\translation.py:364
+msgid "DATETIME_FORMAT"
+msgstr ""
+
+#: .\utils\translation.py:365
+msgid "TIME_FORMAT"
+msgstr ""
+
+#: .\utils\translation.py:381
+msgid "YEAR_MONTH_FORMAT"
+msgstr ""
+
+#: .\utils\translation.py:382
+msgid "MONTH_DAY_FORMAT"
+msgstr ""
+
diff --git a/webapp/django/conf/locale/ar/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/ar/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..9e50b91
--- /dev/null
+++ b/webapp/django/conf/locale/ar/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ar/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/ar/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..d08ffcf
--- /dev/null
+++ b/webapp/django/conf/locale/ar/LC_MESSAGES/djangojs.po
@@ -0,0 +1,110 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: 2006-07-06 23:50+0300\n"
+"Last-Translator: Ahmad Alhashemi <ahmad@ahmadh.com>\n"
+"Language-Team: Ahmad Alhashemi <trans@ahmadh.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Arabic\n"
+"X-Poedit-Country: Kuwait\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s متوفرة"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "اختيار الكل"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "إضافة"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "حذف"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s اختيرت"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "حدد خيارك أو خياراتك واضغط"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "مسح الكل"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid "January February March April May June July August September October November December"
+msgstr "يناير فبراير مارس إبريل مايو يونيو يوليو أغسطس سبتمبر أكتوبر نوفمبر ديسمبر"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "الأحد الأثنين الثلاثاء الأربعاء الخميس الجمعة السبت"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "أ أ ث أ خ ج س"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "الآن"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "الساعة"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "اختر وقتا ما"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "منتصف الليل"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6 ص."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "الظهر"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "الغاء"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "اليوم"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "التقويم"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "يوم أمس"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "الغد"
+
diff --git a/webapp/django/conf/locale/bg/LC_MESSAGES/django.mo b/webapp/django/conf/locale/bg/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..c1993c6
--- /dev/null
+++ b/webapp/django/conf/locale/bg/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/bg/LC_MESSAGES/django.po b/webapp/django/conf/locale/bg/LC_MESSAGES/django.po
new file mode 100644
index 0000000..eae6c2b
--- /dev/null
+++ b/webapp/django/conf/locale/bg/LC_MESSAGES/django.po
@@ -0,0 +1,5326 @@
+# translation of django.po to Bulgarian
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-02-25 12:38+0200\n"
+"PO-Revision-Date: 2008-03-12 13:01+0200\n"
+"Last-Translator: Vladislav <vladislav.mitov@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: conf/global_settings.py:39
+#: django/conf/global_settings.py:39
+msgid "Arabic"
+msgstr "арабски"
+
+#: conf/global_settings.py:40
+#: django/conf/global_settings.py:40
+msgid "Bengali"
+msgstr "бенгалски"
+
+#: conf/global_settings.py:41
+#: django/conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "български"
+
+#: conf/global_settings.py:42
+#: django/conf/global_settings.py:42
+msgid "Catalan"
+msgstr "каталонски"
+
+#: conf/global_settings.py:43
+#: django/conf/global_settings.py:43
+msgid "Czech"
+msgstr "чешки"
+
+#: conf/global_settings.py:44
+#: django/conf/global_settings.py:44
+msgid "Welsh"
+msgstr "уелски"
+
+#: conf/global_settings.py:45
+#: django/conf/global_settings.py:45
+msgid "Danish"
+msgstr "датски"
+
+#: conf/global_settings.py:46
+#: django/conf/global_settings.py:46
+msgid "German"
+msgstr "немски"
+
+#: conf/global_settings.py:47
+#: django/conf/global_settings.py:47
+msgid "Greek"
+msgstr "гръцки"
+
+#: conf/global_settings.py:48
+#: django/conf/global_settings.py:48
+msgid "English"
+msgstr "английски"
+
+#: conf/global_settings.py:49
+#: django/conf/global_settings.py:49
+msgid "Spanish"
+msgstr "испански"
+
+#: conf/global_settings.py:50
+#: django/conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "аржентински испански"
+
+#: conf/global_settings.py:51
+#: django/conf/global_settings.py:51
+msgid "Basque"
+msgstr "Баски"
+
+#: conf/global_settings.py:52
+#: django/conf/global_settings.py:52
+msgid "Persian"
+msgstr "персийски"
+
+#: conf/global_settings.py:53
+#: django/conf/global_settings.py:53
+msgid "Finnish"
+msgstr "финландски"
+
+#: conf/global_settings.py:54
+#: django/conf/global_settings.py:54
+msgid "French"
+msgstr "френски"
+
+#: conf/global_settings.py:55
+#: django/conf/global_settings.py:55
+msgid "Irish"
+msgstr "ирландски"
+
+#: conf/global_settings.py:56
+#: django/conf/global_settings.py:56
+msgid "Galician"
+msgstr "галицейски"
+
+#: conf/global_settings.py:57
+#: django/conf/global_settings.py:57
+msgid "Hungarian"
+msgstr "унгарски"
+
+#: conf/global_settings.py:58
+#: django/conf/global_settings.py:58
+msgid "Hebrew"
+msgstr "еврит"
+
+#: conf/global_settings.py:59
+#: django/conf/global_settings.py:59
+msgid "Croatian"
+msgstr "хърватски"
+
+#: conf/global_settings.py:60
+#: django/conf/global_settings.py:60
+msgid "Icelandic"
+msgstr "исландски"
+
+#: conf/global_settings.py:61
+#: django/conf/global_settings.py:61
+msgid "Italian"
+msgstr "италиански"
+
+#: conf/global_settings.py:62
+#: django/conf/global_settings.py:62
+msgid "Japanese"
+msgstr "японски"
+
+#: conf/global_settings.py:63
+#: django/conf/global_settings.py:63
+msgid "Georgian"
+msgstr "грузински"
+
+#: conf/global_settings.py:64
+#: django/conf/global_settings.py:64
+msgid "Korean"
+msgstr "корейски"
+
+#: conf/global_settings.py:65
+#: django/conf/global_settings.py:65
+msgid "Khmer"
+msgstr "Кхмерски"
+
+#: conf/global_settings.py:66
+#: django/conf/global_settings.py:66
+msgid "Kannada"
+msgstr "каннада (индийски)"
+
+#: conf/global_settings.py:67
+#: django/conf/global_settings.py:67
+msgid "Latvian"
+msgstr "латвийски"
+
+#: conf/global_settings.py:68
+#: django/conf/global_settings.py:68
+msgid "Macedonian"
+msgstr "македонски"
+
+#: conf/global_settings.py:69
+#: django/conf/global_settings.py:69
+msgid "Dutch"
+msgstr "холандски"
+
+#: conf/global_settings.py:70
+#: django/conf/global_settings.py:70
+msgid "Norwegian"
+msgstr "норвежки"
+
+#: conf/global_settings.py:71
+#: django/conf/global_settings.py:71
+msgid "Polish"
+msgstr "полски"
+
+#: conf/global_settings.py:72
+#: django/conf/global_settings.py:72
+msgid "Portugese"
+msgstr "португалски"
+
+#: conf/global_settings.py:73
+#: django/conf/global_settings.py:73
+msgid "Brazilian"
+msgstr "бразилски"
+
+#: conf/global_settings.py:74
+#: django/conf/global_settings.py:74
+msgid "Romanian"
+msgstr "ромънски"
+
+#: conf/global_settings.py:75
+#: django/conf/global_settings.py:75
+msgid "Russian"
+msgstr "руски"
+
+#: conf/global_settings.py:76
+#: django/conf/global_settings.py:76
+msgid "Slovak"
+msgstr "словашки"
+
+#: conf/global_settings.py:77
+#: django/conf/global_settings.py:77
+msgid "Slovenian"
+msgstr "словенски"
+
+#: conf/global_settings.py:78
+#: django/conf/global_settings.py:78
+msgid "Serbian"
+msgstr "сръбски"
+
+#: conf/global_settings.py:79
+#: django/conf/global_settings.py:79
+msgid "Swedish"
+msgstr "шведски"
+
+#: conf/global_settings.py:80
+#: django/conf/global_settings.py:80
+msgid "Tamil"
+msgstr "тамил (индийски)"
+
+#: conf/global_settings.py:81
+#: django/conf/global_settings.py:81
+msgid "Telugu"
+msgstr "телугу (индийски)"
+
+#: conf/global_settings.py:82
+#: django/conf/global_settings.py:82
+msgid "Turkish"
+msgstr "турски"
+
+#: conf/global_settings.py:83
+#: django/conf/global_settings.py:83
+msgid "Ukrainian"
+msgstr "украински"
+
+#: conf/global_settings.py:84
+#: django/conf/global_settings.py:84
+msgid "Simplified Chinese"
+msgstr "китайски"
+
+#: conf/global_settings.py:85
+#: django/conf/global_settings.py:85
+msgid "Traditional Chinese"
+msgstr "традиционен китайски"
+
+#: contrib/admin/filterspecs.py:44
+#: django/contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>По %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74
+#: contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147
+#: contrib/admin/filterspecs.py:173
+#: django/contrib/admin/filterspecs.py:74
+#: django/contrib/admin/filterspecs.py:92
+#: django/contrib/admin/filterspecs.py:147
+#: django/contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Всички"
+
+#: contrib/admin/filterspecs.py:113
+#: django/contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Коя-да-е дата"
+
+#: contrib/admin/filterspecs.py:114
+#: django/contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Днес"
+
+#: contrib/admin/filterspecs.py:117
+#: django/contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Последните 7 дни"
+
+#: contrib/admin/filterspecs.py:119
+#: django/contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Този месец"
+
+#: contrib/admin/filterspecs.py:121
+#: django/contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Тази година"
+
+#: contrib/admin/filterspecs.py:147
+#: django/contrib/admin/filterspecs.py:147
+#: django/newforms/widgets.py:231
+#: django/oldforms/__init__.py:592
+#: newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Да"
+
+#: contrib/admin/filterspecs.py:147
+#: django/contrib/admin/filterspecs.py:147
+#: django/newforms/widgets.py:231
+#: django/oldforms/__init__.py:592
+#: newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Не"
+
+#: contrib/admin/filterspecs.py:154
+#: django/contrib/admin/filterspecs.py:154
+#: django/newforms/widgets.py:231
+#: django/oldforms/__init__.py:592
+#: newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Неизвестно"
+
+#: contrib/admin/models.py:18
+#: django/contrib/admin/models.py:18
+msgid "action time"
+msgstr "време на действие"
+
+#: contrib/admin/models.py:21
+#: django/contrib/admin/models.py:21
+msgid "object id"
+msgstr "id на обекта"
+
+#: contrib/admin/models.py:22
+#: django/contrib/admin/models.py:22
+msgid "object repr"
+msgstr "repr на обекта"
+
+#: contrib/admin/models.py:23
+#: django/contrib/admin/models.py:23
+msgid "action flag"
+msgstr "флаг за действие"
+
+#: contrib/admin/models.py:24
+#: django/contrib/admin/models.py:24
+msgid "change message"
+msgstr "смени съобщение"
+
+#: contrib/admin/models.py:27
+#: django/contrib/admin/models.py:27
+msgid "log entry"
+msgstr "записка"
+
+#: contrib/admin/models.py:28
+#: django/contrib/admin/models.py:28
+msgid "log entries"
+msgstr "записки"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+#: django/contrib/admin/templates/admin/404.html:4
+#: django/contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Няма такава страница"
+
+#: contrib/admin/templates/admin/404.html:10
+#: django/contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Сори, ама тая страничка липсва.  "
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: django/contrib/admin/templates/admin/500.html:4
+#: django/contrib/admin/templates/admin/base.html:37
+#: django/contrib/admin/templates/admin/change_form.html:12
+#: django/contrib/admin/templates/admin/change_list.html:5
+#: django/contrib/admin/templates/admin/delete_confirmation.html:5
+#: django/contrib/admin/templates/admin/invalid_setup.html:4
+#: django/contrib/admin/templates/admin/object_history.html:4
+#: django/contrib/admin/templates/admin/auth/user/change_password.html:11
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: django/contrib/admin/templates/registration/logged_out.html:4
+#: django/contrib/admin/templates/registration/password_change_done.html:3
+#: django/contrib/admin/templates/registration/password_change_form.html:3
+#: django/contrib/admin/templates/registration/password_reset_done.html:4
+#: django/contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Начало"
+
+#: contrib/admin/templates/admin/500.html:4
+#: django/contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Сървърна грешка"
+
+#: contrib/admin/templates/admin/500.html:6
+#: django/contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Сървърна грешка (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+#: django/contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Server Error <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+#: django/contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Малък проблем.  Администраторът на сайта е уведомен за случилото се.  Благодарим за проявеното разбиране.  "
+
+#: contrib/admin/templates/admin/base.html:26
+#: django/contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Добре дошли,"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: django/contrib/admin/templates/admin/base.html:28
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Документация"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+#: django/contrib/admin/templates/admin/base.html:29
+#: django/contrib/admin/templates/admin/auth/user/change_password.html:14
+#: django/contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Промени парола"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+#: django/contrib/admin/templates/admin/base.html:30
+#: django/contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Изход"
+
+#: contrib/admin/templates/admin/base_site.html:4
+#: django/contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Административен панел"
+
+#: contrib/admin/templates/admin/base_site.html:7
+#: django/contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Административен панел"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+#: django/contrib/admin/templates/admin/change_form.html:14
+#: django/contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Добави"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+#: django/contrib/admin/templates/admin/change_form.html:20
+#: django/contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "История"
+
+#: contrib/admin/templates/admin/change_form.html:21
+#: django/contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Разгледай в сайта"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+#: django/contrib/admin/templates/admin/change_form.html:31
+#: django/contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgstr "Коригирайте долу допуснатата грешка.  "
+
+#: contrib/admin/templates/admin/change_form.html:49
+#: django/contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Подреждане"
+
+#: contrib/admin/templates/admin/change_form.html:52
+#: django/contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Подредба:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#: django/contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Добави %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+#: django/contrib/admin/templates/admin/delete_confirmation.html:8
+#: django/contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Изтрий"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#: django/contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Изтриването на обекта %(object_name)s '%(escaped_object)s' не може да бъде извършено без да се изтрият и някой свързани обекти, върху които обаче нямате права: "
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#: django/contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Наистина ли искате да затрием обектите %(object_name)s \"%(escaped_object)s\"? Следните свързани елементи също ще бъдат изтрити:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+#: django/contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Абсолютно"
+
+#: contrib/admin/templates/admin/filter.html:2
+#: django/contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " По %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+#: django/contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Филтър"
+
+#: contrib/admin/templates/admin/index.html:17
+#: django/contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Модели в приложението %(name)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#: django/contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+#: django/contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Промени"
+
+#: contrib/admin/templates/admin/index.html:44
+#: django/contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Нямате права да редактирате каквото и да е."
+
+#: contrib/admin/templates/admin/index.html:52
+#: django/contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Пресни действия"
+
+#: contrib/admin/templates/admin/index.html:53
+#: django/contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Моите действия"
+
+#: contrib/admin/templates/admin/index.html:57
+#: django/contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Няма налични"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+#: django/contrib/admin/templates/admin/invalid_setup.html:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Има някакъв проблем с базата данни.  Проверете дали необходимите таблици са създадени и дали съответния потребител има необходимите права за достъп.  "
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: django/contrib/admin/templates/admin/login.html:17
+#: django/contrib/comments/templates/comments/form.html:6
+#: django/contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Потребител:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+#: django/contrib/admin/templates/admin/login.html:20
+#: django/contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Парола:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:25
+#: django/contrib/admin/templates/admin/login.html:25
+#: django/contrib/admin/views/decorators.py:31
+msgid "Log in"
+msgstr "Вход"
+
+#: contrib/admin/templates/admin/object_history.html:17
+#: django/contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Дата/час"
+
+#: contrib/admin/templates/admin/object_history.html:18
+#: django/contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Потребител"
+
+#: contrib/admin/templates/admin/object_history.html:19
+#: django/contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Действие"
+
+#: contrib/admin/templates/admin/object_history.html:25
+#: django/contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j N, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:35
+#: django/contrib/admin/templates/admin/object_history.html:35
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Този обект няма исторя на промените.  Вероятно не е добавен чрез административния панел.  "
+
+#: contrib/admin/templates/admin/pagination.html:10
+#: django/contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Покажи всички"
+
+#: contrib/admin/templates/admin/search_form.html:8
+#: django/contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Давай"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#: django/contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgstr "1 резултат"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#: django/contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s общо"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+#: django/contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Запис като нов"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+#: django/contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Запис и нов"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+#: django/contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Запис и продължение"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+#: django/contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Запис"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+#: django/contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Първо, въведете потребител и парола.  След това ще можете да редактирате повече детайли.  "
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+#: django/contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Потребител"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: django/contrib/admin/templates/admin/auth/user/add_form.html:18
+#: django/contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Парола"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+#: django/contrib/admin/templates/admin/auth/user/add_form.html:23
+#: django/contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Парола (пак)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: django/contrib/admin/templates/admin/auth/user/add_form.html:24
+#: django/contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "Въведете същата парола още веднъж за проверка.  "
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#: django/contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Въведете нова парола за потребител <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklet-и"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Bookmarklet-и за документация"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">За да инсталирате bookmarklet-и, задърпайте линка в bookmarks\n"
+"toolbar-а, или щракнете с десния бутон и добавете линка в отметките. Сега можете да\n"
+"изберете bookmarklet-а от която и да е страница.  Някой от тези\n"
+"bookmarklet-и могат да се разглеждат само от компютър, който е маркиран \n"
+"като \"вътрешен\" (приказвайте с администратора ако не сте сигурни дали\n"
+"компютърът ви е \"вътрешен\").</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Документация за тази страница"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Препраща от която и да е страница към документацията за изгледа, който я е генерирал.  "
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "ID на обекта"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Показва типът на съдържанието и ID-то на страници, които представляват единичен обект.  "
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Редактирай този обект (в този прозорец)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Отива в админската страница за страници, които представляват единичен обект.  "
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Редактирай този обект (в нов прозорец)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+#: django/contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Като горното, но отваря администраторската страница в нов прозорец."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+#: django/contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Благодарим Ви, че използвахте този сайт днес.  "
+
+#: contrib/admin/templates/registration/logged_out.html:10
+#: django/contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Влез пак"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+#: django/contrib/admin/templates/registration/password_change_done.html:3
+#: django/contrib/admin/templates/registration/password_change_form.html:3
+#: django/contrib/admin/templates/registration/password_change_form.html:5
+#: django/contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Промяна на парола"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+#: django/contrib/admin/templates/registration/password_change_done.html:5
+#: django/contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Паролата е сменена успешно"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+#: django/contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Паролата ви е сменена."
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+#: django/contrib/admin/templates/registration/password_change_form.html:11
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Въведете си старата парола (за сигурност), след което въведете желаната нова парола два пъти за да не стават грешки.  "
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+#: django/contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Стара парола:"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+#: django/contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Нова парола:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+#: django/contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Потвърдете паролата:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+#: django/contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Промяна на парола"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: django/contrib/admin/templates/registration/password_reset_done.html:4
+#: django/contrib/admin/templates/registration/password_reset_form.html:4
+#: django/contrib/admin/templates/registration/password_reset_form.html:6
+#: django/contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Нова парола"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+#: django/contrib/admin/templates/registration/password_reset_done.html:6
+#: django/contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Паролата е успешно обновена"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+#: django/contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Пратихме ви нова парола на адреса, който указахте.  Скоро трябва да пристигне.  "
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+#: django/contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Получавате този e-mail, защото сте поръчали да Ви бъде издадена нова парола "
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#: django/contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "за Вашия потребителски акаунт в %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#: django/contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Новата Ви парола е: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+#: django/contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Тази парола може да си я смените като щракнете тук:  "
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+#: django/contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Вашето потребителско име (ако не го помните): "
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#: django/contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Много се радваме, че използвате сайта ни!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#: django/contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Готините хора от %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+#: django/contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Забравена парола?  Няма проблеми.  Въведете си e-mail адреса по-долу и ще ви изпратим нова!"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+#: django/contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mail адрес:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+#: django/contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Нова парола"
+
+#: contrib/admin/templates/widget/date_time.html:3
+#: django/contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Дата:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+#: django/contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Час:"
+
+#: contrib/admin/templates/widget/file.html:2
+#: django/contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Сега:"
+
+#: contrib/admin/templates/widget/file.html:3
+#: django/contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Промяна:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+#: django/contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Всички дати"
+
+#: contrib/admin/views/auth.py:20
+#: contrib/admin/views/main.py:267
+#: django/contrib/admin/views/auth.py:20
+#: django/contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Обектът %(name)s \"%(obj)s\" бе успешно добавен.  "
+
+#: contrib/admin/views/auth.py:25
+#: contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+#: django/contrib/admin/views/auth.py:25
+#: django/contrib/admin/views/main.py:271
+#: django/contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Може да го редактирате пак по-долу.  "
+
+#: contrib/admin/views/auth.py:31
+#: django/contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Добави потребител"
+
+#: contrib/admin/views/auth.py:58
+#: django/contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Паролата бе успешно сменена.  "
+
+#: contrib/admin/views/auth.py:65
+#: django/contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Смени парола: %s"
+
+#: contrib/admin/views/decorators.py:11
+#: contrib/auth/forms.py:60
+#: django/contrib/admin/views/decorators.py:17
+#: django/contrib/auth/forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Въведете правилно потребителско име и парола.  И двете полета правят разлика между малки и големи букви!"
+
+#: contrib/admin/views/decorators.py:63
+#: django/contrib/admin/views/decorators.py:69
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Влезте пак, понеже сесията ви изтече.  Не се притеснявайте -- данните ви са записани.  "
+
+#: contrib/admin/views/decorators.py:70
+#: django/contrib/admin/views/decorators.py:76
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Браузерът ви май не е настроен да приема cookies.  Пуснете ги и заредете страницата на ново.  "
+
+#: contrib/admin/views/decorators.py:84
+#: django/contrib/admin/views/decorators.py:90
+msgid "Usernames cannot contain the '@' character."
+msgstr "Потребителските имена не могат да съдържат символа '@'."
+
+#: contrib/admin/views/decorators.py:86
+#: django/contrib/admin/views/decorators.py:92
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "E-mail адресът ти не ти е потребителско име.  Пробвай '%s'."
+
+#: contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+#: django/contrib/admin/views/doc.py:48
+#: django/contrib/admin/views/doc.py:50
+#: django/contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "таг:"
+
+#: contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+#: django/contrib/admin/views/doc.py:79
+#: django/contrib/admin/views/doc.py:81
+#: django/contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "филтър:"
+
+#: contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+#: django/contrib/admin/views/doc.py:137
+#: django/contrib/admin/views/doc.py:139
+#: django/contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "изглед:"
+
+#: contrib/admin/views/doc.py:166
+#: django/contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "Приложението %r липсва"
+
+#: contrib/admin/views/doc.py:173
+#: django/contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Моделът %(name)r го няма в приложение %(label)r"
+
+#: contrib/admin/views/doc.py:185
+#: django/contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "свързаният обект `%(label)s.%(type)s` "
+
+#: contrib/admin/views/doc.py:185
+#: contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221
+#: contrib/admin/views/doc.py:226
+#: django/contrib/admin/views/doc.py:185
+#: django/contrib/admin/views/doc.py:207
+#: django/contrib/admin/views/doc.py:221
+#: django/contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "модел:"
+
+#: contrib/admin/views/doc.py:216
+#: django/contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "свързани `%(label)s.%(name)s` обекти"
+
+#: contrib/admin/views/doc.py:221
+#: django/contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "всички %s"
+
+#: contrib/admin/views/doc.py:226
+#: django/contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "брой %s"
+
+#: contrib/admin/views/doc.py:231
+#: django/contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Полета на %s обекти"
+
+#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306
+#: contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313
+#: contrib/admin/views/doc.py:315
+#: django/contrib/admin/views/doc.py:293
+#: django/contrib/admin/views/doc.py:304
+#: django/contrib/admin/views/doc.py:306
+#: django/contrib/admin/views/doc.py:312
+#: django/contrib/admin/views/doc.py:313
+#: django/contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Цяло число"
+
+#: contrib/admin/views/doc.py:294
+#: django/contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (True или False)"
+
+#: contrib/admin/views/doc.py:295
+#: contrib/admin/views/doc.py:314
+#: django/contrib/admin/views/doc.py:295
+#: django/contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Символен низ (до %(max_length)s символа)"
+
+#: contrib/admin/views/doc.py:296
+#: django/contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Цели числа, разделени с запетая"
+
+#: contrib/admin/views/doc.py:297
+#: django/contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Дата (без час)"
+
+#: contrib/admin/views/doc.py:298
+#: django/contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Дата (и час)"
+
+#: contrib/admin/views/doc.py:299
+#: django/contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Десетична дроб"
+
+#: contrib/admin/views/doc.py:300
+#: django/contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "E-mail адрес"
+
+#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+#: django/contrib/admin/views/doc.py:301
+#: django/contrib/admin/views/doc.py:302
+#: django/contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Път към файл"
+
+#: contrib/admin/views/doc.py:303
+#: django/contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Число с плаваща запетая"
+
+#: contrib/admin/views/doc.py:307
+#: contrib/comments/models.py:89
+#: django/contrib/admin/views/doc.py:307
+#: django/contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP адрес"
+
+#: contrib/admin/views/doc.py:309
+#: django/contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (Възможните стойности са True, False или None)"
+
+#: contrib/admin/views/doc.py:310
+#: django/contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Връзка с родителския обект"
+
+#: contrib/admin/views/doc.py:311
+#: django/contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Телефонен номер"
+
+#: contrib/admin/views/doc.py:316
+#: django/contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Текст"
+
+#: contrib/admin/views/doc.py:317
+#: django/contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Час"
+
+#: contrib/admin/views/doc.py:318
+#: contrib/flatpages/models.py:7
+#: django/contrib/admin/views/doc.py:318
+#: django/contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:319
+#: django/contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "американски щат (две главни букви)"
+
+#: contrib/admin/views/doc.py:320
+#: django/contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "XML текст"
+
+#: contrib/admin/views/doc.py:346
+#: django/contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s не прилича на обект от тип urlpattern"
+
+#: contrib/admin/views/main.py:233
+#: django/contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Администрация на сайта"
+
+#: contrib/admin/views/main.py:280
+#: contrib/admin/views/main.py:365
+#: django/contrib/admin/views/main.py:280
+#: django/contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Може да добавите още един обект %s по-долу.  "
+
+#: contrib/admin/views/main.py:298
+#: django/contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "Добави %s"
+
+#: contrib/admin/views/main.py:344
+#: django/contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "Добавен %s."
+
+#: contrib/admin/views/main.py:344
+#: contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348
+#: core/validators.py:283
+#: db/models/manipulators.py:309
+#: django/contrib/admin/views/main.py:344
+#: django/contrib/admin/views/main.py:346
+#: django/contrib/admin/views/main.py:348
+#: django/core/validators.py:283
+#: django/db/models/manipulators.py:309
+msgid "and"
+msgstr "и"
+
+#: contrib/admin/views/main.py:346
+#: django/contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "Променен %s."
+
+#: contrib/admin/views/main.py:348
+#: django/contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "Изтрит %s."
+
+#: contrib/admin/views/main.py:351
+#: django/contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Няма променени полета."
+
+#: contrib/admin/views/main.py:354
+#: django/contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Обектът %(name)s \"%(obj)s\" бе успешно актуализиран.  "
+
+#: contrib/admin/views/main.py:362
+#: django/contrib/admin/views/main.py:362
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "Обектът %(name)s \"%(obj)s\" бе успешно добавен.  Може да го редактирате по-долу.  "
+
+#: contrib/admin/views/main.py:400
+#: django/contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "Промени %s"
+
+#: contrib/admin/views/main.py:487
+#: django/contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Едно или повече %(fieldname)s в %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#: django/contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Едно или повече %(fieldname)s в %(name)s:"
+
+#: contrib/admin/views/main.py:524
+#: django/contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Обектът %(name)s \"%(obj)s\" бе успешно изтрит.  "
+
+#: contrib/admin/views/main.py:527
+#: django/contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Сериозно?"
+
+#: contrib/admin/views/main.py:549
+#: django/contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "История на промените: %s"
+
+#: contrib/admin/views/main.py:583
+#: django/contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "Изберете %s"
+
+#: contrib/admin/views/main.py:583
+#: django/contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "Изберете %s за промяна"
+
+#: contrib/admin/views/main.py:784
+#: django/contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr "Грешка с базата данни"
+
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+#: django/contrib/auth/forms.py:17
+#: django/contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Двете полета за паролата не съвпадат.  "
+
+#: contrib/auth/forms.py:25
+#: django/contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Потребител с това потребителско име вече съществува.  "
+
+#: contrib/auth/forms.py:53
+#: django/contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Браузерът, който използвате не поддържа cookies, а те са необходими за да можете да се логнете.  "
+
+#: contrib/auth/forms.py:62
+#: django/contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Този акаунт е деактивиран."
+
+#: contrib/auth/forms.py:84
+#: django/contrib/auth/forms.py:84
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "С този email адрес няма обвързан потребителски акаунт.  Сигурни ли сте, че сте се регистрирали?"
+
+#: contrib/auth/forms.py:107
+#: django/contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Паролата се сменя на %s"
+
+#: contrib/auth/forms.py:117
+#: django/contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Двете полета за нова парола не съвпадат.  "
+
+#: contrib/auth/forms.py:124
+#: django/contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Въвели сте погрешна стара парола.  Въведете я пак.  "
+
+#: contrib/auth/models.py:73
+#: contrib/auth/models.py:93
+#: django/contrib/auth/models.py:73
+#: django/contrib/auth/models.py:93
+msgid "name"
+msgstr "име"
+
+#: contrib/auth/models.py:75
+#: django/contrib/auth/models.py:75
+msgid "codename"
+msgstr "код"
+
+#: contrib/auth/models.py:78
+#: django/contrib/auth/models.py:78
+msgid "permission"
+msgstr "право"
+
+#: contrib/auth/models.py:79
+#: contrib/auth/models.py:94
+#: django/contrib/auth/models.py:79
+#: django/contrib/auth/models.py:94
+msgid "permissions"
+msgstr "права"
+
+#: contrib/auth/models.py:97
+#: django/contrib/auth/models.py:97
+msgid "group"
+msgstr "група"
+
+#: contrib/auth/models.py:98
+#: contrib/auth/models.py:141
+#: django/contrib/auth/models.py:98
+#: django/contrib/auth/models.py:141
+msgid "groups"
+msgstr "групи"
+
+#: contrib/auth/models.py:131
+#: django/contrib/auth/models.py:131
+msgid "username"
+msgstr "потребител"
+
+#: contrib/auth/models.py:131
+#: django/contrib/auth/models.py:131
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Въведете не-повече от 30 символа (само букви, цифри, и подчертавка)"
+
+#: contrib/auth/models.py:132
+#: django/contrib/auth/models.py:132
+msgid "first name"
+msgstr "собствено име"
+
+#: contrib/auth/models.py:133
+#: django/contrib/auth/models.py:133
+msgid "last name"
+msgstr "фамилно име"
+
+#: contrib/auth/models.py:134
+#: django/contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "e-mail адрес"
+
+#: contrib/auth/models.py:135
+#: django/contrib/auth/models.py:135
+msgid "password"
+msgstr "парола"
+
+#: contrib/auth/models.py:135
+#: django/contrib/auth/models.py:135
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "Въведете '[algo]$[salt]$[hexdigest]' или използвайте <a href=\"password/\">формата за смяна на парола</a>."
+
+#: contrib/auth/models.py:136
+#: django/contrib/auth/models.py:136
+msgid "staff status"
+msgstr "персонал"
+
+#: contrib/auth/models.py:136
+#: django/contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Указва дали този потребител има достъп до административния панел."
+
+#: contrib/auth/models.py:137
+#: django/contrib/auth/models.py:137
+msgid "active"
+msgstr "активен"
+
+#: contrib/auth/models.py:137
+#: django/contrib/auth/models.py:137
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "Указва дали този потребител може да влезе в административния панел .  Премахнете тази маркировка вместо да изтривате акаунти.  "
+
+#: contrib/auth/models.py:138
+#: django/contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "статут на супер-потребител"
+
+#: contrib/auth/models.py:138
+#: django/contrib/auth/models.py:138
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Указва, че този потребител има всички права (без да има нужда да се указват изрично)."
+
+#: contrib/auth/models.py:139
+#: django/contrib/auth/models.py:139
+msgid "last login"
+msgstr "последен логин"
+
+#: contrib/auth/models.py:140
+#: django/contrib/auth/models.py:140
+msgid "date joined"
+msgstr "дата на регистриране"
+
+#: contrib/auth/models.py:142
+#: django/contrib/auth/models.py:142
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Освен ръчно указаните права, този потребител също ще получи правата на всяка група, към която принадлежи.  "
+
+#: contrib/auth/models.py:143
+#: django/contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "потребителски права"
+
+#: contrib/auth/models.py:147
+#: django/contrib/auth/models.py:147
+msgid "user"
+msgstr "потребител"
+
+#: contrib/auth/models.py:148
+#: django/contrib/auth/models.py:148
+msgid "users"
+msgstr "потребители"
+
+#: contrib/auth/models.py:154
+#: django/contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Лична информация"
+
+#: contrib/auth/models.py:155
+#: django/contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Права"
+
+#: contrib/auth/models.py:156
+#: django/contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Важни дати"
+
+#: contrib/auth/models.py:157
+#: django/contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Групи"
+
+#: contrib/auth/models.py:316
+#: django/contrib/auth/models.py:316
+msgid "message"
+msgstr "съобщение"
+
+#: contrib/auth/views.py:47
+#: django/contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Извън системата"
+
+#: contrib/comments/models.py:71
+#: contrib/comments/models.py:176
+#: django/contrib/comments/models.py:71
+#: django/contrib/comments/models.py:176
+msgid "object ID"
+msgstr "ID на обекта"
+
+#: contrib/comments/models.py:72
+#: django/contrib/comments/models.py:72
+msgid "headline"
+msgstr "заглавие"
+
+#: contrib/comments/models.py:73
+#: contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+#: django/contrib/comments/models.py:73
+#: django/contrib/comments/models.py:95
+#: django/contrib/comments/models.py:177
+msgid "comment"
+msgstr "коментар"
+
+#: contrib/comments/models.py:74
+#: django/contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "рейтинг #1"
+
+#: contrib/comments/models.py:75
+#: django/contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "рейтинг #2"
+
+#: contrib/comments/models.py:76
+#: django/contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "рейтинг #3"
+
+#: contrib/comments/models.py:77
+#: django/contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "рейтинг #4"
+
+#: contrib/comments/models.py:78
+#: django/contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "рейтинг #5"
+
+#: contrib/comments/models.py:79
+#: django/contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "рейтинг #6"
+
+#: contrib/comments/models.py:80
+#: django/contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "рейтинг #7"
+
+#: contrib/comments/models.py:81
+#: django/contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "рейтинг #8"
+
+#: contrib/comments/models.py:86
+#: django/contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "е валиден рейтинг"
+
+#: contrib/comments/models.py:87
+#: contrib/comments/models.py:179
+#: django/contrib/comments/models.py:87
+#: django/contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "дата и час на подаване"
+
+#: contrib/comments/models.py:88
+#: contrib/comments/models.py:180
+#: django/contrib/comments/models.py:88
+#: django/contrib/comments/models.py:180
+msgid "is public"
+msgstr "е публичен"
+
+#: contrib/comments/models.py:90
+#: django/contrib/comments/models.py:90
+msgid "is removed"
+msgstr "е премахнат"
+
+#: contrib/comments/models.py:90
+#: django/contrib/comments/models.py:90
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Щтракнете тази кутийка ако коментарът е неподходящ.  Вместо съдържанието на коментара, ще се покаже надписът \"Този коментар бе премахнат.\""
+
+#: contrib/comments/models.py:96
+#: django/contrib/comments/models.py:96
+msgid "comments"
+msgstr "коментари"
+
+#: contrib/comments/models.py:140
+#: contrib/comments/models.py:222
+#: django/contrib/comments/models.py:140
+#: django/contrib/comments/models.py:222
+msgid "Content object"
+msgstr "Content обект"
+
+#: contrib/comments/models.py:168
+#: django/contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Пуснат от %(user)s на %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+#: django/contrib/comments/models.py:178
+msgid "person's name"
+msgstr "име на човека"
+
+#: contrib/comments/models.py:181
+#: django/contrib/comments/models.py:181
+msgid "ip address"
+msgstr "ip адрес"
+
+#: contrib/comments/models.py:183
+#: django/contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr "одобрен от персонала"
+
+#: contrib/comments/models.py:187
+#: django/contrib/comments/models.py:187
+msgid "free comment"
+msgstr "свободен коментар"
+
+#: contrib/comments/models.py:188
+#: django/contrib/comments/models.py:188
+msgid "free comments"
+msgstr "свободни коментари"
+
+#: contrib/comments/models.py:250
+#: django/contrib/comments/models.py:250
+msgid "score"
+msgstr "точки"
+
+#: contrib/comments/models.py:251
+#: django/contrib/comments/models.py:251
+msgid "score date"
+msgstr "дата на точкуване"
+
+#: contrib/comments/models.py:255
+#: django/contrib/comments/models.py:255
+msgid "karma score"
+msgstr "кармична точка"
+
+#: contrib/comments/models.py:256
+#: django/contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "кармични точки"
+
+#: contrib/comments/models.py:260
+#: django/contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d рейтинг от %(user)s"
+
+#: contrib/comments/models.py:277
+#: django/contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Този коментар бе флагнат от %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:285
+#: django/contrib/comments/models.py:285
+msgid "flag date"
+msgstr "дата на флагване"
+
+#: contrib/comments/models.py:289
+#: django/contrib/comments/models.py:289
+msgid "user flag"
+msgstr "потребителски флаг"
+
+#: contrib/comments/models.py:290
+#: django/contrib/comments/models.py:290
+msgid "user flags"
+msgstr "потребителски флагове"
+
+#: contrib/comments/models.py:294
+#: django/contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "Флаг от %r"
+
+#: contrib/comments/models.py:300
+#: django/contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "дата на изтриване"
+
+#: contrib/comments/models.py:303
+#: django/contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "изтриване от модератор"
+
+#: contrib/comments/models.py:304
+#: django/contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "изтривания от модератор"
+
+#: contrib/comments/models.py:308
+#: django/contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Изтриване от модератор %r"
+
+#: contrib/comments/templates/comments/form.html:8
+#: django/contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Забравена парола?"
+
+#: contrib/comments/templates/comments/form.html:12
+#: django/contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Рейтинги"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+#: django/contrib/comments/templates/comments/form.html:12
+#: django/contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Задължително"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+#: django/contrib/comments/templates/comments/form.html:12
+#: django/contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Не-задължително"
+
+#: contrib/comments/templates/comments/form.html:23
+#: django/contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Качете снимка"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+#: django/contrib/comments/templates/comments/form.html:28
+#: django/contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Коментар:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+#: django/contrib/comments/templates/comments/form.html:35
+#: django/contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Преглед на коментара"
+
+#: contrib/comments/templates/comments/freeform.html:4
+#: django/contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Вашето име:"
+
+#: contrib/comments/views/comments.py:28
+#: django/contrib/comments/views/comments.py:28
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Този рейтинг е задължителен, понеже сте въвели поне един друг рейтинг.  "
+
+#: contrib/comments/views/comments.py:112
+#: django/contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)sThis comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Този коментар е от потребител, който има по-малко от %(count)s коментар:\n"
+"\n"
+"%(text)sТози коментар е от потребител, който има по-малко от %(count)s коментара:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#: django/contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Този коментар е от съмнителен потребител:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+#: django/contrib/comments/views/comments.py:190
+#: django/contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Само POST заявките са позволени"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+#: django/contrib/comments/views/comments.py:194
+#: django/contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Едно или повече от задължителните полета липсва"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+#: django/contrib/comments/views/comments.py:198
+#: django/contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Някой е променял формата за коментари (нарушение на сигурността)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+#: django/contrib/comments/views/comments.py:208
+#: django/contrib/comments/views/comments.py:295
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Формата за коментарите има невалиден параметър 'target'  -- ID-то на обекта е невалидно"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+#: django/contrib/comments/views/comments.py:259
+#: django/contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Формата за коментарите не предоставя нито преглед нито постване.  "
+
+#: contrib/comments/views/karma.py:21
+#: django/contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Анонимните потребители не могат да гласуват"
+
+#: contrib/comments/views/karma.py:25
+#: django/contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Невалидно ID на коментар"
+
+#: contrib/comments/views/karma.py:27
+#: django/contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Не можете да гласувате за себе си"
+
+#: contrib/contenttypes/models.py:37
+#: django/contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "има на класа на модела в Python"
+
+#: contrib/contenttypes/models.py:40
+#: django/contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "тип на съдържанието"
+
+#: contrib/contenttypes/models.py:41
+#: django/contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "типове съдържание"
+
+#: contrib/flatpages/models.py:8
+#: django/contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Пример: '/about/contact/'.  Началната и крайната наклонена чертичка са задължителни.  "
+
+#: contrib/flatpages/models.py:9
+#: django/contrib/flatpages/models.py:9
+msgid "title"
+msgstr "заглавие"
+
+#: contrib/flatpages/models.py:10
+#: django/contrib/flatpages/models.py:10
+msgid "content"
+msgstr "съдържание"
+
+#: contrib/flatpages/models.py:11
+#: django/contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "позволяване на коментари"
+
+#: contrib/flatpages/models.py:12
+#: django/contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "име на шаблон"
+
+#: contrib/flatpages/models.py:13
+#: django/contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Пример: 'flatpages/contact_page.html'.  Ако това не е указано, системата ще използва 'flatpages/default.html'.  "
+
+#: contrib/flatpages/models.py:14
+#: django/contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "изисква се регистрация"
+
+#: contrib/flatpages/models.py:14
+#: django/contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Ако това е чекнато, само логнати потребители ще могат да виждат страницата.  "
+
+#: contrib/flatpages/models.py:18
+#: django/contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "информативна страница"
+
+#: contrib/flatpages/models.py:19
+#: django/contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "информативни страници"
+
+#: contrib/humanize/templatetags/humanize.py:19
+#: django/contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "и"
+
+#: contrib/humanize/templatetags/humanize.py:19
+#: django/contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "ви"
+
+#: contrib/humanize/templatetags/humanize.py:19
+#: django/contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "ри"
+
+#: contrib/humanize/templatetags/humanize.py:19
+#: django/contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "ти"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#: django/contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgstr "%(value).1f милион"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#: django/contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgstr "%(value).1f милиард"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#: django/contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgstr "%(value).1f трилион"
+
+#: contrib/humanize/templatetags/humanize.py:73
+#: django/contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "един"
+
+#: contrib/humanize/templatetags/humanize.py:73
+#: django/contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "два"
+
+#: contrib/humanize/templatetags/humanize.py:73
+#: django/contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "три"
+
+#: contrib/humanize/templatetags/humanize.py:73
+#: django/contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "четири"
+
+#: contrib/humanize/templatetags/humanize.py:73
+#: django/contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "пет"
+
+#: contrib/humanize/templatetags/humanize.py:73
+#: django/contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "шест"
+
+#: contrib/humanize/templatetags/humanize.py:73
+#: django/contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "седем"
+
+#: contrib/humanize/templatetags/humanize.py:73
+#: django/contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "осем"
+
+#: contrib/humanize/templatetags/humanize.py:73
+#: django/contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "девет"
+
+#: contrib/humanize/templatetags/humanize.py:93
+#: django/contrib/humanize/templatetags/humanize.py:93
+#: tests/regressiontests/humanize/tests.py:65
+msgid "today"
+msgstr "днес"
+
+#: contrib/humanize/templatetags/humanize.py:95
+#: django/contrib/humanize/templatetags/humanize.py:95
+#: tests/regressiontests/humanize/tests.py:65
+msgid "tomorrow"
+msgstr "Утре"
+
+#: contrib/humanize/templatetags/humanize.py:97
+#: django/contrib/humanize/templatetags/humanize.py:97
+#: tests/regressiontests/humanize/tests.py:65
+msgid "yesterday"
+msgstr "вчера"
+
+#: contrib/localflavor/ar/forms.py:27
+#: django/contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Въведете пощенския код във формат NNNN или ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49
+#: contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135
+#: contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+#: django/contrib/localflavor/ar/forms.py:49
+#: django/contrib/localflavor/br/forms.py:96
+#: django/contrib/localflavor/br/forms.py:135
+#: django/contrib/localflavor/pe/forms.py:23
+#: django/contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Това поле изисква число."
+
+#: contrib/localflavor/ar/forms.py:50
+#: django/contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Това поле изисква 7 или 8 цифри."
+
+#: contrib/localflavor/ar/forms.py:79
+#: django/contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Въведете валиден номер на германска лична карта в формат XX-XXXXXXXX-X или XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+#: django/contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Невалиден CUIT."
+
+#: contrib/localflavor/au/forms.py:16
+#: django/contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Въведете 4 цифрен пощенски код"
+
+#: contrib/localflavor/br/forms.py:21
+#: django/contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Въведете пощенски код в формат XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+#: django/contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Телефонните номера трябва да бъдат в формат XX-XXXX-XXXX.  "
+
+#: contrib/localflavor/br/forms.py:58
+#: django/contrib/localflavor/br/forms.py:58
+msgid "Select a valid brazilian state. That state is not one of the available states."
+msgstr "Изберете валиден бразилски щат.  Този, не е един отвалидните щати."
+
+#: contrib/localflavor/br/forms.py:94
+#: django/contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Невалиден CPF номер"
+
+#: contrib/localflavor/br/forms.py:95
+#: django/contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Това поле изисква поне 11 цифри или 14 символа."
+
+#: contrib/localflavor/br/forms.py:134
+#: django/contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Невалиден CNPJ номер"
+
+#: contrib/localflavor/br/forms.py:136
+#: django/contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Това поле изисква поне 14 цифри."
+
+#: contrib/localflavor/ca/forms.py:17
+#: django/contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Въведете пощенски код в формат XXX XXХ."
+
+#: contrib/localflavor/ca/forms.py:88
+#: django/contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "Въведете валиден номер на канадската социална осигуровка в формата XXX-XX-XXXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+#: django/contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Ааргау"
+
+#: contrib/localflavor/ch/ch_states.py:6
+#: django/contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+#: django/contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+#: django/contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+#: django/contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+#: django/contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+#: django/contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+#: django/contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Женева"
+
+#: contrib/localflavor/ch/ch_states.py:13
+#: django/contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+#: django/contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+#: django/contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+#: django/contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+#: django/contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+#: django/contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+#: django/contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+#: django/contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+#: django/contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+#: django/contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+#: django/contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+#: django/contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+#: django/contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+#: django/contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+#: django/contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+#: django/contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+#: django/contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+#: django/contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+#: django/contrib/localflavor/ch/forms.py:16
+#: django/contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Въведете пощенски код в формат XXXX."
+
+#: contrib/localflavor/ch/forms.py:64
+#: django/contrib/localflavor/ch/forms.py:64
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Въведете валиден швейцарски индентификационен номер в X1234567<0 или 1234567890 формат"
+
+#: contrib/localflavor/cl/forms.py:29
+#: django/contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Въведете валиден чилийски RUT."
+
+#: contrib/localflavor/cl/forms.py:30
+#: django/contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Въведете валиден чилийски RUT. Форпатът представлява ХХ ХХХ ХХХ-Х."
+
+#: contrib/localflavor/cl/forms.py:31
+#: django/contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "Чилийският RUT не е валиден."
+
+#: contrib/localflavor/de/de_states.py:5
+#: django/contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+#: django/contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Бавария"
+
+#: contrib/localflavor/de/de_states.py:7
+#: django/contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Берлин"
+
+#: contrib/localflavor/de/de_states.py:8
+#: django/contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Бранденбург"
+
+#: contrib/localflavor/de/de_states.py:9
+#: django/contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Бремен"
+
+#: contrib/localflavor/de/de_states.py:10
+#: django/contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Хамбург"
+
+#: contrib/localflavor/de/de_states.py:11
+#: django/contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Хесен "
+
+#: contrib/localflavor/de/de_states.py:12
+#: django/contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+#: django/contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Долна Саксония "
+
+#: contrib/localflavor/de/de_states.py:14
+#: django/contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "North Rhine-Westphalia"
+
+#: contrib/localflavor/de/de_states.py:15
+#: django/contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+#: django/contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+#: django/contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Саксония"
+
+#: contrib/localflavor/de/de_states.py:18
+#: django/contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Саксония-Анхалт"
+
+#: contrib/localflavor/de/de_states.py:19
+#: django/contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+#: django/contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14
+#: contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+#: django/contrib/localflavor/de/forms.py:14
+#: django/contrib/localflavor/fi/forms.py:12
+#: django/contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Въведете пощенски код в формат XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+#: django/contrib/localflavor/de/forms.py:41
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Въведете валиден номер на германска лична карта в формат  XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+#: django/contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:6
+#: django/contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+#: django/contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+#: django/contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+#: django/contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+#: django/contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+#: django/contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+#: django/contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Барселона"
+
+#: contrib/localflavor/es/es_provinces.py:13
+#: django/contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+#: django/contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+#: django/contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+#: django/contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+#: django/contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+#: django/contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Кордоба"
+
+#: contrib/localflavor/es/es_provinces.py:19
+#: django/contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+#: django/contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+#: django/contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+#: django/contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Гранада"
+
+#: contrib/localflavor/es/es_provinces.py:23
+#: django/contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+#: django/contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+#: django/contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+#: django/contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+#: django/contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+#: django/contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+#: django/contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+#: django/contrib/localflavor/es/es_provinces.py:30
+#: django/contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+#: django/contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+#: django/contrib/localflavor/es/es_provinces.py:32
+#: django/contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Мадрид"
+
+#: contrib/localflavor/es/es_provinces.py:33
+#: django/contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Малага"
+
+#: contrib/localflavor/es/es_provinces.py:34
+#: django/contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Мурсия "
+
+#: contrib/localflavor/es/es_provinces.py:35
+#: django/contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Навара"
+
+#: contrib/localflavor/es/es_provinces.py:36
+#: django/contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+#: django/contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+#: django/contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+#: django/contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+#: django/contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+#: django/contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+#: django/contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+#: django/contrib/localflavor/es/es_provinces.py:43
+#: django/contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+#: django/contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+#: django/contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+#: django/contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+#: django/contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+#: django/contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+#: django/contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+#: django/contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Валенсия"
+
+#: contrib/localflavor/es/es_provinces.py:51
+#: django/contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+#: django/contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+#: django/contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+#: django/contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Сарагоса"
+
+#: contrib/localflavor/es/es_provinces.py:55
+#: django/contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+#: django/contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+#: django/contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+#: django/contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Арагон"
+
+#: contrib/localflavor/es/es_regions.py:7
+#: django/contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+#: django/contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Балеарските острови"
+
+#: contrib/localflavor/es/es_regions.py:9
+#: django/contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+#: django/contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Канарските острови"
+
+#: contrib/localflavor/es/es_regions.py:12
+#: django/contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+#: django/contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+#: django/contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Каталония"
+
+#: contrib/localflavor/es/es_regions.py:15
+#: django/contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+#: django/contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+#: django/contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+#: django/contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+#: django/contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:19
+#: django/contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Въведете валиден пощенски код в интервала 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+#: django/contrib/localflavor/es/forms.py:39
+msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+msgstr "Въведевалиден телефонен номер в един от форматите 6XXXXXXXX, 8XXXXXXXX или 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+#: django/contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Въведете валиден НИФ, НИЕ, или ЦИФ."
+
+#: contrib/localflavor/es/forms.py:67
+#: django/contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Въведете валиден НИГ или НИЕ."
+
+#: contrib/localflavor/es/forms.py:68
+#: django/contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Невалидна чексума за НИФ"
+
+#: contrib/localflavor/es/forms.py:69
+#: django/contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Невалидна чексума за НИЕ"
+
+#: contrib/localflavor/es/forms.py:70
+#: django/contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Невалидна чексума за ЦИФ"
+
+#: contrib/localflavor/es/forms.py:142
+#: django/contrib/localflavor/es/forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Въведете валиден номер на банковата ви сметка във формат XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+#: django/contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Невалидна чексума за номер на банковата сметка"
+
+#: contrib/localflavor/fi/forms.py:28
+#: django/contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Въведете валиден финландски номер на социалната осигуровка."
+
+#: contrib/localflavor/in_/forms.py:14
+#: django/contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Въведете пощенски код в формат XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+#: django/contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Въведете валиден исландски номер. Форматът представлява XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+#: django/contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Исландския номер за индентификация е невлиден"
+
+#: contrib/localflavor/it/forms.py:14
+#: django/contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Въведете валиден пощенски код."
+
+#: contrib/localflavor/it/forms.py:43
+#: django/contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Въведете валиден номер на социалната ви осигуровка."
+
+#: contrib/localflavor/it/forms.py:68
+#: django/contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Въведете валиден VAT номер."
+
+#: contrib/localflavor/jp/forms.py:17
+#: django/contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Въведете пощенски код в формат XXXXXXX или XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+#: django/contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Хокайдо"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+#: django/contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Амори"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+#: django/contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+#: django/contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+#: django/contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Акита"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+#: django/contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Ямагата"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+#: django/contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Фукушима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+#: django/contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ибараки"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+#: django/contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+#: django/contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+#: django/contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Сайтама"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+#: django/contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Чиба"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+#: django/contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Токио"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+#: django/contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Канагава"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+#: django/contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Яманаши"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+#: django/contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Нагано"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+#: django/contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+#: django/contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+#: django/contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ишикава"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+#: django/contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+#: django/contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+#: django/contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+#: django/contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+#: django/contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+#: django/contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Шига"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+#: django/contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Киато"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+#: django/contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Осака"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+#: django/contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+#: django/contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Нара"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+#: django/contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+#: django/contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+#: django/contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+#: django/contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Окаяма"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+#: django/contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Хирошима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+#: django/contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Ямагучи"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+#: django/contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Токушима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+#: django/contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+#: django/contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+#: django/contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Кочи"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+#: django/contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Фукуока"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+#: django/contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Сага"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+#: django/contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Нагазаки"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+#: django/contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Кумамото"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+#: django/contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+#: django/contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Миазаки"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+#: django/contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+#: django/contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Окинава"
+
+#: contrib/localflavor/mx/mx_states.py:12
+#: django/contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+#: django/contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+#: django/contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+#: django/contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+#: django/contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Чихуахуа"
+
+#: contrib/localflavor/mx/mx_states.py:17
+#: django/contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+#: django/contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+#: django/contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+#: django/contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+#: django/contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+#: django/contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+#: django/contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+#: django/contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Хидалго"
+
+#: contrib/localflavor/mx/mx_states.py:25
+#: django/contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+#: django/contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+#: django/contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+#: django/contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+#: django/contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+#: django/contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+#: django/contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+#: django/contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+#: django/contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+#: django/contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+#: django/contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+#: django/contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+#: django/contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+#: django/contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Табаско"
+
+#: contrib/localflavor/mx/mx_states.py:39
+#: django/contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+#: django/contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+#: django/contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+#: django/contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+#: django/contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+#: django/contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Въведете валиден пощенски код."
+
+#: contrib/localflavor/nl/forms.py:52
+#: django/contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Въведете валиден телефонен номер"
+
+#: contrib/localflavor/nl/forms.py:78
+#: django/contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Въведете валиден SoFi номер"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+#: django/contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+#: django/contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+#: django/contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+#: django/contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+#: django/contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+#: django/contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+#: django/contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+#: django/contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+#: django/contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+#: django/contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+#: django/contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+#: django/contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+#: django/contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Въведете валиден норвежки номер на социалната осигуровка."
+
+#: contrib/localflavor/pe/forms.py:24
+#: django/contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Това поле изисква 8 цифри."
+
+#: contrib/localflavor/pe/forms.py:52
+#: django/contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Това поле изисква 11 цифри."
+
+#: contrib/localflavor/pl/forms.py:39
+#: django/contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "Националният индентификационен номер се състои от 11 цифри"
+
+#: contrib/localflavor/pl/forms.py:40
+#: django/contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Грешна чексума за Националния индентификационен номер"
+
+#: contrib/localflavor/pl/forms.py:72
+#: django/contrib/localflavor/pl/forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Въведете данъчен номер (НИП) във формат XXX-XXX-XX-XX или XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:73
+#: django/contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Грешна чексума за данъчен номер (НИП)"
+
+#: contrib/localflavor/pl/forms.py:112
+#: django/contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "Националният Бизнес Регистрационен номер (REGON) се състои от 7 или 9 цифри."
+
+#: contrib/localflavor/pl/forms.py:113
+#: django/contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Грешна чексума за Националния Бизнес Регистрационен Номер (REGON)"
+
+#: contrib/localflavor/pl/forms.py:156
+#: django/contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Въведете пощенски код в формат XX-ХXXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+#: django/contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+#: django/contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+#: django/contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+#: django/contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+#: django/contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+#: django/contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+#: django/contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+#: django/contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+#: django/contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+#: django/contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+#: django/contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+#: django/contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+#: django/contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+#: django/contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+#: django/contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+#: django/contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+#: django/contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Въведете пощенски код в формат XXXXX или XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+#: django/contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Банска Бистрица"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+#: django/contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Банска Стиавница"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+#: django/contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+#: django/contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+#: django/contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+#: django/contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+#: django/contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+#: django/contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+#: django/contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+#: django/contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+#: django/contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+#: django/contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+#: django/contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+#: django/contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+#: django/contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+#: django/contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+#: django/contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+#: django/contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+#: django/contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+#: django/contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+#: django/contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+#: django/contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+#: django/contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+#: django/contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+#: django/contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+#: django/contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+#: django/contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+#: django/contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+#: django/contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+#: django/contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+#: django/contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+#: django/contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+#: django/contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+#: django/contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+#: django/contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+#: django/contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+#: django/contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+#: django/contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+#: django/contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+#: django/contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+#: django/contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+#: django/contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+#: django/contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+#: django/contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+#: django/contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+#: django/contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+#: django/contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+#: django/contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+#: django/contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+#: django/contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+#: django/contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+#: django/contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+#: django/contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+#: django/contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+#: django/contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+#: django/contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+#: django/contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+#: django/contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+#: django/contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+#: django/contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+#: django/contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+#: django/contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+#: django/contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+#: django/contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+#: django/contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+#: django/contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+#: django/contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+#: django/contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+#: django/contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+#: django/contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+#: django/contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+#: django/contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+#: django/contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+#: django/contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+#: django/contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+#: django/contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+#: django/contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+#: django/contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+#: django/contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+#: django/contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+#: django/contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+#: django/contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+#: django/contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+#: django/contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+#: django/contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+#: django/contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+#: django/contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+#: django/contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Въведете валиден пощенски код."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+#: django/contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Бедфордшър"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+#: django/contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+#: django/contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+#: django/contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+#: django/contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+#: django/contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+#: django/contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+#: django/contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+#: django/contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+#: django/contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "Источен Съсек "
+
+#: contrib/localflavor/uk/uk_regions.py:22
+#: django/contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Есекс"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+#: django/contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+#: django/contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Велик Лондон"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+#: django/contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Велик Манчестер "
+
+#: contrib/localflavor/uk/uk_regions.py:26
+#: django/contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+#: django/contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+#: django/contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Кент"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+#: django/contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+#: django/contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+#: django/contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+#: django/contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+#: django/contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+#: django/contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+#: django/contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+#: django/contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+#: django/contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+#: django/contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+#: django/contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+#: django/contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+#: django/contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "Южен Йорксър"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+#: django/contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+#: django/contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+#: django/contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+#: django/contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+#: django/contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+#: django/contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+#: django/contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+#: django/contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+#: django/contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+#: django/contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+#: django/contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+#: django/contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+#: django/contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+#: django/contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+#: django/contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+#: django/contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+#: django/contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+#: django/contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+#: django/contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+#: django/contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+#: django/contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+#: django/contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+#: django/contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+#: django/contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+#: django/contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+#: django/contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+#: django/contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+#: django/contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+#: django/contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+#: django/contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+#: django/contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+#: django/contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+#: django/contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+#: django/contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+#: django/contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+#: django/contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+#: django/contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Англия"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+#: django/contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+#: django/contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+#: django/contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Уелс"
+
+#: contrib/localflavor/us/forms.py:16
+#: django/contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Въведете zip код в формат XXXXX или XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+#: django/contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Въведете валиден номер на социалната осигуровка в формат XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+#: django/contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Въведете валиден южно-африкански номер за индентификация"
+
+#: contrib/localflavor/za/forms.py:54
+#: django/contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Въведете валиден пощенски код за Южна Африка"
+
+#: contrib/localflavor/za/za_provinces.py:4
+#: django/contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+#: django/contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+#: django/contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+#: django/contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+#: django/contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+#: django/contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+#: django/contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+#: django/contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+#: django/contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+#: django/contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "препратка от"
+
+#: contrib/redirects/models.py:8
+#: django/contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Това трябва да бъде абсолютен път, без името на домейна.  Пример: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+#: django/contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "препратка към"
+
+#: contrib/redirects/models.py:10
+#: django/contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Това може да бъде или абсолютен път (като горното) или пълен URL, започващ с 'http://'."
+
+#: contrib/redirects/models.py:13
+#: django/contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "препратка"
+
+#: contrib/redirects/models.py:14
+#: django/contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "препратки"
+
+#: contrib/sessions/models.py:41
+#: django/contrib/sessions/models.py:41
+msgid "session key"
+msgstr "ключ на сесията"
+
+#: contrib/sessions/models.py:42
+#: django/contrib/sessions/models.py:42
+msgid "session data"
+msgstr "данни от сесията"
+
+#: contrib/sessions/models.py:43
+#: django/contrib/sessions/models.py:43
+msgid "expire date"
+msgstr "дата на валидност"
+
+#: contrib/sessions/models.py:48
+#: django/contrib/sessions/models.py:48
+msgid "session"
+msgstr "сесия"
+
+#: contrib/sessions/models.py:49
+#: django/contrib/sessions/models.py:49
+msgid "sessions"
+msgstr "сесии"
+
+#: contrib/sites/models.py:32
+#: django/contrib/sites/models.py:32
+msgid "domain name"
+msgstr "име на домейна"
+
+#: contrib/sites/models.py:33
+#: django/contrib/sites/models.py:33
+msgid "display name"
+msgstr "наименование"
+
+#: contrib/sites/models.py:37
+#: django/contrib/sites/models.py:37
+msgid "site"
+msgstr "сайт"
+
+#: contrib/sites/models.py:38
+#: django/contrib/sites/models.py:38
+msgid "sites"
+msgstr "сайтове"
+
+#: core/validators.py:72
+#: django/core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Тази стойност може да съдържа само букви, цифри и подчертавки.  "
+
+#: core/validators.py:76
+#: django/core/validators.py:76
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Тази стойност може да съдържа само букви, цифри, подчертавки, тиренца и наклонени чертички.  "
+
+#: core/validators.py:80
+#: django/core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Тази стойност трябва да съдържа само букви, цифри, подчертавки или тиренца.  "
+
+#: core/validators.py:84
+#: django/core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Тук не се допускат главни букви.  "
+
+#: core/validators.py:88
+#: django/core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Тук не се допускат малки букви.  "
+
+#: core/validators.py:95
+#: django/core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Въведете само цифри, разделени със запетая.  "
+
+#: core/validators.py:107
+#: django/core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Въведете валидни e-mail адреси разделени със запетая.  "
+
+#: core/validators.py:111
+#: django/core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Въведете валиден IP адрес.  "
+
+#: core/validators.py:115
+#: django/core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Тук не се допускат празни стойности.  "
+
+#: core/validators.py:119
+#: django/core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Тук не се допускат символи, които не са цифри.  "
+
+#: core/validators.py:123
+#: django/core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Тази стойност не може да бъде само цифри.  "
+
+#: core/validators.py:128
+#: django/core/validators.py:128
+#: django/newforms/fields.py:151
+#: newforms/fields.py:151
+msgid "Enter a whole number."
+msgstr "Въведете цяло число.  "
+
+#: core/validators.py:132
+#: django/core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Само букви и цифри се допускат тук.  "
+
+#: core/validators.py:147
+#: django/core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "Годината трябва да бъде от 1900 нагоре."
+
+#: core/validators.py:151
+#: django/core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Невалидна дата: %s"
+
+#: core/validators.py:156
+#: db/models/fields/__init__.py:522
+#: django/core/validators.py:156
+#: django/db/models/fields/__init__.py:522
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Въведете валидна дата в формат ГГГГ-ММ-ДД."
+
+#: core/validators.py:161
+#: django/core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Въведете валиден час във формат ЧЧ:ММ.  "
+
+#: core/validators.py:165
+#: db/models/fields/__init__.py:599
+#: django/core/validators.py:165
+#: django/db/models/fields/__init__.py:599
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Въведете валидна дата и час в формат ГГГГ-ММ-ДД ЧЧ:ММ."
+
+#: core/validators.py:170
+#: django/core/validators.py:170
+#: django/newforms/fields.py:402
+#: newforms/fields.py:402
+msgid "Enter a valid e-mail address."
+msgstr "Въведете валиден e-mail адрес.  "
+
+#: core/validators.py:182
+#: core/validators.py:474
+#: django/core/validators.py:182
+#: django/core/validators.py:474
+#: django/newforms/fields.py:432
+#: django/oldforms/__init__.py:687
+#: newforms/fields.py:432
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Не е получен файл.  Проверете типът кодиране на формата.  "
+
+#: core/validators.py:193
+#: django/core/validators.py:193
+#: django/newforms/fields.py:458
+#: newforms/fields.py:458
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Качете валидна картинка.  Файлът, който сте качили или не е картинка или е развалена.  "
+
+#: core/validators.py:200
+#: django/core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s не сочи към валидна картинка.  "
+
+#: core/validators.py:204
+#: django/core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Телефонните номера трябва да бъдат във формат XXX-XXX-XXXX. \"%s\" не е валиден.  "
+
+#: core/validators.py:212
+#: django/core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s не сочи към валиден QuickTime видео клип."
+
+#: core/validators.py:216
+#: django/core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Изисква се валиден URL."
+
+#: core/validators.py:230
+#: django/core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Изисква се валиден HTML. Конкретните грешки са:\n"
+"%s"
+
+#: core/validators.py:237
+#: django/core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Неправилно форматиран XML: %s"
+
+#: core/validators.py:254
+#: django/core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Невалиден URL: %s"
+
+#: core/validators.py:259
+#: core/validators.py:261
+#: django/core/validators.py:259
+#: django/core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Този URL %s е счупен линк.  "
+
+#: core/validators.py:267
+#: django/core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Въведете валидно съкращение на американски щат.  "
+
+#: core/validators.py:281
+#: django/core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgstr "Ей-шш! Думичката %s не е позволена тук.  "
+
+#: core/validators.py:288
+#: django/core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Това поле трябва да съвпада с полето '%s' ."
+
+#: core/validators.py:307
+#: django/core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Въведете нещичко поне за едното поле.  "
+
+#: core/validators.py:316
+#: core/validators.py:327
+#: django/core/validators.py:316
+#: django/core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Или въведете и двете полета или ги оставете празни."
+
+#: core/validators.py:335
+#: django/core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Това поле трябва да е зададено ако %(field)s е %(value)s"
+
+#: core/validators.py:348
+#: django/core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Това поле трябва да е зададено ако %(field)s не е %(value)s"
+
+#: core/validators.py:367
+#: django/core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Не са позволени стойности, които се повтарят.  "
+
+#: core/validators.py:382
+#: django/core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Тази стойност трябва да бъде между %(lower)s и %(upper)s."
+
+#: core/validators.py:384
+#: django/core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Тази стойност трябва да бъде поне %s.  "
+
+#: core/validators.py:386
+#: django/core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Тази стойност не трябва да надвишава %s."
+
+#: core/validators.py:427
+#: django/core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Тази стойност трябва да е точна степен на %s."
+
+#: core/validators.py:437
+#: django/core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Въведете валидна десетична дроб.  "
+
+#: core/validators.py:444
+#: django/core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit.Please enter a valid decimal number with at most %s total digits."
+msgstr "Въведете валидна десетична дроб с не-повече от %s цифра. Въведете валидна десетична дроб с не-повече от %s цифра."
+
+#: core/validators.py:447
+#: django/core/validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit.Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr "Въведете валидна десетична дроб, цялата част на която да не надхвърля %s цифра.Въведете валидна десетична дроб, цялата част на която да не надхвърля %s цифри.  "
+
+#: core/validators.py:450
+#: django/core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place.Please enter a valid decimal number with at most %s decimal places."
+msgstr "Въведете валидна десетична дроб с не-повече от %s цифра след десетичната точка.Въведете валидна десетична дроб с не-повече от %s цифри след десетичната точка.  "
+
+#: core/validators.py:458
+#: django/core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Въведете валидно число с плаваща зашетая."
+
+#: core/validators.py:467
+#: django/core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Файлът, който сте качили трябва да бъде поне %s байта."
+
+#: core/validators.py:468
+#: django/core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Размерът на файла, който сте качили не трябва да надхвърля %s байта.  "
+
+#: core/validators.py:485
+#: django/core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "Форматът на това поле е грешен."
+
+#: core/validators.py:500
+#: django/core/validators.py:500
+msgid "This field is invalid."
+msgstr "Това поле не е валидно"
+
+#: core/validators.py:536
+#: django/core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Не получихме нищо от %s."
+
+#: core/validators.py:539
+#: django/core/validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s върна невалиден Content-Type хедър '%(contenttype)s'."
+
+#: core/validators.py:572
+#: django/core/validators.py:572
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Затворете тага %(tag)s , който е отворен на ред %(line)s. (Редът започва с \"%(start)s\".)"
+
+#: core/validators.py:576
+#: django/core/validators.py:576
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Некъв текст на ред %(line)s не е позволен в този контекст. (Редът започва с \"%(start)s\".)"
+
+#: core/validators.py:581
+#: django/core/validators.py:581
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" на ред %(line)s е невалиден атрибут. (Редът започва с \"%(start)s\".)"
+
+#: core/validators.py:586
+#: django/core/validators.py:586
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\" на ред %(line)s е невалиден таг. (Редът започва с \"%(start)s\".)"
+
+#: core/validators.py:590
+#: django/core/validators.py:590
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "На някой от таговете на ред %(line)s му липсват един или повече задължителни атрибута. (Редът започва с \"%(start)s\".)"
+
+#: core/validators.py:595
+#: django/core/validators.py:595
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "Атрибутът \"%(attr)s\" на ред %(line)s има невалидна стойност. (Редът започва с \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#: django/db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s с този %(type)s вече съществува за зададеното %(field)s.s"
+
+#: db/models/fields/__init__.py:52
+#: django/db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s с този %(fieldname)s вече съществува."
+
+#: db/models/fields/__init__.py:161
+#: db/models/fields/__init__.py:322
+#: db/models/fields/__init__.py:754
+#: db/models/fields/__init__.py:765
+#: django/db/models/fields/__init__.py:161
+#: django/db/models/fields/__init__.py:322
+#: django/db/models/fields/__init__.py:754
+#: django/db/models/fields/__init__.py:765
+#: django/newforms/fields.py:45
+#: django/oldforms/__init__.py:374
+#: newforms/fields.py:45
+#: oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Това поле е задължително."
+
+#: db/models/fields/__init__.py:422
+#: django/db/models/fields/__init__.py:422
+msgid "This value must be an integer."
+msgstr "Тази стойност трябва да бъде цяло число"
+
+#: db/models/fields/__init__.py:461
+#: django/db/models/fields/__init__.py:461
+msgid "This value must be either True or False."
+msgstr "Тази стойност трябва да бъде True или False."
+
+#: db/models/fields/__init__.py:485
+#: django/db/models/fields/__init__.py:485
+msgid "This field cannot be null."
+msgstr "Това поле не може да има празна стойност."
+
+#: db/models/fields/__init__.py:663
+#: django/db/models/fields/__init__.py:663
+msgid "This value must be a decimal number."
+msgstr "Тази стойност трябва да бъде число с плаваща запетая."
+
+#: db/models/fields/__init__.py:774
+#: django/db/models/fields/__init__.py:774
+msgid "Enter a valid filename."
+msgstr "Въведете валидно име на файл."
+
+#: db/models/fields/__init__.py:945
+#: django/db/models/fields/__init__.py:945
+msgid "This value must be either None, True or False."
+msgstr "Тази стойност трябва да бъде None, True, или False."
+
+#: db/models/fields/related.py:55
+#: django/db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Въведете валиден %s."
+
+#: db/models/fields/related.py:658
+#: django/db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "Множество ID-та се разделят с запетайки"
+
+#: db/models/fields/related.py:660
+#: django/db/models/fields/related.py:660
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Задръжте натиснат клавиша \"Control\" (или \"Command\" на Mac-а) за да направите повече от един избор.  "
+
+#: db/models/fields/related.py:707
+#: django/db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid.Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr "Въведете валидни %(self)s ID-та. Стойността %(value)r не е валидна."
+
+#: django/newforms/fields.py:46
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr "Въведете валидна стойност.  "
+
+#: django/newforms/fields.py:123
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Уверете се, че стойността съдържа максимално %(max)d символа (в момента %(length)d)."
+
+#: django/newforms/fields.py:124
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Уверете се, че тази стойност съдържа поне %(min)d символа (в момента %(length)d)."
+
+#: django/newforms/fields.py:152
+#: django/newforms/fields.py:181
+#: django/newforms/fields.py:210
+#: newforms/fields.py:152
+#: newforms/fields.py:181
+#: newforms/fields.py:210
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Тази стойност трябва да е по-малка или равна на %s.  "
+
+#: django/newforms/fields.py:153
+#: django/newforms/fields.py:182
+#: django/newforms/fields.py:211
+#: newforms/fields.py:153
+#: newforms/fields.py:182
+#: newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Тази стойност трябва да е по-голяма или равна на %s."
+
+#: django/newforms/fields.py:180
+#: django/newforms/fields.py:209
+#: newforms/fields.py:180
+#: newforms/fields.py:209
+msgid "Enter a number."
+msgstr "Въведечисло."
+
+#: django/newforms/fields.py:212
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Уверете си че не сте въвели повече от %s цифри."
+
+#: django/newforms/fields.py:213
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Уверете се, че няма повече от %s знака след запетаята."
+
+#: django/newforms/fields.py:214
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Уверете се, че няма повече от %s цифри преди десетичната запетая."
+
+#: django/newforms/fields.py:262
+#: django/newforms/fields.py:723
+#: newforms/fields.py:262
+#: newforms/fields.py:723
+msgid "Enter a valid date."
+msgstr "Въведете валидна дата.  "
+
+#: django/newforms/fields.py:295
+#: django/newforms/fields.py:724
+#: newforms/fields.py:295
+#: newforms/fields.py:724
+msgid "Enter a valid time."
+msgstr "Въведете валиден час."
+
+#: django/newforms/fields.py:334
+#: newforms/fields.py:334
+msgid "Enter a valid date/time."
+msgstr "Въведете валидна дата / час.  "
+
+#: django/newforms/fields.py:433
+#: newforms/fields.py:433
+msgid "No file was submitted."
+msgstr "Няма изпратен фаил."
+
+#: django/newforms/fields.py:434
+#: django/oldforms/__init__.py:689
+#: newforms/fields.py:434
+#: oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Каченият файл е празен.  "
+
+#: django/newforms/fields.py:496
+#: newforms/fields.py:496
+msgid "Enter a valid URL."
+msgstr "Въведете валиден URL.  "
+
+#: django/newforms/fields.py:497
+#: newforms/fields.py:497
+msgid "This URL appears to be a broken link."
+msgstr "Този URL май е счупен линк.  "
+
+#: django/newforms/fields.py:559
+#: django/newforms/models.py:300
+#: newforms/fields.py:559
+#: newforms/models.py:300
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Направете валиден избор.  Този не е един от възможните избори.  "
+
+#: django/newforms/fields.py:598
+#: newforms/fields.py:598
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Направете валиден избор. %(value)s не е един от възможните избори."
+
+#: django/newforms/fields.py:599
+#: django/newforms/fields.py:661
+#: django/newforms/models.py:360
+#: newforms/fields.py:599
+#: newforms/fields.py:661
+#: newforms/models.py:360
+msgid "Enter a list of values."
+msgstr "Въведете списък от стойности"
+
+#: django/newforms/fields.py:752
+#: newforms/fields.py:752
+msgid "Enter a valid IPv4 address."
+msgstr "Въведете валиден IPv4 адрес."
+
+#: django/newforms/models.py:361
+#: newforms/models.py:361
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Направете валиден избор.  %s не е един от възможните избори.  "
+
+#: django/oldforms/__init__.py:409
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgstr "Въведеният текст не трябва да надвишава %s символа."
+
+#: django/oldforms/__init__.py:414
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Тук не се допускат нови редове."
+
+#: django/oldforms/__init__.py:512
+#: django/oldforms/__init__.py:586
+#: django/oldforms/__init__.py:625
+#: oldforms/__init__.py:512
+#: oldforms/__init__.py:586
+#: oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Направете валиден избор; '%(data)s' не е сред %(choices)s."
+
+#: django/oldforms/__init__.py:745
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Въведете цяло число между -32768 и 32767."
+
+#: django/oldforms/__init__.py:755
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Въведете положително число.  "
+
+#: django/oldforms/__init__.py:765
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Въведете цяло число между 0 и 32767."
+
+#: django/template/defaultfilters.py:695
+#: template/defaultfilters.py:691
+msgid "yes,no,maybe"
+msgstr "да,не,може-би"
+
+#: django/template/defaultfilters.py:726
+#: template/defaultfilters.py:722
+#, python-format
+msgid "%(size)d byte"
+msgstr "%(size)d байт"
+
+#: django/template/defaultfilters.py:728
+#: template/defaultfilters.py:724
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f КБ"
+
+#: django/template/defaultfilters.py:730
+#: template/defaultfilters.py:726
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f МБ"
+
+#: django/template/defaultfilters.py:731
+#: template/defaultfilters.py:727
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f ГБ"
+
+#: django/utils/dateformat.py:41
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: django/utils/dateformat.py:42
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: django/utils/dateformat.py:47
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: django/utils/dateformat.py:48
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: django/utils/dateformat.py:97
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "полунощ"
+
+#: django/utils/dateformat.py:99
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "обяд"
+
+#: django/utils/dates.py:6
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "понеделник"
+
+#: django/utils/dates.py:6
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "вторник"
+
+#: django/utils/dates.py:6
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "сряда"
+
+#: django/utils/dates.py:6
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "четвъртък"
+
+#: django/utils/dates.py:6
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "петък"
+
+#: django/utils/dates.py:7
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "събота"
+
+#: django/utils/dates.py:7
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "неделя"
+
+#: django/utils/dates.py:10
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Пон"
+
+#: django/utils/dates.py:10
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Вто"
+
+#: django/utils/dates.py:10
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Сря"
+
+#: django/utils/dates.py:10
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Чет"
+
+#: django/utils/dates.py:10
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Пет"
+
+#: django/utils/dates.py:11
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Съб"
+
+#: django/utils/dates.py:11
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Нед"
+
+#: django/utils/dates.py:18
+#: utils/dates.py:18
+msgid "January"
+msgstr "Януари"
+
+#: django/utils/dates.py:18
+#: utils/dates.py:18
+msgid "February"
+msgstr "Февруари"
+
+#: django/utils/dates.py:18
+#: django/utils/dates.py:31
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "March"
+msgstr "Март"
+
+#: django/utils/dates.py:18
+#: django/utils/dates.py:31
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "April"
+msgstr "Април"
+
+#: django/utils/dates.py:18
+#: django/utils/dates.py:31
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "May"
+msgstr "Май"
+
+#: django/utils/dates.py:18
+#: django/utils/dates.py:31
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "June"
+msgstr "Юни"
+
+#: django/utils/dates.py:19
+#: django/utils/dates.py:31
+#: utils/dates.py:19
+#: utils/dates.py:31
+msgid "July"
+msgstr "Юли"
+
+#: django/utils/dates.py:19
+#: utils/dates.py:19
+msgid "August"
+msgstr "Август"
+
+#: django/utils/dates.py:19
+#: utils/dates.py:19
+msgid "September"
+msgstr "Септември"
+
+#: django/utils/dates.py:19
+#: utils/dates.py:19
+msgid "October"
+msgstr "Октомври"
+
+#: django/utils/dates.py:19
+#: utils/dates.py:19
+msgid "November"
+msgstr "Ноември"
+
+#: django/utils/dates.py:20
+#: utils/dates.py:20
+msgid "December"
+msgstr "Декември"
+
+#: django/utils/dates.py:23
+#: utils/dates.py:23
+msgid "jan"
+msgstr "яну"
+
+#: django/utils/dates.py:23
+#: utils/dates.py:23
+msgid "feb"
+msgstr "фев"
+
+#: django/utils/dates.py:23
+#: utils/dates.py:23
+msgid "mar"
+msgstr "мар"
+
+#: django/utils/dates.py:23
+#: utils/dates.py:23
+msgid "apr"
+msgstr "апр"
+
+#: django/utils/dates.py:23
+#: utils/dates.py:23
+msgid "may"
+msgstr "май"
+
+#: django/utils/dates.py:23
+#: utils/dates.py:23
+msgid "jun"
+msgstr "юни"
+
+#: django/utils/dates.py:24
+#: utils/dates.py:24
+msgid "jul"
+msgstr "юли"
+
+#: django/utils/dates.py:24
+#: utils/dates.py:24
+msgid "aug"
+msgstr "авг"
+
+#: django/utils/dates.py:24
+#: utils/dates.py:24
+msgid "sep"
+msgstr "сеп"
+
+#: django/utils/dates.py:24
+#: utils/dates.py:24
+msgid "oct"
+msgstr "окт"
+
+#: django/utils/dates.py:24
+#: utils/dates.py:24
+msgid "nov"
+msgstr "ное"
+
+#: django/utils/dates.py:24
+#: utils/dates.py:24
+msgid "dec"
+msgstr "дек"
+
+#: django/utils/dates.py:31
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Яну."
+
+#: django/utils/dates.py:31
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Фев."
+
+#: django/utils/dates.py:32
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Авг."
+
+#: django/utils/dates.py:32
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Септ."
+
+#: django/utils/dates.py:32
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Окт."
+
+#: django/utils/dates.py:32
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Ное."
+
+#: django/utils/dates.py:32
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Дек."
+
+#: django/utils/text.py:127
+#: utils/text.py:127
+msgid "or"
+msgstr "или"
+
+#: django/utils/timesince.py:21
+#: utils/timesince.py:21
+msgid "year"
+msgstr "година"
+
+#: django/utils/timesince.py:22
+#: utils/timesince.py:22
+msgid "month"
+msgstr "месец"
+
+#: django/utils/timesince.py:23
+#: utils/timesince.py:23
+msgid "week"
+msgstr "седмица"
+
+#: django/utils/timesince.py:24
+#: utils/timesince.py:24
+msgid "day"
+msgstr "ден"
+
+#: django/utils/timesince.py:25
+#: utils/timesince.py:25
+msgid "hour"
+msgstr "час"
+
+#: django/utils/timesince.py:26
+#: utils/timesince.py:26
+msgid "minute"
+msgstr "минута"
+
+#: django/utils/timesince.py:46
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "минути"
+
+#: django/utils/timesince.py:51
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: django/utils/timesince.py:57
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: django/utils/translation/trans_real.py:404
+#: utils/translation/trans_real.py:404
+msgid "DATE_FORMAT"
+msgstr "j N, Y"
+
+#: django/utils/translation/trans_real.py:405
+#: utils/translation/trans_real.py:405
+msgid "DATETIME_FORMAT"
+msgstr "j N, Y, P"
+
+#: django/utils/translation/trans_real.py:406
+#: utils/translation/trans_real.py:406
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: django/utils/translation/trans_real.py:422
+#: utils/translation/trans_real.py:422
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: django/utils/translation/trans_real.py:423
+#: utils/translation/trans_real.py:423
+msgid "MONTH_DAY_FORMAT"
+msgstr "j F"
+
+#: django/views/generic/create_update.py:43
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "Обектът %(verbose_name)s бе успешно създаден.  "
+
+#: django/views/generic/create_update.py:117
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Обектът %(verbose_name)s бе успешно актуализиран."
+
+#: django/views/generic/create_update.py:184
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "Обектът %(verbose_name)s бе затрит."
+
+#: tests/regressiontests/i18n/models.py:5
+msgid "Anything"
+msgstr "Нещо"
+
+#: tests/regressiontests/views/tests/i18n.py:26
+msgid "this is to be translated"
+msgstr "това трябва да се преведе"
+
+#~ msgid ""
+#~ "Enter a postcode. A space is required between the two postcode parts."
+#~ msgstr ""
+#~ "Въведете пощенски код.  Между двете части на пощенския код трябва да има "
+#~ "разстояние.  "
+
diff --git a/webapp/django/conf/locale/bg/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/bg/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..dba4555
--- /dev/null
+++ b/webapp/django/conf/locale/bg/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/bg/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/bg/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..9f5f197
--- /dev/null
+++ b/webapp/django/conf/locale/bg/LC_MESSAGES/djangojs.po
@@ -0,0 +1,106 @@
+# translation of djangojs.po to Bulgarian
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: 2007-05-12 17:51+0300\n"
+"Last-Translator: Jordan Dimov <s3x3y1@gmail.com>\n"
+"Language-Team: Bulgarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Налични %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Избери всички"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Добави"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Премахни"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Избрахме %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Направете своя избор и щракнете "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Изчисти всички"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "Януари Февруари Март Април Май Юни Юли Август Септември Октомври Ноември Декември"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Неделя Понеделник Вторник Сряда Четвъртък Петък Събота"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "Н П В С Ч П С"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Сега"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Часовник"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Избери време"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Полунощ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "По обяд"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "Отказ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Днес"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Календар"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Вчера"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Утре"
+
diff --git a/webapp/django/conf/locale/bn/LC_MESSAGES/django.mo b/webapp/django/conf/locale/bn/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..b4fdb8e
--- /dev/null
+++ b/webapp/django/conf/locale/bn/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/bn/LC_MESSAGES/django.po b/webapp/django/conf/locale/bn/LC_MESSAGES/django.po
new file mode 100644
index 0000000..0a23ba7
--- /dev/null
+++ b/webapp/django/conf/locale/bn/LC_MESSAGES/django.po
@@ -0,0 +1,1993 @@
+# django.po -- Bengali (bn) translation of Django core
+# Copyright (C) 2005 Django Authors
+# This file is distributed under the same license as the Django package.
+# Baishampayan Ghose <b.ghose@gnu.org.in>, 2005.
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-05-16 10:12+0200\n"
+"PO-Revision-Date: 2005-11-12 20:05+0530\n"
+"Last-Translator: Baishampayan Ghose <b.ghose@gnu.org.in>\n"
+"Language-Team: Ankur Bangla <core@bengalinux.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+#, fuzzy
+msgid "object ID"
+msgstr "বস্তু আই.ডি."
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr ""
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+#, fuzzy
+msgid "comment"
+msgstr "অভ্যন্তরস্থ বস্তু"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr ""
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr ""
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr ""
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr ""
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr ""
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr ""
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr ""
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr ""
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr ""
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr ""
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr ""
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
+#, fuzzy
+msgid "IP address"
+msgstr "ই-মেল ঠিকানা"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr ""
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+
+#: contrib/comments/models.py:91
+#, fuzzy
+msgid "comments"
+msgstr "অভ্যন্তরস্থ বস্তু"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+#, fuzzy
+msgid "Content object"
+msgstr "অভ্যন্তরস্থ বস্তু ধরন"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+
+#: contrib/comments/models.py:168
+#, fuzzy
+msgid "person's name"
+msgstr "প্রথম নাম"
+
+#: contrib/comments/models.py:171
+#, fuzzy
+msgid "ip address"
+msgstr "ই-মেল ঠিকানা"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr ""
+
+#: contrib/comments/models.py:176
+#, fuzzy
+msgid "free comment"
+msgstr "মন্তব্য সক্রিয় করুন"
+
+#: contrib/comments/models.py:177
+#, fuzzy
+msgid "free comments"
+msgstr "মন্তব্য সক্রিয় করুন"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr ""
+
+#: contrib/comments/models.py:234
+#, fuzzy
+msgid "score date"
+msgstr "শেষ তারিখ"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr ""
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr ""
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr ""
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/models.py:265
+#, fuzzy
+msgid "flag date"
+msgstr "চ্যাপ্টা পাতা"
+
+#: contrib/comments/models.py:268
+#, fuzzy
+msgid "user flag"
+msgstr "ব্যবহারকারী"
+
+#: contrib/comments/models.py:269
+#, fuzzy
+msgid "user flags"
+msgstr "ব্যবহারকারী"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr ""
+
+#: contrib/comments/models.py:278
+#, fuzzy
+msgid "deletion date"
+msgstr "অধিবেশন তথ্য"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr ""
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr ""
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr ""
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr ""
+
+#: contrib/comments/views/karma.py:23
+#, fuzzy
+msgid "Invalid comment ID"
+msgstr "মন্তব্য সক্রিয় করুন"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr ""
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/views/comments.py:189
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr ""
+
+#: contrib/comments/views/comments.py:193
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr ""
+
+#: contrib/comments/views/comments.py:197
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+
+#: contrib/comments/views/comments.py:207
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "ব্যবহারকারীর নাম:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "পাসওয়ার্ড:"
+
+#: contrib/comments/templates/comments/form.html:6
+#, fuzzy
+msgid "Forgotten your password?"
+msgstr "আমার পাসওয়ার্ড পরিবর্তন করুন"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "বাইরে যান"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:27
+#: contrib/comments/templates/comments/freeform.html:5
+#, fuzzy
+msgid "Comment:"
+msgstr "মন্তব্য সক্রিয় করুন"
+
+#: contrib/comments/templates/comments/form.html:32
+#: contrib/comments/templates/comments/freeform.html:9
+#, fuzzy
+msgid "Preview comment"
+msgstr "মন্তব্য সক্রিয় করুন"
+
+#: contrib/comments/templates/comments/freeform.html:4
+#, fuzzy
+msgid "Your name:"
+msgstr "ব্যবহারকারীর নাম"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143
+msgid "All"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:110
+#, fuzzy
+msgid "Today"
+msgstr "সোমবার"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:143
+#, fuzzy
+msgid "No"
+msgstr "নভে."
+
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr ""
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "কাজের সময়"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "বস্তু আই.ডি."
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "বস্তু repr"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "কাজের ফ্ল্যাগ"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "বার্তা পরিবর্তন"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "কার্যবিবরণী এন্ট্রি"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "কার্যবিবরণী এন্ট্রি সমুহ"
+
+#: contrib/admin/templatetags/admin_list.py:228
+msgid "All dates"
+msgstr ""
+
+#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
+#: contrib/auth/forms.py:41
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:23
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "প্রবেশ করুন"
+
+#: contrib/admin/views/decorators.py:61
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:68
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:82
+msgid "Usernames cannot contain the '@' character."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:84
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+
+#: contrib/admin/views/main.py:226
+#, fuzzy
+msgid "Site administration"
+msgstr "জ্যাঙ্গো পরিচালনা"
+
+#: contrib/admin/views/main.py:260
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
+msgid "You may edit it again below."
+msgstr ""
+
+#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
+#, python-format
+msgid "You may add another %s below."
+msgstr ""
+
+#: contrib/admin/views/main.py:290
+#, fuzzy, python-format
+msgid "Add %s"
+msgstr "যোগ করুন"
+
+#: contrib/admin/views/main.py:336
+#, python-format
+msgid "Added %s."
+msgstr ""
+
+#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
+#: contrib/admin/views/main.py:340
+msgid "and"
+msgstr ""
+
+#: contrib/admin/views/main.py:338
+#, fuzzy, python-format
+msgid "Changed %s."
+msgstr "পরিবর্তন"
+
+#: contrib/admin/views/main.py:340
+#, python-format
+msgid "Deleted %s."
+msgstr ""
+
+#: contrib/admin/views/main.py:343
+msgid "No fields changed."
+msgstr ""
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+
+#: contrib/admin/views/main.py:392
+#, fuzzy, python-format
+msgid "Change %s"
+msgstr "পরিবর্তন"
+
+#: contrib/admin/views/main.py:470
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+
+#: contrib/admin/views/main.py:475
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr ""
+
+#: contrib/admin/views/main.py:508
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:511
+msgid "Are you sure?"
+msgstr ""
+
+#: contrib/admin/views/main.py:533
+#, fuzzy, python-format
+msgid "Change history: %s"
+msgstr "পাসওয়ার্ড পরিবর্তন করুন"
+
+#: contrib/admin/views/main.py:565
+#, python-format
+msgid "Select %s"
+msgstr ""
+
+#: contrib/admin/views/main.py:565
+#, python-format
+msgid "Select %s to change"
+msgstr ""
+
+#: contrib/admin/views/doc.py:277 contrib/admin/views/doc.py:286
+#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
+msgid "Integer"
+msgstr ""
+
+#: contrib/admin/views/doc.py:278
+msgid "Boolean (Either True or False)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:280
+msgid "Comma-separated integers"
+msgstr ""
+
+#: contrib/admin/views/doc.py:281
+#, fuzzy
+msgid "Date (without time)"
+msgstr "কাজের সময়"
+
+#: contrib/admin/views/doc.py:282
+#, fuzzy
+msgid "Date (with time)"
+msgstr "তারিখ/সময়"
+
+#: contrib/admin/views/doc.py:283
+#, fuzzy
+msgid "E-mail address"
+msgstr "ই-মেল ঠিকানা:"
+
+#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
+msgid "File path"
+msgstr ""
+
+#: contrib/admin/views/doc.py:285
+#, fuzzy
+msgid "Decimal number"
+msgstr "ডিসেম্বর"
+
+#: contrib/admin/views/doc.py:291
+msgid "Boolean (Either True, False or None)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:292
+msgid "Relation to parent model"
+msgstr ""
+
+#: contrib/admin/views/doc.py:293
+#, fuzzy
+msgid "Phone number"
+msgstr "একটি গোটা সংখ্যা ঢোকান।"
+
+#: contrib/admin/views/doc.py:298
+msgid "Text"
+msgstr ""
+
+#: contrib/admin/views/doc.py:299
+msgid "Time"
+msgstr ""
+
+#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "ইউ.আর.এল"
+
+#: contrib/admin/views/doc.py:301
+msgid "U.S. state (two uppercase letters)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:302
+msgid "XML text"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "পাসওয়ার্ড পরিবর্তন করুন"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "বাড়ি"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:20
+msgid "History"
+msgstr "ইতিহাস"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "তারিখ/সময়"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "ব্যবহারকারী"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "কাজ"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"এই বস্তুটি একটি পরিবর্তন ইতিহাস নেই। এইটি এই অ্যাডমিন স্থান দ্বারা সম্ভবত যোগ করা "
+"হয় নি।"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "জ্যাঙ্গো স্থান অ্যাডমিন"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "জ্যাঙ্গো পরিচালনা"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "সার্ভার ত্রুটি"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "সার্ভার ত্রুটি (৫০০)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "সার্ভার ত্রুটি<em>(৫০০)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"একটি ত্রুটি আছে। এইটি স্থান পরিচালককে ই-মেল দ্বারা প্রতিবেদন করা হয়েছে এবং খুব "
+"তাড়াতাড়ি মেরামত করা হবে। আপনার ধৈর্য্যের জন্য ধন্যবাদ।"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "পাতা খুঁজে পাওয়া গেল না"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "আমরা দুঃখিত, কিন্তু আবেদনকৃত পাতা খুঁজে পাওয়া গেল না।"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "যোগ করুন"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "পরিবর্তন"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "আপনার কোন কিছু সম্পাদনা করতে অনুমতি নেই।"
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "সাম্প্রতিক কাজ"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "আমার কাজ"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "কিছুই পাওয়া যাচ্ছে না"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, fuzzy, python-format
+msgid "Add %(name)s"
+msgstr "যোগ করুন"
+
+#: contrib/admin/templates/admin/login.html:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr "আপনি কি <a href=\"/password_reset/\">আপনার পাসওয়ার্ড ভুলে গেছেন</a>?"
+
+#: contrib/admin/templates/admin/base.html:23
+msgid "Welcome,"
+msgstr "স্বাগত,"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr ""
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(object)s' would result in deleting related "
+"objects, but your account doesn't have permission to delete the following "
+"types of objects:"
+msgstr ""
+"%(object_name)s '%(object)s' মুছে ফেললে তা সম্পর্কিত বস্তুও মুছে ফেলা হবে কিন্তু "
+"আপনার অ্যাকাউন্টে বস্তুর নিম্নলিখিত ধরন মুছে ফেলার অনুমতি নেই:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
+"the following related items will be deleted:"
+msgstr ""
+"%(object_name)s\" %(object)s\" মুছে ফেলতে আপনি কি নিশ্চিত? নিম্নলিখিত সম্পর্কিত "
+"বস্তুর সব মুছে ফেলা হবে:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "হ্যাঁ, আমি নিশ্চিত"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(title)s "
+msgstr ""
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:30
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/admin/templates/admin/change_form.html:48
+msgid "Ordering"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:51
+msgid "Order:"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:7
+#, fuzzy
+msgid "Save"
+msgstr "সক্রিয়"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "পাসওয়ার্ড পরিবর্তন"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "পাসওয়ার্ড পরিবর্তন সফল"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "আপনার পাসওয়ার্ড পরিবর্তন করা হয়েছিল।"
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "পাসওয়ার্ড রিসেট"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"আপনি কি আপনার পাসওয়ার্ড ভুলে গেছেন? আপনার ই-মেল ঠিকানা নিচে দিন এবং আমরা আপনার "
+"পাসওয়ার্ড রিসেট করে এবং আপনাকে নতুন এক পাসওয়ার্ড ই-মেল করে দেব।"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "ই-মেল ঠিকানা:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "আমার পাসওয়ার্ড রিসেট করুন"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "এই ওয়েব স্থানে আপনার কিছু সময় খরচ করার জন্য ধন্যবাদ।"
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "আবার প্রবেশ করুন"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "পাসওয়ার্ড রিসেট সফল"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"আমরা আপনাকে একটি নতুন পাসওয়ার্ড আপনার দেওয়া ই-মেল ঠিকানায় পাঠিয়ে দিয়েছি। আপনার "
+"তা খুব তাড়াতাড়ি পাওয়া উচিত।"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"দয়া করে আপনার পুরনো পাসওয়ার্ড ঢোকান, নিরাপত্তার জন্য, এবংএর জন্য তারপর আপনার নতুন "
+"পাসওয়ার্ড দুবার ঢোকান যাতে আমরা সঠিকভাবেতে তার বৈধতা পরীক্ষণ করতে পারি।"
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "পুরনো পাসওয়ার্ড:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "নতুন পাসওয়ার্ড:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "পাসওয়ার্ড দৃঢ়তরভাবে প্রতিপন্ন করুন:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "আমার পাসওয়ার্ড পরিবর্তন করুন"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "আপনি এই ই-মেলটি পাচ্ছেন কারণ আপনি একটি পাসওয়ার্ড রিসেট অনুরোধ করেছেন"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "%(site_name)s আপনার ব্যবহারকারী অ্যাকাউন্টের জন্য"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "আপনার নতুন পাসওয়ার্ড: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "এই পাতাটিতে গিয়ে এই পাসওয়ার্ডটি পরিবর্তন করতে মুক্ত অনুভব করুন:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "আপনার ব্যবহারকারীর নাম, যদি আপনি ভুলে গিয়ে থাকেন:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "আমাদের স্থান ব্যবহার করার জন্য ধন্যবাদ!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s দল"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+#, fuzzy
+msgid "Show object ID"
+msgstr "বস্তু আই.ডি."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr ""
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr ""
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr ""
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr ""
+
+#: contrib/admin/templates/widget/file.html:3
+#, fuzzy
+msgid "Change:"
+msgstr "পরিবর্তন"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "রিডাইরেক্ট করা"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"এইটি একটি পরম পাথ হওয়া উচিত, ক্ষেত্র নাম বাদ দিয়ে। উদাহরণ: '/events/search / '।"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "রিডাইরেক্ট কর"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"এইটি হয় একটি পরম পাথ হতে পারে  (যেমন উপরে) অথবা 'http:// এর সঙ্গে শুরু হওয়া "
+"একটি পূর্ণ ইউ.আর.এল ।"
+
+#: contrib/redirects/models.py:12
+msgid "redirect"
+msgstr "রিডাইরেক্ট"
+
+#: contrib/redirects/models.py:13
+msgid "redirects"
+msgstr "রিডাইরেক্ট করে"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"উদাহরণ: '/about/contact / '। প্রধান এবং অনুসরণ করা স্ল্যাশ যেন নিশ্চিত ভাবে থাকে।"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "শিরোনাম"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "অভ্যন্তরস্থ বস্তু"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "মন্তব্য সক্রিয় করুন"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "ছাঁদ নাম"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
+"use 'flatpages/default'."
+msgstr ""
+"উদাহরণ: 'flatfiles/contact_page '। যদি এইটি দেওয়া না থাকে তাহলে সিস্টেম "
+"'flatfiles/default ব্যবহার করবে।"
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "নিবন্ধন প্রয়োজনীয়"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"যদি এইটি টিক্ করা থাকে তাহলে শুধুমাত্র প্রবেশ করা ব্যবহারকারী পাতা দেখতে সক্ষম হবে।"
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "চ্যাপ্টা পাতা"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "চ্যাপ্টা পাতাগুলো"
+
+#: contrib/auth/models.py:13 contrib/auth/models.py:26
+msgid "name"
+msgstr "নাম"
+
+#: contrib/auth/models.py:15
+msgid "codename"
+msgstr "ছদ্বনাম"
+
+#: contrib/auth/models.py:17
+#, fuzzy
+msgid "permission"
+msgstr "অনুমতি"
+
+#: contrib/auth/models.py:18 contrib/auth/models.py:27
+#, fuzzy
+msgid "permissions"
+msgstr "অনুমতি"
+
+#: contrib/auth/models.py:29
+#, fuzzy
+msgid "group"
+msgstr "গ্রুপ"
+
+#: contrib/auth/models.py:30 contrib/auth/models.py:65
+#, fuzzy
+msgid "groups"
+msgstr "দল"
+
+#: contrib/auth/models.py:55
+msgid "username"
+msgstr "ব্যবহারকারীর নাম"
+
+#: contrib/auth/models.py:56
+msgid "first name"
+msgstr "প্রথম নাম"
+
+#: contrib/auth/models.py:57
+msgid "last name"
+msgstr "শেষ নাম"
+
+#: contrib/auth/models.py:58
+msgid "e-mail address"
+msgstr "ই-মেল ঠিকানা"
+
+#: contrib/auth/models.py:59
+msgid "password"
+msgstr "পাসওয়ার্ড"
+
+#: contrib/auth/models.py:59
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr ""
+
+#: contrib/auth/models.py:60
+msgid "staff status"
+msgstr " অবস্থা"
+
+#: contrib/auth/models.py:60
+msgid "Designates whether the user can log into this admin site."
+msgstr "নিশ্চয় করে যে ব্যবহারকারী এই অ্যাডমিন স্থানে প্রবেশ করতে পারে কিনা।"
+
+#: contrib/auth/models.py:61
+msgid "active"
+msgstr "সক্রিয়"
+
+#: contrib/auth/models.py:62
+msgid "superuser status"
+msgstr "সুপারইউজার অবস্থা"
+
+#: contrib/auth/models.py:63
+msgid "last login"
+msgstr "শেষ প্রবেশ"
+
+#: contrib/auth/models.py:64
+msgid "date joined"
+msgstr "যোগাদান করার তারিখ "
+
+#: contrib/auth/models.py:66
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"নিজ হাতে বরাদ্দকৃতে অনুমতি ছাড়া এই ব্যবহারকারীটি যে সব গ্রুপে আছে তার অনুমতিও পাবে।"
+
+#: contrib/auth/models.py:67
+#, fuzzy
+msgid "user permissions"
+msgstr "অনুমতি"
+
+#: contrib/auth/models.py:70
+#, fuzzy
+msgid "user"
+msgstr "ব্যবহারকারী"
+
+#: contrib/auth/models.py:71
+#, fuzzy
+msgid "users"
+msgstr "ব্যবহারকারী"
+
+#: contrib/auth/models.py:76
+msgid "Personal info"
+msgstr "ব্যক্তিগত তথ্য"
+
+#: contrib/auth/models.py:77
+msgid "Permissions"
+msgstr "অনুমতি"
+
+#: contrib/auth/models.py:78
+msgid "Important dates"
+msgstr "গুরুত্বপূর্ণ তারিখ"
+
+#: contrib/auth/models.py:79
+msgid "Groups"
+msgstr "দল"
+
+#: contrib/auth/models.py:219
+#, fuzzy
+msgid "message"
+msgstr "বার্তা"
+
+#: contrib/auth/forms.py:30
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+
+#: contrib/contenttypes/models.py:25
+#, fuzzy
+msgid "python model class name"
+msgstr "পাইথন মডিউলের নাম"
+
+#: contrib/contenttypes/models.py:28
+msgid "content type"
+msgstr "অভ্যন্তরস্থ বস্তু ধরন"
+
+#: contrib/contenttypes/models.py:29
+msgid "content types"
+msgstr "অভ্যন্তরস্থ বস্তু ধরন"
+
+#: contrib/sessions/models.py:35
+msgid "session key"
+msgstr "অধিবেশন চাবি"
+
+#: contrib/sessions/models.py:36
+msgid "session data"
+msgstr "অধিবেশন তথ্য"
+
+#: contrib/sessions/models.py:37
+msgid "expire date"
+msgstr "শেষ তারিখ"
+
+#: contrib/sessions/models.py:41
+msgid "session"
+msgstr "অধিবেশন"
+
+#: contrib/sessions/models.py:42
+msgid "sessions"
+msgstr "সেশন"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "ক্ষেত্র নাম"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "প্রদর্শিত নাম"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "স্থান"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "স্থান"
+
+#: utils/translation.py:360
+msgid "DATE_FORMAT"
+msgstr ""
+
+#: utils/translation.py:361
+msgid "DATETIME_FORMAT"
+msgstr ""
+
+#: utils/translation.py:362
+msgid "TIME_FORMAT"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "সোমবার"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "মঙ্গলবার"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "বুধবার"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "বৃহস্পতিবার"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "শুক্রবার"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "শনিবার"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "রবিবার"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "জানুয়ারী"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "ফেব্রুয়ারী"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "মার্চ"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "এপ্রিল"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "মে"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "জুন"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "জুলাই"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "অগাস্ট"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "সেপ্টেম্বর"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "অক্টোবর"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "নভেম্বর"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "ডিসেম্বর"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr ""
+
+#: utils/dates.py:19
+#, fuzzy
+msgid "may"
+msgstr "মে"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr ""
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "জানু."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "ফেব্রু"
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "অগা."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "সেপ্টে."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "অক্টো."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "নভে."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "ডিসে."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:15
+#, fuzzy
+msgid "day"
+msgid_plural "days"
+msgstr[0] "মে"
+msgstr[1] "মে"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:17
+#, fuzzy
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "স্থান"
+msgstr[1] "স্থান"
+
+#: conf/global_settings.py:37
+msgid "Bengali"
+msgstr "বাংলা"
+
+#: conf/global_settings.py:38
+msgid "Czech"
+msgstr "চেক"
+
+#: conf/global_settings.py:39
+msgid "Welsh"
+msgstr "ওয়েল্শ"
+
+#: conf/global_settings.py:40
+#, fuzzy
+msgid "Danish"
+msgstr "স্প্যানিশ"
+
+#: conf/global_settings.py:41
+msgid "German"
+msgstr "জার্মান"
+
+#: conf/global_settings.py:42
+msgid "Greek"
+msgstr ""
+
+#: conf/global_settings.py:43
+msgid "English"
+msgstr "ইংরেজী"
+
+#: conf/global_settings.py:44
+msgid "Spanish"
+msgstr "স্প্যানিশ"
+
+#: conf/global_settings.py:45
+msgid "French"
+msgstr "ফরাসী"
+
+#: conf/global_settings.py:46
+msgid "Galician"
+msgstr "গ্যালিসিয়"
+
+#: conf/global_settings.py:47
+msgid "Hungarian"
+msgstr ""
+
+#: conf/global_settings.py:48
+msgid "Hebrew"
+msgstr ""
+
+#: conf/global_settings.py:49
+msgid "Icelandic"
+msgstr ""
+
+#: conf/global_settings.py:50
+msgid "Italian"
+msgstr "ইতালিয়"
+
+#: conf/global_settings.py:51
+msgid "Japanese"
+msgstr ""
+
+#: conf/global_settings.py:52
+msgid "Dutch"
+msgstr ""
+
+#: conf/global_settings.py:53
+msgid "Norwegian"
+msgstr "নরওয়েজিয়"
+
+#: conf/global_settings.py:54
+msgid "Brazilian"
+msgstr "ব্রাজিলীয়"
+
+#: conf/global_settings.py:55
+msgid "Romanian"
+msgstr "রোমানীয়"
+
+#: conf/global_settings.py:56
+msgid "Russian"
+msgstr "রুশ"
+
+#: conf/global_settings.py:57
+msgid "Slovak"
+msgstr "স্লোভাক"
+
+#: conf/global_settings.py:58
+#, fuzzy
+msgid "Slovenian"
+msgstr "স্লোভাক"
+
+#: conf/global_settings.py:59
+msgid "Serbian"
+msgstr "সার্বিয়ান"
+
+#: conf/global_settings.py:60
+msgid "Swedish"
+msgstr ""
+
+#: conf/global_settings.py:61
+#, fuzzy
+msgid "Ukrainian"
+msgstr "ব্রাজিলীয়"
+
+#: conf/global_settings.py:62
+msgid "Simplified Chinese"
+msgstr "সরলীকৃত চীনা"
+
+#: conf/global_settings.py:63
+msgid "Traditional Chinese"
+msgstr ""
+
+#: core/validators.py:60
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "এই মানটি শুধু মাত্র অক্ষর, অংক, এবং আন্ডারস্কোর (_) হতে পারবে।"
+
+#: core/validators.py:64
+#, fuzzy
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "এই মানটি শুধু মাত্র অক্ষর, অংক, আন্ডারস্কোর (_) এবং স্ল্যাশ হতে পারবে।"
+
+#: core/validators.py:72
+msgid "Uppercase letters are not allowed here."
+msgstr "বড় হাতের অক্ষর এখানে ঢোকাতে পারবেন না।"
+
+#: core/validators.py:76
+msgid "Lowercase letters are not allowed here."
+msgstr "ছোটহাতের অক্ষর এখানে ঢোকাতে পারবেন না।"
+
+#: core/validators.py:83
+msgid "Enter only digits separated by commas."
+msgstr "কমা দ্বারা আলাদা করে শুধু মাত্র অংক ঢোকান।"
+
+#: core/validators.py:95
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "কমা দ্বারা আলাদা করে বৈধ ই-মেল ঠিকানা ঢোকান।"
+
+#: core/validators.py:99
+msgid "Please enter a valid IP address."
+msgstr "দয়া করে একটি বৈধ IP ঠিকানা ঢোকান।"
+
+#: core/validators.py:103
+msgid "Empty values are not allowed here."
+msgstr "ফাঁকা মান এখানে ঢোকাতে পারবেন না।"
+
+#: core/validators.py:107
+msgid "Non-numeric characters aren't allowed here."
+msgstr "অংক বিহীন অক্ষর এখানে ঢোকাতে পারবেন না।"
+
+#: core/validators.py:111
+msgid "This value can't be comprised solely of digits."
+msgstr "এই মানটি শুধু মাত্র অংকের দ্বারা গঠিত  হতে পারে না।"
+
+#: core/validators.py:116
+msgid "Enter a whole number."
+msgstr "একটি গোটা সংখ্যা ঢোকান।"
+
+#: core/validators.py:120
+msgid "Only alphabetical characters are allowed here."
+msgstr "এখানে শুধু মাত্র অক্ষর ঢোকাতে পারবেন ।"
+
+#: core/validators.py:124
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "YYYY-MM-DD ফরম্যাটে একটি বৈধ তারিখ ঢোকান।"
+
+#: core/validators.py:128
+msgid "Enter a valid time in HH:MM format."
+msgstr "HH:MM ফরম্যাটে একটি বৈধ সময় ঢোকান।"
+
+#: core/validators.py:132 db/models/fields/__init__.py:468
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "YYYY-MM-DD.HH:MM ফরম্যাটে একটি বৈধ তারিখ/সময় ঢোকান।"
+
+#: core/validators.py:136
+msgid "Enter a valid e-mail address."
+msgstr "একটি বৈধ ই-মেল ঠিকানা ঢোকান।"
+
+#: core/validators.py:148
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"একটি বৈধ চিত্র আপলোড করুন। যে ফাইল আপনি আপলোড করলেন তা হয় একটি চিত্র নয় অথবা "
+"একটি খারাপ চিত্র।"
+
+#: core/validators.py:155
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "%s ইউ.আর.এল-এ একটি বৈধ চিত্র নেই।"
+
+#: core/validators.py:159
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "ফোন নম্বর XXX-XXX-XXXX ফরম্যাটে অবশ্যই হতে হবে। \"%s\" অবৈধ।"
+
+#: core/validators.py:167
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "%s ইউ.আর.এল-এ একটি বৈধ QuickTime ভিডিও পাওয়া গেল না।"
+
+#: core/validators.py:171
+msgid "A valid URL is required."
+msgstr "একটি বৈধ ইউ.আর.এল জরুরি।"
+
+#: core/validators.py:185
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"বৈধ এইচটিএমএল প্রয়োজনীয়। ত্রুটিগুল হল:\n"
+"%s"
+
+#: core/validators.py:192
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "খারাপভাবে গঠিত এক্সএমএল: %s"
+
+#: core/validators.py:202
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "অবৈধ ইউ.আর.এল: %s"
+
+#: core/validators.py:206 core/validators.py:208
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "ইউ.আর.এল %s একটি ভাঙা সংযোগ।"
+
+#: core/validators.py:214
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "একটি বৈধ U S. রাজ্য abbreviation ঢোকান।"
+
+#: core/validators.py:229
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "মুখ সামলে! %s এখানে ব্যাবহার করতে পারবেন না।"
+msgstr[1] "মুখ সামলে! %s এখানে ব্যাবহার করতে পারবেন না।"
+
+#: core/validators.py:236
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "এই ক্ষেত্রটি '%s' ক্ষেত্রের সঙ্গে অবশ্যই মিলতে হবে।"
+
+#: core/validators.py:255
+msgid "Please enter something for at least one field."
+msgstr "দয়া করে অন্তত এক ক্ষেত্রেতে কিছু জিনিষ ঢোকান।"
+
+#: core/validators.py:264 core/validators.py:275
+msgid "Please enter both fields or leave them both empty."
+msgstr "দয়া করে উভয় ক্ষেত্রে ঢোকান অথবা তাদেরকে উভয় ফাঁকা ছেড়ে চলে যান।"
+
+#: core/validators.py:282
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "এই ক্ষেত্রেটি অবশ্যই দেওয়া হবে যদি %(field)s %(value)s হয়"
+
+#: core/validators.py:294
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "এই ক্ষেত্রেটি অবশ্যই দেওয়া হবে যদি %(field)s %(value)s না হয়"
+
+#: core/validators.py:313
+msgid "Duplicate values are not allowed."
+msgstr "নকল মান অনুমতি দেওয়া হল না।"
+
+#: core/validators.py:336
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "এই মানটি %sএর একটি গুন অবশ্যই হতে হবে।"
+
+#: core/validators.py:347
+msgid "Please enter a valid decimal number."
+msgstr "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান।"
+
+#: core/validators.py:349
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার অক্ষরের সংখ্যা %s থেকে কম হবে।"
+msgstr[1] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার অক্ষরের সংখ্যা %s থেকে কম হবে।"
+
+#: core/validators.py:352
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার দশমিক স্থান %s থেকে কম হবে।"
+msgstr[1] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার দশমিক স্থান %s থেকে কম হবে।"
+
+#: core/validators.py:362
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "আাপনার আপলোড করা ফাইল যেন অন্তত %s বাইট বড় হয় তা নিশ্চিত করুন।"
+
+#: core/validators.py:363
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "আাপনার আপলোড করা ফাইল যেন %s বাইটের থেকে বড় না হয় তা নিশ্চিত করুন।"
+
+#: core/validators.py:376
+msgid "The format for this field is wrong."
+msgstr "এই ক্ষেত্রের জন্য ফরম্যাটটি ভূল।"
+
+#: core/validators.py:391
+msgid "This field is invalid."
+msgstr "এই ক্ষেত্রেটি অবৈধ।"
+
+#: core/validators.py:426
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "%s থেকে কোন কিছু গ্রহন করতে পারলাম না।"
+
+#: core/validators.py:429
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"ইউ.আর.এল %(url)s অবৈধ Content-Type শিরোনাম নিয়ে '%(contenttype)s ফিরে আসল।"
+
+#: core/validators.py:462
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"দয়া করে লাইন %(line)s থেকে খোলা %(tag)s বন্ধ করুন। (\"%(start)s\"এর সঙ্গে লাইন "
+"আরম্ভ।)"
+
+#: core/validators.py:466
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"লাইন %(line)s এই প্রসঙ্গে কিছু শব্দ লেখার অনুমতি দেওয়া গেল না। (\"%(start)s\"এর "
+"সঙ্গে লাইন আরম্ভ।)"
+
+#: core/validators.py:471
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"লাইন %(line)s\"%(attr)s\"একটি অবৈধ বৈশিষ্ট্য। (\"%(start)s\"এর সঙ্গে লাইন আরম্ভ।)"
+
+#: core/validators.py:476
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+" %(line)s লাইনে \"<%(tag)s>\" একটি অবৈধ ট্যাগ। (\"%(start)s\"এর সঙ্গে লাইন "
+"আরম্ভ।)"
+
+#: core/validators.py:480
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"লাইন %(line)s একটি ট্যাগে এক অথবা আরও বেশি প্রয়োজনীয় বিশিষ্ট্যাবলী নেই। (\"%"
+"(start)s\"এর সঙ্গে লাইন আরম্ভ।)"
+
+#: core/validators.py:485
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"\"%(attr)s\"বৈশিষ্ট্যয় লাইন %(line)s একটি অবৈধ মান আছে । (\"%(start)s\"এর সঙ্গে "
+"লাইন আরম্ভ।)"
+
+#: db/models/manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+
+#: db/models/fields/__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
+#: forms/__init__.py:346
+#, fuzzy
+msgid "This field is required."
+msgstr "এই ক্ষেত্রেটি অবৈধ।"
+
+#: db/models/fields/__init__.py:337
+#, fuzzy
+msgid "This value must be an integer."
+msgstr "এই মানটি %sএর একটি গুন অবশ্যই হতে হবে।"
+
+#: db/models/fields/__init__.py:369
+#, fuzzy
+msgid "This value must be either True or False."
+msgstr "এই মানটি %sএর একটি গুন অবশ্যই হতে হবে।"
+
+#: db/models/fields/__init__.py:385
+#, fuzzy
+msgid "This field cannot be null."
+msgstr "এই ক্ষেত্রেটি অবৈধ।"
+
+#: db/models/fields/__init__.py:562
+#, fuzzy
+msgid "Enter a valid filename."
+msgstr "একটি বৈধ ই-মেল ঠিকানা ঢোকান।"
+
+#: db/models/fields/related.py:43
+#, fuzzy, python-format
+msgid "Please enter a valid %s."
+msgstr "দয়া করে একটি বৈধ IP ঠিকানা ঢোকান।"
+
+#: db/models/fields/related.py:579
+#, fuzzy
+msgid "Separate multiple IDs with commas."
+msgstr "একাধিক আই.ডি.কমার দ্বারা আলাদা করুন।"
+
+#: db/models/fields/related.py:581
+#, fuzzy
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"একের চেয়ে বেশি নির্বাচন করতে \"Control\" অথবা ম্যাক-এ \"Command\" চেপে ধরে "
+"রাখুন।"
+
+#: db/models/fields/related.py:625
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+msgstr[1] ""
+
+#: forms/__init__.py:380
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: forms/__init__.py:385
+#, fuzzy
+msgid "Line breaks are not allowed here."
+msgstr "ছোটহাতের অক্ষর এখানে ঢোকাতে পারবেন না।"
+
+#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+
+#: forms/__init__.py:645
+msgid "The submitted file is empty."
+msgstr ""
+
+#: forms/__init__.py:699
+#, fuzzy
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "একটি গোটা সংখ্যা ঢোকান।"
+
+#: forms/__init__.py:708
+#, fuzzy
+msgid "Enter a positive number."
+msgstr "একটি গোটা সংখ্যা ঢোকান।"
+
+#: forms/__init__.py:717
+#, fuzzy
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "একটি গোটা সংখ্যা ঢোকান।"
+
+#: template/defaultfilters.py:379
+msgid "yes,no,maybe"
+msgstr ""
+
+#, fuzzy
+#~ msgid "Comments"
+#~ msgstr "মন্তব্য সক্রিয় করুন"
+
+#~ msgid "label"
+#~ msgstr "লেবেল"
+
+#~ msgid "package"
+#~ msgstr "প্যাকেজ"
+
+#~ msgid "packages"
+#~ msgstr "প্যাকেজ"
+
+#, fuzzy
+#~ msgid "count"
+#~ msgstr "অভ্যন্তরস্থ বস্তু"
diff --git a/webapp/django/conf/locale/bn/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/bn/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..fae1fdc
--- /dev/null
+++ b/webapp/django/conf/locale/bn/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/bn/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/bn/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..120d08d
--- /dev/null
+++ b/webapp/django/conf/locale/bn/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-06-28 17:36+1000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr ""
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr ""
diff --git a/webapp/django/conf/locale/ca/LC_MESSAGES/django.mo b/webapp/django/conf/locale/ca/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..1775e0a
--- /dev/null
+++ b/webapp/django/conf/locale/ca/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ca/LC_MESSAGES/django.po b/webapp/django/conf/locale/ca/LC_MESSAGES/django.po
new file mode 100644
index 0000000..783fd99
--- /dev/null
+++ b/webapp/django/conf/locale/ca/LC_MESSAGES/django.po
@@ -0,0 +1,4426 @@
+# translation of django.po to
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-06-20 12:36+0200\n"
+"PO-Revision-Date: 2008-06-20 12:48+0200\n"
+"Last-Translator: Django Catalan Group <django-cat@googlegroups.com>\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "aràbic"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "bengalí"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "búlgar"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "català"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "txec"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "galès"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "danès"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "alemany"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "grec"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "anglès"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "espanyol"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "estonià"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "castellà argentí"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "euskera"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "persa"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "finlandès"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "francès"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "irlandès"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "gallec"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "húngar"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "hebreu"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "croat"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "islandès"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "italià"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "japonès"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "georgià"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "coreà"
+
+#: conf/global_settings.py:71
+msgid "khmer"
+msgstr "khmer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "canès"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "letó"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "lituà"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "macedoni"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "holandès"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "norueg"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "polac"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "portuguès"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "portuguès de brasil"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "rumanès"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "rús"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "eslovac"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "esloveni"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "serbi"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "suec"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "tàmil"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "turc"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ucranià"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "xinès simplificat"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "xinès tradicional"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Per %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Tots"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Qualsevol data"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Avui"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Últims 7 dies"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Aquest mes"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Aquest any"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Si"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "No"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Desconegut"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "moment de l'acció"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "id del objecte"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "'repr' de l'objecte"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "marca de l'acció"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "missatge del canvi"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "entrada del registre"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "entrades del registre"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "No s'ha pogut trobar la pàgina"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Ho sentim, però no s'ha pogut trobar la pàgina sol·licitada"
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Inici"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Error del servidor"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Error del servidor (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Error del servidor <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Ha ocorregut un error. S'ha informat als administradors del lloc per correu "
+"electrònic y hauria d'arreglar-se en breu. Gràcies per la vostra paciència."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Benvingut/da,"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentació"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Canviar contrasenya"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Finalitzar sessió"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Lloc administratiu de Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administració de Django"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Afegir"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Històric"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Veure al lloc"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Si us plau, corregiu l'error mostrat a baix."
+msgstr[1] "Si us plau, corregiu els errors mostrats a baix."
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Ordre"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Ordre:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Afegir %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Eliminar"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Eliminar el/la %(object_name)s '%(escaped_object)s' provocaria l'eliminació "
+"d'objectes relacionats, però el vostre compte no te permissos per a esborrar "
+"els tipus d'objecte següents:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Esteu segurs de voler esborrar els/les %(object_name)s \"%(escaped_object)s"
+"\"? S'esborraran els següents elements relacionats:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Si, estic segur"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "Per %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtre"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Models disponibles a l'aplicació %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modificar"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "No teniu permís per editar res."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Accions recents"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Les meves accions"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Cap disponible"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Alguna cosa està malament en la instal·lació de la vostra base de dades. "
+"Assegureu-vos de que s'han creat les taules, i de que la base de dades és "
+"llegible per l'usuari apropiat."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuari:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Contrasenya:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:31
+msgid "Log in"
+msgstr "Iniciar sessió"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Data/hora"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Usuari"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Acció"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "F j, Y, H:i "
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Aquest objecte no té historial de canvis. Probablement no va ser afegit "
+"utilitzant aquest lloc administratiu."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostrar tots"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Cercar"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 resultat"
+msgstr[1] "%(counter)s resultats"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s en total"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Desar com a nou"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Desar i afegir-ne un de nou"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Desar i continuar editant"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Desar"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Primer, entreu un usuari i una contrasenya. Després podreu editar més "
+"opcions de l'usuari."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Usuari"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Contrasenya"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Contrasenya (de nou)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "Introduïu la mateixa contrasenya de dalt, per fer-ne la verificació."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Introduïu una contrasenya per l'usuari <strong>%(username)s</strong>"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "'Bookmarklets'"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "'Bookmarklets' de documentació"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Per a instal·lar 'bookmarklets', arrosegueu l'enllaç a la "
+"seva barra de\n"
+"marcadors, o feu click amb el botó dret en l'enllaç i afegeixi'l als "
+"marcadors.\n"
+"Ara podeu escollir el 'bookmarklet' des de qualsevol pàgina del lloc.\n"
+"Observeu que alguns d'aquests 'bookmarklets' precisen que estigui veient\n"
+"el lloc des de un ordinador senyalat com a \"intern\" (parleu\n"
+"amb el vostre administrador de sistemes si no esteu segurs de la condició "
+"del vostre).</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentació d'aquesta pàgina"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Us porta des de qualsevol pàgina de la documentació a la vista que la genera."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Mostra el ID de l'objecte"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Mostra el 'content-type' (tipus de contingut) i el ID inequívoc de les "
+"pàgines que representen un únic objecte."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Editar aquest objecte (finestra actual)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"El porta a la pàgina d'administració de pàgines que representen un únic "
+"objecte."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Editar aquest objecte (nova finestra)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Com abans, però obre la pàgina d'administració en una nova finestra."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Gràcies per destinar el vostre temps en el web durant el dia d'avui."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Iniciar sessió de nou"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Canvi de contrasenya"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Contrasenya canviada amb èxit"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "La seva contrasenya ha estat canviada."
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Si us plau, introduïu la vostra contrasenya antiga, per seguretat, i tot "
+"seguit introduïu la vostra contrasenya nova dues vegades per verificar que "
+"l'heu escrit correctament."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Contrasenya antiga:"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Contrasenya nova:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Confirmar contrasenya:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Canviar la meva clau:"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Restablir contrasenya"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Restabliment de contrasenya exitós"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Us hem enviat una contrasenya nova a l'adreça de correu electrònic que ens "
+"heu indicat. L'haurieu de rebre en breu."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"Esteu rebent aquest missatge degut a que veu solicitar un restabliment de "
+"contrasenya."
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "del vostre compte d'usuari a %(site_name)s."
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "La vostra nova contrasenya és: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Sentiu-vos lliures de canviar-la en aquesta pàgina:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "El vostre nom d'usuari, en cas d'haver-lo oblidat:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Gràcies per fer us del nostre lloc!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "L'equip de %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Heu oblidat la vostra contrasenya? Introduïu la vostra adreça de correu "
+"electrònic i en crearem una de nova que us enviarem per correu."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Adreça de correu electrònic:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Restablir la meva contrasenya"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Hora:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Actualment:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Modificar:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Totes les dates"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "El/la %(name)s \"%(obj)s\".ha estat afegit/da amb èxit."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Podeu editar-lo de nou a baix."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Afegir usuari"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Contrasenya cambiada amb èxit"
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Canviar contrasenya: %s"
+
+#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Si us plau, introduïu un nom d'usuari i contrasenya vàlids. Tingueu en "
+"compte que tots dos camps son sensibles a majúscules i minúscules."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Si us plau, identifiqueu-vos de nou doncs la vostra sessió ha expirat. No us "
+"preocupeu, el seu enviament està emmagatzemat."
+
+#: contrib/admin/views/decorators.py:76
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Sembla ser que el vostre navegador no està configurat per acceptar "
+"'cookies' (galetes). Si us plau, habiliteu les 'cookies', recarregueu "
+"aquesta pàgina i proveu-ho de nou. "
+
+#: contrib/admin/views/decorators.py:89
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"La vostra adreça de correu no és el vostre nom d'usuari. Provi '%s' en tot "
+"cas."
+
+#: contrib/admin/views/decorators.py:93
+msgid "Usernames cannot contain the '@' character."
+msgstr "Els noms d'usuari no poden contenir el caracter '@'."
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "etiqueta:"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "filtre:"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "vista:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "No s'ha pogut trobar l'aplicació %r"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "El model %(name)r no s'ha trobat en l'aplicació %(label)r"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "l'objecte relacionat `%(label)s.%(type)s`"
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "objectes relacionats `%(label)s.%(name)s`"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "tots %s"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "nombre de %s"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Camps en objectes %s"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Enter"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Booleà (Verdader o Fals)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (de fins a %(max_length)s)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Enters separats per comes"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Data (sense hora)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Data (amb hora)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "Adreça de correu electrònic"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Ruta del fitxer"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Número amb punt de coma flotant"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "Adreça IP"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleà (Verdader, Fals o 'None' (cap))"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Relació amb el model pare"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Número de telèfon"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Text"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Hora"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "Estat dels E.U.A. (dues lletres majúscules)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "Text XML"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s no sembla ser un objecte 'urlpattern'"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Lloc administratiu"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Podeu afegir un altre %s a baix."
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "Afegir %s"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "Afegit %s."
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "i"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "Modificat %s."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "Eliminat %s."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Cap camp canviat."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "S'ha modificat amb èxit el/la %(name)s \"%(obj)s."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"S'ha afegit exitosament el/la %(name)s \"%(obj)s\". Pot editar-lo de nou "
+"abaix."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "Modificar %s"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Un o més %(fieldname)s en %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Un o més %(fieldname)s en %(name)s:"
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "El/la %(name)s \"%(obj)s\" ha estat eliminat amb èxit."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Esteu segurs?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Modificar històric: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "Seleccioneu %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "Seleccioneu %s per modificar"
+
+#: contrib/admin/views/main.py:765
+msgid "Database error"
+msgstr "Error de base de dades"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Els dos camps de contrasenya no coincideixen."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Ja existeix un usuari amb aquest nom."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"El seu navegador no sembla tenir les 'cookies' (galetes) activades. Aquestes "
+"són necessàries per iniciar la sessió."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Aquest compte està inactiu"
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Aquesta adreça de correu no té associada cap compte d'usuari. Esteu segurs "
+"de que s'ha registrat?"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Restablir contrasenya en %s"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Els dos camps de nova contrasenya no coincideixen."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr ""
+"La seva antiga contrasenya no és correcte. Si el plau, introduïu-la de nou."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "nom"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "nom en clau"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "permís"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "permisos"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "grup"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:148
+msgid "groups"
+msgstr "grups"
+
+#: contrib/auth/models.py:138
+msgid "username"
+msgstr "nom d'usuari"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Obligatori. 30 o menys caràcters. Només caràcters alfanumèrics (lletres, "
+"dígits i el guió baix)."
+
+#: contrib/auth/models.py:139
+msgid "first name"
+msgstr "nom propi"
+
+#: contrib/auth/models.py:140
+msgid "last name"
+msgstr "cognoms"
+
+#: contrib/auth/models.py:141
+msgid "e-mail address"
+msgstr "adreça de correu electrònic"
+
+#: contrib/auth/models.py:142
+msgid "password"
+msgstr "contrasenya"
+
+#: contrib/auth/models.py:142
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Utilitzeu '[algo]$[salt]$[hexdigest]' o el <a href=\"password/\">formulari "
+"de canvi de contrasenya</a>."
+
+#: contrib/auth/models.py:143
+msgid "staff status"
+msgstr "membre del personal"
+
+#: contrib/auth/models.py:143
+msgid "Designates whether the user can log into this admin site."
+msgstr "Indica si l'usuari pot entrar en el lloc administratiu."
+
+#: contrib/auth/models.py:144
+msgid "active"
+msgstr "actiu"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Designa si aquest usuari ha de ser tractat com a actiu. Deseleccioneu-ho "
+"enlloc d'esborrar comptes d'usuari."
+
+#: contrib/auth/models.py:145
+msgid "superuser status"
+msgstr "estat de superusuari"
+
+#: contrib/auth/models.py:145
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Designa que aquest usuari té tots els permissos sense assignar-los "
+"explícitament."
+
+#: contrib/auth/models.py:146
+msgid "last login"
+msgstr "últim inici de sessió"
+
+#: contrib/auth/models.py:147
+msgid "date joined"
+msgstr "data de creació"
+
+#: contrib/auth/models.py:149
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els "
+"permissos dels grups dels que sigui membre."
+
+#: contrib/auth/models.py:150
+msgid "user permissions"
+msgstr "permissos de l'usuari"
+
+#: contrib/auth/models.py:154
+msgid "user"
+msgstr "usuari"
+
+#: contrib/auth/models.py:155
+msgid "users"
+msgstr "usuaris"
+
+#: contrib/auth/models.py:161
+msgid "Personal info"
+msgstr "Informació personal"
+
+#: contrib/auth/models.py:162
+msgid "Permissions"
+msgstr "permisos"
+
+#: contrib/auth/models.py:163
+msgid "Important dates"
+msgstr "Dates importants"
+
+#: contrib/auth/models.py:164
+msgid "Groups"
+msgstr "Grups"
+
+#: contrib/auth/models.py:323
+msgid "message"
+msgstr "missatge"
+
+#: contrib/auth/views.py:48
+msgid "Logged out"
+msgstr "Sessió finalitzada"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
+msgid "object ID"
+msgstr "ID de l'objecte"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "encapçalament"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+msgid "comment"
+msgstr "comentari"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "qualificació #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "qualificació #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "qualificació #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "qualificació #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "qualificació #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "qualificació #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "qualificació #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "qualificació #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "és qualificació vàlida"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "data/hora d'enviament"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
+msgid "is public"
+msgstr "és públic"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "està eliminat"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Marqueu aquesta caixa si el comentari no és apropiat. En lloc seu es "
+"mostrarà \"Aquest comentari ha estat eliminat\" "
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "comentaris"
+
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
+msgid "Content object"
+msgstr "Objecte Contingut"
+
+#: contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Enviat per %(user)s el %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+msgid "person's name"
+msgstr "nom de la persona"
+
+#: contrib/comments/models.py:181
+msgid "ip address"
+msgstr "adreça ip"
+
+#: contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr "aprovat pels membres del personal"
+
+#: contrib/comments/models.py:187
+msgid "free comment"
+msgstr "comentari lliure"
+
+#: contrib/comments/models.py:188
+msgid "free comments"
+msgstr "comentaris lliures"
+
+#: contrib/comments/models.py:250
+msgid "score"
+msgstr "puntuació"
+
+#: contrib/comments/models.py:251
+msgid "score date"
+msgstr "data de la puntuació"
+
+#: contrib/comments/models.py:255
+msgid "karma score"
+msgstr "puntuació de karma"
+
+#: contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "punts de karma"
+
+#: contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d punt/s per %(user)s"
+
+#: contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Aquest comentari va ser marcat per %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:285
+msgid "flag date"
+msgstr "data de la marca"
+
+#: contrib/comments/models.py:289
+msgid "user flag"
+msgstr "marca d'usuari"
+
+#: contrib/comments/models.py:290
+msgid "user flags"
+msgstr "marques d'usuari"
+
+#: contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "Marca de %r"
+
+#: contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "data d'eliminació"
+
+#: contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "eliminació del moderador"
+
+#: contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "eliminacions del moderador"
+
+#: contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "eliminació del moderador per %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Contrasenya oblidada?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Qualificacions"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Obligatori"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcional"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Enviar una fotografia"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Comentari:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Previsualitzar comentari"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "El seu nom:"
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Es precisa aquesta puntuació perquè n'heu introduït almenys una altra."
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Aquest comentari va ser enviat per un usuari que ha enviat menys de %(count)"
+"s comentari:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Aquest comentari va ser enviat per un usuari que ha enviat menys de %(count)"
+"s comentaris:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Aquest comentari va ser publicat per un usuari incomplet\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Només s'admet POST"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Un o més dels camps obligatoris no ha estat enviat"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Algú ha manipulat el formulari de comentaris (violació de seguretat)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"El formulari de comentaris tenia un paràmetre 'target' invàlid -- el ID del "
+"objecte era invàlid"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+"El formulari del comentari no ha proveït ni 'previsualitzar' ni 'enviar'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Els usuaris anònims no poden votar"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "ID del comentari invàlid"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "No podeu votar-vos a vosaltres mateixos"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "nom de la classe del model en python"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "tipus de contingut"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "tipus de continguts"
+
+#: contrib/flatpages/models.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Exemple: '/about/contact/'. Assegureu-vos de posar les barres al principi i "
+"al final."
+
+#: contrib/flatpages/models.py:10
+msgid "title"
+msgstr "títol"
+
+#: contrib/flatpages/models.py:11
+msgid "content"
+msgstr "contingut"
+
+#: contrib/flatpages/models.py:12
+msgid "enable comments"
+msgstr "habilitar comentaris"
+
+#: contrib/flatpages/models.py:13
+msgid "template name"
+msgstr "nom de la plantilla"
+
+#: contrib/flatpages/models.py:14
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Exemple: 'flatpages/contact_page.html'. Si no es proporciona, el sistema "
+"utilitzarà 'flatpages/default.htmlt'."
+
+#: contrib/flatpages/models.py:15
+msgid "registration required"
+msgstr "cal estar registrat"
+
+#: contrib/flatpages/models.py:15
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Si està marcat, només els usuaris registrats podran veure la pàgina."
+
+#: contrib/flatpages/models.py:20
+msgid "flat page"
+msgstr "pàgina estàtica"
+
+#: contrib/flatpages/models.py:21
+msgid "flat pages"
+msgstr "pàgines estàtiques"
+
+#: contrib/flatpages/models.py:27
+msgid "Advanced options"
+msgstr "Opcions avançades"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "rt"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "r"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "n"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "r"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milió"
+msgstr[1] "%(value).1f  milions"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f bilió"
+msgstr[1] "%(value).1f bilions"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f trilió"
+msgstr[1] "%(value).1f trilions"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "un"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "dos"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "tres"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "quatre"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "cinc"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "sis"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "set"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "vuit"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "nou"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "avui"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "demà"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "ahir"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Introduïu un codi postal en el format NNNN o ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Aquest camp precisa només números."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Aquest camp precisa 7 o 8 dígits."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+"Introduïu un número CUIT vàlid en el format XX-XXXXXXXX-X o XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Invàlid CUIT."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Introduïu un codi postal de 4 dígits."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Introduïu un codi zip en el format XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "El número de telèfon ha de estar en el format XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+"Seleccioneu un estat brasiler vàlid. Aquest estat no és un dels estats "
+"disponibles."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Número CPF invàlid."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Aquest camp precisa com a màxim 11 dígits o 14 caracters."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Número CNPJ invàlid."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Aquest camp precisa almenys 14 dígits."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Introduïu un codi postal en el format XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"Introduïu un número vàlid de la Assegurança Social de Canadà en el format "
+"XXX-XXX-XXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Argau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Inner-Rhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausser-Rhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Ciutat"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Camp"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berna"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Friburg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Ginebra"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerna"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zuric"
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Introduïu un codi zip en el format XXXX."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Introduïu un número d'identificació o de passaport Suïssos en els formats "
+"1234567890 o X1234567<0."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Introduïu un RUT Xilè vàlid."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Introduïu un RUT Xilè vàlid. El format és XX.XXX.XXX-X"
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "El RUT Xilè no és vàlid."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Württemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Baviera"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlín"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Pomerània Occidental"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Baixa Saxònia"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Renània del Nord-Westfàlia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Renània-Palatinat"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxònia"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxònia-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Slesvig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Turíngia"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Introduïu un codi zip en el format XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Introduïu un número de tarjeta d'identificació alemany vàlid en el format "
+"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Àlaba"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almeria"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Àvila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Illes Balears"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Càceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cadis"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castelló"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Còrdova"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "La Corunya"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Conca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipúscoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Osca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "Lleó"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Màlaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Múrcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Astúries"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palència"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantàbria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segòvia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Sòria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Terol"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "València"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Biscaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Saragossa"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalusia"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragó"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principat d'Astúries"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Illes Balears"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Euskadi"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Canàries"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castella-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castella i Lleó"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Catalunya"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galícia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Regió de Múrcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Comunitat Foral de Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Comunitat Valenciana"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Introduïu un codi postal en rang i format 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Introduïu un número de telèfon vàlid en un dels formats 6XXXXXXXX, 8XXXXXXXX "
+"o 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Si us plau, introduïu un NIF, NIE o CIF vàlid."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Si us plau, introduïu un NIF o NIE vàlid."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Validació invàlida del NIF."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Validació invàlida del NIE."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Validació invàlida del CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+"Introduïu un número de compte bancari vàlid en el format XXXX-XXXX-XX-"
+"XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Validació invàlida del número de compte bancari."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Introduïu un número vàlid de la seguretat social finlandesa."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Introduïu un codi zip en el format XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"Introduïu un número de identificació d'Islàndia. El format és XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "El número de identificació d'Islàndia no és vàlid."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Introduïu un codi zip vàlid."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Introduïu un número valid de la Seguretat Social."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Introduïu un número de IVA (VAT) vàlid."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Introduïu un codi postal en el format XXXXXXX o XX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baixa California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baixa California Sud"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Districte Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Estat de Mèxic"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Introduïu un codi postal vàlid."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Introduïu un número de telèfon vàlid."
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Introduïu un número SoFi vàlid."
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friesland"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburg"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Noord-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Noord-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Zuid-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Introduïu un número de la seguretat social Noruega vàlid."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Aquest camp precisa 8 dígits."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Aquest camp precisa 11 dígits."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "El número d'identidicació nacional està compost de 11 digits."
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Validació invàlida del número d'identificació nacional."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Introduïu un número NIP en el format XXX-XXX-XX-XX o XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Validació invàlida del número tributari (NIP)."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+"El número nacional de registre de negocis (REGON) consisteix en 7 o 9 dígits."
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Validació invàlida del número nacional de registre de negocis."
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Introduïu un codi postal en el format XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Lower Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Lesser Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Subcarpatia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Greater Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "West Pomerania"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Introduïu un codi postal en el format XXXXX or XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Regió de Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Regió de Bratislava"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Regió de Kosice"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Regió de Nitra"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Regió de Presov"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Regió de Trencin"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Regió de Trnava"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Regió de Zilina"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Introdueix un codi postal vàlid."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall and Isles of Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Greater London"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Greater Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "South Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "West Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "Comptat de Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "County Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "Glamorgan Sud"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "Glamorgan Oest"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Escòcia central"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetland Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Anglaterra"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Irlanda del Nord"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Escòcia"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Gal·les"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Introduïu un codi zip en el format XXXXX o XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+"Introduïu un número vàlid de la Seguretat Social dels E.U.A. en el format "
+"XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Introduïu un número d'Identitat Sud Africà valid"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Introduïu un codi postal Sud Africà vàlid."
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Cap Oriental"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Estat lliure"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Cap Nord"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "Cap Oest"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Cap Occidental"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redreçar des de"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Aquesta ruta hauria de ser el camí absolut, excloent-ne el nom del domini. "
+"Exemple '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redreçar a"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Això pot ser bé una ruta absoluta (com a dalt) o una URL completa que "
+"comenci per http:// ."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redreçament"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redreçaments"
+
+#: contrib/sessions/models.py:41
+msgid "session key"
+msgstr "clau de la sessió"
+
+#: contrib/sessions/models.py:42
+msgid "session data"
+msgstr "dades de la sessió"
+
+#: contrib/sessions/models.py:43
+msgid "expire date"
+msgstr "data de caducitat"
+
+#: contrib/sessions/models.py:48
+msgid "session"
+msgstr "sessió"
+
+#: contrib/sessions/models.py:49
+msgid "sessions"
+msgstr "sessions"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nom del domini"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "nom per mostrar"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "lloc"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "llocs"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Aquest valor ha de contenir només lletres, números i guions baixos."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Aquest valor ha de contenir només lletres, números, guions baixos, guions i "
+"barres (/)."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Aquest valor ha de contenir només lletres, números, guions o guions baixos"
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "No es permeten majúscules aquí."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "No es permeten minúscules aquí."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Introduïu només dígits separats per comes."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Introduïu adreces de correu electrònic vàlides separades per comes."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Si el plau, introduïu una adreça IP vàlida."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "No s'admeten valor buits."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "No s'admeten caràcters no numèrics."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Aquest valor no pot contenir només dígits."
+
+#: core/validators.py:128 newforms/fields.py:152
+msgid "Enter a whole number."
+msgstr "Introduïu un número sencer."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Només s'admeten caracters alfabètics aquí."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "L'any ha de ser posterior al 1900"
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Data invàlida: %s"
+
+#: core/validators.py:156 db/models/fields/__init__.py:548
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Introduïu una data vàlida en el forma AAAA-MM-DD."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Introduïu una hora vàlida en el format HH:MM."
+
+#: core/validators.py:165 db/models/fields/__init__.py:625
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Introduïu un data/hora vàlida en format YYYY-MM-DD HH:MM."
+
+#: core/validators.py:170 newforms/fields.py:403
+msgid "Enter a valid e-mail address."
+msgstr "Introduïu una adreça de correu vàlida."
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"No s'ha enviat cap fitxer. Comprovi el tipus de codificació del formulari."
+
+#: core/validators.py:193 newforms/fields.py:459
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Envieu una imatge vàlida. El fitxer que heu enviat no era una imatge o "
+"estava corrupte."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "La URL %s no apunta a una imatge vàlida."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Els números de telèfon han de guardar-se en el format XXX-XXX-XXXX. \"%s\" "
+"no és vàlid."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "La URL %s no apunta a un video QuickTime vàlid."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Es precisa una URL vàlida."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Es precisa HTML vàlid. Els errors específics són:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML incorrectament format: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL invàlida: %s"
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "La URL %s és un enllaç trencat."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Introdueixi una abreviatura vàlida d'estat dels E.U.A.."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Vigileu amb el vostre llenguatge! Aquí no s'admet la paraula: %s."
+msgstr[1] ""
+"Vigileu amb el vostre llenguatge! Aquí no s'admeten les paraules: %s."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Aquest camp ha de concordar amb el camp '%s'."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Si us plau, introduïu alguna cosa almenys en un camp."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Si us plau, ompliu els dos camps o deixeu-los tots dos en blanc."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "S'ha de proporcionar aquest camp si %(field)s és %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "S'ha de proporcionar aquest camp si %(field)s no és %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "No s'admeten valors duplicats."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Aquest valor ha d'estar comprès entre %(lower)s i %(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Aquest valor ha de ser com a mínim %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Aquest valor ha de ser com a màxim %s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Aquest valor ha de ser una potència de %s."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Si us plau, introduïu un número decimal vàlid."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+"Si us plau, introduïu un número decimal vàlid de com a màxim %s digit."
+msgstr[1] ""
+"Si us plau, introduïu un número decimal vàlid de com a màxim %s digits."
+
+#: core/validators.py:447
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Si us plau, introduïu un número decimal vàlid que la seva part sencera sigui "
+"de com a màxim %s digit."
+msgstr[1] ""
+"Si us plau, introduïu un número decimal vàlid que la seva part sencera sigui "
+"de com a màxim %s digits."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Si us plau, introduïu un número decimal vàlid de com a màxim %s posició "
+"decimal."
+msgstr[1] ""
+"Si us plau, introduïu un número decimal vàlid de com a màxim %s posicions "
+"decimals."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Si us plau, introduïu un número amb punt de coma flotant vàlid."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+"Assegureu-vos de que el fitxer que heu enviat té, com a mínim, %s bytes."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+"Assegureu-vos de que el fitxer que heu enviat té, com a màxim %s bytes."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "El format per aquest camp és incorrecte."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "El camp no és vàlid."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "No s'ha pogut obtenir res de %s."
+
+#: core/validators.py:539
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"La URL %(url)s ha va tornar la capcelera Content-Type '%(contenttype)s', que "
+"no és vàlida."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Si us plau, tanqueu l'etiqueta %(tag)s des de la línia %(line)s. (La línia "
+"comença amb \"%(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Part del text que comença en la línia %(line)s no està permès en aquest "
+"context. (La línia comença per \"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"El \"%(attr)s\" de la línia %(line)s no és un atribut vàlid. (La línia "
+"comença per \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"La \"<%(tag)s>\" de la línia %(line)s no és una etiqueta vàlida. (La línia "
+"comença per \"%(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Una etiqueta de la línia %(line)s li falta un o més atributs requerits.(La "
+"línia comença per \"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"L'atribut \"%(attr)s\" de la línia %(line)s té un valor que no és vàlid. (La "
+"línia comença per \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "Ja existeix un %(object)s del tipus %(type)s amb aquest %(field)s."
+
+#: db/models/fields/__init__.py:51
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Ja existeix %(optname)s amb aquest %(fieldname)s."
+
+#: db/models/fields/__init__.py:176 db/models/fields/__init__.py:348
+#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791
+#: newforms/fields.py:46 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Aquest camp és obligatori."
+
+#: db/models/fields/__init__.py:448
+msgid "This value must be an integer."
+msgstr "Aquest valor ha de ser un enter."
+
+#: db/models/fields/__init__.py:487
+msgid "This value must be either True or False."
+msgstr "Aquest valor ha de ser True (Veritat) o False (Fals)"
+
+#: db/models/fields/__init__.py:511
+msgid "This field cannot be null."
+msgstr "Aquest camp no pot ser nul."
+
+#: db/models/fields/__init__.py:689
+msgid "This value must be a decimal number."
+msgstr "Aquest valor ha de ser un número decimal."
+
+#: db/models/fields/__init__.py:800
+msgid "Enter a valid filename."
+msgstr "Introduïu un nom de fitxer vàlid."
+
+#: db/models/fields/__init__.py:981
+msgid "This value must be either None, True or False."
+msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)"
+
+#: db/models/fields/related.py:94
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Si us plau, introduïu un %s vàlid."
+
+#: db/models/fields/related.py:746
+msgid "Separate multiple IDs with commas."
+msgstr "Separi múltiples IDs amb comes."
+
+#: db/models/fields/related.py:748
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Premeu la tecla \"Control\" -o \"Command\" en un Mac- per seleccionar més "
+"d'un valor."
+
+#: db/models/fields/related.py:795
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Si us plau, introduïu els IDs de %(self)s vàlids. El valor %(value)r és "
+"invàlid."
+msgstr[1] ""
+"Si us plau, introduïu IDs de %(self)s vàlids. Els valors %(value)r són "
+"invàlids."
+
+#: newforms/fields.py:47
+msgid "Enter a valid value."
+msgstr "Introduïu un valor vàlid."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Assegureu-vos de que el valor té com a màxim %(max)d caràcters (en té %"
+"(length)d)."
+
+#: newforms/fields.py:125
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Assegureu-vos de que el valor té com a mínim %(min)d caràcters (en té %"
+"(length)d)."
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Aquest valor ha de ser menor o igual a %s."
+
+#: newforms/fields.py:154 newforms/fields.py:183 newforms/fields.py:212
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Assegureu-vos de que aquest valor sigui superior o igual a %s."
+
+#: newforms/fields.py:181 newforms/fields.py:210
+msgid "Enter a number."
+msgstr "Introduïu un número."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Assegureu-vos de que no hi ha més de %s dígits en total."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Assegureu-vos de que no hi ha més de %s decimals."
+
+#: newforms/fields.py:215
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Assegureu-vos de que no hi ha més de %s dígits decimals."
+
+#: newforms/fields.py:263 newforms/fields.py:750
+msgid "Enter a valid date."
+msgstr "Introduïu una data vàlida."
+
+#: newforms/fields.py:296 newforms/fields.py:751
+msgid "Enter a valid time."
+msgstr "Introduïu una hora vàlida."
+
+#: newforms/fields.py:335
+msgid "Enter a valid date/time."
+msgstr "Introduïu una data/hora vàlides."
+
+#: newforms/fields.py:434
+msgid "No file was submitted."
+msgstr "No s'ha enviat cap fitxer."
+
+#: newforms/fields.py:435 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "El fitxer enviat està buit."
+
+#: newforms/fields.py:497
+msgid "Enter a valid URL."
+msgstr "Introduïu una URL vàlida."
+
+#: newforms/fields.py:498
+msgid "This URL appears to be a broken link."
+msgstr "Aquesta URL sembla ser un enllaç trencat."
+
+#: newforms/fields.py:559 newforms/models.py:305
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Escolli una opció vàlida; Aquesta opció no és una de les opcions disponibles."
+
+#: newforms/fields.py:598
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Esculliu una opció vàlida. %(value)s no és una de les opcions vàlides."
+
+#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:372
+msgid "Enter a list of values."
+msgstr "Introduïu una llista de valors."
+
+#: newforms/fields.py:779
+msgid "Enter a valid IPv4 address."
+msgstr "Introduïu una adreça IPv4 vàlida."
+
+#: newforms/models.py:373
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Escolliu una opció vàlida; %s' no és una de les opcions vàlides."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Assegureu-vos de que el seu text té menys de %s caràcter."
+msgstr[1] "Assegureu-vos de que el seu text té menys de %s caràcters."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "No es permeten salts de línia."
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Escolliu una opció vàlida; %(data)s' no està dintre de %(choices)s."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Introduïu un enter entre -32,768 i 32,767."
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Introduïu un número positiu."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Introduïu un número entre 0 i 32,767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "si,no,potser"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "mitja nit"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "mig dia"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Dilluns"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Dimarts"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Dimecres"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Dijous"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Divendres"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Dissabte"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Diumenge"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Dl"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Dm"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Dmx"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Dj"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Dv"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Ds"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Dg"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "gener"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "febrer"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "març"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "abril"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "maig"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "juny"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "juliol"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "agost"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "setembre"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "octubre"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "novembre"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "desembre"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "gen"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "abr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "ago"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "set"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "oct"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "des"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "gen."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "ago."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "set."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "oct."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "des."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "o"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "any"
+msgstr[1] "anys"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mes"
+msgstr[1] "mesos"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "setmana"
+msgstr[1] "setmanes"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dia"
+msgstr[1] "dies"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hora"
+msgstr[1] "hores"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minut"
+msgstr[1] "minuts"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minuts"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:403
+msgid "DATE_FORMAT"
+msgstr "F j, Y"
+
+#: utils/translation/trans_real.py:404
+msgid "DATETIME_FORMAT"
+msgstr "F j, Y, H:i"
+
+#: utils/translation/trans_real.py:405
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:421
+msgid "YEAR_MONTH_FORMAT"
+msgstr "j de/d' F del Y"
+
+#: utils/translation/trans_real.py:422
+msgid "MONTH_DAY_FORMAT"
+msgstr "j de/d' F del Y"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "El/la %(verbose_name)s s'ha creat amb èxit."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "El/la %(verbose_name)s s'ha actualtzat amb èxit."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "El %(verbose_name)s s'ha eliminat."
+
+#~ msgid "Brazilian"
+#~ msgstr "Brasileny"
+
+#~ msgid "Gaeilge"
+#~ msgstr "Gaeilge"
+
+#~ msgid ""
+#~ "Enter a postcode. A space is required between the two postcode parts."
+#~ msgstr ""
+#~ "Introdueixi un codi postal. És necessari un espai entre les dues parts "
+#~ "del codi postal."
diff --git a/webapp/django/conf/locale/ca/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/ca/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..0df69ae
--- /dev/null
+++ b/webapp/django/conf/locale/ca/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ca/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/ca/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..67c50c6
--- /dev/null
+++ b/webapp/django/conf/locale/ca/LC_MESSAGES/djangojs.po
@@ -0,0 +1,115 @@
+# translation of djangojs.po to catalan
+# This file is distributed under the same license as the Django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-02-15 01:00+0200\n"
+"PO-Revision-Date: 2008-03-25 18:54+0100\n"
+"Last-Translator: Django Catalan Group <django-cat@googlegroups.com>\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: VIM 7.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s Disponibles"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Seleccionar tots"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Afegir"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Eliminar"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s Escollits"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Faci les seves seleccions i faci click a"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Deseleccionar tots"
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid "January February March April May June July August September October November December"
+msgstr "Gener Febrer Març Abril Maig Juny Juliol Agost Setembre Octubre Novembre Desembre"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Diumenge Dilluns Dimarts Dimecres Dijous Divendres Dissabte"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "Dg Dl Dt Dc Dj Dv Ds"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Ara"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Rellotje"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Esculli una hora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Mitja nit"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Migdia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Cancel·lar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Avui"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Calendari"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Ahir"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Demà"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Mostrar"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Ocultar"
+
diff --git a/webapp/django/conf/locale/cs/LC_MESSAGES/django.mo b/webapp/django/conf/locale/cs/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..733ed04
--- /dev/null
+++ b/webapp/django/conf/locale/cs/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/cs/LC_MESSAGES/django.po b/webapp/django/conf/locale/cs/LC_MESSAGES/django.po
new file mode 100644
index 0000000..56ad1fc
--- /dev/null
+++ b/webapp/django/conf/locale/cs/LC_MESSAGES/django.po
@@ -0,0 +1,4541 @@
+# Translation of django.po to Czech
+# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the DJANGO package.
+# Radek Svarz <translate@svarz.cz>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-20 12:51+0200\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n>1 && n<5 ? 1 : 2;\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "arabsky"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "bengálsky"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "bulharsky"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "katalánsky"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "česky"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "welšsky"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "dánsky"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "německy"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "řecky"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "anglicky"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "španělsky"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "estonsky"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "argentinskou španělštinou"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "baskicky"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "persky"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "finsky"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "francouzsky"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "irsky"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "galicijsky"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "maďarsky"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "hebrejsky"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "chorvatsky"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "islandsky"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "italsky"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "japonsky"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "gruzijsky"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "korejsky"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "khmersky"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "kannadsky"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "litevsky"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "lotyšsky"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "makedonsky"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "holandsky"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "norsky"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "polsky"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "portugalsky"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "brazilskou portugalštinou"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "rumunsky"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "rusky"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "slovensky"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "slovinsky"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "srbsky"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "švédsky"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "tamilsky"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "telužsky"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "turecky"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ukrajinsky"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "jednoduchou čínštinou"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "tradiční čínštinou"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>%s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Vše"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Libovolné datum"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Dnes"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Posledních 7 dní"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Tento měsíc"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Tento rok"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Ano"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Ne"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Neznámé"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "čas akce"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "object id"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "object repr"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "příznak akce"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "zpráva změny"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "log záznam"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "log záznamy"
+
+#: contrib/admin/options.py:56 contrib/admin/options.py:115
+msgid "None"
+msgstr "Žádný"
+
+#: contrib/admin/options.py:326
+#, python-format
+msgid "Changed %s."
+msgstr "Záznam %s změněn."
+
+#: contrib/admin/options.py:326 contrib/admin/options.py:336
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "a"
+
+#: contrib/admin/options.py:331
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Přidán záznam \"%(object)s\" typu \"%(name)s\"."
+
+#: contrib/admin/options.py:335
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Změněn \"%(list)s\" pro záznam \"%(object)s\" typu \"%(name)s\"."
+
+#: contrib/admin/options.py:340
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Smazán záznam \"%(object)s\" typu \"%(name)s\"."
+
+#: contrib/admin/options.py:344
+msgid "No fields changed."
+msgstr "Nebyly změněny žádná pole."
+
+#: contrib/admin/options.py:405 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Záznam \"%(obj)s\" typu \"%(name)s\" byl úspěšně přidán."
+
+#: contrib/admin/options.py:409 contrib/admin/options.py:442
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "V úpravách můžete pokračovat níže."
+
+#: contrib/admin/options.py:419 contrib/admin/options.py:452
+#, python-format
+msgid "You may add another %s below."
+msgstr "Další záznam typu \"%s\" můžete přidat níže."
+
+#: contrib/admin/options.py:440
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Záznam \"%(obj)s\" typu \"%(name)s\" byl úspěšně změněn."
+
+#: contrib/admin/options.py:448
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"Záznam \"%(obj)s\" typu \"%(name)s\" byl úspěšně přidán. Níže můžete v "
+"úpravách pokračovat."
+
+#: contrib/admin/options.py:514
+#, python-format
+msgid "Add %s"
+msgstr "%s: přidat"
+
+#: contrib/admin/options.py:591
+#, python-format
+msgid "Change %s"
+msgstr "%s: změnit"
+
+#: contrib/admin/options.py:622
+msgid "Database error"
+msgstr "Databázová chyba"
+
+#: contrib/admin/options.py:671
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Záznam \"%(obj)s\" typu \"%(name)s\" byl úspěšně smazán."
+
+#: contrib/admin/options.py:678
+msgid "Are you sure?"
+msgstr "Jste si jist(á)?"
+
+#: contrib/admin/options.py:705
+#, python-format
+msgid "Change history: %s"
+msgstr "Historie změn: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Prosíme, vložte správné uživatelské jméno a heslo. Poznámka - u obou položek "
+"se rozlišuje velikost písmen."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Prosíme, znovu se přihlašte, Vaše sezení vypršelo. Nemusíte se obávat, Vaše "
+"podání je uloženo."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Vypadá to, že Váš prohlížeč není nastaven, aby akceptoval cookies. Prosíme, "
+"zapněte cookies, obnovte tuto stránku a zkuste znovu."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Uživatelská jména nemohou obsahovat znak \"@\"."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Vaše e-mailová adresa není Vaše uživatelské jméno. Zkuste místo toho \"%s\"."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Django správa"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Přihlášení"
+
+#: contrib/admin/util.py:138
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+"Položka \"%(fieldname)s\" pro tento záznam typu \"%(name)s\": \"%(obj)s\""
+
+#: contrib/admin/util.py:143
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Položka \"%(fieldname)s\" pro tento záznam typu \"%(name)s\":"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Datum:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Čas:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Momentálně:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Změna:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Stránka nenalezena"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Je nám líto, ale vyžádaná stránka nebyla nalezena."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Domů"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Chyba serveru"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Chyba serveru (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Chyba serveru <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Nastala chyba. Byla oznámena administrátorovi serveru pomocí e-mailu a měla "
+"by být brzy odstraněna. Děkujeme za trpělivost."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Vítejte, uživateli"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentace"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Změnit heslo"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Odhlásit se"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django správa webu"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django správa"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Přidat"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Historie"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Pohled na stránku"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Prosíme, odstraňte chybu uvedenou níže."
+msgstr[1] "Prosíme, odstraňte chyby uvedené níže."
+msgstr[2] "Prosíme, odstraňte chyby uvedené níže."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s: přidat"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filtr"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Smazat"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Smazání záznamu \"%(escaped_object)s\" typu \"%(object_name)s\" by vyústilo "
+"ve vymazání souvisejících objektů, ale Váš účet nemá oprávnění pro mazání "
+"následujících typů objektů:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Jste si jist(á), že chcete smazat záznam \"%(escaped_object)s\" typu \"%"
+"(object_name)s\"? Všechny následující související položky budou smazány:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Ano, jsem si jist(á)"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Dle: %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Dostupné modely v aplikaci %(name)s."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Změnit"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Nemáte oprávnění nic měnit."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Poslední akce"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Mé akce"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Nic"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Něco není v pořádku s Vaší instalací databáze. Ujistěte se, že byly "
+"vytvořeny odpovídající tabulky databáze a že databáze je přístupná pro čtení "
+"daným databázovým uživatelem."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Uživatelské jméno:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Heslo:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Datum/čas"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Uživatel"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Akce"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j. N Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Tento objekt nemá historii změn. Pravděpodobně nebyl přidán přes "
+"administrátorské rozhraní."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Zobrazit všechny"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Provést"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 výsledek"
+msgstr[1] "%(counter)s výsledky"
+msgstr[2] "%(counter)s výsledků"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s celkem"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Uložit jako nový záznam"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Uložit a přidat další záznam"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Uložit a pokračovat v úpravách"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Uložit"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Nejdříve vložte uživatelské jméno a heslo. Poté budete moci upravovat více "
+"uživatelských nastavení."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Uživatelské jméno"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Heslo"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Heslo (znovu)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Pro ověření vložte stejné heslo znovu."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Vložte nové heslo pro uživatele <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Děkujeme Vám za Váš strávený čas na našich webových stránkách."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Přihlašte se znovu"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Změna hesla"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Změna hesla byla úspěšná"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Vaše heslo bylo změněno."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Prosíme, vložte svoje staré heslo a poté vložte dvakrát nové heslo. Tak "
+"můžeme ověřit, že jste ho napsal(a) správně."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Staré heslo:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Nové heslo:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Potvrdit heslo:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Změnit heslo"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Obnovení hesla"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Heslo obnoveno"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Vaše heslo bylo nastaveno. Nyní se můžete přihlásit."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Obnovení hesla potvrzeno"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Vložte nové heslo"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Vložte dvakrát nové heslo. Tak můžeme ověřit, že jste ho napsal(a) správně."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Obnovení hesla nebylo úspěšné"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"Odkaz pro obnovení hesla nebyl platný, možná již byl použit. Prosíme, "
+"požádejte o obnovení hesla znovu."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Obnovení hesla bylo úspěšné"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Poslali jsme Vám e-mailem pokyny pro nastavení vašeho hesla na adresu, "
+"kterou jste zadal(a). Měl(a) byste je dostat během okamžiku."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Dostal(a) jste tento e-mail, protože jste požádal(a) o obnovení hesla"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "pro Váš uživatelský účet na %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Prosíme, jděte na následující stránku a vyberte nové heslo:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Vaše uživatelské jméno, pro případ, že jste zapomněl(a):"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Děkujeme za používání našeho webu!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Tým %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Zapomněl(a) jste heslo? Vložte níže Vaši e-mailovou adresu a my Vám e-mailem "
+"zašleme pokyny pro nastavení nového."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mailová adresa:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Obnovit heslo"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "Všechna data"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "%s: vybrat"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "%s: vybrat pro změnu"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "web"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "šablona"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filtr:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "pohled (view):"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Aplikace %r nenalezena"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Model %(model_name)r v aplikaci %(app_label)r nenalezen"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "související objekt `%(app_label)s.%(data_type)s`"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "související objekty `%(app_label)s.%(object_name)s`"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "Vše: %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "Počet: %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Pole na objektech  %s"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Celé číslo"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (buď Ano (True), nebo Ne (False))"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Text (maximálně %(max_length)s znaků)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Celá čísla oddělená čárkou"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Datum (bez času)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Datum (s časem)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Desetinné číslo"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "E-mailová adresa"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Cesta k souboru"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Desetinné číslo"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP adresa"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (buď Ano (True), Ne (False), nebo Nic (None))"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "V relaci k rodičovskému modelu"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Telefonní číslo"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Text"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Čas"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "Stát US (2 velké znaky)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML text"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s pravděpodobně není objekt urlpattern"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklety"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentační bookmarklety"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Pro nainstalování bookmarkletů, přetáhněte odkaz na Vaše "
+"záložky (oblíbené),\n"
+"nebo klikněte pravým tlačítkem na odkaz a přidejte ho k Vašim záložkám "
+"(oblíbeným). Nyní můžete\n"
+"zvolit bookmarklet z libovolné stránky. Poznámka: Některé tyto\n"
+"bookmarklety vyžadují, abyste prohlížel(a) stránky z počítače, který je "
+"nastaven jako\n"
+"\"\"interní\" (promluvte si s Vaším administrátorem, jestli si nejste "
+"jisti,\n"
+"zda je Váš počítač \"interní\").</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Dokumentace pro tuto stránku"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Z libovolné stránky otevře dokumentaci pro pohled, který vygeneroval tuto "
+"stránku."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Ukázat id objektu"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Ukáže content-type a unikátní ID pro stránky, které reprezentují jeden "
+"objekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Upravit tento objekt (ve stávajícím okně)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Přepne do admin stránky pro stránky, které reprezentují jeden objekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Upravit tento objekt (ve novém okně)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Jako výše, ale otevře admin stránky v novém okně."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Osobní informace"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Oprávnění"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Důležitá data"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Skupiny"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Uživatel: přidat"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Změna hesla byla úspěšná"
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Heslo pro uživatele %s: změnit"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Požadováno. 30 znaků nebo méně. Pouze alfanumerické znaky (znaky, čísla a "
+"podtržítka)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Tato hodnota musí obsahovat pouze znaky, čísla nebo podtržítka."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Potvrzení hesla"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "Uživatel s tímto jménem již existuje."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "Hesla se neshodují."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Tento účet není aktivní."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Váš prohlížeč pravděpodobně nemá zapnuté cookies. Cookies jsou potřeba pro "
+"zalogování."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "E-mail"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"K této e-mailové adrese není přiřazen žádný uživatelský účet. Jste si jist"
+"(a), že jste se zaregistroval(a)?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Obnovení hesla na %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Nové heslo"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Potvrzení nového hesla"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Staré heslo"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Vaše staré heslo nebylo vloženo správně. Prosíme, zkuste to znovu."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "jméno"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "codename"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "oprávnění"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "oprávnění"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "skupina"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "skupiny"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "uživatelské jméno"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "křestní jméno"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "příjmení"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "e-mailová adresa"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "heslo"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Použijte formát \"[algo]$[salt]$[hexdigest]\" nebo <a href=\"password/"
+"\">formulář pro změnu hesla</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "administrativní přístup "
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "Rozhodne, zda se uživatel může přihlásit do správy webu."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "aktivní"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Rozhodne, zda může být uživatel považován za aktivního. Nastavte toto místo "
+"mazání účtů."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "stav superuživatel"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Stanoví, že uživatel má veškerá oprávnění bez jejich explicitního přiřazení."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "poslední přihlášení"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "datum registrace"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Kromě manuálně přidělených oprávnění uživatel dostane všechna oprávnění pro "
+"každou skupinu, ve které je."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "uživatelská oprávnění"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "uživatel"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "uživatelé"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "zpráva"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "Odhlášeno"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "ID objektu"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "titulek"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "komentář"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "hodnocení #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "hodnocení #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "hodnocení #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "hodnocení #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "hodnocení #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "hodnocení #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "hodnocení #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "hodnocení #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "je platné hodnocení"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "datum/čas byl zaslán"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "je veřejné"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "je odstraněno"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Zaškrtněte tento box, pokud komentář není vhodný. Místo něj bude zobrazena "
+"zpráva \"Tento komentář byl smazán\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "komentáře"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "objekt obsahu"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Zadané %(user)s dne %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "jméno osoby"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "IP adresa"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "scháleno správci"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "volný komentář"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "volné komentáře"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "hodnocení"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "expirace hodnocení"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "karma bod"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "karma body"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d hodnoceno od %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Tento komentář byl označkován uživatelem %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "datum označení"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "uživatelské označení"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "uživatelská označení"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Označeno %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "datum smazání"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "vymazáno moderátorem"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "vymazané moderátorem"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Vymazáno moderátorem od %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Zapomenuté heslo?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Hodnocení"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Povinné"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Volitelné"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Zařadit fotografii"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentář:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Náhled komentáře"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Vaše jméno:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"Toto hodnocení je povinné, protože jste zadal(a) alespoň jedno jiné "
+"hodnocení."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Tento komentář byl odevzdán uživatelem, který(á) odevzdal(a) méně než %"
+"(count)s komentář:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Tento komentář byl odevzdán uživatelem, který(á) odevzdal(a) méně než %"
+"(count)s komentáře:\n"
+"\n"
+"%(text)s"
+msgstr[2] ""
+"Tento komentář byl odevzdán uživatelem, který(á) odevzdal(a) méně než %"
+"(count)s komentářů:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Tento komentář byl odevzdán povrchním uživatelem:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Je povolená pouze metoda POST"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Jedno nebo více povinných polí nebylo vyplněné"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Někdo falšoval formulář komentáře (bezpečnostní narušení)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Formulář komentáře měl neplatný parametr \"target\" -- ID objektu nebylo "
+"platné"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Formulář komentáře neobsahoval buď \"preview\" nebo \"post\""
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonymní uživatelé nemohou hlasovat"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Neplatné ID komentáře"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Nelze hlasovat pro sebe"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "jméno modelu v Pythonu"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "typ obsahu"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "typy obsahu"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Příklad: \"/o/kontakt/\". Ujistěte se, že máte počáteční a konečná lomítka."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Tato hodnota musí obsahovat pouze znaky, čísla, podtržítka, pomlčky nebo "
+"lomítka."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Pokročilá nastavení"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "titulek"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "obsah"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "povolit komentáře"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "jméno šablony"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Příklad: \"flatpages/kontaktni_stranka.html\". Pokud toto není zadáno, "
+"systém použije \"flatpages/default.html\"."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "nutná registrace"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Pokud je zaškrtnuto, pouze přihlášení uživatelé budou moci prohlížet tuto "
+"stránku."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "statická stránka"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "statické stránky"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Hodnota geometrie nedodána."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Neplatná hodnota geometrie."
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Neplatný typ geometrie."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr ""
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr ""
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drenthe"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "přesměrovat z"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Toto by měla být absolutní cesta, bez domény. Příklad: \"/udalosti/hledat/\"."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "přesměrovat na"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Toto může být buď absolutní cesta (jako nahoře) nebo plné URL začínající na "
+"\"http://\"."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "přesměrování"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "přesměrování"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "klíč sezení"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "data sezení"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "datum expirace"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sezení"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sezení"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "jméno domény"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "zobrazené jméno"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "weby"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Tato hodnota musí obsahovat pouze znaky, čísla, podtržítka nebo čárky."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Velká písmena zde nejsou povolená."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Malá písmena zde nejsou povolená."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Vložte pouze cifry oddělené čárkami."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Vložte platné e-mailové adresy oddělené čárkami."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Prosíme, zadejte platnou IP adresu."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Zde nejsou povolené prázdné hodnoty."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Znaky, které nejsou čísla, zde nejsou povoleny."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Tato hodnota nemůže být složená pouze z cifer."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Vložte celé číslo."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Zde jsou povoleny pouze alfanumerické znaky."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Neplatné datum: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Vložte platné datum ve formátu RRRR-MM-DD."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Vložte platný čas ve formátu HH:MM."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Vložte platné datum a čas ve formátu RRRR-MM-DD HH:MM."
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "Vložte platnou e-mailovou adresu."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Soubor nebyl odeslán. Zkontrolujte \"encoding type\" formuláře."
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Nahrajte na server platný obrázek. Poslaný soubor nebyl obrázkem nebo byl "
+"poškozen."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s neodkazuje na platný obrázek."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefonní čísla musí být ve formátu XXX-XXX-XXXX. \"%s\" není platné."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s neodkazuje na platné video ve formátu QuickTime."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "Je vyžadováno platné URL."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Je vyžadováno platné HTML. Konkrétní chyby jsou:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Špatně formované XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Neplatné URL: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Odkaz na URL %s nefunguje."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Vložte platnou zkratku U.S. státu."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Mluvte slušně! Slovo %s zde není přípustné."
+msgstr[1] "Mluvte slušně! Slova %s zde nejsou přípustná."
+msgstr[2] "Mluvte slušně! Slova %s zde nejsou přípustná."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Toto pole se musí shodovat s polem \"%s\"."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Prosíme, vložte něco alespoň pro jedno pole."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Prosíme, vložte obě pole, nebo je nechte obě prázdná."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Toto pole musí být vyplněno, když %(field)s má %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Toto pole musí být vyplněno, když %(field)s nemá %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Duplikátní hodnoty nejsou povolené."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Tato hodnota musí být mezi %(lower)s and %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Tato hodnota musí alespoň %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Tato hodnota nesmí být více než %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Tato hodnota musí být mocninou %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Prosíme, vložte platné číslo."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Prosíme, vložte platné číslo s nejvíce %s cifrou celkem."
+msgstr[1] "Prosíme, vložte platné číslo s nejvíce %s ciframi celkem."
+msgstr[2] "Prosíme, vložte platné číslo s nejvíce %s ciframi celkem."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Prosíme, vložte platné číslo s nejvíce %s cifrou."
+msgstr[1] "Prosíme, vložte platné číslo s nejvíce %s ciframi."
+msgstr[2] "Prosíme, vložte platné číslo s nejvíce %s ciframi."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Prosíme, vložte platné číslo s nejvíce %s cifrou za desetinnou čárkou celkem."
+msgstr[1] ""
+"Prosíme, vložte platné číslo s nejvíce %s ciframi za desetinnou čárkou "
+"celkem."
+msgstr[2] ""
+"Prosíme, vložte platné číslo s nejvíce %s ciframi za desetinnou čárkou "
+"celkem."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Prosíme, vložte platné reálné číslo."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Ujistěte se, že poslaný soubor má nejméně %s bytů."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Ujistěte se, že  soubor má nejvíce %s bytů."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Formát pro toto pole je špatný."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Toto pole není platné."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Nelze získat nic z %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"URL %(url)s vrátilo neplatnou hlavičku Content-Type \"%(contenttype)s\"."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Prosíme, zavřete nezavřenou značku %(tag)s z řádky %(line)s. (Řádka začíná s "
+"\"%(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Nějaký text začínající na řádce %(line)s není povolen v tomto kontextu. "
+"(Řádka začíná s \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" na řádce %(line)s je neplatný atribut. (Řádka začíná s \"%"
+"(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" na řádce %(line)s je neplatná značka. (Řádka začíná s \"%"
+"(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Značce na řádce %(line)s schází jeden nebo více požadovaných atributů. "
+"(Řádka začíná s \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Atribut \"%(attr)s\" na řádce %(line)s má neplatnou hodnotu. (Řádka začína s "
+"\"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+"%(object)s s takto vyplněným polem \"%(type)s\" již existuje pro dané pole "
+"\"%(field)s\"."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s s takto vyplněným polem \"%(fieldname)s\" již existuje."
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "Toto pole je povinné."
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "Tato hodnota musí být celé číslo."
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "Tato hodnota musí být buď Ano (True), nebo Ne (False)."
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "Toto pole nemůže být prázdné (null)."
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "Vložte platné datum a čas ve formátu RRRR-MM-DD HH:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "Tato hodnota musí být celé číslo."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "Tato hodnota musí být buď Nic (None), Ano (True) nebo Ne (False)."
+
+#: db/models/fields/__init__.py:937 db/models/fields/__init__.py:950
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Vložte platný čas ve formátu HH:MM[:ss[.uuuuuu]]"
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Vložte platný název souboru."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Prosíme, zadejte %s správně."
+
+#: db/models/fields/related.py:782
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Podržte  \"Control\" (nebo \"Command\" na Macu) pro vybrání více jak jedné "
+"položky."
+
+#: db/models/fields/related.py:862
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Prosíme, vložte platná %(self)s ID. Hodnota %(value)r není platná."
+msgstr[1] ""
+"Prosíme, vložte platná %(self)s ID. Hodnoty %(value)r nejsou platné."
+msgstr[2] ""
+"Prosíme, vložte platná %(self)s ID. Hodnoty %(value)r nejsou platné."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Vložte platnou hodnotu."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Tato hodnota musí mít nejvíce %(max)d znaků (nyní jich má %(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Tato hodnota musí mít nejméně %(min)d znaků (nyní jich má %(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Tato hodnota musí být menší nebo rovná %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Tato hodnota musí být větší nebo rovná %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Vložte číslo."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Tato hodnota nesmí mít celkem více než %s cifer."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Tato hodnota nesmí mít za desetinou čárkou více než %s cifer."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Tato hodnota nesmí mít před desetinnou čárkou více než %s cifer."
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "Vložte platné datum."
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "Vložte platný čas."
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "Vložte platný datum a čas."
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "Žádný soubor nebyl poslán."
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Poslaný soubor je prázdný."
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "Vložte platnou URL."
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "Tento odkaz nefunguje."
+
+#: forms/fields.py:601 forms/fields.py:652
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Vyberte platnou možnost. Volba %(value)s není dostupná."
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "Vložte seznam hodnot."
+
+#: forms/fields.py:832
+msgid "Enter a valid IPv4 address."
+msgstr "Vložte platnou IPv4 adresu."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Vyberte platnou možnost. Tato není dostupná."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Vyberte platnou možnost. Volba %s není dostupná."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Ujistěte se, že Váš text má méně než %s znak."
+msgstr[1] "Ujistěte se, že Váš text má méně než %s znaky."
+msgstr[2] "Ujistěte se, že Váš text má méně než %s znaků."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Zalomení řádky zde není povoleno."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Vyberte platnou volbu. \"%(data)s\" není mezi %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Vložte celé číslo mezi -32768 a 32767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Vložte celé kladné číslo."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Vložte celé číslo mezi 0 a 32767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "ano, ne, možná"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d byty"
+msgstr[2] "%(size)d bytů"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "odp."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "dop."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "odp."
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "dop."
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "půlnoc"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "poledne"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "pondělí"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "úterý"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "středa"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "čtvrtek"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "pátek"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "sobota"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "neděle"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "po"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "út"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "st"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "čt"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "pá"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "so"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "ne"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "leden"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "únor"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "březen"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "duben"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "květen"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "červen"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "červenec"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "srpen"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "září"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "říjen"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "listopad"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "prosinec"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "led"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "úno"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "bře"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "dub"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "kvě"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "čen"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "čec"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "srp"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "zář"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "říj"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "lis"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "pro"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "led."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "ún."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "srp."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "zář."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "říj."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "list."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "pros."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "nebo"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "rok"
+msgstr[1] "roky"
+msgstr[2] "let"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "měsíc"
+msgstr[1] "měsíce"
+msgstr[2] "měsíců"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "týden"
+msgstr[1] "týdny"
+msgstr[2] "týdnů"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "den"
+msgstr[1] "dny"
+msgstr[2] "dnů"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hodina"
+msgstr[1] "hodiny"
+msgstr[2] "hodin"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuta"
+msgstr[1] "minuty"
+msgstr[2] "minut"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minuty"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "j. n. Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "j. n. Y, H:i"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "j. F"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "Záznam typu \"%(verbose_name)s\" byl úspěšně vytvořen."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Záznam typu \"%(verbose_name)s\" byl úspěšně změněn."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "Záznam typu \"%(verbose_name)s\" byl smazán."
diff --git a/webapp/django/conf/locale/cs/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/cs/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..1a72a92
--- /dev/null
+++ b/webapp/django/conf/locale/cs/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/cs/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/cs/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..adcc0a0
--- /dev/null
+++ b/webapp/django/conf/locale/cs/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# Translation of djangojs.po to Czech
+# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the DJANGO package.
+# Radek Svarz <translate@svarz.cz>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-20 12:52+0200\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n>1 && n<5 ? 1 : 2;\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Dostupná %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Vybrat vše"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Přidat"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Odebrat"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Vybraná %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Vyberte si a klikněte "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Vymazat vše"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Leden Únor Březen Duben Květen Červen Červenec Srpen Září Říjen Listopad "
+"Prosinec"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "N P U S C P S"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Neděle Pondělí Úterý Středa Čtvrtek Pátek Sobota"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Ukázat"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Skrýt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Nyní"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Hodiny"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Vyberte čas"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Půlnoc"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 ráno"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Poledne"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Storno"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Dnes"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalendář"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Včera"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Zítra"
diff --git a/webapp/django/conf/locale/cy/LC_MESSAGES/django.mo b/webapp/django/conf/locale/cy/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..6c92b2b
--- /dev/null
+++ b/webapp/django/conf/locale/cy/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/cy/LC_MESSAGES/django.po b/webapp/django/conf/locale/cy/LC_MESSAGES/django.po
new file mode 100644
index 0000000..ab07be6
--- /dev/null
+++ b/webapp/django/conf/locale/cy/LC_MESSAGES/django.po
@@ -0,0 +1,1990 @@
+# Translation of Django to Welsh.
+# Copyright (C) 2005 Django.
+# This file is distributed under the same license as the Django package.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-05-16 10:12+0200\n"
+"PO-Revision-Date: 2005-11-05 HO:MI+ZONE\n"
+"Last-Translator: Jason Davies <jason@jasondavies.com>\n"
+"Language-Team: Cymraeg <cy@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "ID gwrthrych"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "pennawd"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "sylw"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "cyfraddiad #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "cyfraddiad #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "cyfraddiad #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "cyfraddiad #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "cyfraddiad #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "cyfraddiad #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "cyfraddiad #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "cyfraddiad #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "yn gyfraddiad dilys"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "dyddiad/amser wedi ymostwng"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "yn gyhoeddus"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
+msgid "IP address"
+msgstr "cyfeiriad IP"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "wedi diddymu"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+
+#: contrib/comments/models.py:91
+#, fuzzy
+msgid "comments"
+msgstr "sylw"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Gwrthrych cynnwys"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Postiwyd gan %(user)s ar %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "enw'r person"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "cyfeiriad ip"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr ""
+
+#: contrib/comments/models.py:176
+#, fuzzy
+msgid "free comment"
+msgstr "Sylw rhydd"
+
+#: contrib/comments/models.py:177
+#, fuzzy
+msgid "free comments"
+msgstr "Sylwadau rhydd"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "sgôr"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "dyddiad sgôr"
+
+#: contrib/comments/models.py:237
+#, fuzzy
+msgid "karma score"
+msgstr "Sgôr Carma"
+
+#: contrib/comments/models.py:238
+#, fuzzy
+msgid "karma scores"
+msgstr "Sgorau Carma"
+
+#: contrib/comments/models.py:242
+#, python-format
+#, fuzzy
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "fflagio dyddiad"
+
+#: contrib/comments/models.py:268
+#, fuzzy
+msgid "user flag"
+msgstr "Fflag defnyddiwr"
+
+#: contrib/comments/models.py:269
+#, fuzzy
+msgid "user flags"
+msgstr "Fflagiau defnyddwyr"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Fflagio hefo %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "dyddiad dilead"
+
+#: contrib/comments/models.py:280
+#, fuzzy
+msgid "moderator deletion"
+msgstr "Dilead cymedrolwr"
+
+#: contrib/comments/models.py:281
+#, fuzzy
+msgid "moderator deletions"
+msgstr "Dileadau cymedrolwr"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Dilead cymedrolwr gan %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Ni gellir defnyddwyr dienw pleidleisio"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "ID sylw annilys"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Dim pleidleisio ar gyfer eich hun"
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/views/comments.py:189
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Caniateir POSTiau yn unig"
+
+#: contrib/comments/views/comments.py:193
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr ""
+
+#: contrib/comments/views/comments.py:197
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+
+#: contrib/comments/views/comments.py:207
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Enw defnyddiwr:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Cyfrinair:"
+
+#: contrib/comments/templates/comments/form.html:6
+#, fuzzy
+msgid "Forgotten your password?"
+msgstr "Newidio fy nghyfrinair"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "Allgofnodi"
+
+#: contrib/comments/templates/comments/form.html:12
+#, fuzzy
+msgid "Ratings"
+msgstr "cyfraddiad #1"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:27
+#: contrib/comments/templates/comments/freeform.html:5
+#, fuzzy
+msgid "Comment:"
+msgstr "Sylw"
+
+#: contrib/comments/templates/comments/form.html:32
+#: contrib/comments/templates/comments/freeform.html:9
+#, fuzzy
+msgid "Preview comment"
+msgstr "Sylw rhydd"
+
+#: contrib/comments/templates/comments/freeform.html:4
+#, fuzzy
+msgid "Your name:"
+msgstr "enw defnyddiwr"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143
+msgid "All"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Unrhyw dyddiad"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Heddiw"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "7 diwrnod gorffennol"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Mis yma"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Blwyddyn yma"
+
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "Ie"
+
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "Na"
+
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr ""
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "amser gweithred"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "id gwrthrych"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "repr gwrthrych"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "fflag gweithred"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "neges newid"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "cofnod"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "cofnodion"
+
+#: contrib/admin/templatetags/admin_list.py:228
+msgid "All dates"
+msgstr "Dyddiadau i gyd"
+
+#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
+#: contrib/auth/forms.py:41
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:23
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Mewngofnodi"
+
+#: contrib/admin/views/decorators.py:61
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:68
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:82
+msgid "Usernames cannot contain the '@' character."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:84
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+
+#: contrib/admin/views/main.py:226
+msgid "Site administration"
+msgstr "Gweinyddiad safle"
+
+#: contrib/admin/views/main.py:260
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
+msgid "You may edit it again below."
+msgstr ""
+
+#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
+#, python-format
+msgid "You may add another %s below."
+msgstr ""
+
+#: contrib/admin/views/main.py:290
+#, python-format
+msgid "Add %s"
+msgstr "Ychwanegu %s"
+
+#: contrib/admin/views/main.py:336
+#, python-format
+msgid "Added %s."
+msgstr "Ychwanegwyd %s."
+
+#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
+#: contrib/admin/views/main.py:340
+msgid "and"
+msgstr "ac"
+
+#: contrib/admin/views/main.py:338
+#, python-format
+msgid "Changed %s."
+msgstr "Newidiwyd %s."
+
+#: contrib/admin/views/main.py:340
+#, python-format
+msgid "Deleted %s."
+msgstr "Dileuwyd %s."
+
+#: contrib/admin/views/main.py:343
+msgid "No fields changed."
+msgstr ""
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+
+#: contrib/admin/views/main.py:392
+#, python-format
+msgid "Change %s"
+msgstr "Newidio %s"
+
+#: contrib/admin/views/main.py:470
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+
+#: contrib/admin/views/main.py:475
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr ""
+
+#: contrib/admin/views/main.py:508
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:511
+msgid "Are you sure?"
+msgstr "Ydych yn sicr?"
+
+#: contrib/admin/views/main.py:533
+#, python-format
+msgid "Change history: %s"
+msgstr "Hanes newid: %s"
+
+#: contrib/admin/views/main.py:565
+#, python-format
+msgid "Select %s"
+msgstr "Dewis %s"
+
+#: contrib/admin/views/main.py:565
+#, python-format
+msgid "Select %s to change"
+msgstr "Dewis %s i newid"
+
+#: contrib/admin/views/doc.py:277 contrib/admin/views/doc.py:286
+#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
+msgid "Integer"
+msgstr ""
+
+#: contrib/admin/views/doc.py:278
+msgid "Boolean (Either True or False)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:280
+msgid "Comma-separated integers"
+msgstr ""
+
+#: contrib/admin/views/doc.py:281
+msgid "Date (without time)"
+msgstr "Dyddiad (heb amser)"
+
+#: contrib/admin/views/doc.py:282
+msgid "Date (with time)"
+msgstr "Dyddiad (gyda amser)"
+
+#: contrib/admin/views/doc.py:283
+msgid "E-mail address"
+msgstr "Cyfeiriad e-bost"
+
+#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
+msgid "File path"
+msgstr "Llwybr ffeil"
+
+#: contrib/admin/views/doc.py:285
+msgid "Decimal number"
+msgstr "Rhif degol"
+
+#: contrib/admin/views/doc.py:291
+msgid "Boolean (Either True, False or None)"
+msgstr "Boole (Naill ai True, False neu None)"
+
+#: contrib/admin/views/doc.py:292
+msgid "Relation to parent model"
+msgstr "Perthynas i model rhiant"
+
+#: contrib/admin/views/doc.py:293
+msgid "Phone number"
+msgstr "Rhif ffôn"
+
+#: contrib/admin/views/doc.py:298
+msgid "Text"
+msgstr "Testun"
+
+#: contrib/admin/views/doc.py:299
+msgid "Time"
+msgstr "Amser"
+
+#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:301
+msgid "U.S. state (two uppercase letters)"
+msgstr "Talaith U.D. (dwy briflythyren)"
+
+#: contrib/admin/views/doc.py:302
+msgid "XML text"
+msgstr "Testun XML"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dogfennaeth"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "Newid cyfrinair"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Adref"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:20
+msgid "History"
+msgstr "Hanes"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Dyddiad/amser"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Defnyddiwr"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Gweithred"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Does dim hanes newid gan y gwrthrych yma. Mae'n debyg ni ychwanegwyd drwy'r "
+"safle gweinydd yma."
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Gweinyddiad safle Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Gweinyddiad Django"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Gwall gweinyddwr"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Gwall gweinyddwr (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Gwall Gweinyddwr <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Mae gwall wedi digwydd. Adroddwyd i weinyddwyr y safle drwy e-bost ac ddylai "
+"cael ei drwsio cyn bo hir."
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Tudalen heb ei ddarganfod"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Mae'n ddrwg gennym, ond nid darganfwyd y dudalen a dymunwyd"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Ychwanegu"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Newidio"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Does genych ddim hawl i olygu unrhywbeth."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Gweithredau Diweddar"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Fy Ngweithredau"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Dim ar gael"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Ychwanegu %(name)s"
+
+#: contrib/admin/templates/admin/login.html:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr "Ydych wedi <a href=\"/password_reset/\">anghofio eich cyfrinair</a>?"
+
+#: contrib/admin/templates/admin/base.html:23
+msgid "Welcome,"
+msgstr "Croeso,"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Dileu"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(object)s' would result in deleting related "
+"objects, but your account doesn't have permission to delete the following "
+"types of objects:"
+msgstr ""
+"Bydda dileu'r %(object_name)s '%(object)s' yn ddilyn i dileu'r wrthrychau "
+"perthynol, ond ni chaniateir eich cyfrif ddileu'r mathau o wrthrych canlynol:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
+"the following related items will be deleted:"
+msgstr ""
+"Ydych yn sicr chi eiso ddileu'r %(object_name)s \"%(object)s\"? Bydd y cwbl "
+"o'r eitemau perthynol canlynol yn cae eu ddileu:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Yndw, rwy'n sicr"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(title)s "
+msgstr " Gan %(title)s"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Ewch"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Gweld ar safle"
+
+#: contrib/admin/templates/admin/change_form.html:30
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/admin/templates/admin/change_form.html:48
+msgid "Ordering"
+msgstr "Trefnu"
+
+#: contrib/admin/templates/admin/change_form.html:51
+msgid "Order:"
+msgstr "Trefn:"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Cadw fel newydd"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Cadw ac ychwanegu un arall"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Cadw ac parhau i olygu"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Cadw"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Newid cyfrinair"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Newid cyfrinair yn lwyddianus"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Newidwyd eich cyfrinair."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Ailosod cyfrinair"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Wedi anghofio eich cyfrinair? Rhowch eich cyfeiriad e-bost isod, ac "
+"ailosodan eich cyfrinair ac e-bostio'r un newydd i chi."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Cyfeiriad e-bost:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Ailosodi fy nghyfrinair"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Diolch am dreulio amser ansawdd gyda'r safle we heddiw 'ma."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Ailmewngofnodi"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Ailosod cyfrinair yn lwyddianus"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr "Wedi e-bostio cyfrinair newydd i'r gyfeiriad e-bost "
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Rhowch eich cyfrinair hen, er mwyn gwarchodaeth, yna rhowch eich cyfrinair "
+"newydd dwywaith er mwyn i ni wirio y teipiwyd yn gywir."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Cyfrinair hen:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Cyfrinair newydd:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Cadarnhewch cyfrinair:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Newidio fy nghyfrinair"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Chi'n derbyn yr e-bost yma achos ddymunwyd ailosod cyfrinair"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "er mwyn eich cyfrif defnyddiwr ar %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Eich cyfrinair newydd yw: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Mae croeso i chi newid y gyfrinair hon wrth fynd i'r dudalen yma:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Eich enw defnyddiwr, rhag ofn chi wedi anghofio:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Diolch am ddefnyddio ein safle!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Y tîm %(site_name)s"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Dalennau gofnod"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Dogfennaeth dalennau gofnod"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Dogfennaeth er mwyn y dudalen yma"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Dangos ID gwrthrych"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Yn dangos y fath-cynnwys a'r ID unigryw ar gyfer tudalennau sy'n "
+"cynrychioligwrthrych sengl."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Golygu'r gwrthrych yma (ffenestr cyfoes)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Yn neidio i'r dudalen weinyddiad ar gyfer tudalennau sy'n cynrychioli "
+"gwrthrych sengl."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Golygu'r gwrthrych yma (ffenestr newydd)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Fel uwchben, ond yn agor y dudalen weinyddiad mewn ffenestr newydd."
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Dyddiad:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Amser:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr ""
+
+#: contrib/admin/templates/widget/file.html:3
+#, fuzzy
+msgid "Change:"
+msgstr "Newidio"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "ailgyfeirio o"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Ddylai hon bod yn lwybr hollol, heb y parth-enw. Er enghraifft: '/"
+"digwyddiadau/chwilio/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "ailgyfeirio i"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Gellir fod naill ai llwybr hollol (fel uwch) neu URL hollol yn ddechrau â "
+"'http://'."
+
+#: contrib/redirects/models.py:12
+msgid "redirect"
+msgstr "ailgyfeiriad"
+
+#: contrib/redirects/models.py:13
+msgid "redirects"
+msgstr "ailgyfeiriadau"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Er enghraifft: '/amdan/cyswllt/'. Sicrhewch gennych slaesau arweiniol ac "
+"trywyddiol."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "teitl"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "cynnwys"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "galluogi sylwadau"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "enw'r templed"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
+"use 'flatpages/default'."
+msgstr ""
+"Er enghraifft: 'flatpages/tudalen_cyswllt'. Os nid darparwyd, ddefnyddia'r "
+"system 'flatpages/default'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "cofrestriad gofynnol"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Os wedi dewis, dim ond defnyddwyr a mewngofnodwyd bydd yn gallu gweld y "
+"tudalen."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "tudalen fflat"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "tudalennau fflat"
+
+#: contrib/auth/models.py:13 contrib/auth/models.py:26
+msgid "name"
+msgstr "enw"
+
+#: contrib/auth/models.py:15
+msgid "codename"
+msgstr "enw arwyddol"
+
+#: contrib/auth/models.py:17
+#, fuzzy
+msgid "permission"
+msgstr "Hawl"
+
+#: contrib/auth/models.py:18 contrib/auth/models.py:27
+#, fuzzy
+msgid "permissions"
+msgstr "Hawliau"
+
+#: contrib/auth/models.py:29
+#, fuzzy
+msgid "group"
+msgstr "Grŵp"
+
+#: contrib/auth/models.py:30 contrib/auth/models.py:65
+#, fuzzy
+msgid "groups"
+msgstr "Grwpiau"
+
+#: contrib/auth/models.py:55
+msgid "username"
+msgstr "enw defnyddiwr"
+
+#: contrib/auth/models.py:56
+msgid "first name"
+msgstr "enw cyntaf"
+
+#: contrib/auth/models.py:57
+msgid "last name"
+msgstr "enw olaf"
+
+#: contrib/auth/models.py:58
+msgid "e-mail address"
+msgstr "cyfeiriad e-bost"
+
+#: contrib/auth/models.py:59
+msgid "password"
+msgstr "cyfrinair"
+
+#: contrib/auth/models.py:59
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr "Defnyddiwch '[algo]$[salt]$[hexdigest]'"
+
+#: contrib/auth/models.py:60
+msgid "staff status"
+msgstr "statws staff"
+
+#: contrib/auth/models.py:60
+msgid "Designates whether the user can log into this admin site."
+msgstr "Dylunio ai'r defnyddiwr yn gally mewngofnodi i'r safle weinyddiad yma."
+
+#: contrib/auth/models.py:61
+msgid "active"
+msgstr "gweithredol"
+
+#: contrib/auth/models.py:62
+msgid "superuser status"
+msgstr "statws defnyddiwr swper"
+
+#: contrib/auth/models.py:63
+msgid "last login"
+msgstr "mewngofnod olaf"
+
+#: contrib/auth/models.py:64
+msgid "date joined"
+msgstr "Dyddiad"
+
+#: contrib/auth/models.py:66
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Yn ogystal â'r hawliau trosglwyddwyd dros law, byddai'r defnyddiwr yma hefyd "
+"yn cael y cwbl hawliau a addefwyd i pob grŵp mae o/hi mewn."
+
+#: contrib/auth/models.py:67
+#, fuzzy
+msgid "user permissions"
+msgstr "Hawliau"
+
+#: contrib/auth/models.py:70
+#, fuzzy
+msgid "user"
+msgstr "Defnyddiwr"
+
+#: contrib/auth/models.py:71
+#, fuzzy
+msgid "users"
+msgstr "Defnyddwyr"
+
+#: contrib/auth/models.py:76
+msgid "Personal info"
+msgstr "Gwybodaeth personol"
+
+#: contrib/auth/models.py:77
+msgid "Permissions"
+msgstr "Hawliau"
+
+#: contrib/auth/models.py:78
+msgid "Important dates"
+msgstr "Dyddiadau pwysig"
+
+#: contrib/auth/models.py:79
+msgid "Groups"
+msgstr "Grwpiau"
+
+#: contrib/auth/models.py:219
+#, fuzzy
+msgid "message"
+msgstr "Neges"
+
+#: contrib/auth/forms.py:30
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+
+#: contrib/contenttypes/models.py:25
+#, fuzzy
+msgid "python model class name"
+msgstr "enw modwl python"
+
+#: contrib/contenttypes/models.py:28
+msgid "content type"
+msgstr "math cynnwys"
+
+#: contrib/contenttypes/models.py:29
+msgid "content types"
+msgstr "mathau cynnwys"
+
+#: contrib/sessions/models.py:35
+msgid "session key"
+msgstr "goriad sesiwn"
+
+#: contrib/sessions/models.py:36
+msgid "session data"
+msgstr "data sesiwn"
+
+#: contrib/sessions/models.py:37
+msgid "expire date"
+msgstr "dyddiad darfod"
+
+#: contrib/sessions/models.py:41
+msgid "session"
+msgstr "sesiwn"
+
+#: contrib/sessions/models.py:42
+msgid "sessions"
+msgstr "sesiynau"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "parth-enw"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "enw arddangos"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "safle"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "safleoedd"
+
+#: utils/translation.py:360
+msgid "DATE_FORMAT"
+msgstr ""
+
+#: utils/translation.py:361
+msgid "DATETIME_FORMAT"
+msgstr ""
+
+#: utils/translation.py:362
+msgid "TIME_FORMAT"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Dydd Llun"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Dydd Mawrth"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Dydd Mercher"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Dydd Iau"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Dydd Gwener"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Dydd Sadwrn"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Dydd Sul"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Ionawr"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Chwefror"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "Mawrth"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "Ebrill"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "Mai"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "Mehefin"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "Gorffenaf"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Awst"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Medi"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Hydref"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Tachwedd"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Rhagfyr"
+
+#: utils/dates.py:19
+#, fuzzy
+msgid "jan"
+msgstr "ac"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr ""
+
+#: utils/dates.py:19
+#, fuzzy
+msgid "may"
+msgstr "diwrnod"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr ""
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "Ion."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "Chwe."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "Awst"
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Medi"
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "Hyd."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "Tach."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "Rhag."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "blwyddyn"
+msgstr[1] "blynyddoedd"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mis"
+msgstr[1] "misoedd"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "diwrnod"
+msgstr[1] "diwrnodau"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "awr"
+msgstr[1] "oriau"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "munud"
+msgstr[1] "munudau"
+
+#: conf/global_settings.py:37
+msgid "Bengali"
+msgstr "Bengaleg"
+
+#: conf/global_settings.py:38
+msgid "Czech"
+msgstr "Tsieceg"
+
+#: conf/global_settings.py:39
+msgid "Welsh"
+msgstr "Cymraeg"
+
+#: conf/global_settings.py:40
+msgid "Danish"
+msgstr "Daneg"
+
+#: conf/global_settings.py:41
+msgid "German"
+msgstr "Almaeneg"
+
+#: conf/global_settings.py:42
+msgid "Greek"
+msgstr ""
+
+#: conf/global_settings.py:43
+msgid "English"
+msgstr "Saesneg"
+
+#: conf/global_settings.py:44
+msgid "Spanish"
+msgstr "Spaeneg"
+
+#: conf/global_settings.py:45
+msgid "French"
+msgstr "Ffrangeg"
+
+#: conf/global_settings.py:46
+msgid "Galician"
+msgstr "Galisieg"
+
+#: conf/global_settings.py:47
+msgid "Hungarian"
+msgstr ""
+
+#: conf/global_settings.py:48
+msgid "Hebrew"
+msgstr ""
+
+#: conf/global_settings.py:49
+msgid "Icelandic"
+msgstr "Islandeg"
+
+#: conf/global_settings.py:50
+msgid "Italian"
+msgstr "Eidaleg"
+
+#: conf/global_settings.py:51
+msgid "Japanese"
+msgstr ""
+
+#: conf/global_settings.py:52
+msgid "Dutch"
+msgstr ""
+
+#: conf/global_settings.py:53
+msgid "Norwegian"
+msgstr "Norwyeg"
+
+#: conf/global_settings.py:54
+msgid "Brazilian"
+msgstr "Brasileg"
+
+#: conf/global_settings.py:55
+msgid "Romanian"
+msgstr "Romaneg"
+
+#: conf/global_settings.py:56
+msgid "Russian"
+msgstr "Rwsieg"
+
+#: conf/global_settings.py:57
+msgid "Slovak"
+msgstr "Slofaceg"
+
+#: conf/global_settings.py:58
+#, fuzzy
+msgid "Slovenian"
+msgstr "Slofaceg"
+
+#: conf/global_settings.py:59
+msgid "Serbian"
+msgstr "Serbeg"
+
+#: conf/global_settings.py:60
+msgid "Swedish"
+msgstr "Swedeg"
+
+#: conf/global_settings.py:61
+#, fuzzy
+msgid "Ukrainian"
+msgstr "Brasileg"
+
+#: conf/global_settings.py:62
+msgid "Simplified Chinese"
+msgstr "Tsieinëeg Symledig"
+
+#: conf/global_settings.py:63
+msgid "Traditional Chinese"
+msgstr ""
+
+#: core/validators.py:60
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Rhaid i'r werth yma cynnwys lythrennau, rhifau ac tanlinellau yn unig."
+
+#: core/validators.py:64
+#, fuzzy
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Rhaid i'r werth yma cynnwys lythrennau, rhifau, tanlinellau ac slaesau yn "
+"unig."
+
+#: core/validators.py:72
+msgid "Uppercase letters are not allowed here."
+msgstr "Ni chaniateir priflythrennau yma."
+
+#: core/validators.py:76
+msgid "Lowercase letters are not allowed here."
+msgstr "Ni chaniateir lythrennau bach yma."
+
+#: core/validators.py:83
+msgid "Enter only digits separated by commas."
+msgstr "Rhowch digidau gwahanu gyda atalnodau yn unig."
+
+#: core/validators.py:95
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Rhowch cyfeiriad e-bost dilys gwahanu gyda atalnodau."
+
+#: core/validators.py:99
+msgid "Please enter a valid IP address."
+msgstr "Rhowch cyfeiriad IP dilys, os gwelwch yn dda."
+
+#: core/validators.py:103
+msgid "Empty values are not allowed here."
+msgstr "Ni chaniateir gwerthau gwag yma."
+
+#: core/validators.py:107
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Ni chaniateir nodau anrhifol yma."
+
+#: core/validators.py:111
+msgid "This value can't be comprised solely of digits."
+msgstr "Ni gellir y werth yma"
+
+#: core/validators.py:116
+msgid "Enter a whole number."
+msgstr "Rhowch rhif cyfan."
+
+#: core/validators.py:120
+msgid "Only alphabetical characters are allowed here."
+msgstr "Caniateir nodau gwyddorol un unig yma."
+
+#: core/validators.py:124
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Rhowch dyddiad dilys mewn fformat YYYY-MM-DD."
+
+#: core/validators.py:128
+msgid "Enter a valid time in HH:MM format."
+msgstr "Rhowch amser ddilys mewn fformat HH:MM."
+
+#: core/validators.py:132 db/models/fields/__init__.py:468
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Rhowch dyddiad/amser ddilys mewn fformat YYYY-MM-DD HH:MM."
+
+#: core/validators.py:136
+msgid "Enter a valid e-mail address."
+msgstr "Rhowch cyfeiriad e-bost ddilys."
+
+#: core/validators.py:148
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Llwythwch delwedd dilys. Doedd y delwedd a llwythwyd dim yn ddelwedd dilys, "
+"neu roedd o'n ddelwedd llwgr."
+
+#: core/validators.py:155
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "Dydy'r URL %s dim yn pwyntio at delwedd dilys."
+
+#: core/validators.py:159
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Rhaid rifau ffon bod mewn fformat XXX-XXX-XXXX. Mae \"%s\" yn annilys."
+
+#: core/validators.py:167
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "Dydy'r URL %s dim yn pwyntio at fideo Quicktime dilys."
+
+#: core/validators.py:171
+msgid "A valid URL is required."
+msgstr "Mae URL dilys yn ofynnol."
+
+#: core/validators.py:185
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Mae HTML dilys yn ofynnol. Gwallau penodol yw:\n"
+"%s"
+
+#: core/validators.py:192
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML wedi ffurfio'n wael: %s"
+
+#: core/validators.py:202
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL annilys: %s"
+
+#: core/validators.py:206 core/validators.py:208
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Mae'r URL %s yn gyswllt toredig."
+
+#: core/validators.py:214
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Rhowch talfyriad dalaith U.S. dilys."
+
+#: core/validators.py:229
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Gwyliwch eich ceg! Ni chaniateir y gair %s yma."
+msgstr[1] "Gwyliwch eich ceg! Ni chaniateir y geiriau %s yma."
+
+#: core/validators.py:236
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Rhaid i'r faes yma cydweddu'r faes '%s'."
+
+#: core/validators.py:255
+msgid "Please enter something for at least one field."
+msgstr "Rhowch rhywbeth am un maes o leiaf, os gwelwch yn dda."
+
+#: core/validators.py:264 core/validators.py:275
+msgid "Please enter both fields or leave them both empty."
+msgstr "Llenwch y ddwy faes, neu gadewch nhw'n wag, os gwelwch yn dda."
+
+#: core/validators.py:282
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Rhaid roi'r faes yma os mae %(field)s yn %(value)s"
+
+#: core/validators.py:294
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Rhaid roi'r faes yma os mae %(field)s dim yn %(value)s"
+
+#: core/validators.py:313
+msgid "Duplicate values are not allowed."
+msgstr "Ni chaniateir gwerthau ddyblyg."
+
+#: core/validators.py:336
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Rhaid i'r gwerth yma fod yn bŵer o %s."
+
+#: core/validators.py:347
+msgid "Please enter a valid decimal number."
+msgstr "Rhowch rhif degol dilys, os gwelwch yn dda."
+
+#: core/validators.py:349
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Rhowch rhif degol dilys gyda cyfanswm %s digidau o fwyaf."
+msgstr[1] "Rhowch rhif degol dilys gyda cyfanswm %s digid o fwyaf."
+
+#: core/validators.py:352
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Rhowch rif degol dilydd gyda o fwyaf %s lle degol, os gwelwch yn dda."
+msgstr[1] ""
+"Rhowch rif degol dilydd gyda o fwyaf %s lleoedd degol, os gwelwch yn dda."
+
+#: core/validators.py:362
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Sicrhewch bod yr ffeil a llwythwyd yn o leiaf %s beit."
+
+#: core/validators.py:363
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Sicrhewch bod yr ffeil a llwythwyd yn %s beit o fwyaf."
+
+#: core/validators.py:376
+msgid "The format for this field is wrong."
+msgstr "Mae'r fformat i'r faes yma yn anghywir."
+
+#: core/validators.py:391
+msgid "This field is invalid."
+msgstr "Mae'r faes yma yn annilydd."
+
+#: core/validators.py:426
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Ni gellir adalw unrhywbeth o %s."
+
+#: core/validators.py:429
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"Dychwelodd yr URL %(url)s y pennawd Content-Type annilys '%(contenttype)s'."
+
+#: core/validators.py:462
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Caewch y tag anghaedig %(tag)s o linell %(line)s. (Linell yn ddechrau â \"%"
+"(start)s\".)"
+
+#: core/validators.py:466
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Ni chaniateir rhai o'r destun ar linell %(line)s yn y gyd-destun yna. "
+"(Linell yn ddechrau â \"%(start)s\".)"
+
+#: core/validators.py:471
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"Mae \"%(attr)s\" ar lein %(line)s yn priodoledd annilydd. (Linell yn "
+"ddechrau â \"%(start)s\".)"
+
+#: core/validators.py:476
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"Mae \"<%(tag)s>\" ar lein %(line)s yn tag annilydd. (Linell yn ddechrau â \"%"
+"(start)s\".)"
+
+#: core/validators.py:480
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Mae tag ar lein %(line)s yn eisiau un new fwy priodoleddau gofynnol. (Linell "
+"yn ddechrau â \"%(start)s\".)"
+
+#: core/validators.py:485
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Mae gan y priodoledd \"%(attr)s\" ar lein %(line)s gwerth annilydd. (Linell "
+"yn ddechrau â \"%(start)s\".)"
+
+#: db/models/manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+
+#: db/models/fields/__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
+#: forms/__init__.py:346
+msgid "This field is required."
+msgstr "Mae angen y faes yma."
+
+#: db/models/fields/__init__.py:337
+#, fuzzy
+msgid "This value must be an integer."
+msgstr "Rhaid i'r gwerth yma fod yn bŵer o %s."
+
+#: db/models/fields/__init__.py:369
+#, fuzzy
+msgid "This value must be either True or False."
+msgstr "Rhaid i'r gwerth yma fod yn bŵer o %s."
+
+#: db/models/fields/__init__.py:385
+#, fuzzy
+msgid "This field cannot be null."
+msgstr "Mae'r faes yma yn annilydd."
+
+#: db/models/fields/__init__.py:562
+msgid "Enter a valid filename."
+msgstr "Rhowch enw ffeil dilys."
+
+#: db/models/fields/related.py:43
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Rhowch %s dilys, os gwelwch yn dda."
+
+#: db/models/fields/related.py:579
+#, fuzzy
+msgid "Separate multiple IDs with commas."
+msgstr " Gwahanwch mwy nag un ID gyda atalnodau."
+
+#: db/models/fields/related.py:581
+#, fuzzy
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Gafaelwch lawr \"Control\", neu \"Command\" ar Fac, i ddewis mwy nag un."
+
+#: db/models/fields/related.py:625
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+msgstr[1] ""
+
+#: forms/__init__.py:380
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: forms/__init__.py:385
+msgid "Line breaks are not allowed here."
+msgstr "Ni chaniateir toriadau llinell yma."
+
+#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Dewisiwch dewis dilys; dydy '%(data)s' dim mewn %(choices)s."
+
+#: forms/__init__.py:645
+msgid "The submitted file is empty."
+msgstr "Mae'r ffeil yn wag."
+
+#: forms/__init__.py:699
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Rhowch rhif cyfan rhwng -32,768 a 32,767."
+
+#: forms/__init__.py:708
+msgid "Enter a positive number."
+msgstr "Rhowch rhif positif."
+
+#: forms/__init__.py:717
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Rhowch rhif cyfan rhwng 0 a 32,767."
+
+#: template/defaultfilters.py:379
+msgid "yes,no,maybe"
+msgstr "ie,na,efallai"
+
+#~ msgid "Comment"
+#~ msgstr "Sylw"
+
+#~ msgid "Comments"
+#~ msgstr "Sylwadau"
+
+#~ msgid "String (up to 50)"
+#~ msgstr "Llinyn (i fyny at 50)"
+
+#~ msgid "label"
+#~ msgstr "label"
+
+#~ msgid "package"
+#~ msgstr "pecyn"
+
+#~ msgid "packages"
+#~ msgstr "pecynau"
+
+#, fuzzy
+#~ msgid "count"
+#~ msgstr "cynnwys"
diff --git a/webapp/django/conf/locale/cy/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/cy/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..c35e11b
--- /dev/null
+++ b/webapp/django/conf/locale/cy/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/cy/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/cy/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..1da646b
--- /dev/null
+++ b/webapp/django/conf/locale/cy/LC_MESSAGES/djangojs.po
@@ -0,0 +1,111 @@
+# Translation of Django admin JS to Welsh.
+# Copyright (C) 2005 Django project
+# This file is distributed under the same license as the Django package.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: 2005-12-04 16:53+0000\n"
+"Last-Translator: Jason Davies <jason@jasondavies.com>\n"
+"Language-Team: Cymraeg <cy@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+#, fuzzy
+msgid "Choose all"
+msgstr "Dewis amser"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Ionawr Chwefror Mawrth Ebrill Mai Mehefin Gorffennaf Medi Hydref Tachwedd "
+"Rhagfyr"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr ""
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S Ll M M I G S"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Nawr"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Cloc"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Dewis amser"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Hanner nos"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6 y.b."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "Hanner dydd"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "Diddymu"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Heddiw"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Calendr"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Ddoe"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Yfory"
diff --git a/webapp/django/conf/locale/da/LC_MESSAGES/django.mo b/webapp/django/conf/locale/da/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..bc3469d
--- /dev/null
+++ b/webapp/django/conf/locale/da/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/da/LC_MESSAGES/django.po b/webapp/django/conf/locale/da/LC_MESSAGES/django.po
new file mode 100644
index 0000000..2faa419
--- /dev/null
+++ b/webapp/django/conf/locale/da/LC_MESSAGES/django.po
@@ -0,0 +1,4498 @@
+# Translation of django.po to Danish
+# This file is distributed under the same license as the Django package.
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Django 1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-11 20:13+0200\n"
+"PO-Revision-Date: 2008-08-11 20:41+0200\n"
+"Last-Translator: Finn Gruwier Larsen<finn@gruwier.dk>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "Arabisk"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "Bengalsk"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "Bulgarsk"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "Catalansk"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "Tjekkisk"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "Walisisk"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "Dansk"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "Tysk"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "Græsk"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "Engelsk"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "Spansk"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "Estisk"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "Argentisk spansk"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "Baskisk"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "Persisk"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "Finsk"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "Fransk"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "Irsk"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "Galicisk"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "Ungarsk"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "Hebræisk"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "Kroatisk"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "Islandsk"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "Italiensk"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "Japansk"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "Georgisk"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "Koreansk"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "Khmer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "Lettisk"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "Litauisk"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "Makedonsk"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "Hollandsk"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "Norsk"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "Polsk"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "Portugisisk"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "Brasiliansk portugisisk"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "Rumænsk"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "Russisk"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "Slovakisk"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "Slovensk"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "Serbisk"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "Svensk"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "Tamil"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "Telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "Tyrkisk"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "Ukrainsk"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "Forenklet kinesisk"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "Traditionelt kinesisk"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Efter %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Alle"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Når som helst"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Idag"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "De sidste 7 dage"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Denne måned"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Dette år"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Ja"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Nej"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Ukendt"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "handlingstid"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "objekt-ID"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "objekt repr"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "handlingsflag"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "ændringsmeddelelse"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "logmeddelelse"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "logmeddelelser"
+
+#: contrib/admin/options.py:143 contrib/admin/options.py:202
+msgid "None"
+msgstr "Ingen"
+
+#: contrib/admin/options.py:407
+#, python-format
+msgid "Changed %s."
+msgstr "Ændrede %s."
+
+#: contrib/admin/options.py:407 contrib/admin/options.py:417
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "og"
+
+#: contrib/admin/options.py:412
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Tilføjede %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:416
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Ændrede %(list)s for %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:421
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Slettede %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:425
+msgid "No fields changed."
+msgstr "Ingen felter ændret."
+
+#: contrib/admin/options.py:486 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" blev tilføjet i databasen."
+
+#: contrib/admin/options.py:490 contrib/admin/options.py:523
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "Du kan redigere det igen herunder."
+
+#: contrib/admin/options.py:500 contrib/admin/options.py:533
+#, python-format
+msgid "You may add another %s below."
+msgstr "Du kan tilføje endnu en %s herunder."
+
+#: contrib/admin/options.py:521
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" blev ændret."
+
+#: contrib/admin/options.py:529
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" blev tilføjet. Du kan redigere det igen herunder."
+
+#: contrib/admin/options.py:596
+#, python-format
+msgid "Add %s"
+msgstr "Tilføj %s"
+
+#: contrib/admin/options.py:673
+#, python-format
+msgid "Change %s"
+msgstr "Ret %s"
+
+#: contrib/admin/options.py:704
+msgid "Database error"
+msgstr "databasefejl"
+
+#: contrib/admin/options.py:753
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" blev slettet."
+
+#: contrib/admin/options.py:760
+msgid "Are you sure?"
+msgstr "Er du sikker?"
+
+#: contrib/admin/options.py:787
+#, python-format
+msgid "Change history: %s"
+msgstr "Ændringshistorik: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Indtast venligst et korrekt brugernavn og adgangskode. Bemærk, at begge "
+"felter er versalfølsomme."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Log venligst ind igen, da din session er udløbet. Der er ingen grund til "
+"bekymring - informationen du indsendte er blevet gemt."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Det ser ud til din browser ikke er indstillet til at acceptere cookies. Slå "
+"venligst cookies til, genindlæs denne side og prøv igen."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Brugernavne kan ikke indeholde tegnet '@'."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Din e-mail-adresse er ikke dit brugernavn. Prøv '%s' i stedet."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Website-administration"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Log ind"
+
+#: contrib/admin/util.py:126
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Et eller flere %(fieldname)s i %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:131
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Et eller flere %(fieldname)s i %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Dato:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Tid:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Nuværende:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Ret:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Siden blev ikke fundet"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Vi beklager, men den ønskede side kunne ikke findes"
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Hjem"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serverfejl"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serverfejl (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Serverfejl <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Der opstod en fejl. Fejlen er rapporteret til website-administratoren via e-"
+"mail, og vil blive rettet hurtigst muligt. Tak for din tålmodighed."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Velkommen,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Skift adgangskode"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Log ud"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django website-administration"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administration"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Tilføj"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Historik"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Se på website"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgstr "Ret venligst fejlen herunder."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Tilføj %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filtrer"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Slet"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Hvis du sletter %(object_name)s '%(escaped_object)s', vil du også slette "
+" relaterede objekter, men din konto har ikke rettigheder til at slette "
+"følgende objekttyper:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Er du sikker på du vil slette %(object_name)s \"%(escaped_object)s\"? "
+"Alle de følgende relaterede objekter vil blive slettet:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Ja, jeg er sikker"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Efter %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modeller til rådighed i %(name)s-applikationen."
+
+#: contrib/admin/templates/admin/index.html:19
+#, fuzzy, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Ret"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Du har ikke rettigheder til at foretage ændringer."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Seneste handlinger"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Mine handlinger"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Ingen tilgængelige"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Der er noget galt med databaseinstallationen. Kontroller om "
+"databasetabellerne er blevet oprettet og at databasen er læsbar for den"
+"pågældende bruger."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Brugernavn:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Adgangskode:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Dato/tid"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Bruger"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Funktion"
+
+#: contrib/admin/templates/admin/object_history.html:24
+#, fuzzy
+msgid "DATE_WITH_TIME_FULL"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Dette objekt har ingen ændringshistorik. Det blev formentlig ikke tilføjet "
+"via dette administrations-site"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Vis alle"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Kør"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgstr "1 resultat"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s i alt"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Gem som ny"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Gem og tilføj endnu en"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Gem og fortsæt med at redigere"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Gem"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "Indtast først et brugernavn og en adgangskode. Derefter får du yderligere "
+"redigeringsmuligheder."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Brugernavn"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Adgangskode:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Adgangskode (igen)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Indtast den samme adgangskode som ovenfor for verifikation."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Indtast en ny adgangskode for brugeren <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Tak for den kvalitetstid du brugte på websitet idag."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Log ind igen"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Skift adgangskode"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Adgangskoden blev ændret"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Din adgangskode blev ændret."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Indtast venligst din gamle adgangskode for en sikkerheds skyld og indtast "
+"så din nye adgangskode to gange, så vi kan være sikre på, at den er "
+"indtastet korrekt."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Gammel adgangskode:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Ny adgangskode:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Bekræft ny adgangskode:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Skift min adgangskode"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Nulstil adgangskode"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Adgangskoden blev nulstillet"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Din adgangskode er blevet sat. Du kan logge ind med den nu."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Bekræftelse for nulstilling af adgangskode"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Indtast ny adgangskode"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Indtast venligst din nye adgangskode to gange, så vi kan være sikre på, "
+"at den er indtastet korrekt."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Adgangskoden blev ikke nulstillet"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr "Linket for nulstilling af adgangskoden er ugyldigt, måske fordi det "
+"allerede har været brugt. Anmod venligst påny om nulstilling af adgangskoden."
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Adgangskoden blev nulstillet"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Vi har sendt en instruktion til din e-mail-adresse. Du skulle modtage den "
+"om ganske kort tid."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Du modtager denne e-mail, fordi du har bedt om at få nulstillet din "
+"adgangskode"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "til din brugerkonto ved %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Gå venligst til denne side og vælg en ny adgangskode:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "For det tilfælde at du skulle have glemt dit brugernavn er det:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Tak fordi du brugte vores website!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Med venlig hilsen %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Har du glemt din adgangskode? Indtast din e-mail-adresse herunder, så sender "
+"vi dig en instruktion vedrørende ny adgangskode."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mail-adresse:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Nulstil min adgangskode"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Alle datoer"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Vælg %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Vælg %s, der skal ændres"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "website"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "skabelon"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filter:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "view:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Applikationen %r blev ikke fundet"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Modellen %(model_name)r ikke fundet i applikationen %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "det relaterede `%(app_label)s.%(data_type)s`-objekt"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "relaterede `%(app_label)s.%(object_name)s`-objekter"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "alle %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "antal af %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Felter på %s-objekter"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Heltal"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Boolsk (enten True eller False)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Streng (op til %(max_length)s)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Kommaadskilte heltal"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Dato (uden tid)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Dato (med tid)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Decimaltal"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "E-mail-adresse"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Sti"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Flydende-komma-tal"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP-adresse"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolsk (True, False eller None)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Relation til forældermodel"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Telefonnummer"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Tekst"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Tid"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "Stat (i USA, to store bogstaver)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML-tekst"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ser ikke ud til at være et urlpattern-objekt"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentations-bookmarklets"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">For at installere bookmarklets, træk linket til din "
+"bogmærkelinje\n"
+" eller højreklik på linket og tilføj det til dine bogmærker. Du kan nu\n"
+"markere bookmarkletten fra enhver side på websitet. Bemærk, at nogle af "
+"disse \n"
+"bookmarkletter kræver, at du ser på websitet fra en computer der opfattes \n"
+"som \"intern\" (tal med din systemadministrator, hvis du ikke er sikker på "
+"om\n"
+"din computer er \"intern\").</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Dokumentation for denne side"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Bringer dig fra en hvilken som helst side til dokumentationen for det view, "
+"der genererer den pågældende side."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Vis objekt-ID"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Viser indholdstypen og det unikke ID for sider, der repræsenterer et enkelt objekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Rediger dette objekt (i det aktuelle vindue)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Springer til administrationssiden for sider, der repræsenterer et enkelt "
+"objekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Rediger dette objekt (i nyt vindue)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Som ovenfor, men åbner administrationssiden i et nyt vindue."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Personlig information"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Rettigheder"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Vigtige datoer"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Grupper"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Tilføj bruger"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Adgangskoden blev ændret."
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Skift adgangskode: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "Påkrævet. Højst 30 tegn, kun alfanumeriske tegn "
+"(bogstaver og tal samt understreg)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Dette felt må kun indeholde bogstaver og cifre samt understreg."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Bekræftelse af adgangskode"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "En bruger med dette brugernavn findes allerede."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "De to adgangskoder var ikke identiske."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Denne konto er inaktiv."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Din browser ser ud til ikke at have cookies aktiveret. Cookies er påkrævet "
+"for at kunne logge ind."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "E-mail"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr "Den e-mail-adresse er ikke tilknyttet en konto. Er du sikker på at "
+"du har registreret dig?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Adgangskode nulstillet på %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Ny adgangskode"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Bekræftelse af ny adgangskode"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Gammel adgangskode"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Din gamle adgangskode blev ikke indtastet korrekt. Indtast den venligst igen."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "navn"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "kodenavn"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "rettighed"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "rettigheder"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "gruppe"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "grupper"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "brugernavn"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "fornavn"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "efternavn"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "e-mail-adresse"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "adgangskode"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Brug '[algo]$[salt]$[hexdigest]' eller brug <a href=\"password/\">formularen "
+"til skift af adgangskode</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "admin-status"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "Bestemmer om brugeren kan logge ind på dette administrationswebsite."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "aktiv"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr "Bestemmer om brugeren skal behandles som aktiv. Fravælg dette "
+"frem for at slette en konto."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "superbrugerstatus"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Bestemmer at denne bruger har alle rettigheder uden at tildele dem "
+"eksplicit."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "sidst logget ind"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "dato for registrering"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Udover de rettigheder, der manuelt er tildelt brugeren, vil denne også få "
+"alle rettigheder, der er tildelt hver gruppe, brugeren er medlem af."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "Rettigheder"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "bruger"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "brugere"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "meddelelse"
+
+#: contrib/auth/views.py:51
+msgid "Logged out"
+msgstr "Logget ud"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "objekt-ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "overskrift"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "kommentar"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "bedømmelse: 1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "bedømmelse: 2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "bedømmelse: 3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "bedømmelse: 4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "bedømmelse: 5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "bedømmelse: 6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "bedømmelse: 7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "bedømmelse: 8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "er en gyldig bedømmelse"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "dato/tidspunkt for oprettelse"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "er offentlig"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "er fjernet"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Afkryds denne boks, hvis kommentaren er upassende. Beskeden \"Denne kommentar "
+"er blevet fjernet\" vil blive vist i stedet."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "kommentarer"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Indholdsobjekt"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Indsendt af %(user)s den %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "personens navn"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "IP-adresse"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "godkendt af personale"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "fri kommentar"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "frie kommentarer"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "score"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "scoringsdato"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "karma score"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "karma score"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d bedømmelse efter %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Denne kommentar blev mærket af %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "mærkningsdato"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "brugermærke"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "brugermærker"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Mærket af %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "sletningsdato"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "moderatorsletning"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "moderatorsletninger"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Moderatorsletning af %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Har du glemt din adgangskode?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Bedømmelser"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Påkrævet"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Valgfri"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Indsend et foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Kommentar:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Forhåndsvis kommentar"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Dit navn:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"Denne bedømmelse er påkrævet fordi du har indtastet mindst en anden bedømmelse."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Denne kommentar blev indsendt af en bruger, som har indsendt færre end %"
+"(count)s kommentar:\n"
+"\n"
+"%(text)s"
+"Denne kommentar blev indsendt af en bruger som har indsendt færre end %"
+"(count)s kommentarer:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Denne kommentar blev indsendt af en overfladisk bruger:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Kun POST er tilladt"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Et eller flere af de påkrævede felter blev ikke indsendt"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Nogen har misbrugt kommentarformularen (sikkerhedsovertrædelse)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Kommentarformularen havde en ugyldigt 'target'-parameter - objekt-ID'et "
+"var ugyldigt"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Kommentarformularen tilbød ikke hverken 'forhåndsvis' eller 'indsend'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonyme brugere kan ikke stemme"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Ugyldigt kommentar-ID"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Du kan ikke selv stemme"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "klassenavn i Python-model"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "indholdstype"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "indholdstyper"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Eksempel: '/om/kontakt/'. Vær opmærksom på, at der skal være skråstreg både "
+"først og sidst."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Dette felt må kun indeholde bogstaver, cifre, understreger, bindestreger og "
+"skråstreger."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Avancerede muligheder"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "titel"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "indhold"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "tillad kommentarer"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "skabelonnavn"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Eksempel: 'flatpages/kontaktside'. Hvis dette ikke tilbydes, bruger "
+"systemet 'flatpages/default'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "registrering påkrævet"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Hvis denne boks er markeret, vil kun brugere der er logget ind, kunne "
+"se siden."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "flad side"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "flade sider"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Ingen værdi givet for geometri."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Ugyldig geometriværdi."
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Ugyldig gemometritype."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgstr "%(value).1f million"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgstr "%(value).1f milliard"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgstr "%(value).1f billion"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "en"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "to"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "tre"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "fire"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "fem"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "seks"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "syv"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "otte"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "ni"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "i dag"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "i morgen"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "i går"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Indtast et postnummer i formatet NNNN eller ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr ""
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr ""
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "Indtast et gyldigt filnavn."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "mar"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "nov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Slovakisk"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Fransk"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Indtast et gyldigt filnavn."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Walisisk"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr ""
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Dette skal være en absolut sti uden domænenavnet. For eksempel: "
+"'/nyheder/soeg/'"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "omadresser til"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Dette kan enten være en absolut sti (som ovenfor), eller en komplet URL "
+"startende med 'http://'"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "omadressering"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "omaddresseringer"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "sessionsnøgle"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "sessionsdata"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "udløbsdato"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "session"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sessioner"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "domænenavn"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "vist navn"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "websites"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Dette felt må kun indeholde bogstaver, cifre, understreger, streger eller "
+"skråstreger."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Store bogstaver er ikke tilladt her."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Små bogstaver er ikke tilladt her."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Indtast kun cifre adskilt af kommaer."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Indtast gyldige e-mail-adresser adskilt af kommaer."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Indtast venligst en gyldig IP-adresse."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Dette felt må ikke være tomt."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Ikke-numeriske tegn er ikke tilladt her."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Denne værdi kan ikke udelukkende bestå af cifre."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Indtast et heltal."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Her er kun bogstaver tilladt."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Ugyldig dato: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:569
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Indtast en gyldig dato i formatet ÅÅÅÅ-MM-DD."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Indtast en gyldig tid i formatet TT:MM."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Indtast dato og tidspunkt i formatet ÅÅÅÅ-MM-DD TT:MM."
+
+#: core/validators.py:166 forms/fields.py:412
+msgid "Enter a valid e-mail address."
+msgstr "Indtast en gyldig e-mail-adresse."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:430
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ingen fil blev indsendt. Kontroller kodningstypen i formularen."
+
+#: core/validators.py:189 forms/fields.py:461
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Indsend en billedfil. Filen, du indsendte, var enten ikke et billede eller en "
+"defekt billedfil."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL'en %s henviser ikke til en gyldig billedfil."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefonnumre skal være i formatet XXX-XXX-XXXX. \"%s\" er ugyldigt."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL'en %s henviser ikke til en gyldig QuickTime-video."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "En gyldig URL er påkrævet."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Gyldig HTML er påkrævet. Specifikke fejl:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Ugyldig XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Ugyldig URL: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Denne URL %s henviser ikke til en gyldig side eller fil."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Indtast en gyldig amerikansk statsforkortelse."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgstr "Var din mund! Ordet %s er ikke tilladt her."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Dette felt skal matche feltet '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Indtast venligst noget i mindst ét felt"
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Udfyld venligst begge felter eller lad dem begge være tomme."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Dette felt skal udfyldes, hvis %(field)s er lig %(value)s."
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Dette felt skal udfyldes, hvis %(field)s er forskellig fra %(value)s."
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Identiske værdier er ikke tilladt."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Denne værdi skal være mellem %(lower)s og %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Denne værdi skal være en mindst %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Denne værdi må højst være %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Denne værdi skal være en potens af %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Indtast venligst et gyldigt decimaltal."
+
+#: core/validators.py:440
+#, fuzzy, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+"Please enter a valid decimal number with at most %s total digits."
+msgstr "Indtast venligst et gyldigt decimaltal med %s ciffer."
+"Indtast venligst et gyldigt decimaltal med maksimalt %s cifre i alt."
+
+#: core/validators.py:443
+#, fuzzy, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr "Indtast venligst et gyldigt decimaltal med en heltalsdel på %s ciffer."
+"Indtast venligst et gyldigt decimaltal med en heltalsdel på maksimalt %s cifre."
+#: core/validators.py:446
+#, fuzzy, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr "Indtast venligst et gyldigt decimaltal med %s cifre efter kommaet."
+"Indtast venligst et gyldigt decimaltal med maksimalt %s cifre efter kommaet."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Indtast venligst et gyldigt flydende-komma-tal."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Kontroller, at den fil, du uploader, er på mindst %s bytes."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Kontroller, at den fil, du uploader, er på maksimalt %s bytes."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Formatet i dette felt er forkert."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Dette felt er ugyldigt."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Kunne ikke finde noget i %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"URL'en %(url)s returnerede det ugyldige indholdstypehoved '%(contenttype)s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Luk venligst det uafsluttede tag %(tag)s fra linje %(line)s. "
+"(Linjen starter med \"%(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Noget tekst, som starter på linje %(line)s, er ikke tilladt i den givne "
+"sammenhæng. (Linjen starter med \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" på linje %(line)s er ikke en gyldig attribut. (Linjen starter "
+"med \"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" på linje %(line)s er et ugyldigt tag. (Linjen starter med \"%"
+"(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Et tag på linje %(line)s mangler en eller flere påkrævede attributter. "
+"(Linjen starter med \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Attributten \"%(attr)s\" på linje %(line)s har en ugyldig værdi. (Linjen "
+"starter med \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+"%(object)s med denne %(type)s eksisterer allerede for den givne %(field)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s med dette %(fieldname)s eksisterer allerede."
+
+#: db/models/fields/__init__.py:170 db/models/fields/__init__.py:343
+#: db/models/fields/files.py:168 db/models/fields/files.py:179
+#: forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "Dette felt er påkrævet."
+
+#: db/models/fields/__init__.py:457
+msgid "This value must be an integer."
+msgstr "Denne værdi skal et heltal."
+
+#: db/models/fields/__init__.py:503
+msgid "This value must be either True or False."
+msgstr "Denne værdi skal være enten True eller False."
+
+#: db/models/fields/__init__.py:532
+msgid "This field cannot be null."
+msgstr "Dette felt kan ikke være null."
+
+#: db/models/fields/__init__.py:634 db/models/fields/__init__.py:651
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "Indtast gyldig dato og tid i formatet ÅÅÅÅ-MM-DD TT:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/__init__.py:707
+msgid "This value must be a decimal number."
+msgstr "Denne værdi skal et decimaltal."
+
+#: db/models/fields/__init__.py:854
+msgid "This value must be either None, True or False."
+msgstr "Denne værdi skal være None, True eller False."
+
+#: db/models/fields/__init__.py:969 db/models/fields/__init__.py:982
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Indtast en gyldig tid i formatet TT:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Indtast et gyldigt filnavn."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Indtast venligst en gyldig %s."
+
+#: db/models/fields/related.py:759
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Hold \"Ctrl\" (eller \"Æbletasten\" på Mac) nede for at vælge mere end en."
+
+#: db/models/fields/related.py:839
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr "Indtast venligst gyldige %(self)s-ID'er. Værdien %(value)r er ugyldig."
+"Indtast venligst gyldige %(self)s-ID'er. Værdierne %(value)r er ugyldige."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Indtast en gyldig værdi."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Denne værdi må maksimalt indeholde %(max)d tegn (den har %(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Denne værdi skal mindst indeholde %(min)d tegn (den indeholder %(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Denne værdi skal være mindre end eller lig %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Denne værdi skal være større end eller lig %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Indtast et tal."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Der må maksimalt være %s cifre i alt."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Der må højst være %s decimalpladser."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Der må maksimalt være %s cifre før decimaltegnet."
+
+#: forms/fields.py:272 forms/fields.py:793
+msgid "Enter a valid date."
+msgstr "Indtast en gyldig dato."
+
+#: forms/fields.py:305 forms/fields.py:794
+msgid "Enter a valid time."
+msgstr "Indtast en gyldig tid."
+
+#: forms/fields.py:344
+msgid "Enter a valid date/time."
+msgstr "Indtast gyldig dato/tid."
+
+#: forms/fields.py:431
+msgid "No file was submitted."
+msgstr "Ingen fil blev indsendt."
+
+#: forms/fields.py:432 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Den indsendte fil er tom."
+
+#: forms/fields.py:522
+msgid "Enter a valid URL."
+msgstr "Indtast en gyldig URL."
+
+#: forms/fields.py:523
+msgid "This URL appears to be a broken link."
+msgstr "Denne URL henviser ikke til en gyldig side eller fil."
+
+#: forms/fields.py:591 forms/fields.py:642
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Marker en gyldigt valgnulighed; '%(value)s' er ikke en af de "
+"tilgængelige valgmuligheder."
+
+#: forms/fields.py:643 forms/fields.py:704 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "Indtast en liste af værdier."
+
+#: forms/fields.py:822
+msgid "Enter a valid IPv4 address."
+msgstr "Indtast en gyldig IPv4-adresse."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Marker en gyldig valgmulighed. Det valg, du har foretaget, er ikke "
+"blandt de tilgængelige valgmuligheder."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Marker et gyldigt valg. %s er ikke en af de tilgængelige "
+"valgmuligheder."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgstr "Sørg for din tekst er kortere end %s tegn."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Linjeskift er ikke tilladt her."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Markér et gyldigt valg; '%(data)s' er ikke i %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Indtast et heltal mellem -32,768 og 32,767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Indtast et positivt tal."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Indtast et heltal mellem 0 og 32,767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "ja,nej,måske"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgstr "%(size)d byte"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "midnat"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "middag"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Mandag"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Tirsdag"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Onsdag"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Torsdag"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Fredag"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Lørdag"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Søndag"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Man"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Tir"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Ons"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Tor"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Fre"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Lør"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Søn"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Januar"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Februar"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Marts"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "April"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Maj"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Juni"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Juli"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "August"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "September"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Oktober"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "November"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "December"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "maj"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "aug"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sept"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dec"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Aug."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dec."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "eller"
+
+#: utils/timesince.py:21
+msgid "year"
+msgstr "år"
+
+#: utils/timesince.py:22
+msgid "month"
+msgstr "måned"
+
+#: utils/timesince.py:23
+msgid "week"
+msgstr "uge"
+
+#: utils/timesince.py:24
+msgid "day"
+msgstr "dag"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgstr "time"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgstr "minut"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutter"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr ""
+
+#: utils/timesince.py:57
+#, fuzzy, python-format
+msgid ", %(number)d %(type)s"
+msgstr ""
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr ""
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s blev ændret."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s blev opdateret."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s blev slettet."
+
+#~ msgid "Added %s."
+#~ msgstr "Tilføjede %s."
+
+#~ msgid "Deleted %s."
+#~ msgstr "Slettede %s."
+
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr "Har du <a href=\"/password_reset/\">glemt din adgangskode</a>?"
+
+#~ msgid "Ordering"
+#~ msgstr "Rækkefølge"
+
+#~ msgid "Your new password is: %(new_password)s"
+#~ msgstr "Din nye adgangskode er: %(new_password)s"
+
+#~ msgid "Feel free to change this password by going to this page:"
+#~ msgstr "Du kan ændre din adgangskode ved at gå til denne side:"
+
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Brug '[algo]$[salt]$[hexdigest]'"
+
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "Adskil flere ID'er med kommaer."
diff --git a/webapp/django/conf/locale/da/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/da/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..389588a
--- /dev/null
+++ b/webapp/django/conf/locale/da/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/da/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/da/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..9e33a07
--- /dev/null
+++ b/webapp/django/conf/locale/da/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# Translation of djangojs.po to Danish
+# This file is distributed under the same license as the Django package.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-11 20:17+0200\n"
+"PO-Revision-Date: 2008-08-13 22:00+0200\n"
+"Last-Translator: Finn Gruwier Larsen<finn@gruwier.dk>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Tilgængelige %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Vælg alle"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Tilføj"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Fjern"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Valgte %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Foretag dit/dine valg og klik "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Fravælg alle"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Januar Februar Marts April Maj Juni Juli August September Oktober November "
+"December"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S M T O T F L"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Søndag Mandag Tirsdag Onsdag Torsdag Fredag Lørdag"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Vis"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Skjul"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Nu"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Ur"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Vælg et tidspunkt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Midnat"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 morgen"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Middag"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Annuller"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "I dag"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalender"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "I går"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "I morgen"
diff --git a/webapp/django/conf/locale/de/LC_MESSAGES/django.mo b/webapp/django/conf/locale/de/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..410154d
--- /dev/null
+++ b/webapp/django/conf/locale/de/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/de/LC_MESSAGES/django.po b/webapp/django/conf/locale/de/LC_MESSAGES/django.po
new file mode 100644
index 0000000..c420c24
--- /dev/null
+++ b/webapp/django/conf/locale/de/LC_MESSAGES/django.po
@@ -0,0 +1,4590 @@
+# Translation of django.po to German
+#
+# Copyright (C) 2005-2008,
+# This file is distributed under the same license as the django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-23 20:19+0200\n"
+"PO-Revision-Date: 2008-08-17 23:58+0100\n"
+"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "Arabisch"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "Bengali"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "Bulgarisch"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "Katalanisch"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "Tschechisch"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "Walisisch"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "Dänisch"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "Deutsch"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "Griechisch"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "Englisch"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "Spanisch"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "Estnisch"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "Argentinisches Spanisch"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "Baskisch"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "Persisch"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "Finnisch"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "Französisch"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "Irisch"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "Galicisch"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "Ungarisch"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "Hebräisch"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "Kroatisch"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "Isländisch"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "Italienisch"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "Japanisch"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "Georgisch"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "Koreanisch"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "Khmer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "Lettisch"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "Litauisch"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "Mazedonisch"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "Holländisch"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "Norwegisch"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "Polnisch"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "Portugiesisch"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "Brasilianisches Portugiesisch"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "Rumänisch"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "Russisch"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "Slowakisch"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "Slowenisch"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "Serbisch"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "Schwedisch"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "Tamilisch"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "Telugisch"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "Türkisch"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "Ukrainisch"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "Vereinfachtes Chinesisch"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "Traditionelles Chinesisch"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Nach %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Alle"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Alle Daten"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Heute"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Letzte 7 Tage"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Diesen Monat"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Dieses Jahr"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:389
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Ja"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:389
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Nein"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:389
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "Zeitpunkt der Aktion"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "Objekt-ID"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "Objekt Darst."
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "Aktionskennzeichen"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "Änderungsmeldung"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "Logeintrag"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "Logeinträge"
+
+#: contrib/admin/options.py:56 contrib/admin/options.py:115
+msgid "None"
+msgstr "-"
+
+#: contrib/admin/options.py:329
+#, python-format
+msgid "Changed %s."
+msgstr "%s geändert."
+
+#: contrib/admin/options.py:329 contrib/admin/options.py:339
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "und"
+
+#: contrib/admin/options.py:334
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "%(name)s \"%(object)s\" hinzugefügt."
+
+#: contrib/admin/options.py:338
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "%(list)s von %(name)s \"%(object)s\" geändert."
+
+#: contrib/admin/options.py:343
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "%(name)s \"%(object)s\" gelöscht."
+
+#: contrib/admin/options.py:347
+msgid "No fields changed."
+msgstr "Keine Felder geändert."
+
+#: contrib/admin/options.py:408 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt."
+
+#: contrib/admin/options.py:412 contrib/admin/options.py:445
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "Das Element kann jetzt weiter bearbeitet werden."
+
+#: contrib/admin/options.py:422 contrib/admin/options.py:455
+#, python-format
+msgid "You may add another %s below."
+msgstr "Jetzt kann ein weiteres Element des Typs %s angelegt werden."
+
+#: contrib/admin/options.py:443
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" wurde erfolgreich geändert."
+
+#: contrib/admin/options.py:451
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt. Das Element kann jetzt "
+"geändert werden."
+
+#: contrib/admin/options.py:517
+#, python-format
+msgid "Add %s"
+msgstr "%s hinzufügen"
+
+#: contrib/admin/options.py:595
+#, python-format
+msgid "Change %s"
+msgstr "%s ändern"
+
+#: contrib/admin/options.py:627
+msgid "Database error"
+msgstr "Datenbankfehler"
+
+#: contrib/admin/options.py:677
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" wurde erfolgreich gelöscht."
+
+#: contrib/admin/options.py:684
+msgid "Are you sure?"
+msgstr "Sind Sie ganz sicher?"
+
+#: contrib/admin/options.py:712
+#, python-format
+msgid "Change history: %s"
+msgstr "Änderungsgeschichte: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Bitte einen gültigen Benutzernamen und ein Passwort eingeben. Beide Felder "
+"berücksichtigen die Groß-/Kleinschreibung."
+
+#: contrib/admin/sites.py:242 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Bitte neu anmelden, da die Session ausgelaufen ist. Keine Angst, die "
+"Beiträge wurden gesichert."
+
+#: contrib/admin/sites.py:249 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Ihr Browser scheint keine Cookies zu akzeptieren. Bitte aktivieren Sie diese "
+"und laden Sie die Seite neu."
+
+#: contrib/admin/sites.py:263 contrib/admin/sites.py:269
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Benutzernamen dürfen das Zeichen '@' nicht enthalten."
+
+#: contrib/admin/sites.py:266 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Die E-Mail-Adresse entspricht nicht Ihrem Benutzernamen. Bitte stattdessen '%"
+"s' versuchen."
+
+#: contrib/admin/sites.py:335
+msgid "Site administration"
+msgstr "Seitenverwaltung"
+
+#: contrib/admin/sites.py:357 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Anmelden"
+
+#: contrib/admin/sites.py:402
+#, python-format
+msgid "%s administration"
+msgstr "%s-Verwaltung"
+
+#: contrib/admin/util.py:138
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Ein oder mehrere %(fieldname)s in %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:143
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Ein oder mehrere %(fieldname)s in %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Datum:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Zeit:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Derzeit:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Ändern:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Seite nicht gefunden"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr ""
+"Es tut uns leid, aber die angeforderte Seite konnte nicht gefunden werden."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/app_index.html:8
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Start"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serverfehler"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serverfehler (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Serverfehler <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Ein Fehler ist aufgetreten. Dieser Fehler wurde an die Serververwalter per E-"
+"Mail gemeldet und sollte in Kürze behoben sein. Vielen Dank für Ihr "
+"Verständnis."
+
+#: contrib/admin/templates/admin/app_index.html:10
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Willkommen,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Passwort ändern"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Abmelden"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django-Systemverwaltung"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django-Verwaltung"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: contrib/admin/templates/admin/change_form.html:27
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Geschichte"
+
+#: contrib/admin/templates/admin/change_form.html:28
+msgid "View on site"
+msgstr "Auf der Seite anzeigen"
+
+#: contrib/admin/templates/admin/change_form.html:38
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Bitte den aufgeführten Fehler korrigieren."
+msgstr[1] "Bitte die aufgeführten Fehler korrigieren."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s hinzufügen"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filter"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:10
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Löschen"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:16
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Die Löschung des %(object_name)s '%(escaped_object)s' hätte die Löschung von "
+"abhängigen Daten zur Folge, aber Sie haben nicht die nötigen Rechte um die "
+"folgenden abhängigen Daten zu löschen:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:23
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Sind Sie sicher, dass Sie %(object_name)s \"%(escaped_object)s\" löschen "
+"wollen? Es werden zusätzlich die folgenden abhängigen Daten gelöscht:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:28
+msgid "Yes, I'm sure"
+msgstr "Ja, ich bin sicher"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Nach %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelle, die in der Anwendung %(name)s vorhanden sind."
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Ändern"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Sie haben keine Berechtigung, irgendetwas zu ändern."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Kürzliche Aktionen"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Meine Aktionen"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Keine vorhanden"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, dass "
+"die richtigen Datenbanktabellen angelegt wurden und die Datenbank vom "
+"verwendeten Datenbankbenutzer auch lesbar ist."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Benutzername:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Passwort:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Datum/Zeit"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Benutzer"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Aktion"
+
+#: contrib/admin/templates/admin/object_history.html:24
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "j. N Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht "
+"über diese Verwaltungsseiten angelegt."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Zeige alle"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Los"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "Ein Ergebnis"
+msgstr[1] "%(counter)s Ergebnisse"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s gesamt"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Als neu sichern"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Sichern und neu hinzufügen"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Sichern und weiter bearbeiten"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Sichern"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Zuerst einen Benutzer und ein Passwort eingeben. Danach können weitere "
+"Optionen für den Benutzer geändert werden."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Benutzername"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Passwort"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Passwort (wiederholen)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Bitte das gleiche Passwort zur Überprüfung nochmal eingeben."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr ""
+"Bitte geben Sie ein neues Passwort für den Benutzer <strong>%(username)s</"
+"strong> ein."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Vielen Dank, dass Sie hier ein paar nette Minuten verbracht haben."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Erneut anmelden"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Passwort ändern"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Passwort erfolgreich geändert"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Ihr Passwort wurde geändert."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Passwort und darunter "
+"dann zweimal (um sicherzustellen, dass Sie es korrekt eingegeben haben) das "
+"neue Kennwort ein."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Altes Passwort:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Neues Passwort:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Passwort wiederholen:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Mein Passwort ändern"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Passwort zurücksetzen"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Passwort zurücksetzen beendet"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Ihr Passwort wurde zurückgesetzt. Sie können sich nun anmelden."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Zurücksetzen des Passworts bestätigen"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Neues Passwort eingeben"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Bitte geben Sie Ihr neues Passwort zweimal ein, damit wir überprüfen können, "
+"ob es richtig eingetippt wurde."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Passwort wurde nicht erfolgreich zurückgesetzt"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"Der Link zum Zurücksetzen Ihres Passworts ist ungültig, wahrscheinlich weil "
+"er schon einmal benutzt wurde. Bitte setzen Sie Ihr Passwort erneut zurück."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Passwort wurde erfolgreich zurückgesetzt"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Wir haben Ihnen eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passwort "
+"an die von Ihnen angegebene E-Mail-Adresse geschickt. Sie sollten diese in "
+"Kürze erhalten."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Sie erhalten diese E-Mail, weil Sie ein neues Passwort"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "für Ihren Benutzer bei %(site_name)s angefordert haben."
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Bitte öffnen Sie folgende Seite, um Ihr neues Passwort einzugeben:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Ihr Benutzername, falls Sie ihn vergessen haben:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Vielen Dank, dass Sie unsere Seiten benutzen!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Das Team von %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Passwort vergessen? Einfach Ihre E-Mail-Adresse eingeben und wir senden "
+"Ihnen Anweisungen zum Zurücksetzen Ihres Passworts."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-Mail-Adresse:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Mein Passwort zurücksetzen"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "Alle Tage"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "%s auswählen"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "%s zur Änderung auswählen"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "Website"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "Template"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "Schlagwort:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "Filter:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "Ansicht:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Anwendung %r nicht gefunden"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Modell %(model_name)r wurde nicht in Anwendung %(app_label)r gefunden"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "Das verknüpfte `%(app_label)s.%(data_type)s` Objekt"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "Modell:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "verknüpftes `%(app_label)s.%(object_name)s` Objekt"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "Alle %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "Anzahl von %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Felder am %s Objekt"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Ganzzahl"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Boolscher Wert (True oder False)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Zeichenkette (bis zu %(max_length)s Zeichen)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Kommaseparierte Liste von Ganzzahlen"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Datum (ohne Uhrzeit)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Datum (mit Uhrzeit)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Dezimalzahl"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "E-Mail-Adresse"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Dateipfad"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Gleitkommazahl"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP-Adresse"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolscher Wert (True, False oder None)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Beziehung zum Eltern-Modell"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Telefonnummer"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Text"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Zeit"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "Adresse (URL)"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "U.S. Bundesstaat (zwei Großbuchstaben)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML-Text"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ist scheinbar kein urlpattern-Objekt"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentations-Bookmarklets"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Um Bookmarklets zu installieren, müssen diese Links in "
+"die\n"
+"Browser-Werkzeugleiste gezogen werden, oder mittels rechter Maustaste in "
+"die\n"
+"Bookmarks gespeichert werden. Danach können die Bookmarklets von jeder "
+"Seite\n"
+"aufgerufen werden. Einige Bookmarklets sind auf den Zugriff von 'internen'\n"
+"Rechnern beschränkt. Falls nicht klar ist, ob ein Rechner als 'intern'\n"
+"bewertet wird, bitte den Administrator fragen.</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Dokumentation für diese Seite"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Springt von jeder Seite zu der Dokumentation für den View, der diese Seite "
+"erzeugt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Objekt-ID anzeigen"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Zeigt den Content-Type und die eindeutige ID für Seiten, die ein einzelnes "
+"Objekt repräsentieren."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Dieses Objekt ändern (Aktives Fenster)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Springt zu der Administrationsseite für dieses Objekt, wenn diese Seite ein "
+"Objekt repräsentiert."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Dieses Objekt ändern (Neues Fenster)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr ""
+"Wie zuvor, aber öffnet die Administrationsseite in einem neuen Fenster."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Persönliche Infos"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Berechtigungen"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Wichtige Daten"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Gruppen"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Benutzer hinzufügen"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Passwort erfolgreich geändert."
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Passwort ändern: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Erforderlich. 30 Zeichen oder weniger. Nur alphanumerische Zeichen "
+"(Buchstaben, Ziffern und Unterstriche) sind erlaubt."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Dieser Wert darf nur Buchstaben, Ziffern und Unterstriche enthalten."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Passwort bestätigen"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "Dieser Benutzername ist bereits vergeben."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "Die beiden Passwörter sind nicht identisch."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Dieser Benutzer ist inaktiv."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Der Webbrowser scheint keine Cookies aktiviert zu haben. Cookies sind für "
+"die Anmeldung zwingend erforderlich."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "E-Mail-Adresse"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Zu dieser E-Mail-Adresse existiert kein Benutzer. Sicher, dass Sie sich mit "
+"dieser Adresse registriert haben?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Passwort auf %s zurücksetzen"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Neues Passwort"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Neues Passwort bestätigen"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Altes Passwort"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Das alte Passwort war falsch. Bitte neu eingeben."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "Name"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "Codename"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "Berechtigung"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "Berechtigungen"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "Gruppe"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "Gruppen"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "Benutzername"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "Vorname"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "Nachname"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "E-Mail-Adresse"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "Passwort"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Die Form '[algo]$[salt]$[hexdigest]' verwenden, oder das <a href=\"password/"
+"\">Passwort ändern Formular</a> benutzen."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "Redakteur-Status"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+"Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "Aktiv"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Legt fest, ob dieser Benutzer aktiv ist. Kann deaktiviert werden, anstatt "
+"Benutzer zu löschen."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "Administrator-Status"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Legt fest, dass der Benutzer alle Berechtigungen hat, ohne diese einzeln "
+"zuweisen zu müssen."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "Letzte Anmeldung"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "Mitglied seit"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Zusätzlich zu den manuell angelegten Rechten erhält dieser Benutzer auch "
+"alle Rechte, die seine zugewiesenen Gruppen haben."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "Berechtigungen"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "Benutzer"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "Benutzer"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "Mitteilung"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "Abgemeldet"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "Objekt-ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "Überschrift"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "Kommentar"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "Bewertung #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "Bewertung #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "Bewertung #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "Bewertung #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "Bewertung #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "Bewertung #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "Bewertung #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "Bewertung #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "ist eine Bewertung"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "Datum/Zeit Erstellung"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "ist öffentlich"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "ist gelöscht"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Hier einen Haken setzen, wenn der Kommentar unpassend ist. Stattdessen wird "
+"dann \"Dieser Kommentar wurde entfernt\" Meldung angezeigt."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "Kommentare"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Inhaltsobjekt"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Geschrieben von %(user)s am %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "Autorname"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "IP-Adresse"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "Bestätigt vom Betreiber"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "Freier Kommentar"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "Freie Kommentare"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "Bewertung"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "Bewertungsdatum"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "Karma Bewertung"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "Karma Bewertungen"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d Bewertung von %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Dieser Kommentar ist von %(user)s markiert:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "Kennzeichnungsdatum"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "Benutzerkennzeichnung"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "Benutzerkennzeichnungen"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Gekennzeichnet von %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "Löschdatum"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "Löschung vom Moderator"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "Löschungen vom Moderator"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Vom Moderator %r gelöscht"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Passwort vergessen?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Bewertungen"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Erforderlich"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Optional"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Ein Bild veröffentlichen"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Kommentar:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Kommentarvorschau"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Ihr Name:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"Diese Abstimmung ist zwingend erforderlich, da Sie an mindestens einer "
+"weiteren Abstimmung teilnehmen."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s "
+"Kommentar:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s "
+"Kommentaren:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Dieser Kommentar ist von einem nicht einschätzbaren Benutzer:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Nur POST ist erlaubt"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Eines oder mehrere der erforderlichen Felder fehlen"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"Jemand hat mit dem Kommentarformular herumgespielt (Sicherheitsverletzung)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Das Kommentarformular hatte einen falschen 'target' Parameter -- die Objekt-"
+"ID ist ungültig."
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+"Das Kommentarformular wurde nicht mit 'preview' oder 'post' abgeschickt"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonyme Benutzer dürfen nicht abstimmen"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Ungültige Kommentar-ID"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Keine Abstimmung für dich selbst"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "Python Model-Klassenname"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "Inhaltstyp"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "Inhaltstypen"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Beispiel: '/about/contact/'. Wichtig: Am Anfang und Ende muss ein / stehen."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Schrägstriche "
+"enthalten."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Erweiterte Optionen"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "Titel"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "Inhalt"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "Kommentare aktivieren"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "Name der Vorlage"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Beispiel: 'flatpages/contact_page.html'. Wenn dieses Feld nicht gefüllt ist, "
+"wird 'flatpages/default.html' als Standard gewählt."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "Registrierung erforderlich"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Wenn hier ein Haken gesetzt ist, können nur angemeldete Benutzer diese Seite "
+"sehen."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "Webseite"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "Webseiten"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Kein geometrischer Wert gegeben."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Ungültiger geometrischer Wert."
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Ungültiger geometrischer Typ."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f Million"
+msgstr[1] "%(value).1f Millionen"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f Milliarde"
+msgstr[1] "%(value).1f Milliarden"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f Billion"
+msgstr[1] "%(value).1f Billionen"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "ein"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "zwei"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "drei"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "vier"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "fünf"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "sechs"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "sieben"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "acht"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "neun"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "heute"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "morgen"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "gestern"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Bitte eine gültige Postleitzahl im Format NNNN oder ANNNNAAA eingeben."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Dieses Feld darf nur Ziffern enthalten."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Dieses Feld benötigt 7 oder 8 Ziffern."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+"Bitte eine gültige CUIT im Format XX-XXXXXXXX-X oder XXXXXXXXXXXX eingeben."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Ungültige CUIT."
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "Burgenland"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Kärnten"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "Niederösterreich"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "Oberösterreich"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "Salzburg"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "Steiermark"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "Tirol"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "Vorarlberg"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "Wien"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Bitte eine gültige Postleitzahl im Format XXXX eingeben."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+"Bitte eine gültige österreichische Sozialversicherungsnummer im Format XXXX "
+"XXXXXX eingeben."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Bitte eine gültige vierstellige Postleitzahl eingeben."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Bitte eine gültige Postleitzahl im Format XXXXX-XXX eingeben."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefonnummern müssen das Format XX-XXXX-XXXX haben."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "Bitte einen gültigen brasilianischen Bundesstaat auswählen."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Ungültige CPF-Nummer."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Dieses Feld benötigt mindestens 11 Ziffern oder 14 Zeichen."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Ungültige CNPJ-Nummer."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Dieses Feld benötigt mindestens 14 Ziffern."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Bitte eine gültige Postleitzahl im Format XXX XXX eingeben."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"Bitte eine gültige kanadische Sozialversicherungsnummer im Format XXX-XXX-"
+"XXX eingeben."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Bern"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Freiburg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Genf"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubünden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Luzern"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zürich"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Bitte eine gültige Schweizer Identifikations- oder Reisepassnummer im "
+"FormatX1234567<0 oder 1234567890 eingeben."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Bitte eine gültige chilenische RUT eingeben."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Bitte eine chilenische RUT im Format XX.XXX.XXX-X eingeben."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "Diese chilenische RUT ist ungültig."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Württemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bayern"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Vorpommern"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Niedersachsen"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Nordrhein-Westfalen"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rheinland-Pfalz"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Sachsen"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Sachsen-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thüringen"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Bitte eine gültige Postleitzahl im Format XXXXX eingeben."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Bitte eine gültige deutsche Personalausweisnummer im Format XXXXXXXXXXX-"
+"XXXXXXX-XXXXXXX-X eingeben."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Arava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almería"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Ávila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Balearische Inseln"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Cáceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cádiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castello"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Córdoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruña"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "León"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Málaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarre"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturien"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Kantabrien"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Bizkaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalusien"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragonien"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Fürstentum Asturien"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Balearische Inseln"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Baskenland"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Kanarische Inseln"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Kastilien-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Kastilien-León"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Katalonien"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicien"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Foralgemeinschaft Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Bitte eine gültige Postleitzahl im Format 01XXX bis 52XXX eingeben."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Bitte eine gültige Telefonnummer in einem der folgenden Formate eingeben "
+"6XXXXXXXX, 8XXXXXXXX oder 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Bitte eine gültige NIF, NIE oder CIF eingeben."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Bitte eine gültige NIF oder NIE eingeben."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Ungültige Prüfsumme für NIF."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Ungültige Prüfsumme für NIE."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Ungültige Prüfsumme für CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+"Bitte eine gültige Kontonummer im Format XXXX-XXXX-XX-XXXXXXXXXX eingeben."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Ungültige Prüfsumme für Kontonummer."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Bitte eine gültige finnische Sozialversicherungsnummer eingeben."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Bitte eine gültige Postleitzahl im Format XXXXXXX eingeben."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"Bitte eine gültige isländische Identifikationsnummer im Format XXXXXX-XXXX "
+"eingeben."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Die isländische Identifikationsnummer ist nicht gültig."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Bitte eine gültige Postleitzahl eingeben."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Bitte eine gültige Sozialversicherungsnummer eingeben."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Bitte eine gültige Umsatzsteuernummer eingeben."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+"Bitte eine gültige Postleitzahl im Format XXXXXXX oder XXX-XXXX eingeben."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaidō"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokio"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyōto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Ōsaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyōgo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Ōita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Estado de México"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Bitte eine gültige Postleitzahl eingeben."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Bitte eine gültige Telefonnummer eingeben."
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Bitte eine gültige SoFi-Nummer eingeben."
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drenthe"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friesland"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburg"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Nordbrabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Nordholland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Südholland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Bitte eine gültige norwegische Sozialversicherungsnummer eingeben."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Dieses Feld benötigt 8 Zeichen."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Dieses Feld benötigt 11 Zeichen."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr "Nationale Identifikationsnummer besteht aus 11 Ziffern."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Falsche Prüfsumme für die nationale Identifikationsnummer."
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+"Bitte eine Steuernummer (NIP) im Format XXX-XXX-XX-XX oder XX-XX-XXX-XXX "
+"eingeben."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Falsche Prüfsumme für die Steuernummer (NIP)."
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+"Nationale Geschäftsregistrierungsnummer (REGON) besteht aus 7 oder 9 Zeichen."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+"Falsche Prüfsumme für die nationale Geschäftsregistrierungsnummer (REGON)."
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Bitte eine gültige Postleitzahl im Format XX-XXX eingeben."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Niederschlesien"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kujawien-Pommern"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Land Lebus"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Łódź"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Kleinpolen"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masowien"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Oppeln"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Karpatenvorland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pommern"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Schlesien"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Heiligkreuz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Ermland-Masuren"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Großpolen"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Vorpommern"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "Bitte eine gültige CIF eingeben."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "Bitte eine gültige CNP eingeben."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr ""
+"Bitte eine gültige IBAN im Format ROXX-XXXX-XXXX-XXXX-XXXX-XXXX eingeben."
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Telefonnummern müssen das Format XXXX-XXXXXX haben."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Bitte eine gültige Postleitzahl im Format XXXXXX eingeben"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Bitte eine gültige Postleitzahl im Format XXXXX oder XXX XX eingeben."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banská Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banská Štiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Bánovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytča"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Čadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolný Kubín"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajská Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenné"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kežmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucké Nové Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoča"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovský Mikuláš"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lučenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Námestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nové Mesto nad Váhom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nové Zámky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizánske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piešťany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltár"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Považská Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Prešov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Púchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revúca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Rožňava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ružomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spišská Nová Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stará Ľubovňa"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidník"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topoľčany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebišov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trenčín"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turčianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdošín"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Veľký Krtíš"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Topľou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Žarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Žiar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Žilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banská Bystrica Region"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Bratislavský kraj"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Kosice"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Prešov"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Trenčín"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Žilina"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Bitte eine gültige Postleitzahl eingeben."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall and Isles of Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Greater London"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Greater Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "South Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "West Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "County Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "County Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Central Scotland"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetland Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "England"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Nordirland"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Schottland"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Wales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+"Bitte eine gültige Postleitzahl im Format XXXXX oder XXXXX-XXXX eingeben."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+"Bitte eine gültige US-amerikanische Sozialversicherungsnummer im Format XXX-"
+"XX-XXXX eingeben."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Bitte eine gültige südafrikanische Identifikationsnummer eingeben."
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Bitte eine gültige südafrikanische Postleitzahl eingeben."
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Ostkap"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Freistaat"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Nordkap"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "Nordwest"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Westkap"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "Umleitung von"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Hier sollte ein absoluter Pfad stehen, ohne den Domainnamen. Beispiel: '/"
+"events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "Umleitung nach"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Hier muss entweder ein absoluter Pfad oder eine komplette URL mit http:// am "
+"Anfang stehen."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "Umleitung"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "Umleitungen"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "Sitzungs-ID"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "Sitzungsdaten"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "Verfallsdatum"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "Sitzung"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "Sitzungen"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "Domainname"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "Anzeigename"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "Websites"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Bindestriche "
+"enthalten."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Großbuchstaben sind hier nicht erlaubt."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Kleinbuchstaben sind hier nicht erlaubt."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Hier sind nur durch Komma getrennte Ziffern erlaubt."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Bitte mit Komma getrennte, gültige E-Mail-Adressen eingeben."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Bitte eine gültige IP-Adresse eingeben."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Dieses Feld darf nicht leer sein."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Nichtnumerische Zeichen sind hier nicht erlaubt."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Dieser Wert darf nicht nur aus Ziffern bestehen."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Bitte eine ganze Zahl eingeben."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Nur alphabetische Zeichen sind hier erlaubt."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Ungültiges Datum: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Bitte ein gültiges Datum im Format JJJJ-MM-TT eingeben."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Bitte eine gültige Zeit im Format SS:MM eingeben."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr ""
+"Bitte eine gültige Datums- und Zeitangabe im Format JJJJ-MM-TT SS:MM "
+"eingeben."
+
+#: core/validators.py:166 forms/fields.py:423
+msgid "Enter a valid e-mail address."
+msgstr "Bitte eine gültige E-Mail-Adresse eingeben."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:441
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Es wurde keine Datei übermittelt. Überprüfen Sie das Encoding des Formulars."
+
+#: core/validators.py:189 forms/fields.py:472
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Bitte ein Bild hochladen. Die hochgeladene Datei ist kein Bild, oder ist "
+"defekt."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "Die URL %s zeigt nicht auf ein gültiges Bild."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Telefonnummern müssen das Format XXX-XXX-XXXX haben. \"%s\" ist ungültig."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "Die URL %s zeigt nicht auf ein gültiges QuickTime-Video."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "Eine gültige URL ist erforderlich."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Bitte gültiges HTML eingeben. Fehler sind:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Ungültiges XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Ungültige URL: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Die URL %s funktioniert nicht."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Bitte eine gültige Abkürzung für einen US-Staat eingeben."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Keine Schimpfworte! Das Wort %s ist hier nicht gern gesehen!"
+msgstr[1] "Keine Schimpfworte! Die Wörter %s sind hier nicht gern gesehen!"
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Dieses Feld muss zum Feld '%s' passen."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Bitte mindestens eines der Felder ausfüllen."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Bitte entweder beide Felder ausfüllen, oder beide leer lassen."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr ""
+"Dieses Feld muss gefüllt sein, wenn Feld %(field)s den Wert %(value)s hat."
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr ""
+"Dieses Feld muss gefüllt sein, wenn Feld %(field)s nicht %(value)s ist."
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Doppelte Werte sind hier nicht erlaubt."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Dieser Wert muss zwischen %(lower)s und %(upper)s sein."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Dieser Wert muss mindestens %s sein."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Dieser Wert darf maximal %s sein."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Dieser Wert muss eine Potenz von %s sein."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Bitte eine gültige Dezimalzahl eingeben."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffer eingeben."
+msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffern eingeben."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffer "
+"eingeben."
+msgstr[1] ""
+"Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffern "
+"eingeben."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstelle eingeben."
+msgstr[1] ""
+"Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstellen eingeben."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Bitte eine gültige Gleitkommazahl eingeben."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+"Bitte sicherstellen, dass die hochgeladene Datei mindestens %s Bytes groß "
+"ist."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+"Bitte sicherstellen, dass die hochgeladene Datei maximal %s Bytes groß ist."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Das Format für dieses Feld ist falsch."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Dieses Feld ist ungültig."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Konnte nichts von %s empfangen."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "Die URL %(url)s lieferte den falschen Content-Type '%(contenttype)s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Bitte das ungeschlossene %(tag)s Tag in Zeile %(line)s schließen. Die Zeile "
+"beginnt mit \"%(start)s\"."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"In Zeile %(line)s ist Text, der nicht in dem Kontext erlaubt ist. Die Zeile "
+"beginnt mit \"%(start)s\"."
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"Das Attribute %(attr)s in Zeile %(line)s ist ungültig. Die Zeile beginnt mit "
+"\"%(start)s\"."
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"<%(tag)s> in Zeile %(line)s ist ungültig. Die Zeile beginnt mit \"%(start)s"
+"\"."
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Ein Tag in Zeile %(line)s hat eines oder mehrere Pflichtattribute nicht. Die "
+"Zeile beginnt mit \"%(start)s\"."
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Das Attribut %(attr)s in Zeile %(line)s hat einen ungültigen Wert. Die Zeile "
+"beginnt mit \"%(start)s\"."
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+"Ein '%(object)s' in dieser '%(type)s' existiert bereits für dieses '%(field)"
+"s'."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Ein '%(optname)s' mit diesem '%(fieldname)s' existiert bereits."
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "Dieses Feld ist zwingend erforderlich."
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "Dieser Wert muss eine Ganzzahl sein."
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "Dieser Wert muss wahr oder falsch sein."
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "Dieses Feld darf nicht leer sein."
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr ""
+"Bitte eine gültige Datums- und Zeitangabe im Format JJJJ-MM-TT SS:MM[ss[."
+"uuuuuu]] eingeben."
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "Dieser Wert muss eine Dezimalzahl sein."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "Dieser Wert muss None, True oder False sein."
+
+#: db/models/fields/__init__.py:895
+msgid ""
+"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Bitte ein gültiges Kürzel, bestehend aus Buchstaben, Ziffern, "
+"Unterstrichen und Bindestrichen, eingeben."
+
+#: db/models/fields/__init__.py:944 db/models/fields/__init__.py:957
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Bitte eine gültige Zeit im Format HH:MM[:ss[.uuuuuu]] eingeben."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Bitte einen gültigen Dateinamen eingeben."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Bitte ein gültiges '%s' eingeben."
+
+#: db/models/fields/related.py:786
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Um mehr als eine Selektion zu treffen, \"Strg\", oder auf dem Mac \"Command"
+"\", beim Klicken gedrückt halten."
+
+#: db/models/fields/related.py:866
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Bitte gültige IDs für %(self)s eingeben. Der Wert %(value)r ist ungültig."
+msgstr[1] ""
+"Bitte gültige IDs für %(self)s eingeben. Die Werte %(value)r sind ungültig."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Bitte einen gültigen Wert eingeben."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Bitte sicherstellen, dass der Text maximal %(max)d Zeichen hat. (Er hat %"
+"(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Bitte sicherstellen, dass der Text wenigstens %(min)d Zeichen hat. (Er hat %"
+"(length)d.)"
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Dieser Wert darf maximal %s sein."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Dieser Wert muss größer oder gleich %s sein."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Bitte eine Zahl eingeben."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Bitte geben Sie nicht mehr als insgesamt %s Ziffern ein."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Bitte geben Sie nicht mehr als %s Dezimalstellen ein."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Bitte geben Sie nicht mehr als %s Ziffern vor dem Komma ein."
+
+#: forms/fields.py:282 forms/fields.py:804
+msgid "Enter a valid date."
+msgstr "Bitte ein gültiges Datum eingeben."
+
+#: forms/fields.py:316 forms/fields.py:805
+msgid "Enter a valid time."
+msgstr "Bitte eine gültige Uhrzeit eingeben."
+
+#: forms/fields.py:355
+msgid "Enter a valid date/time."
+msgstr "Bitte ein gültiges Datum und Uhrzeit eingeben."
+
+#: forms/fields.py:442
+msgid "No file was submitted."
+msgstr "Es wurde keine Datei übertragen."
+
+#: forms/fields.py:443 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Die ausgewählte Datei ist leer."
+
+#: forms/fields.py:533
+msgid "Enter a valid URL."
+msgstr "Bitte eine gültige Adresse eingeben."
+
+#: forms/fields.py:534
+msgid "This URL appears to be a broken link."
+msgstr "Diese Adresse scheint nicht gültig zu sein."
+
+#: forms/fields.py:602 forms/fields.py:653
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Bitte eine gültige Auswahl treffen. %(value)s ist keine gültige Auswahl."
+
+#: forms/fields.py:654 forms/fields.py:715 forms/models.py:529
+msgid "Enter a list of values."
+msgstr "Bitte eine Liste mit Werten eingeben."
+
+#: forms/fields.py:833
+msgid "Enter a valid IPv4 address."
+msgstr "Bitte eine gültige IPv4-Adresse eingeben."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Bitte eine gültige Auswahl treffen."
+
+#: forms/models.py:530
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Bitte eine gültige Auswahl treffen. %s ist keine gültige Auswahl."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Bitte sicherstellen, dass der Text weniger als %s Zeichen hat."
+msgstr[1] "Bitte sicherstellen, dass der Text weniger als %s Zeichen hat."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Zeilenumbrüche sind hier nicht erlaubt."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+"Bitte eine gültige Auswahl treffen; '%(data)s' ist nicht in %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Bitte eine ganze Zahl zwischen -32.768 und 32.767 eingeben."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Bitte eine ganze, positive Zahl eingeben."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Bitte eine ganze Zahl zwischen 0 und 32.767 eingeben."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "Ja,Nein,Vielleicht"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d Byte"
+msgstr[1] "%(size)d Bytes"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "nachm."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "vorm."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "nachm."
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "vorm."
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "Mitternacht"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "Mittag"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Montag"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Dienstag"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Donnerstag"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Freitag"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Samstag"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Sonntag"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Mo"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Di"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Mi"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Do"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Fr"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Sa"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "So"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Januar"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Februar"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "März"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "April"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Mai"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Juni"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Juli"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "August"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "September"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Oktober"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "November"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Dezember"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "Jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "Feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "Mär"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "Apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "Mai"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "Jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "Jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "Aug"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "Sep"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "Okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "Nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "Dez"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Aug."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dez."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "oder"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "Jahr"
+msgstr[1] "Jahre"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "Monat"
+msgstr[1] "Monate"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "Woche"
+msgstr[1] "Wochen"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "Tag"
+msgstr[1] "Tage"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "Stunde"
+msgstr[1] "Stunden"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "Minute"
+msgstr[1] "Minuten"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "Minuten"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "j. N Y"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "j. F"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s wurde erfolgreich angelegt."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s wurde erfolgreich aktualisiert."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s wurde gelöscht."
diff --git a/webapp/django/conf/locale/de/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/de/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..453b5ef
--- /dev/null
+++ b/webapp/django/conf/locale/de/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/de/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/de/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..7502d22
--- /dev/null
+++ b/webapp/django/conf/locale/de/LC_MESSAGES/djangojs.po
@@ -0,0 +1,119 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-15 14:38+0200\n"
+"PO-Revision-Date: 2008-06-23 21:02+0100\n"
+"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Verfügbare %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Alles auswählen"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Entfernen"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Ausgewählte %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Auswahl treffen und Klick auf"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Alles abwählen"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Januar Februar März April Mai Juni Juli August September Oktober November "
+"Dezember"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S M D M D F S"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Einblenden"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Ausblenden"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Jetzt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Uhr"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Uhrzeit"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Mitternacht"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 Uhr"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Mittag"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Heute"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalender"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Gestern"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Morgen"
diff --git a/webapp/django/conf/locale/el/LC_MESSAGES/django.mo b/webapp/django/conf/locale/el/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..cd60509
--- /dev/null
+++ b/webapp/django/conf/locale/el/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/el/LC_MESSAGES/django.po b/webapp/django/conf/locale/el/LC_MESSAGES/django.po
new file mode 100644
index 0000000..d9793c8
--- /dev/null
+++ b/webapp/django/conf/locale/el/LC_MESSAGES/django.po
@@ -0,0 +1,2766 @@
+# translation of django.po to el
+# Copyright (C) 2006 and beyond
+# This file is distributed under the same license as the DJANGO package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-05 01:32+1000\n"
+"PO-Revision-Date: 2007-09-03 04:19+0100\n"
+"Last-Translator: Dimitris Glezos <dimitris@glezos.com>\n"
+"Language-Team: el <fedora-trans-el@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#: db/models/manipulators.py:307
+#, fuzzy, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "αντικείμενο με τύπος για πεδίο."
+
+#: db/models/manipulators.py:308 contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339
+msgid "and"
+msgstr "και"
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Παρακαλούμε εισάγετε ένα έγκυρο %s."
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Ξεχωρίστε πολλαπλά ΙD με κόμματα."
+
+#: db/models/fields/related.py:644
+#, fuzzy
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Αναμονή Έλεγχος ή Εντολή ενεργό a επιλογή περισσότερα ένα."
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Παρακαλούμε εισάγετε ένα έγκυρο %(self)s IDs. Η τιμή %(value)r δεν είναι "
+"έγκυρη."
+msgstr[1] ""
+"Παρακαλούμε εισάγετε ένα έγκυρο %(self)s IDs. Οι τιμές %(value)r δεν είναι "
+"έγκυρες."
+
+#: db/models/fields/__init__.py:42
+#, fuzzy, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "με."
+
+#: db/models/fields/__init__.py:117 db/models/fields/__init__.py:274
+#: db/models/fields/__init__.py:610 db/models/fields/__init__.py:621
+#: oldforms/__init__.py:357 newforms/fields.py:80 newforms/fields.py:376
+#: newforms/fields.py:452 newforms/fields.py:463 newforms/models.py:178
+msgid "This field is required."
+msgstr "Αυτό το πεδίο είναι απαραίτητο."
+
+#: db/models/fields/__init__.py:367
+msgid "This value must be an integer."
+msgstr "Αυτή η τιμή πρέπει να είναι ένας ακέραιος."
+
+#: db/models/fields/__init__.py:402
+msgid "This value must be either True or False."
+msgstr "Αυτή η τιμή πρέπει να είναι Αληθές ή Ψευδές."
+
+#: db/models/fields/__init__.py:423
+msgid "This field cannot be null."
+msgstr "Αυτό το πεδίο δεν μπορεί να είναι κενό (null)."
+
+#: db/models/fields/__init__.py:457 core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Εισάγετε μία έγκυρη ημερομηνία στη μορφή ΧΧΧΧ-MM-ΗΗ."
+
+#: db/models/fields/__init__.py:526 core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Εισάγετε μία έγκυρη ημερομηνία/ώρα στη μορφή ΧΧΧΧ-MM-ΗΗ ΩΩ:ΛΛ."
+
+#: db/models/fields/__init__.py:630
+msgid "Enter a valid filename."
+msgstr "Εισάγετε ένα έγκυρο όνομα αρχείου."
+
+#: db/models/fields/__init__.py:751
+#, fuzzy
+msgid "This value must be either None, True or False."
+msgstr "Αυτή η τιμή πρέπει να είναι Αληθές ή Ψευδές."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Αραβικά"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Μπενγκάλι"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "Καταλανικά"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "Τσέχικα"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "Ουαλικά"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "Δανέζικα"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "Γερμανικά"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "Ελληνικά"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "Αγγλικά"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "Ισπανικά"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "Ισπανικά Αργεντινής"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "Φινλανδικά"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "Γαλλικά"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr ""
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "Ουγγρικά"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "Εβραϊκά"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "Ισλανδικά"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "Ιταλικά"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "Γιαπωνέζικα"
+
+#: conf/global_settings.py:58
+msgid "Kannada"
+msgstr ""
+
+#: conf/global_settings.py:59
+msgid "Latvian"
+msgstr ""
+
+#: conf/global_settings.py:60
+msgid "Macedonian"
+msgstr "Μακεδονικά"
+
+#: conf/global_settings.py:61
+msgid "Dutch"
+msgstr "Ολλανδικά"
+
+#: conf/global_settings.py:62
+msgid "Norwegian"
+msgstr "Νορβηγικά"
+
+#: conf/global_settings.py:63
+msgid "Polish"
+msgstr "Πολωνικά"
+
+#: conf/global_settings.py:64
+msgid "Portugese"
+msgstr "Πορτογαλικά"
+
+#: conf/global_settings.py:65
+msgid "Brazilian"
+msgstr "Βραζιλιάνικα"
+
+#: conf/global_settings.py:66
+msgid "Romanian"
+msgstr "Ρουμανικά"
+
+#: conf/global_settings.py:67
+msgid "Russian"
+msgstr "Ρωσικά"
+
+#: conf/global_settings.py:68
+msgid "Slovak"
+msgstr "Σλοβακικά"
+
+#: conf/global_settings.py:69
+msgid "Slovenian"
+msgstr "Σλοβενικά"
+
+#: conf/global_settings.py:70
+msgid "Serbian"
+msgstr "Σερβικά"
+
+#: conf/global_settings.py:71
+msgid "Swedish"
+msgstr "Σουηδικά"
+
+#: conf/global_settings.py:72
+msgid "Tamil"
+msgstr "Ταμιλικά"
+
+#: conf/global_settings.py:73
+msgid "Telugu"
+msgstr ""
+
+#: conf/global_settings.py:74
+msgid "Turkish"
+msgstr "Τουρκικά"
+
+#: conf/global_settings.py:75
+msgid "Ukrainian"
+msgstr "Ουκρανικά"
+
+#: conf/global_settings.py:76
+msgid "Simplified Chinese"
+msgstr "Απλοποιημένα Κινέζικα"
+
+#: conf/global_settings.py:77
+msgid "Traditional Chinese"
+msgstr "Παραδοσιακά Κινέζικα"
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "χρόνος"
+msgstr[1] "χρόνια"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "μήνας"
+msgstr[1] "μήνες"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "εβδομάδα"
+msgstr[1] "εβδομάδες"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "ημέρα"
+msgstr[1] "ημέρες"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "ώρα"
+msgstr[1] "ώρες"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "λεπτό"
+msgstr[1] "λεπτά"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Δευτέρα"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Τρίτη"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Τετάρτη"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Πέμπτη"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Παρασκευή"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Σάββατο"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Κυριακή"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Ιανουάριος"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Φεβρουάριος"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "Μάρτιος"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "Απρίλιος"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "Μάιος"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "Ιούνιος"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "Ιούλιος"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Αύγουστος"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Σεπτέμβριος"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Οκτώβριος"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Νοέμβριος"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Δεκέμβριος"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "Ιαν"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "Φεβ"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "Μάρ"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "Απρ"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "Μάι"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "Ιούν"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "Ιούλ"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "Αύγ"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "Σεπ"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "Οκτ"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "Νοέ"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "Δεκ"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "Ιάν."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "Φεβ."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "Αύγ."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Σεπτ."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "Οκτ."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "Νοέ."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "Δεκ."
+
+#: utils/dateformat.py:40
+msgid "p.m."
+msgstr "μμ."
+
+#: utils/dateformat.py:41
+msgid "a.m."
+msgstr "πμ."
+
+#: utils/dateformat.py:46
+msgid "PM"
+msgstr "ΜΜ"
+
+#: utils/dateformat.py:47
+msgid "AM"
+msgstr "ΠΜ"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "μεσάνυχτα"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "μεσημέρι"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "j N Y"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "j N Y, P"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr "j F"
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Βεβαιωθείτε ότι το κείμενο σας έχει μέγεθος μικρότερο από %s χαρακτήρα."
+msgstr[1] "Βεβαιωθείτε ότι το κείμενο σας έχει μέγεθος μικρότερο από %s χαρακτήρες."
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "Δεν επιτρέπονται αλλαγές γραμμών εδώ."
+
+#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Επιλέξτε μια έγκυρη επιλογή; Το '%(data)s' δεν είναι στα %(choices)s."
+
+#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:150
+#: newforms/widgets.py:174
+msgid "Unknown"
+msgstr "Άγνωστο"
+
+#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:174
+msgid "Yes"
+msgstr "Ναι"
+
+#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:174
+msgid "No"
+msgstr "Όχι"
+
+#: oldforms/__init__.py:672 core/validators.py:174 core/validators.py:445
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "Το αρχείο που υποβλήθηκε είναι κενό."
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Εισάγετε έναν ακέραιο αριθμό μεταξύ -32,768 και 32,767."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "Εισάγετε ένα θετικό αριθμό."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Εισάγετε έναν ακέραιο αριθμό μεταξύ 0 και 32,767."
+
+#: contrib/localflavor/no/forms.py:15
+#, fuzzy
+msgid "Enter a zip code in the format XXXX."
+msgstr "Εισάγετε μία έγκυρη ώρα στη μορφή ΩΩ-ΛΛ."
+
+#: contrib/localflavor/no/forms.py:36
+#, fuzzy
+msgid "Enter a valid Norwegian social security number."
+msgstr "Παρακαλούμε εισάγετε έναν έγκυρο δεκαδικό αριθμό."
+
+#: contrib/localflavor/it/forms.py:14 contrib/localflavor/fr/forms.py:17
+#: contrib/localflavor/fi/forms.py:14 contrib/localflavor/de/forms.py:16
+#, fuzzy
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Εισάγετε μία έγκυρη ώρα στη μορφή ΩΩ-ΛΛ."
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+#, fuzzy
+msgid "Iwate"
+msgstr "Ημ/νία:"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+#, fuzzy
+msgid "Tokyo"
+msgstr "Σήμερα"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:18
+#, fuzzy
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Εισάγετε μία έγκυρη ώρα στη μορφή ΩΩ-ΛΛ."
+
+#: contrib/localflavor/br/forms.py:30
+#, fuzzy
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Τηλέφωνο μέσα είναι."
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:46
+#, fuzzy
+msgid "Enter a valid Finnish social security number."
+msgstr "Εισάγετε ένα έγκυρο όνομα αρχείου."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:63
+#, fuzzy
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format"
+msgstr "Γερμανικά"
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+#, fuzzy
+msgid "Berlin"
+msgstr "Βραζιλιάνικα"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+#, fuzzy
+msgid "Hamburg"
+msgstr "Αύγ"
+
+#: contrib/localflavor/de/de_states.py:11
+#, fuzzy
+msgid "Hessen"
+msgstr "μήνυμα"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/usa/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/usa/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "κλειδί συνεδρίας"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "δεδομένα συνεδρίας"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "ημερομηνία λήξης"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "συνεδρία"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "συνεδρίες"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Τα δύο πεδία συνθηματικών δεν ταιριάζουν."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Ένας χρήστης με αυτό το όνομα χρήστη υπάρχει ήδη."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Ο πλοηγητής σας δεν φαίνεται να έχει ενεργοποιημένα τα αρχεία cookie. Τα "
+"αρχεία cookie απαιτούνται για να συνδεθείτε."
+
+#: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Παρακαλούμε εισάγετε ένα σωστό όνομα χρήστη και συνθηματικό. Να σημειωθεί "
+"ότι και τα δύο πεδία κάνουν διάκριση μεταξύ πεζών και κεφαλαίων."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Αυτός ο λογαριασμός είναι ανενεργός."
+
+#: contrib/auth/forms.py:85
+#, fuzzy
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr "χρήστης?"
+
+#: contrib/auth/forms.py:117
+#, fuzzy
+msgid "The two 'new password' fields didn't match."
+msgstr "συνθηματικό."
+
+#: contrib/auth/forms.py:124
+#, fuzzy
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "συνθηματικό."
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "Έγινε αποσύνδεση"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "όνομα"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "κωδικό όνομα"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "δικαίωμα"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "διακαιώματα"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "ομάδα"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "ομάδες"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "όνομα χρήστη"
+
+#: contrib/auth/models.py:90
+#, fuzzy
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "Απαραίτητο."
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "όνομα"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "επώνυμο"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "ηλεκτρονική διεύθυνση"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "συνθηματικό"
+
+#: contrib/auth/models.py:94
+#, fuzzy
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr "<a href=\"password/\"> συνθηματικό</a>."
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "Κατάσταση προσωπικού"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "Ορίζει αν ο χρήστης μπορεί να συνδεθεί στο χώρο διαχείρισης."
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "ενεργό"
+
+#: contrib/auth/models.py:96
+#, fuzzy
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "Ορίζει αν ο χρήστης μπορεί να συνδεθεί στο χώρο διαχείρισης."
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "κατάσταση υπερχρήστη"
+
+#: contrib/auth/models.py:97
+#, fuzzy
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "χρήστης διακαιώματα."
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "τελευταία σύνδεση"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "ημερομηνία σύνδεσης"
+
+#: contrib/auth/models.py:101
+#, fuzzy
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr "Μέσα διακαιώματα χειρωνακτικά χρήστης get όλα διακαιώματα ομάδα είναι μέσα."
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "δικαιώματα χρήστη"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "χρήστης"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "χρήστες"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "Προσωπικές πληροφορίες"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "Δικαιώματα"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "Σημαντικές ημερομηνίες"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "Ομάδες"
+
+#: contrib/auth/models.py:258
+msgid "message"
+msgstr "μήνυμα"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr "η"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "st"
+msgstr "η"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "nd"
+msgstr "η"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr "η"
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f εκατομμύριο"
+msgstr[1] "%(value).1f εκατομμύρια"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f δισεκατομμύριο"
+msgstr[1] "%(value).1f δισεκατομμύρια"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f τρισεκατομμύριο"
+msgstr[1] "%(value).1f τρισεκατομμύρια"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "ένα"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "δύο"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "τρία"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "τέσσερα"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "πέντε"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "έξι"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "εφτά"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "οκτώ"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "εννιά"
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "όνομα python model class"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "τύπος περιεχομένου"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "τύποι περιεχομένου"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "ανακατεύθυνση από"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Αυτό πρέπει να είναι ένα απόλυτο μονοπάτι, με εξαίρεση το όνομα χώρου. "
+"Παράδειγμα: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "ανακατεύθυνση προς"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Αυτό πρέπει να είναι ένα απόλυτο μονοπάτι (όπως παραπάνω), ή ένα πλήρες URL "
+"που αρχίζει με 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "ανακατεύθυνση"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "ανακατευθύνσεις"
+
+#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:315
+msgid "URL"
+msgstr "URL"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Παράδειγμα: '/about/contact/'. Βεβαιωθείτε ότι περιέχει καθέτους στην αρχή "
+"και το τέλος."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "τίτλος"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "περιεχόμενο"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "ενεργοποίηση σχολίων"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "όνομα προτύπου"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Παράδειγμα: 'flatpages/contact_page.html'. Αν δεν εισαχθεί, το σύστημα θα "
+"χρησιμοποιήσει το 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "απαιτείται εγγραφή"
+
+#: contrib/flatpages/models.py:14
+#, fuzzy
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "είναι μέσα χρήστες σελίδα."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "απλή σελίδα"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "απλές σελίδες"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "ID αντικειμένου"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "Επικεφαλίδα"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "σχόλιο"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "βαθμολογία #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "βαθμολογία #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "βαθμολογία #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "βαθμολογία #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "βαθμολογία #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "βαθμολογία #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "βαθμολογία #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "βαθμολογία #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "είναι έγκυρη βαθμολογία"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "ημερομηνία/ώρα υποβολής"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "είναι δημόσιο"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "διεύθυνση IP"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "είναι διαγραμμένο"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Επιλέξτε αυτό το κουτί ελέγχου εάν το σχόλιο είναι ανάρμοστο. Ένα μήνυμα "
+"\"Αυτό το σχόλιο διαγράφηκε\" θα εμφανιστεί στη θέση του."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "σχόλια"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Αντικείμενο περιεχομένου"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Σχόλιο από %(user)s στις %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "όνομα ατόμου"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "διεύθυνση ip"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "εγκεκριμένο από το προσωπικό"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "ελεύθερο σχόλιο"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "ελεύθερα σχόλια"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "βαθμολογία"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "ημερομηνία βαθμολόγησης"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "σκορ κάρμα"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "σκορ κάρμα"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d βαθμολογία από %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Αυτό το σχόλιο σημειώθηκε από %(user)s\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "ημερομηνία σημείωσης"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "σημείωση χρήστη"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "σημειώσεις χρήστη"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Σημείωση από %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "ημερομηνία διαγραφής"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "διαγραφή συντονιστή"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "διαγραφές συντονιστή"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Διαγραφή συντονιστή από %r"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Όνομα χρήστη:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Log out"
+msgstr "Αποσύνδεση"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Συνθηματικό:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Ξεχάσατε το συνθηματικό σας;"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Βαθμολογίες"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Απαραίτητο"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Προαιρετικό"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Στείλτε μια φωτογραφία"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Σχόλιο:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Προεπισκόπηση σχολίου"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Το όνομα σας:"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Ανώνυμοι χρήστες δεν μπορούν να ψηφίσουν"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "Μη έγκυρο ID σχολίου"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Δεν επιτρέπεται ψήφος για τον εαυτό σας"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr ""
+"Αυτή η βαθμολογία απαιτείται επειδή έχετε εισάγει τουλάχιστον μία ακόμη "
+"βαθμολογία."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Αυτό το σχόλιο έχει αναρτηθεί από ένα χρήστη με λιγότερα από %(count)s "
+"σχόλιο:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Αυτό το σχόλιο έχει αναρτηθεί από ένα χρήστη με λιγότερα από %(count)s "
+"σχόλια:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Αυτό το σχόλιο αναρτήθηκε από έναν sketchy χρήστη:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Επιτρέπονται μόνο POST υποβολές"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Ένα ή περισσότερα από τα απαιτούμενα πεδία δεν έχουν υποβληθεί"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Κάποιος έχει πειράξει τη φόρμα σχολιασμού (παραβίαση ασφάλειας)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+#, fuzzy
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr "σχόλιο αντικείμενο ID"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+#, fuzzy
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "σχόλιο t προεπισκόπηση ή"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "όνομα χώρου"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "εμφανιζόμενο όνομα"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "ιστότοπος"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "ιστότοποι"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Από %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Όλα"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Οποιαδήποτε ημερομηνία"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Σήμερα"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Τελευταίες 7 ημέρες"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Αυτόν το μήνα"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Αυτόν το χρόνο"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "ώρα ενέργειας"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "id αντικειμένου"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "repr αντικειμένου"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "σημαία ενέργειας"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "αλλαγή μηνύματος"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "εγγραφή καταγραφής"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "εγγραφές καταγραφής"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "Όλες οι ημερομηνίες"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Αρχική"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Documentation"
+msgstr "Τεκμηρίωση"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Σελιδοδείκτες"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Change password"
+msgstr "Αλλαγή συνθηματικού"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Σελιδοδείκτες τεκμηρίωσης"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+#, fuzzy
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\"> δεσμός ή δεξιά δεσμός και αύξηση Τώρα υποφαινόμενο από "
+"κάθε σελίδα μέσα site Σημείωση από υποφαινόμενο site από a σύστημα "
+"υποφαινόμενο t είναι</p> n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Τεκμηρίωση για αυτήν τη σελίδα"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+#, fuzzy
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "Άλματα υποφαινόμενο από κάθε σελίδα τεκμηρίωση για σελίδα."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Εμφάνιση ID αντικειμένου"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+#, fuzzy
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "Περιεχόμενο τύπος και μοναδικό ID για σελίδες a single αντικείμενο."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Επεξεργασία αυτού του αντικειμένου (τρέχον παράθυρο)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+#, fuzzy
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Άλματα σελίδα για σελίδες a single αντικείμενο."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Επεξεργασία αυτού του αντικειμένου (νέο παράθυρο)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+#, fuzzy
+msgid "As above, but opens the admin page in a new window."
+msgstr "σελίδα μέσα a νέο παράθυρο."
+
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+msgid "Delete"
+msgstr "Διαγραφή"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Αποθήκευση ως νέο"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Αποθήκευση και προσθήκη καινούριου"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Αποθήκευση και συνέχεια επεξεργασίας"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Αποθήκευση"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Σφάλμα εξυπηρετητή"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Σφάλμα εξυπηρετητή (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Σφάλμα εξυπηρετητή <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Υπήρξε ένα σφάλμα. Έχει αναφερθεί στους διαχειριστές του ιστότοπου μέσω ηλ. "
+"ταχυδρομείου και θα πρέπει να επιδιορθωθεί σύντομα. Ευχαριστούμε για την "
+"υπομονή σας."
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Ανά %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Φίλτρο"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+#, fuzzy
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr "χρήστης."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Μετάβαση"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 αποτέλεσμα"
+msgstr[1] "%(counter)s αποτελέσματα"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s συνολικά"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "Ιστορικό"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Ημερομηνία/ώρα"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Χρήστης"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Ενέργεια"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:36
+#, fuzzy
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr "αντικείμενο t a t site."
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, fuzzy, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr "Διαγραφή αντικείμενο μέσα λογαριασμός t δικαίωμα διαγραφή από:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, fuzzy, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr "υποφαινόμενο υποφαινόμενο διαγραφή αντικείμενο Όλα από διαγράφηκε:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Ναι, είμαι βέβαιος"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Εμφάνιση όλων"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Προσθήκη %(name)s"
+
+#: contrib/admin/templates/admin/change_form.html:15
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Προσθήκη"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Προβολή στην ιστοσελίδα"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Παρακαλούμε διορθώστε το παρακάτω λάθος."
+msgstr[1] "Παρακαλούμε διορθώστε τα παρακάτω λάθη."
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Ταξινόμηση"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Ταξινόμηση:"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Καλωσήρθατε,"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Η σελίδα δε βρέθηκε"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Λυπόμαστε, αλλά η σελίδα που ζητήθηκε δε μπόρεσε να βρεθεί."
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "Σύνδεση"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Διαθέσιμα μοντέλα στην εφαρμογή %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Επεξεργασία"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Δεν έχετε δικαίωμα να επεξεργαστείτε τίποτα."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Πρόσφατες ενέργειες"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Οι ενέργειες μου"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Κανένα διαθέσιμο"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Διαχειριστής ιστότοπου Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Διαχείριση Django"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+#, fuzzy
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "όνομα χρήστη συνθηματικό χρήστης."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Όνομα χρήστη"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+msgid "Password"
+msgstr "Συνθηματικό"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Password (again)"
+msgstr "Συνθηματικό (ξανά)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Εισάγετε το ίδιο συνθηματικό όπως παραπάνω, για λόγους επιβεβαίωσης."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+#, fuzzy
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "συνθηματικό χρήστης<strong> όνομα χρήστη</strong>."
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Τρέχουσα:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Αλλαγή:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Ημ/νία:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Ώρα:"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Ευχαριστούμε που διαθέσατε κάποιο ποιοτικό χρόνο στον ιστότοπο σήμερα."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Σύνδεση ξανά"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+#, fuzzy
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "συνθηματικό"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, fuzzy, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "για χρήστης λογαριασμός σε"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, fuzzy, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "νέο συνθηματικό είναι"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+#, fuzzy
+msgid "Feel free to change this password by going to this page:"
+msgstr "συνθηματικό από σελίδα:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+#, fuzzy
+msgid "Your username, in case you've forgotten:"
+msgstr "όνομα χρήστη μέσα υποφαινόμενο:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, fuzzy
+msgid "Thanks for using our site!"
+msgstr "Ευχαριστώ για site!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+#, fuzzy
+msgid "The %(site_name)s team"
+msgstr "ιστότοπος όνομα"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Επαναφορά συνθηματικού"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Επιτυχής επαναφορά συνθηματικού"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Ένα νέο συνθηματικό έχει αποσταλεί στην ηλεκτρονική διεύθυνση που έχετε "
+"επιλέξει. Θα πρέπει να το παραλάβετε πολύ σύντομα."
+
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:4
+msgid "Password change"
+msgstr "Αλλαγή συνθηματικού"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Παρακαλούμε εισάγετε το παλιό σας συνθηματικό, για λόγους ασφάλειας, και "
+"κατόπιν εισάγετε το νέο σας συνθηματικό δύο φορές ούτως ώστε να "
+"πιστοποιήσουμε ότι το πληκτρολογήσατε σωστά."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Παλιό συνθηματικό:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Νέο συνθηματικό:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Επιβεβαίωση συνθηματικού:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Αλλαγή του συνθηματικού μου"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Επιτυχής αλλαγή συνθηματικού"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Το συνθηματικό σας έχει αλλαχτεί."
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Έχετε ξεχάσει το συνθηματικό σας; Εισάγετε παρακάτω την ηλεκτρονική σας "
+"διεύθυνση, και θα επαναφέρουμε το συνθηματικό σας, αποστέλλοντας το "
+"καινούριο στην ηλ. σας διεύθυνση."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Ηλεκτρονική διεύθυνση:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Επαναφορά του συνθηματικού μου"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Διαχείριση του ιστότοπου"
+
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:19
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Το %(name)s \"%(obj)s\" αποθηκεύτηκε με επιτυχία."
+
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:24
+msgid "You may edit it again below."
+msgstr "Μπορείτε να το επεξεργαστείτε ξανά παρακάτω."
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Μπορείτε να προσθέσετε ακόμα ένα %s παρακάτω."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "Προσθήκη %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "Το %s προστέθηκε."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "Έγινε επεξεργασία του %s."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "Το %s διεγράφη."
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Κανένα πεδίο δεν άλλαξε."
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Το %(name)s \"%(obj)s\" αλλάχτηκε με επιτυχία."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"Το %(name)s \"%(obj)s\" αποθηκεύτηκε με επιτυχία. Μπορείτε να το "
+"επεξεργαστείτε πάλι παρακάτω."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "Αλλαγή του %s"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Ένα ή περισσότερα %(fieldname)s στο %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Ένα ή περισσότερα %(fieldname)s στο %(name)s:"
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Το %(name)s \"%(obj)s\" διαγράφηκε με επιτυχία."
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "Είστε σίγουροι;"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "Ιστορικό αλλαγών: %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "Επιλέξτε %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s to change"
+msgstr "Επιλέξτε %s προς αλλαγή"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "Σφάλμα βάσης δεδομένων"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Παρακαλούμε συνδεθείτε εκ νέου, γιατί η συνεδρία σας έχει λήξει. Μην "
+"ανησυχείτε: Η υποβολή σας έχει αποθηκευτεί."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Από ότι φαίνεται, ο πλοηγητής σας δεν έχει ρυθμιστεί να δέχεται cookies. "
+"Παρακαλούμε ενεργοποιείστε τα cookies, φορτώστε ξανά αυτήν τη σελίδα και "
+"δοκιμάστε ξανά."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Τα ονόματα χρηστών δεν επιτρέπεται να περιέχουν το χαρακτήρα '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Η ηλεκτρονική σας διεύθυνση δεν είναι το όνομα χρήστη σας. Δοκιμάστε '%s' "
+"στη θέση αυτού."
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "ετικέτα:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "φίλτρο:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "προβολή:"
+
+#: contrib/admin/views/doc.py:164
+#, fuzzy, python-format
+msgid "App %r not found"
+msgstr "Η σελίδα δε βρέθηκε"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+#, fuzzy
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "όνομα"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr ""
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "μοντέλο:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+#, fuzzy
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "όνομα"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "όλα %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr ""
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr ""
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "Ακέραιος"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (Είτε Αληθές ή Ψευδές)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Συμβολοσειρά (μέχρι %(maxlength)s χαρακτήρες)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Ακέραιοι χωρισμένοι με κόμματα"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Ημερομηνία (χωρίς την ώρα)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Ημερομηνία (με την ώρα)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "Ηλεκτρονική διεύθυνση"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Τοποθεσία αρχείου"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "Δεκαδικός αριθμός"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (Αληθές, Ψευδές, ή τίποτα)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "Σχέση με το γονικό μοντέλο"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Αριθμός τηλεφώνου"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Κείμενο"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Ώρα"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "Πολιτεία ΗΠΑ. (δύο κεφαλαία γράμματα)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "Κείμενο XML"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "Το %s δε φαίνεται να είναι ένα αντικείμενο urlpattern"
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "Προσθήκη χρήστη"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "Το συνθηματικό αλλάχτηκε με επιτυχία."
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "Αλλαγή συνθηματικού: %s"
+
+#: newforms/fields.py:103 newforms/fields.py:256
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "Βεβαιωθείτε ότι το κείμενο σας έχει μέγεθος το πολύ %d χαρακτήρες."
+
+#: newforms/fields.py:105 newforms/fields.py:258
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "Βεβαιωθείτε ότι το κείμενο σας έχει μέγεθος τουλάχιστον %d χαρακτήρες."
+
+#: newforms/fields.py:128 core/validators.py:120
+msgid "Enter a whole number."
+msgstr "Εισάγετε έναν ακέραιο αριθμό."
+
+#: newforms/fields.py:130
+#, fuzzy, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "τιμή a από."
+
+#: newforms/fields.py:132
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:165
+msgid "Enter a valid date."
+msgstr "Εισάγετε μια έγκυρη ημερομηνία."
+
+#: newforms/fields.py:192
+msgid "Enter a valid time."
+msgstr "Εισάγετε μια έγκυρη ώρα."
+
+#: newforms/fields.py:228
+msgid "Enter a valid date/time."
+msgstr "Εισάγετε μια έγκυρη ημερομηνία/ώρα."
+
+#: newforms/fields.py:242
+msgid "Enter a valid value."
+msgstr "Εισάγετε μια έγκυρη τιμή."
+
+#: newforms/fields.py:271 core/validators.py:162
+msgid "Enter a valid e-mail address."
+msgstr "Εισάγετε μια έγκυρη διεύθυνση ηλ. ταχυδρομείου."
+
+#: newforms/fields.py:289 newforms/fields.py:311
+msgid "Enter a valid URL."
+msgstr "Εισάγετε ένα έγκυρο URL."
+
+#: newforms/fields.py:313
+#, fuzzy
+msgid "This URL appears to be a broken link."
+msgstr "Το URL %s είναι χαλασμένος σύνδεσμος."
+
+#: newforms/fields.py:362 newforms/models.py:165
+#, fuzzy
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Επιλέξτε μια έγκυρη επιλογή; Το '%(data)s' δεν είναι στα %(choices)s."
+
+#: newforms/fields.py:380 newforms/fields.py:456 newforms/models.py:182
+#, fuzzy
+msgid "Enter a list of values."
+msgstr "Εισάγετε ένα έγκυρο όνομα αρχείου."
+
+#: newforms/fields.py:389 newforms/models.py:188
+#, fuzzy, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Επιλέξτε μια έγκυρη επιλογή; Το '%(data)s' δεν είναι στα %(choices)s."
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "ναι,όχι,ίσως"
+
+#: views/generic/create_update.py:43
+#, fuzzy, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "Το %(name)s \"%(obj)s\" αλλάχτηκε με επιτυχία."
+
+#: views/generic/create_update.py:117
+#, fuzzy, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Το %(name)s \"%(obj)s\" διαγράφηκε με επιτυχία."
+
+#: views/generic/create_update.py:184
+#, fuzzy, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "Το %(name)s \"%(obj)s\" διαγράφηκε με επιτυχία."
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Αυτή η τιμή πρέπει να περιέχει μόνο γράμματα, αριθμούς και υπογεγραμμένες."
+
+#: core/validators.py:68
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Αυτή η τιμή πρέπει να περιέχει μόνο γράμματα, αριθμούς, υπογεγραμμένες, "
+"παύλες ή καθέτους."
+
+#: core/validators.py:72
+#, fuzzy
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Αυτή η τιμή πρέπει να περιέχει μόνο γράμματα, αριθμούς, υπογεγραμμένες, "
+"παύλες ή καθέτους."
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "Τα κεφαλαία γράμματα δεν επιτρέπονται εδώ."
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "Τα πεζά γράμματα δεν επιτρέπονται εδώ."
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "Εισάγετε μόνο ψηφία χωρισμένα με κόμματα."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Εισάγετε έγκυρες ηλ. διευθύνσεις χωρισμένες με κόμματα."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "Παρακαλούμε εισάγετε μια έγκυρη διεύθυνση IP."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "Δεν επιτρέπονται κενές τιμές εδώ."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Δεν επιτρέπονται μη-αριθμητικοί χαρακτήρες εδώ."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "Αυτή η τιμή δεν μπορεί να αποτελείται μόνο από ψηφία."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "Μόνο αλφαβητικοί χαρακτήρες επιτρέπονται εδώ."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr ""
+
+#: core/validators.py:143
+#, fuzzy, python-format
+msgid "Invalid date: %s"
+msgstr "Μη έγκυρο URL: %s"
+
+#: core/validators.py:153
+msgid "Enter a valid time in HH:MM format."
+msgstr "Εισάγετε μία έγκυρη ώρα στη μορφή ΩΩ-ΛΛ."
+
+#: core/validators.py:178
+#, fuzzy
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "a εικόνα αρχείο υποφαινόμενο όχι εικόνα ή a εικόνα."
+
+#: core/validators.py:185
+#, fuzzy, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL όχι σημείο a εικόνα."
+
+#: core/validators.py:189
+#, fuzzy, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Τηλέφωνο μέσα είναι."
+
+#: core/validators.py:197
+#, fuzzy, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL όχι σημείο a."
+
+#: core/validators.py:201
+msgid "A valid URL is required."
+msgstr "Απαιτείται ένα έγκυρο URL."
+
+#: core/validators.py:215
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Απαιτείται έγκυρη HTML. Συγκεκριμένα σφάλματα είναι τα εξής:\n"
+"%s"
+
+#: core/validators.py:222
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Κακώς δομημένη XML: %s"
+
+#: core/validators.py:239
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Μη έγκυρο URL: %s"
+
+#: core/validators.py:244 core/validators.py:246
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Το URL %s είναι χαλασμένος σύνδεσμος."
+
+#: core/validators.py:252
+#, fuzzy
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "a U συντομογραφία."
+
+#: core/validators.py:266
+#, fuzzy, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Παρακολούθηση είναι όχι."
+msgstr[1] "Παρακολούθηση είναι όχι."
+
+#: core/validators.py:273
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Αυτό το πεδίο πρέπει να ταιριάζει με το πεδίο '%s'."
+
+#: core/validators.py:292
+#, fuzzy
+msgid "Please enter something for at least one field."
+msgstr "για σε ένα πεδίο."
+
+#: core/validators.py:301 core/validators.py:312
+msgid "Please enter both fields or leave them both empty."
+msgstr "Παρακαλούμε συμπληρώστε και τα δύο πεδία ή αφήστε τα και τα δύο άδεια."
+
+#: core/validators.py:320
+#, fuzzy, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "πεδίο πεδίο είναι τιμή"
+
+#: core/validators.py:333
+#, fuzzy, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "πεδίο πεδίο είναι όχι τιμή"
+
+#: core/validators.py:352
+msgid "Duplicate values are not allowed."
+msgstr "Δεν επιτρέπονται διπλές τιμές."
+
+#: core/validators.py:367
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Αυτή η τιμή πρέπει να είναι μεταξύ %(lower)s και %(upper)s."
+
+#: core/validators.py:369
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Αυτή η τιμή πρέπει να είναι τουλάχιστον %s."
+
+#: core/validators.py:371
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Αυτή η τιμή πρέπει να είναι το πολύ %s."
+
+#: core/validators.py:407
+#, fuzzy, python-format
+msgid "This value must be a power of %s."
+msgstr "τιμή a από."
+
+#: core/validators.py:418
+msgid "Please enter a valid decimal number."
+msgstr "Παρακαλούμε εισάγετε έναν έγκυρο δεκαδικό αριθμό."
+
+#: core/validators.py:422
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+"Παρακαλούμε εισάγετε έναν έγκυρο δεκαδικό αριθμό με το πολύ %s ψηφίο "
+"συνολικά."
+msgstr[1] ""
+"Παρακαλούμε εισάγετε έναν έγκυρο δεκαδικό αριθμό με το πολύ %s ψηφία "
+"συνολικά."
+
+#: core/validators.py:425
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Παρακαλούμε εισάγετε έναν έγκυρο δεκαδικό αριθμό με ακέραιο μέρος το πολύ %s ψηφίο "
+"συνολικά."
+msgstr[1] ""
+"Παρακαλούμε εισάγετε έναν έγκυρο δεκαδικό αριθμό με ακέραιο μέρος το πολύ %s ψηφία "
+"συνολικά."
+
+#: core/validators.py:428
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Παρακαλούμε εισάγετε έναν έγκυρο δεκαδικό αριθμό με το πολύ %s δεκαδική θέση."
+msgstr[1] ""
+"Παρακαλούμε εισάγετε έναν έγκυρο δεκαδικό αριθμό με το πολύ %s δεκαδικές "
+"θέσεις."
+
+#: core/validators.py:438
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Βεβαιωθείτε ότι το αρχείο που στέλνετε έχει μέγεθος τουλάχιστον %s ψηφία."
+
+#: core/validators.py:439
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Βεβαιωθείτε ότι το αρχείο που στέλνετε έχει μέγεθος το πολύ μέχρι %s ψηφία."
+
+#: core/validators.py:456
+msgid "The format for this field is wrong."
+msgstr "Η μορφή αυτού του πεδίου είναι λανθασμένη."
+
+#: core/validators.py:471
+msgid "This field is invalid."
+msgstr "Αυτό το πεδίο είναι μη έγκυρο."
+
+#: core/validators.py:507
+#, fuzzy, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "όχι Οτιδήποτε από."
+
+#: core/validators.py:510
+#, fuzzy, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL url Περιεχόμενο Τύπος."
+
+#: core/validators.py:543
+#, fuzzy, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr "close από Γραμμή με έναρξη"
+
+#: core/validators.py:547
+#, fuzzy, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr "κείμενο ενεργό είναι όχι μέσα Γραμμή με έναρξη"
+
+#: core/validators.py:552
+#, fuzzy, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr "ενεργό είναι χαρακτηριστικό Γραμμή με έναρξη"
+
+#: core/validators.py:557
+#, fuzzy, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr "ενεργό είναι Γραμμή με έναρξη"
+
+#: core/validators.py:561
+#, fuzzy, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr "ενεργό είναι αγνοείται ένα ή περισσότερα Γραμμή με έναρξη"
+
+#: core/validators.py:566
+#, fuzzy, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr "χαρακτηριστικό ενεργό τιμή Γραμμή με έναρξη"
+
diff --git a/webapp/django/conf/locale/el/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/el/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..b689bf8
--- /dev/null
+++ b/webapp/django/conf/locale/el/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/el/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/el/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..28c06e3
--- /dev/null
+++ b/webapp/django/conf/locale/el/LC_MESSAGES/djangojs.po
@@ -0,0 +1,108 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2006 and beyond.
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Orestis Markou <orestis@orestis.gr>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Διαθέσιμο %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Επιλογή Όλων"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Προσθήκη"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Αφαίρεση"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Επιλεχθέντα %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Επιλέξτε και κάντε κλικ."
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Καθαρισμός όλων"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "Ιανουάριος Φεβρουάριος Μάρτιος Απρίλιος Μάιος Ιούνιος Ιούλιος Αύγουστος Σεπτέμβριος Οκτώβριος Νοέμβριος "
+"Δεκέμβριος"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Κυριακή Δευτέρα Τρίτη Τετάρτη Πέμπτη Παρασκευή Σάββατο"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "Κ Δ Τ Τ Π Π Σ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Τώρα"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Ρολόι"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Διαλέξτε ώρα"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Μεσάνυχτα"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6 π.μ."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "Μεσημέρι"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "Άκυρο"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Σήμερα"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Ημερολόγιο"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Χθες"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Αύριο"
diff --git a/webapp/django/conf/locale/en/LC_MESSAGES/django.mo b/webapp/django/conf/locale/en/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..1367370
--- /dev/null
+++ b/webapp/django/conf/locale/en/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/en/LC_MESSAGES/django.po b/webapp/django/conf/locale/en/LC_MESSAGES/django.po
new file mode 100644
index 0000000..c080c61
--- /dev/null
+++ b/webapp/django/conf/locale/en/LC_MESSAGES/django.po
@@ -0,0 +1,3768 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-11-29 10:57-0600\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr ""
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr ""
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr ""
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr ""
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr ""
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr ""
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr ""
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr ""
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr ""
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr ""
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr ""
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr ""
+
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr ""
+
+#: conf/global_settings.py:52
+msgid "Finnish"
+msgstr ""
+
+#: conf/global_settings.py:53
+msgid "French"
+msgstr ""
+
+#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr ""
+
+#: conf/global_settings.py:55
+msgid "Galician"
+msgstr ""
+
+#: conf/global_settings.py:56
+msgid "Hungarian"
+msgstr ""
+
+#: conf/global_settings.py:57
+msgid "Hebrew"
+msgstr ""
+
+#: conf/global_settings.py:58
+msgid "Croatian"
+msgstr ""
+
+#: conf/global_settings.py:59
+msgid "Icelandic"
+msgstr ""
+
+#: conf/global_settings.py:60
+msgid "Italian"
+msgstr ""
+
+#: conf/global_settings.py:61
+msgid "Japanese"
+msgstr ""
+
+#: conf/global_settings.py:62
+msgid "Korean"
+msgstr ""
+
+#: conf/global_settings.py:63
+msgid "Khmer"
+msgstr ""
+
+#: conf/global_settings.py:64
+msgid "Kannada"
+msgstr ""
+
+#: conf/global_settings.py:65
+msgid "Latvian"
+msgstr ""
+
+#: conf/global_settings.py:66
+msgid "Macedonian"
+msgstr ""
+
+#: conf/global_settings.py:67
+msgid "Dutch"
+msgstr ""
+
+#: conf/global_settings.py:68
+msgid "Norwegian"
+msgstr ""
+
+#: conf/global_settings.py:69
+msgid "Polish"
+msgstr ""
+
+#: conf/global_settings.py:70
+msgid "Portugese"
+msgstr ""
+
+#: conf/global_settings.py:71
+msgid "Brazilian"
+msgstr ""
+
+#: conf/global_settings.py:72
+msgid "Romanian"
+msgstr ""
+
+#: conf/global_settings.py:73
+msgid "Russian"
+msgstr ""
+
+#: conf/global_settings.py:74
+msgid "Slovak"
+msgstr ""
+
+#: conf/global_settings.py:75
+msgid "Slovenian"
+msgstr ""
+
+#: conf/global_settings.py:76
+msgid "Serbian"
+msgstr ""
+
+#: conf/global_settings.py:77
+msgid "Swedish"
+msgstr ""
+
+#: conf/global_settings.py:78
+msgid "Tamil"
+msgstr ""
+
+#: conf/global_settings.py:79
+msgid "Telugu"
+msgstr ""
+
+#: conf/global_settings.py:80
+msgid "Turkish"
+msgstr ""
+
+#: conf/global_settings.py:81
+msgid "Ukrainian"
+msgstr ""
+
+#: conf/global_settings.py:82
+msgid "Simplified Chinese"
+msgstr ""
+
+#: conf/global_settings.py:83
+msgid "Traditional Chinese"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr ""
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr ""
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr ""
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr ""
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr ""
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr ""
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr ""
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr ""
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr ""
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr ""
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr ""
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr ""
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr ""
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr ""
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr ""
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr ""
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr ""
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr ""
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr ""
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr ""
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr ""
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr ""
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr ""
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr ""
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr ""
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr ""
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:25
+msgid "Log in"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr ""
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr ""
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr ""
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr ""
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr ""
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr ""
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr ""
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr ""
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr ""
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr ""
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr ""
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr ""
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr ""
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr ""
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr ""
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr ""
+
+#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:63
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:70
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:84
+msgid "Usernames cannot contain the '@' character."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:86
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr ""
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr ""
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr ""
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr ""
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr ""
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr ""
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr ""
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr ""
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr ""
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr ""
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr ""
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr ""
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr ""
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:85
+msgid "IP address"
+msgstr ""
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr ""
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr ""
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr ""
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr ""
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr ""
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr ""
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr ""
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr ""
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr ""
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr ""
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr ""
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr ""
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr ""
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr ""
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr ""
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr ""
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr ""
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr ""
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr ""
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr ""
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr ""
+
+#: contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr ""
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr ""
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr ""
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr ""
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr ""
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr ""
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr ""
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr ""
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr ""
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr ""
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr ""
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr ""
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr ""
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr ""
+
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr ""
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr ""
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr ""
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr ""
+
+#: contrib/auth/models.py:135
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr ""
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr ""
+
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr ""
+
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr ""
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr ""
+
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr ""
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr ""
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr ""
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr ""
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr ""
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr ""
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr ""
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr ""
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr ""
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:169
+msgid "object ID"
+msgstr ""
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr ""
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:170
+msgid "comment"
+msgstr ""
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr ""
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr ""
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr ""
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr ""
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr ""
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr ""
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr ""
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr ""
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr ""
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:172
+msgid "date/time submitted"
+msgstr ""
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:173
+msgid "is public"
+msgstr ""
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr ""
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr ""
+
+#: contrib/comments/models.py:134 contrib/comments/models.py:213
+msgid "Content object"
+msgstr ""
+
+#: contrib/comments/models.py:162
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+
+#: contrib/comments/models.py:171
+msgid "person's name"
+msgstr ""
+
+#: contrib/comments/models.py:174
+msgid "ip address"
+msgstr ""
+
+#: contrib/comments/models.py:176
+msgid "approved by staff"
+msgstr ""
+
+#: contrib/comments/models.py:179
+msgid "free comment"
+msgstr ""
+
+#: contrib/comments/models.py:180
+msgid "free comments"
+msgstr ""
+
+#: contrib/comments/models.py:239
+msgid "score"
+msgstr ""
+
+#: contrib/comments/models.py:240
+msgid "score date"
+msgstr ""
+
+#: contrib/comments/models.py:243
+msgid "karma score"
+msgstr ""
+
+#: contrib/comments/models.py:244
+msgid "karma scores"
+msgstr ""
+
+#: contrib/comments/models.py:248
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr ""
+
+#: contrib/comments/models.py:264
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/models.py:271
+msgid "flag date"
+msgstr ""
+
+#: contrib/comments/models.py:274
+msgid "user flag"
+msgstr ""
+
+#: contrib/comments/models.py:275
+msgid "user flags"
+msgstr ""
+
+#: contrib/comments/models.py:279
+#, python-format
+msgid "Flag by %r"
+msgstr ""
+
+#: contrib/comments/models.py:284
+msgid "deletion date"
+msgstr ""
+
+#: contrib/comments/models.py:286
+msgid "moderator deletion"
+msgstr ""
+
+#: contrib/comments/models.py:287
+msgid "moderator deletions"
+msgstr ""
+
+#: contrib/comments/models.py:291
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr ""
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr ""
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr ""
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr ""
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr ""
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr ""
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr ""
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr ""
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr ""
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr ""
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr ""
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr ""
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr ""
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr ""
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr ""
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr ""
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:52
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:55
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:58
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "one"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "two"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "three"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "four"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "five"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "six"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "seven"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "eight"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "nine"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "today"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:96
+msgid "tomorrow"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:98
+msgid "yesterday"
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:30 contrib/localflavor/ar/forms.py:38
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:61 contrib/localflavor/br/forms.py:103
+#: contrib/localflavor/pe/forms.py:34 contrib/localflavor/pe/forms.py:57
+msgid "This field requires only numbers."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:64
+msgid "This field requires 7 or 8 digits."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:75
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:88
+msgid "Invalid CUIT."
+msgstr ""
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:23
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:35
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:68
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:105
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:115
+msgid "Invalid CPF number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:137
+msgid "This field requires at least 14 digits"
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:147
+msgid "Invalid CNPJ number."
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:19
+msgid "Enter a postal code in the format XXX XXX."
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:81
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14
+msgid "Enter a zip code in the format XXXX."
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:90
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:32
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:37
+msgid "Enter valid a Chilean RUT"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:16 contrib/localflavor/fi/forms.py:14
+#: contrib/localflavor/fr/forms.py:17
+msgid "Enter a zip code in the format XXXXX."
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:60
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:22
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:73 contrib/localflavor/es/forms.py:108
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:91
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:97
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:106
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:136
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:150
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:16
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:31
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:25
+msgid "Enter a valid postal code"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:53
+msgid "Enter a valid phone number"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:76
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:35
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:36
+msgid "This field requires 8 digits."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:59
+msgid "This field requires 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:41
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:47
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:78
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:107
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:148
+msgid "Enter a postal code in the format XX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:32
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr ""
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr ""
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr ""
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr ""
+
+#: contrib/sessions/models.py:80
+msgid "session key"
+msgstr ""
+
+#: contrib/sessions/models.py:81
+msgid "session data"
+msgstr ""
+
+#: contrib/sessions/models.py:82
+msgid "expire date"
+msgstr ""
+
+#: contrib/sessions/models.py:87
+msgid "session"
+msgstr ""
+
+#: contrib/sessions/models.py:88
+msgid "sessions"
+msgstr ""
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr ""
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr ""
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr ""
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr ""
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr ""
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr ""
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr ""
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr ""
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr ""
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr ""
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr ""
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr ""
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr ""
+
+#: core/validators.py:128 newforms/fields.py:157
+msgid "Enter a whole number."
+msgstr ""
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr ""
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr ""
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr ""
+
+#: core/validators.py:156 db/models/fields/__init__.py:509
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr ""
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr ""
+
+#: core/validators.py:165 db/models/fields/__init__.py:583
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr ""
+
+#: core/validators.py:170 newforms/fields.py:408
+msgid "Enter a valid e-mail address."
+msgstr ""
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:438
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+
+#: core/validators.py:193 newforms/fields.py:462
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr ""
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr ""
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr ""
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr ""
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr ""
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr ""
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr ""
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr ""
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr ""
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr ""
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr ""
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr ""
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr ""
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr ""
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr ""
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr ""
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr ""
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr ""
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:447
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr ""
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr ""
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr ""
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr ""
+
+#: core/validators.py:539
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318
+#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746
+#: newforms/fields.py:45 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr ""
+
+#: db/models/fields/__init__.py:418
+msgid "This value must be an integer."
+msgstr ""
+
+#: db/models/fields/__init__.py:454
+msgid "This value must be either True or False."
+msgstr ""
+
+#: db/models/fields/__init__.py:475
+msgid "This field cannot be null."
+msgstr ""
+
+#: db/models/fields/__init__.py:644
+msgid "This value must be a decimal number."
+msgstr ""
+
+#: db/models/fields/__init__.py:755
+msgid "Enter a valid filename."
+msgstr ""
+
+#: db/models/fields/__init__.py:904
+msgid "This value must be either None, True or False."
+msgstr ""
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr ""
+
+#: db/models/fields/related.py:660
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+
+#: db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+msgstr[1] ""
+
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr ""
+
+#: newforms/fields.py:129
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+
+#: newforms/fields.py:158 newforms/fields.py:187 newforms/fields.py:216
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:159 newforms/fields.py:188 newforms/fields.py:217
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:186 newforms/fields.py:215
+msgid "Enter a number."
+msgstr ""
+
+#: newforms/fields.py:218
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr ""
+
+#: newforms/fields.py:219
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr ""
+
+#: newforms/fields.py:220
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr ""
+
+#: newforms/fields.py:268 newforms/fields.py:724
+msgid "Enter a valid date."
+msgstr ""
+
+#: newforms/fields.py:301 newforms/fields.py:725
+msgid "Enter a valid time."
+msgstr ""
+
+#: newforms/fields.py:340
+msgid "Enter a valid date/time."
+msgstr ""
+
+#: newforms/fields.py:439
+msgid "No file was submitted."
+msgstr ""
+
+#: newforms/fields.py:440 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr ""
+
+#: newforms/fields.py:498
+msgid "Enter a valid URL."
+msgstr ""
+
+#: newforms/fields.py:499
+msgid "This URL appears to be a broken link."
+msgstr ""
+
+#: newforms/fields.py:560 newforms/models.py:155
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+
+#: newforms/fields.py:599
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+
+#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:215
+msgid "Enter a list of values."
+msgstr ""
+
+#: newforms/fields.py:753
+msgid "Enter a valid IPv4 address."
+msgstr ""
+
+#: newforms/models.py:216
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr ""
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr ""
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr ""
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr ""
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr ""
+
+#: template/defaultfilters.py:658
+msgid "yes,no,maybe"
+msgstr ""
+
+#: template/defaultfilters.py:689
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: template/defaultfilters.py:691
+#, python-format
+msgid "%.1f KB"
+msgstr ""
+
+#: template/defaultfilters.py:693
+#, python-format
+msgid "%.1f MB"
+msgstr ""
+
+#: template/defaultfilters.py:694
+#, python-format
+msgid "%.1f GB"
+msgstr ""
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr ""
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr ""
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr ""
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr ""
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr ""
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr ""
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr ""
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr ""
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr ""
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr ""
+
+#: utils/dates.py:18
+msgid "January"
+msgstr ""
+
+#: utils/dates.py:18
+msgid "February"
+msgstr ""
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr ""
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr ""
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr ""
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr ""
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "August"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "September"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "October"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "November"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "December"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "may"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr ""
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr ""
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr ""
+
+#: utils/text.py:127
+msgid "or"
+msgstr ""
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr ""
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr ""
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ""
+
+#: utils/translation/trans_real.py:399
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation/trans_real.py:400
+msgid "DATETIME_FORMAT"
+msgstr "N j, Y, P"
+
+#: utils/translation/trans_real.py:401
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:417
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:418
+msgid "MONTH_DAY_FORMAT"
+msgstr "F j"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr ""
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr ""
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr ""
diff --git a/webapp/django/conf/locale/en/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/en/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..80dd04a
--- /dev/null
+++ b/webapp/django/conf/locale/en/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/en/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/en/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..bf48501
--- /dev/null
+++ b/webapp/django/conf/locale/en/LC_MESSAGES/djangojs.po
@@ -0,0 +1,117 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-11-29 10:58-0600\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr ""
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr ""
diff --git a/webapp/django/conf/locale/es/LC_MESSAGES/django.mo b/webapp/django/conf/locale/es/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..49f4fa3
--- /dev/null
+++ b/webapp/django/conf/locale/es/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/es/LC_MESSAGES/django.po b/webapp/django/conf/locale/es/LC_MESSAGES/django.po
new file mode 100644
index 0000000..78e6b75
--- /dev/null
+++ b/webapp/django/conf/locale/es/LC_MESSAGES/django.po
@@ -0,0 +1,4322 @@
+# Spanish translation for the django project
+# Copyright (C) 2008, The Django Project
+# This file is distributed under the same license as the django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-07-24 12:48+0200\n"
+"PO-Revision-Date: 2008-07-24 13:30+0100\n"
+"Last-Translator: Django Spanish Translation Team <django-cat@googlegroups.com>\n"
+"Language-Team: Django Spanish Translation Team <django-cat@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "árabe"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "bengalí"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "búlgaro"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "catalán"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "checo"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "galés"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "danés"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "alemán"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "griego"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "inglés"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "español"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "estonio"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "español de Argentina"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "vasco"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "persa"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "finés"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "francés"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "irlandés"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "gallego"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "húngaro"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "hebreo"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "croata"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "islandés"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "italiano"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "japonés"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "georgiano"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "koreano"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "khmer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "letón"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "lituano"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "macedonio"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "holandés"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "noruego"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "polaco"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "portugués"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "portugués de Brasil"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "rumano"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "ruso"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "eslovaco"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "esloveno"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "serbio"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "sueco"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "tamil"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "turco"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ucraniano"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "chino simplificado"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "chino tradicional"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Por %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74
+#: contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147
+#: contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Todo"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Cualquier fecha"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Hoy"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Últimos 7 días"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Este mes"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Este año"
+
+#: contrib/admin/filterspecs.py:147
+#: forms/widgets.py:379
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Sí"
+
+#: contrib/admin/filterspecs.py:147
+#: forms/widgets.py:379
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "No"
+
+#: contrib/admin/filterspecs.py:154
+#: forms/widgets.py:379
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "hora de acción"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "id de objeto"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "repr de objeto"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "marca de acción"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "mensaje de cambio"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "entrada de registro"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "entradas de registro"
+
+#: contrib/admin/options.py:161
+#: contrib/admin/options.py:180
+msgid "None"
+msgstr "Ninguno"
+
+#: contrib/admin/options.py:347
+#: contrib/auth/admin.py:37
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Se añadió con éxito el %(name)s \"%(obj)s\"."
+
+#: contrib/admin/options.py:351
+#: contrib/admin/options.py:419
+#: contrib/auth/admin.py:42
+msgid "You may edit it again below."
+msgstr "Puede editarlo de nuevo abajo."
+
+#: contrib/admin/options.py:361
+#: contrib/admin/options.py:428
+#, python-format
+msgid "You may add another %s below."
+msgstr "Puede añadir otro %s abajo."
+
+#: contrib/admin/options.py:395
+#, python-format
+msgid "Changed %s."
+msgstr "Modificado/a %s."
+
+#: contrib/admin/options.py:395
+#: contrib/admin/options.py:405
+#: core/validators.py:279
+#: db/models/manipulators.py:305
+msgid "and"
+msgstr "y"
+
+#: contrib/admin/options.py:400
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Añadido/a \"%(object)s\" %(name)s."
+
+#: contrib/admin/options.py:404
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Modificados %(list)s para \"%(object)s\" %(name)s."
+
+#: contrib/admin/options.py:409
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Eliminado/a \"%(object)s\" %(name)s."
+
+#: contrib/admin/options.py:414
+msgid "No fields changed."
+msgstr "No ha cambiado ningún campo."
+
+#: contrib/admin/options.py:417
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Se modificó con éxito el %(name)s \"%(obj)s\"."
+
+#: contrib/admin/options.py:425
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "Se añadió con éxito el %(name)s \"%(obj)s. Puede editarlo de nuevo abajo."
+
+#: contrib/admin/options.py:506
+#, python-format
+msgid "Add %s"
+msgstr "Añadir %s"
+
+#: contrib/admin/options.py:568
+#, python-format
+msgid "Change %s"
+msgstr "Modificar %s"
+
+#: contrib/admin/options.py:598
+msgid "Database error"
+msgstr "Error en la base de datos"
+
+#: contrib/admin/options.py:647
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"."
+
+#: contrib/admin/options.py:653
+msgid "Are you sure?"
+msgstr "¿Está seguro?"
+
+#: contrib/admin/options.py:680
+#, python-format
+msgid "Change history: %s"
+msgstr "Histórico de modificaciones: %s"
+
+#: contrib/admin/sites.py:18
+#: contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:70
+#: contrib/comments/views/comments.py:56
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Por favor, introduzca un nombre de usuario y contraseña correctos. Note que ambos campos son sensibles a mayúsculas/minúsculas."
+
+#: contrib/admin/sites.py:233
+#: contrib/admin/views/decorators.py:68
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Por favor, inicie sesión de nuevo, ya que su sesión ha caducado. No se preocupe: se ha guardado su envío."
+
+#: contrib/admin/sites.py:240
+#: contrib/admin/views/decorators.py:75
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Parece que su navegador no está configurado para aceptar cookies. Actívelas , recargue esta página, e inténtelo de nuevo."
+
+#: contrib/admin/sites.py:254
+#: contrib/admin/sites.py:260
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Los nombres de usuario no pueden contener el carácter '@'."
+
+#: contrib/admin/sites.py:257
+#: contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Su dirección de correo no es su nombre de usuario. Pruebe con '%s' en su lugar."
+
+#: contrib/admin/sites.py:325
+msgid "Site administration"
+msgstr "Sitio administrativo"
+
+#: contrib/admin/sites.py:347
+#: contrib/admin/templates/admin/login.html:27
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Iniciar sesión"
+
+#: contrib/admin/util.py:126
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Uno o más %(fieldname)s en %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:131
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Uno o más %(fieldname)s en %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Fecha:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Hora:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Actualmente:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Modificar:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Página no encontrada"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Lo sentimos, pero no se encuentra la página solicitada."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Inicio"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Error del servidor"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Error del servidor (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Error de servidor <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Ha ocurrido un error. Se ha informado a los administradores del sitio mediante correo electrónico y debería arreglarse en breve. Gracias por su paciencia."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Bienvenido/a,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Documentation"
+msgstr "Documentación"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Cambiar contraseña"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Terminar sesión"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Sitio de administración de Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administración de Django"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Añadir"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Histórico"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Ver en el sitio"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Por favor, corrija el siguiente error."
+msgstr[1] "Por favor, corrija los siguientes errores."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Añadir %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filtro"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Eliminar"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación de objetos relacionados, pero su cuenta no tiene permiso para borrar los siguientes tipos de objetos:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s\"? Se borrarán los siguientes objetos relacionados:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Sí, estoy seguro"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Por %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelos disponibles en la aplicación %(name)s."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Modificar"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "No tiene permiso para editar nada."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Acciones recientes"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Mis acciones"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Ninguno disponible"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Algo va mal con la instalación de la base de datos. Asegúrese que las tablas necesarias han sido creadas, y que la base de datos puede ser leída por el usuario apropiado."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuario:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Contraseña:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Fecha/hora"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Usuario"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Acción"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j M Y P"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Este objeto no tiene histórico de cambios. Probablemente no fue añadido usando este sitio de administración."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostrar todo"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Ir"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 resultado"
+msgstr[1] "%(counter)s resultados"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s total"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Grabar como nuevo"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Grabar y añadir otro"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Grabar y continuar editando"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Grabar"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Primero introduzca un nombre de usuario y una contraseña. Luego podrá editar el resto de opciones del usuario."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:12
+#: contrib/auth/forms.py:49
+msgid "Username"
+msgstr "Nombre de usuario"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:15
+#: contrib/auth/forms.py:50
+#: contrib/auth/forms.py:166
+msgid "Password"
+msgstr "Contraseña"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:167
+msgid "Password (again)"
+msgstr "Contraseña (de nuevo)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Introduzca la misma contraseña que arriba, para verificación."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Introduzca una nueva contraseña para el usuario <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Bookmarklets de documentación"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Para instalar bookmarklets, arrastre el enlace a su barra\n"
+"de favoritos, o pulse con el botón derecho el enlace y añádalo a sus favoritos.\n"
+"Ahora puede escoger el bookmarklet desde cualquier página del sitio.\n"
+"Observe que algunos de estos bookmarklets precisan que esté viendo\n"
+"el sitio desde un ordenador señalado como \"interno\" (hable\n"
+"con su administrador de sistemas si no está seguro si el suyo lo es).</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentación para esta página"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Lleva desde cualquier página a la documentación de la vista que la genera."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Mostrar ID de objeto"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Muestra el tipo de contenido e ID único de las páginas que representan un simple objeto."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Editar este objeto (ventana actual)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Lleva a la página de administración de páginas que representan un único objeto."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Editar este objeto (nueva ventana)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Como antes, pero abre la página de administración en una nueva ventana."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Gracias por el tiempo que ha dedicado hoy al sitio web."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Iniciar sesión de nuevo"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Cambio de contraseña"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Cambio de contraseña exitoso"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Su contraseña ha sido cambiada."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Por favor, introduzca su contraseña antigua, por seguridad, y después introduzca la nueva contraseña dos veces para verificar que la ha escrito correctamente."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Contraseña antigua:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Contraseña nueva:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Confirme contraseña:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Cambiar mi contraseña"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Restablecer contraseña"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Restablecimiento de contraseña exitoso"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Le hemos enviado una contraseña nueva a la dirección que ha suministrado. Debería recibirla en breve."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Está recibiendo este mensaje debido a que solicitó restablecer la contraseña"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "para su cuenta de usuario en %(site_name)s."
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Su nueva contraseña es: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Puede cambiarla accediendo a esta página:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Su nombre de usuario, en caso de haberlo olvidado:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "¡Gracias por usar nuestro sitio!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "El equipo de %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "¿Ha olvidado su contraseña? Introduzca su dirección de correo electrónico, y crearemos una nueva que le enviaremos por correo."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Dirección de correo electrónico:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Restablecer mi contraseña"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Todas las fechas"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Escoja %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Escoja %s a modificar"
+
+#: contrib/admindocs/views.py:53
+#: contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "etiqueta:"
+
+#: contrib/admindocs/views.py:87
+#: contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filtro:"
+
+#: contrib/admindocs/views.py:153
+#: contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "vista:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Aplicación %r no encontrada"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "El modelo %(model_name)r no se ha encontrado en la aplicación %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "el objeto relacionado `%(app_label)s.%(data_type)s`"
+
+#: contrib/admindocs/views.py:206
+#: contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242
+#: contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "modelo:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "los objetos relacionados `%(app_label)s.%(object_name)s`"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "todo %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "número de %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Campos en %s objetos"
+
+#: contrib/admindocs/views.py:317
+#: contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330
+#: contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337
+#: contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Entero"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Booleano (Verdadero o Falso)"
+
+#: contrib/admindocs/views.py:319
+#: contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (máximo %(max_length)s)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Enteros separados por comas"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Fecha (sin hora)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Fecha (con hora)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "Dirección de correo electrónico"
+
+#: contrib/admindocs/views.py:325
+#: contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Ruta de fichero"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Número en coma flotante"
+
+#: contrib/admindocs/views.py:331
+#: contrib/comments/models.py:89
+msgid "IP address"
+msgstr "Dirección IP"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (Verdadero, Falso o Nulo)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Relación con el modelo padre"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Número de teléfono"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Texto"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Hora"
+
+#: contrib/admindocs/views.py:342
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "Estado de los EEUU (dos letras mayúsculas)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "Texto XML"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s no parece ser un objeto urlpattern"
+
+#: contrib/auth/admin.py:17
+msgid "Personal info"
+msgstr "Información personal"
+
+#: contrib/auth/admin.py:18
+msgid "Permissions"
+msgstr "Permisos"
+
+#: contrib/auth/admin.py:19
+msgid "Important dates"
+msgstr "Fechas importantes"
+
+#: contrib/auth/admin.py:20
+msgid "Groups"
+msgstr "Grupos"
+
+#: contrib/auth/admin.py:47
+msgid "Add user"
+msgstr "Añadir usuario"
+
+#: contrib/auth/forms.py:13
+#: contrib/auth/models.py:134
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Requerido. 30 caracteres o menos. Sólo caracteres alfanuméricos (letras, dígitos y guiones bajos)."
+
+#: contrib/auth/forms.py:14
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Este valor debe contener sólo letras, números y guiones bajos."
+
+#: contrib/auth/forms.py:16
+msgid "Password confirmation"
+msgstr "Contraseña (confirmación)"
+
+#: contrib/auth/forms.py:28
+msgid "A user with that username already exists."
+msgstr "Ya existe un usuario con este nombre."
+
+#: contrib/auth/forms.py:34
+#: contrib/auth/forms.py:153
+#: contrib/auth/forms.py:178
+msgid "The two password fields didn't match."
+msgstr "Las dos contraseñas no coinciden."
+
+#: contrib/auth/forms.py:72
+#: contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Esta cuenta está inactiva."
+
+#: contrib/auth/forms.py:77
+#: contrib/comments/views/comments.py:49
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Su navegador no parece tener las cookies habilitadas. Las cookies se necesitan para poder ingresar."
+
+#: contrib/auth/forms.py:90
+msgid "E-mail"
+msgstr "Correo electrónico"
+
+#: contrib/auth/forms.py:99
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Esta dirección de correo electrónico no tiene una cuenta de usuario asociada. ¿Está seguro de que se ha registrado?"
+
+#: contrib/auth/forms.py:124
+#, python-format
+msgid "Password reset on %s"
+msgstr "Contraseña restablecida en %s"
+
+#: contrib/auth/forms.py:131
+msgid "Old password"
+msgstr "Contraseña antigua"
+
+#: contrib/auth/forms.py:132
+msgid "New password"
+msgstr "Contraseña nueva"
+
+#: contrib/auth/forms.py:133
+msgid "New password confirmation"
+msgstr "Contraseña nueva (confirmación):"
+
+#: contrib/auth/forms.py:145
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Su contraseña antigua es incorrecta. Por favor, vuelva a introducirla correctamente."
+
+#: contrib/auth/models.py:73
+#: contrib/auth/models.py:93
+msgid "name"
+msgstr "nombre"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "nombre en código"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "permiso"
+
+#: contrib/auth/models.py:79
+#: contrib/auth/models.py:94
+msgid "permissions"
+msgstr "permisos"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "grupo"
+
+#: contrib/auth/models.py:98
+#: contrib/auth/models.py:144
+msgid "groups"
+msgstr "grupos"
+
+#: contrib/auth/models.py:134
+msgid "username"
+msgstr "nombre de usuario"
+
+#: contrib/auth/models.py:135
+msgid "first name"
+msgstr "nombre propio"
+
+#: contrib/auth/models.py:136
+msgid "last name"
+msgstr "apellidos"
+
+#: contrib/auth/models.py:137
+msgid "e-mail address"
+msgstr "dirección de correo electrónico"
+
+#: contrib/auth/models.py:138
+msgid "password"
+msgstr "contraseña"
+
+#: contrib/auth/models.py:138
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "Use'[algo]$[sal]$[hash hexadecimal]' o use <a href=\"password/\">el formulario para cambiar la contraseña</a>."
+
+#: contrib/auth/models.py:139
+msgid "staff status"
+msgstr "es staff"
+
+#: contrib/auth/models.py:139
+msgid "Designates whether the user can log into this admin site."
+msgstr "Indica si el usuario puede entrar en este sitio de administración."
+
+#: contrib/auth/models.py:140
+msgid "active"
+msgstr "activo"
+
+#: contrib/auth/models.py:140
+msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts."
+msgstr "Indica si el usuario puede ser tratado como activo. Desmarque esta opción en lugar de borrar la cuenta."
+
+#: contrib/auth/models.py:141
+msgid "superuser status"
+msgstr "es superusuario"
+
+#: contrib/auth/models.py:141
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Indica que este usuario tiene todos los permisos sin asignárselos explícitamente."
+
+#: contrib/auth/models.py:142
+msgid "last login"
+msgstr "último inicio de sesión"
+
+#: contrib/auth/models.py:143
+msgid "date joined"
+msgstr "fecha de alta"
+
+#: contrib/auth/models.py:145
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Además de los permisos asignados manualmente, este usuario también tendrá todos los permisos de los grupos en los que esté."
+
+#: contrib/auth/models.py:146
+msgid "user permissions"
+msgstr "permisos de usuario"
+
+#: contrib/auth/models.py:150
+msgid "user"
+msgstr "usuario"
+
+#: contrib/auth/models.py:151
+msgid "users"
+msgstr "usuarios"
+
+#: contrib/auth/models.py:306
+msgid "message"
+msgstr "mensaje"
+
+#: contrib/auth/views.py:49
+msgid "Logged out"
+msgstr "Sesión terminada"
+
+#: contrib/auth/views.py:116
+msgid "Password changed successfully."
+msgstr "La contraseña se ha cambiado con éxito."
+
+#: contrib/auth/views.py:122
+#, python-format
+msgid "Change password: %s"
+msgstr "Cambiar contraseña: %s"
+
+#: contrib/comments/models.py:71
+#: contrib/comments/models.py:164
+msgid "object ID"
+msgstr "ID de objeto"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "encabezado"
+
+#: contrib/comments/models.py:73
+#: contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "comentario"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "puntuación 1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "puntuación 2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "puntuación 3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "puntuación 4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "puntuación 5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "puntuación 6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "puntuación 7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "puntuación 8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "puntuación válida"
+
+#: contrib/comments/models.py:87
+#: contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "fecha/hora de envío"
+
+#: contrib/comments/models.py:88
+#: contrib/comments/models.py:168
+msgid "is public"
+msgstr "es público"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "está eliminado"
+
+#: contrib/comments/models.py:90
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Marque esta opción si el comentario es inapropiado. En su lugar se mostrará el mensaje \"Este comentario ha sido eliminado\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "comentarios"
+
+#: contrib/comments/models.py:128
+#: contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Objeto contenido"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Enviado por %(user)s en %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "nombre de la persona"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "dirección ip"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "aprobado por el staff"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "comentario libre"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "comentarios libres"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "puntuación"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "fecha de la puntuación"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "punto karma"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "puntos karma"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "puntuado %(score)d por %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Este comentario fue marcado por %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "fecha de la marca"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "marca de usuario"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "marcas de usuario"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Marca de %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "fecha de eliminación"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "eliminación del moderador"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "eliminaciones del moderador"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Eliminación del moderador %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "¿Ha olvidado su contraseña?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Puntuaciones"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Requerido"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcional"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Publica una fotografía"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Comentario:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Previsualizar comentario"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Su nombre:"
+
+#: contrib/comments/views/comments.py:76
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Se precisa esta puntuación porque ha introducido al menos otra más."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Este comentario lo envió un usuario que ha enviado menos de %(count)s comentario:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Este comentario lo envió un usuario que ha enviado menos de %(count)s comentarios:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Este comentario ha sido colocado por un usuario poco preciso: \n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Sólo se admiten POSTs"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "No se proporcionó uno o más de los siguientes campos requeridos"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Alguien manipuló el formulario de comentarios (violación de seguridad)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "El formulario de comentarios tiene un parámetro 'target' no válido (el ID de objeto era inválido)"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "El formulario de comentario no proporcionó 'previsualizar' ni 'enviar'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Los usuarios anónimos no pueden votar"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "ID de comentario no válido"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "No puede votarse a sí mismo"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "nombre de la clase modelo de python"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "tipo de contenido"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "tipos de contenido"
+
+#: contrib/flatpages/admin.py:9
+msgid "Advanced options"
+msgstr "Opciones avanzadas"
+
+#: contrib/flatpages/models.py:9
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Ejemplo: '/about/contact/'. Asegúrese de que pone barras al principio y al final."
+
+#: contrib/flatpages/models.py:10
+msgid "title"
+msgstr "título"
+
+#: contrib/flatpages/models.py:11
+msgid "content"
+msgstr "contenido"
+
+#: contrib/flatpages/models.py:12
+msgid "enable comments"
+msgstr "habilitar comentarios"
+
+#: contrib/flatpages/models.py:13
+msgid "template name"
+msgstr "nombre de plantilla"
+
+#: contrib/flatpages/models.py:14
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Ejemplo: 'flatpages/contact_page.html'. Si no es proporcionado, el sistema usará 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:15
+msgid "registration required"
+msgstr "debe estar registrado"
+
+#: contrib/flatpages/models.py:15
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Si está marcado, sólo los usuarios registrados podrán ver la página."
+
+#: contrib/flatpages/models.py:20
+msgid "flat page"
+msgstr "página estática"
+
+#: contrib/flatpages/models.py:21
+msgid "flat pages"
+msgstr "páginas estáticas"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f millón"
+msgstr[1] "%(value).1f millón"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f mil millones"
+msgstr[1] "%(value).1f mil millones"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f billón"
+msgstr[1] "%(value).1f billón"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "uno"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "dos"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "tres"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "cuatro"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "cinco"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "seis"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "siete"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "ocho"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "nueve"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "hoy"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "mañana"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "ayer"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Introduzca un código postal en el formato NNNN or ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49
+#: contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135
+#: contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Este campo sólo acepta números."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Este campo necesita 7 u 8 dígitos."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Introduzca un CUIT válido en el formato XX-XXXXXXXX-X o XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "CUIT inválido."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Introduzca un código postal de 4 dígitos."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Introduzca un código postal en el formato XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Los números de teléfono deben tener el formato XXX-XXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid "Select a valid brazilian state. That state is not one of the available states."
+msgstr "Seleccione un estado brasileño válido. Este estado no es uno de los estados disponibles."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Número CPF inválido."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Este campo necesita un máximo de 11 dígitos o 14 caracteres."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Número CNPJ inválido."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Este campo necesita 14 dígitos como mínimo"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Introduzca un código postal en el formato XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "Introduzca un Número del Seguro Social de Canadá válido en el formato XXX-XXX-XXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Geneva"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Introduzca un código postal en el formato XXXX."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Introduzca un número de identificación o pasaporte suizos válidos en el formato X1234567<0 o 1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Introduzca un RUT chileno válido."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Introduzca un RUT chileno válido. El formato es XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "El RUT chileno no es válido."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavaria"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlín"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburgo"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Western Pomerania"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Lower Saxony"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "North Rhine-Westphalia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhineland-Palatinate"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxony"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxony-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thuringia"
+
+#: contrib/localflavor/de/forms.py:14
+#: contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Introduzca un código postal en el formato XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Introduzca un número de tarjeta de identidad de Alemania válida en el formato XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Álava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alicante"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almería"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Ávila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Islas Baleares"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Cáceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cádiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castellón"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Córdoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "La Coruña"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Gerona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipúzcoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "León"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lérida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Málaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Orense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Vizcaya"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalucía"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragón"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principado de Asturias"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Islas Baleares"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "País Vasco"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Canarias"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castilla-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castilla y León"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Cataluña"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Región de Murcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Comunidad Foral de Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Comunidad Valenciana"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Introduzca un código postal en el rango y formato 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+msgstr "Introduzca un número de teléfono válido en el formato 6XXXXXXXX, 8XXXXXXXX o 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Por favor introduzca un NIF, NIE o CIF válido."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Por favor, introduzca un NIF o NIE válido."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "El NIF es incorrecto."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "El NIE es incorrecto."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "El CIF es incorrecto."
+
+#: contrib/localflavor/es/forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Introduzca un número de cuenta bancaria en el formato XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "El número de cuenta bancaria es incorrecto."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Introduzca un número de seguro social finlandés válido."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Introduzca un código postal en el formato XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Introduzca un número de identificación de Islandia válido. El formato es XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "El número de identificación de Islandia no es válido."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Introduzca un código postal válido."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Introduzca un número de Seguro Social válido."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Introduzca un número VAT válido."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Introduzca un código postal en el formato XXXXX o XXXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Estado de México"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Introduzca un código postal válido"
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Introduzca un número de teléfono válido"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Introduzca un número SoFi válido"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friesland"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburg"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Noord-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Noord-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Zuid-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Introduzca un número de seguro social de Noruega válido."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Este campo necesita 8 dígitos."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Este campo necesita 11 dígitos."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "Número de Identificación Nacional consiste en 11 dígitos"
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "El Número de Identificación Nacional es incorrecto."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Introduzca un número de impuesto (NIP) en el formato XXX-XXX-XX-XX o XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "El Número de Identificación Tributaria (NIP) es incorrecto."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "El Número Nacional de Registro de Negocios (REGON) consiste en 7 o 9 dígitos."
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "El Número Nacional de Registro de Negocios (REGON) es incorrecto."
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Introduzca un código postal en el formato XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Lower Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Lesser Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Subcarpatia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Greater Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "West Pomerania"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "Introduzca un CIF válido."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "Introduzca un CNP válido."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr "Introduzca un IBAN válido en el formato ROXX-XXXX-XXXX-XXXX-XXXX-XXXX."
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Los números de teléfono deben tener el formato XXXX-XXXXXX."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Introduzca un código postal válido en el formato XXXXXX"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Introduzca un código postal en el formato XXXXX o XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Región de Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Región de Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Región de Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Región de Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Región de Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Región de Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Región de Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Región de Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Región de Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Región de Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Región de Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Región de Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Región de Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Región de Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Región de Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Región de Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Región de Bratislava"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Región de Kosice"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Región de Nitra"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Región de Presov"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Región de Trencin"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Región de Trnava"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Región de Zilina"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Introduzca un código postal válido."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall and Isles of Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Londres (área metropolitana)"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Manchester (área metropolitana)"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "South Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "West Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "Condado de Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "Condado de Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "Condado de Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "Condado de Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "Condado de Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "Condado de Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Central Scotland"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetland Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Inglaterra"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Irlanda del Norte"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Escocia"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Gales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Introduzca un código postal en el formato XXXXX o XXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Introduzca un Número Seguro Social de EEUU válido en el formato XXX-XX-XXXX"
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Introduzca un ID surafricano válido"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Introduzca un código postal surafricano válido"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Eastern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Free State"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Northern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "North West"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Western Cape"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redirigir desde"
+
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Esta ruta debería ser absoluta, excluyendo el nombre de dominio. Ejemplo: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redirigir a"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Esto puede ser bien una ruta absoluta (como antes) o una URL completa que empiece con 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redirección"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redirecciones"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "clave de sesión"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "datos de sesión"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "fecha de caducidad"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sesión"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sesiones"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nombre de dominio"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "nombre para mostrar"
+
+#: contrib/sites/models.py:38
+msgid "site"
+msgstr "sitio"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "sitios"
+
+#: core/validators.py:76
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Este valor debe contener sólo letras, números, guiones bajos y barras."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Este valor debe contener sólo letras, números, guiones bajos o medios."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "No se admiten letras mayúsculas."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "No se admiten letras minúsculas."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Introduzca sólo dígitos separados por comas."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Introduzca direcciones de correo válidas separadas por comas."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Por favor introduzca una dirección IP válida."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "No se admiten valores vacíos."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "No se admiten caracteres no numéricos."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Este valor no puede comprender sólo dígitos."
+
+#: core/validators.py:128
+#: forms/fields.py:157
+msgid "Enter a whole number."
+msgstr "Introduzca un número entero."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Sólo se admiten caracteres alfabéticos."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Fecha no válida: %s"
+
+#: core/validators.py:152
+#: db/models/fields/__init__.py:552
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Introduzca una fecha válida en formato AAAA-MM-DD."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Introduzca una hora válida en formato HH:MM."
+
+#: core/validators.py:161
+#: db/models/fields/__init__.py:633
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Introduzca una fecha/hora válida en formato AAAA-MM-DD HH:MM."
+
+#: core/validators.py:166
+#: forms/fields.py:408
+msgid "Enter a valid e-mail address."
+msgstr "Introduzca una dirección de correo electrónico válida."
+
+#: core/validators.py:178
+#: core/validators.py:470
+#: forms/fields.py:426
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "No se ha enviado ningún fichero. Compruebe el tipo de codificación en el formulario."
+
+#: core/validators.py:189
+#: forms/fields.py:466
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Envíe una imagen válida. El fichero que ha enviado no era una imagen o se trataba de una imagen corrupta."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "La URL %s no apunta a una imagen válida."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Los números de teléfono deben guardar el formato XXX-XXX-XXXX. \"%s\" no es válido."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "La URL %s no apunta a un vídeo QuickTime válido."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "Se precisa una URL válida."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Se precisa HTML válido. Los errores específicos son:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML mal formado: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL no válida: %s"
+
+#: core/validators.py:255
+#: core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "La URL %s es un enlace roto."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Introduzca una abreviatura válida de estado de los EEUU."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "¡Cuide su vocabulario! Aquí no admitimos la palabra %s."
+msgstr[1] "¡Cuide su vocabulario! Aquí no admitimos las palabras %s."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Este campo debe concordar con el campo '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Por favor, introduzca algo en al menos un campo."
+
+#: core/validators.py:312
+#: core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Por favor, rellene ambos campos o deje ambos vacíos."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Se debe proporcionar este campo si %(field)s es %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Se debe proporcionar este campo si %(field)s no es %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "No se admiten valores duplicados."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Este valor debe estar entre %(lower)s y %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Este valor debe ser como mínimo %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Este valor no debe ser mayor que %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Este valor debe ser una potencia de %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Por favor, introduzca un número decimal válido."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito en total."
+msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos en total."
+
+#: core/validators.py:443
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito en su parte entera."
+msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos en su parte entera."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito decimal."
+msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos decimales."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Por favor, introduzca un número de coma flotante válido."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Asegúrese de que el fichero que envía tiene al menos %s bytes."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Asegúrese de que el fichero que envía tiene como máximo %s bytes."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "El formato de este campo es incorrecto."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Este campo no es válido."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "No se pudo obtener nada de %s."
+
+#: core/validators.py:535
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "La URL %(url)s devolvió la cabecera Content-Type '%(contenttype)s', que no es válida."
+
+#: core/validators.py:568
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Por favor, cierre la etiqueta %(tag)s de la línea %(line)s. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Parte del texto que comienza en la línea %(line)s no está permitido en ese contexto. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "El \"%(attr)s\" de la línea %(line)s no es un atributo válido. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "La \"<%(tag)s>\" de la línea %(line)s no es una etiqueta válida. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "A una etiqueta de la línea %(line)s le faltan uno o más atributos requeridos. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "El atributo \"%(attr)s\" de la línea %(line)s tiene un valor que no es válido. (La línea empieza por \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s de este %(type)s ya existen en este %(field)s."
+
+#: db/models/fields/__init__.py:47
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Ya existe %(optname)s con este %(fieldname)s."
+
+#: db/models/fields/__init__.py:175
+#: db/models/fields/__init__.py:343
+#: db/models/fields/__init__.py:795
+#: db/models/fields/__init__.py:806
+#: forms/fields.py:51
+#: oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+#: db/models/fields/__init__.py:450
+msgid "This value must be an integer."
+msgstr "Este valor debe ser un entero."
+
+#: db/models/fields/__init__.py:491
+msgid "This value must be either True or False."
+msgstr "Este valor debe ser Verdadero o Falso."
+
+#: db/models/fields/__init__.py:515
+msgid "This field cannot be null."
+msgstr "Este campo no puede estar vacío."
+
+#: db/models/fields/__init__.py:702
+msgid "This value must be a decimal number."
+msgstr "Este valor debe ser un entero."
+
+#: db/models/fields/__init__.py:815
+msgid "Enter a valid filename."
+msgstr "Introduzca un nombre de fichero válido"
+
+#: db/models/fields/__init__.py:1006
+msgid "This value must be either None, True or False."
+msgstr "Este valor debe ser Verdadero, Falso o Ninguno."
+
+#: db/models/fields/related.py:93
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Por favor, introduzca un %s válido."
+
+#: db/models/fields/related.py:729
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Mantenga presionado \"Control\", o \"Command\" en un Mac, para seleccionar más de una opción."
+
+#: db/models/fields/related.py:773
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Por favor, introduzca IDs de %(self)s válidos. El valor %(value)r no es válido."
+msgstr[1] "Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son válidos."
+
+#: forms/fields.py:52
+msgid "Enter a valid value."
+msgstr "Introduzca un valor correcto."
+
+#: forms/fields.py:129
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Asegúrese de que su texto tiene a lo más %(max)d caracteres (actualmente tiene %(length)d)."
+
+#: forms/fields.py:130
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Asegúrese de que su texto tiene al menos %(min)d caracteres (actualmente tiene %(length)d)."
+
+#: forms/fields.py:158
+#: forms/fields.py:187
+#: forms/fields.py:216
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Asegúrese de que este valor es menor o igual a %s."
+
+#: forms/fields.py:159
+#: forms/fields.py:188
+#: forms/fields.py:217
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Asegúrese de que este valor es mayor o igual a %s."
+
+#: forms/fields.py:186
+#: forms/fields.py:215
+msgid "Enter a number."
+msgstr "Introduzca un número."
+
+#: forms/fields.py:218
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Asegúrese de que no hay más de %s dígitos en total."
+
+#: forms/fields.py:219
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Asegúrese de que no hay más de %s decimales."
+
+#: forms/fields.py:220
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Asegúrese de que no hay más de %s dígitos antes de la coma decimal."
+
+#: forms/fields.py:268
+#: forms/fields.py:795
+msgid "Enter a valid date."
+msgstr "Introduzca una fecha válida."
+
+#: forms/fields.py:301
+#: forms/fields.py:796
+msgid "Enter a valid time."
+msgstr "Introduzca una hora válida."
+
+#: forms/fields.py:340
+msgid "Enter a valid date/time."
+msgstr "Introduzca una fecha/hora válida."
+
+#: forms/fields.py:427
+msgid "No file was submitted."
+msgstr "No se ha enviado ningún fichero"
+
+#: forms/fields.py:428
+#: oldforms/__init__.py:693
+msgid "The submitted file is empty."
+msgstr "El fichero enviado está vacío."
+
+#: forms/fields.py:527
+msgid "Enter a valid URL."
+msgstr "Introduzca una URL válida."
+
+#: forms/fields.py:528
+msgid "This URL appears to be a broken link."
+msgstr "La URL parece ser un enlace roto."
+
+#: forms/fields.py:593
+#: forms/fields.py:644
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Escoja una opción válida. %(value)s no es una de las opciones disponibles."
+
+#: forms/fields.py:645
+#: forms/fields.py:706
+#: forms/models.py:581
+msgid "Enter a list of values."
+msgstr "Introduzca una lista de valores."
+
+#: forms/fields.py:824
+msgid "Enter a valid IPv4 address."
+msgstr "Introduzca una dirección IPv4 válida."
+
+#: forms/models.py:514
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Escoja una opción válida. Esa opción no está entre las disponibles."
+
+#: forms/models.py:582
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Escoja una opción válida; '%s' no es una de las opciones disponibles."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Asegúrese de que su texto tiene menos de %s carácter."
+msgstr[1] "Asegúrese de que su texto tiene menos de %s caracteres."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "No se permiten saltos de línea."
+
+#: oldforms/__init__.py:512
+#: oldforms/__init__.py:586
+#: oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Escoja una opción válida; '%(data)s' no está en %(choices)s."
+
+#: oldforms/__init__.py:754
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Introduzca un número entero entre -32.768 y 32.767."
+
+#: oldforms/__init__.py:764
+msgid "Enter a positive number."
+msgstr "Introduzca un número positivo."
+
+#: oldforms/__init__.py:774
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Introduzca un número entero entre 0 y 32.767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "sí,no,tal vez"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "media noche"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "medio día"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "lunes"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "martes"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "miércoles"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "jueves"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "viernes"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "sábado"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "domingo"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "lun"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "mar"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "mié"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "jue"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "vie"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "sáb"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "dom"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "enero"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "febrero"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "March"
+msgstr "marzo"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "April"
+msgstr "abril"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "May"
+msgstr "mayo"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "June"
+msgstr "junio"
+
+#: utils/dates.py:19
+#: utils/dates.py:31
+msgid "July"
+msgstr "julio"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "agosto"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "septiembre"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "octubre"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "noviembre"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "diciembre"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "ene"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "abr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "may"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "ago"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "oct"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dic"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "ene."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "ago."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "oct."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "dic."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "o"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "año"
+msgstr[1] "años"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mes"
+msgstr[1] "meses"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "semana"
+msgstr[1] "semanas"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "día"
+msgstr[1] "días"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hora"
+msgstr[1] "horas"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuto"
+msgstr[1] "minutos"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutos"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "j N Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "j N Y P"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "j \\de F"
+
+#: views/generic/create_update.py:129
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "El/La %(verbose_name)s se ha creado exitosamente."
+
+#: views/generic/create_update.py:172
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Se actualizó con éxito el %(verbose_name)s."
+
+#: views/generic/create_update.py:214
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "El/La %(verbose_name)s ha sido borrado."
+
+#~ msgid "Ordering"
+#~ msgstr "Ordenación"
+#~ msgid "Order:"
+#~ msgstr "Orden:"
+#~ msgid "Added %s."
+#~ msgstr "Añadido %s."
+#~ msgid "Deleted %s."
+#~ msgstr "Borrado %s."
+#~ msgid "The two 'new password' fields didn't match."
+#~ msgstr "Los dos campos 'nueva contraseña' no coinciden."
+#~ msgid "Year must be 1900 or later."
+#~ msgstr "El año debe ser 1900 o posterior."
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "Separe múltiples IDs con comas."
+
diff --git a/webapp/django/conf/locale/es/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/es/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..b42ebb3
--- /dev/null
+++ b/webapp/django/conf/locale/es/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/es/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/es/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..4ad90fa
--- /dev/null
+++ b/webapp/django/conf/locale/es/LC_MESSAGES/djangojs.po
@@ -0,0 +1,117 @@
+# Spanish translation for the django-admin JS files.
+# Copyright (C) 2008, The Django Project
+# This file is distributed under the same license as the django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-10-04 00:00+0200\n"
+"PO-Revision-Date: 2008-03-30 00:54+0100\n"
+"Last-Translator: Django Spanish Group <django-i18n@googlegroups.com>\n"
+"Language-Team: Spanish <django-i18n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre "
+"Noviembre Diciembre"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D L M M J V S"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Domingo Lunes Martes Miércoles Jueves Viernes Sábado"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s Disponibles"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Selecciona todos"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Agregar"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Remover"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s Elegidos"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Haz tus elecciones y da click en "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Elimina todos"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Ahora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Reloj"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Elige una hora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Medianoche"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Mediodía"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Hoy"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Calendario"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Ayer"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Mañana"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Mostrar"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Esconder"
diff --git a/webapp/django/conf/locale/es_AR/LC_MESSAGES/django.mo b/webapp/django/conf/locale/es_AR/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..5d9eca6
--- /dev/null
+++ b/webapp/django/conf/locale/es_AR/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/es_AR/LC_MESSAGES/django.po b/webapp/django/conf/locale/es_AR/LC_MESSAGES/django.po
new file mode 100644
index 0000000..170e6aa
--- /dev/null
+++ b/webapp/django/conf/locale/es_AR/LC_MESSAGES/django.po
@@ -0,0 +1,4653 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-15 18:34-0300\n"
+"PO-Revision-Date: 2008-08-16 14:18-0300\n"
+"Last-Translator: Ramiro Morales <rm0@gmx.net>\n"
+"Language-Team: Django-I18N <django-i18n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "árabe"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "bengalí"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "búlgaro"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "catalán"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "checo"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "galés"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "danés"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "alemán"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "griego"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "inglés"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "español"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "estonio"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "español de Argentina"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "vasco"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "persa"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "finlandés"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "francés"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "irlandés"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "gallego"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "húngaro"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "hebreo"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "croata"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "islandés"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "italiano"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "japonés"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "georgiano"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "koreano"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "jémer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "canarés"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "letón"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "lituano"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "macedonio"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "holandés"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "noruego"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "polaco"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "portugués"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "portugués de Brasil"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "rumano"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "ruso"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "eslovaco"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "esloveno"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "serbio"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "sueco"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "tamil"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "turco"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ucraniano"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "chino simplificado"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "chino tradicional"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Por %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Todos/as"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Cualquier fecha"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Hoy"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Últimos 7 días"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Este mes"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Este año"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Sí"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "No"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "hora de la acción"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "id de objeto"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "repr de objeto"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "marca de acción"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "mensaje de cambio"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "entrada de registro"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "entradas de registro"
+
+#: contrib/admin/options.py:143 contrib/admin/options.py:202
+msgid "None"
+msgstr "Ninguno"
+
+#: contrib/admin/options.py:407
+#, python-format
+msgid "Changed %s."
+msgstr "Modifica %s."
+
+#: contrib/admin/options.py:407 contrib/admin/options.py:417
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "y"
+
+#: contrib/admin/options.py:412
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Se agregó %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:416
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Se modificaron %(list)s en %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:421
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Se eliminó %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:425
+msgid "No fields changed."
+msgstr "No ha modificado ningún campo."
+
+#: contrib/admin/options.py:486 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Se agregó con éxito %(name)s \"%(obj)s\"."
+
+#: contrib/admin/options.py:490 contrib/admin/options.py:523
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "Puede modificarlo nuevamente abajo."
+
+#: contrib/admin/options.py:500 contrib/admin/options.py:533
+#, python-format
+msgid "You may add another %s below."
+msgstr "Puede agregar otro %s abajo."
+
+#: contrib/admin/options.py:521
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Se modificó con éxito %(name)s \"%(obj)s\"."
+
+#: contrib/admin/options.py:529
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"Se agregó con éxito %(name)s \"%(obj)s\". Puede modificarlo nuevamente abajo."
+
+#: contrib/admin/options.py:595
+#, python-format
+msgid "Add %s"
+msgstr "Agregar %s"
+
+#: contrib/admin/options.py:672
+#, python-format
+msgid "Change %s"
+msgstr "Modificar %s"
+
+#: contrib/admin/options.py:703
+msgid "Database error"
+msgstr "Error de base de datos"
+
+#: contrib/admin/options.py:752
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Se eliminó con éxito %(name)s \"%(obj)s\"."
+
+#: contrib/admin/options.py:759
+msgid "Are you sure?"
+msgstr "¿Está seguro?"
+
+#: contrib/admin/options.py:786
+#, python-format
+msgid "Change history: %s"
+msgstr "Historia de modificaciones: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Por favor introduzca un nombre de usuario y una contraseña correctos. Note "
+"que ambos campos son sensibles a mayúsculas/minúsculas."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Por favor, identifíquese de nuevo porque su sesión ha caducado. No se "
+"preocupe: se ha guardado su envío."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Parece que su navegador no está configurado para aceptar cookies. Por favor "
+"actívelas, recargue esta página, e inténtelo de nuevo."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Los nombres de usuario no pueden contener el carácter '@'."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Su dirección de correo electrónico no es su nombre de usuario. Intente "
+"nuevamente usando '%s'."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Administración de sitio"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Identificarse"
+
+#: contrib/admin/util.py:126
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Uno o más %(fieldname)s en %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:131
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Uno o más %(fieldname)s en %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Fecha:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Hora:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Actualmente"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Modificar:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Página no encontrada"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Lo sentimos, pero no se encuentra la página solicitada."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Inicio"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Error del servidor"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Error del servidor (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Error de servidor <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Ha ocurrido un error. Se ha informado a los administradores del sitio "
+"mediante correo electrónico y debería ser solucionado en breve. Gracias por "
+"su paciencia."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Bienvenido,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentación"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Cambiar contraseña"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Cerrar sesión"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Sitio de administración de Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administración de Django"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Agregar"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Historia"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Ver en el sitio"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Por favor, corrija el siguiente error."
+msgstr[1] "Por favor, corrija los siguientes errores."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Agregar %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filtrar"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Eliminar"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación "
+"de objetos relacionados, pero su cuenta no tiene permiso para eliminar los "
+"siguientes tipos de objetos:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"¿Está seguro de que quiere eliminar los %(object_name)s \"%(escaped_object)s"
+"\"? Se eliminarán los siguientes objetos relacionados:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Sí, estoy seguro"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Por %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelos disponibles en la aplicación %(name)s."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Modificar"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "No tiene permiso para editar nada."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Acciones recientes"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Mis acciones"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Ninguna disponible"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Hay algún problema con su instalación de base de datos. Asegúrese de que las "
+"tablas de la misma hayan sido creadas, y asegúrese de que el usuario "
+"apropiado tenga permisos de lectura en la base de datos."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuario:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Contraseña:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Fecha/hora"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Usuario"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Acción"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j M Y P"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Este objeto no tiene historia de modificaciones. Probablemente no fué "
+"añadido usando este sitio de administración."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostrar todos/as"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Buscar"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "un resultado"
+msgstr[1] "%(counter)s resultados"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "total: %(full_result_count)s"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Grabar como nuevo"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Grabar y añadir otro"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Grabar y continuar editando"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Grabar"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Primero, introduzca un nombre de usuario y una contraseña. Luego podrá "
+"configurar opciones adicionales."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Nombre de usuario:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Contraseña:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Contraseña (de nuevo)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr ""
+"Para verificación, introduzca la misma contraseña que introdujo arriba."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr ""
+"Introduzca una nueva contraseña para el usuario <strong>%(username)s</"
+"strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Identificarse de nuevo"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Cambio de contraseña"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Cambio de contraseña exitoso"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Su contraseña ha sido cambiada."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Por favor, por razones de seguridad, introduzca su contraseña antigua, y "
+"luego introduzca la nueva contraseña dos veces para verificar que la ha "
+"escrito correctamente."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Contraseña antigua:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Contraseña nueva:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Confirme contraseña:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Cambiar mi contraseña"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Recuperar contraseña"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Reinicialización de contraseña completada"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Se le ha enviado su contraseña.  Ahora puede continuar e ingresar."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Confirmación de reincialización de contraseña"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Introduzca la nueva contraseña"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Por favor introduzca su nueva contraseña dos veces de manera que podamos "
+"verificar que la ha escrito correctamente."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Reinicialización de contraseña exitosa"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"El enlace de reinicialización de contraseña es inválido, posiblemente debido "
+"a que ya ha sido usado.  Por favor solicite una nueva reinicialización "
+"de contraseña."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Recuperación de contraseña exitosa"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Le hemos enviado instrucciones sobre como establecer su contraseña a la "
+"dirección de correo electrónico que ha suministrado. Debería recibir las "
+"mismas en breve."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"Está recibiendo este mensaje debido a que solicitó recuperar la contraseña"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "de su cuenta de usuario en %(site_name)s."
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr ""
+"Por favor visite la página que se muestra a continuación y elija una nueva "
+"contraseña:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Su nombre de usuario, en caso de haberlo olvidado:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "¡Gracias por usar nuestro sitio!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "El equipo de %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"¿Ha olvidado su contraseña?. Introduzca su dirección de correo electrónico "
+"mas abajo y le enviaremos instrucciones para establecer una nueva."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Dirección de correo electrónico:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Recuperar mi contraseña"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "Todas las fechas"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Seleccione %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Seleccione %s a modificar"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "sitio"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "plantilla"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "etiqueta:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filtrar:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "ver:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Aplicación %r no encontrada"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Modelo %(model_name)r no encontrado en aplicación %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "el objeto `%(app_label)s.%(data_type)s` relacionado"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "modelo:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "objetos `%(app_label)s.%(object_name)s` relacionados"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "todos los %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "número de %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Campos en objetos %s"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Entero"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Booleano (Verdadero o Falso)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (máximo %(max_length)s)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Enteros separados por comas"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Fecha (sin hora)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Fecha (con hora)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "Dirección de correo electrónico"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Ruta de archivo"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Número de punto flotante"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "Dirección IP"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (Verdadero, Falso o Nulo)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Relación con el modelo padre"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Número de teléfono"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Texto"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Hora"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "Estado de los EE.UU. (dos letras mayúsculas)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "Texto XML"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s no parece ser un objeto urlpattern"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Bookmarklets de documentación"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Para instalar bookmarklets, arrastre el enlace a su barra\n"
+"de favoritos, o pulse con el botón derecho el enlace y añádalo a sus "
+"favoritos.\n"
+"Ahora puede seleccionar el bookmarklet desde cualquier página en el sitio.\n"
+"Tenga en cuenta que algunos de estos bookmarklets precisan que esté viendo\n"
+"el sitio desde un equipo señalado como \"interno\" (hable\n"
+"con su administrador de sistemas si no está seguro de si el suyo lo es).</"
+"p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentación de esta página"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Le lleva desde cualquier página a la documentación de la vista que la genera."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Mostrar ID de objeto"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Muestra el tipo de contenido e ID unívoco de las páginas que representan un "
+"único objeto."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Editar este objeto (ventana actual)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Le lleva a la página de administración de páginas que representan un único "
+"objeto."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Editar este objeto (nueva ventana)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Ídem, pero abre la página de administración en una nueva ventana."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Información personal"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Permisos"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Fechas importantes"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Grupos"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Agregar usuario"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Cambio de contraseña exitoso"
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Cambiar contraseña: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Obligatorio. Longitud máxima 30 caracteres alfanuméricos (letras, dígitos y "
+"guiones bajos)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Este valor debe contener sólo letras, números y guiones bajos."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Confirmación de contraseña"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "Ya existe un usuario con ese nombre."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "Los dos campos de contraseñas no coinciden entre si."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Esta cuenta está inactiva"
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Su navegador Web aparenta no estar configurado para aceptar cookies. Las "
+"cookies son un requerimiento para poder ingresar."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "Correo electrónico"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Esa dirección de e-mail no está asociada a ninguna cuenta de usuario. ¿Está "
+"seguro de que ya se ha registrado?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Reinicialización de contraseña en %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Contraseña nueva"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Confirmación de contraseña nueva"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Contraseña antigua"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr ""
+"La antigua contraseña introducida es incorrecta. Por favor introdúzcala "
+"nuevamente."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "nombre"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "nombre en código"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "permiso"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "permisos"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "grupo"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "grupos"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "nombre de usuario"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "nombre"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "apellido"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "dirección de correo electrónico"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "contraseña"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Use '[algo]$[salt]$[hexdigest]' o use el <a href=\"password/\">formulario de "
+"cambio de contraseña</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "es staff"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "Indica si el usuario puede ingresar a este sitio de administración."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "activo"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Indica si el usuario debe ser tratado como un usuario activo. Desactive este "
+"campo en lugar de eliminar usuarios."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "es superusuario"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Indica que este usuario posee todos los permisos sin que sea necesario "
+"asignarle los mismos en forma explícita."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "último ingreso"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "fecha de creación"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Además de los permisos asignados manualmente, este usuario también poseerá "
+"todos los permisos de los grupos a los que pertenezca."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "permisos de usuario"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "usuario"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "usuarios"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "mensaje"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "Sesión cerrada"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "ID de objeto"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "encabezado"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "comentario"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "calificación 1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "calificación 2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "calificación 3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "calificación 4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "calificación 5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "calificación 6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "calificación 7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "calificación 8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "es calificación válida"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "fecha/hora de envío"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "es público"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "se ha eliminado"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Marque esta caja si el comentario es inapropiado. En su lugar se mostrará un "
+"mensaje \"Este comentario ha sido eliminado\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "comentarios"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Objeto contenido"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Enviado por %(user)s el %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "nombre de la persona"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "dirección ip"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "aprobado por el staff"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "comentario libre"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "comentarios libres"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "puntuación"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "fecha de la puntuación"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "punto karma"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "puntos karma"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "puntuado %(score)d por %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Este comentario fue marcado por %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "fecha de la marca"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "marca de usuario"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "marcas de usuario"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Marca de %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "fecha de eliminación"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "eliminación por moderador"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "eliminaciones por moderador"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Eliminación del moderador %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Olvidó su contraseña?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Calificaciones"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Obligatorio"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcional"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Enviar una foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Comentario:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Previsualizar comentario"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Su nombre:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Se precisa esta puntuación porque ha introducido al menos otra más."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Este comentario lo envió un usuario que ha enviado menos de %(count)s "
+"comentario:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Este comentario lo envió un usuario que ha enviado menos de %(count)s "
+"comentarios:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Este comentario ha sido enviado por un usuario 'semi-anónimo':\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Sólo se admiten POSTs"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "No se proporcionó uno o más de los campos obligatorios"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"Alguien está jugando con el formulario de comentarios (violación de "
+"seguridad)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"El formulario de comentarios tiene un parámetro 'target' no válido (el ID de "
+"objeto era inválido)"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+"El formulario de comentarios no proporcionó 'previsualizar' ni 'enviar'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Los usuarios anónimos no pueden votar"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "ID de comentario no válido"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Ud. no puede votarse a sí mismo"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "nombre de la clase python del modelo"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "tipo de contenido"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "tipos de contenido"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Ejemplo: '/about/contact/'. Asegúrese de usar barras '/' al principio y al "
+"final."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Este valor debe contener sólo letras, números, guiones bajos, guiones o "
+"barras (/)"
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Opciones avanzadas"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "título"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "contenido"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "activar comentarios"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "nombre de plantilla"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Ejemplo: 'flatpages/contact_page.html'. Si no lo proporciona, el sistema "
+"usará 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "debe estar registrado"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Si está marcado, sólo los usuarios registrados podrán ver la página."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "página estática"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "páginas estáticas"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "No se ha proporcionado un valor de geometría."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Valor de geometría no válido."
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Tipo de geometría no válido"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "st"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "nd"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f millón"
+msgstr[1] "%(value).1f millones"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f millardo"
+msgstr[1] "%(value).1f millardos"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f billón"
+msgstr[1] "%(value).1f billones"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "uno"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "dos"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "tres"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "cuatro"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "cinco"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "seis"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "siete"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "ocho"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "nueve"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "hoy"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "mañana"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "ayer"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Introduzca un código postal en formato NNNN o ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Este campo permite sólo valores numéricos."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Este campo requiere 7 u 8 dígitos."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Introduzca un CUIT válido en formato XX-XXXXXXXX-X o XXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "CUIT inválido."
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "Burgenland"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Carintia"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "Baja Austria"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "Alta Austria"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "Salzburgo"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "Estiria"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "Tirol"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "Vorarlberg"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "Viena"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Introduzca un zip code en formato XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr "Introduzca un Número de Seguridad Social austríaco en formato XXXX XXXXXX."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Introduzca un post code de 4 dígitos."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Introduzca un zip code en formato XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Los números telefónicos deben respetar el formato XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+"Seleccione un estado Brasileño válido. Ese estado no es uno de los estados "
+"disponibles."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Número CPF inválido."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Este campo requiere como máximo 11 dígitos o 14 caracteres."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Número CNPJ inválido."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Este campo requiere al menos 14 dígitos."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Introduzca un código postal en formato XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"Introduzca un Número de Seguridad Social Canadiense en formato XXX-XXX-XXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Geneva"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Introduzca un número válido de tarjeta de identidad o pasaporte Suizos en "
+"formato X1234567<0 o 1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Introduzca un RUT chileno válido."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Introduzca un RUT chileno válido. EL formato es XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "El RUT chileno no es válido."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavaria"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Western Pomerania"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Lower Saxony"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "North Rhine-Westphalia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhineland-Palatinate"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxony"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxony-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thuringia"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Introduzca un zip code en formato XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Introduzca un número de tarjeta de identidad alemán válido en formato "
+"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Álava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alicante"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almería"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Ávila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Islas Baleares"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Cáceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cádiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castellón"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Córdoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "La Coruña"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Gerona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipúzcoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "León"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lérida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Málaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Orense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Vizcaya"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalucía"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragón"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principado de Asturias"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Islas Baleares"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "País Vasco"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Islas Canarias"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castilla-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castilla y León"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Cataluña"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Región de Murcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Comunidad Foral de Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Comunidad Valenciana"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+"Introduzca un código postal en el siguiente rango y con el siguiente "
+"formato: 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Introduzca un número telefónico en uno de los siguientes formatos: "
+"6XXXXXXXX, 8XXXXXXXX o 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Por favor introduzca un NIF, NIE o CIF válidos."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Por favor, introduzca un NIF o CIE válidos."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Código de verificación de NIF inválido."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Código de verificación de NIE inválido."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Código de verificación de CIF inválido."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+"Por favor introduzca un número de cuenta bancaria válido en formato XXXX-"
+"XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Código de verificación de número de cuenta bancaria inválido."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Introduzca un número de seguridad social finlandés válido."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Introduzca un zip code en formato XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"Introduzca un número de identificación islandés válido. El formato es XXXXXX-"
+"XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "El número de identificación islandés no es válido."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Introduzca un zip code válido."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Introduzca un número de Seguridad Social válido."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Introduzca un número VAT válido."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Introduzca un código postal en formato XXXXXX o XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Estado de México"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Introduzca un código postal válido."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Introduzca un número telefónico válido."
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Introduzca un número SoFi válido."
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevolanda"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Frisia"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Güeldres"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groninga"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburgo"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Brabante Septentrional"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Holanda Septentrional"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zelanda"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Holanda Meridional"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Introduzca un número de seguridad social Noruego válido."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Este campo requiere 8 dígitos."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Este campo requiere 11 dígitos."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr "Los Números Nacionales de Identificación constan de 11 dígitos."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Código de verificación de Número Nacional de Identificación inválido."
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+"Introduzca un campo de número impositivo en formato XXX-XXX-XX-XX o XX-XX-"
+"XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Código de verificación de Número Impostitivo (NIP) inválido."
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+"Los Números Nacionales de Registro de Negocios (REGON) constan de 7 o 9 "
+"dígitos."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+"Código de verificación de Número Nacional de Registro de negocios (REGON) "
+"inválido."
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Introduzca un código postal en formato XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Baja Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Cuyavia y Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubus"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Pequeña Polonia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Subcarpacia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlaquia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Varmia y Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Gran Polonia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Pomerania Occidental"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "Introduzca un CIF válido."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "Introduzca un CNP válido."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr "Introduzca un IBAN válido en formato ROXX-XXXX-XXXX-XXXX-XXXX-XXXX"
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Los números telefónicos deben respetar el formato XXXX-XXXXXX."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Introduzca un código postal válido en formato XXXXXX"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Introduzca un código postal en formato XXXXX o XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "region Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "region Bratislava"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "region Kosice"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "region Nitra"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "region Presov"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "region Trencin"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "region Trnava"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "region Zilina"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Introduzca un postcode válido."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall e Islas de Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Greater London"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Greater Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "South Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "West Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "County Fermarmagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "County Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Escocia Central"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetland Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Inglaterra"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Irlanda del Norte"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Escocia"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Gales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Introduzca un zip code en el formato XXXXX o XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Introduzca un Número de Seguridad Social en formato XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Introduzca un número ID de Sudáfrica válido."
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Introduzca un código postal de Sudáfrica válido."
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Eastern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Free State"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Northern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "North West"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Western Cape"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redirigir desde"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Esta ruta debe ser absoluta, excluyendo el nombre de dominio. Ejemplo: '/"
+"events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redirigir a"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Esto puede ser bien una ruta absoluta (como arriba) o una URL completa que "
+"empiece con 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redirección"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redirecciones"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "clave de sesión"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "datos de sesión"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "fecha de caducidad"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sesión"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sesiones"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nombre de dominio"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "nombre para visualizar"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "sitios"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Este valor debe contener sólo letras, números, guiones bajos o guiones."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "No se admiten letras mayúsculas."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "No se admiten letras minúsculas."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Introduzca sólo dígitos separados por comas."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Introduzca direcciones de correo válidas separadas por comas."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Por favor introduzca una dirección IP válida."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "No se admiten valores vacíos."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "No se admiten caracteres no numéricos."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Este valor no puede estar formado sólo por dígitos."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Introduzca un número entero."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Sólo se admiten caracteres alfabéticos."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Fecha no válida: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Introduzca una fecha válida en formato AAAA-MM-DD."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Introduzca un valor de hora válido en formato HH:MM."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Introduzca un valor de fecha/hora válido en formato AAAA-MM-DD HH:MM."
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "Introduzca una dirección de correo electrónico válida"
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"No se envió un archivo. Verifique el tipo de codificación en el formulario."
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Envíe una imagen válida. El archivo que ha enviado no era una imagen o se "
+"trataba de una imagen corrupta."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "La URL %s no apunta a una imagen válida."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Los números telefónicos deben respetar el formato XXX-XXX-XXXX. \"%s\" no es "
+"válido."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "La URL %s no apunta a un video QuickTime válido."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "Se precisa una URL válida."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Se precisa HTML válido. Los errores específicos son:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML mal formado: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL no válida: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "La URL %s es un enlace roto."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Introduzca una abreviatura válida de estado de los EE.UU."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "¡Vigila tu boca! Aquí no admitimos la palabra %s."
+msgstr[1] "¡Vigila tu boca! Aquí no admitimos las palabras %s."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Este campo debe concordar con el campo '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Por favor, introduzca algo en al menos un campo."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Por favor, rellene ambos campos o deje ambos vacíos."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Se debe proporcionar este campo si %(field)s es %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Se debe proporcionar este campo si %(field)s no es %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "No se admiten valores duplicados."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Este valor debe estar entre %(lower)s y %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Este valor debe ser al menos %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Este valor debe ser no mayor que %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Este valor debe ser una potencia de %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Por favor, introduzca un número decimal válido."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+"Por favor, introduzca un número decimal válido con un máximo de un dígito en "
+"total."
+msgstr[1] ""
+"Por favor, introduzca un número decimal válido con un maximo de %s dígitos "
+"en total."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Por favor, introduzca un número decimal válido con un dígito entero como "
+"máximo."
+msgstr[1] ""
+"Por favor, introduzca un número decimal válido con un máximo de %s dígitos "
+"enteros."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Por favor, introduzca un número decimal válido con un máximo de una posición "
+"decimal."
+msgstr[1] ""
+"Por favor, introduzca un número decimal válido con un máximo de %s "
+"posiciones decimales."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Por favor introduzca un número de punto flotante válido."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+"Asegúrese de que el archivo que envía es de un tamaño mínimo de %s bytes."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+"Asegúrese de que el archivo que envía es de un tamaño máximo de %s bytes."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "El formato de este campo es incorrecto."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Este campo no es válido."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "No se pudo obtener nada de %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"La URL %(url)s devolvió la cabecera Content-Type '%(contenttype)s', que no "
+"es válida."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Por favor, cierre la etiqueta %(tag)s de la línea %(line)s. (La línea "
+"empieza con \"%(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Parte del texto que comienza en la línea %(line)s no está permitido en ese "
+"contexto. (La línea empieza con \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"El \"%(attr)s\" de la línea %(line)s no es un atributo válido. (La línea "
+"empieza con \"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"La \"<%(tag)s>\" de la línea %(line)s no es una etiqueta válida. (La línea "
+"empieza con \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"A una etiqueta de la línea %(line)s le faltan uno o más atributos "
+"requeridos. (La línea empieza con \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"El atributo \"%(attr)s\" de la línea %(line)s tiene un valor que no es "
+"válido. (La línea empieza con \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "Ya existe un(a) %(object)s con este/a %(type)s para %(field)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Ya existe %(optname)s con este %(fieldname)s."
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "Este valor debe ser un número entero."
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "Este valor debe ser True o False."
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "Este campo no puede ser nulo."
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "Introduzca un valor de fecha/hora válido en formato AAAA-MM-DD HH:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "Este valor debe ser un número decimal."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "Este valor debe ser None, True o False."
+
+#: db/models/fields/__init__.py:937 db/models/fields/__init__.py:950
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Introduzca un valor de hora válido en formato HH:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Introduzca un nombre de archivo válido."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Por favor, introduzca un %s válido."
+
+#: db/models/fields/related.py:759
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Mantenga presionada \"Control\" (\"Command\" en una Mac) para seleccionar "
+"más de uno."
+
+#: db/models/fields/related.py:839
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Por favor, introduzca IDs de %(self)s válidos. El valor %(value)r no es "
+"válido."
+msgstr[1] ""
+"Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son "
+"válidos."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Introduzca un valor válido."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Asegúrese de que este valor tenga como máximo %(max)d caracteres (tiene %"
+"(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Asegúrese de que este valor tenga al menos %(min)d caracteres (tiene %"
+"(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Asegúrese de que este valor sea menor o igual a %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Asegúrese de que este valor sea mayor o igual a %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Introduzca un número."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Asegúrese de que no existan en total mas de %s dígitos."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Asegúrese de que no existan mas de %s lugares decimales."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Asegúrese de que no existan mas de %s dígitos antes del punto decimal."
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "Introduzca una fecha válida."
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "Introduzca un valor de hora válido."
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "Introduzca un valor de fecha/hora válido."
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "No se envió ningún archivo."
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "El archivo enviado está vacío."
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "Introduzca una URL válida."
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "La URL parece ser un enlace roto."
+
+#: forms/fields.py:601 forms/fields.py:652
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Seleccione una opción válida. %(value)s no es una de las opciones "
+"disponibles."
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "Introduzca una lista de valores."
+
+#: forms/fields.py:832
+msgid "Enter a valid IPv4 address."
+msgstr "Introduzca una dirección IPv4 válida"
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Seleccione una opción válida. Esa opción no es una de las opciones "
+"disponibles."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr ""
+"Seleccione una opción válida. %s no es una de las opciones disponibles."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Asegúrese de que su texto tiene menos de %s caracter."
+msgstr[1] "Asegúrese de que su texto tiene menos de %s caracteres."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "No se permiten saltos de línea."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Seleccione una opción válida; '%(data)s' no está en %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Introduzca un número entero entre -32.768 y 32.767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Introduzca un número positivo."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Introduzca un número entero entre 0 y 32.767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "si,no,talvez"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "medianoche"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "mediodía"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Lunes"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Martes"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Miércoles"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Jueves"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Viernes"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Sábado"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Domingo"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Lun"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Mar"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Mie"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Jue"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Vie"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Sab"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Dom"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Enero"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Febrero"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Marzo"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "Abril"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Mayo"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Junio"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Julio"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Agosto"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "Setiembre"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Octubre"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "Noviembre"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Diciembre"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "ene"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "abr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "may"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "ago"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "set"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "oct"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dic"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Enero"
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Ago."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Set."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Oct."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dic."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "o"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "año"
+msgstr[1] "años"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mes"
+msgstr[1] "meses"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "semana"
+msgstr[1] "semanas"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "día"
+msgstr[1] "días"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hora"
+msgstr[1] "horas"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuto"
+msgstr[1] "minutos"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutos"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "j N Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "j N Y P"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "j \\de F"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "Se creó con éxito %(verbose_name)s."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Se actualizó con éxito %(verbose_name)s."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "Se eliminó %(verbose_name)s."
+
+#~ msgid "Your new password is: %(new_password)s"
+#~ msgstr "Su nueva contraseña es: %(new_password)s"
+
+#~ msgid "Feel free to change this password by going to this page:"
+#~ msgstr "Puede cambiarla accediendo a esta página:"
+
+#~ msgid "Year must be 1900 or later."
+#~ msgstr "El año debe ser 1900 o posterior."
+
+#~ msgid "Gaeilge"
+#~ msgstr "Irlandés"
+
+#~ msgid "Brazilian"
+#~ msgstr "Brasileño"
+
+#~ msgid "Ordering"
+#~ msgstr "Ordenación"
+
+#~ msgid "Order:"
+#~ msgstr "Orden:"
+
+#~ msgid "Added %s."
+#~ msgstr "Agregado %s."
+
+#~ msgid "Deleted %s."
+#~ msgstr "Eliminó %s."
+
+#~ msgid "The two 'new password' fields didn't match."
+#~ msgstr "Los dos campos 'nueva contraseña' no coinciden entre si."
+
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "Separe múltiples identificadores con comas."
+
+#~ msgid ""
+#~ "Enter a postcode. A space is required between the two postcode parts."
+#~ msgstr ""
+#~ "Introduzca un postcode. Se requiere un espacio entre las dos secciones "
+#~ "del mismo."
+
+#~ msgid "%d milliseconds"
+#~ msgstr "%d milisegundos"
+
+#~ msgid "AnonymousUser"
+#~ msgstr "UsuarioAnonimo"
+
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Use '[algoritmo]$[salt]$[hexdigest]'"
+
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr "¿Ha <a href=\"/password_reset/\">olvidado su contraseña</a>?"
+
+#~ msgid "%(content_type_name)s"
+#~ msgstr "tipos de contenido"
+
+#~ msgid "%(result_count)s result"
+#~ msgid_plural "%(counter)s results"
+#~ msgstr[0] "un resultado"
+#~ msgstr[1] "%(counter)s resultados"
+
+#~ msgid "Comment"
+#~ msgstr "Comentario"
+
+#~ msgid "Comments"
+#~ msgstr "Comentarios"
+
+#~ msgid "String (up to 50)"
+#~ msgstr "Cadena (máximo 50)"
+
+#~ msgid "label"
+#~ msgstr "etiqueta"
+
+#~ msgid "package"
+#~ msgstr "paquete"
+
+#~ msgid "packages"
+#~ msgstr "paquetes"
diff --git a/webapp/django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..b7683ea
--- /dev/null
+++ b/webapp/django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/es_AR/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/es_AR/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..32a37eb
--- /dev/null
+++ b/webapp/django/conf/locale/es_AR/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-10-06 14:18-0300\n"
+"PO-Revision-Date: 2007-07-14 14:36-0300\n"
+"Last-Translator: Ramiro Morales <rm0@gmx.net>\n"
+"Language-Team: Django-I18N <django-i18n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s disponibles"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Seleccionar todos"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Agregar"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Eliminar"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s elegidos"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Seleccione los items a agregar y haga click en "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Eliminar todos"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Enero Febrero Marzo Abril Mayo Junio Julio Agosto Setiembre Octubre "
+"Noviembre Diciembre"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D L M M J V S"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Domingo Lunes Martes Miércoles Jueves Viernes Sábado"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Mostrar"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Ocultar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Ahora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Reloj"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Elija una hora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Medianoche"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Mediodía"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Hoy"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Calendario"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Ayer"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Mañana"
diff --git a/webapp/django/conf/locale/et/LC_MESSAGES/django.mo b/webapp/django/conf/locale/et/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..2915706
--- /dev/null
+++ b/webapp/django/conf/locale/et/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/et/LC_MESSAGES/django.po b/webapp/django/conf/locale/et/LC_MESSAGES/django.po
new file mode 100644
index 0000000..d8d33be
--- /dev/null
+++ b/webapp/django/conf/locale/et/LC_MESSAGES/django.po
@@ -0,0 +1,4496 @@
+# Estonian translation for the Django Project.
+# Copyright (C) 2008, Django Project
+# This file is distributed under the same license as the django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-21 01:56+0300\n"
+"PO-Revision-Date: 2008-06-17 12:29+0300\n"
+"Last-Translator: Erik Allik <removethis-eallik_at_gmail-com>\n"
+"Language-Team: Django-i18n <django-i18n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "araabia"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "bengali"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "bulgaaria"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "katalaani"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "tšehhi"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "uelsi"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "taani"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "saksa"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "kreeka"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "inglise"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "hispaania"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "eesti"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "argentiina hispaania"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "baski"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "pärsia"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "soome"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "prantsuse"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "iiri"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "galiitsia"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "ungari"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "heebrea"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "horvaatia"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "islandi"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "itaalia"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "jaapani"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "gruusia"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "korea"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "khmeri"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "läti"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "leedu"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "makedoonia"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "hollandi"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "norra"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "poola"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "portugali"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "brasiilia portugali"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "rumeenia"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "vene"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "slovaki"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "sloveeni"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "serbia"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "rootsi"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "tamiili"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "türgi"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ukrania"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "lihtsustatud hiina"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "traditsiooniline hiina"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>%s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Kõik"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Suvaline kuupäev"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Täna"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Viimased 7 päeva"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Käesolev kuu"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Käesolev aasta"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Jah"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Ei"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Tundmatu"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "toimingu aeg"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "objekti id"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "objekti esitus"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "toimingu lipp"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "muudatuse tekst"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "logisissekanne"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "logisissekanded"
+
+#: contrib/admin/options.py:56 contrib/admin/options.py:115
+msgid "None"
+msgstr "puudub"
+
+#: contrib/admin/options.py:326
+#, python-format
+msgid "Changed %s."
+msgstr "Muutsin %s."
+
+#: contrib/admin/options.py:326 contrib/admin/options.py:336
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "ja"
+
+#: contrib/admin/options.py:331
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Lisatud %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:335
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Muudetud %(list)s objektil %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:340
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Kustutatud %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:344
+msgid "No fields changed."
+msgstr "Ühtegi välja ei muudetud."
+
+#: contrib/admin/options.py:405 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" lisamine õnnestus."
+
+#: contrib/admin/options.py:409 contrib/admin/options.py:442
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "Te võite selle muutmist jätkata."
+
+#: contrib/admin/options.py:419 contrib/admin/options.py:452
+#, python-format
+msgid "You may add another %s below."
+msgstr "Te võite lisada uue objekti %s"
+
+#: contrib/admin/options.py:440
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Objekti %(name)s \"%(obj)s\" muutmine õnnestus."
+
+#: contrib/admin/options.py:448
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "Objekti %(name)s \"%(obj)s\" lisamine õnnestus. Te võite seda muuta."
+
+#: contrib/admin/options.py:514
+#, python-format
+msgid "Add %s"
+msgstr "Lisa %s"
+
+#: contrib/admin/options.py:591
+#, python-format
+msgid "Change %s"
+msgstr "Muuda %s"
+
+#: contrib/admin/options.py:622
+msgid "Database error"
+msgstr "Andmebaasi viga"
+
+#: contrib/admin/options.py:671
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Objekti %(name)s \"%(obj)s\" kustutamine õnnestus."
+
+#: contrib/admin/options.py:678
+msgid "Are you sure?"
+msgstr "Kas olete kindel?"
+
+#: contrib/admin/options.py:705
+#, python-format
+msgid "Change history: %s"
+msgstr "Muudatuste ajalugu: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Palun sisestage korrektne kasutajatunnus ja salasõna. Mõlemad väljad on "
+"tõstutundlikud."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Teie sessioon on aegunud. Palun logige uuesti sisse. Olge mureta: sisestatud "
+"andmed on salvestatud."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Paistab, et Teie brauser ei aktsepteeri küpsiseid. Palun võimaldage küpsised "
+"ning seejärel laadige see leht uuesti."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Kasutajatunnused ei tohi sisaldada '@' märki."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Teie e-posti aadress ei ole sama asi, mis Teie kasutajatunnus. Proovige '%s'."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Saidi administreerimine"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Sisene"
+
+#: contrib/admin/util.py:138
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+
+#: contrib/admin/util.py:143
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr ""
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Kuupäev:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Aeg:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Hetkel:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Muuda:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Lehte ei leitud"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Vabandame, kuid soovitud lehte ei leitud."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Kodu"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serveri viga"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serveri viga (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Serveri Viga <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"On tekkinud viga. Vastavasisuline teavitus on saadetud süsteemi haldajale "
+"ning vea parandamisega tegeletakse esimesel võimalusel. Täname mõistva "
+"suhtumise eest!"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Tere tulemast,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentatsioon"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Muuda salasõna"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Logi välja"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django administreerimisliides"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administreerimisliides"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Lisa"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Ajalugu"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Näida lehel"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Palun parandage allolev viga"
+msgstr[1] "Palun parandage allolevad vead"
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Lisa %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filtreeri"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Kustuta"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Selleks, et kustutada %(object_name)s '%(escaped_object)s', on vaja "
+"kustutada lisaks ka kõik seotud objecktid, aga teil puudub õigus järgnevat "
+"tüüpi objektide kustutamiseks:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Kas olete kindel, et soovite kustutada objekti %(object_name)s \"%"
+"(escaped_object)s\"? Kõik järgnevad seotud objektid kustutatakse koos "
+"sellega:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Jah, olen kindel"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Rakenduses %(name)s leitud mudelid"
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Muuda"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Teil ei ole õigust midagi muuta."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Hiljutised Toimingud"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Minu Toimingud"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Ei leitud ühtegi"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"On tekkinud viga seoses andmebaasiga. Veenduge, et kõik vajalikud "
+"andmebaasitabelid on loodud  ning et andmebaas on vastava kasutaja poolt "
+"loetav."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Kasutajatunnus:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Salasõna:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Kuupäev/kellaaeg"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Kasutaja"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Toiming"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Sellel objektil puudub muudatuste ajalugu. Tõenäoliselt ei kasutatud selle "
+"objekti lisamisel käesolevat administreerimislidest."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Näita kõiki"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Mine"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 tulemus"
+msgstr[1] "%(counter)s tulemust"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "Kokku %(full_result_count)s"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Salvesta uuena"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Salvesta ja lisa uus"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Salvesta ja jätka muutmist"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Salvesta"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Kõige pealt sisestage kasutajatunnus ja salasõna, seejärel on võimalik muuta "
+"täiendavaid kasutajaandmeid."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Kasutajatunnus"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Salasõna"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Salasõna (uuesti)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr ""
+"Sisestage sama salasõna uuesti veendumaks, et sisestamisel ei tekkinud vigu"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Sisestage uus salasõna kasutajale <strong>%(username)s</strong>"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Tänan, et veetsite aega meie lehel."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Logi uuesti sisse"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Salasõna muutmine"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Salasõna muutmine õnnestus"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Teie salasõna on vahetatud."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Turvalisuse tagamiseks palun sisestage oma praegune salasõna ning seejärel "
+"uus salasõna.Veendumaks, et uue salasõna sisestamisel ei tekkinud vigu, "
+"palun sisestage see kaks korda."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Senine salasõna:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Uus salasõna:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Kinnita salasõna:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Muuda salasõna"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Uue parooli loomine"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Uue salasõna loomine valmis"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Teie salasõna on määratud. Võite nüüd sisse logida."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Uue salasõna loomise kinnitamine"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Sisestage uus salasõna"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Palun sisestage uus salasõna kaks korda, et saaksime veenduda, et "
+"sisestamisel ei tekkinud vigu."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Uue salasõna loomine ebaõnnestus"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"Uue salasõna loomise link ei olnud korrektne. Võimalik, et seda on varem "
+"kasutatud. Esitage uue salasõna taotlus uuesti."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Uue parooli loomine õnnestus"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Teie poolt sisestatud e-posti aadressile on saadetud juhised uue salasõna "
+"määramiseks. Kiri peaks kohale jõudma varsti."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "See kiri saadeti teile, sest soovisite uut salasõna"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "teie kasutajakontole lehel %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Teie kasutajatunnus juhul, kui olete unustanud:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Täname meie lehte külastamast!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s meeskond"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Unustasid parool? Sisesta oma e-posti aadress ning me saadame sulle juhised "
+"uue parooli määramiseks."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-posti aadress:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Reseti parool"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "Kõik kuupäevad"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Vali %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Vali %s mida muuta"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "sait"
+
+#: contrib/admin/views/template.py:38
+#, fuzzy
+msgid "template"
+msgstr "mall"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "lipik:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filtreeri:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "vaade:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Rakendust %r ei leitud"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Mudelit %(model_name)r ei leitud rakendusest %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "seotud `%(app_label)s.%(data_type)s` objekt"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "mudel:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "seotud `%(app_label)s.%(object_name)s` objektid"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "kõik %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "%s arv"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Objekti %s väljad"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Täisarv"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Tõeväärtus (Kas tõene või väär)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (kuni %(max_length)s märki)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Komaga eraldatud täisarvud"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Kuupäev (kellaajata)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Kuupäev (kellaajaga)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Kümnendmurd"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "E-posti aadress"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Faili asukoht"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Ujukomaarv"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP aadress"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Tõeväärtus (Kas tõene, väär või tühi)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Seos ülem-mudeliga"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Telefoninumber"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Tekst"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Aeg"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "U.S.A. osariik (kaks suurt tähte)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML tekst"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ei tundu olevat urlpattern objekt"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Järjehoidjad"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentatsiooni järjehoidjad"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Selle lehekülje dokumentatsioon"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Näita objekti ID-d"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Muuda seda objekti (samas aknas)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Muuda seda objekti (uues aknas)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Sama, mis üleval, kuid avab admin. lehe uues aknas."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Isiklikud andmd"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Õigused"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Tähtsad kuupäevad"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Grupid"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Lisa kasutaja"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Salasõna edukalt muudetud."
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Muuda salasõna: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "Nõutav. 30 tähemärki või vähem. Ainult tähed, numbrid ja alakriipsud."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "See väärtus võib sisaldada ainult tähti, numbreid ja alakriipse."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Salasõna kinnitus"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "Sama kasutajatunnusega kasutaja on juba olemas."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "Kaks sisestatud parooli ei olnud identsed."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "See konto ei ole aktiivne."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Teie veebibrauser ei aktsepteeri küpsiseid, aga küpsised on sisselogimiseks "
+"vajalikud."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "E-posti aadress"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Selle e-posti aadressiga ei ole seotud ühtegi kasutajakontot. Veenduge, et "
+"olete registreerunud."
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr ""
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Uus salasõna"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Uue salasõna kinnitus"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Vana salasõna"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Te sisestasite oma vana parooli vigaselt. Palun sisestage see uuesti."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "nimi"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "koodnimi"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "õigus"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "õigused"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "grupp"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "grupid"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "kasutajatunnus"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "eesnimi"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "perenimi"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "e-posti aadress"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "salasõna"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "personalistaatus"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+"Määrab, kas kasutaja saab sisse logida sellesse admininistreerimisliidesesse."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "aktiivne"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Määrab, kas see konto on aktiivne. Kustutamise asemel lihtsalt deaktiveerige "
+"konto."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "superkasutaja staatus"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "Määrab, kas see kasutaja omab automaatselt ja alati kõiki õigus."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "viimane sisenemine"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "liitumise kuupäev"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Lisaks neile õigustele, mis kasutajale on määratud, omab kasutaja ka neid "
+"õigusi, mis on nendel gruppidel, millesse ta kuulub."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "kasutajaõigused"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "kasutaja"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "kasutajad"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "sõnum"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "Välja logitud"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "objekti ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "pealkiri"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "kommentaar"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "reiting #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "reiting #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "reiting #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "reiting #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "reiting #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "reiting #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "reiting #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "reiting #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "on korrektne reiting"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "loomise kuupäev/kellaaeg"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "on avalik"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "on eemaldatud"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Märkige siia linnuke, kui see kommentaar on ebasobiv. Kommentaari asemel "
+"kuvatakse kirja \"Kommentaar on kustutatud\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "kommentaarid"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Sisuobjekt"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Postitatud kasutaja %(user)s poolt %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "isiku nimi"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "ip aadress"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "personali poolt heaks kiidetud"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "vaba kommentaar"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "vabad kommentaarid"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "tulemus"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "tulemuse kuupäev"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "karma tulemus"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "karma tulemused"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d reiting kasutaja %(user)s poolt"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"See kommentaar märgiti kasutaja %(user)s poolt:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "märkimise kuupäev"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "kasutajamärge"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "kasutajamärked"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Lipu pani %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "kustutamise kuupäev"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "moderaatori kustutus"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "moderaatori kustutused"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "moderaatori kustutus kasutaja %r poolt"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Unustasid salasõna?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Reitingud"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Nõutav"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Valikuline"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Postita foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Kommentaar:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Kommentaari eelvaade"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Teie nimi:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"See reiting on nõutav, sest olete sisestanud vähemalt ühe teise reitingu."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Selle kommentaari postitas pealiskaudne kasutaja:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Ainult POST päringud on lubatud"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Üks või enam nõutavatest väljadest on puudu"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"Keegi on kommentaari ankeeti sisestanud vigaseid andmed (turvarikkumine)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Kommentaariankeet sisaldas ebakorrektset 'target' parameetrit -- objekti ID "
+"ei olnud korrektne"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Kommentaari ankeedis oli puudu kas 'preview' või 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonüümsed kasutajad ei saa hääletada"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Ebakorrektne kommentaari ID"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Iseendale ei saa häält anda"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "pythoni mudeli klassinimi"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "sisutüüp"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "sisutüübid"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Näide: '/about/contact/'. Veenduge, et URL algaks ja lõppeks kaldkriipsuga."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"See väärtus võib sisaldada ainult tähti, numbreid, alakriipse, mõttekriipse "
+"või kaldkriipse."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Lisavalikud"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "pealkiri"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "sisu"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "võimalda kommentaarid"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "mall"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Näide: 'flatpages/contact_page.html'. Kui mall on määramata, kasutatakse "
+"vaikimisi malli 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "registreerumine nõutav"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Kui see on valitud, näevad lehte ainult sisselogitud kasutajad"
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "sisuleht"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "sisulehed"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr ""
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Vigane geomeetriline väärtus"
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Vigane geomeetriline tüüp"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f miljon"
+msgstr[1] "%(value).11f miljonit"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f miljard"
+msgstr[1] "%(value).1f miljardit"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f triljon"
+msgstr[1] "%(value).1f triljonit"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "üks"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "kaks"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "kolm"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "neli"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "viis"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "kuus"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "seitse"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "kaheksa"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "üheksa"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "täna"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "homme"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "eile"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Sisesta postiindeks kujul NNNN või ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "See väli peab koosnema ainult numbritest."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Siin väljal peab olema kas 7 või 8 numbrit."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Sisesta korrektne CUIT kujul XX-XXXXXXXX-X or XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Vale CUIT."
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "Burgenland"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Kärnten"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "Alam-Austria"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "Ülem-Austria"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "Salzburg"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "Steiermark"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "Tirool"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "Vorarlberg"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "Viin"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Sisesta postiindeks kujul XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr "Sisesta kehtiv Austria sotsiaalkindlustusnumber formaadis XXX-XX-XXXX."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Sisesta neljakohaline postiindeks."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Sisesta postiindeks kujul XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefoninumbrid peavad olema kujul XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "Vali korrektne Brasiilia osariik. Valitud osariik ei ole korrektne."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Mittekorrektne CPF number."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "See väli võib olla maksimaalselt 11 või 14 sümbolit."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Mittekorrektne CNPJ number."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "See väli peab olema vähemalt 14-kohaline arv."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Sisesta postiindeks kujul XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "Sisesta korrektne Kanada sotsiaalturvatunnus formaadis XXX-XXX-XXXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Geneva"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Sisesta kehtiv Šveitsi isiku- või passinumber kujul X1234567<0 või "
+"1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Sisesta korrektne Tšiili RUT."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Sisesta korrektne Tšiili RUT formaadis XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "Tšiili RUT on ebakorrektne."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Württemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Baieri"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berliin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Vorpommern"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Alam-Saksi"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Nordrhein-Westfalen"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rheinland-Pfalz"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarimaa"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saksimaa"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saksi-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Tüüringi"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Sisesta postiindeks kujul XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Sisesta kehtiv Saksamaa ID-kaardi number kujul XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Álava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alicante"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almería"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Ávila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Baleaarid"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Cáceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cádiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castellón"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Córdoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruna"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipúzcoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "León"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Málaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Orense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Astuuria"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Vizcaya"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andaluusia"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragón"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Astuuria"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Baleaarid"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Baskimaa"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Kanaari saared"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castilla-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castilla-León"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Kataloonia"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Sisesta korrektne postiindeks vahemikus 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Sisesta korrektne telefoninumber, mis on formaadis 6XXXXXXXX, 8XXXXXXXX või "
+"9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Palun sisesta korrektne NIF, NIE või CIF."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Palun sisesta korrektne NIF või NIE."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Vale NIF-i kontrollsumma."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Vale NIE kontrollsumma."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Vale CIF-i kontrollsumma."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Palun sisesta korrektne kontonumber formaadis XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Pangakonto numbri kontrollsumma on vale."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Sisesta korrektne Soome sotsiaalturvatunnus."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Sisesta postiindeks kujul XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Sisesta kehtiv Islandi isikukood formaadis XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Islandi isikukood ei ole korrektne."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Sisesta korrektne postiindeks."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Sisesta korrektne sotsiaalturvatunnus."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Sisesta korrektne käibemaksukohuslase kood."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Sisesta postiindeks kujul XXXXXXX või XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Estado de México"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Sisesta kehtiv postiindeks"
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Sisesta kehtiv telefoninumber"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Sisesta kehtiv SoFi number"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+#, fuzzy
+msgid "Drenthe"
+msgstr "Drenthe"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friisimaa"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningeni provints"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburgi provints"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Põhja-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Põhja-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrechti provints"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Lõuna-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Sisesta kehtiv Norra sotsiaalturvatunnus."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Sellel väljal peab olema 8 numbrit."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Sellel väljal peab olema 11 numbrit."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr "Riiklik isikukood koosneb 11 numbrist."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Isikukoodil on vale kontrollsumma."
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+"Sisesta maksumaksja number (NIP) formaadis XXX-XXX-XX-XX või XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Maksukohustusnumbril (NIP) on vale kontrollsumma."
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "Riikliku Äriregistri number (REGON) koosneb 7 või 9 numbrist."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Riiklikul Äriregistri numbril (REGON) on vale kontrollsumma."
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Sisesta postiindeks kujul XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Alam-Sileesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kujawy-Pomorze"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Łódź"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Väike-Poola"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masoovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Podkarpacie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlaasia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomorze"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Sileesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Święty Krzyżi"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Suur-Poola"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Lääne-Pomorze"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "Sisestage korrektne CIF."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "Sisestage korrektne CNP."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr "Sisesta korrektne IBAN kujul ROXX-XXXX-XXXX-XXXX-XXXX-XXXX"
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Telefoninumbrid peavad olema kujul XXXX-XXXXXX"
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Sisesta postiindeks kujul XXXXXX"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Sisesta postiindeks kujul XXXXX või XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banská Bystrica regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Bratislava regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Košice regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Nitra regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Prešovi regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Trenšíni regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Trnava regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Žilina regioon"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Sisesta kehtiv postiindeks."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall and Isles of Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Suur-London"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Suur-Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "Lõuna-Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne ja Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "Lääne-Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "Lääne-Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "County Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "County Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "Lääne-Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Piirid"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Kesk-Šotimaa"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney saared"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetlandi saared"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Inglismaa"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Põhja-Iirimaa"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Šotimaa"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Wales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Sisesta postiindeks kujul XXXXX või XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Sisesta kehtiv U.S. Social Security number formaadis XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Sisesta kehtiv Lõuna-Aafrika ID-number"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Sisesta kehtiv Lõuna-Aafrika postiindeks"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Eastern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Free State"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Northern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "North West"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Western Cape"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "ümbersuunatav asukoht"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"See peaks olema absoluutne asukoht, v.a. domeeninimi. Näide: '/events/"
+"search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "suuna aadressile"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"See võib olla kas absoluutne asukoht (nagu ülemine) või täielik URL algusega "
+"'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "suunamine"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "suunamised"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "sessioonivõti"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "sessiooni andmed"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "kehtivusaja lõpp"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sessioon"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sessioonid"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "domeeninimi"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "hüüdnimi"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "saidid"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"See väärtus võib sisaldada ainult tähti, nubmreid, alakriipse ja sidekriipse."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Suured tähed ei ole siin lubatud."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Väiksed tähed ei ole siin lubatud."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Sisestage ainult komaga eraldatud numbreid."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Sisestage korrektseid komaga eraldatud e-posti aadresseid."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Palun sisestage korrektne IP aadress."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Tühjad väärtused ei ole siin lubatud."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Mittenumbrilised märgid ei ole siin lubatud."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "See väärtus ei tohi sisaldada ainult numbreid."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Sisestage täisarv."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Siin on lubatud ainult tähestiku tähed."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Ebakorrektne kuupäev: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Sisestage korrektne kuupäev formaadis AAAA-KK-PP."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Sisestage korrektne kellaaeg formaadis TT:MM"
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Sisestage korrektne kuupäev ja kellaaeg formaadis AAAA-KK-PP TT:MM."
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "Sisestage korrektne e-posti aadress:"
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ühtegi faili ei saadetud. Kontrollige vormi kodeeringutüüpi."
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Laadige korrektne pilt. Fail, mille laadisite, ei olnud kas pilt või oli "
+"fail vigane."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s ei viita korrektsele pildile."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Telefoninumbrid peavad olema formaadis XXX-XXX-XXXX. \"%s\" on ebakorrektne."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s ei viita korrektsele QuickTime videole."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "Korrektne URL on nõutav."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Korrektne HTML on nõutav. Vead on järgnevad:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Vigane XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Vigane URL: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s on katkine."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Sisestage korrektne USA osariigilühend."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Jälgige oma keelekasutust. Sõna %s ei ole lubatud."
+msgstr[1] "Jälgige oma keelekasutust. Sõnad %s ei ole lubatud."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "See väli peab sobima väljaga '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Palun täitke vähemalt üks väli."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Palun täitke mõlemad lahtrid või jätke mõlemad tühjaks."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "See lahter on kohustuslik, kui %(field)s on %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "See lahter on nõutav, kui %(field)s ei ole %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Mitte-unikaalsed väärtused ei ole lubatud."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "See väärtus peab olema vahemikus %(lower)s kuni %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "See väärtus peab olema vähemalt %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "See väärtus ei tohi olla rohkem kui %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "See väärtus peab jaguma arvuga %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Palun sisestage korrektne kümnendarv."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Palun sisestage %s-kohaline kümnendarv."
+msgstr[1] "Palun sisestage %s-kohaline kümnendarv."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Palun sisestage korrektne kümnendarv, mille täisosa on %s-kohaline"
+msgstr[1] "Palun sisestage korrektne kümnendarv, mille täisosa on %s-kohaline"
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Palun sisestage korrektne kümnendarv, millel on maksimaalselt %s komakoht."
+msgstr[1] ""
+"Palun sisestage korrektne kümnendarv, millel on maksimaalselt %s komakohta."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Palun sisestage korrektne murdarv."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Veenduge, et üleslaetud fail on vähemalt %s baiti suur."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Veenduge, et üleslaetud fail ei ole suurem kui %s baiti."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Selle lahtri formaat on ebakorrektne."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "See lahter on ebakorrektne."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Ei õnnestunud leida midagi aadressilt %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s tagastas sobimatu Content-Type päise '%(contenttype)s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Palun sulgege sulgemata jäänud %(tag)s lipik real %(line)s. (Rea algus: \"%"
+"(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Rida %(line)s sisaldab teksti, mis ei ole selles kontekstis lubatud. (Rea "
+"algus: \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"Real %(line)s on vigane attribute \"%(attr)s\". (Rea algus: \"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"Real %(line)s on vigane lipik \"<%(tag)s>\". (Rea algus: \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Real %(line)s on lipik, millel on puudu üks või enam nõutavatest "
+"atribuutidest. (Rea algus: \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Real %(line)s on atribuut \"%(attr)s\", mille väärtus on vigane. (Rea algus: "
+"\"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+"%(type)s tüüpi %(object)s on juba olemas etteantud väärtustele %(field)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "See lahter on nõutav."
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "See väärtus peab olema täisarv."
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "See väärtus peab olema kas tõene või väär"
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "See lahter ei tohi olla tühi."
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr ""
+"Sisestage korrektne kuupäev ja kellaaeg kujul AAAA-KK-PP TT:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "See väärtus peab olema kümnendarv."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "See väärtus peab olema kas tühi, tõene või väär."
+
+#: db/models/fields/__init__.py:937 db/models/fields/__init__.py:950
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Sisestage korrektne kellaaeg formaadis TT:MM[:ss[.uuuuuu]]"
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Sisestage korrektne failinimi."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Palun sisestage korrektne %s."
+
+#: db/models/fields/related.py:782
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Et valida mitu, hoidke all \"Control\"-nuppu (Maci puhul \"Command\")."
+
+#: db/models/fields/related.py:862
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Palun sisestage korrektne %(self)s ID. Väärtus %(value)r on vigane."
+msgstr[1] ""
+"Palun sisestage korrektne %(self)s ID. Väärtused %(value)r on vigased."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Sisestage korrektne väärtus."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Veenduge, et see väärtus sisaldab kõige rohkem %(max)d tähemärki (hetkel on %"
+"(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Veenduge, et see väärtus sisaldab vähemalt %(min)d märki (hetkel on %(length)"
+"d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Veenduge, et see väärtus on väiksem või võrdne kui %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Veenduge, et see väärtus on suurem või võrdne kui %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Sisestage arv."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Veenduge, et kogu numbrikohtade arv ei ületaks %s."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Veenduge, et komakohtade arv ei ületaks %s."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Veenduge, et komast vasakul olevaid numbreid ei oleks rohkem kui %s."
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "Sisestage korrektne kuupäev."
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "Sisestage korrektne kellaaeg."
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "Sisestage korrektne kuupäev ja kellaaeg."
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "Ühtegi faili ei saadetud."
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Saadetud fail on tühi."
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "Sisestage korrektne URL."
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "See URL näib olevat katkine."
+
+#: forms/fields.py:601 forms/fields.py:652
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Valige korrektne väärtus. %(value)s ei ole valitav."
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "Sisestage väärtuste nimekiri."
+
+#: forms/fields.py:832
+msgid "Enter a valid IPv4 address."
+msgstr "Sisestage korrektne IPv4 aadress."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Valige korrektne väärtus. Valitud väärtus ei ole valitav."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Valige korrektne väärtus. %s ei ole valitav."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Veenduge, et tekst on alla %s tähemärgi."
+msgstr[1] "Veenduge, et tekst on alla %s tähemärgi."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Reavahetused ei ole lubatud."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Valige korrektne väärtus; '%(data)s' ei kuulu valikutesse %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Sisestage täisarv vahemikus -32 768 kuni 32 767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Sisestage postiivne arv."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Sisestage täisarv vahemikus 0 kuni 32 767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "jah,ei,võib-olla"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bait"
+msgstr[1] "%(size)d baiti"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.l."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "e.l."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PL"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "EL"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "südaöö"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "keskpäev"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "esmaspäev"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "teisipäev"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "kolmapäev"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "neljapäev"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "reede"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "laupäev"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "pühapäev"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "esmasp."
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "teisip."
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "kolmap."
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "neljap."
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "reede"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "laup."
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "pühap."
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "jaanuar"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "veebruar"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "märts"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "aprill"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "mai"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "juuni"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "juuli"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "august"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "september"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "oktoober"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "november"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "detsember"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jaan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "veeb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "märts"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "aug"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sept"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dets"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Jaan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Veeb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Aug."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dets."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "või"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "aasta"
+msgstr[1] "aastat"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "kuu"
+msgstr[1] "kuud"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "nädal"
+msgstr[1] "nädalat"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "päev"
+msgstr[1] "päeva"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "tund"
+msgstr[1] "tundi"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minut"
+msgstr[1] "minutit"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutit"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "j. N Y, H:i"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "j. F"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s edukalt loodud."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s edukalt muudetud."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s kustutatud."
diff --git a/webapp/django/conf/locale/et/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/et/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..2dc026e
--- /dev/null
+++ b/webapp/django/conf/locale/et/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/et/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/et/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..5a62fe3
--- /dev/null
+++ b/webapp/django/conf/locale/et/LC_MESSAGES/djangojs.po
@@ -0,0 +1,117 @@
+# Estonian translation for the Django Project.
+# Copyright (C) 2008, Django Project
+# This file is distributed under the same license as the django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: <removethis-eallik_at_gmail-com>\n"
+"POT-Creation-Date: 2008-06-02 19:42+0300\n"
+"PO-Revision-Date: 2008-06-17 12:29+0300\n"
+"Last-Translator: Erik Allik <removethis-eallik_at_gmail-com>\n"
+"Language-Team: Django-i18n <django-i18n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Saadaval %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Vali kõik"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Lisa"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Eemalda"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Valitud %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Tee valik(ud) ja klõpsa"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Puhasta kõik"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Jaanuar Veebruar Märts Aprill Mai Juuni Juuli August September Oktoober "
+"November Detsember"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "P E T K N R L"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Pühapäev Esmaspäev Teisipäev Kolmapäev Neljapäev Reede Laupäev"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Näita"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Varja"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Praegu"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Kell"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Vali aeg"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Kesköö"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 hommikul"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Keskpäev"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Tühista"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Täna"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalender"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Eile"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Homme"
diff --git a/webapp/django/conf/locale/eu/LC_MESSAGES/django.mo b/webapp/django/conf/locale/eu/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..c19c321
--- /dev/null
+++ b/webapp/django/conf/locale/eu/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/eu/LC_MESSAGES/django.po b/webapp/django/conf/locale/eu/LC_MESSAGES/django.po
new file mode 100644
index 0000000..37a829d
--- /dev/null
+++ b/webapp/django/conf/locale/eu/LC_MESSAGES/django.po
@@ -0,0 +1,4248 @@
+# translation of django.po to
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-02-08 19:37+0100\n"
+"PO-Revision-Date: 2008-02-14 22:12+0100\n"
+"Last-Translator: Ibon\n"
+"Language-Team:  <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arabiera"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengalera"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "Bulgariera"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr "Katalana"
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "Txekiera"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "Gales"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "Daniera"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "Alemaniera"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "Greziera"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "Ingeles"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "Espainola"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "Argentinako espainola"
+
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr "Persiera"
+
+#: conf/global_settings.py:52
+msgid "Finnish"
+msgstr "Finlandesa"
+
+#: conf/global_settings.py:53
+msgid "French"
+msgstr "Frantzesa"
+
+#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr "Gaelikoa"
+
+#: conf/global_settings.py:55
+msgid "Galician"
+msgstr "Galiziarra"
+
+#: conf/global_settings.py:56
+msgid "Hungarian"
+msgstr "Hungarierra"
+
+#: conf/global_settings.py:57
+msgid "Hebrew"
+msgstr "Hebreera"
+
+#: conf/global_settings.py:58
+msgid "Croatian"
+msgstr "Kroaziarra"
+
+#: conf/global_settings.py:59
+msgid "Icelandic"
+msgstr "Islandiera"
+
+#: conf/global_settings.py:60
+msgid "Italian"
+msgstr "Italiera"
+
+#: conf/global_settings.py:61
+msgid "Japanese"
+msgstr "Japoniera"
+
+#: conf/global_settings.py:62
+msgid "Korean"
+msgstr "Koreera"
+
+#: conf/global_settings.py:63
+msgid "Khmer"
+msgstr "khemerera"
+
+#: conf/global_settings.py:64
+msgid "Kannada"
+msgstr "Kanadiera"
+
+#: conf/global_settings.py:65
+msgid "Latvian"
+msgstr "Lituaniera"
+
+#: conf/global_settings.py:66
+msgid "Macedonian"
+msgstr "Mazedoniera"
+
+#: conf/global_settings.py:67
+msgid "Dutch"
+msgstr "Holandesa"
+
+#: conf/global_settings.py:68
+msgid "Norwegian"
+msgstr "Norvegiera"
+
+#: conf/global_settings.py:69
+msgid "Polish"
+msgstr "Poloniera"
+
+#: conf/global_settings.py:70
+msgid "Portugese"
+msgstr "Portugalera"
+
+#: conf/global_settings.py:71
+msgid "Brazilian"
+msgstr "Brasilgo portugalera"
+
+#: conf/global_settings.py:72
+msgid "Romanian"
+msgstr "Errumaniera"
+
+#: conf/global_settings.py:73
+msgid "Russian"
+msgstr "Errusiera"
+
+#: conf/global_settings.py:74
+msgid "Slovak"
+msgstr "Eslovakiera"
+
+#: conf/global_settings.py:75
+msgid "Slovenian"
+msgstr "Esloveniera"
+
+#: conf/global_settings.py:76
+msgid "Serbian"
+msgstr "Serbiera"
+
+#: conf/global_settings.py:77
+msgid "Swedish"
+msgstr "Suediera"
+
+#: conf/global_settings.py:78
+msgid "Tamil"
+msgstr "Tamilera"
+
+#: conf/global_settings.py:79
+msgid "Telugu"
+msgstr "Telegu hizkuntza"
+
+#: conf/global_settings.py:80
+msgid "Turkish"
+msgstr "Turkiera"
+
+#: conf/global_settings.py:81
+msgid "Ukrainian"
+msgstr "Ukrainera"
+
+#: conf/global_settings.py:82
+msgid "Simplified Chinese"
+msgstr "Txinera (sinpletua)"
+
+#: conf/global_settings.py:83
+msgid "Traditional Chinese"
+msgstr "Txinera (tradizionala)"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3> %s gatik:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Dena"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Edozein data"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Gaur"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Aurreko 7 egunak"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Hilabete hau"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Urte hau"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Bai"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Ez"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Ezezaguna"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "Ekintz hordua"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "Objetuaren id"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "Objeturaren repr"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "Ekintza botoia"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "Mezua aldatu"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "Log sarrera"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "log sarrerak"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Ez da lekua aurkitu"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Barkatu, eskatutako lekua ezin daiteke aurkitu"
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Hasiera"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serbidore errorea"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serbidor errorea (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Serbidore Errorea <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr "Arazo bat izan da. Web guneraren administradorea e-mail bidez ohartuko da eta laister konpondua egon beharko luke. Barkatu arazoak."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Ongi etorri."
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentazioa"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Hitz ezkutua aldatu"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Atera"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django admin. gunea"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administradorea"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Gehitu"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Aurrekoak"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Lekuaren bista"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Arren zuzendu ondoko akatsa"
+msgstr[1] "Arren zuzendu ondoko akatsak"
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Ordenaketa"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Ordena:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Gehitu  %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Ezabatu"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects: "
+"%(object_name)s '%(escaped_object)s' ezabatuz, erlazionatutako objetuak ere ezabatuko ditu, baina zure kontuak ez du baimenik, hurrengo objetuak ezabatzeko:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Ziur zaude %(object_name)s \"%(escaped_object)s\" ezabatu nai duzula ? "
+"Erlazionaturik dauden hurrengo elementuak ere ezabatuko dira:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Bai, ziur nago"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " %(filter_title)s gatik"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtroa"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "%(name)s aplikazioan Modeloak."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Aldatu"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Ezer aldatzeko baimenik ez dezu."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Azken ekintzak"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Nere ekintzak"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Ez dago ezer"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr "Zerbait gaizki dago zure data-basearekin. Ziurtatu ezazu data-baseko taulak sortuak izan direla eta usuario egokiarengatik irakurriak izan daitekela"
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuario Izena:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Hitz ezkutua:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:25
+msgid "Log in"
+msgstr "Sartu"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Data/ordua"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Usuarioa"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Ekintza"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr "Objetu honek ez du alketa zerrenda bat. Ziur asko, administrazio leku hau erabili gabe gehitua izan da."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Dena erakutsi"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Aurrera"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "%(counter)s emaitza"
+msgstr[1] "%(counter)s emaitzak"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s guztira"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Berria bezala gorde"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Gorde eta beste bat gehitu"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Gorde eta aldatzen jarraitu"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Gorde"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "Lehenengo usuario izena eta hitz ezkutua idatzi. Gero usuarioaren aukera gehiago aldatu ditzakezu"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Usuario izena"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Hitz ezkutua"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Hitz ezkutua (berriro)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "Idatzi berriro hitz ezkutua."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Hitz ezkutu berria idatzi <strong>%(username)s</strong> usuarioarentzat."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Markadoreak"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentazio markadoreak"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Markadoreak instalatzeko eraman linka zure erreminta panelera (toolbar).\n"
+"Orain markadorea lekuko edozein horritik aukeratu dezakezu. Hauetako \n"
+"markadore batzu, zure ordenadorea 'barnekoa' bezala erregistratua egotea\n"
+"behar dute. Hitzegin web lekuaren administradorearekin azalpen gehiagorako.</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Web horri honentzat dokumentazioa"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "Edozein lekutik, horriaren bista sortzaileara (view) salto egiten du."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Objetuaren ID erakutsi"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "Objetu bakarra erakusten duten horrietan, eduki mota (content-type) eta horriaren ID bakarra erakutsi, ."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Objetu hau aldatu ( leiho hau)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Objetu bakarra erakusten horrietan, adminiztrazio gunera joan."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Objetu hay aldatu (leiho berria)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Goian bezala baina administrzazio gune leio berrian irekitzen."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Mila esker gaur zure denbora web gunean erabiltzegatik."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Berrio sartu (log in)"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Hitz ezkutua aldatu"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Hitz ezkutuaren aldaketa arrakastatsua"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Hitz ezkutua aldatua izan da"
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr "Idatzi hitz ezkutu zaharra segurtasun arrazoiengatik eta gero hitz ezkutu berria bi aldiz, akatsik egiten ez duzula ziurtatu dezagun."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Hitz ezkutu zaharra"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Hitz ezkutu berria:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Hitz ezkutua baieztatu:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Nire hitz ezkutua aldatu"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Hitz ezkutua ezabatu"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Hitz ezkutuaren ezabaketa zuzena"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr "Hitz ezkutu berria e-mail bidez bidali dizugu. Epe laburrean jasokor duzu."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Mezu elektroniko hau jaso dezu, hitz ezkutuaren ezabaketa eskatu duzulako"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "%(site_name)s usuario kontuarentzat"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Zure hitz ezkutu berria %(new_password)s da"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Hitz ezkutua aldatu nai baduzu, zoaz web horri honetara joan:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Zure usuario izena (ahaztu badezu):"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Mila esker gure web gunea erabiltzeagatik!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s web gunearen taldea"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr "Hitz ezkutua ahaztu dezu ? Hidatzi zure e-mail helbidea, eta hitz ezkutu berri bat bidaliko dizugu."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mail helbidea:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Hitz ezkutua ezabatu"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Ordua:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Orain:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Aldatu:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Data guztiak"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s arrakastaz gehitua izan da."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Berriro alkatu zenezake beherago."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Usuario gehitu"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Hitz ezkutua aldaketa zuzena."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Hitz ezkutua aldatu: %s"
+
+#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "Mesedez idatzi usuario izena eta hitz ezkutu egokiak. Maiskula eta minuskula ondo bereiztu."
+
+#: contrib/admin/views/decorators.py:63
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr "Mesedez berriro sar saitez, sesioa zahartu bai da. Bidalitakoa gorde egin da."
+
+#: contrib/admin/views/decorators.py:70
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr "Zure nabegatzaileak ez ditu cookie-ak onartzen. Aktiba ezazu hauen erabilera eta ekarri ezazu horria hau berriro."
+
+#: contrib/admin/views/decorators.py:84
+msgid "Usernames cannot contain the '@' character."
+msgstr "Usuario izenek ezin dezkete @ karakterea eduki."
+
+#: contrib/admin/views/decorators.py:86
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Zure e-mail helbidea ez da zure usuario izena. Ahalegindo '%s' rekin."
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "filtroa:"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "bista:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "%r aplikazio ez da aurkitu"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "%(name)r modeloa ez da %(label)r aplikazioan aurkitu"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "erlazionaturik `%(label)s.%(type)s` objetua"
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "modeloa:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "erlazionaturik `%(label)s.%(name)s` objetua"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "%s dena"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "%s zenbakia"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s objetuan zutabeak"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Zenbaki osoa"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Boolearra (egia ala gezurra)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Katea (%(max_length)s gehienez)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Komaz bereiztutako zenbako osoak"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Data (ordurik gabe)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Data (orduarekin)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Zenbaki dezimala"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "E-mail helbidea"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Fitxegi bidea (path)"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Zenbaki erreala (float)"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP helbidea"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolearra (egia, gezurra edo hutsa[None])"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Gurazo modeloarekin erlazioa"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Telefono zenbakia"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Textua"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Ordua"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "U.S statua (bi letra maiuskula)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "XML textua"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ez dirudi  url heredu objetua"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Web gunearen administrazioa"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Beste %s gehitu dezakezu jarraian."
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "%s gehitu"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "%s gehituta."
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "eta"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "%s aldatuta."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "%s ezabatuta."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Ez da zutaberik aldatu."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" aldatuta izan da."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" arrakastarekin gehituta izan da. Jarraian aldatu dezakezu berriro."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "%s aldatu"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "%(fieldname)s bat edo  gehiago %(name)s an: %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "%(fieldname)s bat edo gehiago %(name)s n"
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\"  arrakastaz ezabatua izan da."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Ziur al zaude?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Aldaketa zerrenda: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "%s aukeratu"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "aldaketarako %s aukeratu"
+
+#: contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr "Data base errorea"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Hitz ezkutuak ez dira berdinak."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Usuario izen hori erabiltzen ari da."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "Zure nabegatzaileak ez ditu cookiak onartzen. Cookia-k beharrezkoak dira sistemn sartzeko."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Kontu hau az dago aktibatuta."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr "E-mail helbide horrek ez du usariorik. Ziur al zaude erregistraturik zaudela?"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Hitz ezkutu ezabatua %s n"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Bi hitz ezkutu berriak ez dira berdinak."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Zure hitz ezkutu zaharra ez zuzena. Idatzi ezazu berriro."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "izena"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "code izena (codename)"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "baimena"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "baimenak"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "taldea"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr "taldeak"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "usuario izena"
+
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Beharrezkoa. 30 karaktere edo gutxiago. Karaktere alfanumerikoak "
+"bakarrik (letra, zembaki eta '_')"
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "izena"
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "abizena"
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "e-mail helbidea"
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "hitz ezkutua"
+
+#: contrib/auth/models.py:135
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr "Erabili '[algo]$[salt]$[hexdigest]' edo erabili <a href=\"password/\">hitz ezkuta aldatu </a>."
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "Arduraduen egoera"
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Usuarioak administrazio gune honetan sartu dezkeen ala ez izendatzen du."
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "Aktiboa"
+
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "Usuarioak Django adminiztrazio gunean sartu daitekeen ala ez. Desaktiba ezazu aukera hau,kontua ezabatu ordez."
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "Usuario nagusia (superuser)"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "Usuario honek baimen guztiak ditu, banan banan denak zehaztu gabe."
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "azken sarrera"
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "erregistro eguna"
+
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr "Usuario honek, eskuz emandako baimen guztietaz aparte, berari egokitutako talde bakoitzari emandako baimenak ere izango ditu."
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "Usuarioaren baimenak"
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "Usuarioa"
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "Usuarioak"
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Informazio pertsonala"
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Baimenak"
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Data garrantzitsuak"
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Taldeak"
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "mezua"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Sesiotik kanpo"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
+msgid "object ID"
+msgstr "objetuaren ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "izenburua"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+msgid "comment"
+msgstr "komentarioa"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "puntaketa #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "puntaketa #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "puntaketa #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "puntaketa #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "puntaketa #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "puntaketa #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "puntaketa #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "puntaketa #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "puntuaketa zuzena"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "data/hordua bidalia"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
+msgid "is public"
+msgstr "publikoa"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "ezabatua"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr "Markatu kutxa hau komentario ezegokia bada. A \"Komentario hau ezabatua izan da\" mezua erakutsiko da bere ordez."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "Komentarioak"
+
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
+msgid "Content object"
+msgstr "Eduki objetua"
+
+#: contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"%(user)s -k bidalia %(date)s -n\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+msgid "person's name"
+msgstr "pertsonaren izena"
+
+#: contrib/comments/models.py:181
+msgid "ip address"
+msgstr "ip zenbakia"
+
+#: contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr "arduradunek onartua"
+
+#: contrib/comments/models.py:187
+msgid "free comment"
+msgstr "komentario librea"
+
+#: contrib/comments/models.py:188
+msgid "free comments"
+msgstr "komentario libreak"
+
+#: contrib/comments/models.py:250
+msgid "score"
+msgstr "puntuaketa"
+
+#: contrib/comments/models.py:251
+msgid "score date"
+msgstr "puntuaketa data"
+
+#: contrib/comments/models.py:255
+msgid "karma score"
+msgstr "karma puntuaketa"
+
+#: contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "karma puntuaketak"
+
+#: contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(user)s -k emandako puntaketa: %(score)d"
+
+#: contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"%(user)s -k komentario hay markatu du:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:285
+msgid "flag date"
+msgstr "markatutako eguna"
+
+#: contrib/comments/models.py:289
+msgid "user flag"
+msgstr "usuarioaren markaketa"
+
+#: contrib/comments/models.py:290
+msgid "user flags"
+msgstr "usuariaren markaketak"
+
+#: contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "%r -k markatuta"
+
+#: contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "ezabatze data"
+
+#: contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "moderatzaileak ezabatua"
+
+#: contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "moderatzaileak ezabatuak"
+
+#: contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "%r moderatzaileak ezabatua"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Hitz ezkutua ahaztu duzu?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Puntuaketak"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Beharrezkoa"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Aukerakoa"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Argazkia bidali"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentarioa:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Komentarioa aurreikusi"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Zure izena:"
+
+#: contrib/comments/views/comments.py:28
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Puntuaketa hau beharrezkoa da, gutxienez beste puntaketa bat sartu duzulako"
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] "Komentario hau, %(count)s komentario baino gutxiago egindako usuario batek bidalia da:<br><br>%(text)s"
+msgstr[1] ""
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Komentario hau usuario 'arin' batek bidalia da:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "POST bakarrik onartzen dira"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Beharrezko fitxategi bat edo gehiago ez dira bidali"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Norbaitek komentario formularioa maltzurki eraldatu du (segurtasun erasoa)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr "Komentario formularioak 'target' parametroa okerra zuen -- objetuaren ID okerra zen"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Komentario formularioa ez zuen ez 'berikusi'  edo 'bidali'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Usuario ezezagunak ezin dezakete botoa eman"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Komentario ID okerra"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Norberak ezin dezake botoa eman"
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "python model class izena"
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "edukiera moeta"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "edukiera moetak"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Adibidez: '/about/contact/'. Ziurta zaitez '/' karaktera hasieran eta bukaeran dagoela."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "izenburua"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "edukiera"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "komentarioak onartu"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "plantila izena"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr "Adibidez: 'flatpages/contact_page.html'. Hau ematen ez bada, sistema 'flatpages/default.html' erabiliko du."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "erregistratzea beharrezkoa da"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Hau markatuta badago, erregistratutako usuarioak bakarrik ikusiko dute horria."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "flat page"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "flat pages"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "garren"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "garren"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "garren"
+
+#: contrib/humanize/templatetags/humanize.py:52
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milioi"
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:55
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f bilioi"
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:58
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f trilioi"
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "one"
+msgstr "bat"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "two"
+msgstr "bi"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "three"
+msgstr "hiru"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "four"
+msgstr "lau"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "five"
+msgstr "bost"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "six"
+msgstr "sei"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "seven"
+msgstr "zazpi"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "eight"
+msgstr "zortzi"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "nine"
+msgstr "bederatzi"
+
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "today"
+msgstr "gaur"
+
+#: contrib/humanize/templatetags/humanize.py:96
+msgid "tomorrow"
+msgstr "bihar"
+
+#: contrib/humanize/templatetags/humanize.py:98
+msgid "yesterday"
+msgstr "atzo"
+
+#: contrib/localflavor/ar/forms.py:28
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "NNNN edo ANNNNAAA formatoan idatzi posta kode bat."
+
+#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Data honek zenbakiak bakarrik behar ditu."
+
+#: contrib/localflavor/ar/forms.py:51
+msgid "This field requires 7 or 8 digits."
+msgstr "Data honek 7 edo 8 digito behar ditu."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "CUIT zuzena idatzi XX-XXXXXXXX-X edo XXXXXXXXXXXX formatoan."
+
+#: contrib/localflavor/ar/forms.py:81
+msgid "Invalid CUIT."
+msgstr "CUIT okerra."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "4 zenbaki posta kodean idatzi."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "XXXXX-XXX formatoan zip kodea idatzi."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefono zenbakiak XX-XXXX-XXXX formatoa behar dute."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "Brasilgo estatu zuzen bat aukeratu. Hori ez dago aukeran."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "CPF zenbaki okerra."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Data honek gehienez 11 digito edo 14 karaktere behar ditu."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "CNPJ zenbaki okerra."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Data honek 14 digito behar ditu gutxienez"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Posta kodea idatzi XXX XXX formatoan."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "zip kodea XXXX formatoan idatzi."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Araba"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Gupuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "Errioxa"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Nafarroa"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Bizkaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Asturiaseko printzipadoa"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Euskal Herria"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Canaria uharteak"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "La Mancha-Gaztela"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Gaztela eta Leon"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Katalunia"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Nafarroako komunitate forala"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valeciako komunitatea"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Kode postal bat idatzi hurrengo formato eta tartearekin: 01XXX - 52XXX"
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr "Telefono zenbaki bat idatzi hurrengo formato batekin: 6XXXXXXXX, 8XXXXXXXX edo 9XXXXXXXX"
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Idatzi NIF,NIE edo CIF zuzena."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Idatzi NIF edo NIE zuzena."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "NIF kontrol kode okerra."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "NIE kontrol kode okerra."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "CIF kontrl kode okerra."
+
+#: contrib/localflavor/es/forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Mesedez idatzi banku kontu zenbaki zuzena XXXX-XXXX-XX-XXXXXXXXXX formatoarekin."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Banku kontu zenbakian kontrol digito okerra."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:19
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "nondik berbidalia"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr "Hau 'bide' absolutua izan beharko luke, dominio izena kenduta. 'Adibidez: events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "Nora berbidali"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "Hau 'bide' absolutua (goian bezala) edo URL osoa , 'http://'-rekin hasiz, izan daiteke."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "berbidali"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "berbidali"
+
+#: contrib/sessions/models.py:46
+msgid "session key"
+msgstr "sesioaren giltza"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "sesioaren data"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "amaiera data"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sesioa"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sesioak"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "dominio izena"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "erakusteko izena"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "web gunea"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "web guneak"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Balore honek, letrak, zenbakia eta '_' karakterak bakarrik eduki ditzazke."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "Balore honek, letrak, zenbakia eta  '_', '/','-' karakterak bakarrik eduki ditzazke."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Balore honek letrak, zenbakiak eta '_','-' karatereak bakarrik izan ditzazke."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Hemen letra maiuskulak ez dira onartzen."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Hemen letra minukulak ez dira onartzen."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Komaz bereiztutako digitoak bakarrik idatzi."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "E-mail norabide zuzenak idatzi, komaz bereizturik."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Idatzi IP zenbaki zuzena mesedez."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Balore hutsak ez dira hemen onartzen."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Zenbaki karaktereak bakarrik onartzen dira hemen."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Balore honek ezin daiteke digitoz bakarrik osatua egon."
+
+#: core/validators.py:128 newforms/fields.py:151
+msgid "Enter a whole number."
+msgstr "Zenbaki bat idatzi."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Karaktere alfabetikoak bakarrik onartzen dira hemen."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "Urtea 1900 edo haundiagoa izan behar du."
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Data okerra: %s"
+
+#: core/validators.py:156 db/models/fields/__init__.py:509
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Data zuzena idatzi, YYY-MM-DD formatoan."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Hordu zuzena idatzi HH:MM formatoan."
+
+#: core/validators.py:165 db/models/fields/__init__.py:583
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Idatzi data/hordua zuzena YYYY-MM-DD HH:MM formatoan."
+
+#: core/validators.py:170 newforms/fields.py:402
+msgid "Enter a valid e-mail address."
+msgstr "e-mail helbide zuzena idatzi."
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ez da fitxategirik bidali. Baiztatu ezazu formularioren kode formatoa."
+
+#: core/validators.py:193 newforms/fields.py:458
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "Bidali irudi zuzena. Zuk bidalitako fitxategia ez da irudi motako edo akatsa du."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "%s URLa ez da irudi zuzena."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefono zenbakiak XXX-XXX-XXXX formatoa eduki behar dute. \"%s\" okerra."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "%s URLa ez da QuickTime bideo zuzena."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "URL zuzena behar da."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"HTML zuzena behar da. Erroreak daude:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML okerra: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL okerra: %s"
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "%s URLa ez dabil ondo."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "U.S estatu laburpen zuzen idatzi."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Kontuz ibili! %s hitza ez dago hemen onartua."
+msgstr[1] ""
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Data hau '%s' data berdindu behar du."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Idatzi gutxienez data bat."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Hidatzi bi datuak edo utzi biak hutsik."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Data hau idatzi behar da, %(field)s %(value)s balorea badu."
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Data hau idatzi behar da %(field)s %(value)s balorea ez bada."
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Errepikatutako datak ez dira onartzen."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Balore hau %(lower)s eta %(upper)s artean egon behar du."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Gutxienez  %s izan behar du."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Balore hau %s baino txikiagoa izan behar du."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Balore hau %s-ren multiploa izan behar du."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Idatzi zenbaki dezimal zuzena mesedez."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Idatzi zenbaki dezimal zuzena gehienez %s digitorekin."
+msgstr[1] ""
+
+#: core/validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Idatzi zenbaki digital zuzena, %s digitorekin gutxienez alde osoan."
+msgstr[1] ""
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Idatzi zenbaki dezimal zuzena, %s digitorekin dezimalean."
+msgstr[1] ""
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Idatzi zenbaki erreal zuzena."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Ziurta zaitez bidalitako fitxategia gutxienex %s byte tamaina duela."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Ziurta zaitez bidalitako fitxategia gehienez %s byte dituela."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "Data honen formatoa okerra da."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "Data okerra."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Ezin daiteke ezer lortu %s-tik."
+
+#: core/validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "%(url)s URLak content-type okerra itzuli du: '%(contenttype)s'."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr "Mesedez itxi itxigabeko %(tag)s elementoa %(line)s lerroan. Lerroa hasiera: \"%(start)s\"."
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr "Texturen bat  %(line)s lerroan ez da onartzen contextu horretan. Lerro hasiera: \"%(start)s\"."
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr "\"%(attr)s\" %(line)s lerroan atribitu okerra da. Lerro hasiera: \"%(start)s\"."
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr "\"%(tag)s\" %(line)s lerroan elementu okerra da. Lerro hasiera: \"%(start)s\"."
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr "%(line)s lerroan elementu atributu bat edo gehiago faltan ditu. Lerro hasiera:\"%(start)s\"."
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" atributoa %(line)s lerroan balore okerra du. (Lerro hasiera: \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s with this %(type)s already exists for the given %(field)s."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Badago %(optname)s izenarekin %(fieldname)s-n."
+
+#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318
+#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746
+#: newforms/fields.py:45 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Kanpo hau beharrezkoa da."
+
+#: db/models/fields/__init__.py:418
+msgid "This value must be an integer."
+msgstr "Balore hau zenbaki osoa izan behar du."
+
+#: db/models/fields/__init__.py:454
+msgid "This value must be either True or False."
+msgstr "Balore hau egia ala gezurra izan behar du (True/False)."
+
+#: db/models/fields/__init__.py:475
+msgid "This field cannot be null."
+msgstr "Datu hau ezin daiteke hutsa izan (null)."
+
+#: db/models/fields/__init__.py:644
+msgid "This value must be a decimal number."
+msgstr "Balore hau zenbaki dezimala izan begar du."
+
+#: db/models/fields/__init__.py:755
+msgid "Enter a valid filename."
+msgstr "Idatzi fitxategi izen zuzena"
+
+#: db/models/fields/__init__.py:908
+msgid "This value must be either None, True or False."
+msgstr "Balore hau hutsa, egia edo gezurra izan behar du (None, True,False)"
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Mesades idatzi %s zuzena."
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "Bereiztu ID zerrenda koma bidez."
+
+#: db/models/fields/related.py:660
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Zapaldu \"Control\" karakterea edo \"Command\" Mac batean, bat baino gehiago aukeratzeko."
+
+#: db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Mesedez idatzi %(self)s ID zuzena. %(value)r okerra da."
+msgstr[1] ""
+
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr "Idatzi balio zuzena."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Ziurta zaitez balore honek gehienez %(max)d karactere dituela, %(length)d ditu orain."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Ziurta zaitez balore honek gutxienez %(min)d karaktere dituela ,%(length)d ditu orain."
+
+#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Ziurta zaitez balore hau %s baino txikiagoa edo berdina dela."
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Ziurta zaitez balore hau %s baino haundiagoa edo berdina dela."
+
+#: newforms/fields.py:180 newforms/fields.py:209
+msgid "Enter a number."
+msgstr "Idatzi zenbaki bat."
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Ziurta zaitez %s baino digito gehiago ez dagoela."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Ziurta zaitez %s baino dezimale gehiago ez dagoela."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Ziurta zaitez %s digitu baino gehiago ez dagoela puntu dezimalaren aurretik."
+
+#: newforms/fields.py:262 newforms/fields.py:723
+msgid "Enter a valid date."
+msgstr "Data zuzen bat idatzi."
+
+#: newforms/fields.py:295 newforms/fields.py:724
+msgid "Enter a valid time."
+msgstr "Ordu zuzen bat idatzi."
+
+#: newforms/fields.py:334
+msgid "Enter a valid date/time."
+msgstr "Data/Ordua zuzen bat idatzi."
+
+#: newforms/fields.py:433
+msgid "No file was submitted."
+msgstr "Ez da fitxategirik bidali."
+
+#: newforms/fields.py:434 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Bidalitako fitxategia hutsik dago."
+
+#: newforms/fields.py:496
+msgid "Enter a valid URL."
+msgstr "URL zuzen bat idatzi."
+
+#: newforms/fields.py:497
+msgid "This URL appears to be a broken link."
+msgstr "URL hau ez dabil ondo."
+
+#: newforms/fields.py:559 newforms/models.py:317
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Aukera zuzen bat aukeratu. Aukeratutakoa ez da zuzena."
+
+#: newforms/fields.py:598
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Aukeratu aukera zuzen bat. %(value)s ez da zuzena."
+
+#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:377
+msgid "Enter a list of values."
+msgstr "Balio zerrenda bat idatzi ezazu."
+
+#: newforms/fields.py:752
+msgid "Enter a valid IPv4 address."
+msgstr "IPv4 zuzen bat idatzi."
+
+#: newforms/models.py:378
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Aukera zuzena aukeratu. %s ez da zuzena."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Ziurta zaitez textuak %s karaktere baino gutxiago duela."
+msgstr[1] ""
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Lerro berriak (line breaks) ez dire onartzen hemen."
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Aukera zuzena aukeratu: '%(data)s' ez dago %(choices)s hartean."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Idatzi -32.768 eta 32.767 arteko zenbaki osoa."
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Zenbaki positboa idatzi."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Idatzi 0 eta 32.767 arteko zenbaki osoa."
+
+#: template/defaultfilters.py:691
+msgid "yes,no,maybe"
+msgstr "bai,ez,agian"
+
+#: template/defaultfilters.py:722
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] ""
+
+#: template/defaultfilters.py:724
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:726
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:727
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "gauerdia"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "eguerdia"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Astelehena"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Asteartea"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Asteazkena"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Osteguna"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Ostirala"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Larunbata"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Igandea"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Astelehe"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Astear"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Asteaz"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Oste"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Osti"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Lar"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Iga"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Urtarrila"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Otsaila"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Martxoa"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "Apirila"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Maiatza"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Ekaina"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Uztaila"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Abuztua"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "Iraila"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Urria"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "Azaroa"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Abendua"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "urt"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "ots"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "api"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "eka"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "uzt"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "abu"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "ira"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "urr"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "aza"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "abe"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Urt."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Ots."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Abu."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Ira."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Urr."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Aza."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Abe."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "edo"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "urtea"
+msgstr[1] ""
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "hilabetea"
+msgstr[1] ""
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "astea"
+msgstr[1] ""
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "eguna"
+msgstr[1] ""
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hordua"
+msgstr[1] ""
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minutu"
+msgstr[1] ""
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutuak"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:404
+msgid "DATE_FORMAT"
+msgstr "DATE_FORMAT"
+
+#: utils/translation/trans_real.py:405
+msgid "DATETIME_FORMAT"
+msgstr "DATETIME_FORMAT"
+
+#: utils/translation/trans_real.py:406
+msgid "TIME_FORMAT"
+msgstr "TIME_FORMAT"
+
+#: utils/translation/trans_real.py:422
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:423
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s arazorik gabe sortu da"
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s arazorik gabe aldatua izan da."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s ezabatua izan da."
+
diff --git a/webapp/django/conf/locale/eu/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/eu/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..646aa0f
--- /dev/null
+++ b/webapp/django/conf/locale/eu/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/eu/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/eu/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..2df6bd2
--- /dev/null
+++ b/webapp/django/conf/locale/eu/LC_MESSAGES/djangojs.po
@@ -0,0 +1,117 @@
+# Spanish translation for the django-admin JS files.
+# Copyright (C)
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-07-14 13:47-0500\n"
+"PO-Revision-Date: 2007-07-14 13:41-0500\n"
+"Last-Translator: Jorge Gajon <gajon@gajon.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Urtarrila Otsaila Martxoa Apirila Maiatza Ekaina Uztaila Abuztua Iraila Urria "
+"Azaroa Abendua"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "I A A A O O L"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Igandea Astelehene Asteartea Asteazkena Osteguna Ostirala Larunbata"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s Erabilgarri"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Denak aukeratu"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Gehitu"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Ezabatu"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s Aukeratuak"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Egin zure aukerak eta click egin "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Denak garbitu"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Orain"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Erlojua"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Aukeratu ordu bat"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Gauerdia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Eguerdia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Atzera"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Gaur"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Egutegia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Atzo"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Bihar"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Erakutsi"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Izkutatu"
diff --git a/webapp/django/conf/locale/fa/LC_MESSAGES/django.mo b/webapp/django/conf/locale/fa/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..ac3c31e
--- /dev/null
+++ b/webapp/django/conf/locale/fa/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/fa/LC_MESSAGES/django.po b/webapp/django/conf/locale/fa/LC_MESSAGES/django.po
new file mode 100644
index 0000000..16b0d7c
--- /dev/null
+++ b/webapp/django/conf/locale/fa/LC_MESSAGES/django.po
@@ -0,0 +1,4236 @@
+# Persian translation of Django.
+# Copyright (C) 2007 THE Django'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the Django package.
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-02-01 03:29+0330\n"
+"PO-Revision-Date: 2008-02-01 05:19+0330\n"
+"Last-Translator: starrynight <cmorgh@gmail.com>\n"
+"Language-Team: Persian <farsi@lists.sharif.edu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr ""
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr ""
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr ""
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr ""
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr ""
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr ""
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr ""
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr ""
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr ""
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "انگلیسی"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr ""
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr ""
+
+#: conf/global_settings.py:51
+#, fuzzy
+msgid "Persian"
+msgstr "اجازه‌ها"
+
+#: conf/global_settings.py:52
+msgid "Finnish"
+msgstr ""
+
+#: conf/global_settings.py:53
+msgid "French"
+msgstr ""
+
+#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr ""
+
+#: conf/global_settings.py:55
+msgid "Galician"
+msgstr ""
+
+#: conf/global_settings.py:56
+msgid "Hungarian"
+msgstr ""
+
+#: conf/global_settings.py:57
+msgid "Hebrew"
+msgstr ""
+
+#: conf/global_settings.py:58
+msgid "Croatian"
+msgstr ""
+
+#: conf/global_settings.py:59
+msgid "Icelandic"
+msgstr ""
+
+#: conf/global_settings.py:60
+msgid "Italian"
+msgstr "ایتالیایی"
+
+#: conf/global_settings.py:61
+msgid "Japanese"
+msgstr "ژاپنی"
+
+#: conf/global_settings.py:62
+msgid "Korean"
+msgstr "کره ای"
+
+#: conf/global_settings.py:63
+msgid "Khmer"
+msgstr ""
+
+#: conf/global_settings.py:64
+msgid "Kannada"
+msgstr ""
+
+#: conf/global_settings.py:65
+msgid "Latvian"
+msgstr ""
+
+#: conf/global_settings.py:66
+msgid "Macedonian"
+msgstr ""
+
+#: conf/global_settings.py:67
+msgid "Dutch"
+msgstr ""
+
+#: conf/global_settings.py:68
+msgid "Norwegian"
+msgstr "نروژی"
+
+#: conf/global_settings.py:69
+msgid "Polish"
+msgstr ""
+
+#: conf/global_settings.py:70
+msgid "Portugese"
+msgstr "پرتغالی"
+
+#: conf/global_settings.py:71
+msgid "Brazilian"
+msgstr "برزیلی"
+
+#: conf/global_settings.py:72
+msgid "Romanian"
+msgstr "رومانی"
+
+#: conf/global_settings.py:73
+msgid "Russian"
+msgstr "روسی"
+
+#: conf/global_settings.py:74
+msgid "Slovak"
+msgstr "اسلواکی"
+
+#: conf/global_settings.py:75
+msgid "Slovenian"
+msgstr ""
+
+#: conf/global_settings.py:76
+msgid "Serbian"
+msgstr "سرب"
+
+#: conf/global_settings.py:77
+msgid "Swedish"
+msgstr "سوءدی"
+
+#: conf/global_settings.py:78
+msgid "Tamil"
+msgstr "تامیل"
+
+#: conf/global_settings.py:79
+msgid "Telugu"
+msgstr ""
+
+#: conf/global_settings.py:80
+msgid "Turkish"
+msgstr "ترکی"
+
+#: conf/global_settings.py:81
+msgid "Ukrainian"
+msgstr ""
+
+#: conf/global_settings.py:82
+msgid "Simplified Chinese"
+msgstr ""
+
+#: conf/global_settings.py:83
+msgid "Traditional Chinese"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>بوسیلهٔ %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "همه"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "هر تاریخی"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "امروز"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "۷ روز اخیر"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "این ماه"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "امسال"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "بله"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "خیر"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "ناشناخته"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "زمان اتفاق"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "شناسهٔ شئ"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "صورت شیء"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "نشانه عمل"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "پیغام تغییر"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "مورد اتفاقات"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "موارد اتفاقات"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "صفحه یافت نشد"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "ما متاسفیم، اما صفحه مورد تقاضا یافت نشد."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "آغازه"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "خطای کارگزار"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "خطای کارگزار (۵۰۰)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "خطای کارگزار <em>(۵۰۰)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr "مشکلی وجود دارد. این مشکل توسط ایمیل به مدیر سایت گزارش داده شد و در اولین فرصت اصلاح خواهد شد. از بردباری شما متشکریم."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "خوش آمدید،"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "مستندات"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "تغییر گذرواژه"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "خروج"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "وب‌گاه مدیریت Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "مدیریت Django"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "ایجاد"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "تاریخچه"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "مشاهده در سایت"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgstr "لطفا مشکل زیر را حل نمایید."
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "ترتیب"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "ترتیب:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "اضافه‌کردن %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "حذف"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr "حذف %(object_name)s·'%(escaped_object)s' می تواند باعث حذف اشیاء مرتبط شود. اما اکانت شما دسترسی لازم برای حذف اشیاءی با انواع زیر را ندارد:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr "آیا مطمءنید که می خواهید %(object_name)s·\"%(escaped_object)s\" را حذف نمایید؟ کلیه اشیاء مرتبط زیر حذف خواهند شد:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "بله، مطمئن هستم."
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " با %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "فیلتر"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "مدلهای موجود در برنامه %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "تغییر"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "شما اجازهٔ ویرایش چیزی را ندارید."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "اعمال اخیر"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "اعمال من"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "چیزی در دسترس نیست"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr "در نصب بانک اطلاعاتی شما مشکلی وجود دارد. مطمءن شوید که جداول صحیح ایجاد شده اند و اطمینان حاصل کنید که بانک اطلاعاتی توسط کاربر صحیح قابل خواندن می باشد."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "نام کاربری:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "گذرواژه:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:25
+msgid "Log in"
+msgstr "ورود"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "تاریخ/ساعت"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "کاربر"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "عمل"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "DATE_WITH_TIME_FULL"
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr "این شیء تاریخچه تغییرات ندارد. احتمالا این شیء توسط سایت مدیریت ایجاد نشده است."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "نمایش همه"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "برو"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgstr "۱ نتیجه"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "کل %(full_result_count)s"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "ذخیره به عنوان جدید"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "ذخیره و ایجاد یکی دیگر"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "ذخیره و ادامه ویرایش"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "ذخیره"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "ابتدا یک نام کاربری و گذرواژه وارد کنید. سپس می توانید مشخصات دیگر را تغییر دهید."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "نام کاربری"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "گذرواژه"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "گذرواژه (تکرار)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "همان گذرواژهٔ بالایی را برای اطمینان دوباره وارد کنید."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "برای کابر <strong>%(username)s</strong> یک گذرنامهٔ جدید وارد کنید."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "یادداشت"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "یادداشت راهنما"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "راهنما برای این صفحه"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "شما را از هر صفحه ای که باشید به نمایی که صفحه را ایجاد کرده می برد"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "نمایش مشخصه شیء"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "نمایش محتوا و مشخصه منحصر به فرد برای صفحاتی که یک شیء را بیان می کنند."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "این شیء را ویرایش کنید (پنجره کنونی)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "رفتن به صفحه مدیر برای صفحاتی که یک شیء را بیان می کنند."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "این شیء را ویرایش کنید (پنجره جدید)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "مانند بالا، اما صفحه مدیر را در پنجره جدیدی باز می کند."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "متشکر از اینکه مدتی از وقت خود را به ما اختصاص دادید."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "ورود دوباره"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "تغییر گذرواژه"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "گذرواژه تغییر یافت."
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "گذرواژهٔ شما تغییر یافت."
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"گذرواژهٔ قدیمی خود را، برای امنیت بیشتر، وارد کنید و سپس گذرواژهٔ جدیدتان را "
+"دوبار وارد کنید تا ما بتوانیم چک کنیم که به درستی تایپ کرده‌اید."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "گذرواژهٔ قدیمی"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "گذرواژهٔ جدید"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "تکرار گذرواژه"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "تغییر گذرواژهٔ من"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "ایجاد گذرواژهٔ جدید"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "گذرواژهٔ جدید ایجاد شد."
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"ما به آدرس پست اکترونیکی‌ای که وارد کردید یک گذرواژهٔ جدید فرستادیم. به زودی "
+"به شما می‌رسد."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"درخواستی برای ایجاد گذرواژهٔ جدید با آدرس شما به ما رسیده است و ما این نامه "
+"را برای شما فرستادیم"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "برای حساب کاربریتان در %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "گذرواژهٔ جدیدتان: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "با رفتن به صفحهٔ زیر می‌توانید گذرواژه‌تان را عوض کنید:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "نام کاربریتان، اگر یادتان رفته است:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "متشکر از استفادهٔ شما از وبگاه ما"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "گروه %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr "گذرواژه خود را فراموش کرده اید؟ ایمیل خود را وارد کنید. ما گذرواژه را تغییر داده، آنرا برای شما ایمیل می کنیم."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "آدرس پست الکترونیکی:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "ایجاد گذرواژهٔ جدید"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "تاریخ:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "زمان:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "اکنون:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "تغییر:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "همه تاریخ ها"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(obj)s از %(name)s با موفقیت ایجاد شد."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "در زیر، می توانید مجددا آنرا ویراش کنید."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "ایجاد کاربر"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "گذرواژه با موفقیت تغییر یافت."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "تغییر گذرواژه: %s"
+
+#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "لطفا نام کاربری و گذرواژه صحیح را وارد نمایید. توجه نمایید که هر دو مقدار به حروف کوچک و بزرگ (انگلیسی) حساس می باشند."
+
+#: contrib/admin/views/decorators.py:63
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr "لطفا مجددا وارد شوید. زیرا مدت زیادی در سایت غیر فعال بوده اید. نگران نباشید، کلیه اطلاعات وارد شده شما ذخیره شده اند."
+
+#: contrib/admin/views/decorators.py:70
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr "به نظر می رسد تنظیمات browser شما طوری است که cookie ها را قبول نمی کند. لطفا cookie را در browser خود فعال نموده و مجددا تلاش نمایید."
+
+#: contrib/admin/views/decorators.py:84
+msgid "Usernames cannot contain the '@' character."
+msgstr "نام کاربری نمی تواند حاوی حرف '@' باشد."
+
+#: contrib/admin/views/decorators.py:86
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "آدرس ایمیل شما نام کابریتان نیست. %s را به جای آن امتحان کنید."
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "نشانه"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "فیلتر"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "نمایش:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "برنامه %r یافت نشد"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "مدل %(name)r در برنامه %(label)r یافت نشد"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "شیء `%(label)s %(type)s` مرتبط"
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "مدل:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "اشیاء `%(label)s.%(name)s` مرتبط"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "کل %s"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "عدد %s"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "فیلدهای شیء %s"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "عدد صحیح"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (درست یا غلط)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (تا %(max_length)s)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "اعداد صحیح که با ویلگول جدا شده اند"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "تاریخ (بدون زمان)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "تاریخ (با زمان)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "عدد دهدهی"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "آدرس ایمیل"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "مسیر فایل"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "عدد اعشاری"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "آدرس IP"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "‌Boolean (درست، نادرست یا پوچ)"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr ""
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "شماره تلفن"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "متن"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "زمان"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "آدرس اینترنت"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "ایالت آمریکا(دو حرف بزرگ)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "متن XML"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "به نظر نمی رسد %s یک شیء از نوع urlpattern باشد"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "مدیریت سایت"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "شما می توانید یک %s دیگر در زیر اضافه کنید"
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "اضافه کردن %s"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "%s اضافه شده"
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "و"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "%s تغییر یافته."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "%s حذف شده."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "فیلدی تغییر نیافته است."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "مورد %(name)s·\"%(obj)s\" با موفقیت تغییر یافت."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "مورد %(name)s·\"%(obj)s\" با موفقیت اضافه شد. شما می توانید در زیر آنرا ویرایش نمایید."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "تغییر %s"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr ""
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "آیا مطمئن هستید؟"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "تاریخچه تغییر: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "انتخاب %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "%s را برای تغییر انتخاب کنید"
+
+#: contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr "اشکال در بانک اطلاعاتی"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "دو فیلد گذرواژه با هم مطابقت ندارند."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "کاربری با این نام کاربری وجود دارد."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "به نطر می رسد browser شما cookie ها را قبول نمی کند. برای ورود به سایت cookie fhdn فعال شده باشد."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "این حساب غیرفعال است."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr "این ایمیل اکانتی در سیستم ندارد. آیا مطمئن هستید که عضو شده اید؟"
+
+#: contrib/auth/forms.py:107
+#, fuzzy, python-format
+msgid "Password reset on %s"
+msgstr "ایجاد گذرواژهٔ جدید"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "دو فیلد «گذرواژهٔ جدید» با هم مطابقت ندارند."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "گذرواژهٔ قدیمی شما اشتباه بود. لطفاً دوباره وارد کنید."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "نام"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "نام کد"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "اجازه"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "اجازه‌ها"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "گروه"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr "گروه‌ها"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "نام کاربری"
+
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "الزامی. ۳۰ حرف یا کمتر. فقط حروف الفبا (شماره، الفبا و خط زیر)."
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "نام"
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "نام خانوادگی"
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "آدرس پست الکترونیکی"
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "گذرواژه"
+
+#: contrib/auth/models.py:135
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "کارمند"
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "تعبیه شده برای اینکه در سایت مدیریت، کاربر بتواند یا نتواند وارد شود."
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "فعال"
+
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "تعبیه شده برای اینکه کاربر بتواند به سایت مدیریت وارد شود یا خیر. (به جای حذف کاربر آنرا تیک بزنید)."
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "ابرکاربر"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "تعبیه شده برای اینکه کاربر دسترسی نامحدود به کلیه بخشهای سایت مدیریت داشته باشد یا خیر."
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "آخرین ورود"
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "تاریخ پیوستن"
+
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr "علاوه بر دسترسی هایی که به طور دستی تنظیم شده، این کاربر تمامی دسترسی هایی که توسط گروه عضو شده به او می رسد را خواهد داشت."
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "اجازه‌های کاربر"
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "کاربر"
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "کاربرها"
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "اطلاعات شخصی"
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "اجازه‌ها"
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "تاریخ‌های مهم"
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "گروه‌ها"
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "پیغام"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "خارج شد"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
+msgid "object ID"
+msgstr "مشخصه شیء"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr ""
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+msgid "comment"
+msgstr "نظر"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "امتیاز #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "امتیاز #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "امتیاز #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "امتیاز #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "امتیاز $5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "امتیاز #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "امتیاز #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "امتیاز #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "آیا رتبه بندی قابل قبول است"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "تاریخ/زمان ثبت شد"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
+msgid "is public"
+msgstr "عمومی است"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "پاک شده است"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "نظرها"
+
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
+msgid "Content object"
+msgstr "شئ نظر"
+
+#: contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr "نظر داده شده توسط %(user)s در تاریخ %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+msgid "person's name"
+msgstr "نام شخص"
+
+#: contrib/comments/models.py:181
+msgid "ip address"
+msgstr "آدرس ip"
+
+#: contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr ""
+
+#: contrib/comments/models.py:187
+msgid "free comment"
+msgstr "نظر آزاد"
+
+#: contrib/comments/models.py:188
+msgid "free comments"
+msgstr "نظرهای آزاد"
+
+#: contrib/comments/models.py:250
+msgid "score"
+msgstr "امتیاز"
+
+#: contrib/comments/models.py:251
+msgid "score date"
+msgstr "تاریخ امتیاز"
+
+#: contrib/comments/models.py:255
+msgid "karma score"
+msgstr "امتیاز عملکرد"
+
+#: contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "امتیازهای عملکرد"
+
+#: contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d رتبه توسط %(user)s"
+
+#: contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/models.py:285
+msgid "flag date"
+msgstr "تاریخ پرچم"
+
+#: contrib/comments/models.py:289
+msgid "user flag"
+msgstr "پرچم کاربر"
+
+#: contrib/comments/models.py:290
+msgid "user flags"
+msgstr "پرچم‌های کاربر"
+
+#: contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "پرچم توسط %r"
+
+#: contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "تاریخ حذف"
+
+#: contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "حذف مدیر"
+
+#: contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "حذف های مدیر"
+
+#: contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "گذرواژه‌تان را فراموش کرده‌اید؟"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "لازم"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "اختیاری"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "ارسال عکس"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "نظر:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "پیش‌نمایش نظر"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "نام شما:"
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr ""
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr ""
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr ""
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr ""
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr ""
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr ""
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "نوع محتوا"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "نوع‌های محتوا"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "تیتر"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "محتوا"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr ""
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "نام قالب"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "عضویت اجباریست"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "اگر این انتخاب شود، فقط کاربران وارد شده می توانند این صفحه را مشاهده نمایند."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "صفحه تخت"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "صفحات تخت"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "اُم"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "اُم"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "اُم"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "اُم"
+
+#: contrib/humanize/templatetags/humanize.py:52
+#, python-format
+msgid "%(value).1f million"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:55
+#, python-format
+msgid "%(value).1f billion"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:58
+#, python-format
+msgid "%(value).1f trillion"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "one"
+msgstr "یک"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "two"
+msgstr "دو"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "three"
+msgstr "سه"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "four"
+msgstr "چهار"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "five"
+msgstr "پنج"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "six"
+msgstr "شش"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "seven"
+msgstr "هفت"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "eight"
+msgstr "هشت"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "nine"
+msgstr "نُه"
+
+#: contrib/humanize/templatetags/humanize.py:94
+#, fuzzy
+msgid "today"
+msgstr "امروز"
+
+#: contrib/humanize/templatetags/humanize.py:96
+msgid "tomorrow"
+msgstr "فردا"
+
+#: contrib/humanize/templatetags/humanize.py:98
+msgid "yesterday"
+msgstr "دیروز"
+
+#: contrib/localflavor/ar/forms.py:28
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "کد پستی را به شکل NNNN یا ANNNNAAA وارد نمایید."
+
+#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "در این فیلد فقط عدد می توانید وارد کنید."
+
+#: contrib/localflavor/ar/forms.py:51
+msgid "This field requires 7 or 8 digits."
+msgstr "این فیلد ۷ یا ۸ شماره لازم دارد."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:81
+msgid "Invalid CUIT."
+msgstr ""
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "کد پستی ۴ رقمی را وارد کنید."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "کد پستی را به شکل XXXXX-XXX وارد کنید."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "شماره تلفنها باید به شکل XX-XXXX-XXXX باشند."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "طول این فیلد حداقل ۱۱ شماره و حداکثر ۱۴ حرف می باشد."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "فیلد حداقل باید ۱۴ شماره باشد"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "کد پستس را به شکل XXX·XXX. وارد کنید."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "کد پستی صحیح را به شکل XXXX وارد کنید."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "کد پستی را به شکل XXXXX وارد کنید."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+#, fuzzy
+msgid "Avila"
+msgstr "آوریل"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+#, fuzzy
+msgid "Jaen"
+msgstr "ژانویه"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:19
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+#, fuzzy
+msgid "Guerrero"
+msgstr "خطای کارگزار"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "شماره تلفن را به طور صحیح وارد نمایید."
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+#, fuzzy
+msgid "Groningen"
+msgstr "نُه"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "این فیلد، ۸ رقم لازم دارد."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "این فیلد ۱۱ رقم لازم دارد."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+#, fuzzy
+msgid "Opole"
+msgstr "اختیاری"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+#, fuzzy
+msgid "Komarno"
+msgstr "مارس"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+#, fuzzy
+msgid "Malacky"
+msgstr "مه"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+#, fuzzy
+msgid "Sabinov"
+msgstr "نوامبر"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+#, fuzzy
+msgid "Snina"
+msgstr "نُه"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "کد پستی را به طور صحیح وارد نمایید."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+#, fuzzy
+msgid "Devon"
+msgstr "هفت"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+#, fuzzy
+msgid "Fife"
+msgstr "فیلتر"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "انگلستان"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:4
+#, fuzzy
+msgid "Eastern Cape"
+msgstr "نام کاربری"
+
+#: contrib/localflavor/za/za_provinces.py:5
+#, fuzzy
+msgid "Free State"
+msgstr "تاریخ امتیاز"
+
+#: contrib/localflavor/za/za_provinces.py:6
+#, fuzzy
+msgid "Gauteng"
+msgstr "اوت"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+#, fuzzy
+msgid "Western Cape"
+msgstr "نام کاربری"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr ""
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr ""
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr ""
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr ""
+
+#: contrib/sessions/models.py:46
+msgid "session key"
+msgstr ""
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "اطلاعات نشست"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "تاریخ انقضاء"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "نشست"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "نشست‌ها"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr ""
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "نام نمایش داده شده"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr ""
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr ""
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "این مقدار فقط باید حاوی کلمات، شماره ها و یا خط زیر باشد."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "حروف بزرگ در اینجا مجاز نمی باشند."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr ""
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr ""
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "یک آدرس ایمیل صحیح وارد کنید."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr ""
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr ""
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr ""
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "این مقدار عدد یا ترکیبی از آن نیست."
+
+#: core/validators.py:128 newforms/fields.py:151
+msgid "Enter a whole number."
+msgstr ""
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr ""
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr ""
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr ""
+
+#: core/validators.py:156 db/models/fields/__init__.py:509
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr ""
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr ""
+
+#: core/validators.py:165 db/models/fields/__init__.py:583
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr ""
+
+#: core/validators.py:170 newforms/fields.py:402
+msgid "Enter a valid e-mail address."
+msgstr "آدرس ایمیل صحیح را وارد نمایید."
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+
+#: core/validators.py:193 newforms/fields.py:458
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr ""
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr ""
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr ""
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr ""
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr ""
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "آدرس %s لینک شکسته است."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr ""
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgstr ""
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "این فیلد باید با فیلد %s مطابقت داشته باشد."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "لطفا چیزی را وارد کنید حداقل برای یک فیلد."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "لطفا هر دو فیلد را پر کنید یا هر دو را خالی بگذارید."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr ""
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "این فیلد باید پر شود اگر %(field)s با %(value)s برابر نباشد."
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr ""
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "این مقدار باید بین %(lower)s و %(upper)s باشد."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "این مقدار حداقل باید %s باشد."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "این مقدار نباید بیشتر از %s باشد."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "این مقدار باید توانی از %s باشد."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "لطفا یک عدد صحیح وارد کنید."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+"Please enter a valid decimal number with at most %s total digits."
+msgstr ""
+
+#: core/validators.py:447
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr ""
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr ""
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "لطفا یک عدد اعشاری صحیح وارد کنید."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr ""
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "این فیلد صحیح نمی باشد."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr ""
+
+#: core/validators.py:539
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318
+#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746
+#: newforms/fields.py:45 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "این فیلد لازم است."
+
+#: db/models/fields/__init__.py:418
+msgid "This value must be an integer."
+msgstr "این مقدار باید یک عدد صحیح باشد."
+
+#: db/models/fields/__init__.py:454
+msgid "This value must be either True or False."
+msgstr "این مقدار باید درست یا غلط باشد."
+
+#: db/models/fields/__init__.py:475
+msgid "This field cannot be null."
+msgstr "این فیلد نمی تواند پوچ باشد."
+
+#: db/models/fields/__init__.py:644
+msgid "This value must be a decimal number."
+msgstr "این مقدار باید یک عدد باشد."
+
+#: db/models/fields/__init__.py:755
+msgid "Enter a valid filename."
+msgstr ""
+
+#: db/models/fields/__init__.py:908
+msgid "This value must be either None, True or False."
+msgstr "این مقدار باید یکی از مقادیر None یا True یا False باشد."
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "لطفا %s صحیحی وارد نمایید."
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr ""
+
+#: db/models/fields/related.py:660
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+
+#: db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr ""
+
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr "یک مقدار صحیح وارد کنید."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+
+#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:180 newforms/fields.py:209
+msgid "Enter a number."
+msgstr "یک عدد وارد نمایید."
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr ""
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr ""
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr ""
+
+#: newforms/fields.py:262 newforms/fields.py:723
+msgid "Enter a valid date."
+msgstr "تاریخ را به شکل صحیح وارد نمایید."
+
+#: newforms/fields.py:295 newforms/fields.py:724
+msgid "Enter a valid time."
+msgstr "یک زمان صحیح وارد کنید."
+
+#: newforms/fields.py:334
+msgid "Enter a valid date/time."
+msgstr "تاریخ/زمان را به شکل صحیح وارد نمایید."
+
+#: newforms/fields.py:433
+msgid "No file was submitted."
+msgstr "فایلی ارسال نشده است."
+
+#: newforms/fields.py:434 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr ""
+
+#: newforms/fields.py:496
+msgid "Enter a valid URL."
+msgstr ""
+
+#: newforms/fields.py:497
+msgid "This URL appears to be a broken link."
+msgstr "به نظر می رسد این آدرس یک پیوند شکسته است."
+
+#: newforms/fields.py:559 newforms/models.py:317
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+
+#: newforms/fields.py:598
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+
+#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:377
+msgid "Enter a list of values."
+msgstr ""
+
+#: newforms/fields.py:752
+msgid "Enter a valid IPv4 address."
+msgstr ""
+
+#: newforms/models.py:378
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr ""
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgstr ""
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr ""
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr ""
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "یک عدد مثبت وارد نمایید."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr ""
+
+#: template/defaultfilters.py:691
+msgid "yes,no,maybe"
+msgstr "بله،خیر،شاید"
+
+#: template/defaultfilters.py:722
+#, fuzzy, python-format
+msgid "%(size)d byte"
+msgstr "%(size)d یایت"
+
+#: template/defaultfilters.py:724
+#, python-format
+msgid "%.1f KB"
+msgstr ""
+
+#: template/defaultfilters.py:726
+#, python-format
+msgid "%.1f MB"
+msgstr ""
+
+#: template/defaultfilters.py:727
+#, python-format
+msgid "%.1f GB"
+msgstr ""
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "ب.ظ."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "صبح"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "بعد از ظهر"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "صبح"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "نیمه شب"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "ظهر"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "دوشنبه"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "سه شنبه"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "چهارشنبه"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "پنجشنبه"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "جمعه"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "شنبه"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "یکشنبه"
+
+#: utils/dates.py:10
+#, fuzzy
+msgid "Mon"
+msgstr "یک"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "سه شنبه"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "چهارشنبه"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "سه شنبه"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "جمعه"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "شنبه"
+
+#: utils/dates.py:11
+#, fuzzy
+msgid "Sun"
+msgstr "ژوئن"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "ژانویه"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "فوریه"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "مارس"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "آوریل"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "مه"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "ژوئن"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "ژوئیه"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "اوت"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "سپتامبر"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "اکتبر"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "نوامبر"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "دسامبر"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "ژانویه"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "فوریه"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "مارس"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "آوریل"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "مه"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "ژوئن"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "ژوئیه"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "اوت"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "سپتامبر"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "اکتبر"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "نوامبر"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "دسامبر"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "ژانویه"
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "فوریه"
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "اوت"
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "سپتامبر"
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "اکتبر"
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "نوامبر"
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "دسامبر"
+
+#: utils/text.py:127
+#, fuzzy
+msgid "or"
+msgstr "چهار"
+
+#: utils/timesince.py:21
+#, fuzzy
+msgid "year"
+msgstr "سال"
+
+#: utils/timesince.py:22
+#, fuzzy
+msgid "month"
+msgstr "ماه"
+
+#: utils/timesince.py:23
+#, fuzzy
+msgid "week"
+msgstr "هفته"
+
+#: utils/timesince.py:24
+#, fuzzy
+msgid "day"
+msgstr "روز"
+
+#: utils/timesince.py:25
+#, fuzzy
+msgid "hour"
+msgstr "ساعت"
+
+#: utils/timesince.py:26
+#, fuzzy
+msgid "minute"
+msgstr "دقیقه"
+
+#: utils/timesince.py:46
+#, fuzzy
+msgid "minutes"
+msgstr "دقیقه"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr ""
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ""
+
+#: utils/translation/trans_real.py:399
+msgid "DATE_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:400
+msgid "DATETIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:401
+msgid "TIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:417
+msgid "YEAR_MONTH_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:418
+msgid "MONTH_DAY_FORMAT"
+msgstr ""
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s با موفقیت ایجاد شد."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s با موفقیت به روز شد."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s حذف شد."
+
+#~ msgid "AnonymousUser"
+#~ msgstr "کاربر ناشناس"
+
+#~ msgid "%d milliseconds"
+#~ msgstr "%d میلی‌ثانیه"
diff --git a/webapp/django/conf/locale/fa/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/fa/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..f2e8940
--- /dev/null
+++ b/webapp/django/conf/locale/fa/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/fa/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/fa/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..56dcedc
--- /dev/null
+++ b/webapp/django/conf/locale/fa/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-06-24 22:09+1000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr ""
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr ""
diff --git a/webapp/django/conf/locale/fi/LC_MESSAGES/django.mo b/webapp/django/conf/locale/fi/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..156bf0c
--- /dev/null
+++ b/webapp/django/conf/locale/fi/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/fi/LC_MESSAGES/django.po b/webapp/django/conf/locale/fi/LC_MESSAGES/django.po
new file mode 100644
index 0000000..d74fa15
--- /dev/null
+++ b/webapp/django/conf/locale/fi/LC_MESSAGES/django.po
@@ -0,0 +1,4636 @@
+# Finnish translation of Django
+# Copyright (C) 2006-2007
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-18 01:15+0300\n"
+"PO-Revision-Date: 2007-09-15 00:34+0300\n"
+"Last-Translator: Ville Säävuori <ville@unessa.net>\n"
+"Language-Team: Django I18N <Django-I18N@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: FINLAND\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "arabia"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "bengali"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "bulgaria"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "katalaani"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "tšekki"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "wales"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "tanska"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "saksa"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "kreikka"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "englanti"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "espanja"
+
+#: conf/global_settings.py:55
+#, fuzzy
+msgid "Estonian"
+msgstr "viro"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "Argentiinan espanja"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "baski"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "persia"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "suomi"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "ranska"
+
+#: conf/global_settings.py:61
+#, fuzzy
+msgid "Irish"
+msgstr "turkki"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "galicia"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "unkari"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "heprea"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "kroatia"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "islanti"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "italia"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "japani"
+
+#: conf/global_settings.py:69
+#, fuzzy
+msgid "Georgian"
+msgstr "saksa"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "korea"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "khmer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "latvia"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "liettua"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "makedonia"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "hollanti"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "norja"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "puola"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "portugali"
+
+#: conf/global_settings.py:80
+#, fuzzy
+msgid "Brazilian Portuguese"
+msgstr "brasilian portugali"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "romania"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "venäjä"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "slovakia"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "slovenia"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "serbia"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "ruotsi"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "tamili"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "turkki"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ukraina"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "kiina (yksinkertaistettu)"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "kiina (perinteinen)"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Yksi %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Kaikki"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Mikä tahansa päivä"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Tänään"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Viimeiset 7 päivää"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Tässä kuussa"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Tänä vuonna"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Kyllä"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Ei"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Tuntematon"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "tapahtumahetki"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "kohteen tunniste"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "kohteen tiedot"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "tapahtumatyyppi"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "selitys"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "lokimerkintä"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "lokimerkinnät"
+
+#: contrib/admin/options.py:143 contrib/admin/options.py:202
+#, fuzzy
+msgid "None"
+msgstr "yksi"
+
+#: contrib/admin/options.py:413
+#, python-format
+msgid "Changed %s."
+msgstr "Muokattu: %s."
+
+#: contrib/admin/options.py:413 contrib/admin/options.py:423
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "ja"
+
+#: contrib/admin/options.py:418
+#, fuzzy, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Lisää uusi %(name)s"
+
+#: contrib/admin/options.py:422
+#, fuzzy, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "tähän liittyvät `%(label)s.%(name)s`-kohteet"
+
+#: contrib/admin/options.py:427
+#, fuzzy, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "tähän liittyvät `%(label)s.%(name)s`-kohteet"
+
+#: contrib/admin/options.py:431
+msgid "No fields changed."
+msgstr "Ei muutoksia kenttiin."
+
+#: contrib/admin/options.py:492 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" on nyt lisätty."
+
+#: contrib/admin/options.py:496 contrib/admin/options.py:529
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "Voit muokata sitä uudelleen alla."
+
+#: contrib/admin/options.py:506 contrib/admin/options.py:539
+#, python-format
+msgid "You may add another %s below."
+msgstr "Uusi %s on lisättävissä alla."
+
+#: contrib/admin/options.py:527
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" on nyt muutettu."
+
+#: contrib/admin/options.py:535
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" on nyt lisätty. Voit muokata sitä uudelleen alla."
+
+#: contrib/admin/options.py:601
+#, python-format
+msgid "Add %s"
+msgstr "Uusi %s"
+
+#: contrib/admin/options.py:678
+#, python-format
+msgid "Change %s"
+msgstr "Muokkaa: %s"
+
+#: contrib/admin/options.py:709
+msgid "Database error"
+msgstr "Tietokantavirhe"
+
+#: contrib/admin/options.py:758
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" on poistettu."
+
+#: contrib/admin/options.py:765
+msgid "Are you sure?"
+msgstr "Oletko varma?"
+
+#: contrib/admin/options.py:792
+#, python-format
+msgid "Change history: %s"
+msgstr "Muokkaushistoria: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Käyttäjätunnus tai salasana ei kelpaa. Huomaa, että isot ja pienet kirjaimet "
+"ovat merkitseviä."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Kirjaudu uudelleen sisään, koska istuntosi on vanhentunut. Muutoksesi ovat "
+"silti tallessa."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Selaimesi ei salli evästeitä. Muuta asetukset sallimaan evästeet, lataa tämä "
+"sivu uudelleen ja yritä uudelleen."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Käyttäjätunnuksessa ei saa olla '@'-merkkiä."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Käyttäjätunnus ei ole sama kuin sähköpostiosoite. Kokeile '%s'."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Sivuston ylläpito"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Kirjaudu sisään"
+
+#: contrib/admin/util.py:126
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:131
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Pvm:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Klo:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Tällä hetkellä:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Muokkaa:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Sivua ei löydy"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Pahoittelemme, pyydettyä sivua ei löytynyt."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Etusivu"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Palvelinvirhe"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Palvelinvirhe (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Palvelinvirhe <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Palvelimella on tapahtunut virhe. Se on ilmoitettu sivuston ylläpitäjille "
+"sähköpostilla ja korjataan pian. Kiitämme kärsivällisyydestä."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Tervetuloa,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Ohjeita"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Vaihda salasana"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Kirjaudu ulos"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django-sivuston ylläpito"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Djangon ylläpito"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Lisää uusi"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Muokkaushistoria"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Näytä lopputulos"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Korjaa virhe."
+msgstr[1] "Korjaa virheet."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Lisää uusi %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Suodatin"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Poista"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Kohteen '%(escaped_object)s' (%(object_name)s) poisto poistaisi myös siihen "
+"liittyviä kohteita, mutta sinulla ei ole oikeutta näiden kohteiden "
+"poistamiseen:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Haluatko varmasti poistaa kohteen \"%(escaped_object)s\" (%(object_name)s)? "
+"Myös seuraavat kohteet poistettaisiin samalla:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Kyllä, olen varma"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " %(filter_title)s:"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Sovelluksen %(name)s mallit."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Muokkaa"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Sinulla ei ole oikeutta muokata mitään."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Viimeisimmät muutokset"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Sinun tekemäsi muutokset"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Ei yhtään"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Tietokanta-asennuksessasi on jotain vialla. Varmistu, että sopivat taulut on "
+"luotu ja että oikea käyttäjä voi lukea tietokantaa."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Käyttäjätunnus:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Salasana:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Pvm/klo"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Käyttäjä"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Toiminto"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Tällä kohteella ei ole muutoshistoriaa. Sitä ei ole lisätty tämän "
+"ylläpitosivun avulla."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Näytä kaikki"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Etsi"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 hakutulas"
+msgstr[1] "%(counter)s hakutulosta"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "yhteensä %(full_result_count)s"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Tallenna uutena"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Tallenna ja lisää seuraava"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Tallenna välillä ja jatka muokkaamista"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Tallenna ja poistu"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Syötä ensin käyttäjätunnus ja salasana. Sen jälkeen voit muokata muita "
+"käyttäjän tietoja."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Käyttäjätunnus"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Salasana"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Salasana toistamiseen"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Syötä sama salasana tarkistuksen vuoksi toistamiseen."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Syötä käyttäjän <strong>%(username)s</strong> uusi salasana."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Kiitos sivuillamme viettämästäsi ajasta."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Kirjaudu uudelleen sisään"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Salasanan muuttaminen"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Salasanan muuttaminen onnistui"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Salasanasi on muutettu."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Syötä vanha salasanasi varmistukseksi, ja syötä sitten uusi salasanasi\n"
+"kaksi kertaa, jotta se tulee varmasti oikein."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Vanha salasana:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Uusi salasana:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Varmista uusi salasana:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Vaihda salasana"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Salasanan nollaus"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+#, fuzzy
+msgid "Password reset complete"
+msgstr "Salasanan nollaus"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Salasanasi on asetettu. Nyt voit kirjautua sisään."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#, fuzzy
+msgid "Password reset confirmation"
+msgstr "Salasanan nollaus"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+#, fuzzy
+msgid "Enter new password"
+msgstr "Uusi salasana:"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+#, fuzzy
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Syötä vanha salasanasi varmistukseksi, ja syötä sitten uusi salasanasi\n"
+"kaksi kertaa, jotta se tulee varmasti oikein."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+#, fuzzy
+msgid "Password reset unsuccessful"
+msgstr "Salasanan nollaus ei onnistunut"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"Salasanan nollauslinkki oli virheellinen, mahdollisesti siksi että se on jo "
+"käytetty. Ole hyvä ja pyydä uusi salasanan nollaus."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Salasanan nollaus onnistui"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+#, fuzzy
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Uusi salasanasi on lähetetty antamaasi sähköpostiosoitteeseen.\n"
+"Se saapuu tuota pikaa."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Sait tämän viestin, koska pyysit uutta salasanaa"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "sivuston %(site_name)s käyttäjätilillesi"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Ole hyvä ja mene oheiselle sivulle valitsemaan uusi salasana:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Käyttäjätunnuksesi siltä varalta, että olet unohtanut sen:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Kiitos vierailustasi sivuillemme!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s ylläpitäjät"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+#, fuzzy
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Unohditko salasanasi? Syötä alle sähköpostiosoitteesi, niin \n"
+"lähetämme sinulle uuden salasanan."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Sähköpostiosoite:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Nollaa salasana"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "Kaikki päivät"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Valitse %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Valitse muokattava %s"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "sivusto"
+
+#: contrib/admin/views/template.py:38
+#, fuzzy
+msgid "template"
+msgstr "mallipohjan nimi"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "suodatin:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "view:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Sovellusta %r ei löydy"
+
+#: contrib/admindocs/views.py:194
+#, fuzzy, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Sovelluksesta %(label)r ei löydy mallia %(name)r"
+
+#: contrib/admindocs/views.py:206
+#, fuzzy, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "tähän liittyvä `%(label)s.%(type)s`-kohde"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "malli:"
+
+#: contrib/admindocs/views.py:237
+#, fuzzy, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "tähän liittyvät `%(label)s.%(name)s`-kohteet"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "kaikki %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "%s-kohteiden lukumäärä"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s-kohteiden kentät"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Kokonaisluku"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Totuusarvo: joko tosi (True) tai epätosi (False)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Merkkijono (enintään %(max_length)s merkkiä)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Pilkulla erotetut kokonaisluvut"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Päivämäärä (ilman kellonaikaa)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Päivämäärä ja kellonaika"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Desimaaliluku"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "Sähköpostiosoite"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Tiedostopolku"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Liukuluku"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP-osoite"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Totuusarvo: joko tosi (True), epätosi (False) tai ei mikään (None)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Relaatio emomalliin"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Puhelinnumero"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Tekstiä"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Kellonaika"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL-osoite"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "USA:n osavaltio (kaksikirjaiminen versaalein)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML-teksti"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ei näytä urlpattern-objektilta"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Kirjanmerkkiset"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Ohjeiden kirjanmerkkiset"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Asenna kirjanmerkkinen raahaamalla linkki kirjanmerkkien "
+"työkalupalkkiin tai napsauttamalla linkkiä oikeanpuoleisella hiiren "
+"painikkeella ja valitsemalla kirjanmerkkeihin lisäämisen. Sen jälkeen voit "
+"valita kirjanmerkkisen miltä tahansa sivuston sivulta. Huomaa, että jotkin "
+"näistä kirjanmerkkisistä toimivat vain, jos selaat sivustoa \"paikalliseksi"
+"\" määritellyltä tietokoneelta (kysy lisätietoja verkkonne ylläpitäjältä).</"
+"p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Tämän sivun ohjeita"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "Vie avoinna olevan sivun luoneen näkymän ohjeisiin."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Näytä kohteen tunniste"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Näyttää yksittäistä kohdetta vastaavilla sivuilla kohteen tyypin ja "
+"tunnisteen."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Muokkaa tätä kohdetta (tässä ikkunassa)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Siirtyy yksittäistä kohdetta vastaavalta sivulta kohteen ylläpitosivulle."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Muokkaa tätä kohdetta (uudessa ikkunassa)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Kuten yllä, mutta avaa ylläpitosivun uuteen ikkunaan."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Henkilökohtaiset tiedot"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Oikeudet"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Tärkeät päivämäärät"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Ryhmät"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Uusi käyttäjä"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Salasanan muuttaminen onnistui."
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Vaihda salasana: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+" Vaaditaan. Enintään 30 kirjanta (a-z), numeroa (0-9) tai alaviivaa (_)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr ""
+"Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) ja alaviivoja "
+"(_)."
+
+#: contrib/auth/forms.py:18
+#, fuzzy
+msgid "Password confirmation"
+msgstr "Salasanan muuttaminen"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "Käyttäjätunnus on jo rekisteröity."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "Salasanat eivät täsmää."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Tämä käyttäjätili ei ole voimassa."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "Selaimesi ei salli evästeitä. Sisäänkirjautuminen vaatii evästeen."
+
+#: contrib/auth/forms.py:92
+#, fuzzy
+msgid "E-mail"
+msgstr "Sähköpostios."
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Sähköpostiosoitetta vastaavaa käyttäjätunnusta ei löydy. Oletko varmasti jo "
+"rekisteröitynyt?"
+
+#: contrib/auth/forms.py:126
+#, fuzzy, python-format
+msgid "Password reset on %s"
+msgstr "Salasanan nollaus"
+
+#: contrib/auth/forms.py:134
+#, fuzzy
+msgid "New password"
+msgstr "Uusi salasana:"
+
+#: contrib/auth/forms.py:135
+#, fuzzy
+msgid "New password confirmation"
+msgstr "Uusi salasana uudelleen:"
+
+#: contrib/auth/forms.py:160
+#, fuzzy
+msgid "Old password"
+msgstr "Vanha salasana:"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Vanha salasana on virheellinen. Yritä uudelleen."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "nimi"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "koodinimi"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "oikeus"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "oikeudet"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "ryhmä"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "ryhmät"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "tunnus"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "etunimi"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "sukunimi"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "sähköposti"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "salasana"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Syötä muodossa '[algo]$[suola]$[heksa-digest]' tai käytä <a href=\"password/"
+"\">muutoslomaketta</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "ylläpitäjä"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "Ylläpitäjillä on pääsy tähän sivuston ylläpito-osioon."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "voimassa"
+
+#: contrib/auth/models.py:143
+#, fuzzy
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Määrää, voiko käyttäjä kirjautua sisään. Tällä voi estää käyttäjätilin "
+"käytön poistamatta sitä."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "pääkäyttäjä"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Antaa käyttäjälle kaikki oikeudet ilman, että niitä täytyy erikseen luetella."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "viimeksi kirjautunut"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "liittynyt"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Tässä valittujen oikeuksien lisäksi käyttäjä saa myös kaikki niiden ryhmien "
+"oikeudet, joiden jäsen hän on."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "käyttäjän oikeudet"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "käyttäjä"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "käyttäjät"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "viesti"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "Kirjautunut ulos"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "kohteen tunniste"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "otsikko"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "kommentti"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "1. pisteytys"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "2. pisteytys"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "3. pisteytys"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "4. pisteytys"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "5. pisteytys"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "6. pisteytys"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "7. pisteytys"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "8. pisteytys"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "on sallittu pisteytys"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "lähetyshetki"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "on julkinen"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "on poistettu"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Rastita jos kommentti on asiaankuulumaton. Kommentin tilalla näytetään\n"
+"viesti \"Tämä kommentti on poistettu\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "kommentit"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Kommentoitu kohde"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+" Kirjoittanut %(user)s, pvm %(date)s\\n\n"
+" \\n\n"
+" %(comment)s\\n\n"
+" \\n\n"
+" http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "henkilön nimi"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "IP-osoite"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "ylläpidon hyväksymä"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "vapaa kommentti"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "vapaat kommentit"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "pisteet"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "pisteytyspäivä"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "karma-pisteytys"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "karma-pisteytykset"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d pistettä käyttäjältä %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+" %(user)s on merkinnyt tämän kommentin:\\n\n"
+" \\n\n"
+" %(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "merkintäpäivä"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "käyttäjän merkki"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "käyttäjien merkit"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Käyttäjän %r merkki"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "poistamispäivä"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "valvojan poisto"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "valvojien poistot"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Valvojan %r poisto"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Unohditko salasanasi?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Pisteytykset"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Vaaditaan"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Vapaavalintainen"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Lähetä valokuva"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Kommentti:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Esikatsele kommenttia"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Nimesi:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"Tämä pisteytys on annettava, koska olet syöttänyt ainakin yhden muunkin "
+"pisteytyksen."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Kommentin kirjoittanut käyttäjä on kirjoittanut vain yhden kommentin:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Kommentin kirjoittanut käyttäjä on kirjoittanut alle %(count)s kommenttia:\n"
+"\n"
+"%(text)s"
+
+# Mitä "sketchy user" tarkoittaa?
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Tämä on \"sketchy\"-käyttäjän kirjoittama kommentti:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Vain POST-kutsut sallittu"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Yksi tai useampi vaadittu kenttä on jäänyt täyttämättä"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Kommenttilomaketta on käpälöity (turvallisuusrike)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Kommenttilomakkeen 'target'-parametri ei kelpaa -- kohteen ID oli "
+"virheellinen"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Kommenttilomake ei pyytänyt esikatselua tai lähettämistä"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonyymit käyttäjät eivät voi äänestää"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Kommentin tunniste on virheellinen"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Itseään ei voi äänestää"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "mallin python-luokan nimi"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "sisältötyyppi"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "sisältötyypit"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Esimerkki: '/tietoja/yhteystiedot/'. Varmista, että sekä alussa että lopussa "
+"on kauttaviiva."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä ala-, tavu- "
+"ja kauttaviivoja (_ - /)."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Lisäasetukset"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "otsikko"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "sisältö"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "salli kommentit"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "mallipohjan nimi"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Esimerkiksi: 'flatpages/yhteydenotto.html'. Jos tämä jätetään tyhjäksi, "
+"käytetään oletuspohjaa 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "vaaditaan rekisteröityminen"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Jos tämä kohta on valittu, vain sisäänkirjautuneet käyttäjät näkevät sivun."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "tekstisivu"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "tekstisivut"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Geometria-arvoa ei annettu."
+
+#: contrib/gis/forms/fields.py:11
+#, fuzzy
+msgid "Invalid Geometry value."
+msgstr "Kommentin tunniste on virheellinen"
+
+#: contrib/gis/forms/fields.py:12
+#, fuzzy
+msgid "Invalid Geometry type."
+msgstr "Kommentin tunniste on virheellinen"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f miljoona"
+msgstr[1] "%(value).1f miljoonaa"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f miljardi"
+msgstr[1] "%(value).1f miljardia"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f triljoona"
+msgstr[1] "%(value).1f triljoonaa"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "yksi"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "kaksi"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "kolme"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "neljä"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "viisi"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "kuusi"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "seitsemän"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "kahdeksan"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "yhdeksän"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "tänään"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "huomenna"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "eilen"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Syötä postinumero muodossa NNNN tai ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Tähän kenttään kelpaavat vain numerot."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Tähän kenttään vaaditaan 7 tai 8 numeroa."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Syötä validi CUIT joko XX-XXXXXXXX-X tai XXXXXXXXXXXX -muodossa."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Virheellinen CUIT."
+
+#: contrib/localflavor/at/at_states.py:5
+#, fuzzy
+msgid "Burgenland"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Carinthia"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:9
+#, fuzzy
+msgid "Salzburg"
+msgstr "Hampuri"
+
+#: contrib/localflavor/at/at_states.py:10
+#, fuzzy
+msgid "Styria"
+msgstr "serbia"
+
+#: contrib/localflavor/at/at_states.py:11
+#, fuzzy
+msgid "Tyrol"
+msgstr "Tokio"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr ""
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Syötä postinumero muodossa XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+#, fuzzy
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr "Syötä oikea henkilötunnus."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Syötä nelinumeroinen postinumero."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Syötä postinumero muodossa XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Puhelinnumeron tulee olla muodossa XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Virheellinen CPF-numero."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Tämä kenttä vaatii vähintään 11 ja enintään 14 merkkiä."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Virheellinen CNPJ-numero."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Tähän kenttään vaaditaan ainakin 14 numeroa."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Syötä postinumero muodossa XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+#, fuzzy
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "Syötä oikea norjalainen henkilötunnus."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Geneve"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zürich"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+
+#: contrib/localflavor/cl/forms.py:29
+#, fuzzy
+msgid "Enter a valid Chilean RUT."
+msgstr "Syötä oikea chileläinen RUT"
+
+#: contrib/localflavor/cl/forms.py:30
+#, fuzzy
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Syötä postinumero muodossa XXXXX-XXX."
+
+#: contrib/localflavor/cl/forms.py:31
+#, fuzzy
+msgid "The Chilean RUT is not valid."
+msgstr "Tämä arvo ei kelpaa."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berliini"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hampuri"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Syötä postinumero muodossa XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+#, fuzzy
+msgid "Arava"
+msgstr "Trnava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+#, fuzzy
+msgid "Avila"
+msgstr "huhtikuu"
+
+#: contrib/localflavor/es/es_provinces.py:10
+#, fuzzy
+msgid "Badajoz"
+msgstr "Bardejov"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+#, fuzzy
+msgid "Barcelona"
+msgstr "makedonia"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+#, fuzzy
+msgid "Cadiz"
+msgstr "Cadca"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+#, fuzzy
+msgid "Cuenca"
+msgstr "Senica"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+#, fuzzy
+msgid "Granada"
+msgstr "kannada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+#, fuzzy
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+#, fuzzy
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+#, fuzzy
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+#, fuzzy
+msgid "Madrid"
+msgstr "Martin"
+
+#: contrib/localflavor/es/es_provinces.py:33
+#, fuzzy
+msgid "Malaga"
+msgstr "Galanta"
+
+#: contrib/localflavor/es/es_provinces.py:34
+#, fuzzy
+msgid "Murcia"
+msgstr "Jura"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+#, fuzzy
+msgid "Palencia"
+msgstr "galicia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+#, fuzzy
+msgid "Salamanca"
+msgstr "Galanta"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+#, fuzzy
+msgid "Cantabria"
+msgstr "katalaani"
+
+#: contrib/localflavor/es/es_provinces.py:44
+#, fuzzy
+msgid "Segovia"
+msgstr "slovenia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+#, fuzzy
+msgid "Seville"
+msgstr "Levice"
+
+#: contrib/localflavor/es/es_provinces.py:46
+#, fuzzy
+msgid "Soria"
+msgstr "serbia"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+#, fuzzy
+msgid "Teruel"
+msgstr "Ti"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+#, fuzzy
+msgid "Valencia"
+msgstr "galicia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+#, fuzzy
+msgid "Valladolid"
+msgstr "Valais"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+#, fuzzy
+msgid "Ceuta"
+msgstr "Detva"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+#, fuzzy
+msgid "Catalonia"
+msgstr "katalaani"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+#, fuzzy
+msgid "Galicia"
+msgstr "galicia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:19
+#, fuzzy
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Syötä validi postinumero väliltä ja muodossa 01XXX-52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+#, fuzzy
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr "Syötä postinumero muodossa XXXXX tai XXX XX."
+
+#: contrib/localflavor/es/forms.py:66
+#, fuzzy
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "IP-osoite ei kelpaa."
+
+#: contrib/localflavor/es/forms.py:67
+#, fuzzy
+msgid "Please enter a valid NIF or NIE."
+msgstr "Syöttämäsi %s ei kelpaa."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Syötä oikea suomalainen henkilötunnus."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Syötä postinumero muodossa XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Syötä oikea postinumero."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Syötä oikea henkilötunnus."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Syötä oikea ALV-tunnus."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokio"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kioto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+#, fuzzy
+msgid "Campeche"
+msgstr "tšekki"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+#, fuzzy
+msgid "Coahuila"
+msgstr "kroatia"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+#, fuzzy
+msgid "Guerrero"
+msgstr "Palvelinvirhe"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+#, fuzzy
+msgid "Jalisco"
+msgstr "Valais"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+#, fuzzy
+msgid "Michoacán"
+msgstr "Michalovce"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+#, fuzzy
+msgid "Sinaloa"
+msgstr "Sala"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Syötä oikea postinumero."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Syötä oikea puhelinnumero."
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Syötä ikea SoFi-numero."
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Syötä oikea norjalainen henkilötunnus."
+
+#: contrib/localflavor/pe/forms.py:24
+#, fuzzy
+msgid "This field requires 8 digits."
+msgstr "Tähän kenttään vaaditaan 7 tai 8 numeroa."
+
+#: contrib/localflavor/pe/forms.py:52
+#, fuzzy
+msgid "This field requires 11 digits."
+msgstr "Tähän kenttään vaaditaan 7 tai 8 numeroa."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Syötä postinumero muodossa XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:19
+#, fuzzy
+msgid "Enter a valid CIF."
+msgstr "Syötä oikea URL-osoite."
+
+#: contrib/localflavor/ro/forms.py:56
+#, fuzzy
+msgid "Enter a valid CNP."
+msgstr "Syötä oikea URL-osoite."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:171
+#, fuzzy
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Puhelinnumeron tulee olla muodossa XX-XXXX-XXXX."
+
+#: contrib/localflavor/ro/forms.py:194
+#, fuzzy
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Syötä postinumero muodossa XXX XXX."
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Syötä postinumero muodossa XXXXX tai XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banská Bystrican aule"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Bratislavan alue"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Košicen alue"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Nitran alue"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Prešovin alue"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Trenčínin alue"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Trnava region"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Zilina region"
+
+#: contrib/localflavor/uk/forms.py:21
+#, fuzzy
+msgid "Enter a valid postcode."
+msgstr "Syötä oikea postinumero."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+#, fuzzy
+msgid "Devon"
+msgstr "seitsemän"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+#, fuzzy
+msgid "Durham"
+msgstr "Jura"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+#, fuzzy
+msgid "Kent"
+msgstr "korea"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+#, fuzzy
+msgid "Surrey"
+msgstr "Tällä hetkellä:"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+#, fuzzy
+msgid "Borders"
+msgstr "Järjestysnumero:"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+#, fuzzy
+msgid "Fife"
+msgstr "Suodatin"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+#, fuzzy
+msgid "Grampian"
+msgstr "saksa"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+#, fuzzy
+msgid "Lothian"
+msgstr "latvia"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+#, fuzzy
+msgid "England"
+msgstr "ja"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+#, fuzzy
+msgid "Wales"
+msgstr "wales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+#, fuzzy
+msgid "Enter a valid South African ID number"
+msgstr "Syötä ikea SoFi-numero."
+
+#: contrib/localflavor/za/forms.py:54
+#, fuzzy
+msgid "Enter a valid South African postal code"
+msgstr "Syötä oikea postinumero."
+
+#: contrib/localflavor/za/za_provinces.py:4
+#, fuzzy
+msgid "Eastern Cape"
+msgstr "Käyttäjätunnus"
+
+#: contrib/localflavor/za/za_provinces.py:5
+#, fuzzy
+msgid "Free State"
+msgstr "pisteytyspäivä"
+
+#: contrib/localflavor/za/za_provinces.py:6
+#, fuzzy
+msgid "Gauteng"
+msgstr "elo"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+#, fuzzy
+msgid "Western Cape"
+msgstr "Käyttäjätunnus"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "ohjaa osoitteesta"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Tässä on käytettävä absoluuttista polkua ilman verkkotunnusta. Esimerkki: "
+"'\\\n"
+"events/search/'"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "ohjaa osoitteeseen"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Tässä on käytettävä joko absoluuttista polkua (kuten yllä) tai täydellistä "
+"'http://'-alkuista URL-osoitetta."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "edelleenohjaus"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "edelleenohjaukset"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "istunnon avain"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "istunnon tiedot"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "vanhenee"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "istunto"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "istunnot"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "domain-nimi"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "näyttönimi"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "sivustot"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä ala- ja "
+"tavuviivoja (_ -)."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Isot kirjaimet (ABC) eivät kelpaa tässä."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Pienet kirjaimet (abc) eivät kelpaa tässä."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Vain pilkulla erotetut luvut kelpaavat tässä."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Syötä sähköpostiosoitteita pilkuilla erotettuina."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "IP-osoite ei kelpaa."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Tätä kohtaa ei voi jättää tyhjäksi."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Vain numerot (0-9) kelpaavat tässä."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Tarvitaan vähintään yksi merkki, joka ei ole numero (0-9)."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Syötä kokonaisluku."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Vain kirjaimet kelpaavat tässä."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Päivämäärä %s ei kelpaa"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Päivämäärän pitää olla muodossa VVVV-KK-PP."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Ajan täytyy olla muodossa TT:MM."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Ajankohdan pitää olla muodossa VVVV-KK-PP TT:MM."
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "Syötä kelvollinen sähköpostiosoite."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Tiedostoa ei lähetetty. Tarkista lomakkeen koodaus (encoding)."
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Kuva ei kelpaa. Lähettämäsi tiedosto ei ole kuva, tai tiedosto on vioittunut."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "Osoittessa %s ei ole kuvaa tai se on vioittunut."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Puhelinnumeron tulee olla muodossa XXX-XXX-XXXX. \"%s\" ei kelpaa."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "Osoitteessa %s ei ole QuickTime-videota tai se on vioittunut."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "URL-osoite ei kelpaa."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"HTML-koodi ei kelpaa. Virheilmoitus on:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Vääränmuotoinen XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL-osoite %s ei kelpaa."
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Osoite %s on rikkoutunut tai väärä linkki."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Syötä USA:n osavaltion lyhenne."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Siivoa suusi! Sanaa \"%s\" ei saa käyttää tässä."
+msgstr[1] "Siivoa suusi! Sanoja \"%s\" ei saa käyttää tässä."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Arvon täytyy olla sama kuin kentässä '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Täytä ainakin yksi kenttä."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Täytä tai jätä tyhjäksi kummatkin kentät."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Tämä kenttä pitää täyttää, jos %(field)s on %(value)s."
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Tämä kenttä pitää täyttää, jos %(field)s ei ole %(value)s."
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Samaa arvoa ei voi käyttää kahdesti."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Tämän luvun on oltava välillä %(lower)s–%(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Tämän luvun on oltava vähintään %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Tämän luvun on oltava enintään %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Tämän luvun on oltava %s:n potenssi."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Desimaaliluku ei kelpaa."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+"Desimaaliluvussa saa tässä olla yhteensä vain %s merkitsevä numero. Huomaa, "
+"että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+msgstr[1] ""
+"Desimaaliluvussa saa tässä olla yhteensä vain %s merkitsevää numeroa. "
+"Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Desimaaliluvun kokonaisosassa saa tässä olla vain %s numero. Huomaa, että "
+"desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+msgstr[1] ""
+"Desimaaliluvun kokonaisosassa saa tässä olla vain %s numeroa. Huomaa, että "
+"desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Tässä saa olla vain %s desimaali. Huomaa, että desimaalierottimena käytetään "
+"pilkun (,) sijasta pistettä (.)."
+msgstr[1] ""
+"Tässä saa olla vain %s desimaalia. Huomaa, että desimaalierottimena "
+"käytetään pilkun (,) sijasta pistettä (.)."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Syötä liukuluku."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Lähetä vähintään %s tavun kokoinen tiedosto."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Lähetä enintään %s tavun kokoinen tiedosto."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Muoto ei kelpaa."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Tämä arvo ei kelpaa."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Tietoja ei voida noutaa kohteesta: %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"Osoitteesta %(url)s saatiin virheellinen Content-Type '%(contenttype)s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Rivillä %(line)s oleva tagi %(tag)s pitää sulkea. (Rivi alkaa \"%(start)s\")"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Rivillä %(line)s on tekstiä, joka ei kelpaa tässä yhteydessä. (Rivi alkaa \"%"
+"(start)s\")"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"Rivillä %(line)s attribuutti %(attr)s ei kelpaa. (Rivi alkaa \"%(start)s\")"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"Rivillä %(line)s tagi \"<%(tag)s>\" ei kelpaa. (Rivi alkaa \"%(start)s\")"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Rivillä %(line)s yhdestä tagista puuttuu yksi tai useampi attribuutti. (Rivi "
+"alkaa \"%(start)s\")"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Rivillä %(line)s attribuutin %(attr)s arvo ei kelpaa. (Rivi alkaa \"%(start)s"
+"\")"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(field)s omaa jo kohteen %(object)s, joka on tyyppiä %(type)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s, jolla on tämä %(fieldname)s, on jo olemassa."
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "Tämä kenttä vaaditaan."
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "Tarvitaan kokonaisluku."
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "Tarvitaan tosi (True) tai epätosi (False)."
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "Tämän kentän arvo ei voi olla \"null\"."
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+#, fuzzy
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "Ajankohdan pitää olla muodossa VVVV-KK-PP TT:MM."
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "Tähän tarvitaan desimaaliluku."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "Tähän tarvitaan tyhjä (None), tosi (True) tai epätosi (False)."
+
+#: db/models/fields/__init__.py:937 db/models/fields/__init__.py:950
+#, fuzzy
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Ajan täytyy olla muodossa TT:MM."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Tiedostonimi ei kelpaa."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Syöttämäsi %s ei kelpaa."
+
+#: db/models/fields/related.py:776
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+" Pidä \"Ctrl\"-näppäin (tai Macin \"Command\") pohjassa valitaksesi useita "
+"vaihtoehtoja."
+
+#: db/models/fields/related.py:856
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Syöttämäsi %(self)s-tunniste %(value)r ei kelpaa."
+msgstr[1] "Syöttämäsi %(self)s-tunnisteet %(value)r eivät kelpaa."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Syötä oikea arvo."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Tähän kelpaa enintään %(max)d merkkiä (nyt niitä on %(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Tähän tarvitaan vähintään %(min)d merkkiä (nyt on vain %(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Tämän luvun on oltava enintään %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Tämän luvun on oltava vähintään %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Syötä kokonaisluku."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Tässä luvussa voi olla yhteensä enintään %s numeroa."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Tässä luvussa saa olla enintään %s desimaalia."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Tässä luvussa saa olla enintään %s numeroa ennen desimaalipilkkua."
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "Syötä oikea päivämäärä."
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "Syötä oikea kellonaika."
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "Syötä oikea pvm/kellonaika."
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "Yhtään tiedostoa ei ole lähetetty."
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Lähetetty tiedosto on tyhjä."
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "Syötä oikea URL-osoite."
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "Tämä URL-osoite on rikkinäinen linkki."
+
+#: forms/fields.py:601 forms/fields.py:652
+#, fuzzy, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Valitse oikea vaihtoehto. %s ei löydy vaihtoehtojen joukosta."
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "Syötä lista."
+
+#: forms/fields.py:832
+#, fuzzy
+msgid "Enter a valid IPv4 address."
+msgstr "Syötä kelvollinen sähköpostiosoite."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Valitse oikea vaihtoehto. Valintasi ei löydy vaihtoehtojen joukosta."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Valitse oikea vaihtoehto. %s ei löydy vaihtoehtojen joukosta."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Varmista, että tekstin pituus on vähemmän kuin %s merkki."
+msgstr[1] "Varmista, että teksti pituus on vähemmän kuin %s merkkiä."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Rivinvaihtoja ei voi käyttää."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+"Valinta ei kelpaa; '%(data)s' ei löydy vaihtoehtojen %(choices)s joukosta."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Syötä kokonaisluku väliltä -32768 ja 32767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Syötä positiivinen kokonaisluku."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Syötä kokonaisluku väliltä 0 ja 32767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "kyllä,ei,ehkä"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d tavu"
+msgstr[1] "%(size)d tavua"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f Kt"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f Mt"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f Gt"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "ip"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "ap"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "IP"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AP"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "keskiyö"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "keskipäivä"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "maanantai"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "tiistai"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "keskiviikko"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "torstai"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "perjantai"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "lauantai"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "sunnuntai"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Ma"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Ti"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Ke"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "To"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Pe"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "La"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Su"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "tammikuu"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "helmikuu"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "maaliskuu"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "huhtikuu"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "toukokuu"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "kesäkuu"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "heinäkuu"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "elokuu"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "syyskuu"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "lokakuu"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "marraskuu"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "joulukuu"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "tam"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "hel"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "maa"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "huh"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "tou"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "kes"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "hei"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "elo"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "syy"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "lok"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "mar"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "jou"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "tammi"
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "helmi"
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "elo"
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "syys"
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "loka"
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "marras"
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "joulu"
+
+#: utils/text.py:128
+msgid "or"
+msgstr "tai"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "vuosi"
+msgstr[1] "vuotta"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "kuukausi"
+msgstr[1] "kuukautta"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "viikko"
+msgstr[1] "viikkoa"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "päivä"
+msgstr[1] "päivää"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "tunti"
+msgstr[1] "tuntia"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuutti"
+msgstr[1] "minuuttia"
+
+#: utils/timesince.py:46
+#, fuzzy
+msgid "minutes"
+msgstr "minuutti"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "j.n.Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "j.n.Y G:i"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "G:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "N Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "N j, Y"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s luotiin onnistuneesti."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s päivitettiin onnistuneesti."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s on poistettu."
+
+#~ msgid "Year must be 1900 or later."
+#~ msgstr "Vuosiluvuksi kelpaa vain 1900 tai myöhempi."
+
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "Erottele tunnisteet pilkuilla."
+
+#~ msgid "Your new password is: %(new_password)s"
+#~ msgstr "Uusi salasanasi on: %(new_password)s"
+
+#~ msgid "Feel free to change this password by going to this page:"
+#~ msgstr "Voit vaihtaa salasanan sivulla:"
+
+#~ msgid "Ordering"
+#~ msgstr "Järjestys"
+
+#~ msgid "Added %s."
+#~ msgstr "Lisätty %s."
+
+#~ msgid "Deleted %s."
+#~ msgstr "Poistettu %s."
+
+#~ msgid "The two 'new password' fields didn't match."
+#~ msgstr "Salasanat eivät täsmää."
+
+#~ msgid "Brazilian"
+#~ msgstr "Brasilian portugali"
diff --git a/webapp/django/conf/locale/fi/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/fi/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..f94931a
--- /dev/null
+++ b/webapp/django/conf/locale/fi/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/fi/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/fi/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..cfdb73a
--- /dev/null
+++ b/webapp/django/conf/locale/fi/LC_MESSAGES/djangojs.po
@@ -0,0 +1,119 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-18 02:12+0300\n"
+"PO-Revision-Date: 2006-08-05 15:27+0300\n"
+"Last-Translator: Ville Säävuori <ville@unessa.net>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Mahdolliset %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Valitse kaikki"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Lisää uusi"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Poista"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Valitut %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Valitse vasemmalta ja napsauta "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Tyhjennä kaikki"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Tammikuu Helmikuu Maaliskuu Huhtikuu Toukokuu Kesäkuu Heinäkuu Elokuu "
+"Syyskuu Lokakuu Marraskuu Joulukuu"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S M T K T P L"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Sunnuntai Maanantai Tiistai Keskiviikko Torstai Perjantai Lauantai"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Näytä"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Piilota"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Nyt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Kello"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Valitse kellonaika"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "24"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "06"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "12"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Peruuta"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Tänään"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalenteri"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Eilen"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Huomenna"
diff --git a/webapp/django/conf/locale/fr/LC_MESSAGES/django.mo b/webapp/django/conf/locale/fr/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..e52b555
--- /dev/null
+++ b/webapp/django/conf/locale/fr/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/fr/LC_MESSAGES/django.po b/webapp/django/conf/locale/fr/LC_MESSAGES/django.po
new file mode 100644
index 0000000..aedd95d
--- /dev/null
+++ b/webapp/django/conf/locale/fr/LC_MESSAGES/django.po
@@ -0,0 +1,4405 @@
+# translation of django.po to french
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-16 15:42+0100\n"
+"PO-Revision-Date: 2008-08-20 16:40+0300\n"
+"Last-Translator: Baptiste <baptiste.goupil_at_google_email.com>\n"
+"Language-Team: français <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arabe"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Indien"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "Bulgare"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr "Catalan"
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "Tchèque"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "Gallois"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "Dannois"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "Allemand"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "Grec"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "Anglais"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "Espagnol"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "Espagnol Argentin"
+
+#: conf/global_settings.py:51
+msgid "Basque"
+msgstr "Basque"
+
+#: conf/global_settings.py:52
+msgid "Persian"
+msgstr "Perse"
+
+#: conf/global_settings.py:53
+msgid "Finnish"
+msgstr "Finlandais"
+
+#: conf/global_settings.py:54
+msgid "French"
+msgstr "Français"
+
+#: conf/global_settings.py:55
+msgid "Irish"
+msgstr "Irlandais"
+
+#: conf/global_settings.py:56
+msgid "Galician"
+msgstr "Galicien"
+
+#: conf/global_settings.py:57
+msgid "Hungarian"
+msgstr "Hongrois"
+
+#: conf/global_settings.py:58
+msgid "Hebrew"
+msgstr "Hébreu"
+
+#: conf/global_settings.py:59
+msgid "Croatian"
+msgstr "Croate"
+
+#: conf/global_settings.py:60
+msgid "Icelandic"
+msgstr "Islandais"
+
+#: conf/global_settings.py:61
+msgid "Italian"
+msgstr "Italien"
+
+#: conf/global_settings.py:62
+msgid "Japanese"
+msgstr "Japonais"
+
+#: conf/global_settings.py:63
+msgid "Georgian"
+msgstr "Géorgien"
+
+#: conf/global_settings.py:64
+msgid "Korean"
+msgstr "Coréen"
+
+#: conf/global_settings.py:65
+msgid "Khmer"
+msgstr "Khmer"
+
+#: conf/global_settings.py:66
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:67
+msgid "Latvian"
+msgstr "Letton"
+
+#: conf/global_settings.py:68
+msgid "Macedonian"
+msgstr "Macédonien"
+
+#: conf/global_settings.py:69
+msgid "Dutch"
+msgstr "Hollandais"
+
+#: conf/global_settings.py:70
+msgid "Norwegian"
+msgstr "Norvégien"
+
+#: conf/global_settings.py:71
+msgid "Polish"
+msgstr "Polonais"
+
+#: conf/global_settings.py:72
+msgid "Portugese"
+msgstr "Portugais"
+
+#: conf/global_settings.py:73
+msgid "Brazilian"
+msgstr "Brésilien"
+
+#: conf/global_settings.py:74
+msgid "Romanian"
+msgstr "Roumain"
+
+#: conf/global_settings.py:75
+msgid "Russian"
+msgstr "Russe"
+
+#: conf/global_settings.py:76
+msgid "Slovak"
+msgstr "Slovaque"
+
+#: conf/global_settings.py:77
+msgid "Slovenian"
+msgstr "Slovaque"
+
+#: conf/global_settings.py:78
+msgid "Serbian"
+msgstr "Serbe"
+
+#: conf/global_settings.py:79
+msgid "Swedish"
+msgstr "Suédois"
+
+#: conf/global_settings.py:80
+msgid "Tamil"
+msgstr "Tamoul"
+
+#: conf/global_settings.py:81
+msgid "Telugu"
+msgstr "Télougou"
+
+#: conf/global_settings.py:82
+msgid "Turkish"
+msgstr "Turc"
+
+#: conf/global_settings.py:83
+msgid "Ukrainian"
+msgstr "Ukrainien"
+
+#: conf/global_settings.py:84
+msgid "Simplified Chinese"
+msgstr "Chinois simplifié"
+
+#: conf/global_settings.py:85
+msgid "Traditional Chinese"
+msgstr "Chinois traditionnel"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Par %s&nbsp;:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Tout"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Toutes les dates"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Aujourd'hui"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Les 7 derniers jours"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Ce mois-ci"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Cette année"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Oui"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Non"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "heure de l'action"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "id de l'objet"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "représentation de l'objet"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "indicateur de l'action"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "message de modification"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "entrée d'historique"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "entrées d'historique"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Cette page n'a pas été trouvée"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Nous sommes désolés, mais la page demandée est introuvable."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Accueil"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Erreur du serveur"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Erreur du serveur (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Erreur du serveur <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Une erreur est survenue. Elle a été transmise par courriel aux "
+"administrateurs du site et sera corrigée dans les meilleurs délais. Merci de "
+"votre patience."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Bienvenue,"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentation"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Modifier votre mot de passe"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Déconnexion"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Site d'administration de Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administration de Django"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Ajouter"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Historique"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Voir sur le site"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgstr "Veuillez corriger l'erreur ci-dessous."
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Tri"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Ordre :"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Ajouter %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Supprimer"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Supprimer l'objet %(object_name)s '%(escaped_object)s' provoquerait la "
+"suppression des objets qui lui sont liés mais votre compte ne possède pas la "
+"permission de supprimer les types d'objets suivants :"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Êtes vous certain de vouloir supprimer l'objet %(object_name)s \"%"
+"(escaped_object)s\" ? Les éléments suivant sont liés à celui-ci et seront "
+"aussi supprimés :"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Oui, j'en suis certain"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Par %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtre"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modèles disponibles dans l'application %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modifier"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Vous n'avez pas la permission d'éditer quoi que ce soit."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Actions récentes"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Mes actions"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Aucun(e) disponible"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Quelque chose ne va pas avec votre base de données. Vérifiez que les bonnes "
+"tables ont été créées, et que la base est lisible par le bon utilisateur."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Nom d'utilisateur"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Mot de passe"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:31
+msgid "Log in"
+msgstr "Connectez-vous"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Date/Heure"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Utilisateur"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Action"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j. N Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Cet objet n'a pas d'historique de modification. Il n'a probablement pas été "
+"ajouté au moyen de ce site d'administration."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Tout montrer"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Envoyer"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgstr "1 résultat"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s résultats"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Sauver en tant que nouveau"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Sauver et ajouter un nouveau"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Sauver et continuer les modifications"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Sauver"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Entrez tout d'abord un nom d'utilisateur et un mot de passe. Vous pourrez "
+"ensuite modifier plus d'options."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Nom d'utilisateur"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Mot de passe"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Mot de passe (à nouveau)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "Entrez le même mot de passe que précedemment, par sécurité."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr ""
+"Entrez un nouveau mot de passe pour l'utilisateur <strong>%(username)s</"
+"strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Signets"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Documentation des signets"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Pour installer des signets, faîtes glisser le lien vers\n"
+"votre barre de marques-pages, ou cliquez droit dessus et ajoutez-y le.\n"
+"Maintenant, vous pouvez le sélectionner depuis n'importe quelle page\n"
+"du site. Notez que certains d'entre eux nécessitent que vous visionniez\n"
+"le site depuis un ordinateur dit \"interne\" (veuillez contacter votre\n"
+"administrateur système si vous n'êtes pas sûr que votre ordinateur le soit)."
+"</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentation pour cette page"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Vous envoie de n'importe quelle page vers la documentation de la vue qui a "
+"généré cette page."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Afficher l'identifiant de l'objet"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Montre le content-type et l'identifiant unique pour les pages qui "
+"représentent un objet unique."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Editer cet objet (fenêtre courante)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Renvoie à la page d'administration qui représente un objet seul."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Editer cet objet (nouvelle fenêtre)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr ""
+"Comme ci-dessus, mais ouvre la page d'administration dans une nouvelle "
+"fenêtre."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Merci pour le temps que vous avez accordé à ce site aujourd'hui."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Connectez vous à nouveau"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Modification de votre mot de passe"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Mot de passe modifié avec succés"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Votre mot de passe a été modifié."
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Pour des raisons de sécurité, veuillez entrer votre ancien mot de passe puis "
+"saisissez deux fois votre nouveau mot de passe afin que nous puissions "
+"vérifier que vous l'avez tapé correctement."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Ancien mot de passe :"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Nouveau mot de passe :"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Confirmation du mot de passe"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Modifier mon mot de passe"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Réinitialisation de votre mot de passe"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Mot de passe réinitialisé avec succès"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Nous vous avons envoyé par courriel un nouveau mot de passe. Vous devriez le "
+"recevoir rapidement."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"Vous recevez ce courriel car vous avez demandé un changement de mot de passe"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "pour votre compte au site %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Votre nouveau mot de passe est : %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Vous pouvez modifier ce mot de passe à l'adresse suivante :"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Votre nom d'utilisateur, en cas d'oubli :"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Merci d'utiliser notre site !"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "L'équipe %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Mot de passe perdu ? Saisissez votre adresse de courriel ci-dessous et nous "
+"annulerons votre mot de passe actuel avant de vous en faire parvenir un "
+"nouveau par courriel."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Courriel :"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Réinitialiser mon mot de passe"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Date :"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Heure :"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Actuellement :"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Modification :"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Toutes les dates"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "L'objet %(name)s \"%(obj)s\" a été ajouté avec succès."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Vous pouvez continuez de l'éditez ci-dessous."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Ajouter l'utilisateur"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Mot de passe modifié avec succés"
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Modifier le mot de passe : %s"
+
+#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Veuillez saisir un nom d'utilisateur et un mot de passe valide. Remarquez "
+"que chacun de ces champs est sensible à la casse (différenciation des "
+"majuscules/minuscules)."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Veuillez vous reconnecter, car votre session a expiré. Ne vous inquiétez "
+"pas, votre soumission a été enregistrée."
+
+#: contrib/admin/views/decorators.py:76
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Il semblerait que votre navigateur n'accepte pas les cookies. Veuillezles "
+"activer, recharger cette page, puis rééssayer."
+
+#: contrib/admin/views/decorators.py:90
+msgid "Usernames cannot contain the '@' character."
+msgstr "Les noms d'utilisateur ne peuvent contenir le caractère '@'"
+
+#: contrib/admin/views/decorators.py:92
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Votre courriel n'est pas votre nom d'utilisateur. Essayez '%s' à la place."
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "mot-clé :"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "filtre :"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "vue :"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "L'application %r n'a pas été trouvée."
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Le modèle %(name)r n'a pas été trouvé dans l'application %(label)r"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "l'objet `%(label)s.%(type)s` en relation "
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "modèle :"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "les objets `%(label)s.%(name)s` en relation"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "tous les %s"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "nombre de %s"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Champs sur les objets %s"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Entier"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Booléen (Vrai ou Faux)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Chaîne de caractère (jusqu'à %(max_length)s)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Des entiers séparés par une virgule"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Date (sans l'heure)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Date (avec l'heure)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Nombre décimal"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "Courriel"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Chemin vers le fichier"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Nombre à virgule flottante"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "adresse IP"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Booléen (Vrai, Faux ou None)"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Relation au modèle parent"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Numéro de téléphone"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Texte"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Heure"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "État Américain (deux lettres majuscules)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "Texte XML"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ne semble pas être un objet urlpattern"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Gestion du site"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Vous pouvez ajouter un autre %s ci-dessous."
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "Ajouter %s"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "Ajouté %s."
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "et"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "Modifié %s."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "Supprimé %s."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Aucun champ modifié."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "L'objet %(name)s \"%(obj)s\" a été modifié avec succès."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"L'objet %(name)s \"%(obj)s\" a été ajouté avec succès.Vous pouvez continuez "
+"de l'éditez ci-dessous."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "Changement %s"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Un ou plusieurs %(fieldname)s dans %(name)s : %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Un ou plusieurs %(fieldname)s dans %(name)s :"
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "L'objet %(name)s \"%(obj)s\" a été supprimé avec succès."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Êtes-vous sûr ?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Historique des changements : %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "Sélectionnez %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "Sélectionnez l'objet %s à changer"
+
+#: contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr "Erreur de base de données"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Les deux mots de passe ne correspondent pas."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Un utilisateur avec ce nom existe déjà."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Votre navigateur ne semble pas avoir activé les cookies. Les cookies sont "
+"nécessaire pour se connecter"
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Ce compte est inactif."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Cette adresse e-mail ne correspond à aucun compte utilisateur. Êtes-vous sûr "
+"de vous être enregistré ?"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Mot de passe réinitialisé le %s"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Les deux champs \"nouveau mot de passe\" ne correspondent pas."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Votre ancien mot de passe est incorrect. Veuillez le rectifier."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "nom"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "nom de code"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "permission"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "permissions"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "groupe"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr "groupes"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "nom d'utilisateur"
+
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Requis. 30 caractères maximum, alphanumériques uniquement (lettres, "
+"chiffres, et tirets bas _)."
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "prénom"
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "nom"
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "courriel"
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "mot de passe"
+
+#: contrib/auth/models.py:135
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Utilisez [algo]$[salt]$[hexdigest]' ou le <a href=\"password/\">formulaire "
+"de changement de mot de passe</a>."
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "statut équipe"
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Précise si l'utilisateur peut se connecter à ce site d'administration."
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "actif"
+
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Précise si l'utilisateur peut se connecter à l'administration. "
+"Déselectionnez ceci plutôt que supprimer le compte."
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "statut super-utilisateur"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Précise que l'utilisateur possède toutes les permissions sans les assigner "
+"explicitement."
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "dernière connexion"
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "date d'inscription"
+
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"En plus des permissions qui lui sont manuellement assignées, cet utilisateur "
+"recevra aussi toutes les permissions de tous les groupes auquels il "
+"appartient. "
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "permissions de l'utilisateur"
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "utilisateur"
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "utilisateurs"
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Information personnelle"
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Permissions"
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Dates importantes"
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Groupes"
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "message"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Déconnecté"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
+msgid "object ID"
+msgstr "ID de l'objet"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "titre"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+msgid "comment"
+msgstr "commentaire"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "vote n°1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "vote n°2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "vote n°3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "vote n°4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "vote n°5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "vote n°6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "vote n°7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "vote n°8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "est un vote valide"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "date et heure soumises"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
+msgid "is public"
+msgstr "est public"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "est supprimé"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Cochez cette case si le commentaire est inadéquat. Un message type \"Ce "
+"commentaire a été supprimé\" sera affiché en lieu et place de celui-ci."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "commentaires"
+
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
+msgid "Content object"
+msgstr "Type de contenu"
+
+#: contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Posté par %(user)s à %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+msgid "person's name"
+msgstr "nom de la personne"
+
+#: contrib/comments/models.py:181
+msgid "ip address"
+msgstr "adresse IP"
+
+#: contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr "approuvé par l'équipe"
+
+#: contrib/comments/models.py:187
+msgid "free comment"
+msgstr "commentaire libre"
+
+#: contrib/comments/models.py:188
+msgid "free comments"
+msgstr "commentaires libres"
+
+#: contrib/comments/models.py:250
+msgid "score"
+msgstr "evaluation"
+
+#: contrib/comments/models.py:251
+msgid "score date"
+msgstr "date d'évaluation"
+
+#: contrib/comments/models.py:255
+msgid "karma score"
+msgstr "point de Karma"
+
+#: contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "points de Karma"
+
+#: contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d évalué par %(user)s"
+
+#: contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ce commentaire a été marqué par %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:285
+msgid "flag date"
+msgstr "date d'indicateur"
+
+#: contrib/comments/models.py:289
+msgid "user flag"
+msgstr "indicateur utilisateur"
+
+#: contrib/comments/models.py:290
+msgid "user flags"
+msgstr "indicateurs utilisateur"
+
+#: contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "Indicateur par %r"
+
+#: contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "date de suppression"
+
+#: contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "suppression de modérateur"
+
+#: contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "suppressions de modérateur"
+
+#: contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Suppression de modérateur par %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Mot de passe oublié ?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Votes"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Requis"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Optionel"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Poster une photo"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Commentaire :"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Prévisualisation du commentaire"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Votre nom :"
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Ce vote est nécessaire car vous avez saisi au moins un autre vote."
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ce commentaire a été posté par un utilisateur qui a posté moins de %(count)s "
+"commentaire :\n"
+"\n"
+"%(text)s"
+"Ce commentaire a été posté par un utilisateur qui a posté moins de %(count)s "
+"commentaires :\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ce commentaire a été posté par un utilisateur imprécis :\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Seuls les POSTs sont autorisés"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Un ou plusieurs champs requis n'ont pas été remplis"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"Quelqu'un a trafiqué le formulaire de commentaire (violation des règles de "
+"sécurité)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Ce formulaire de commentaire avait un paramètre cible invalide; "
+"l'identifiant de l'objet était invalide"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+"Le formulaire de commentaire ne proposait ni la prévisualisation ni l'envoi"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Les utilisateurs anonymes ne peuvent pas voter"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Identifiant de commentaire invalide"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Impossible de voter pour soi-même"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "nom du module python"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "type de contenu"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "types de contenu"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Par exemple : '/a_propos/contact/'. Vérifiez la présence du caractère '/' en "
+"début et en fin de chaine."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "titre"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "contenu"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "autoriser les commentaires"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "nom du template"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Par exemple: 'flatfiles/contact_page'. Sans définition, le système utilisera "
+"'flatfiles/default'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "enregistrement requis"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Si coché, seuls les utilisateurs connectés auront la possibilité de voir "
+"cette page."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "page statique"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "pages statiques"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "<sup>e</sup>"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "<sup>er</sup>"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "<sup>d</sup>"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "<sup>e</sup>"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgstr "%(value).1f million"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgstr "%(value).1f milliard"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgstr "%(value).1f billion"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "un"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "deux"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "trois"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "quatre"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "cinq"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "six"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "sept"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "huit"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "neuf"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "aujourd'hui"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "demain"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "hier"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Entrez un code postal au format NNNN ou ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Ce champ ne doit contenir que des nombres."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Ce champ requiert au 7 ou 8 chiffres."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+"Entrez un numéro CUIT (format XX-XXXXXXXX-X ou XXXXXXXXXXXX)."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "CUIT invalide."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Entrez un code postal Australien (4 chiffres)."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Entrez un code postal Brésilien (format XXXXX-XXX)."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Les numéros de téléphone doivent être au format XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+"Sélectionnez un etat·brésilien valide. Cet etat ne fait pas partie de ceux "
+"disponibles."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Numéro CPF invalide."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Ce champ requiert au plus 11 chiffres ou 14 caractères."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Numéro CNPJ invalide."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Ce champ requiert au minimum 14 chiffres."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Entrez un code postal au format XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "Entrez un numéro de sécurité sociale Canadien (format XXX-XXX-XXX)."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Argovie"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Rhodes-Intérieures"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Rhodes-Extérieures"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Bâle-Ville"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Bâle-Campagne"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Genève"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glaris"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Grisons"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchâtel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwald"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwald"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhouse"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Suisse"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Soleure"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "Saint Gall"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thuringe"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Tessin"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zoug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Entrez un code postal Norvégien (format XXXX)."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Entrez un numéro de passeport ou de carte d'identité valide au format "
+"X1234567<0 ou 1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Entrez un RUT Chilien valide."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Entrez un RUT Chilien valide (format XX.XXX.XXX-X)."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "Ce RUT chilien est invalide."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Bade-Wurtemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavière"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandebourg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Brême"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hambourg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hess"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklembourg-Poméranie occidentale"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Basse Saxe"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Rhénanie-du-Nord-Westphalie"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhénanie-Palatinat"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Sarre"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxe"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxe-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thuringe"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Entrez un code postal (format XXXXX)."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Entrez un numéro de carte d'identité Allemand (format XXXXXXXXXXX-XXXXXXX-"
+"XXXXXXX-X)."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Álava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alicante"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almería"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Ávila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Îles Baléares"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelone"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Cáceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cadix"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castellón"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Córdoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "La Corogne"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Gérone"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Grenade"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipúzcoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "León"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lérida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Málaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcie"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarre"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Orense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Ténérife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabrie"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Ségovie"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Séville"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragone"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valence"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Biscaye"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Saragosse"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalousie"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragon"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principauté des Asturies"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Îles Baléares"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Pays basque"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Îles Canaries"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castille-La Manche"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castille-et-León"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Catalogne"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Estrémadure"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galice"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Murcie"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Navarre"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Communauté valencienne"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Entrez un code postal dans la plage et au format 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr "Entrez un numero de téléphone au format 6XXXXXXXX, 8XXXXXXXX ou "
+"9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Veuillez entrer une adresse NIF, NIE ou CIF valide."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Entrez un NIF ou NIE valide."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Mauvais checksum pour NIF."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Mauvais checksum pour NIE."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Mauvais checksum pour CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Veuillez entrer un numéro de compte bancaire valide au format XXXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Mauvais checksum pour le numero de compte bancaire."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Entrez un numéro de sécurité sociale Finlandais."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Entrez un code postal au format XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Entrez un code postal islandais valide (format XXXXXX-XXXX)."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Le numéro d'identification Islandais est invalide."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Entrez un code postal valide."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Entrez un numéro valide de Sécurité Sociale."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Entrez une TVA valide."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Entrez un code postal Japonais (format XXXXXXX ou XXX-XXXX)."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaidō"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyōto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyōgo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Ōita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "District fédéral"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "État de Mexico"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Entrez un code postal valide."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Entrez un numero de telephone valide."
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Entrez un numero SoFi valide."
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drenthe"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Frise"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gueldre"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningue"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limbourg"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Brabant-du-Nord"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Hollande-du-Nord"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overĳssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Hollande-Méridionale"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Entrez un numéro de sécurité sociale Norvégien."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Ce champ requiert 8 chiffres."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Ce champ requiert 11 chiffres."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "Le numéro national d'identification (NIN) comporte 11 chiffres."
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Mavais checksum pour le·\"National·Identification·Number\"."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Entrez un code NIP (impots) au format XXX-XXX-XX-XX ou XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Mavais checksum pour le \"Tax·Number\"·(NIP)."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "Le \"National·Business·Register·Number\"·(REGON) comporte 7 ou 9 chiffres."
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Mavais checksum pour le \"National·Business·Register·Number\"·(REGON)."
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Entrez un code postal  au format XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Basse-Silésie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Cujavie-Poméranie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Łódź"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Petite-Pologne"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Mazovie "
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Basses-Carpates"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlachie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Poméranie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silésie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Varmie-Mazurie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Grande-Pologne"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Poméranie Occidentale"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Entrez un code postal au format XXXXX ou XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banská Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banská Štiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Bánovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava·I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava·II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava·III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava·IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava·V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytča"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Čadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolný Kubín"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajská Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenné"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kežmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komárno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Košice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Košice·II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Košice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Košice·IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Košice–okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucké Nové Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoča"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovský Mikuláš"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lučenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Námestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nové Mesto nad Váhom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nové Zámky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizánske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piešťany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltár"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Považská Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Prešov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Púchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revúca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavská Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Rožňava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ružomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spišská Nová Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stará Ľubovňa"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidník"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Šaľa"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topoľčany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebišov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trenčín"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turčianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdošín"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Veľký Krtíš"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Topľou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlaté Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Žarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Žiar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Žilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Région de Banská Bystrica"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Région de Bratislava"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Région de Košice"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Prešov"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Trenčín"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Žilina"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Entrez un code postal valide."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornouailles et les îles Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbrie"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "Sussex de l'Est"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Grand Londres"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Grand Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancastre"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "Yorkshire du Nord"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "Yorkshire du Su"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne et Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "Midlands de l'Ouest"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "Sussex de l'Ouest"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "Yorkshire de l'Ouest"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "Comté d'Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "Comté d'Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "Comté de Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "Comté de Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "Comté de Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "Comté de Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid·Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Centre"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orcades"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "îles Shetland"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Hébrides extérieures"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Angleterre"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Irlande du Nord"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Écosse"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Pays de Galles"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Entrez un code postal Américain (format XXXXX ou XXXXX-XXXX)."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Entrez un numéro de sécurité sociale Américain (format XXX-XX-XXXX)."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Entrez un numero d'identification sud-africain valide."
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Entrez un code postal sud-africain valide."
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Cap-Oriental"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "État-Libre"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Cap-du-Nord"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "Nord-Ouest"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Cap-Occidental"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redirigé depuis"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Ceci doit être un chemin absolu, sans nom de domaine. Par exemple: '/"
+"evenements/rechercher/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redirigé vers"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Ceci peut être soit un chemin absolu (voir ci-dessus) soit une URL complète "
+"débutant par 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redirige"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redirige"
+
+#: contrib/sessions/models.py:41
+msgid "session key"
+msgstr "clé de session"
+
+#: contrib/sessions/models.py:42
+msgid "session data"
+msgstr "données de session"
+
+#: contrib/sessions/models.py:43
+msgid "expire date"
+msgstr "date d'expiration"
+
+#: contrib/sessions/models.py:48
+msgid "session"
+msgstr "session"
+
+#: contrib/sessions/models.py:49
+msgid "sessions"
+msgstr "sessions"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nom de domaine"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "nom à afficher"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "site"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "sites"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr ""
+"Ce champ ne doit contenir que des lettres, des nombres et destirets bas _."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _,des "
+"traits d'union, et des '/'."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _et "
+"des traits d'union."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Les lettres majuscules ne sont pas autorisées ici."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Les lettres minuscules ne sont pas autorisées ici."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Saisissez uniquement des chiffres séparés par des virgules."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Entrez des adresses de courriel valides séparées par des virgules."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Entrez une adresse IP valide."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Vous ne pouvez pas laisser ce champ vide."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Les caractères non numériques ne sont pas autorisés ici."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Cette valeur ne peut pas être composé uniquement de chiffres."
+
+#: core/validators.py:128 newforms/fields.py:151
+msgid "Enter a whole number."
+msgstr "Entrez un nombre entier."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Seules les lettres de l'alphabet sont autorisées ici."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "L'année doit être supérieure à 1900."
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Date invalide : %s"
+
+#: core/validators.py:156 db/models/fields/__init__.py:522
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Entrez une date valide au format AAAA-MM-JJ."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Entrez une heure valide au format HH:MM."
+
+#: core/validators.py:165 db/models/fields/__init__.py:599
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Entrez une date et une heure valide au format AAAA-MM-JJ HH:MM."
+
+#: core/validators.py:170 newforms/fields.py:402
+msgid "Enter a valid e-mail address."
+msgstr "Entrez une adresse de courriel valide."
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Aucun fichier n'a été soumis. Vérifiez le type d'encodage du formulaire."
+
+#: core/validators.py:193 newforms/fields.py:458
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Envoyez une image valide. Le fichier que vous avez transferé n'est pas une "
+"image ou bien est corrompu."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "L'URL %s ne pointe pas vers une image valide."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Les numéros de téléphone doivent être au format XXX-XXX-XXXX. \"%s\" est "
+"incorrect."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "L'URL %s ne pointe pas vers une vidéo QuickTime valide."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Une URL valide est requise."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Du HTML valide est requis. Les erreurs sont les suivantes :\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML mal formé : %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL invalide : %s"
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "L'URL %s est un lien cassé."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Entrez une abréviation d'État Américain valide."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgstr "Attention à votre langage ! Le mot %s n'est pas autorisé ici."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Ce champ doit correspondre au champ '%s'."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Veuillez saisir quelque chose dans au moins un des champs."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr ""
+"Veuillez renseigner les deux champs ou les laisser tous les deux vides."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Ce champ doit être renseigné si %(field)s vaut %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Ce champ doit être renseigné si %(field)s ne vaut pas %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Les valeurs identiques ne sont pas autorisées."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Cette valeur doit être comprise entre %(lower)s et %(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Cette valeur doit être au moins %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Cette valeur ne doit pas dépasser %s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Cette valeur doit être une puissance de %s."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Veuillez saisir un nombre décimal valide."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+"Please enter a valid decimal number with at most %s total digits."
+msgstr "Veuillez saisir un nombre décimal valide avec au plus %s chiffre."
+"Veuillez saisir un nombre décimal valide avec au plus %s chiffres."
+
+#: core/validators.py:447
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr ""
+"Veuillez saisir un nombre décimal valide avec une partie entière de %s "
+"chiffre au plus."
+"Veuillez saisir un nombre décimal valide avec une partie entière de %s "
+"chiffres au plus."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr "Veuillez saisir un nombre décimal valide avec au plus %s chiffre après la virgiule."
+"Veuillez saisir un nombre décimal valide avec au plus %s chiffres après la virgiule."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Veuillez entrer un nombre à virgule flottante valide."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Vérifiez que le fichier transféré fait au moins %s octets."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Vérifiez que le fichier transféré fait au plus %s octets."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "Le format de ce champ est mauvais."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "Ce champ est invalide."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Impossible de récupérer quoi que ce soit depuis %s."
+
+#: core/validators.py:539
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"L'entête Content-Type '%(contenttype)s', renvoyée par l'url %(url)s n'est "
+"pas valide."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Veuillez fermer le tag %(tag)s à la ligne %(line)s. (Ligne débutant par \"%"
+"(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Du texte commençant à la ligne %(line)s n'est pas autorisé dans ce contexte. "
+"(Ligne débutant par \"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" ligne %(line)s n'est pas un attribut valide. (Ligne débutant "
+"par \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" ligne %(line)s n'est pas un tag valide. (Ligne débutant par \"%"
+"(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Un tag, ou un ou plusieurs attributs, de la ligne %(line)s est manquant. "
+"(Ligne débutant par \"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"La valeur de l'attribut \"%(attr)s\" de la ligne %(line)s n'est pas valide. "
+"(Ligne débutant par \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s·de ce·%(type)s·existent déjà pour le %(field)s données."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s avec le champ %(fieldname)s existe déjà."
+
+#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:322
+#: db/models/fields/__init__.py:754 db/models/fields/__init__.py:765
+#: newforms/fields.py:45 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Ce champ est obligatoire."
+
+#: db/models/fields/__init__.py:422
+msgid "This value must be an integer."
+msgstr "Cette valeur doit être un entier."
+
+#: db/models/fields/__init__.py:461
+msgid "This value must be either True or False."
+msgstr "Cette valeur doit être soit Vraie soit Fausse."
+
+#: db/models/fields/__init__.py:485
+msgid "This field cannot be null."
+msgstr "Ce champ ne peut pas être vide."
+
+#: db/models/fields/__init__.py:663
+msgid "This value must be a decimal number."
+msgstr "Cette valeur doit être un nombre décimal."
+
+#: db/models/fields/__init__.py:774
+msgid "Enter a valid filename."
+msgstr "Entrez un nom de fichier valide."
+
+#: db/models/fields/__init__.py:945
+msgid "This value must be either None, True or False."
+msgstr "Cette valeur doit être Nulle, Vraie ou Fausse."
+
+#: db/models/fields/related.py:93
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Entrez un %s valide."
+
+#: db/models/fields/related.py:694
+msgid "Separate multiple IDs with commas."
+msgstr "Séparez les ID par des virgules."
+
+#: db/models/fields/related.py:696
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Maintenez \"Contrôle (ctrl)\", ou \"Commande (touche pomme)\" sur un Mac, "
+"pour en sélectionner plusieurs."
+
+#: db/models/fields/related.py:743
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr "Entrez un ID %(self)s valide. La valeur %(value)r est invalide."
+"Entrez des ID %(self)s valides. Les valeurs %(value)r sont invalides."
+
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr "Entrez une valeur valide."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Assurez-vous que cette valeur fait moins de %(max)d caractères (il fait actuellement %(length)d caractères)."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Assurez-vous que cette valeur fait plus de %(min)d caractères (il fait actuellement %(length)d caractères)."
+
+#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Assurez-vous que cette valeur soit inférieure ou égale à %s."
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Assurez-vous que cette valeur soit supérieure ou égale à %s."
+
+#: newforms/fields.py:180 newforms/fields.py:209
+msgid "Enter a number."
+msgstr "Entrez un nombre."
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Assurez-vous qu'il n'y a pas plus de %s chiffres au total."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Assurez-vous qu'il n'y a pas plus de %s chiffres après la virgule."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Assurez-vous qu'il n'y a pas plus de %s chiffres avant la virgule."
+
+#: newforms/fields.py:262 newforms/fields.py:723
+msgid "Enter a valid date."
+msgstr "Entrez une date valide."
+
+#: newforms/fields.py:295 newforms/fields.py:724
+msgid "Enter a valid time."
+msgstr "Entrez une heure valide."
+
+#: newforms/fields.py:334
+msgid "Enter a valid date/time."
+msgstr "Entrez une date et une heure valides."
+
+#: newforms/fields.py:433
+msgid "No file was submitted."
+msgstr "Aucun fichier n'a été soumis."
+
+#: newforms/fields.py:434 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Le fichier soumis est vide."
+
+#: newforms/fields.py:496
+msgid "Enter a valid URL."
+msgstr "Entrez une URL valide."
+
+#: newforms/fields.py:497
+msgid "This URL appears to be a broken link."
+msgstr "Cette URL semble être cassée."
+
+#: newforms/fields.py:559 newforms/models.py:300
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Sélectionnez un choix valide. Ce choix ne fait pas partie de ceux "
+"disponibles."
+
+#: newforms/fields.py:598
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Sélectionnez un choix valide. %(value)s n'en fait pas partie."
+
+#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:360
+msgid "Enter a list of values."
+msgstr "Entrez une liste de valeurs."
+
+#: newforms/fields.py:752
+msgid "Enter a valid IPv4 address."
+msgstr "Entrez une adresse IPv4 valide."
+
+#: newforms/models.py:361
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Sélectionnez un choix valide; %s n'en fait pas partie."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgstr "Assurez-vous que votre texte fait moins de %s caractère."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Les retours à la ligne ne sont pas autorisés ici."
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Sélectionnez un choix valide ; '%(data)s' n'est pas dans %(choices)s."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Entrez un nombre entier entre -32 768 et 32 767."
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Entrez un nombre entier positif."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Entrez un nombre entier entre 0 et 32 767."
+
+#: template/defaultfilters.py:695
+msgid "yes,no,maybe"
+msgstr "oui, non, peut-être"
+
+#: template/defaultfilters.py:726
+#, python-format
+msgid "%(size)d byte"
+msgstr "%(size)d octet"
+
+#: template/defaultfilters.py:728
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f Ko"
+
+#: template/defaultfilters.py:730
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f Mo"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f Go"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "après-midi"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "matin"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "Après-midi"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "Matin"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "minuit"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "midi"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "lundi"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "mardi"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "mercredi"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "jeudi"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "vendredi"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "samedi"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "dimanche"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "lun"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "mar"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "mer"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "jeu"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "ven"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "sam"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "dim"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "janvier"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "février"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "mars"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "avril"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "mai"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "juin"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "juillet"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "août"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "septembre"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "octobre"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "novembre"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "décembre"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "fév"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "avr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jui"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "août"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "oct"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "déc"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "fév."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "août"
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "oct."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "déc."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "ou"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "année"
+msgstr[1] "années"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mois"
+msgstr[1] "mois"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "semaine"
+msgstr[1] "semaines"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "journée"
+msgstr[1] "journées"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "heure"
+msgstr[1] "heures"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgstr "minute"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutes"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:403
+msgid "DATE_FORMAT"
+msgstr "j F Y"
+
+#: utils/translation/trans_real.py:404
+msgid "DATETIME_FORMAT"
+msgstr "j F Y, G:i"
+
+#: utils/translation/trans_real.py:405
+msgid "TIME_FORMAT"
+msgstr "G:i:s"
+
+#: utils/translation/trans_real.py:421
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:422
+msgid "MONTH_DAY_FORMAT"
+msgstr "j F"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "L'objet %(verbose_name)s a été créé avec succès."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "L'objet %(verbose_name)s a été mis à jour avec succès."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "L'objet %(verbose_name)s a été supprimé."
+
+#~ msgid ""
+#~ "Enter a postcode. A space is required between the two postcode parts."
+#~ msgstr ""
+#~ "Entrez un code postal Anglais. Un espace est requis entre les deux "
+#~ "parties."
+
+#~ msgid "%d milliseconds"
+#~ msgstr "%d millisecondes"
+
+#~ msgid "AnonymousUser"
+#~ msgstr "Anonyme"
+
+#~ msgid "One or more %(fieldname)s in %(name)s :"
+#~ msgstr "Un ou plusieurs %(fieldname)s dans %(name)s :"
+
+#~ msgid "%dth"
+#~ msgstr "%de"
+
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr ""
+#~ "Avez vous <a href=\"/password_reset/\">perdu votre mot de passe</a>?"
+
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Utilisez '[algo]$[salt]$[hexdigest]'"
+
+#~ msgid "Comment"
+#~ msgstr "Commentaire"
+
+#~ msgid "Comments"
+#~ msgstr "Commentaires"
+
+#~ msgid "String (up to 50)"
+#~ msgstr "Chaîne de caractères (jusqu'à 50)"
+
+#~ msgid "label"
+#~ msgstr "intitulé"
+
+#~ msgid "package"
+#~ msgstr "paquetage"
+
+#~ msgid "packages"
+#~ msgstr "paquetages"
+
+#~ msgid "Messages"
+#~ msgstr "Messages"
diff --git a/webapp/django/conf/locale/fr/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/fr/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..33e5087
--- /dev/null
+++ b/webapp/django/conf/locale/fr/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/fr/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/fr/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..ce457d4
--- /dev/null
+++ b/webapp/django/conf/locale/fr/LC_MESSAGES/djangojs.po
@@ -0,0 +1,109 @@
+# French translation for js. 
+# Copyright (C) 2005 Mikaël Barbero 
+# This file is distributed under the same license as the PACKAGE package. 
+# 
+msgid "" 
+msgstr "" 
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n" 
+"POT-Creation-Date: 2005-12-24 16:39+0100\n" 
+"PO-Revision-Date: 2005-12-24 16:39+0100\n" 
+"Last-Translator: Mikaël Barbero <mikael.barbero nospam at nospam free.fr>\n" 
+"Language-Team: French <fr@li.org>\n" 
+"MIME-Version: 1.0\n" 
+"Content-Type: text/plain; charset=UTF-8\n" 
+"Content-Transfer-Encoding: 8bit\n" 
+
+#: contrib/admin/media/js/calendar.js:24 
+#: contrib/admin/media/js/dateparse.js:26 
+msgid "" 
+"January February March April May June July August September October November " 
+"December" 
+msgstr "" 
+"Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre " 
+"Décembre" 
+
+#: contrib/admin/media/js/calendar.js:25 
+msgid "S M T W T F S" 
+msgstr "D L M M J V S" 
+
+#: contrib/admin/media/js/dateparse.js:27 
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" 
+msgstr "Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi" 
+
+#: contrib/admin/media/js/SelectFilter2.js:33 
+#, perl-format 
+msgid "Available %s" 
+msgstr "%s disponible(s)" 
+
+#: contrib/admin/media/js/SelectFilter2.js:41 
+msgid "Choose all" 
+msgstr "Tout choisir" 
+
+#: contrib/admin/media/js/SelectFilter2.js:46 
+msgid "Add" 
+msgstr "Ajouter" 
+
+#: contrib/admin/media/js/SelectFilter2.js:48 
+msgid "Remove" 
+msgstr "Enlever" 
+
+#: contrib/admin/media/js/SelectFilter2.js:53 
+#, perl-format 
+msgid "Chosen %s" 
+msgstr "%s choisi(es)" 
+
+#: contrib/admin/media/js/SelectFilter2.js:54 
+msgid "Select your choice(s) and click " 
+msgstr "Sélectionnez un ou plusieurs choix et cliquez " 
+
+#: contrib/admin/media/js/SelectFilter2.js:59 
+msgid "Clear all" 
+msgstr "Tout enlever" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45 
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80 
+msgid "Now" 
+msgstr "Maintenant" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48 
+msgid "Clock" 
+msgstr "Horloge" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77 
+msgid "Choose a time" 
+msgstr "Choisir une heure" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 
+msgid "Midnight" 
+msgstr "Minuit" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 
+msgid "6 a.m." 
+msgstr "6:00" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 
+msgid "Noon" 
+msgstr "Midi" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87 
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168 
+msgid "Cancel" 
+msgstr "Annuler" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111 
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162 
+msgid "Today" 
+msgstr "Aujourd'hui" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114 
+msgid "Calendar" 
+msgstr "Calendrier" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160 
+msgid "Yesterday" 
+msgstr "Hier" 
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164 
+msgid "Tomorrow" 
+msgstr "Demain"
diff --git a/webapp/django/conf/locale/ga/LC_MESSAGES/django.mo b/webapp/django/conf/locale/ga/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..6a28961
--- /dev/null
+++ b/webapp/django/conf/locale/ga/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ga/LC_MESSAGES/django.po b/webapp/django/conf/locale/ga/LC_MESSAGES/django.po
new file mode 100644
index 0000000..d05c387
--- /dev/null
+++ b/webapp/django/conf/locale/ga/LC_MESSAGES/django.po
@@ -0,0 +1,4444 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-14 10:20+0100\n"
+"PO-Revision-Date: 2008-08-14 14:46+0100\n"
+"Last-Translator: Michael Thornhill <michael@maithu.com>\n"
+"Language-Team: Gaeilge <ga@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "Arabach"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "Beangáilis"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "Bulgárach"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "Catalóinis"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "Seiceach"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "Breatnach"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "Dainmhairgis"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "Gearmánach"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "Gréigis"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "Béarla"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "Spáinneach"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "Eastóinis"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "Spáinnis Airgintín"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "Bascais"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "Peirsis"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "Fionlainnis"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "Francach"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "Gaeilge"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "Gailísis"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "Ungáiris"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "Eabhrach"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "Cróitis"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "Mórlainnis"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "Iodáilis"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "Seapáinis"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "Seoirseach"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "Cóiréis"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "Ciméiris"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "Cannadais"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "Laitvis"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "Liotuáinis"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "Macadóinis"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "Ollannach"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "Ioruais"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "snas"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "Portaingéileach"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "Brasaíleach"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "Rómáinis"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "Rúiseach"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "Slóvaicis"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "Slóivéinis"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "Seirbiach"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "Sualainnis"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "Tamailis"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "Teileagúis"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "Tuircis"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "Úcráinis"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "Sínis"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "Sínis Tradisúinta"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Trí %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Gach"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Aon dáta"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Inniu"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "7 lá a chuaigh thart"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Táim cinnte"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "An blian seo"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Tá"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Níl"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Gan aithne"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "am aicsean"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "id oibiacht"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "repr oibiacht"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "brat an aicsean"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "teachtaireacht athrú"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "loga iontráil"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "loga iontrálacha"
+
+#: contrib/admin/options.py:143 contrib/admin/options.py:202
+msgid "None"
+msgstr "Dada"
+
+#: contrib/admin/options.py:407
+#, python-format
+msgid "Changed %s."
+msgstr "Athraithe %s"
+
+#: contrib/admin/options.py:407 contrib/admin/options.py:417
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "agus"
+
+#: contrib/admin/options.py:412
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Suimithe %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:416
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Athraithe %(list)s le %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:421
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Scriosaithe %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:425
+msgid "No fields changed."
+msgstr "Dada réimse aithraithe"
+
+#: contrib/admin/options.py:486 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Bhí  %(name)s \"%(obj)s\" breisithe go rathúil"
+
+#: contrib/admin/options.py:490 contrib/admin/options.py:523
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "Is féidir leat é a cuir in eagar thíos."
+
+#: contrib/admin/options.py:500 contrib/admin/options.py:533
+#, python-format
+msgid "You may add another %s below."
+msgstr "Is féidir le ceann eile %s a cuir le thíos."
+
+#: contrib/admin/options.py:521
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Bhí an %(name)s \"%(obj)s\" aithraithe to rathúil"
+
+#: contrib/admin/options.py:529
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"Chuir an %(name)s·\"%(obj)s\"·go rathúil.·Is féidir leat é a cuir in eagar "
+"thíos."
+
+#: contrib/admin/options.py:596
+#, python-format
+msgid "Add %s"
+msgstr "Cuir %s le"
+
+#: contrib/admin/options.py:673
+#, python-format
+msgid "Change %s"
+msgstr "Aithrigh %s"
+
+#: contrib/admin/options.py:704
+msgid "Database error"
+msgstr "Botún bunachar sonraí"
+
+#: contrib/admin/options.py:753
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Bhí %(name)s \"%(obj)s\" scrioste go rathúil."
+
+#: contrib/admin/options.py:760
+msgid "Are you sure?"
+msgstr "An bhfuil tú cinnte?"
+
+#: contrib/admin/options.py:787
+#, python-format
+msgid "Change history: %s"
+msgstr "Athraigh stáir %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Le do thoil, iontráil aihm úsaideora agus focal faire ceart. Bí cúramach go "
+"bhfuil an beirt acu cásíogair."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Le do thoil, logáil isteach arís cé go bhfuil to seisúin críochnaithe.  Ná "
+"bí imní ort, tá do iarratas sabháilte."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Feictear nach bhfuil do brabhsálaí réidh le cuaiche a glacadh. Le do thoil, "
+"cumasaigh cuaiche, athlódáil an leathanach seo, agus déan iarracht arís."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Níl an carachtar '@' ceadaithe in ainmeacha úsaideora."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Níl do ríomhseoladh do ainm úsaideora. Bain trial as '%s'."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Riaracháin an suíomh"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Logáil isteach"
+
+#: contrib/admin/util.py:126
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Ceann amhain nó níos mó  %(fieldname)s in %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:131
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Ceann amhain nó níos mó  %(fieldname)s in %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Dáta:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Am:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Ag an am seo."
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Athraigh:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Ní bhfuarthas an leathanach"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Tá brón orainn, ach ní bhfuarthas an leathanach iarraite."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Baile"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Botún freastalaí"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Botún freastalaí (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Botún Freastalaí <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Bhí botún. Seolah é go dtí riarthóirí an suíomh agus beidh sé ceartaithe i "
+"gceann tamallín. Go raibh maith agat le hadhaigh do foighne."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Fáilte"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Doiciméadúchán"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Athraigh focal faire"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Logáil amach"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Riarthóir suíomh Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Riarachán Django"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Cuir le"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Stair"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Breath ar suíomh"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Le do thoil ceartaigh an botún thíos."
+msgstr[1] "Le do thoil ceartaigh na botúin thíos."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Cuir %(name)s le"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Scagaire"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Cealaigh"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Má scriossan tú  %(object_name)s '%(escaped_object)s' scriosfaidh oibiachtí "
+"gaolta. Ach níl cead ag do cuntas na oibiacht a leanúint a scriosadh:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"An bhfuil tú cinnte na  %(object_name)s \"%(escaped_object)s\" a scroiseadh?"
+"Beidh gach oibiacht a leanúint scroiste freisin:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Táim cinnte"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Trí %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Samhla ar fáil ins an feidhmchlár %(name)s."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Athraigh"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Níl cead agat aon rud a cuir in eagar."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Aicsean úrnua"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Mo Aicseain"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Dada ar fáil"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Tá rud éigin mícheart le suitéail do bunachar sonraí.  Déan cinnte go bhfuil "
+"boird an bunachar sonraI cruthaithe cheana, agus déan cinnte go bhfuil do "
+"úsaideoir in ann an bunacchar sonraí a léamh."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Ainm úsaideor:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Focal faire:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Dáta/am"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Úsaideoir"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Aicsean"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "DATE_WITH_TIME_FULL"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Níl stáir aitraithe ag an oibiacht seo agús is dócha ná cuir le tríd an an "
+"suíomh riarachán."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Taispéan gach rud"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Té"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "toradh 1"
+msgstr[1] "1 toradh"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s iomlán"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Sabháil mar nua"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Sabháil agus cuir le ceann eile"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Sábhail agus lean ag cuir in eagar"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Sábháil"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Ar dtús, iontráil ainm úsaideoir agus focal faire.  Ansin, beidh tú in ann "
+"cuir in eagar níos mó roghaí úsaideoira."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Ainm úsaideoir"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Focal faire"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Focal faire (arís)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Iontráíl an focal faire céanna mar thuas, le fíorúchán."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr ""
+"Iontráil focal faire nua le hadhaigh an úsaideor <strong>%(username)s</"
+"strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Go raibh maith agat le hadhaigh do cuairt ar an suíomh idirlínn inniú."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Logáil isteacj arís"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Athrú focal faire"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Athrú an focal faire rathúil"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Bhí do focal faire aithraithe."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Le do thoil, iontráil do sean-focal faire, ar son slándáil, agus ansin "
+"iontráil do focal faire dhá uaire cé go mbeimid in ann a seiceal go bhfuil "
+"sé scríobhte isteach i gceart."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Sean-focal faire"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Focal faire nua:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Deimhnigh focal faire:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Athraigh mo focal faire"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Athsocraigh focal faire"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Athshocraigh an focal faire críochnaithe"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Tá do focal faire réidh.  Is féidir leat logáil isteach anois."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Deimhniú athshocraigh focal faire"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Cuir isteach focal faire nua"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Le do thoil, iontráil do focal faire dhá uaire cé go mbeimid in ann a "
+"seiceal go bhfuil sé scríobhte isteach i gceart."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Athshocraigh focal faire mí-rathúil"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"Bhí nasc athshocraigh an focal faire mícheart, b'fheidir mar go raibh sé "
+"úsaidte cheana.  Le do thoil, iarr ar athsocraigh focal faire nua."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Athshocraigh focal faire mí-rathúil"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Seolamar teagasca chugat le hadhaigh do r-phost a úsaid mar to focal faire.  "
+"Gheobaidh tú an r-phost i gceann tamallín."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"Tá tú ag fáil an r-phost seo mar iarr tú ar athshocraigh an focal faire."
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "Le do cuntas úsaideor ar %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr ""
+"Le do thoil té go dtí an leathanach a leanúint agus roghmaigh focal faire "
+"nua:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Do ainm úsaideoir, má tá dearmad déanta agat."
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Go raibh maith agat le hadhaigh do cuairt!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Foireann an %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Dearmad déanta ar do focal faire? Iontráil do r-phost thíos agus seolfaimid "
+"teagasca chun ceann nua a fháil."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "R-phost:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Athsocraigh mo focal faire"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Gach dáta"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Roghnaigh %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Roghnaigh %s a athrú"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "suíomh"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "teimpléad"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "clib:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "scag:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "radharc:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Ní bhfuarthas feidhmchlár %r "
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Ní bhfuarthas samhail %(model_name)r  i bhfeidhmclár %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "An oibiacht gaolmhara `%(app_label)s.%(data_type)s`"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "samhail:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "Oibiachtí gaolmhara `%(app_label)s.%(object_name)s`"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "gach %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "líon %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Réimse ar oibiachtí %s"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Slánuimhir"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Boole"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Teaghrán (suas go %(max_length)s)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Slánuimhireacha camóg-scartha"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Dáta (gan am)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Dáta (le am)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Uimhir deachúlach"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "R-phost"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Conair comhaid"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Snámhphointe"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "Seol IP"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Boole (Fíor, Bréagach nó Dada)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Cine do samhail máthair"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Uimhir telefón"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "téacs"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "am"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "U.S. stát (dhá litreacha móra)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "Téacs XML"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "Feiceann sé nach bhfuil %s oibiacht urlpattern"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Leabharmharcín"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Leabharmharcín doiciméadúchán"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Chun leabharmarcín a suitéal, Tarraing an nasc go dtí do barra uirlisí leabhairmairc\n, nó deaschliceáil and nasc agus cuir leis do leabharmairc.  Anois is féidir\n"
+"leat an leabharmarcín a roghnaigh ón aon leathanach ar an suíomh.  Bí cúramach go dteastaíonn cuid de na leabharmarcín go bhfuil tú ag féachaint ar an suíomh ó ríomhaire inmheánach\n(leabhar le do riarthóir córais muna bhfuil tú cinnte).</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Doiciméadúchán le hadhaigh an leathanach seo"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Tógann se tusa ón aon leathanach go dtí an doiciméadúchán le hadhaigh an "
+"radharc a rinne an leathanach."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Taispéain oibiacht ID"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Taispéain an content-type agus ID uathúil le leathanaigh le hadhaigh "
+"oibiacht amháin."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Cuir in eagar an oibiacht seo (fuinneog láthair)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Léimeann go dtí an leathanach riaracháin le leathainaigh le hadhaigh "
+"oibiacht amháin."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Cuir in eagar an oibiacht seo (fuinneog nua)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Mar thuas, ach osclaíonn sé an leathanach riarachán if fuinneog nua"
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Eolas pearsantach"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Ceada"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Dáta tábhactach"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Grúpa"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Cuir úsaideoir le"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Focal faire aithraithe rathúil"
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Athraigh focal faire: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "Riachtanach. 30 carachtair nó níos lú. Alfa-uimhriúil amhain (litreacha, digite agus fostríce)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Cathaigh litreacha, digite agus fostríce amhain le hadhaigh an méid seo."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Focal faire deimhniú"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "In ann do úsáideoir leis an ainm úsáideora."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "Níl an dá focla faire comhoiriúnigh"
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Tá an cuntas seo neamhghníomhach."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+""
+"Feictear nach bhfuil do brabhsálaí réidh le cuaiche a glacadh. Tá cuaiche ag teastail le logáil isteach."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "R-phost"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Níl cuntas in éineacht leis an r-phost sin. An bhfuil tú cinnte go bhfuil tú cláraithe?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Athsocraigh focal faire ar %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Focal faire nua"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Deimnhiú focal faire nua"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Sean-focal faire "
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Cuireadh do sean-focal faire isteach go mícheart. Iontráil isteach é arís."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "ainm"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "Ainm cód"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "cead"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "ceada"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "grúpa"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "grúpa"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "Ainm úsáideoir"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "ainm baiste"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "sloinne"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "seoladh r-phost"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "focal faire"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Úsáid '[algo]$[salt]$[hexdigest]' nó <a href=\"password/\">athraigh focal faire foirm</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "stádas foirne"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "Sainigh an bhfuil cead ag an úsáideoir logáil isteach go dtí an suíomh riaracháin seo."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "gníomhach"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr "Sainíonn an bhfuil an úsáideoir gníomhach. Míroghnaigh seo in aineonn de scriseadh cuntasí."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "stádas forúsáideoir"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "Sainíonn go bhfuil gach ceada ag an úsáideoir seo gan iad a cur le go díreach."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "logáil deirneach"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "Dáta teacht isteach"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr "Breis leis na ceada sannta láimhe, faigheann an úsáideoir seo gach ceada sannta do na grúpaí a bhfuil sé/sí isteach in."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "ceada úsáideoira"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "úsáideoir"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "úsáideora"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "teachtaireacht"
+
+#: contrib/auth/views.py:52
+msgid "Logged out"
+msgstr "Logáilte amach"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "oibiacht ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "ceannlíne"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "trácht"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "rátáil #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "rátáil #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "rátáil #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "rátáil #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "rátáil #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "rátáil #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "rátáil #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "rátáil #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "is rátáil bailí"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "Dáta/am curtha isteach"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "poiblí"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "Scrioste"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Seic an bosca seo dá bbéadh an nóta tráchta seo míchuí. Taispeantar \"Bhí an nóta tráchta scrioste\" in áit an nóta tráchta seo."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "nótaí tráchta"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Oibiacht inneachar"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Postáilte trí %(user)s ar %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "Ainm"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "seoladh ip"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "ceadaithe tríd an foireann"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "Nóta tráchta saor"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "Nótaí tráchtaí saoire"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "scór"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "Dáta scór"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "Scór karma"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "Scóra karma"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d rátailte trí  %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Bhí bratach curtha leis an nóta tráchta seo trí %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "Dáta brait"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "Brat úsáideoir"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "Brait úsáideoira"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Cuir brat leis roimh %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "Dáta scrioseadh"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "Scroiseadh modhnóir"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "Scrios modhnóra"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Scrios modhnóir trí %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Dearmad déanta ar do focal faire?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Rátála"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Riachtanach"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Roghnach"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Post griangraf"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Nóta tráchta"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Nóta tráchta réamhamharc"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Do chuid ainm:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Tá an rátáil seo ag teastail mar cuir tú rátáil amhain eile isteach ar a laghad."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Bhí an nóta tráchta póstailte trí úsáideoir a cuir níos lú ná %(count)s nótaí tráchtaí\n"
+"\n"
+"%(text)s"
+"Bhí an nóta tráchta póstailte trí úsáideoir a cuir níos lú ná %(count)s nótaí tráchtaí\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr "Bhí an nóta tráchta póstailte trí úsáideoir ait \n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "POSTs amhain ceadaithe"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Níor curtha isteach ceann amhain nó níos mó de na réimse riachtanach"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Cuir duine éigin isteach leis an foirm nóta tráchta (fadbh slándála)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Bhí paraiméadar targaid mícheart ag an foirm nóta tráchta -- bhí ID an oibiacht neamhbhailí"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Níor sholáthair an foirm nóta tráchta 'réamhamharc' nó 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Níl cead ag úsáideoira anaithnid vótáil"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Nóta tráchta ID neamhbhailí"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Vótáil leat féin coiscthe"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "píotón samhail aicme ainm"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "tíopa inneachar "
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "tíopaI inneachair"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Sampla '/about/contact/' Déan cinnte go bhfuil príomhslaid agus cúlslais agat."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "Níl ach litreacha, uimhreacha, slaiseacha, fólíniú agus daiseanna ceadaithe."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Ard-rogha"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "teideal"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "suaimhneach"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "Cuir nótaí tráchta ar chumas"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "ainm an teimpléid"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Sampla: 'flatpages/contact_page.html'. Muna bhfuil sé ar soláthair, bainfidh an córás úsáid as 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "clárúchán riachtanach"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Dá mbéadh é seo seicailte, ní beidh ach úsáideora logáilte isteach in ann an leathanach seo a fheiceail"
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "leacleathanach"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "leacleathanaigh"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Ní soláthair méid geoiméadracht"
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Méid geoiméadracht neamhbhailí"
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Tíopa geoiméadracht neamhbhailí"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "ú"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "ú"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "ú"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "ú"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgstr "%(value).1f milliún"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgstr "%(value).1f billiún"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgstr "%(value).1f trilliún"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "aon"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "dó"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "trí"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "ceathair"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "cúig"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "sé"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "seacht"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "ocht"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "naoi"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "inniu"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "amárach"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "inné"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Cuir isteach cód póstal ins an formáid NNNN nó ANNNNAAA"
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Teastaíonn an réimse seo uimhreacha amháin."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Teastaíonn an réimse seo 7 nó 8 digite."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Cuir isteach CUIT bailí i formáid XX-XXXXXXXX-X nó XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "CUIT neamhbailí"
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "Burgenland"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Carinthia"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "An Ostair íochtarach"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "An Ostair uachtarach"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "Salzburg"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "Styria"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "Tyrol"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "Tyrol"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "Vín"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Cuir isteach cód zip ins an formáid XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "An Ghinéiv"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Beirlín"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Sasana"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Tuaisceart Éireann"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Albain"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "An Bhreatain Bheag"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Saorstát"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "Iarthuaisceart"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "atreoraigh ó"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Teastaíonn dearbhchosán gan ainm fearainn. Sampla '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "atreoraigh go dtí"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "Is féidir dearbhchosán nó URL lán ag tosnú le 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "athsheol"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "atreoraithe"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "eochair an seisiún"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "sonraíocht an seisiún"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "Data dul as feidhm"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "seisiún"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "seisúin"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "ainm fearainn"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "ainm taispeáinta"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "suíomhanna"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Níl ach litreacha, uimhreacha, fílínta agus daiseanna ceadaithe."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Níl cás uachtair ceadaithe anseo."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Nil cás íochtair ceadaithe anseo."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Cuir isteach digite amháin anseo scartha le camóg."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Cuir isteach r-phostanna bailí scartha le camóige."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Le do thoil cuir isteach seoladh IP bailí."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Níl méideanna folmh ceadaithe anseo."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Níl ach uimhreacha ceadaithe anseo."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Cathaigh níos mó ná digite amháin sa méid seo."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Cuir isteach uimhir lán."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr ""
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr ""
+
+#: core/validators.py:152 db/models/fields/__init__.py:569
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr ""
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr ""
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr ""
+
+#: core/validators.py:166 forms/fields.py:412
+msgid "Enter a valid e-mail address."
+msgstr ""
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:430
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+
+#: core/validators.py:189 forms/fields.py:461
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr ""
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr ""
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr ""
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr ""
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr ""
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr ""
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr ""
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgstr ""
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr ""
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr ""
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr ""
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr ""
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr ""
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr ""
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr ""
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr ""
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr ""
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr ""
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr ""
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+"Please enter a valid decimal number with at most %s total digits."
+msgstr ""
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr ""
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr ""
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr ""
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr ""
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr ""
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr ""
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:170 db/models/fields/__init__.py:343
+#: db/models/fields/files.py:168 db/models/fields/files.py:179
+#: forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr ""
+
+#: db/models/fields/__init__.py:457
+msgid "This value must be an integer."
+msgstr ""
+
+#: db/models/fields/__init__.py:503
+msgid "This value must be either True or False."
+msgstr ""
+
+#: db/models/fields/__init__.py:532
+msgid "This field cannot be null."
+msgstr ""
+
+#: db/models/fields/__init__.py:634 db/models/fields/__init__.py:651
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr ""
+
+#: db/models/fields/__init__.py:707
+msgid "This value must be a decimal number."
+msgstr ""
+
+#: db/models/fields/__init__.py:854
+msgid "This value must be either None, True or False."
+msgstr ""
+
+#: db/models/fields/__init__.py:969 db/models/fields/__init__.py:982
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr ""
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr ""
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr ""
+
+#: db/models/fields/related.py:759
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+
+#: db/models/fields/related.py:839
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr ""
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr ""
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr ""
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr ""
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr ""
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr ""
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr ""
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr ""
+
+#: forms/fields.py:272 forms/fields.py:793
+msgid "Enter a valid date."
+msgstr ""
+
+#: forms/fields.py:305 forms/fields.py:794
+msgid "Enter a valid time."
+msgstr ""
+
+#: forms/fields.py:344
+msgid "Enter a valid date/time."
+msgstr ""
+
+#: forms/fields.py:431
+msgid "No file was submitted."
+msgstr ""
+
+#: forms/fields.py:432 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr ""
+
+#: forms/fields.py:522
+msgid "Enter a valid URL."
+msgstr ""
+
+#: forms/fields.py:523
+msgid "This URL appears to be a broken link."
+msgstr ""
+
+#: forms/fields.py:591 forms/fields.py:642
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+
+#: forms/fields.py:643 forms/fields.py:704 forms/models.py:528
+msgid "Enter a list of values."
+msgstr ""
+
+#: forms/fields.py:822
+msgid "Enter a valid IPv4 address."
+msgstr ""
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr ""
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgstr ""
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr ""
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr ""
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr ""
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr ""
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "tá, níl, b'fhéidir"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgstr ""
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "meán oíche"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "nóin"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Luan"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Máirt"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Céadaoin"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Déardaoin"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Aoine"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Satharn"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Domhnach"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Lua"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Mai"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Céa"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Déa"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Aoi"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Sat"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Dom"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Mí Eanair"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Mí Feabhra"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Mí Márta"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "Aibreán"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Bealtaine"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Mí an Mheithimh"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Mí Iúil"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Lúnasa"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "Meán Fómhair"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Deireadh Fómhair"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "Samhain"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Mí na Nollag"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "ean"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "fea"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "loit"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "aib"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "bealtaine"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "mei"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "iui"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "lun"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "mea"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "dei"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "sam"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "nol"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Ean"
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Fea"
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Lún"
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Mea"
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Dei"
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Sam"
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Nol"
+
+#: utils/text.py:128
+msgid "or"
+msgstr "nó"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "blian"
+msgstr[1] "blianta"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mí"
+msgstr[1] "mhí"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "seachtain"
+msgstr[1] "seachtain"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "lá"
+msgstr[1] "laethanta"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "uair"
+msgstr[1] "uair"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "nóiméad"
+msgstr[1] "nóiméad"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "nóiméad"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr ""
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ""
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "DATE_FORMAT"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "DATETIME_FORMAT"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "TIME_FORMAT"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr ""
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr ""
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr ""
+
+#~ msgid "Gaeilge"
+#~ msgstr "Gaeilge"
diff --git a/webapp/django/conf/locale/ga/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/ga/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..ba93d35
--- /dev/null
+++ b/webapp/django/conf/locale/ga/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ga/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/ga/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..0b935f1
--- /dev/null
+++ b/webapp/django/conf/locale/ga/LC_MESSAGES/djangojs.po
@@ -0,0 +1,116 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-09-14 12:33+0100\n"
+"PO-Revision-Date: 2008-01-23 11:04+0100\n"
+"Last-Translator: Michael Thornhill <michael@maithu.com>\n"
+"Language-Team: Gaeilge <ga@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid "January February March April May June July August September October November December"
+msgstr "Eanair Feabhra Márta Aibreán Bealtaine Meitheamh Iúil Lúnasa Mean Fómhair Deireadh Fómhair Nollaig"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D L M C D A S"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Domhnaigh Luain Máirt Céadaoin Déardaoin Aoine Sathairn"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s ar fáil"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Roghnaigh iomlán"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Cuir le"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Bain amach"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Roghnófar %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Roghnaigh do rogha agus cniog"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Glan iomlán"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Anois"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Clog"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Roghnaigh am"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Meán oíche"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Nóin"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Cealaigh"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Inniu"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Féilire"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Inné"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Amárach"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Taispeán"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Folaigh"
+
diff --git a/webapp/django/conf/locale/gl/LC_MESSAGES/django.mo b/webapp/django/conf/locale/gl/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..491d161
--- /dev/null
+++ b/webapp/django/conf/locale/gl/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/gl/LC_MESSAGES/django.po b/webapp/django/conf/locale/gl/LC_MESSAGES/django.po
new file mode 100644
index 0000000..f5db1f0
--- /dev/null
+++ b/webapp/django/conf/locale/gl/LC_MESSAGES/django.po
@@ -0,0 +1,3028 @@
+# Translation of django.po to Galego
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-05-28 12:56+0200\n"
+"PO-Revision-Date: 2007-05-28 17:29+0200\n"
+"Last-Translator: Afonso Fernández Nogueira <fonzzo.django@gmail.com>\n"
+"Language-Team: Galego\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Galician\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "árabe"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "bengalí"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "búlgaro"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr "catalán"
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "checo"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "galés"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "dinamarqués"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "alemán"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "grego"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "inglés"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "español"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "español de Arxentina"
+
+#: conf/global_settings.py:51
+msgid "Finnish"
+msgstr "finés"
+
+#: conf/global_settings.py:52
+msgid "French"
+msgstr "francés"
+
+#: conf/global_settings.py:53
+msgid "Galician"
+msgstr "galego"
+
+#: conf/global_settings.py:54
+msgid "Hungarian"
+msgstr "húngaro"
+
+#: conf/global_settings.py:55
+msgid "Hebrew"
+msgstr "hebreo"
+
+#: conf/global_settings.py:56
+msgid "Icelandic"
+msgstr "islandés"
+
+#: conf/global_settings.py:57
+msgid "Italian"
+msgstr "italiano"
+
+#: conf/global_settings.py:58
+msgid "Japanese"
+msgstr "xaponés"
+
+#: conf/global_settings.py:59
+msgid "Korean"
+msgstr "coreano"
+
+#: conf/global_settings.py:60
+msgid "Kannada"
+msgstr "canará"
+
+#: conf/global_settings.py:61
+msgid "Latvian"
+msgstr "letón"
+
+#: conf/global_settings.py:62
+msgid "Macedonian"
+msgstr "macedonio"
+
+#: conf/global_settings.py:63
+msgid "Dutch"
+msgstr "holandés"
+
+#: conf/global_settings.py:64
+msgid "Norwegian"
+msgstr "noruegués"
+
+#: conf/global_settings.py:65
+msgid "Polish"
+msgstr "polaco"
+
+#: conf/global_settings.py:66
+msgid "Portugese"
+msgstr "portugués"
+
+#: conf/global_settings.py:67
+msgid "Brazilian"
+msgstr "brasileiro"
+
+#: conf/global_settings.py:68
+msgid "Romanian"
+msgstr "romanés"
+
+#: conf/global_settings.py:69
+msgid "Russian"
+msgstr "ruso"
+
+#: conf/global_settings.py:70
+msgid "Slovak"
+msgstr "eslovaco"
+
+#: conf/global_settings.py:71
+msgid "Slovenian"
+msgstr "esloveno"
+
+#: conf/global_settings.py:72
+msgid "Serbian"
+msgstr "serbio"
+
+#: conf/global_settings.py:73
+msgid "Swedish"
+msgstr "sueco"
+
+#: conf/global_settings.py:74
+msgid "Tamil"
+msgstr "támil"
+
+#: conf/global_settings.py:75
+msgid "Telugu"
+msgstr "telugu"
+
+#: conf/global_settings.py:76
+msgid "Turkish"
+msgstr "turco"
+
+#: conf/global_settings.py:77
+msgid "Ukrainian"
+msgstr "ucraíno"
+
+#: conf/global_settings.py:78
+msgid "Simplified Chinese"
+msgstr "chinés simplificado"
+
+#: conf/global_settings.py:79
+msgid "Traditional Chinese"
+msgstr "chinés tradicional"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Por %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Todo"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Calquera data"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Hoxe"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Últimos 7 días"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Este mes"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Este ano"
+
+#: contrib/admin/filterspecs.py:143 newforms/widgets.py:182
+#: oldforms/__init__.py:577
+msgid "Yes"
+msgstr "Si"
+
+#: contrib/admin/filterspecs.py:143 newforms/widgets.py:182
+#: oldforms/__init__.py:577
+msgid "No"
+msgstr "Non"
+
+#: contrib/admin/filterspecs.py:150 newforms/widgets.py:182
+#: oldforms/__init__.py:577
+msgid "Unknown"
+msgstr "Descoñecido"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "hora da acción"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "id do obxecto"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "repr do obxecto"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "código do tipo de acción"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "cambiar mensaxe"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "entrada de rexistro"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "entradas de rexistro"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Páxina non atopada"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Sentímolo, pero non se atopou a páxina solicitada."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Inicio"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Erro no servidor"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Erro no servidor (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Erro do servidor <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Houbo un erro. Xa se informou aos administradores do sitio por correo "
+"electrónico e debería quedar arranxado pronto. Grazas pola súa paciencia."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Benvido,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Documentation"
+msgstr "Documentación"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Cambiar contrasinal"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Rematar sesión"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Administración de sitio Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administración de Django"
+
+#: contrib/admin/templates/admin/change_form.html:15
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Engadir"
+
+#: contrib/admin/templates/admin/change_form.html:21
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Histórico"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Ver na web"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Por favor, corrixa o erro de embaixo."
+msgstr[1] "Por favor, corrixa os erros de embaixo."
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Orde"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Orde:"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Engadir %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Eliminar"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Borrar o %(object_name)s '%(escaped_object)s' resultaría na eliminación de elementos "
+"relacionados, pero a súa conta non ten permiso para borrar os seguintes "
+"tipos de elementos:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Seguro que quere borrar o %(object_name)s \"%(escaped_object)s\"? Eliminaranse os "
+"seguintes obxectos relacionados:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Si, estou seguro"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Por %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtro"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelos dispoñíbeis na aplicación %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modificar"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Non ten permiso para editar nada."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Accións recentes"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "As miñas accións"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Ningunha dispoñíbel"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Hai un problema coa súa instalación de base de datos. Asegúrese "
+"de que se creasen as táboas axeitadas na base de datos, e de que o usuario "
+"apropiado teña permisos para lela."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuario:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Contrasinal:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "Iniciar sesión"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Data/hora"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Usuario"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Acción"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j de N de Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Este obxecto non ten histórico de cambios. Posibelmente non se creou usando "
+"este sitio de administración."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Amosar todo"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Ir"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 resultado"
+msgstr[1] "%(counter)s resultados"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s en total"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Gardar coma novo"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Gardar e engadir outro"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Gardar e seguir editando"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Gardar"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "Primeiro insira un nome de usuario e un contrasinal. Despois poderá "
+"editar máis opcións de usuario."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Usuario"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+msgid "Password"
+msgstr "Contrasinal"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Password (again)"
+msgstr "Contrasinal (outra vez)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Insira o mesmo contrasinal ca enriba para verificalo."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Insira un novo contrasinal para o usuario <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Bookmarklets de documentación"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Para instalar bookmarklets, arrastre a ligazón á súa\n"
+"barra de favoritos ou marcadores, ou faga clic co botón dereito\n"
+"e engádao aos marcadores. Agora pode usar o bookmarklet dende\n"
+" calquera páxina do sitio web. Teña en conta que algúns destes\n"
+"bookmarklets precisan que estea a visitar o sitio dende un ordenador\n"
+"designado coma \"interno\" (fale co administrador do sistema se\n"
+"non está seguro de que o seu ordenador é \"interno\" .</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Documentación para esta páxina"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "Salta á documentación para a vista que xera a páxina."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Amosar ID do obxecto"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Amosa o tipo de contido e a ID única para páxinas que representan un obxecto "
+"determinado."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Editar este obxecto (nesta fiestra)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Salta á páxina de administración para páxina que representan un obxecto "
+"determinado."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Editar este obxecto (nunha nova fiestra)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Como enriba, pero abre a páxina de administración nunha nova fiestra."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Grazas polo tempo que dedicou ao sitio web."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Entrar de novo"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Cambiar o contrasinal"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "O seu contrasinal cambiouse correctamente."
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Cambiouse o seu contrasinal."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Por razóns de seguridade, introduza o contrasinal actual. Despois introduza "
+"dúas veces o contrasinal para verificarmos que o escribiu correctamente."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Contrasinal actual:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Contrasinal novo:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Confirmar contrasinal:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Cambiar o contrasinal"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Recuperar o contrasinal"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "O contrasinal foi recuperado correctamente"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Acabamos de enviarlle un novo contrasinal ao enderezo de correo indicado. "
+"Debería recibilo en breve."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Recibe esta mensaxe porque solicitou recuperar o contrasinal"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "para a súa conta de usuario en %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "O seu novo contrasinal é: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Pode cambiar este contrasinal visitando esta páxina:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "No caso de que o esquecese, o seu nome de usuario é:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Grazas por usar o noso sitio web!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "O equipo de %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Esqueceu o contrasinal? Introduza o seu enderezo de correo electrónico "
+"embaixo e enviarémoslle un novo contrasinal."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Enderezo de correo electrónico:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Recuperar o meu contrasinal"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Hora"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Agora:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Modificar:"
+
+#: contrib/admin/templatetags/admin_list.py:249
+msgid "All dates"
+msgstr "Todas as datas"
+
+#: contrib/admin/views/auth.py:19 contrib/admin/views/main.py:257
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Engadiuse correctamente o/a %(name)s  \"%(obj)s\"."
+
+#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:261
+#: contrib/admin/views/main.py:347
+msgid "You may edit it again below."
+msgstr "Pode editalo embaixo."
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "Engadir usuario"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "O contrasinal cambiouse correctamente."
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "Cambiar contrasinal: %s"
+
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Insira un nome de usuario e un contrasinal correctos. Teña en conta que nos "
+"dous campos se distingue entre maiúsculas e minúsculas."
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Ten que identicarse outra vez porque a súa sesión expirou. Non se preocupe, "
+"o que enviou quedou gardado."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Semella que o seu navegador non está configurado para aceptar  'cookies'. "
+"Por favor, habilite as 'cookies', recargue a páxina e ténteo de novo."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Os nomes de usuario non poden conter o carácter '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"O seu enderezo de correo electrónico non é o seu nome de usuario. Probe con "
+"'%s'."
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "etiqueta:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "filtro:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "vista:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "Non se atopou a aplicación %r"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Non se atopou o modelo %(name)r na aplicación %(label)r"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "o obxecto `%(label)s.%(type)s` relacionado"
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "modelo:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "obxectos `%(label)s.%(name)s` relacionados"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "todos os %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "número de %s"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Campos dos obxectos %s"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:304 contrib/admin/views/doc.py:310
+#: contrib/admin/views/doc.py:311 contrib/admin/views/doc.py:313
+msgid "Integer"
+msgstr "Número enteiro"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Valor booleano (verdadeiro ou falso)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:312
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Cadea (ata %(maxlength)s caracteres)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Números enteiros separados por comas"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Data (sen a hora)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Data (coa hora)"
+
+#: contrib/admin/views/doc.py:297
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#: contrib/admin/views/doc.py:298
+msgid "E-mail address"
+msgstr "Enderezo de correo electrónico"
+
+#: contrib/admin/views/doc.py:299 contrib/admin/views/doc.py:300
+#: contrib/admin/views/doc.py:303
+msgid "File path"
+msgstr "Ruta do ficheiro"
+
+#: contrib/admin/views/doc.py:301
+msgid "Floating point number"
+msgstr "Número de coma flotante"
+
+#: contrib/admin/views/doc.py:305 contrib/comments/models.py:85
+msgid "IP address"
+msgstr "Enderezo IP"
+
+#: contrib/admin/views/doc.py:307
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (verdadeiro, falso ou ningún)"
+
+#: contrib/admin/views/doc.py:308
+msgid "Relation to parent model"
+msgstr "Relación cun modelo pai"
+
+#: contrib/admin/views/doc.py:309
+msgid "Phone number"
+msgstr "Número de teléfono"
+
+#: contrib/admin/views/doc.py:314
+msgid "Text"
+msgstr "Texto"
+
+#: contrib/admin/views/doc.py:315
+msgid "Time"
+msgstr "Hora"
+
+#: contrib/admin/views/doc.py:316 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:317
+msgid "U.S. state (two uppercase letters)"
+msgstr "Estado dos Estados Unidos (dúas letras maiúsculas)"
+
+#: contrib/admin/views/doc.py:318
+msgid "XML text"
+msgstr "Texto XML"
+
+#: contrib/admin/views/doc.py:344
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s non semella ser un obxecto urlpattern"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Administración do sitio web"
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Pode engadir outro/a %s embaixo."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "Engadir %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "Engadido/a %s."
+
+#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339 db/models/manipulators.py:308
+msgid "and"
+msgstr "e"
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "Modificado(s) %s."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "Eliminado(s) %s."
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Non se modificou ningún campo."
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Modificouse correctamente o/a %(name)s \"%(obj)s\"."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "Engadiuse correctamente o/a %(name)s \"%(obj)s\" Pode editalo embaixo."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "Modificar %s"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Un ou máis %(fieldname)s no/a %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Un ou máis %(fieldname)s no/a %(name)s:"
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Eliminouse correctamente o/a %(name)s \"%(obj)s\"."
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "Está seguro?"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "Histórico de cambios: %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "Seleccione un/ha %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s to change"
+msgstr "Seleccione %s que modificar"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "Erro da base de datos"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Os dous campos de contrasinal non coinciden."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Xa existe un usuario con ese nome de usuario."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Semella que o seu navegador non acepta 'cookies'. Requírense 'cookies' para "
+"iniciar sesión."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Esta conta está inactiva."
+
+#: contrib/auth/forms.py:85
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Este enderezo de correo electrónico non ten unha conta de usuario asociada. "
+"Está seguro de que está rexistrado?"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Os dous campos 'contrasinal novo' non coinciden."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Inseriu incorrectamente o seu contrasinal actual. Por favor, insírao de novo."
+
+#: contrib/auth/models.py:44 contrib/auth/models.py:64
+msgid "name"
+msgstr "nome"
+
+#: contrib/auth/models.py:46
+msgid "codename"
+msgstr "código"
+
+#: contrib/auth/models.py:49
+msgid "permission"
+msgstr "permiso"
+
+#: contrib/auth/models.py:50 contrib/auth/models.py:65
+msgid "permissions"
+msgstr "permisos"
+
+#: contrib/auth/models.py:68
+msgid "group"
+msgstr "grupo"
+
+#: contrib/auth/models.py:69 contrib/auth/models.py:109
+msgid "groups"
+msgstr "grupos"
+
+#: contrib/auth/models.py:99
+msgid "username"
+msgstr "nome de usuario"
+
+#: contrib/auth/models.py:99
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Requirido. 30 caracteres ou menos. Soamente caracteres alfanuméricos "
+"(letras, díxitos ou guións baixos)."
+
+#: contrib/auth/models.py:100
+msgid "first name"
+msgstr "nome"
+
+#: contrib/auth/models.py:101
+msgid "last name"
+msgstr "apelidos"
+
+#: contrib/auth/models.py:102
+msgid "e-mail address"
+msgstr "enderezo de correo electrónico"
+
+#: contrib/auth/models.py:103
+msgid "password"
+msgstr "contrasinal"
+
+#: contrib/auth/models.py:103
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Use '[algo]$[salt]$[hexdigest]' ou utilice o <a href=\"password/\">formulario de "
+"cambio de contrasinal</a>."
+
+#: contrib/auth/models.py:104
+msgid "staff status"
+msgstr "membro do persoal"
+
+#: contrib/auth/models.py:104
+msgid "Designates whether the user can log into this admin site."
+msgstr "Indica se o usuario pode entrar neste sitio de administración."
+
+#: contrib/auth/models.py:105
+msgid "active"
+msgstr "activo"
+
+#: contrib/auth/models.py:105
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "Indica se o usuario pode entrar na sección de administración. "
+"Desactíveo no canto de borrar contas de usuario."
+
+#: contrib/auth/models.py:106
+msgid "superuser status"
+msgstr "estatus de superusuario"
+
+#: contrib/auth/models.py:106
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Indica que este usuario ten todos os permisos sen asignarllos explicitamente."
+
+
+#: contrib/auth/models.py:107
+msgid "last login"
+msgstr "última sesión"
+
+#: contrib/auth/models.py:108
+msgid "date joined"
+msgstr "data de rexistro"
+
+#: contrib/auth/models.py:110
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Ademais dos permisos asignados manualmente, este usuario gozará de todos os "
+"permisos concedidos a cada un dos grupos aos que pertence."
+
+#: contrib/auth/models.py:111
+msgid "user permissions"
+msgstr "permisos de usuario"
+
+#: contrib/auth/models.py:115
+msgid "user"
+msgstr "usuario"
+
+#: contrib/auth/models.py:116
+msgid "users"
+msgstr "usuarios"
+
+#: contrib/auth/models.py:122
+msgid "Personal info"
+msgstr "Información persoal"
+
+#: contrib/auth/models.py:123
+msgid "Permissions"
+msgstr "Permisos"
+
+#: contrib/auth/models.py:124
+msgid "Important dates"
+msgstr "Datas importantes"
+
+#: contrib/auth/models.py:125
+msgid "Groups"
+msgstr "Grupos"
+
+#: contrib/auth/models.py:269
+msgid "message"
+msgstr "mensaxe"
+
+#: contrib/auth/models.py:282
+msgid "AnonymousUser"
+msgstr "UsuarioAnónimo"
+
+#: contrib/auth/views.py:40
+msgid "Logged out"
+msgstr "Rematou a sesión"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "ID do obxecto"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "título"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "comentario"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "valoración 1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "valoración 2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "valoración 3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "valoración 4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "valoración 5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "valoración 6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "valoración 7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "valoración 8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "é unha valoración válida"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "data/hora do envío"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "é público"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "está borrado"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Marque esta caixa se o comentario non é apropiado. Verase a mensaxe \"Este "
+"comentario foi borrado\" no canto do seu contido."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "comentarios"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Obxecto de contido"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Publicado por %(user)s o %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "nome da persoa"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "enderezo IP"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "aprobado polos moderadores"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "comentario libre"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "comentarios libres"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "puntuación"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "data da puntuación"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "puntos de karma"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "puntos de karma"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "puntuación de %(score)d por %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Este comentario foi marcado por %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "data da marca"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "marca de usuario"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "marcas de usuario"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Marca por %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "data de borrado"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "borrado de moderador"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "borrados de moderador"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Borrado polo moderador %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Esqueceu o contrasinal?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Valoracións"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Requirido"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcional"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Publicar unha foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Comentario:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Previsualizar comentario"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "O seu nome:"
+
+#: contrib/comments/views/comments.py:27
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Requírese esta valoración porque vostede inseriu polo menos "
+"outra valoración."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Este comentario foi publicado por un usuario que ten publicados menos de %"
+"(count)s comentario:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Este comentario foi publicado por un usuario que ten publicados menos de %"
+"(count)s comentarios:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Este comentario foi enviado por un usuario conflitivo:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Soamente se permiten envíos polo método POST"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Non se enviaron un ou máis dos campos requiridos"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Alguén manipulou o formulario do comentario (violación de seguridade)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"O formulario do comentario tiña un parámetro 'target' non válido: a ID do "
+"obxecto non é válida"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "O formulario de comentario non proporciona 'preview' ou 'post'"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Os usuarios anónimos non poden votar"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "ID de comentario non válida"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Vostede non se pode votar a si mesmo"
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "nome do módulo Python"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "tipo de contido"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "tipos de contido"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Exemplo: '/about/contact/'. Lembre incluír as barras ao principio e ao final."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "título"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "contido"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "activar comentarios"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "nome da plantilla"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Exemplo: 'flatpages/contact_page.html'. Se non se especifica, o sistema usará "
+"'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "require rexistro"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Se se marca, só poderán ver a páxina os usuarios identificados."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "páxina simple"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "páxinas simples"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "st"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "nd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f millón"
+msgstr[1] "%(value).1f millóns"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f mil millóns"
+msgstr[1] "%(value).1f miles de millóns"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f billón"
+msgstr[1] "%(value).1f billóns"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "un"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "dous"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "tres"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "catro"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "cinco"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "seis"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "sete"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "oito"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "nove"
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "Insira un código postal de 4 díxitos."
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Insira un código postal no formato XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr ""
+"Os números de teléfono deben estar no formato XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:72
+msgid "This field requires only numbers."
+msgstr "Este campo soamente admite números."
+
+#: contrib/localflavor/br/forms.py:74
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Este campo acepta como máximo 11 díxitos ou 14 caracteres."
+
+#: contrib/localflavor/br/forms.py:84
+msgid "Invalid CPF number."
+msgstr "Número de CPF non válido."
+
+#: contrib/localflavor/br/forms.py:106
+msgid "This field requires at least 14 digits"
+msgstr "Este campo require polo menos 14 díxitos."
+
+#: contrib/localflavor/br/forms.py:116
+msgid "Invalid CNPJ number."
+msgstr "Número de CNPJ non válido"
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Argovia"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Interior"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Exterior"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basilea-Cidade"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basilea-Campo"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berna"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Friburgo"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Xenebra"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Grisóns"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Xura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerna"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwald"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwald"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Soleura"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "San Galo"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Turgovia"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Tesino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:15
+msgid "Enter a zip code in the format XXXX."
+msgstr "Insira un código posttal no formato XXXX."
+
+#: contrib/localflavor/ch/forms.py:90
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr "Insira un número válido de tarxeta de identidade ou pasaporte no "
+"formato X1234567<0 ou 1234567890."
+
+#: contrib/localflavor/cl/forms.py:21
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Insira un RUT chileno válido. O formato é XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:26
+msgid "Enter valid a Chilean RUT"
+msgstr "Insira un RUT chileno válido."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Württemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Baviera"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlín"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandemburgo"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburgo"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hesse"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklemburgo-Pomerania Occidental"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Baixa Saxonia"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Renania do Norte-Westfalia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Renania-Palatinado"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Sarre"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxonia"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxonia-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Turinxia"
+
+#: contrib/localflavor/de/forms.py:16 contrib/localflavor/fi/forms.py:14
+#: contrib/localflavor/fr/forms.py:17
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Insira un código postal no formato XXXXX"
+
+#: contrib/localflavor/de/forms.py:60
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr "Insira un número válido de tarxeta de identidade alemá no formato "
+"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr "Insira un número válido de tarxeta da seguridade social finlandesa."
+
+#: contrib/localflavor/is_/forms.py:16
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"Insira un número de identificación islandés válido. O formato é XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:30
+msgid "The Icelandic identification number is not valid."
+msgstr "O número de identificación islandés non é válido."
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Insira un código postal válido."
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "Insira un número da seguridade social válido."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Insira un número de IVE válido."
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Insira un código postal no formato XXXXXXX ou XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaidō"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Toquio"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kioto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyōgo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kōchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Ōita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/no/forms.py:36
+msgid "Enter a valid Norwegian social security number."
+msgstr "Insira un número válida da seguridade social norueguesa."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "Insira un código postal. Requírese un espazo entre as dúas partes do código postal."
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Insira un código postal no formato XXXXX ou XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Insira un número válido da seguridade social dos Estados Unidos no formato XXX-XX-XXXX."
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "orixe da redirección"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Debe ser unha ruta absoluta, sen o nome de dominio. Exemplo: '/events/"
+"search/'"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "destino da redirección"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Pode ser unha ruta absoluta (coma a de enriba) ou un URL completo que empece "
+"por 'http://'"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redirección"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redireccións"
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "clave da sesión"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "datos da sesión"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "data de caducidade"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "sesión"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "sesións"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "dominio"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "nome"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "sitio"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "sitios"
+
+#: core/validators.py:65
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Este valor soamente pode conter letras, números e guións baixos (_)."
+
+#: core/validators.py:69
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Este valor soamente pode conter letras, números, guións baixos (_), guións "
+"(-) e barras inclinadas (/)."
+
+#: core/validators.py:73
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Este valor soamente pode conter letras, números, guións baixos (_) e guións."
+
+#: core/validators.py:77
+msgid "Uppercase letters are not allowed here."
+msgstr "Non se permiten letras maiúsculas."
+
+#: core/validators.py:81
+msgid "Lowercase letters are not allowed here."
+msgstr "Non se permiten letras minúsculas."
+
+#: core/validators.py:88
+msgid "Enter only digits separated by commas."
+msgstr "Insira só díxitos separados por comas."
+
+#: core/validators.py:100
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Insira enderezos de correo elecrónico válidos separados por comas."
+
+#: core/validators.py:104
+msgid "Please enter a valid IP address."
+msgstr "Insira un enderezo IP válido."
+
+#: core/validators.py:108
+msgid "Empty values are not allowed here."
+msgstr "Non se permiten valores en branco."
+
+#: core/validators.py:112
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Non se permiten caracteres non númericos."
+
+#: core/validators.py:116
+msgid "This value can't be comprised solely of digits."
+msgstr "Este valor non pode estar composto por díxitos soamente."
+
+#: core/validators.py:121 newforms/fields.py:135
+msgid "Enter a whole number."
+msgstr "Insira un número enteiro."
+
+#: core/validators.py:125
+msgid "Only alphabetical characters are allowed here."
+msgstr "Soamente se permiten caracteres do alfabeto."
+
+#: core/validators.py:140
+msgid "Year must be 1900 or later."
+msgstr "O ano debe ser 1900 ou posterior."
+
+#: core/validators.py:144
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Data non válida: %s"
+
+#: core/validators.py:149 db/models/fields/__init__.py:463
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Insira unha data válida en formato AAAA-MM-DD."
+
+#: core/validators.py:154
+msgid "Enter a valid time in HH:MM format."
+msgstr "Insira unha hora válida en formato HH:MM."
+
+#: core/validators.py:158 db/models/fields/__init__.py:532
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Insira unha data/hora válida en formato AAAA-MM-DD HH:MM."
+
+#: core/validators.py:163 newforms/fields.py:339
+msgid "Enter a valid e-mail address."
+msgstr "Insira un enderezo de correo electrónico válido."
+
+#: core/validators.py:175 core/validators.py:453 oldforms/__init__.py:672
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Non se enviou ficheiro ningún. Comprobe o tipo de codificación do formulario."
+
+#: core/validators.py:179
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Suba unha imaxe válida. O ficheiro subido non era unha imaxe ou esta estaba "
+"corrupta."
+
+#: core/validators.py:186
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "O URL %s non apunta a unha imaxe válida."
+
+#: core/validators.py:190
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Os números de teléfono deben estar no formato XXX-XXX-XXXX. \"%s\" non é "
+"válido."
+
+#: core/validators.py:198
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "O URL %s non apunta a unha vídeo QuickTime válido."
+
+#: core/validators.py:202
+msgid "A valid URL is required."
+msgstr "Precísase un URL válido."
+
+#: core/validators.py:216
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Precísase HTML válido. Os erros específicos son estes:\n"
+"%s"
+
+#: core/validators.py:223
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML mal formado: %s"
+
+#: core/validators.py:240
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL non válido: %s"
+
+#: core/validators.py:245 core/validators.py:247
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "O URL %s é unha ligazón rota."
+
+#: core/validators.py:253
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Insira unha abreviatura estatal válida para os Estados Unidos."
+
+#: core/validators.py:267
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Sen palabrotas, por favor! Aquí non se pode usar a palabra %s."
+msgstr[1] "Sen palabrotas, por favor! Aquí non se poden usar as palabras %s."
+
+#: core/validators.py:274
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Este campo ten que coincidir co campo '%s'."
+
+#: core/validators.py:293
+msgid "Please enter something for at least one field."
+msgstr "Por favor, encha polo menos un campo."
+
+#: core/validators.py:302 core/validators.py:313
+msgid "Please enter both fields or leave them both empty."
+msgstr "Por favor, encha os dous campos ou deixe ambos en branco."
+
+#: core/validators.py:321
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Débese encher este campo se %(field)s é %(value)s"
+
+#: core/validators.py:334
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Este campo débese encher se %(field)s non é %(value)s"
+
+#: core/validators.py:353
+msgid "Duplicate values are not allowed."
+msgstr "Non se permiten valores duplicados."
+
+#: core/validators.py:368
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Este valor ten que estar comprendido entre %(lower)s e %(upper)s."
+
+#: core/validators.py:370
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Este valor ten que ser polo menos %s."
+
+#: core/validators.py:372
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Este valor non pode ser superior a %s."
+
+#: core/validators.py:408
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Este valor ten que ser unha potencia de %s."
+
+#: core/validators.py:417
+msgid "Please enter a valid decimal number."
+msgstr "Insira un número decimal válido."
+
+#: core/validators.py:423
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Insira un número decimal válido cun máximo de %s díxito en total."
+msgstr[1] "Insira un número decimal válido cun máximo de %s díxitos en total."
+
+#: core/validators.py:426
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Insira un número decimal válido cunha parte enteira de como máximo %s díxito."
+msgstr[1] "Insira un número decimal válido cunha parte enteira de como máximo %s díxitos."
+
+#: core/validators.py:429
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Insira un número decimal válido cun máximo de %s lugar decimal."
+msgstr[1] "Insira un número decimal válido cun máximo de %s lugares decimais."
+
+#: core/validators.py:437
+msgid "Please enter a valid floating point number."
+msgstr "Insira un número de coma flotante válido."
+
+#: core/validators.py:446
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Verifique que o ficheiro subido ten un tamaño mínimo de %s bytes."
+
+#: core/validators.py:447
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Verifique que o ficheiro subido ten un tamaño máximo de %s bytes."
+
+#: core/validators.py:464
+msgid "The format for this field is wrong."
+msgstr "O formato deste campo é incorrecto."
+
+#: core/validators.py:479
+msgid "This field is invalid."
+msgstr "Este campo non é válido."
+
+#: core/validators.py:515
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Non se puido recibir ningún dato de %s."
+
+#: core/validators.py:518
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"O URL %(url)s devolveu a cabeceira Content-Type non válida '%(contenttype)s'."
+
+#: core/validators.py:551
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Por favor, peche a etiqueta %(tag)s da liña %(line)s. (A liña comeza con \"%"
+"(start)s\")."
+
+#: core/validators.py:555
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Algún texto a partir da liña %(line)s non é válido nese contexto. (A liña "
+"comeza con \"%(start)s\")."
+
+#: core/validators.py:560
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" na liña %(line)s non é un atributo válido. (A liña comeza con "
+"\"%(start)s\")."
+
+#: core/validators.py:565
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" na liña %(line)s non é unha etiqueta válida. (A liña comeza "
+"con \"%(start)s\")."
+
+#: core/validators.py:569
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Falta un o máis dos atributos requiridos para unha etiqueta da liña %(line)"
+"s. (A liña comeza con \"%(start)s\")."
+
+#: core/validators.py:574
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"O atributo \"%(attr)s\" na liña %(line)s contén un valor non válido. (A liña "
+"comeza con \"%(start)s\")."
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+"Xa existe un obxecto %(object)s con este %(type)s para o campo %(field)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Xa existe un/ha %(optname)s con este/a %(fieldname)s."
+
+#: db/models/fields/__init__.py:121 db/models/fields/__init__.py:278
+#: db/models/fields/__init__.py:675 db/models/fields/__init__.py:686
+#: newforms/fields.py:87 newforms/fields.py:444 newforms/fields.py:520
+#: newforms/fields.py:531 newforms/models.py:186 oldforms/__init__.py:357
+msgid "This field is required."
+msgstr "Requírese este campo."
+
+#: db/models/fields/__init__.py:373
+msgid "This value must be an integer."
+msgstr "Este valor ten que ser un número enteiro."
+
+#: db/models/fields/__init__.py:408
+msgid "This value must be either True or False."
+msgstr "Este valor ten que verdadeiro ou falso."
+
+#: db/models/fields/__init__.py:429
+msgid "This field cannot be null."
+msgstr "Este campo non pode ser nulo."
+
+#: db/models/fields/__init__.py:592
+msgid "This value must be a decimal number."
+msgstr "Este valor ten que ser un número decimal."
+
+#: db/models/fields/__init__.py:695
+msgid "Enter a valid filename."
+msgstr "Introduza un nome de ficheiro válido."
+
+#: db/models/fields/__init__.py:818
+msgid "This value must be either None, True or False."
+msgstr "Este valor ten que verdadeiro, falso ou nulo."
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Insira un %s válido/a."
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Separe varias IDs con comas."
+
+#: db/models/fields/related.py:644
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+" Para seleccionar máis dunha entrada, manteña premida a tecla \"Control\", "
+"ou \"Comando\" nun Mac."
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Insira IDs de %(self)s válidas. O valor %(value)r non é válido."
+msgstr[1] ""
+"Insira IDs de %(self)s válidas. Os valores %(value)r non son válidos."
+
+#: newforms/fields.py:110 newforms/fields.py:324
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "Asegúrese de que este valor ten como máximo %d caracteres."
+
+#: newforms/fields.py:112 newforms/fields.py:326
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "Asegúrese de que este valor ten polo menos %d caracteres."
+
+#: newforms/fields.py:137 newforms/fields.py:160 newforms/fields.py:192
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Asegúrese de que este valor é menor ou igual a %s."
+
+#: newforms/fields.py:139 newforms/fields.py:162 newforms/fields.py:194
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Asegúrese de que este valor é maior ou igual a %s"
+
+#: newforms/fields.py:158 newforms/fields.py:186
+msgid "Enter a number."
+msgstr "Insira un número."
+
+#: newforms/fields.py:196
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Asegñurese de que non hai máis de %s díxitos en total."
+
+#: newforms/fields.py:198
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Asegúrese de que non hai máis de %s lugares decimais."
+
+#: newforms/fields.py:200
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Asegúrese de que no hai máis de %s díxitos antes do punto ou coma decimal."
+
+#: newforms/fields.py:233
+msgid "Enter a valid date."
+msgstr "Insira unha data válida."
+
+#: newforms/fields.py:260
+msgid "Enter a valid time."
+msgstr "Insira unha hora válida."
+
+#: newforms/fields.py:296
+msgid "Enter a valid date/time."
+msgstr "Insira unha data/hora válida."
+
+#: newforms/fields.py:310
+msgid "Enter a valid value."
+msgstr "Insira un valor válido."
+
+#: newforms/fields.py:357 newforms/fields.py:379
+msgid "Enter a valid URL."
+msgstr "Insira un URL válido."
+
+#: newforms/fields.py:381
+msgid "This URL appears to be a broken link."
+msgstr "Semella que este URL é unha ligazón rota."
+
+#: newforms/fields.py:432 newforms/models.py:173
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Escolla unha opción válida. Esta opción non se atopa entre as opcións dispoñíbeis"
+
+#: newforms/fields.py:448 newforms/fields.py:524 newforms/models.py:190
+msgid "Enter a list of values."
+msgstr "Insira unha lista de valores."
+
+#: newforms/fields.py:457 newforms/models.py:196
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Escolla unha opción válida. %s non se atopa entre as opcións dispoñíbeis."
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Asegúrese de que o seu texto contén menos de %s carácter."
+msgstr[1] "Asegúrese de que o seu texto contén menos de %s caracteres."
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "Aquí non se permiten saltos de liña."
+
+#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Elixa unha opción válida; '%(data)s' non está en %(choices)s."
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "O ficheiro enviado está baleiro."
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Insira un número enteiro entre -32.768 e 32.767."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "Insira un número positivo."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Insira un número enteiro entre 0 e 32.767."
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "si,non,quizais"
+
+#: template/defaultfilters.py:520
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#: template/defaultfilters.py:522
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:524
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:525
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:40
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:41
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:46
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:47
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "medianoite"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "mediodía"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "luns"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "martes"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "mércores"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "xoves"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "venres"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "sábado"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "domingo"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "xaneiro"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "febreiro"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "marzo"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "abril"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "maio"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "xuño"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "xullo"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "agosto"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "setembro"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "outubro"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "novembro"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "decembro"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "xan"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "abr"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "xuñ"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "xul"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "ago"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "set"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "out"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "dec"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "xan."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "feb."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "ago."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "set."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "out."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "nov."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "dec."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "ano"
+msgstr[1] "anos"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mes"
+msgstr[1] "meses"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "semana"
+msgstr[1] "semanas"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "día"
+msgstr[1] "días"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hora"
+msgstr[1] "horas"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuto"
+msgstr[1] "minutos"
+
+#: utils/timesince.py:40
+#, python-format
+msgid "%d milliseconds"
+msgstr "%d milisegundos"
+
+#: utils/timesince.py:41
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:47
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "d-m-Y"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "d-m-Y H:i"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "m Y"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr "d m"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "Creouse correctamente o/a %(verbose_name)s ."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Actualizouse correctamente o/a %(verbose_name)s."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "Eliminouse o/a %(verbose_name)s"
+
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr "<a href=\"/password_reset/\">Esqueceu o contrasinal</a>?"
+
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Use '[algo]$[salt]$[hexdigest]'"
+
+#~ msgid "Comment"
+#~ msgstr "Comentario"
+
+#~ msgid "Comments"
+#~ msgstr "Comentarios"
+
+#~ msgid "String (up to 50)"
+#~ msgstr "Cadea (ata 50 caracteres)"
+
+#~ msgid "label"
+#~ msgstr "etiqueta"
+
+#~ msgid "package"
+#~ msgstr "paquete"
+
+#~ msgid "packages"
+#~ msgstr "paquetes"
diff --git a/webapp/django/conf/locale/gl/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/gl/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..fcb6976
--- /dev/null
+++ b/webapp/django/conf/locale/gl/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/gl/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/gl/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..9d273db
--- /dev/null
+++ b/webapp/django/conf/locale/gl/LC_MESSAGES/djangojs.po
@@ -0,0 +1,109 @@
+# Translation of djangojs.po to Galego.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: 2005-07-02 13:25+0200\n"
+"Last-Translator: Afonso Fernández Nogueira <fonzzo.django@gmail.com>\n"
+"Language-Team: Galego\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s dispoñíbeis"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Escoller todo"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Engadir"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Quitar"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s escollido/a(s)"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Seleccione unha ou varias entrada e faga clic "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Quitar todo"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"xaneiro febreiro marzo abril maio xuño xullo agosto setembro outubro novembro "
+"decembro"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "domingo luns martes mércores xoves venres sábado"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D L M M X V S"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Agora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Reloxo"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Escolla unha hora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Medianoite"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6 da mañá"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "Mediodía"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Hoxe"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Calendario"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Onte"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Mañá"
diff --git a/webapp/django/conf/locale/he/LC_MESSAGES/django.mo b/webapp/django/conf/locale/he/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..27fa6d5
--- /dev/null
+++ b/webapp/django/conf/locale/he/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/he/LC_MESSAGES/django.po b/webapp/django/conf/locale/he/LC_MESSAGES/django.po
new file mode 100644
index 0000000..6fbac31
--- /dev/null
+++ b/webapp/django/conf/locale/he/LC_MESSAGES/django.po
@@ -0,0 +1,4489 @@
+# translation of Django.
+# Copyright (C) 2008 The Django Project
+# This file is distributed under the same license as the Django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-23 02:48+0300\n"
+"PO-Revision-Date: 2008-08-23 02:44+0200\n"
+"Last-Translator: Meir Kriheli <meir@mksoft.co.il>\n"
+"Language-Team: Django-i18n <django-i18n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Bookmarks: -1,988,-1,-1,-1,-1,-1,-1,-1,-1\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "ערבית"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "בנגאלית"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "בולגרית"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "קאטלונית"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "צ'כית"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "וולשית"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "דנית"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "גרמנית"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "יוונית"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "אנגלית"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "ספרדית"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "אסטונית"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "ספרדית ארגנטינאית"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "בסקית"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "פרסית"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "פינית"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "צרפתית"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "אירית"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "גאליצית"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "הונגרית"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "עברית"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "קרואטית"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "איסלנדית"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "איטלקית"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "יפנית"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "גיאורגית"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "קוריאנית"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "חמר"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "קנדית"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "לטבית"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "ליטאית"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "מקדונית"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "הולנדית"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "נורווגית"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "פולנית"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "פורטוגזית"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "פורטוגזית ברזילאית"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "רומנית"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "רוסית"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "סלובקית"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "סלובנית"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "סרבית"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "שוודית"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "טמילית"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "טלגו"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "טורקית"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "אוקראינית"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "סינית פשוטה"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "סינית מסורתית"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>ע\"י %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "הכל"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "כל תאריך"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "היום"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "בשבוע האחרון"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "החודש"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "השנה"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "כן"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "לא"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "לא ידוע"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "זמן פעולה"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "מזהה אובייקט"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "ייצוג אובייקט"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "דגל פעולה"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "הערה לשינוי"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "רישום יומן"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "רישומי יומן"
+
+#: contrib/admin/options.py:56 contrib/admin/options.py:115
+msgid "None"
+msgstr "ללא"
+
+#: contrib/admin/options.py:329
+#, python-format
+msgid "Changed %s."
+msgstr "%s שונה."
+
+#: contrib/admin/options.py:329 contrib/admin/options.py:339
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "ו"
+
+#: contrib/admin/options.py:334
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "התווסף %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:338
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "שונה %(list)s עבור %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:343
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "נמחק %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:347
+msgid "No fields changed."
+msgstr "אף שדה לא השתנה."
+
+#: contrib/admin/options.py:408 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "הוספת %(name)s \"%(obj)s\" בוצעה בהצלחה."
+
+#: contrib/admin/options.py:412 contrib/admin/options.py:445
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "ניתן לערוך שוב מתחת"
+
+#: contrib/admin/options.py:422 contrib/admin/options.py:455
+#, python-format
+msgid "You may add another %s below."
+msgstr "ניתן להוסיף %s נוסף מתחת."
+
+#: contrib/admin/options.py:443
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "שינוי %(name)s \"%(obj)s\" בוצע בהצלחה."
+
+#: contrib/admin/options.py:451
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "הוספת %(name)s \"%(obj)s\" בוצעה בהצלחה. ניתן לערוך אותו שוב מתחת."
+
+#: contrib/admin/options.py:517
+#, python-format
+msgid "Add %s"
+msgstr "הוספת %s"
+
+#: contrib/admin/options.py:594
+#, python-format
+msgid "Change %s"
+msgstr "שינוי %s"
+
+#: contrib/admin/options.py:625
+msgid "Database error"
+msgstr "שגיאת בסיס נתונים"
+
+#: contrib/admin/options.py:674
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "מחיקת %(name)s \"%(obj)s\" בוצעה בהצלחה."
+
+#: contrib/admin/options.py:681
+msgid "Are you sure?"
+msgstr "האם את/ה בטוח/ה ?"
+
+#: contrib/admin/options.py:708
+#, python-format
+msgid "Change history: %s"
+msgstr "היסטוריית שינוי: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"נא להזין שם משתמש וסיסמה נכונים. בשני השדות גודל האותיות האנגליות משנה."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"נא להתחבר שוב, מאחר ופג תוקף ההתחברות הנוכחית. אל דאגה: המידע ששלחת נשמר."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"נראה שהדפדפן שלך אינו מוגדר לקבל עוגיות. נא לאפשר עוגיות, לטעון מחדש את הדף "
+"ולנסות שוב."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "שם משתמש אינו יכול להכיל את התו '@'."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "כתובת הדוא\"ל שלך אינה שם המשתמש שלך. נסה/י '%s' במקום."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "ניהול אתר"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "כניסה"
+
+#: contrib/admin/util.py:138
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "אחד או יותר %(fieldname)s ב%(name)s: %(obj)s"
+
+#: contrib/admin/util.py:143
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "אחד או יותר %(fieldname)s ב%(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "תאריך:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "שעה:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "הנוכחי:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "שינוי:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "דף לא קיים"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "אנו מצטערים, לא ניתן למצוא את הדף המבוקש."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "דף הבית"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "שגיאת שרת"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "שגיאת שרת (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "שגיאת שרת <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"התרחשה שגיאה. היא דווחה למנהלי האתר בדוא\"ל ותתוקן בקרוב. תודה על סבלנותך."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "שלום,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "תיעוד"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "שינוי סיסמה"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "יציאה"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "ניהול אתר Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "ניהול Django"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "הוספה"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "היסטוריה"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "צפיה באתר"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "נא לתקן את השגיאה המופיעה מתחת."
+msgstr[1] "נא לתקן את השגיאות המופיעות מתחת."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "הוספת %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "סינון"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "מחיקה"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"מחיקת %(object_name)s '%(escaped_object)s' מצריכה מחיקת אובייקטים מקושרים, "
+"אך לחשבון שלך אין הרשאות למחיקת סוגי האובייקטים הבאים:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"האם ברצונך למחוק את %(object_name)s \"%(escaped_object)s\"? כל הפריטים "
+"הקשורים הבאים יימחקו:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "כן, אני בטוח/ה"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " לפי %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "מודלים זמינים ביישום %(name)s."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "שינוי"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "אין לך הרשאות לעריכה."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "פעולות אחרונות"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "הפעולות שלי"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "לא נמצאו"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"משהו שגוי בהתקנת בסיס הנתונים שלך. נא לוודא שנוצרו טבלאות בסיס הנתונים "
+"המתאימות, ובסיס הנתונים ניתן לקריאה על ידי המשתמש המתאים."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "שם משתמש:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "סיסמה:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "תאריך/שעה"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "משתמש"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "פעולה"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "l d.m.y H:i:s"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"לאובייקט זה אין היסטוריית שינוי. כנראה לא השתמשו בממשק הניהול הזה להוספתו."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "הצג הכל"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "בצע"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "תוצאה אחת"
+msgstr[1] "%(counter)s תוצאות"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s סה\"כ"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "שמירה כחדש"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "שמירה והוספת אחר"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "שמירה והמשך עריכה"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "שמירה"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"ראשית יש להזין שם משתמש וסיסמה. לאחר מכן יהיה ביכולתך לערוך אפשרויות נוספות "
+"עבור המשתמש."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "שם משתמש"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "סיסמה"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "סיסמה (שוב)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "יש להזין את אותה סיסמה שוב,לאימות."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "יש להזין סיסמה חדשה עבור המשתמש <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "תודה על בילוי זמן איכות עם האתר."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "התחבר/י שוב"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "שינוי סיסמה"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "הסיסמה שונתה בהצלחה"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "סיסמתך שונתה."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"נא להזין את סיסמתך הישנה, למען האבטחה, ולאחר מכן את סיסמתך החדשה פעמיים כדי "
+"שנוכל לוודא שהקלדת אותה כראוי."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "סיסמה ישנה:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "סיסמה חדשה:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "אימות סיסמה:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "שנה את סיסמתי"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "איפוס סיסמה"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "איפוס הסיסמה הושלם"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "ססמתך נשמרה. כעת ניתן להתחבר."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "אימות איפוס סיסמה"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "הזנת סיסמה חדשה"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr "נא להזין את סיסמתך החדשה פעמיים כדי שנוכל לוודא שהקלדת אותה כראוי."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "איפוס הסיסמה נכשל"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"הקישור לאיפוס הסיסמה אינו חוקי. ייתכן והשתמשו בו כבר. נא לבקש איפוס סיסמה "
+"חדש."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "הסיסמה אופסה בהצלחה"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"שלחנו הוראות לקביעת הסיסמה אל כתובת הדוא\"ל שהזנת. ההודעה אמורה להתקבל בקרוב."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "הודעה זו התקבלה כי ביקשת איפוס סיסמה"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "עבור חשבון המשתמש שלך ב %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "נא להגיע לעמוד הבא ולבחור סיסמה חדשה:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "שם המשתמש שלך, במקרה ששכחת:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "תודה על השימוש באתר שלנו!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "צוות %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"שכחת את סיסמתך ? נא להזין את כתובת הדוא\"ל מתחת, ואנו נשלח הוראות לקביעת "
+"סיסמה חדשה."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "כתובת דוא\"ל:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "אפס את סיסמתי"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "כל התאריכים"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "בחירת %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "בחירת %s לשינוי"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "אתר"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "תבנית"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "תג:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "סינון:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "ה-view:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "יישום %r לא נמצא"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "מודל %(model_name)r לא נמצא ביישום %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "אוביקטי `%(app_label)s.%(data_type)s` קשורים"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "מודל:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "אובייקטי `%(app_label)s.%(object_name)s` קשורים"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "כל %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "מספר %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Fields on %s objects"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "מספר שלם"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "בוליאני (אמת או שקר)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "מחרוזת (עד %(max_length)s תווים)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "מספרים שלמים מופרדים בפסיקים"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "תאריך (ללא שעה)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "תאריך (כולל שעה)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "מספר עשרוני"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "כתובת דוא\"ל"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "נתיב קובץ"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "מספר עשרוני"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "כתובת IP"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "בוליאני (אמת, שקר או כלום)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "יחס למודל אב"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "מספר טלפון"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "טקסט"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "זמן"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "מדינה בארה\"ב (שתי אותיות גדולות)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "טקסט XML"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "לא נראה ש-%s הוא אובייקט urlpattern"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "ייסומניות"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "ייסומוניות תיעוד"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">כדי להתקין ייסומניות, יש לגרור את הקישור לסרגל הסימניות\n"
+"שלך, או קליק ימני והוספה לסימניות. כעת ניתן\n"
+"לבחור את הייסומניה מכל עמוד באתר.  יש לשים לב כי חלק מהייסומניות\n"
+"ניתנות לצפיה רק ממחשב שמסווג\n"
+"כ\"פנימי\" (יש לדבר עם מנהל המערכת שלך אם אינך בטוח/ה\n"
+"שהמחשב מסווג ככזה).</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "תיעוד לדף זה"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "מקפיץ אותך מכל עמוד לתיעוד התצוגה שייצרה אותו."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "הצג מזהה אובייקט"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "מציג את סוג התוכן והמזהה הייחודי לעמודים המייצגים אובייקט בודד."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "עריכת אובייקט זה (בחלון הנוכחי)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "קופץ לעמוד הניהול לעמודים אשר מייצגים אובייקטים בודד."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "עריכת אובייקט זה (בחלון חדש)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "כנ\"ל, אך דף הניהול ייפתח בחלון חדש."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "מידע אישי"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "הרשאות"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "תאריכים חשובים"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "קבוצות"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "הוספת משתמש"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "הסיסמה שונתה בהצלחה."
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "שינוי סיסמה: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"דורש 30 תווים או פחות. תווים אלפאנומריים בלבד (אותיות, ספרות וקווים תחתונים)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "ערך זה חייב להכיל אותיות, ספרות וקווים תחתונים בלבד."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "אימות סיסמה"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "משתמש עם שם משתמש זה קיים כבר"
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "שני שדות הסיסמה אינם זהים."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "חשבון זה אינו פעיל."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "נראה שעוגיות לא מאופשרות בדפדפן שלך. הן נדרשות כדי להתחבר."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "כתובת דוא\"ל"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr "כתובת דואר אלקטרוני זו אינה משוייכת למשתמש. בטוח שנרשמת ?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "איפוס סיסמה על %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "סיסמה חדשה"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "אימות סיסמה חדשה"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "סיסמה ישנה"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "סיסמתך הישנה הוזנה בצורה שגויה. נא להזינה שוב."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "שם"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "שם קוד"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "הרשאה"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "הרשאות"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "קבוצה"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "קבוצות"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "שם משתמש"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "שם פרטי"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "שם משפחה"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "כתובת דוא\"ל"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "סיסמה"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"יש להזין '[algo]$[salt]$[hexdigest]' או להשתמש ב<a href=\"password/\">טופס "
+"שינוי הסיסמה</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "סטטוס איש צוות"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "מציין האם המשתמש יכול להתחבר לאתר הניהול."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "פעיל"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"מציין האם יש להתייחס למשתמש כפעיל. יש לבטל בחירה זו במקום למחוק חשבונות "
+"משתמשים."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "סטטוס משתמש על"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "מציין שלמשתמש זה יש את כל ההרשאות ללא הצורך המפורש בהענקתן."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "כניסה אחרונה"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "תאריך הצטרפות"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"בנוסף לכל ההרשאות שהוקצו ידנית, יוענקו למשתמש גם כל ההרשאות של כל קבוצה "
+"המשוייכת אליו."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "הרשאות משתמש"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "משתמש"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "משתמשים"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "הודעה"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "יצאת מהמערכת"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "מזהה אובייקט"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "כותרת"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "תגובה"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "דירוג #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "דירוג #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "דירוג #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "דירוג #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "דירוג #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "דירוג #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "דירוג #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "דירוג #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "האם דירוג חוקי"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "תאריך/שעת הגשה"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "ציבורי"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "האם הוסר"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"יש לסמן תיבה זו עבור תגובה לא נאותה. הודעת \"תגובה זו נמחקה\" תוצג במקום."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "תגובות"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "אובייקט תוכן"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"הוגש ע\"י %(user)s ב %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "שם"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "כתובת IP"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "אושר ע\"י הצוות"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "הערה אנונימית"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "הערות אנונימיות"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "ציון"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "תאריך ציון"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "ניקוד קארמה"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "ניקודי קארמה"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d·דירוג ע\"י·%(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"התגובה סומנה ע\"י %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "תאריך סימון"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "סימון ע\"י משתמש"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "סימונים ע\"י משתמש"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "סימון ע\"י %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "תאריך מחיקה"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "מחיקת מודרטור"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "מחיקות מודרטור"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "מחיקת מודרציה ע\"י %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "שכחת את סיסמתך?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "דירוג"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "נדרש"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "אופציונלי"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "שליחת תמונה"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "תגובה:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "תצוגה מקדימה של התגובה"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "שמך:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "הדירוג נדרש מאחר והזנת לפחות דרוג אחד אחר."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s תגובה:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s תגובות:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"ההודעה נשלחה ע\"י משתמש מפוקפק:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "רק פעולות POST מותרות"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "אחד או יותר מהשדות הנדרשים אינו נשלח."
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "מישהו התעסק עם טופס התגובה (הפרת אבטחה)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr "טופס התגובה הכיל פרמטר target לא חוקי -- מזהה האובייקט אינו חוקי"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "טופס התגובה לא הכיל 'preview' או 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "משתמשים אנונימיים אינם יכולים להצביע"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "מזהה תגובה שגוי"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "לא ניתן להצביע לעצמך"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "שם ה-class של מודל פייתון"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "סוג תוכן"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "סוגי תוכן"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"לדוגמא: '/about/contact/'. יש לוודא הימצאות הקווים הנטויים בהתחלה ובסוף."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "ערך זה חייב להכיל אותיות, ספרות, מקפים, קווים תחתונים ונטויים בלבד."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "אפשרויות מתקדמות"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "כותרת"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "תוכן"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "אפשר תגובות"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "שם תבנית"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"דוגמא: 'flatpages/contact_page.html'. אם זה לא צויין, המערכת תשתמש "
+"ב-'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "הרשמה נדרשת"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "אם מסומן, רק משתמשים מחוברים יוכלו לצפות בדף."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "דף פשוט"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "דפים פשוטים"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "לא סופק ערך גיאומטרי."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "ערך גאומטרי שגוי"
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "סוג גיאומטרי שגוי."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "רביעי"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "ראשון"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "שני"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "שלישי"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f מיליון"
+msgstr[1] "%(value).1f מיליונים"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f מיליארד"
+msgstr[1] "%(value).1f מיליארדים"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f טריליון"
+msgstr[1] "%(value).1f טריליונים"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "אחד"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "שניים"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "שלושה"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "ארבעה"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "חמישה"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "שישה"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "שבעה"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "שמונה"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "תשעה"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "היום"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "מחר"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "אתמול"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "יש להזין קוד דואר בתחביר NNNN או ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "יש להזין רק ספרות בשדה זה."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "שדה זה דורש 7 או 8 ספרות."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "יש להזין מספר CUIT חוקי בתחביר XX-XXXXXXXX-X או XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "CUIT שגוי"
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "\tבורגנלנד"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "קרינתיה"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "אוסטריה התחתונה"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "אוסטריה עילית"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "זלצבורג"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "שטיריה"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "טירול"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "פורארלברג"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "וינה"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "יש להזין מיקוד בתחביר XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr "יש להזין מספר ביטוח לאומי אוסטרלי חוקי בתחביר XXXX XXXXXX."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "יש להזין קוד דואר בן 4 ספרות."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "יש להזין מיקוד בתחביר XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "מספרי טלפון חייבים להיות בתחביר XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "נא לבחור מדינה ברזילאית חוקית. מדינה זו אינה אחת מהמדינות האפשריות."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "מספר CPF לא חוקי"
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "שדה זה דורש 11 או 14 ספרות לכל היותר."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "מספר CNPJ לא חוקי"
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "שדה זה דורש לפחות 14 ספרות."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "יש להזין מיקוד בתחביר XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "יש להזין מספר ביטוח לאומי קנדי חוקי בתחביר XXX-XXX-XXXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "ארגאו"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "אפנצל אינר-רודן"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "אפנצל אוסר-רודן"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "באזל-שטאדט"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "באזל-לנדשאפט"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "ברן"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "פריבור"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "ג'נבה"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "גלרוס"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "גראובינדן"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "ז'ורה"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "לוצרן"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "נשאטל"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "נידוולדן"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "אובוולדן"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "שפהאוזן"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "שוויץ"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "זולותורן"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "סנט גלן"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "טיצ'ינו"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "אורי"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "ואלה"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "וו"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "צוג"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "ציריך"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr "יש להזין מספר זיהוי או דרכון שוויצרי בתחביר X1234567<0 או 1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "יש להזין RUT צ'יליאני חוקי."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "יש להזין RUT צ'יליאני חוקי. התחביר הוא XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "שדה RUT צ'יליאני אינו חוקי."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "באדן-וירטמברג"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "באווריה"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "ברלין"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "ברנדנבורג"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "ברמן"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "המבורג"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "הסה"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "מקלנבורג-מערב פומרניה"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "סקסוניה התחתונה"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "נורדריין-וסטפאליה"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "ריינלנד-פאלץ"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "חבל הסאר"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "סקסוניה"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "סקסוניה-אנהלט"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "שלזוויג-הולשטיין"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "תורינגיה"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "יש להזין מיקוד בתחביר XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr "יש להזין מספר זיהוי גרמני חוקי בתחביר XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "אראבה"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "אלבסטה"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "אלאקאנט"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "אלמריה"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "אווילה"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "באדאג'וז"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "האיים הבלאריים"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "ברצלונה"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "בורגוס"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "קסרס"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "קדיס"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "קסטלו"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "העיר הקולוניאלית"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "קורדובה"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "א קורוניה"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "קואנקה"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "ז'ירונה"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "גרנדה"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "גוודלחרה"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "גוויפוזקואה"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "אואלבה"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "אואסקה"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "חאאן"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "לאון"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "ליידה"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "לה ריוחה"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "לוגו"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "מדריד"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "מאלאגה"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "מורסיה"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "נווארה"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "אוורנס"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "אסטוריאס"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "פלנסיה"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "לאס פאלמס"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "פונטוורדה"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "סלמנקה"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "סנטה קרוז דה טנריף"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "קנטבריה"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "סגוביה"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "סביליה"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "סוריה"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "טרגונה"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "טרואל"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "טולדו"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "ולנסיה"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "ויאדוליד"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "ביסקאיה"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "סמורה"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "סראגוסה"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "סאוטה"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "מלייה"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "אנדלוסיה"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "אראגון"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "נסיכות אסטוריאס"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "האיים הבלאריים"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "חבל הבסקים"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "האיים הקנריים"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "קסטיליה-לה מנצ'ה"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "קסטיליה ולאון"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "קאטלוניה"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "אקסטרמדורה"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "גאליציה"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "אזור מורסיה"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "הקהילה האוטונומית של נווארה"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "קהילת ולנסיה"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "נא להזיו מיקוד חוקי בתחום ובתחביר 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"נא להזין מספר טלפון חוקי באחד מהתחבירים 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "נא להזין NIF, NIE, או CIF חוקי."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "נא להזין NIF או NIE חוקי."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "סיכום ביקורת שגוי עבור NIF."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "סיכום ביקורת שגוי עבור NIE."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "סיכום ביקורת שגוי עבור CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "נא להזין חשבון בנק חוקי בתחביר XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "סיכום ביקורת שגוי עבור מספר חשבון בנק."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "יש להזין מספר ביטוח לאומי פיני חוקי."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "יש להזין מיקוד בתחביר XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "יש להזין מספר זיהוי איסלנדי חוקי. התחביר הוא XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "מספר הזיהוי האיסלנדי אינו חוקי"
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "יש להזין מיקוד חוקי."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "יש להזין מספר ביטוח לאומי חוקי."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "יש להזין מספר מעמ חוקי"
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "יש להזין קוד דואר בתחביר XXXXXXX או XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "הוקאידו"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "אאומורי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "מיאגי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "אקיטה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "יאמאגטה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "פוקושימה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "איברקי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "טושיגי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "גונמה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "סאיטאמה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "צ'יבה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "טוקיו"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "קאנגאווה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "יאמאנשי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "נאגאנו"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "נייגטה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "טויאמה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "אישיקאוואה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "פוקוי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "גיפו"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "שיזואוקה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "אייצ'י"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "מיי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "שיגה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "קיוטו"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "אוסקה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "הייוגו"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "נארה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "ווקאייאמה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "טוטורי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "אוקייאמה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "הירושימה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "יאמאגוצ'י"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "טוקושימה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "קאגאווה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "קוצ'י"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "פוקוקה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "סגה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "נגסקי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "קומאמוטו"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "אויטה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "מיאזאקי"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "קגושימה"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "אוקינאווה"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "אגואסקליינטס"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "באחה קליפורניה"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "באחה קליפורניה הדרומית"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "קמפצ'ה"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "צ'יוואוה"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "צ'יאפס"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "קואהווילה"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "קולימה"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "מחוז פדרלי"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "צ'יוואוה"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "גררו"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "גואנחואטו"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "אידלגו"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "חליסקו"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "אסטאדו דה מקסיקו"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "מיצ'ואקן"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "מורלוס"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "נייארית"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "נואבו ליאון"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "אואסקה"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "פואבלה"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "קוורטארו"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "קינטאנה רו"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "סינאלוה"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "סאן לואי פוטוסי"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "סונורה"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "טבסקו"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "טמפוליפס"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "טלקסקאלה"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "ורקרוז"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "יוקטן"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "זאקאטקס"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "יש להזין מיקוד חוקי."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "יש להזין מספר טלפון חוקי"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "יש להזין מספר SoFi חוקי"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drenthe"
+msgstr "דרנתה"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "פלבולנד"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "פריזלנד"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "חלדרלנד"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "חרונינגן"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "לימבורג"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "צפון בראבנט"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "צפון הולנד"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "אובראיסל"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "אוטרכט"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "זילנד"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "דרום הולנד"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "יש להזין מספר ביטוח לאומי נורבגי חוקי."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "שדה זה דורש 8 ספרות."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "שדה זה דורש 11 ספרות."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr "מספר זיהוי לאומי מורכב מ-11 ספרות"
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr "סכום ביקורת שגוי עבודי מספר הזיהוי הלאומי"
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "נא להזין שדה מספר מס (NIP) בתחביר XXX-XXX-XX-XX או XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "סיכום ביקורת שגוי עבור מספר מס (NIP)."
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "מספר רישום עסק לאומי (REGON) מכיל 7 או 9 ספרות."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "סיכום שגוי National Business Register Number (REGON)."
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "נא להזין מיקוד בתחביר XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "סילסיה התחתונה"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "קויאבויה - פומרניה"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "לובלין"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "לובוש"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "לודז'"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "פולין זוטא"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "מזוביה"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "אופולה"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "תת קרפטיה"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "פודלסיה"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "פומרניה"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "סילסיה"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "סבייטוקזי'סקי"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "וורמיה- מזוריה"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "פולין רבתי"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "מערב פומרניה"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "יש להזין CIF חוקי."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "יש להזין CNP חוקי."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr "יש להזין מספר IBAN חוקי בתחביר ROXX-XXXX-XXXX-XXXX-XXXX-XXXX"
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "תחביר מספרי טלפון חייב להיות XXXX-XXXXXX."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "נא להזין מיקוד חוקי בתחביר XXXXXX"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "יש להזין קוד דואר בתחביר XXXXX או XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr " בנסקה ביסטריצה"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "בנסקה שטיאבניצה"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "ברדיוב"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "בנובץ ע\"מ בברבו"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "ברזנו"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "ברטיסלאבה 1"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "ברטיסלאבה 2"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "ברטיסלאבה 3"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "ברטיסלאבה 4"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "ברטיסלאבה 5"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "ביטצ'ה"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "צ'דקה"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "דטבה"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "דולני קובין"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "דונאייסקה סטרדה"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "גלנטה"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "גלניקה"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "הלוהובץ"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "הומנה"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "אילבה"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "קזמרוק"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "קומרנו"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "קושיצה 1"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "קושיצה 2"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "קושיצה 3"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "קושיצה 4"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "קושיצ'ה - אוקולי"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "קרופינה"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "קיוסקה נובה מסטו"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "לביצה"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "לבוצ'ה"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "ליפטובסקי מיקולס"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "לוצ'נץ'"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "מאלאקי"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "מרטין"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "מדזילבורצה"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "מיחלובצה"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "מיאווה"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "נמסטובו"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "ניטרה"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "נובה מסטו ע\"נ וה"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "נווי-זאמקי"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "פרטיזנסקה"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "פזינוק"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "פיאסטאני"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "פולטר"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "פופרד"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "פובסקה ביסטריצ'ה"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "פרשוב"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "פרבידזה"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "פוצ'וב"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "ריץ"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "רימובסקה סובוטה"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "רוזנבה"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "רוזומברוק"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "סבינוב"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "סנץ"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "סניצ'ה"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "סקליצ'ה"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "סנינה"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "סוברנס"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "ספישסקה נובה וס"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "סטרה לובובנה"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "סרטופקוב"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "סבידניק"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "סאלה"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "טופולצ'ני"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "טרביסוב"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "טרנצ'ין"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "טרנאוה"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "טורצינסק טפליץ"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "טברודוסין"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "ולקי קריץ"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "טרנוב ע\"נ טופולו"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "זלטה מורבצה"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "זבולן"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "זרנוביקה"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "ז'יר ע\"נ הרון"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "ז'ילינה"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "מחוז בטנסקה ביסטריקה"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "מחוז ברטיסלבה"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "מחוז קושיצ'ה"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "מחוז ניטרה"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "מחוז פראסוב"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "מחוז טראנצין"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "מחוז טרנאוה"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "מחוז ז'ילינה"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "יש להזין מיקוד חוקי."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr " בדפורשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "באקינגהמשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr " צ'שייר"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "קורנוול ואיי סילי"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr " קאמבריה"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "דרבישייר"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr " דבון"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "דורסט"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "דרהאם"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "מזרח אסקס"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "אסקס"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "גלוסטרשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "לונדון רבתי"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "מנצ'סטר רבתי"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "המפשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "הארטפורדשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "קנט"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "לנקשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "ליסטרשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr " לינקולנשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "מרסיסייד"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "נורפולק"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "צפון יורקשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "נורת'המפטונשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "נורת'אמברלנד"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "נוטינגהאמשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "אוקספורדשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "שרופשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "סומרסט"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "דרום יורקשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "סטאפורדשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr " סאפוק"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "סוריי"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "טיין ו-וויר"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr " וורוויקשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "מערב המידלנדס"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "מערב סאסקס"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "מערב יורקשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr " ווילטשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr " ווסטרשייר"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "מחוז אנטרים"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "ארמה"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "מחוז דאון"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "מחוז פרמאנה"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "מחוז לונדונברי"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "מחוז טיירון"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "קלוויד"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "דייפד"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "גוונט"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "גווינד"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "מרכז גלמורגן"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "ַפואיס"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "דרום גלמורגן"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "מערב גלמורגן"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "גבולות"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "מרכז סקוטלנד"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "דמפרייס וגאלוויי"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "פייף"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr " גרמפיאן"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "רמה"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "לודיאן"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "איי אורקיי"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "איי שטלנד"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "סטראת'קלייד"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "טייסייד"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "האיים המערביים"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "אנגליה"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "צפון אירלנד"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "סקוטלנד"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "וויילס"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "יש להזין מיקוד חוקי בתחביר XXXXX או XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "יש להזין מספר ביטוח לאומי אמריקאי בתחביר XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "נא להזין מספר זיהוי דרום אפריקאי חוקי"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "נא להזין מיקוד דרום אפריקאי חוקי"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "הכף המזרחי"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "המדינה החופשית"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "גאוטנג"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "קווזולו-נטל"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "לימפופו"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "מפומלנגה"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "כף צפוני"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "דרום מערב"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "כף מערבי"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "הפניה מ"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr "זה אמור להיות נתיב מלא, ללא שם המתחם. לדוגמא: '/‎/events/search'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "הפניה אל"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "יכול להיות נתיב מלא (כנ\"ל) או URL מלא המתחיל ב'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "הפניה"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "הפניות"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "מפתח התחברות (session key)"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "מידע התחברות (session data)"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "תאריך פג תוקף"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "התחברות"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "התחברויות"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "שם מתחם"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "שם לתצוגה"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "אתרים"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "ערך זה חייב להכיל אותיות, ספרות, מקפים וקווים תחתונים בלבד."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "אסור להשתמש באותיות גדולות."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "אסור להשתמש באותיות קטנות."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "יש להזין רק ספרות מופרדות בפסיקים."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "יש להזין רק כתובות דוא\"ל מופרדות בפסיקים."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "נא להזין כתובת IP חוקית."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "חובה להזין ערך בשדה זה."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "מותר להזין ספרות בלבד."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "ערך זה אינו יכול להכיל ספרות בלבד."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "נא להזין מספר שלם."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "יש להזין כאן אותיות בלבד."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "תאריך שגוי: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "יש להזין תאריך במבנה YYYY-MM-DD."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "יש להזין שעה במבנה HH:MM."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "יש להזין תאריך ושעה במבנה YYYY-MM-DD HH:MM."
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "יש להזין כתובת דוא\"ל חוקית."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "לא נשלח שום קובץ. נא לבדוק את סוג הקידוד של הטופס."
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "נא להעלות תמונה חוקית. הקובץ שהעלת אינו תמונה או מכיל תמונה מקולקלת."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "ה-URL %s אנו מצביע לתמונה חוקית."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "מספרי טלפון חייבים להיות במבנה XXX-XXX-XXXX.‏ \"%s\" אינו חוקי."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "ה-URL‏ %s אינו מצביע לסרטון QuickTime חוקי."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "יש להזין URL חוקי."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"יש להזין HTML חוקי. שגיאות ספציפיות:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "מבנה XML שגוי: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL שגוי: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "ה-URL‏ %s הוא קישור שבור."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "יש להזין קיצור חוקי למדינה בארה\"ב."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "שמור על לשונך! המילה %s אסורה לשימוש כאן."
+msgstr[1] "שמור על לשונך! המילים %s אסורות לשימוש כאן."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "תוכן השדה חייב להיות זהה לשדה '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "יש להזין תוכן בלפחות אחד מהשדות."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "יש להזין תוכן בשני השדות או להשאיר את שניהם ריקים."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "יש להזין תוכן בשדה זה אם שדה %(field)s מכיל %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "יש להזין תוכן בשדה זה אם תוכן שדה %(field)s אינו %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "לא ניתן להזין ערכים כפולים."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "ערך זה חייב להיות בין %(lower)s ל-%(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "ערך זה חייב להיות לפחות %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "ערך זה אינו יכול להיות יותר מ-%s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "ערך זה חייב להיות חזקה של %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "יש להזין מספר עשרוני חוקי."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "יש להזין מספר עשרוני חוקי עם ספרה %s לכל היותר."
+msgstr[1] "יש להזין מספר עשרוני חוקי עם %s ספרות לכל היותר."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "יש להזין מספר עשרוני חוקי עם ספרה %s בחלק השלם לכל היותר."
+msgstr[1] "יש להזין מספר עשרוני חוקי עם %s ספרות בחלק השלם לכל היותר."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "יש להזין מספר עשרוני חוקי עם ספרה %s בחלק העשרוני לכל היותר."
+msgstr[1] "יש להזין מספר עשרוני חוקי עם %s ספרות בחלק העשרוני לכל היותר."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "נא להזין מספר נקודה צפה חוקי."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "יש להעלות קובץ בגודל %s בתים לפחות."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "יש לוודא שהקובץ שהעלת הוא בגודל %s בתים לכל היותר."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "מבנה תוכן שדה זה שגוי."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "שדה זה אינו חוקי."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "לא ניתן לאחזר כלום מ %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "ה-URL·%(url)s·החזיר כותרת·Content-Type·לא חוקית·'%(contenttype)s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr "נא לסגור את תג·%(tag)s·בשורה·%(line)s.·(השורה מתחילה ב·\"%(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"חלק מהטקסט בשורה·%(line)s·אסור בהקשר זה.·(השורה·מתחילה ב·\"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\"·בשורה·%(line)s·אינה תכונה חוקית.·(השורה מתחילה ב·\"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\"·בשורה·%(line)s·אינו תג חוקי.·(השורה מתחילה ב·\"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"לתג בשורה %(line)s חסרה תכונה אחת או יותר נדרשות. (השורה מתחילה ב-\"%(start)s"
+"\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"לתכונה·\"%(attr)s\"·בשורה·%(line)s·יש ערך לא חוקי.·(השורה·מתחילה ב·\"%(start)"
+"s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s עם %(type)s קיים כבר עבור %(field)s נתון."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s·עם·%(fieldname)s·זה קיימת כבר."
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "יש להזין תוכן בשדה זה."
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "ערך זה חייב להיות מספר שלם."
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "ערך זה חייב להיות אמת או שקר."
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "שדה זה אינו יכול להכיל null."
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "נא להזין תאריך/שעה חוקיים בתחביר YYYY-MM-DD HH:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "ערך זה חייב להיות מספר עשרוני."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "ערך זה חייב להיות כלום, אמת או שקר."
+
+#: db/models/fields/__init__.py:937 db/models/fields/__init__.py:950
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "נא להזין זמן חוקי בתחביר HH:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "יש להזין שם קובץ חוקי."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "יש להזין %s חוקי."
+
+#: db/models/fields/related.py:786
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"יש להחזיק את \"Control\", או \"Command\" על מק, לחוץ כדי לבחור יותר מאחד."
+
+#: db/models/fields/related.py:866
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "נא להזין מזהה %(self)s חוקי. הערך %(value)r אינו חוקי."
+msgstr[1] "נא להזין מזהי %(self)s חוקיים. הערכים %(value)r אינם חוקיים."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "יש להזין ערך חוקי."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "נא לוודא שערך זה מכיל  %(max)d תווים לכל היותר (מכיל %(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "נא לוודא שערך זה מכיל לפחות %(min)d תווים (מכיל %(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "יש לוודא שערך זה פחות מ או שווה ל %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "יש לוודא שהערך גדול מ או שווה ל %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "נא להזין מספר."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "נא לוודא שאין יותר מ-%s ספרות סה\"כ"
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "נא לוודא שאין יותר מ-%s ספרות אחרי הנקודה"
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "נא לוודא שאין יותר מ-%s ספרות לפני הנקודה העשרונית"
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "יש להזין תאריך חוקי."
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "יש להזין שעה חוקית."
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "יש להזין תאריך ושעה חוקיים."
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "לא נשלח שום קובץ"
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "הקובץ שנשלח ריק."
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "יש להזין URL חוקי."
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "ה-URL הזה נראה כקישור שבור."
+
+#: forms/fields.py:601 forms/fields.py:652
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "יש לבחור אפשרות חוקית. %(value)s אינו בין האפשרויות הזמינות."
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "יש להזין רשימת ערכים"
+
+#: forms/fields.py:832
+msgid "Enter a valid IPv4 address."
+msgstr "יש להזין כתובת IPv4 חוקית."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(choices)s."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "יש לבחור אפשרות חוקית. %s אינו בין האפשרויות הזמינות."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "נא לוודא שהטקסט שלך מכיל פחות מ %s תו."
+msgstr[1] "נא לוודא שהטקסט שלך מכיל פחות מ %s תווים."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "מעברי שורה אסורים כאן."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "יש להזין מספר שלם בין ‎-32,768 ל- 32,767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "יש להזין מספר חיובי."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "יש להזין מספר שלם בין 0 ל- 32,767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "כן,לא,אולי"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d בית"
+msgstr[1] "%(size)d בתים"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "אחר הצהריים"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "בבוקר"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "אחר הצהריים"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "בבוקר"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "חצות"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "צהריים"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "שני"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "שלישי"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "רביעי"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "חמישי"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "שישי"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "שבת"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "ראשון"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "שני"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "שלישי"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "רביעי"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "חמישי"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "שישי"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "שבת"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "ראשון"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "ינואר"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "פברואר"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "מרס"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "אפריל"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "מאי"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "יוני"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "יולי"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "אוגוסט"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "ספטמבר"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "אוקטובר"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "נובמבר"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "דצמבר"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "ינו"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "פבר"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "מרס"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "אפר"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "מאי"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "יונ"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "יול"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "אוג"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "ספט"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "אוק"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "נוב"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "דצמ"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "ינו'"
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "פבר'"
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "אוג'"
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "ספט'"
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "אוק'"
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "נוב'"
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "דצמ'"
+
+#: utils/text.py:128
+msgid "or"
+msgstr "או"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "שנה"
+msgstr[1] "שנים"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "חודש"
+msgstr[1] "חודשים"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "שבוע"
+msgstr[1] "שבועות"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "יום"
+msgstr[1] "ימים"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "שעה"
+msgstr[1] "שעות"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "דקה"
+msgstr[1] "דקות"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "דקות"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "d.m.‏Y H:i:s"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i:s"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "d.m.Y"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "ה-%(verbose_name)s  נוצר בהצלחה."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "ה-%(verbose_name)s עודכן בהצלחה."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "ה-%(verbose_name)s נמחק."
+
+#~ msgid "Ordering"
+#~ msgstr "מיון"
+
+#~ msgid "Order:"
+#~ msgstr "מיון:"
+
+#~ msgid "Your new password is: %(new_password)s"
+#~ msgstr "סיסמתך החדשה: %(new_password)s"
+
+#~ msgid "Feel free to change this password by going to this page:"
+#~ msgstr "ניתן לשנות את הסיסמה בכל עת ע\"י פניה לדף זה:"
+
+#~ msgid "Added %s."
+#~ msgstr "%s התווסף."
+
+#~ msgid "Deleted %s."
+#~ msgstr "%s נמחק."
+
+#~ msgid "The two 'new password' fields didn't match."
+#~ msgstr "שני שדות 'הסיסמה החדשה' אינם זהים."
+
+#~ msgid "Year must be 1900 or later."
+#~ msgstr "שנה צריכה להיות 1900 ומעלה."
+
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "יש להפריד מזהים מרובים בפסיקים."
diff --git a/webapp/django/conf/locale/he/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/he/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..9448068
--- /dev/null
+++ b/webapp/django/conf/locale/he/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/he/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/he/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..cc68885
--- /dev/null
+++ b/webapp/django/conf/locale/he/LC_MESSAGES/djangojs.po
@@ -0,0 +1,120 @@
+# Hebrew translation of djangojs.
+# Copyright (C) 2006 THE djangojs'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the djangojs package.
+# Meir Kriheli <meir@mksoft.co.il>, 2006.
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-05-06 13:08+0300\n"
+"PO-Revision-Date: 2007-05-06 13:08+0300\n"
+"Last-Translator: Meir Kriheli <meir@mksoft.co.il>\n"
+"Language-Team: Hebrew\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s זמינות"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "בחירת הכל"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "הוספה"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "הסרה"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s נבחרות"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "יש לסמן את ההרשאות המבוקשות וללחוץ על "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "איפוס הכל"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"ינואר פברואר מרץ אפריל מאי יוני יולי אוגוסט ספטמבר אוקטובר נובמבר דצמבר"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "ר ש ש ר ח ש ש"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "ראשון שני שלישי רביעי חמישי שישי שבת"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "הצג"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "הסתר"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "כעת"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "שעון"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "בחירת שעה"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "חצות"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 בבוקר"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "צהריים"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "ביטול"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "היום"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "לוח שנה"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "אתמול"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "מחר"
+
diff --git a/webapp/django/conf/locale/hr/LC_MESSAGES/django.mo b/webapp/django/conf/locale/hr/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..0326a71
--- /dev/null
+++ b/webapp/django/conf/locale/hr/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/hr/LC_MESSAGES/django.po b/webapp/django/conf/locale/hr/LC_MESSAGES/django.po
new file mode 100644
index 0000000..cfdcf6f
--- /dev/null
+++ b/webapp/django/conf/locale/hr/LC_MESSAGES/django.po
@@ -0,0 +1,4320 @@
+# translation of django.po to Hrvatski jezik
+# This file is distributed under the same license as the Django package.
+#
+# Aljosa Mohorovic <aljosa.mohorovic@gmail.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-01-06 16:24+0100\n"
+"PO-Revision-Date: 2008-06-17 23:25+0100\n"
+"Last-Translator: Aljosa Mohorovic <aljosa.mohorovic@gmail.com>\n"
+"Language-Team: Hrvatski jezik\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arapski"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengalski"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "Bugarski"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr "Katalanski"
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "Češki"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "Velški"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "Danski"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "Njemački"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "Grčki"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "Engleski"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "Španjolski"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "Argentinski španjolski"
+
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr "Perzijski"
+
+#: conf/global_settings.py:52
+msgid "Finnish"
+msgstr "Finski"
+
+#: conf/global_settings.py:53
+msgid "French"
+msgstr "Francuski"
+
+#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr "Gaeilge"
+
+#: conf/global_settings.py:55
+msgid "Galician"
+msgstr "Galski"
+
+#: conf/global_settings.py:56
+msgid "Hungarian"
+msgstr "Mađarski"
+
+#: conf/global_settings.py:57
+msgid "Hebrew"
+msgstr "Hebrejski"
+
+#: conf/global_settings.py:58
+msgid "Croatian"
+msgstr "Hrvatski"
+
+#: conf/global_settings.py:59
+msgid "Icelandic"
+msgstr "Islandski"
+
+#: conf/global_settings.py:60
+msgid "Italian"
+msgstr "Talijanski"
+
+#: conf/global_settings.py:61
+msgid "Japanese"
+msgstr "Japanski"
+
+#: conf/global_settings.py:62
+msgid "Korean"
+msgstr "Koreanski"
+
+#: conf/global_settings.py:63
+msgid "Khmer"
+msgstr "Kambođanski"
+
+#: conf/global_settings.py:64
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:65
+msgid "Latvian"
+msgstr "Letonski"
+
+#: conf/global_settings.py:66
+msgid "Macedonian"
+msgstr "Makedonski"
+
+#: conf/global_settings.py:67
+msgid "Dutch"
+msgstr "Nizozemski"
+
+#: conf/global_settings.py:68
+msgid "Norwegian"
+msgstr "Norveški"
+
+#: conf/global_settings.py:69
+msgid "Polish"
+msgstr "Poljski"
+
+#: conf/global_settings.py:70
+msgid "Portugese"
+msgstr "Portugalski"
+
+#: conf/global_settings.py:71
+msgid "Brazilian"
+msgstr "Brazilski"
+
+#: conf/global_settings.py:72
+msgid "Romanian"
+msgstr "Rumunjski"
+
+#: conf/global_settings.py:73
+msgid "Russian"
+msgstr "Ruski"
+
+#: conf/global_settings.py:74
+msgid "Slovak"
+msgstr "Slovački"
+
+#: conf/global_settings.py:75
+msgid "Slovenian"
+msgstr "Slovenski"
+
+#: conf/global_settings.py:76
+msgid "Serbian"
+msgstr "Srpski"
+
+#: conf/global_settings.py:77
+msgid "Swedish"
+msgstr "Švedski"
+
+#: conf/global_settings.py:78
+msgid "Tamil"
+msgstr "Tamilski"
+
+#: conf/global_settings.py:79
+msgid "Telugu"
+msgstr "Telugu"
+
+#: conf/global_settings.py:80
+msgid "Turkish"
+msgstr "Turski"
+
+#: conf/global_settings.py:81
+msgid "Ukrainian"
+msgstr "Ukrajinski"
+
+#: conf/global_settings.py:82
+msgid "Simplified Chinese"
+msgstr "Pojednostavljeni kineski"
+
+#: conf/global_settings.py:83
+msgid "Traditional Chinese"
+msgstr "Tradicionalni kineski"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Po %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Svi"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Bilo koji datum"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Danas"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Prošlih 7 dana"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Ovaj mjesec"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Ova godina"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Da"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Ne"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Nepoznat pojam"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "vrijeme akcije"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "id objekta"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "object repr"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "action flag"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "promijeni poruku"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "log entry"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "log entries"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Stranica nije pronađena"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Ispričavamo se, ali tražena stranica nije pronađena."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Doma"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serverska pogreška"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serverska pogreška (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Serverska pogreška <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr "Dogodila se pogreška. Administratori su obaviješteni putem e-maila te bi pogreška uskoro trebala biti ispravljena. Hvala na strpljenju."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Dobrodošli,"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentacija"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Promijeni lozinku"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Odjava"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django administracija stranica"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administracija"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Dodaj"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Povijest"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Pogledaj na stranicama"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Molim ispravite navedenu pogrešku."
+msgstr[1] "Molim ispravite navedene pogreške."
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Redoslijed"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Redoslijed:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Dodaj %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Izbriši"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Brisanje %(object_name)s '%(escaped_object)s' rezultiralo bi brisanjem "
+"povezanih objekta, ali vi nemate privilegije za brisanje navedenih objekta: "
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Jeste li sigurni da želite izbrisati %(object_name)s \"%(escaped_object)s\"? "
+"Svi navedeni objekti biti će izbrisani:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Da, siguran sam"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "Po %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filter"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modeli dostupni u %(name)s aplikaciji."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Promijeni"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Nemate privilegije za promjenu podataka."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Nedavne promjene"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Moje promjene"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nije dostupno"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Nešto je pogrešno sa instalacijom/postavkama baze. Provjerite jesu li "
+"potrebne tablice u bazi kreirane i provjerite je li baza dostupna korisniku."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Korisničko ime:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Lozinka:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:25
+msgid "Log in"
+msgstr "Prijavi se"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Datum/vrijeme"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Korisnik"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Akcija"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "DATE_WITH_TIME_FULL"
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Ovaj objekt nema povijest promjena. Moguće je da nije dodan korištenjem ove "
+"administracije."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Prikaži sve"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Idi"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 rezultat"
+msgstr[1] "%(counter)s rezultata"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s ukupno"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Spremi kao novi unos"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Spremi i dodaj novi unos"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Spremi i nastavi uređivati"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Spremi"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Prvo, unesi korisničko ime i lozinku. Onda možete promijeniti više postavki "
+"korisnika."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Korisničko ime"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Lozinka"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Lozinka (unesi ponovo)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "Unesi istu lozinku, za potvrdu."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Unesi novu lozinku za korisnika <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentacija bookmarklets-a"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Da bi instalirali bookmarklet, povucite link na svoj bookmarks\n"
+"toolbar, ili desnim klikom na link dodajte u svoje bookmarke. Sada možete\n"
+"selektirati bookmarklet sa bilo koje stranice. Zapamtite da neki bookmarkleti\n"
+"zahtjevaju da gledate stranice sa računala označenog\n"
+"kao \"internal\" (razgovarajte sa svojim sistem administratorom ako niste sigurni\n"
+"je li vaše računalo \"internal\").</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Dokumentacija za ovu stranicu"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Preusmjeri te sa bilo koje stranice na dokumentaciju za taj prikaz (view) "
+"koji generira stranicu."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Prikaži ID objekta"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Prikazuje tip sadržaja (content-type) i jedinstveni ID za stranice koje predstavljaju "
+"pojedinačan objekt."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Uredi objekt (u trenutnom prozoru)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Preusmjeri na admin stranicu za stranice koje predstavljaju pojedinačan objekt."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Uredi objekt (u novom prozoru)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Isto kao prethodno, ali otvara admin stranicu u novom prozoru."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Hvala što ste proveli malo kvalitetnog vremena na stranicama danas."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Prijavite se ponovo"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Promjena lozinke"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Promjena lozinke uspješna"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Vaša lozinka je promijenjena."
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Molim unesite staru lozinku, zbog sigurnosti, i onda unesite novu lozinku "
+"dvaput da bi mogli provjeriti jeste li ispravno unesli."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Stara lozinka:"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Nova lozinka:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Potvrdi lozinku:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Promijeni moju lozinku"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Resetiranje lozinke"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Resetiranje lozinke uspješno"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Poslali smo novu lozinku na e-mail adresu koju ste unijeli. Trebali bi je "
+"uskoro primiti."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Dobili ste ovaj e-mail jer ste zatražili resetiranje lozinke"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "za vaš korisnički račun na %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Vaša nova lozinka je: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Slobodno promijenite lozinku odlaskom na ovu stranicu:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Vaše korisničko ime, u slučaju da ste zaboravili:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Hvala šta koristite naše stranice!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s tim"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Zaboravili ste lozinku? Unesite vašu e-mail adresu ispod i onda ćemo "
+"resetirati vašu lozinku i poslati novu na vaš e-mail."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mail adresa:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Resetiraj moju lozinku"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Datum:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Vrijeme:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Trenutno:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Promijeni:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Svi datumi"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" uspješno je dodano."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Možete ponovo urediti unos dolje."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Dodaj korisnika"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Lozinka uspješno promijenjena."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Promijeni lozinku: %s"
+
+#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Molim unesite ispravno korisničko ime i lozinku. Uzmite u obzir da oba polja "
+"razlikuju velika/mala slova."
+
+#: contrib/admin/views/decorators.py:63
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Molim prijavite se ponovo jer je vaš session istekao. Nemojte brinuti, vaš "
+"unos je sačuvan."
+
+#: contrib/admin/views/decorators.py:70
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Izgleda da vaš browser nije podešen da prihvaća kolačiće (cookies). Molim "
+"promijenite postavke, ponovno učitajte stranicu i pokušajte ponovo."
+
+#: contrib/admin/views/decorators.py:84
+msgid "Usernames cannot contain the '@' character."
+msgstr "Korisnička imena ne mogu sadržavati '@' znak."
+
+#: contrib/admin/views/decorators.py:86
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Vaša e-mail adresa nije vaše korisničko ime. Pokušajte sa '%s'"
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "filter:"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "prikaz:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "Aplikacija %r nije pronađena"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Model %(name)r nije pronađen u aplikaciji %(label)r"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "povezan `%(label)s.%(type)s` objekt"
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "povezani `%(label)s.%(name)s` objekti"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "svi %s"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "broj %s"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Polja na %s objektima"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Cijeli broj"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (True ili False)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Slova (do %(max_length)s)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Cijeli brojevi odvojeni zarezom"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Datum (bez vremena/sati)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Datum (sa vremenom/satima)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Decimalni broj"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "E-mail adresa"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Put do datoteke"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Broj s pomičnim zarezom (floating point number)"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:85
+msgid "IP address"
+msgstr "IP adresa"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (True, False ili None)"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Relacija na roditeljski model (parent model)"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Telefonski broj"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Tekst"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Vrijeme"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "Država S.A.D.-a (dva velika slova)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "XML tekst"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "izgleda da %s nije urlpattern objekt"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Administracija stranica"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Možete dodati još jedan %s ispod."
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "Dodaj %s"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "Dodano %s"
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "i"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "Promijenjeno %s."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "Izbrisano %s."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Nije bilo promjena polja."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" uspješno promijenjeno."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" uspješno dodan. Možete ponovo urediti dolje."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "Promijeni %s"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Jedan ili više %(fieldname)s u %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Jedan ili više %(fieldname)s u %(name)s"
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" uspješno izbrisan."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Jeste li sigurni?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Promijeni povijest: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "Odaberi %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "Odaberi %s za promjenu"
+
+#: contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr "Pogreška u bazi"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Dva polja za lozinku nisu jednaka."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Korisnik sa navedenim imenom već postoji."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Izgleda da Vaš browser ne podržava kolačiće (cookies). Kolačići su potrebni "
+"da bi se prijavili."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Ovaj korisnički račun nije aktivan."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Za navedenu e-mail adresu ne postoji korisnički račun. Jeste li sigurni da "
+"ste registrirani?"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Lozinka resetirana na %s"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Dva polja 'nova lozinka' nisu jednaka."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Vaša stara lozinka je pogrešno unesena. Molim unesite ponovo."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "ime"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "kodno ime"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "privilegija"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "privilegije"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "grupa"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr "grupe"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "korisničko ime"
+
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "Obavezno 30 alfanumeričkih znakova ili manje (slova, brojevi i povlaka)."
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "ime"
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "prezime"
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "e-mail adresa"
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "lozinka"
+
+#: contrib/auth/models.py:135
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Koristite '[algo]$[salt]$[hexdigest]' ili <a href=\"password/\">formu za "
+"promjenu lozinke</a>."
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "status osoblja"
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Određuje može li se korisnik prijaviti na ove stranice administracije."
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "aktivan"
+
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Određuje može li se korisnik prijaviti na stranice Django administracije. "
+"Koristite ovu opciju umjesto brisanja korisničkih računa."
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "superuser status"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Određuje da ovaj korisnik ima sve privilegije te uklanja potrebu da se "
+"privilegije dodaju eksplicitno/ručno."
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "posljednja prijava"
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "datum učlanjenja"
+
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Uz ručno dodane privilegije korisnik će također dobiti sve privilegije "
+"odobrene grupama kojima korisnik pripada."
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "privilegije korisnika"
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "korisnik"
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "korisnici"
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Osobni podaci"
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Privilegije"
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Važni datumi"
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Grupe"
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "poruka"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Niste logirani"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:169
+msgid "object ID"
+msgstr "ID objekta"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "naslov"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:170
+msgid "comment"
+msgstr "komentar"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "ocjena #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "ocjena #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "ocjena #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "ocjena #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "ocjena #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "ocjena #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "ocjena #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "ocjena #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "ocjena je ispravana"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:172
+msgid "date/time submitted"
+msgstr "datum/vrijeme unosa"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:173
+msgid "is public"
+msgstr "javno dostupno"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "uklonjeno"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Uključite ako je komentar neprikladan. Umjesto komentara biti će prikazana "
+"poruka \"Komentar je uklonjen.\"."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "komentari"
+
+#: contrib/comments/models.py:134 contrib/comments/models.py:213
+msgid "Content object"
+msgstr "Objekt sadržaja"
+
+#: contrib/comments/models.py:162
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Napisao %(user)s dana %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:171
+msgid "person's name"
+msgstr "ime osobe"
+
+#: contrib/comments/models.py:174
+msgid "ip address"
+msgstr "ip adresa"
+
+#: contrib/comments/models.py:176
+msgid "approved by staff"
+msgstr "odobreno od strane osoblja"
+
+#: contrib/comments/models.py:179
+msgid "free comment"
+msgstr "slobodan komentar"
+
+#: contrib/comments/models.py:180
+msgid "free comments"
+msgstr "slobodni komentari"
+
+#: contrib/comments/models.py:239
+msgid "score"
+msgstr "rezultat"
+
+#: contrib/comments/models.py:240
+msgid "score date"
+msgstr "datum rezultata"
+
+#: contrib/comments/models.py:243
+msgid "karma score"
+msgstr "karma rezultat"
+
+#: contrib/comments/models.py:244
+msgid "karma scores"
+msgstr "karma rezultati"
+
+#: contrib/comments/models.py:248
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d ocjena po %(user)s"
+
+#: contrib/comments/models.py:264
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ovaj komentar je označio %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:271
+msgid "flag date"
+msgstr "označeno datuma"
+
+#: contrib/comments/models.py:274
+msgid "user flag"
+msgstr "korisnička oznaka"
+
+#: contrib/comments/models.py:275
+msgid "user flags"
+msgstr "korisničke oznake"
+
+#: contrib/comments/models.py:279
+#, python-format
+msgid "Flag by %r"
+msgstr "Oznaka po %r"
+
+#: contrib/comments/models.py:284
+msgid "deletion date"
+msgstr "datum brisanja"
+
+#: contrib/comments/models.py:286
+msgid "moderator deletion"
+msgstr "brisanje moderatora"
+
+#: contrib/comments/models.py:287
+msgid "moderator deletions"
+msgstr "brisanja moderatora"
+
+#: contrib/comments/models.py:291
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Brisanje moderatora po %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Zaboravili ste lozinku?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Ocjene"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Obavezno"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Izborno, nije obavezno"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Pošalji sliku"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentar:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Pregled komentara"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Vaše ime:"
+
+#: contrib/comments/views/comments.py:28
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Ova ocjena je obavezna jer ste bar jednom već ocjenjivali"
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Ovaj komentar je napisao korisnik koji je napisao manje od %(count)s "
+"komentara:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Ovaj komentar je napisao korisnik koji je napisao manje od %(count)s "
+"komentara:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ovaj komentar je napisao nedorečen korisnik:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Samo POST dopušten."
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Jedno ili više obaveznih polja nisu poslana"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Netko je mijenjao formu komentara (sigurnosni propust)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Forma komentara ima nepravilni 'target' parametar -- ID objekta je bio "
+"nepravilan"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Forma komentara nije imala ni 'preview' ni 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonimni korisnici ne mogu glasati"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Neispravan ID komentara"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Ne možete glasati za sebe"
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "ime klase (class) python modela"
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "tip sadržaja"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "tipovi sadržaja"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Primjer: '/about/contact/'. Provjerite ako imate prvi i preostale slash-eve "
+"(/)."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "naslov"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "sadržaj"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "uključi komentare"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "ime template-a"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Primjer: 'flatpages/contact_page.html'. Ako navedeno nije definirano sistem "
+"će koristiti 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "registracija obavezna"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Ako je ovo selektirano samo logirani korisnici moći će vidjeti ovu stranicu."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "statična stranica"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "statične stranice"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "st"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "nd"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:52
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milijun"
+msgstr[1] "%(value).1f milijuna"
+
+#: contrib/humanize/templatetags/humanize.py:55
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f milijarda"
+msgstr[1] "%(value).1f milijarde"
+
+#: contrib/humanize/templatetags/humanize.py:58
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f bilijun"
+msgstr[1] "%(value).1f bilijuna"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "one"
+msgstr "jedan"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "two"
+msgstr "dva"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "three"
+msgstr "tri"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "four"
+msgstr "četiri"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "five"
+msgstr "pet"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "six"
+msgstr "šest"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "seven"
+msgstr "sedam"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "eight"
+msgstr "osam"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "nine"
+msgstr "devet"
+
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "today"
+msgstr "danas"
+
+#: contrib/humanize/templatetags/humanize.py:96
+msgid "tomorrow"
+msgstr "sutra"
+
+#: contrib/humanize/templatetags/humanize.py:98
+msgid "yesterday"
+msgstr "jučer"
+
+#: contrib/localflavor/ar/forms.py:28
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Unesi ispravan poštanski broj formata NNNN ili ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Ovo polje zahtjeva samo brojeve."
+
+#: contrib/localflavor/ar/forms.py:51
+msgid "This field requires 7 or 8 digits."
+msgstr "Ovo polje zahtjeva 7 ili 8 numeričkih znakova."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Unesite ispravan CUIT formata XX-XXXXXXXX-X ili XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:81
+msgid "Invalid CUIT."
+msgstr "Neispravan CUIT."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Unesite poštanski kod sa 4 numerička znaka."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Unesite zip kod formata XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefonski brojevi moraju biti formata XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "Izaberite ispravnu brazilsku državu. Država nije jedna od dostupnih "
+"država."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Neispravan CPF broj."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Ovo polje zahtjeva najviše 11 numeričkih znakova ili 14 slova."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Neispravan CNPJ broj."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Ovo polje zahtjeva bar 14 numeričkih znakova"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Unesi poštanski broj formata XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "Unesite valjani kanadski broj socijalnog osiguranja formata XXX-XXX-XXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Geneva"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Unesite zip kod formata XXXX."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr "Unesite ispravan švicarski identifikacijski broj ili broj putovnice formata X1234567<0 ili "
+"1234567890"
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Unesi ispravan čileanski RUT"
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Unesi ispravan čileanski RUT formata XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "Čileanski RUT nije ispravan."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavaria"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Western Pomerania"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Lower Saxony"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "North Rhine-Westphalia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhineland-Palatinate"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxony"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxony-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thuringia"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Unesite zip kod formata XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr "Unesite broj njemačke identifikacijske kartice formata XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Arava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almeria"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Avila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Illes Balears"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Caceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cadiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castello"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Cordoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruna"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaen"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "Leon"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Malaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarre"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Seville"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Bizkaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalusia"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragon"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principality of Asturias"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Balearic Islands"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Basque Country"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Canary Islands"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castile-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castile and Leon"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Catalonia"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Region of Murcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Foral Community of Navarre"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valencian Community"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Unesi ispravan poštanski broj u rasponu i formatu od 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Unesite ispravan broj telefona u jednom od formata 6XXXXXXXX, 8XXXXXXXX ili "
+"9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Unesite ispravan NIF, NIE ili CIF."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Molim unesite ispravan NIF ili NIE."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Neispravan checksum za NIF"
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Neispravan checksum za NIF"
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Neispravan checksum za CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Molim unesite ispravan broj bankovnog računa formata XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Neispravan checksum za broj bankovnog računa."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Unesi ispravan broj finskog socijalnog osiguranja."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Unesi ispravan zip kod formata XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Unesite ispravan islandski identifikacijski broj formata XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Islandski identifikacijski broj nije ispravan."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Unesite ispravan zip kod."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Unesite ispravan broj socijalnog osiguranja."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Unesite ispravan VAT broj."
+
+#: contrib/localflavor/jp/forms.py:19
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Unesite poštanski broj formata XXXXXXX or XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Estado de México"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Unesite ispravan poštanski broj"
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Unesite ispravan telefonski broj"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Unesite ispravan SoFi broj"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friesland"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburg"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Noord-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Noord-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Zuid-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Unesite ispravan broj norveškog socijalnog osiguranja."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Ovo polje zahtjeva 8 numeričkih znakova."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Ovo polje zahtjeva 11 numeričkih znakova."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "Nacionalni identifikacijski broj sadrži 11 numeričkih znakova."
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Neispravan checksum za Nacionalni identifikacijski broj."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Unesite ispravan porezni broj (NIP) formata XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Neispravan checksum za porezni broj (NIP)."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "National Business Register Number (REGON) sastoji se od 7 ili 9 numeričkih znakova."
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Neispravan checked za National Business Register Number (REGON)."
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Unesi poštanski broj formata XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Lower Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Lesser Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Subcarpatia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Greater Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "West Pomerania"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banska Bystrica regija"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Bratislava regija"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Kosice regija"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Nitra regija"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Presov regija"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Trencin regija"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Trnava regija"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Zilina regija"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Unesite ispravan poštanski broj."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall and Isles of Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Greater London"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Greater Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "South Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "West Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "Country Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Central Scotland"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetland Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Engleska"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Sjeverna irska"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Škotska"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Wales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Unesite zip kod formata XXXXX or XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Unesi ispravan broj socijalnog osiguranja S.A.D.-a formata XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Unesi ispravan južnoafrički ID broj."
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Unesite ispravan južnoafrički poštanski broj."
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Eastern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Free State"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Northern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "North West"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Western Cape"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "preusmjeri od"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Ovo bi trebala biti apsolutna putanja, bez imena domene. Primjer: '/events/"
+"search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "preusmjeri na"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Ovo može biti ili apsolutna putanja (kao gore) ili potpuni URL koji počinje "
+"sa 'http://'"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "preusmjeri"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "preusmjeravanja"
+
+#: contrib/sessions/models.py:46
+msgid "session key"
+msgstr "session ključ (key)"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "session podaci"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "ističe na datum"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "session"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sessions"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "ime domene"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "ime za prikaz"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "stranica"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "stranice"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Ova vrijednost može sadržavati samo slova, brojeve i povlaku."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Ova vrijednost može sadržavati samo slova, brojeve, povlaku, crtice ili "
+"slashes (/)."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Ova vrijednost može sadržavati samo slova, brojeve, povlake ili hyphens."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Velika slova ovdje nisu dopuštena."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Mala slova ovdje nisu dopuštena"
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Unesite samo brojeve razdvojene zarezom."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Unesite ispravne e-mail adrese odvojene zarezom."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Unesite ispravnu IP adresu."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Prazne vrijednosti nisu dopuštene ovdje."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Dozvoljeni su samo numerički znakovi."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Ova vrijednost ne može sadržavati samo brojeve."
+
+#: core/validators.py:128 newforms/fields.py:151
+msgid "Enter a whole number."
+msgstr "Unesite cijeli broj."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Dozvoljena su samo slova abecede."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "Godina mora biti 1900 ili poslije."
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Neispravan datum: %s"
+
+#: core/validators.py:156 db/models/fields/__init__.py:509
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Unesite ispravan datum u formatu YYYY-MM-DD."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Unesite ispravno vrijeme u HH:MM formatu."
+
+#: core/validators.py:165 db/models/fields/__init__.py:583
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Unesite ispravan datum/vrijeme u formatu YYYY-MM-DD HH:MM."
+
+#: core/validators.py:170 newforms/fields.py:402
+msgid "Enter a valid e-mail address."
+msgstr "Unesite ispravnu e-mail adresu."
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Datoteka nije poslana. Provjerite 'encoding type' forme."
+
+#: core/validators.py:193 newforms/fields.py:456
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Upload-ajte ispravnu sliku. Datoteka koju ste upload-ali ili nije slika ili "
+"je oštečena."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s ne vodi na ispravnu sliku."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Telefonski brojevi moraju biti u formatu XXX-XXX-XXXX. \"%s\" nije ispravan "
+"format."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s ne vodi na ispravan QuickTime video."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Ispravan URL je obavezan."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr "Ispravan HTML je obavezan. Pogreške:<br> %s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Loše formatiran XML: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Neispravan URL: %s"
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s je neispravan (broken) link."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Unesite ispravanu kraticu za državu S.A.D.-a."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Pazite na izražavanje! Riječ %s nije dopuštena."
+msgstr[1] "Pazite na izražavanje! Riječi %s nisu dopuštene."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Ovo polje mora biti jednako %s polju."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Molim unesite nešto bar za jedno polje."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Molim unesite vrijednosti za oba polja ili ostavite oba polja prazna."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Ovo polje mora biti ispunjeno ako je %(field)s %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Ovo polje je obavezno ako je %(field)s različito od %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Duplicirane vrijednosti nisu dopuštene."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Vrijednost mora biti između %(lower)s i %(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Vrijednost mora biti bar %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Vrijednost ne može biti veća od %s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Ova vrijednost mora biti %s na kvadrat."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Molim unesite ispravan decimalni broj."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Molim unesite ispravan decimalni broj sa najviše %s numerička znaka."
+msgstr[1] "Molim unesite ispravan decimalni broj sa najviše %s numeričkih znakova."
+
+#: core/validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Molim unesite ispravan decimalni broj sa najviše %s numerička znaka u cijelom dijelu."
+msgstr[1] "Molim unesite ispravan decimalni broj sa najviše %s numeričkih znakova u cijelom dijelu."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Molim unesite ispravan decimalni broj sa najviše %s decimalna mjesta."
+msgstr[1] "Molim unesite ispravan decimalni broj sa najviše %s decimalnih mjesta."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Molim unesite ispravan broj sa pomičnim zarezom (floating point number)."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Provjerite je li Vaša upload-ana datoteka bar %s byte-ova velika."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Provjerite je li Vaša upload-ana datoteka najviše %s byte-ova velika."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "Format za ovo polje je pogrešno."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "Ovo polje je neispravno."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Ništa nije izvučeno iz %s."
+
+#: core/validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s je vratio neispravan Content-Type header '%(contenttype)s'."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Molim zatvorite %(tag)s na liniji %(line)s. (Linija počinje sa "
+"\"%(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Neki tekst koji počinje na liniji %(line)s nije dopušten u tom kontekstu. (Linija "
+"počinje sa \"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" na liniji %(line)s je neispravan atribut. (Linija počinje sa \"%"
+"(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" na liniji %(line)s je neispravan tag. (Linija počinje sa \"%"
+"(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Tagu na liniji %(line)s nedostaje jedan ili više obaveznih atributa. (Linija "
+"počinje sa \"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"\"%(attr)s\" atribut na liniji %(line)s ima neispravnu vrijednost. (Linija "
+"počinje sa \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s sa %(type)s već postoji za navedeno %(field)s."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s sa navedenim %(fieldname)s već postoji."
+
+#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318
+#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746
+#: newforms/fields.py:45 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Unos za ovo polje je obavezno."
+
+#: db/models/fields/__init__.py:418
+msgid "This value must be an integer."
+msgstr "Vrijednost mora biti cijeli broj."
+
+#: db/models/fields/__init__.py:454
+msgid "This value must be either True or False."
+msgstr "Vrijednost mora biti True ili False."
+
+#: db/models/fields/__init__.py:475
+msgid "This field cannot be null."
+msgstr "Ovo polje ne može biti null."
+
+#: db/models/fields/__init__.py:644
+msgid "This value must be a decimal number."
+msgstr "Vrijednost mora biti decimalan broj."
+
+#: db/models/fields/__init__.py:755
+msgid "Enter a valid filename."
+msgstr "Unesite ime datoteke koja postoji."
+
+#: db/models/fields/__init__.py:904
+msgid "This value must be either None, True or False."
+msgstr "Vrijednost mora biti None, True ili False."
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Molim unesite ispravan %s."
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "Odvojite više ID-a zarezom."
+
+#: db/models/fields/related.py:660
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Držite \"Control\", ili \"Command\" na Mac-u, da bi odabrali više od "
+"jednog objekta."
+
+#: db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Molim unesite ispravan %(self)s ID-eve. Vrijednost %(value)r je neispravna."
+msgstr[1] "Molim unesite ispravan %(self)s ID-eve. Vrijednosti %(value)r su neispravne."
+
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr "Unesite ispravnu vrijednost."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Osigurajte da ova vrijednost ima najviše %(max)d znakova (ima %(length)d)."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Osigurajte da ova vrijednost ima najmanje %(min)d znakova (ima %(length)d)."
+
+#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Osigurajte da je ova vrijednost manja ili jednaka %s."
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Osigurajte da je ova vrijednost veća ili jednaka %s."
+
+#: newforms/fields.py:180 newforms/fields.py:209
+msgid "Enter a number."
+msgstr "Unesite broj."
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Osigurajte da ukupno nema više od %s numeričkih znakova."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Osigurajte da ukupno nema više od %s decimalnih mjesta."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Osigurajte da ukupno nema više od %s numeričkih znakova prije decimalne točke."
+
+#: newforms/fields.py:262 newforms/fields.py:719
+msgid "Enter a valid date."
+msgstr "Unesite ispravan datum."
+
+#: newforms/fields.py:295 newforms/fields.py:720
+msgid "Enter a valid time."
+msgstr "Unesite ispravno vrijeme."
+
+#: newforms/fields.py:334
+msgid "Enter a valid date/time."
+msgstr "Unesite ispravan datum/vrijeme."
+
+#: newforms/fields.py:433
+msgid "No file was submitted."
+msgstr "Datoteka nije poslana."
+
+#: newforms/fields.py:434 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Poslana datoteka je prazna."
+
+#: newforms/fields.py:492
+msgid "Enter a valid URL."
+msgstr "Unesite ispravan URL."
+
+#: newforms/fields.py:493
+msgid "This URL appears to be a broken link."
+msgstr "Izgleda da je URL neispravan."
+
+#: newforms/fields.py:555 newforms/models.py:317
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Izaberite ispravnu opciju. Ta opcija nije jedna od dostupnih opcija."
+
+#: newforms/fields.py:594
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Odaberite iz ponuđenog. %(value)s nije ponuđen kao opcija."
+
+#: newforms/fields.py:595 newforms/fields.py:657 newforms/models.py:377
+msgid "Enter a list of values."
+msgstr ""
+
+#: newforms/fields.py:748
+msgid "Enter a valid IPv4 address."
+msgstr "Unesite ispravnu IPv4 adresu."
+
+#: newforms/models.py:378
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Odaberite iz ponuđenog. %s nije ponuđen kao opcija."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Osigurajte da tekst sadrži manje od %s znaka."
+msgstr[1] "Osigurajte da tekst sadrži manje od %s znakova."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Novi redovi ovdje nisu dozvoljeni."
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Odaberite iz ponuđenog; '%(data)s' nije u %(choices)s."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Unesite cijeli broj između -32,768 i 32,767."
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Unesite pozitivan broj."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Unesite cijeli broj između 0 i 32,767."
+
+#: template/defaultfilters.py:683
+msgid "yes,no,maybe"
+msgstr "da,ne,možda"
+
+#: template/defaultfilters.py:714
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bajt"
+msgstr[1] "%(size)d bajta"
+
+#: template/defaultfilters.py:716
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:718
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:719
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "popodne"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "ujutro"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "popodne"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "ujutro"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "ponoć"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "podne"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Ponedjeljak"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Utorak"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Srijeda"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Četvrtak"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Petak"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Subota"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Nedjelja"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Pon"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Uto"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Sri"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Čet"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Pet"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Sub"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Ned"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Siječanj"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Veljača"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Ožujak"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "Travanj"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Svibanj"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Lipanj"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Srpanj"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Kolovoz"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "Rujan"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Listopad"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "Studeni"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Prosinac"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "sij."
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "velj."
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "ožu."
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "tra."
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "svi."
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "lip."
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "srp."
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "kol."
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "ruj."
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "lis."
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "stu."
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "pro."
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Sij."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Velj."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Kol."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Ruj."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Lis."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Stu."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Pro."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "ili"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "godina"
+msgstr[1] "godine"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mjesec"
+msgstr[1] "mjeseci"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "tjedan"
+msgstr[1] "tjedani"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dan"
+msgstr[1] "dani"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "sat"
+msgstr[1] "sati"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuta"
+msgstr[1] "minute"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minuta"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:399
+msgid "DATE_FORMAT"
+msgstr "DATE_FORMAT"
+
+#: utils/translation/trans_real.py:400
+msgid "DATETIME_FORMAT"
+msgstr "DATETIME_FORMAT"
+
+#: utils/translation/trans_real.py:401
+msgid "TIME_FORMAT"
+msgstr "TIME_FORMAT"
+
+#: utils/translation/trans_real.py:417
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:418
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s je uspješno kreirano."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s je uspješno promijenjeno."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s je izbrisano."
+
diff --git a/webapp/django/conf/locale/hr/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/hr/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..30f7c19
--- /dev/null
+++ b/webapp/django/conf/locale/hr/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/hr/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/hr/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..5ad8993
--- /dev/null
+++ b/webapp/django/conf/locale/hr/LC_MESSAGES/djangojs.po
@@ -0,0 +1,117 @@
+# translation of djangojs.po to Hrvatski jezik
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-08-13 11:13+1000\n"
+"PO-Revision-Date: 2008-06-17 23:45+0100\n"
+"Last-Translator: Aljosa Mohorovic <aljosa.mohorovic@gmail.com>\n"
+"Language-Team: Hrvatski jezik\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Dostupno %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Odaberi sve"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Dodaj"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Ukloni"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Odabrano %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Odaberi iz izbora i klikni "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Očisti sve"
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "Siječanj Veljača Ožujak Travanj Svibanj Lipanj Srpanj Kolovoz Rujan Listopad Studeni Prosinac"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Nedjelja Ponedjeljak Utorak Srijeda Četvrtak Petak Subota"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "N P U S Č P S"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Sada"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Sat"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Izaberite vrijeme"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Ponoć"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 ujutro"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Podne"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Odustani"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Danas"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalendar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Jučer"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Sutra"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Prikaži"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Sakri"
+
diff --git a/webapp/django/conf/locale/hu/LC_MESSAGES/django.mo b/webapp/django/conf/locale/hu/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..60c544a
--- /dev/null
+++ b/webapp/django/conf/locale/hu/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/hu/LC_MESSAGES/django.po b/webapp/django/conf/locale/hu/LC_MESSAGES/django.po
new file mode 100644
index 0000000..2f1d10a
--- /dev/null
+++ b/webapp/django/conf/locale/hu/LC_MESSAGES/django.po
@@ -0,0 +1,3497 @@
+# translation of django.po to Hungarian
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-08-21 02:23+0200\n"
+"PO-Revision-Date: 2007-08-21 02:28+0200\n"
+"Last-Translator: Szilveszter Farkas <szilveszter.farkas@gmail.com>\n"
+"Language-Team: Hungarian <hu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#: oldforms/__init__.py:373 db/models/fields/__init__.py:156
+#: db/models/fields/__init__.py:313 db/models/fields/__init__.py:721
+#: db/models/fields/__init__.py:732 newforms/models.py:193
+#: newforms/fields.py:92 newforms/fields.py:490 newforms/fields.py:566
+#: newforms/fields.py:577
+msgid "This field is required."
+msgstr "Ennek a mezőnek a megadása kötelező."
+
+#: oldforms/__init__.py:408
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "A szövegnek rövidebbnek kell lennie %s karakternél."
+msgstr[1] "A szövegnek rövidebbnek kell lennie %s karakternél."
+
+#: oldforms/__init__.py:413
+msgid "Line breaks are not allowed here."
+msgstr "Sortörések itt nem megengedettek."
+
+#: oldforms/__init__.py:511 oldforms/__init__.py:585 oldforms/__init__.py:624
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Válasszon egy érvényes elemet, '%(data)s' nincs ezek között: %(choices)s."
+
+#: oldforms/__init__.py:591 newforms/widgets.py:188
+#: contrib/admin/filterspecs.py:152
+msgid "Unknown"
+msgstr "Ismeretlen"
+
+#: oldforms/__init__.py:591 newforms/widgets.py:188
+#: contrib/admin/filterspecs.py:145
+msgid "Yes"
+msgstr "Igen"
+
+#: oldforms/__init__.py:591 newforms/widgets.py:188
+#: contrib/admin/filterspecs.py:145
+msgid "No"
+msgstr "Nem"
+
+#: oldforms/__init__.py:686 core/validators.py:181 core/validators.py:461
+#: newforms/fields.py:376
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Nem küldött el fájlt. Ellenőrizze a kódolás típusát az űrlapon."
+
+#: oldforms/__init__.py:688 newforms/fields.py:380
+msgid "The submitted file is empty."
+msgstr "A küldött fájl üres."
+
+#: oldforms/__init__.py:744
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Írjon be egy egész számot -32 768 és 32 767 között."
+
+#: oldforms/__init__.py:754
+msgid "Enter a positive number."
+msgstr "Írjon be egy pozitív számot."
+
+#: oldforms/__init__.py:764
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Írjon be egy egész számot 0 és 32 767 között."
+
+#: db/models/manipulators.py:309
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "A megadott %(field)s mezőhöz már létezik %(type)s típusú %(object)s elem."
+
+#: db/models/manipulators.py:310 core/validators.py:275
+#: contrib/admin/views/main.py:342 contrib/admin/views/main.py:344
+#: contrib/admin/views/main.py:346
+msgid "and"
+msgstr "és"
+
+# TODO
+#: db/models/fields/__init__.py:49
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s ezzel a(z) %(fieldname)s már létezik."
+
+#: db/models/fields/__init__.py:411
+msgid "This value must be an integer."
+msgstr "Az értéknek egész számnak kell lennie."
+
+#: db/models/fields/__init__.py:446
+msgid "This value must be either True or False."
+msgstr "Az értéknek igaznak (True) vagy hamisnak (False) kell lennie."
+
+#: db/models/fields/__init__.py:467
+msgid "This field cannot be null."
+msgstr "Ez a mező nem lehet nulla."
+
+#: db/models/fields/__init__.py:501 core/validators.py:155
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Írjon be egy érvényes dátumot 'ÉÉÉÉ-HH-NN' alakban."
+
+#: db/models/fields/__init__.py:570 core/validators.py:164
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Írjon be egy érvényes dátumot/időt 'ÉÉÉÉ-HH-NN ÓÓ-PP' alakban."
+
+#: db/models/fields/__init__.py:631
+msgid "This value must be a decimal number."
+msgstr "Az értéknek decimálisnak kell lennie."
+
+#: db/models/fields/__init__.py:741
+msgid "Enter a valid filename."
+msgstr "Adjon meg egy érvényes fájlnevet."
+
+#: db/models/fields/__init__.py:883
+msgid "This value must be either None, True or False."
+msgstr ""
+"Az értéknek semminek (None), igaznak (True), vagy hamisnak (False) kell "
+"lennie."
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Adjon meg egy érvényes %s értéket."
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "Az ID-ket vesszővel válassza el."
+
+#: db/models/fields/related.py:660
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Tartsa lenyomva a \"Control\"-t (vagy Mac-en a \"Command\"-ot) több elem "
+"kiválasztásához."
+
+#: db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Írjon be érvényes %(self)s ID-t. A mostani érték érvénytelen: %(value)r."
+msgstr[1] ""
+"Írjon be érvényes %(self)s ID-ket. A mostani értékek érvénytelenek: %(value)"
+"r."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arab"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengáli"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "Bolgár"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr "Katalán"
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "Cseh"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "Walesi"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "Dán"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "Német"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "Görög"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "Angol"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "Spanyol"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "Argentín spanyol"
+
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr "Perzsa"
+
+#: conf/global_settings.py:52
+msgid "Finnish"
+msgstr "Finn"
+
+#: conf/global_settings.py:53
+msgid "French"
+msgstr "Francia"
+
+#: conf/global_settings.py:54
+msgid "Galician"
+msgstr "Gall"
+
+#: conf/global_settings.py:55
+msgid "Hungarian"
+msgstr "Magyar"
+
+#: conf/global_settings.py:56
+msgid "Hebrew"
+msgstr "Héber"
+
+#: conf/global_settings.py:57
+msgid "Croatian"
+msgstr "Horvát"
+
+#: conf/global_settings.py:58
+msgid "Icelandic"
+msgstr "Izlandi"
+
+#: conf/global_settings.py:59
+msgid "Italian"
+msgstr "Olasz"
+
+#: conf/global_settings.py:60
+msgid "Japanese"
+msgstr "Japán"
+
+#: conf/global_settings.py:61
+msgid "Korean"
+msgstr "Koreai"
+
+#: conf/global_settings.py:62
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:63
+msgid "Latvian"
+msgstr "Litván"
+
+#: conf/global_settings.py:64
+msgid "Macedonian"
+msgstr "Macedón"
+
+#: conf/global_settings.py:65
+msgid "Dutch"
+msgstr "Holland"
+
+#: conf/global_settings.py:66
+msgid "Norwegian"
+msgstr "Norvég"
+
+#: conf/global_settings.py:67
+msgid "Polish"
+msgstr "Lengyel"
+
+#: conf/global_settings.py:68
+msgid "Portugese"
+msgstr "Portugál"
+
+#: conf/global_settings.py:69
+msgid "Brazilian"
+msgstr "Brazil"
+
+#: conf/global_settings.py:70
+msgid "Romanian"
+msgstr "Román"
+
+#: conf/global_settings.py:71
+msgid "Russian"
+msgstr "Orosz"
+
+#: conf/global_settings.py:72
+msgid "Slovak"
+msgstr "Szlovák"
+
+#: conf/global_settings.py:73
+msgid "Slovenian"
+msgstr "Szlovén"
+
+#: conf/global_settings.py:74
+msgid "Serbian"
+msgstr "Szerb"
+
+#: conf/global_settings.py:75
+msgid "Swedish"
+msgstr "Svéd"
+
+#: conf/global_settings.py:76
+msgid "Tamil"
+msgstr "Tamil"
+
+#: conf/global_settings.py:77
+msgid "Telugu"
+msgstr "Telugu"
+
+#: conf/global_settings.py:78
+msgid "Turkish"
+msgstr "Török"
+
+#: conf/global_settings.py:79
+msgid "Ukrainian"
+msgstr "Ukrán"
+
+#: conf/global_settings.py:80
+msgid "Simplified Chinese"
+msgstr "Egyszerű kínai"
+
+#: conf/global_settings.py:81
+msgid "Traditional Chinese"
+msgstr "Hagyományos kínai"
+
+#: core/validators.py:71
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Az érték csak betűket, számokat és aláhúzást tartalmazhat."
+
+#: core/validators.py:75
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "Az érték csak betűket, számokat, aláhúzást és perjelet tartalmazhat."
+
+#: core/validators.py:79
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Az érték csak betűket, számokat, aláhúzást és kötőjelet tartalmazhat."
+
+#: core/validators.py:83
+msgid "Uppercase letters are not allowed here."
+msgstr "Nagybetűk itt nem megengedettek."
+
+#: core/validators.py:87
+msgid "Lowercase letters are not allowed here."
+msgstr "Kisbetűk itt nem megengedettek."
+
+#: core/validators.py:94
+msgid "Enter only digits separated by commas."
+msgstr "Csak számokat adjon meg, vesszővel elválasztva."
+
+#: core/validators.py:106
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Érvényes e-mail címeket adjon meg, vesszővel elválasztva."
+
+#: core/validators.py:110
+msgid "Please enter a valid IP address."
+msgstr "Írjon be egy érvényes IP címet."
+
+#: core/validators.py:114
+msgid "Empty values are not allowed here."
+msgstr "Üres érték itt nem megengedett."
+
+#: core/validators.py:118
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Nem szám karakterek itt nem megengedettek."
+
+#: core/validators.py:122
+msgid "This value can't be comprised solely of digits."
+msgstr "Ez az érték nem tartalmazhat kizárólag számokat."
+
+#: core/validators.py:127 newforms/fields.py:142
+msgid "Enter a whole number."
+msgstr "Adjon meg egy egész számot."
+
+#: core/validators.py:131
+msgid "Only alphabetical characters are allowed here."
+msgstr "Itt csak betűk megengedettek."
+
+#: core/validators.py:146
+msgid "Year must be 1900 or later."
+msgstr "Az évnek 1900-nak vagy későbbinek kell lennie."
+
+#: core/validators.py:150
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Érvénytelen dátum: %s"
+
+#: core/validators.py:160
+msgid "Enter a valid time in HH:MM format."
+msgstr "Írjon be egy érvényes időt 'ÓÓ:PP' alakban."
+
+#: core/validators.py:169 newforms/fields.py:336
+msgid "Enter a valid e-mail address."
+msgstr "Írjon be egy érvényes e-mail címet."
+
+#: core/validators.py:185 newforms/fields.py:397
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Töltsön fel egy érvényes képfájlt. A feltöltött fájl nem kép volt, vagy "
+"megsérült."
+
+#: core/validators.py:192
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "A hivatkozás (%s) érvénytelen képfájlra mutat."
+
+#: core/validators.py:196
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"A telefonszámoknak 'XXX-XXX-XXXX' formátumúnak kell lenniük. \"%s\" "
+"érvénytelen."
+
+#: core/validators.py:204
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "A hivatkozás (%s) érvénytelen QuickTime videóra mutat."
+
+#: core/validators.py:208
+msgid "A valid URL is required."
+msgstr "Érvényes URL szükséges."
+
+#: core/validators.py:222
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Érvényes HTML kell. A hiba:\n"
+"%s"
+
+#: core/validators.py:229
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Rosszul formázott XML: %s"
+
+#: core/validators.py:246
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Érvénytelen URL: %s"
+
+#: core/validators.py:251 core/validators.py:253
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "A hivatkozás (%s) egy törött link."
+
+#: core/validators.py:259
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Írja be egy érvényes USA állam rövidítését."
+
+#: core/validators.py:273
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Vigyázzon a szájára! Az ilyen szó (%s) itt nem megengedett."
+msgstr[1] "Vigyázzon a szájára! Az ilyen szavak (%s) itt nem megengedettek."
+
+# TODO
+#: core/validators.py:280
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Ennek a mezőnek egyeznie kell a(z) %s mezővel."
+
+#: core/validators.py:299
+msgid "Please enter something for at least one field."
+msgstr "Írjon be valamit legalább egy mezőbe."
+
+#: core/validators.py:308 core/validators.py:319
+msgid "Please enter both fields or leave them both empty."
+msgstr "Töltse ki mindkét mezőt, vagy hagyja üresen mindkettőt."
+
+#: core/validators.py:327
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Ezt a mezőt meg kell adni, ha %(field)s értéke %(value)s"
+
+#: core/validators.py:340
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Ezt a mezőt meg kell adni, ha %(field)s értéke nem %(value)s"
+
+#: core/validators.py:359
+msgid "Duplicate values are not allowed."
+msgstr "Ugyanazok az értékek nem megengedettek."
+
+#: core/validators.py:374
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Az értéknek %(lower)s és %(upper)s között kell lennie."
+
+#: core/validators.py:376
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Az értéknek legalább ennyinek kell lennie: %s."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Az érték nem lehet több ennyinél: %s."
+
+#: core/validators.py:414
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Az értéknek %s hatványának kell lennie."
+
+#: core/validators.py:424
+msgid "Please enter a valid decimal number."
+msgstr "Írjon be egy érvényes decimális számot."
+
+#: core/validators.py:431
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Írjon be egy legalább %s jegyű érvényes decimális számot."
+msgstr[1] "Írjon be egy legalább %s jegyű érvényes decimális számot."
+
+#: core/validators.py:434
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Írjon be egy érvényes decimális számot, legfeljebb %s egész számjeggyel."
+msgstr[1] "Írjon be egy érvényes decimális számot, legfeljebb %s egész számjeggyel."
+
+#: core/validators.py:437
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Írjon be egy érvényes decimális számot, legfeljebb %s tizedessel."
+msgstr[1] "Írj be egy érvényes decimális számot, legfeljebb %s tizedessel."
+
+#: core/validators.py:445
+msgid "Please enter a valid floating point number."
+msgstr "Írj be egy érvényes lebegőpontos számot."
+
+#: core/validators.py:454
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "A feltöltött fájl legalább %s bájt méretű legyen."
+
+#: core/validators.py:455
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "A feltöltött fájl legfeljebb %s bájt méretű lehet."
+
+#: core/validators.py:472
+msgid "The format for this field is wrong."
+msgstr "Ennek a mezőnek rossz a formátuma."
+
+#: core/validators.py:487
+msgid "This field is invalid."
+msgstr "A mező érvénytelen."
+
+#: core/validators.py:523
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Nem lehet semmit kinyerni innen: %s."
+
+#: core/validators.py:526
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"A hivatkozás (%(url)s) érvénytelen '%(contenttype)s' Content-Type fejlécet "
+"adott vissza."
+
+#: core/validators.py:559
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Zárja le a nyitott %(tag)s címkét a következő sorban: %(line)s. (A sor "
+"kezdete: \"%(start)s\".)"
+
+#: core/validators.py:563
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Valamely szöveg nem megengedett ebben a környezetben a következő sorban: %"
+"(line)s. (A sor kezdete: \"%(start)s\".)"
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" érvénytelen tulajdonság a következő sorban: %(line)s. (A sor "
+"kezdete: \"%(start)s\".)"
+
+#: core/validators.py:573
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" érvénytelen címke a következő sorban: %(line)s. (A sor "
+"kezdete: \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"A következő sorban lévő címkéről hiányzik egy vagy több kötelező "
+"tulajdonság: %(line)s. (A sor kezdete: \"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"A tulajdonság (\"%(attr)s\") érvénytelen a következő sorban: %(line)s. (A "
+"sor kezdete: \"%(start)s\".)"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s sikeresen létrehozva."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s sikeresen frissítve."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s törölve."
+
+#: newforms/models.py:180 newforms/fields.py:478
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Válasszon érvényes elemet. Az Ön választása nincs az elérhető lehetőségek "
+"között."
+
+#: newforms/models.py:197 newforms/fields.py:494 newforms/fields.py:570
+msgid "Enter a list of values."
+msgstr "Adja meg értékek egy listáját."
+
+#: newforms/models.py:203 newforms/fields.py:500
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Válasszon érvényes elemet. %s nincs az elérhető lehetőségek között."
+
+#: newforms/fields.py:116
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Bizonyosodjon meg arról, hogy ez az érték legfeljebb %(max)d karaktert "
+"tartalmaz (jelenlegi hossza: %(length)d)."
+
+#: newforms/fields.py:118
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Bizonyosodjon meg arról, hogy ez az érték legalább %(min)d karaktert "
+"tartalmaz (jelenlegi hossza: %(length)d)."
+
+#: newforms/fields.py:144 newforms/fields.py:167 newforms/fields.py:197
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Bizonyosodjon meg arról, hogy az érték %s vagy kisebb."
+
+#: newforms/fields.py:146 newforms/fields.py:169 newforms/fields.py:199
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Bizonyosodjon meg arról, hogy az érték %s vagy nagyobb."
+
+#: newforms/fields.py:165 newforms/fields.py:192
+msgid "Enter a number."
+msgstr "Adj meg egy számot."
+
+#: newforms/fields.py:201
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Bizonyosodjon meg arról, hogy nincs ennél több számjegy: %s."
+
+#: newforms/fields.py:203
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Bizonyosodjon meg arról, hogy nincs ennél több tizedesjegy: %s."
+
+#: newforms/fields.py:205
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr ""
+"Bizonyosodjon meg arról, hogy nincs ennél több számjegy a tizedesvessző "
+"előtt: %s."
+
+#: newforms/fields.py:238 newforms/fields.py:610
+msgid "Enter a valid date."
+msgstr "Adjon meg egy érvényes dátumot."
+
+#: newforms/fields.py:265 newforms/fields.py:612
+msgid "Enter a valid time."
+msgstr "Adjon meg egy érvényes időt."
+
+#: newforms/fields.py:301
+msgid "Enter a valid date/time."
+msgstr "Adjon meg egy érvényes dátumot/időt."
+
+#: newforms/fields.py:314
+msgid "Enter a valid value."
+msgstr "Adjon meg egy érvényes értéket."
+
+#: newforms/fields.py:378
+msgid "No file was submitted."
+msgstr "Semmilyen fájl sem került feltöltésre."
+
+#: newforms/fields.py:403 newforms/fields.py:425
+msgid "Enter a valid URL."
+msgstr "Adjon meg egy érvényes URL-t."
+
+#: newforms/fields.py:427
+msgid "This URL appears to be a broken link."
+msgstr "Ez a hivatkozás törött linknek tűnik."
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value)1f millió"
+msgstr[1] "%(value)1f millió"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value)1f milliárd"
+msgstr[1] "%(value)1f milliárd"
+
+#: contrib/humanize/templatetags/humanize.py:56
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value)1f trilliárd"
+msgstr[1] "%(value)1f trilliárd"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "one"
+msgstr "egy"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "two"
+msgstr "kettő"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "three"
+msgstr "három"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "four"
+msgstr "négy"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "five"
+msgstr "öt"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "six"
+msgstr "hat"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "seven"
+msgstr "hét"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "eight"
+msgstr "nyolc"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "nine"
+msgstr "kilenc"
+
+#: contrib/humanize/templatetags/humanize.py:90
+msgid "today"
+msgstr "ma"
+
+#: contrib/humanize/templatetags/humanize.py:92
+msgid "tomorrow"
+msgstr "holnap"
+
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "yesterday"
+msgstr "tegnap"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "átirányítva innen"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Ennek abszolút elérési útnak kell lennie, a tartománynév nélkül. Példa: '/"
+"events/search/'"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "átirányítva ide"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Ennek vagy abszolút elérési útnak kell lennie (mint fentebb), vagy teljes "
+"URL-nek 'http://'-vel kezdve."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "átirányítás"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "átirányít"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:169
+msgid "object ID"
+msgstr "objektum ID"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "címsor"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:170
+msgid "comment"
+msgstr "megjegyzés"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "besorolás #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "besorolás #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "besorolás #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "besorolás #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "besorolás #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "besorolás #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "besorolás #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "besorolás #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "érvényes besorolás"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:172
+msgid "date/time submitted"
+msgstr "dátum/idő beállítva"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:173
+msgid "is public"
+msgstr "publikus"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:306
+msgid "IP address"
+msgstr "IP cím"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "eltávolítva"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Jelöld be a négyzetet, ha a megjegyzés nem megfelelő. Az \"Ezt a megjegyzést "
+"törölték\" üzenet fog megjelenni helyette."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "megjegyzés"
+
+#: contrib/comments/models.py:134 contrib/comments/models.py:213
+msgid "Content object"
+msgstr "Tartalom objektum"
+
+#: contrib/comments/models.py:162
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Beküldte %(user)s ekkor: %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:171
+msgid "person's name"
+msgstr "személy neve"
+
+#: contrib/comments/models.py:174
+msgid "ip address"
+msgstr "IP cím"
+
+#: contrib/comments/models.py:176
+msgid "approved by staff"
+msgstr "személyzet által elfogadva"
+
+#: contrib/comments/models.py:179
+msgid "free comment"
+msgstr "szabad megjegyzés"
+
+#: contrib/comments/models.py:180
+msgid "free comments"
+msgstr "szabad megjegyzések"
+
+#: contrib/comments/models.py:239
+msgid "score"
+msgstr "értékelés"
+
+#: contrib/comments/models.py:240
+msgid "score date"
+msgstr "értékelés dátuma"
+
+#: contrib/comments/models.py:243
+msgid "karma score"
+msgstr "karma értékelés"
+
+#: contrib/comments/models.py:244
+msgid "karma scores"
+msgstr "karma értékelések"
+
+#: contrib/comments/models.py:248
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d értékelés %(user)s felhasználótól"
+
+#: contrib/comments/models.py:264
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ezt a megjegyzést %(user)s jelölte meg:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:271
+msgid "flag date"
+msgstr "jelölés dátuma"
+
+#: contrib/comments/models.py:274
+msgid "user flag"
+msgstr "felhasználó jelölése"
+
+#: contrib/comments/models.py:275
+msgid "user flags"
+msgstr "felhasználó jelölései"
+
+#: contrib/comments/models.py:279
+#, python-format
+msgid "Flag by %r"
+msgstr "Megjelölte %r"
+
+#: contrib/comments/models.py:284
+msgid "deletion date"
+msgstr "törlés dátuma"
+
+#: contrib/comments/models.py:286
+msgid "moderator deletion"
+msgstr "moderátor törlése"
+
+#: contrib/comments/models.py:287
+msgid "moderator deletions"
+msgstr "moderátor törlései"
+
+#: contrib/comments/models.py:291
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Moderátor törlés %r által"
+
+#: contrib/comments/views/karma.py:20
+msgid "Anonymous users cannot vote"
+msgstr "Névtelen felhasználó nem szavazhat"
+
+#: contrib/comments/views/karma.py:24
+msgid "Invalid comment ID"
+msgstr "Érvénytelen megjegyzés ID"
+
+#: contrib/comments/views/karma.py:26
+msgid "No voting for yourself"
+msgstr "Nem szavazhat önmagára"
+
+#: contrib/comments/views/comments.py:28
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Ez az értékelés szükséges, mert legalább még egy értékelést megadott."
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Ezt a megjegyzést olyan felhasználó küldte akinek kevesebb mint %(count)s "
+"megjegyzése van:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Ezt a megjegyzést olyan felhasználó küldte akinek kevesebb mint %(count)s "
+"megjegyzése van:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ezt a megjegyzést egy nem értékelt felhasználó küldte:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:189
+#: contrib/comments/views/comments.py:281
+msgid "Only POSTs are allowed"
+msgstr "Csak POST engedélyezett"
+
+#: contrib/comments/views/comments.py:193
+#: contrib/comments/views/comments.py:285
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Egy vagy több kötelező mező nincs kitöltve"
+
+#: contrib/comments/views/comments.py:197
+#: contrib/comments/views/comments.py:287
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Valaki megváltoztatta a megjegyzés űrlapot (biztonság megsértése)"
+
+#: contrib/comments/views/comments.py:207
+#: contrib/comments/views/comments.py:293
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"A megjegyzés űrlap érvénytelen 'target' paramétert tartalmaz -- az objektum "
+"ID-je érvénytelen volt"
+
+#: contrib/comments/views/comments.py:258
+#: contrib/comments/views/comments.py:322
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "A megjegyzés űrlap nem biztosít sem 'preview' -t sem 'post' -ot."
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Felhasználó:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Log out"
+msgstr "Kijelentkezés"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Jelszó:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Elfelejtette a jelszavát?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Értékelések"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Kötelező"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcionális"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Fénykép beküldése"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Megjegyzés:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Megjegyzés előnézete"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Név:"
+
+#: contrib/sites/models.py:15
+msgid "domain name"
+msgstr "tartománynév"
+
+#: contrib/sites/models.py:16
+msgid "display name"
+msgstr "megjelenítendő név"
+
+#: contrib/sites/models.py:20
+msgid "site"
+msgstr "honlap"
+
+#: contrib/sites/models.py:21
+msgid "sites"
+msgstr "honlapok"
+
+#: contrib/admin/filterspecs.py:42
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Szerző: %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:72 contrib/admin/filterspecs.py:90
+#: contrib/admin/filterspecs.py:145 contrib/admin/filterspecs.py:171
+msgid "All"
+msgstr "Mind"
+
+#: contrib/admin/filterspecs.py:111
+msgid "Any date"
+msgstr "Bármely dátum"
+
+#: contrib/admin/filterspecs.py:112
+msgid "Today"
+msgstr "Ma"
+
+#: contrib/admin/filterspecs.py:115
+msgid "Past 7 days"
+msgstr "Utolsó 7 nap"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This month"
+msgstr "Ez a hónap"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This year"
+msgstr "Ez az év"
+
+#: contrib/admin/models.py:17
+msgid "action time"
+msgstr "művelet időpontja"
+
+#: contrib/admin/models.py:20
+msgid "object id"
+msgstr "objektum id"
+
+#: contrib/admin/models.py:21
+msgid "object repr"
+msgstr "objektum repr"
+
+#: contrib/admin/models.py:22
+msgid "action flag"
+msgstr "művelet jelölés"
+
+#: contrib/admin/models.py:23
+msgid "change message"
+msgstr "üzenet módosítása"
+
+#: contrib/admin/models.py:26
+msgid "log entry"
+msgstr "naplóbejegyzés"
+
+#: contrib/admin/models.py:27
+msgid "log entries"
+msgstr "naplóbejegyzések"
+
+#: contrib/admin/templatetags/admin_list.py:254
+msgid "All dates"
+msgstr "Minden dátum"
+
+# TODO
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "\"%(obj)s\" %(name)s sikeresen létrehozva."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:268
+#: contrib/admin/views/main.py:354
+msgid "You may edit it again below."
+msgstr "Alább ismét szerkesztheti."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Felhasználó hozzáadása"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Sikeres jelszóváltoztatás."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Jelszó megváltoztatása: %s"
+
+#: contrib/admin/views/main.py:230
+msgid "Site administration"
+msgstr "Honlap karbantartás"
+
+#: contrib/admin/views/main.py:278 contrib/admin/views/main.py:363
+#, python-format
+msgid "You may add another %s below."
+msgstr "Alább hozzáadhat egy másikat ebből: %s."
+
+#: contrib/admin/views/main.py:296
+#, python-format
+msgid "Add %s"
+msgstr "Új %s"
+
+#: contrib/admin/views/main.py:342
+#, python-format
+msgid "Added %s."
+msgstr "%s létrehozva."
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Changed %s."
+msgstr "%s módosítva."
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Deleted %s."
+msgstr "%s törölve."
+
+#: contrib/admin/views/main.py:349
+msgid "No fields changed."
+msgstr "Egy mező sem változott."
+
+#: contrib/admin/views/main.py:352
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "\"%(obj)s\" %(name)s sikeresen módosítva."
+
+#: contrib/admin/views/main.py:360
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "\"%(obj)s\" %(name)s sikeresen létrehozva. Alább ismét szerkesztheted."
+
+#: contrib/admin/views/main.py:398
+#, python-format
+msgid "Change %s"
+msgstr "%s módosítása"
+
+# TODO
+#: contrib/admin/views/main.py:483
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Egy vagy több %(fieldname)s a(z) %(name)s -ban: %(obj)s"
+
+# TODO
+#: contrib/admin/views/main.py:488
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Egy vagy több %(fieldname)s a(z) %(name)s:"
+
+#: contrib/admin/views/main.py:520
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "\"%(obj)s\" %(name)s sikeresen törölve."
+
+#: contrib/admin/views/main.py:523
+msgid "Are you sure?"
+msgstr "Biztos benne?"
+
+#: contrib/admin/views/main.py:545
+#, python-format
+msgid "Change history: %s"
+msgstr "Változások története: %s"
+
+#: contrib/admin/views/main.py:579
+#, python-format
+msgid "Select %s"
+msgstr "Kiválasztás %s"
+
+#: contrib/admin/views/main.py:579
+#, python-format
+msgid "Select %s to change"
+msgstr "Válasszon ki egyet a módosításhoz (%s)"
+
+#: contrib/admin/views/main.py:780
+msgid "Database error"
+msgstr "Adatbázis hiba"
+
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Írjon be egy helyes felhasználónevet és jelszót. Mindkét mező kisbetű-"
+"nagybetű érzékeny."
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Bejelentkezés"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Jelentkezzen be újra, mert a munkamenete végetért. Ne aggódjon, minden "
+"beküldött adata el van mentve."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Úgy tűnik a böngészőjében nincs engedélyezve a cookie-k fogadása. Kérem "
+"engedélyezze és töltse újra az oldalt!"
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "A felhasználónév nem tartalmazhat '@' karaktert."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Az email címe nem a felhasználóneve. Próbálja inkább ezt: %s."
+
+#: contrib/admin/views/doc.py:47 contrib/admin/views/doc.py:49
+#: contrib/admin/views/doc.py:51
+msgid "tag:"
+msgstr "címke:"
+
+#: contrib/admin/views/doc.py:78 contrib/admin/views/doc.py:80
+#: contrib/admin/views/doc.py:82
+msgid "filter:"
+msgstr "szűrő:"
+
+#: contrib/admin/views/doc.py:136 contrib/admin/views/doc.py:138
+#: contrib/admin/views/doc.py:140
+msgid "view:"
+msgstr "nézet:"
+
+#: contrib/admin/views/doc.py:165
+#, python-format
+msgid "App %r not found"
+msgstr "%r alkalmazás nem található"
+
+#: contrib/admin/views/doc.py:172
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "%(name)r modell nem található a következő alkalmazásban: %(label)r"
+
+#: contrib/admin/views/doc.py:184
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "a kapcsolódó '%(label)s.%(type)s' objektum"
+
+#: contrib/admin/views/doc.py:184 contrib/admin/views/doc.py:206
+#: contrib/admin/views/doc.py:220 contrib/admin/views/doc.py:225
+msgid "model:"
+msgstr "modell:"
+
+#: contrib/admin/views/doc.py:215
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "kapcsolódó '%(label)s.%(name)sí' objektumok"
+
+#: contrib/admin/views/doc.py:220
+#, python-format
+msgid "all %s"
+msgstr "minden %s"
+
+#: contrib/admin/views/doc.py:225
+#, python-format
+msgid "number of %s"
+msgstr "%s mennyisége"
+
+#: contrib/admin/views/doc.py:230
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Mezők %s objektumokban"
+
+#: contrib/admin/views/doc.py:292 contrib/admin/views/doc.py:303
+#: contrib/admin/views/doc.py:305 contrib/admin/views/doc.py:311
+#: contrib/admin/views/doc.py:312 contrib/admin/views/doc.py:314
+msgid "Integer"
+msgstr "Egész"
+
+#: contrib/admin/views/doc.py:293
+msgid "Boolean (Either True or False)"
+msgstr "Logikai (True vagy False)"
+
+#: contrib/admin/views/doc.py:294 contrib/admin/views/doc.py:313
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Karakterlánc (%(max_length)s hosszig)"
+
+#: contrib/admin/views/doc.py:295
+msgid "Comma-separated integers"
+msgstr "Vesszővel elválasztott egészek"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (without time)"
+msgstr "Dátum (idő nélkül)"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (with time)"
+msgstr "Dátum (idővel)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Decimal number"
+msgstr "Tizes számrendszerű (decimális) szám"
+
+#: contrib/admin/views/doc.py:299
+msgid "E-mail address"
+msgstr "E-mail cím"
+
+#: contrib/admin/views/doc.py:300 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:304
+msgid "File path"
+msgstr "Elérési út"
+
+#: contrib/admin/views/doc.py:302
+msgid "Floating point number"
+msgstr "Lebegőpontos szám"
+
+#: contrib/admin/views/doc.py:308
+msgid "Boolean (Either True, False or None)"
+msgstr "Logikai (True, False vagy None)"
+
+#: contrib/admin/views/doc.py:309
+msgid "Relation to parent model"
+msgstr "Szülőkapcsolat"
+
+#: contrib/admin/views/doc.py:310
+msgid "Phone number"
+msgstr "Telefonszám"
+
+#: contrib/admin/views/doc.py:315
+msgid "Text"
+msgstr "Szöveg"
+
+#: contrib/admin/views/doc.py:316
+msgid "Time"
+msgstr "Idő"
+
+#: contrib/admin/views/doc.py:317 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:318
+msgid "U.S. state (two uppercase letters)"
+msgstr "USA állam (két nagybetű)"
+
+#: contrib/admin/views/doc.py:319
+msgid "XML text"
+msgstr "XML szöveg"
+
+#: contrib/admin/views/doc.py:345
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s nem tűnik egy urlpattern objektumnak."
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Éppen:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Változás:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Dátum:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Idő:"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentáció"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Change password"
+msgstr "Jelszó megváltoztatása"
+
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Kezdőlap"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Új %(name)s"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " %(filter_title)s szerint "
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "Történet"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Dátum/idő"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Felhasználó"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Művelet"
+
+# TODO
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Az objektumnak nincs változási története. Valószínűleg nem ezen a "
+"karbantartó oldalon lett rögzítve."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Mehet"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "Egy találat."
+msgstr[1] "%(counter)s találat."
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s összesen"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mutassa mindet"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django honlap adminisztráció"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django adminisztráció"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Szerverhiba"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Szerverhiba (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Szerverhiba <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Hiba történt, melyet e-mailben jelentettünk az oldal karbantartójának. A "
+"rendszer remélhetően hamar megjavul. Köszönjük a türelmét."
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Valami nem stimmel a telepített adatbázissal. Bizonyosodjon meg arról, hogy "
+"a megfelelő táblák létre lettek-e hozva, és hogy a megfelelő felhasználó "
+"tudja-e őket olvasni."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "%(name)s alkalmazásban elérhető modellek."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Új"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Módosítás"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Nincs joga szerkeszteni."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Utolsó műveletek"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Az én műveleteim"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nincs elérhető"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Nincs ilyen oldal"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Sajnáljuk, de a kért oldal nem található."
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Szűrő"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Megtekintés a honlapon"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Kérem javítsa az alábbi hibát."
+msgstr[1] "Kérlem javítsa az alábbi hibákat."
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Rendezés"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Rendezés:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Törlés"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"'%(escaped_object)s' %(object_name)s törlése a kapcsolódó objektumok "
+"törlését is eredményezi, de a hozzáférése nem engedi a következő típusú "
+"objektumok törlését:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Biztos hogy törli a következőt: \"%(escaped_object)s\" (típus: %(object_name)"
+"s)? A összes további kapcsolódó elem is törlődik:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Igen, biztos vagyok benne"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Üdvözlöm,"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Mentés újként"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Mentés és másik hozzáadása"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Mentés és a szerkesztés folytatása"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Mentés"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Adjon meg egy új jelszót a <strong>%(username)s</strong> nevű felhasználónak."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "Jelszó"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "Jelszó újra"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "Írja be a fenti jelszót ellenőrzés céljából."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Először adjon meg egy felhasználói nevet és egy jelszót. Ezek után további "
+"módosításokat is végezhet a felhasználó adatain."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Felhasználó"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Jelszó megváltoztatása"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Sikeres jelszóváltoztatás"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Megváltozott a jelszava."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Jelszó törlése"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Elfelejtette a jelszavát? Írja be az e-mail címét, mi töröljük a jelszavát "
+"és az újat e-mailben elküldjük."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mail cím:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Jelszavam törlése"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Köszönjük hogy egy kis időt eltöltött ma a honlapunkon."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Jelentkezzen be újra"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Sikeres jelszótörlés"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Új jelszavát elküldtük e-mailben a megadott címre. Hamarosan meg kell "
+"érkeznie."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Írja be a régi jelszavát biztonsági okokból, majd az újat kétszer, hogy "
+"biztosan ne gépelje el."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Régi jelszó:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Új jelszó:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Jelszó megerősítése:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Jelszavam megváltoztatása"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Ezt az e-mail-t azért kapta, mert jelszótörlést kért"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "hozzáféréséhez a következő honlapon: %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Új jelszava: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Bármikor megváltoztathatja a jelszavát a következő oldalon:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Felhasználóneve, ha elfelejtette volna:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Köszönjük, hogy használta honlapunkat!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s csapat"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Könyvjelzők"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Dokumentum könyvjelzők"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">A könyvjelzők felvételéhez húzza a könyvjelzők linkjét az "
+"eszköztárra, vagy kattintson rájuk jobb egérgombbal és úgy adja hozzá. "
+"Ezután \n"
+"már ki tudja választani a könyvjelzőt a honlap bármely oldaláról. A "
+"könyvjelzők között néhány oldal csak \"belső\" gépekről nézhető meg.\n"
+"(Kérdezze meg rendszergazdáját, hogy az Ön gépe \"belső\" gép-e.).</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Az oldal dokumentációja"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Bármely oldalról annak a nézetnek a dokumentációjára ugrik, amely a kérdéses "
+"oldalt generálta."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Az objektum ID mutatása"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Az objektum által reprezentált oldalak 'content-type' és 'unique ID' "
+"értékeit mutatja."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Objektum szerkesztése (aktuális ablakban)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Az objektumhoz tartozó oldalak adminisztrációjához ugrik."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Objektum szerkesztése (új ablakban)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Mint fentebb, de az adminisztrációs oldalt új ablakban nyitja meg."
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "python modell osztály neve"
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "tartalom típusa"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "tartalom típusok"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Kijelentkezve"
+
+#: contrib/auth/models.py:53 contrib/auth/models.py:73
+msgid "name"
+msgstr "név"
+
+#: contrib/auth/models.py:55
+msgid "codename"
+msgstr "kódnév"
+
+#: contrib/auth/models.py:58
+msgid "permission"
+msgstr "jogosultság"
+
+#: contrib/auth/models.py:59 contrib/auth/models.py:74
+msgid "permissions"
+msgstr "jogosultságok"
+
+#: contrib/auth/models.py:77
+msgid "group"
+msgstr "csoport"
+
+#: contrib/auth/models.py:78 contrib/auth/models.py:121
+msgid "groups"
+msgstr "csoportok"
+
+#: contrib/auth/models.py:111
+msgid "username"
+msgstr "felhasználónév"
+
+#: contrib/auth/models.py:111
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Kötelező. Legfeljebb 30 karakter. Csak alfanumerikus karaktereket "
+"tartalmazhat (betűk, számok és aláhúzás)."
+
+#: contrib/auth/models.py:112
+msgid "first name"
+msgstr "keresztnév"
+
+#: contrib/auth/models.py:113
+msgid "last name"
+msgstr "vezetéknév"
+
+#: contrib/auth/models.py:114
+msgid "e-mail address"
+msgstr "e-mail cím"
+
+#: contrib/auth/models.py:115
+msgid "password"
+msgstr "jelszó"
+
+#: contrib/auth/models.py:115
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Használja az \"[algo]$[salt]$[hexdigest]\" formátumot, vagy a <a href="
+"\"password/\">jelszó megváltoztatása űrlapot</a>."
+
+#: contrib/auth/models.py:116
+msgid "staff status"
+msgstr "személyzet státusz"
+
+#: contrib/auth/models.py:116
+msgid "Designates whether the user can log into this admin site."
+msgstr "Megadja, hogy a felhasználó bejelentkezhet-e erre az adminisztrációs oldalra."
+
+#: contrib/auth/models.py:117
+msgid "active"
+msgstr "aktív"
+
+#: contrib/auth/models.py:117
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Megadja, hogy a felhasználó bejelentkezhet-e erre az adminisztrációs "
+"oldalra. Állítsa át ezt az értéket a fiókok törlése helyett."
+
+#: contrib/auth/models.py:118
+msgid "superuser status"
+msgstr "rendszergazda státusz"
+
+#: contrib/auth/models.py:118
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Megadja, hogy ez a felhasználó rendelkezik-e minden jogosultsággal anélkül, "
+"hogy azt külön meg kellene adni."
+
+#: contrib/auth/models.py:119
+msgid "last login"
+msgstr "utolsó bejelentkezés"
+
+#: contrib/auth/models.py:120
+msgid "date joined"
+msgstr "csatlakozás dátuma"
+
+#: contrib/auth/models.py:122
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"A kézzel beállított jogosultságok mellett a felhasználó a csoportjának "
+"jogait is megkapja."
+
+#: contrib/auth/models.py:123
+msgid "user permissions"
+msgstr "felhasználói jogosultságok"
+
+#: contrib/auth/models.py:127
+msgid "user"
+msgstr "felhasználó"
+
+#: contrib/auth/models.py:128
+msgid "users"
+msgstr "felhasználók"
+
+#: contrib/auth/models.py:134
+msgid "Personal info"
+msgstr "személyes információ"
+
+#: contrib/auth/models.py:135
+msgid "Permissions"
+msgstr "jogosultságok"
+
+#: contrib/auth/models.py:136
+msgid "Important dates"
+msgstr "Fontos dátumok"
+
+#: contrib/auth/models.py:137
+msgid "Groups"
+msgstr "Csoportok"
+
+#: contrib/auth/models.py:288
+msgid "message"
+msgstr "üzenet"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "A két jelszó mező tartalma nem egyezik meg."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Létezik már egy felhasználó ezzel a névvel."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"A böngészője úgy tűnik nem támogatja a cookie-kat. A cookie-k engedélyezése "
+"szükséges a bejelentkezéshez."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Ez a fiók inaktív."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Ehhez az e-mail címhez nem tartozik felhasználói fiók. Biztos benne, hogy "
+"regisztrált?"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "A két \"új jelszó\" mezó tartalma nem egyezik meg."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "A régi jelszó hibásan lett megadva. Írja be újra."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr ""
+"Írjon be egy irányítószámot. Az irányítószám két része között szóköznek kell "
+"állnia."
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Írjon be egy irányítószámot 'XXXXX-XXX' alakban."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "A telefonszámoknak 'XXX-XXX-XXXX' formátumúnak kell lenniük."
+
+#: contrib/localflavor/br/forms.py:72
+msgid "This field requires only numbers."
+msgstr "Ez a mező csak számokat tartalmazhat."
+
+#: contrib/localflavor/br/forms.py:74
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Ez a mező legfeljebb 11 számjegyet vagy 14 karaktert tartalmazhat."
+
+#: contrib/localflavor/br/forms.py:84
+msgid "Invalid CPF number."
+msgstr "Érvénytelen CPF szám."
+
+#: contrib/localflavor/br/forms.py:106
+msgid "This field requires at least 14 digits"
+msgstr "Ennek a mezőnek legalább 14 számjegyet kell tartalmaznia."
+
+#: contrib/localflavor/br/forms.py:116
+msgid "Invalid CNPJ number."
+msgstr "Érvénytelen CNPJ szám."
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "Írjon be egy négyjegyű irányítószámot."
+
+#: contrib/localflavor/fr/forms.py:17 contrib/localflavor/de/forms.py:16
+#: contrib/localflavor/fi/forms.py:14
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Írjon be egy irányítószámot 'XXXXX' alakban."
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Írjon be egy irányítószámot 'XXXXX', vagy 'XXXXX-XXXX' alakban."
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Írjon be egy érvényes USA SSN-t 'XXX-XX-XXXX' formátumban."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Württemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bajorország"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bréma"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Nyugat-Pomeránia"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Alsó-Szászország"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Észak-Rajna-Vesztfália"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhineland-Palatinate"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Szárföld"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Szászország"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Szász-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Türingia"
+
+#: contrib/localflavor/de/forms.py:60
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Írjon be egy érvényes német személyazonosító számot \"XXXXXXXXXXX-XXXXXXX-"
+"XXXXXXX-X\" alakban."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tókió"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kiotó"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Oszaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagaszaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Írjon be egy irányítószámot \"XXXXXXX\" vagy \"XXX-XXXX\" alakban."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Bázel-város"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Bázel-vidék"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Genf"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zürich"
+
+#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14
+msgid "Enter a zip code in the format XXXX."
+msgstr "Írjon be egy irányítószámot 'XXXX' alakban."
+
+#: contrib/localflavor/ch/forms.py:90
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Írjon be egy érvényes svájci személyazonosító vagy útlevél számot "
+"\"X1234567<0\" vagy \"1234567890\" alakban."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"Írjon be egy érvényes izlandi személyazonosító számot \"XXXXXX-XXXX\" "
+"alakban."
+
+#: contrib/localflavor/is_/forms.py:31
+msgid "The Icelandic identification number is not valid."
+msgstr "Az izlandi személyazonosító szám érvénytelen."
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Adjon meg egy érvényes irányítószámot."
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "Adjon meg egy érvényes társadalombiztosítási számot."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Adjon meg egy érvényes ÁFA számot."
+
+#: contrib/localflavor/no/forms.py:35
+msgid "Enter a valid Norwegian social security number."
+msgstr "Írjon be egy érvényes norvég társadalombiztosítási számot."
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Besztercebánya régió"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Pozsony régió"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Kassa régió"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Nyitra régió"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Presov régió"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Trencsén régió"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Trnava régió"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Zsolna régió"
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Besztercebánya"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Pozsony I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Pozsony II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Pozsony III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Pozsony IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Pozsony V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunaszerdahely"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galánta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Késmárk"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komárom"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kassa I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kassa II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kassa III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kassa IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nyitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprád"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimaszombat"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Rozsnyó"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Rózsahegy"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Igló"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sellye"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencsén"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zsolna"
+
+#: contrib/localflavor/sk/forms.py:32
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Írjon be egy irányítószámot \"XXXXX\" vagy \"XXX XX\" alakban."
+
+#: contrib/localflavor/cl/forms.py:32
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Írjon be egy érvényes chilei RUT-ot \"XX.XXX.XXX-X\" alakban."
+
+#: contrib/localflavor/cl/forms.py:37
+msgid "Enter valid a Chilean RUT"
+msgstr "Írjon be egy érvényes chilei RUT-ot"
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr "Adjon meg egy érvényes finn társadalombiztosítási számot."
+
+#: contrib/localflavor/in_/forms.py:16
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Írjon be egy irányítószámot \"XXXXXXX\" alakban."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Alsó-Szilézia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Kis-Lengyelország"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Szubkárpátok"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomeránia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Szilézia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Nagy-Lengyelország"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Nyugat-Pomeránia"
+
+#: contrib/localflavor/pl/forms.py:53
+msgid "National Identification Number consists of 11 digits."
+msgstr "A nemzeti azonosítószám 11 számjegyből áll."
+
+#: contrib/localflavor/pl/forms.py:59
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Hibás a nemzeti azonosítószám ellenőrző kódja."
+
+#: contrib/localflavor/pl/forms.py:71
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Írjon be egy adószámot \"XXX-XXX-XX-XX\" vagy \"XX-XX-XXX-XXX\" alakban."
+
+#: contrib/localflavor/pl/forms.py:82
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Írjon be egy irányítószámot 'XX-XXX' alakban."
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "munkamenet kulcs"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "munkamenet adat"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "lejárat dátuma"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "munkamenet"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "munkamenetek"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Például: '/about/contact/'. Figyeljen a nyitó és záró perjelre!"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "cím"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "tartalom"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "megjegyzések engedélyezése"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "sablon neve"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Példa: 'flatpages/contact_page'. Ha ez nem létezik, a rendszer a 'flatpages/"
+"default.html' sablont fogja használni."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "regisztráció szükséges"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Ha ez be van jelölve, csak bejelentkezett felhasználó tudja az oldalt "
+"megnézni."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "egyszerű oldal"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "egyszerű oldalak"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "hétfő"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "kedd"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "szerda"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "csütörtök"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "péntek"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "szombat"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "vasárnap"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "hét"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "kedd"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "sze"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "csüt"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "pén"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "szo"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "vas"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "január"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "február"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "március"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "április"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "május"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "június"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "július"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "augusztus"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "szeptember"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "október"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "november"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "december"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "febr"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "márc"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "ápr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "máj"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jún"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "júl"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "aug"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "szept"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dec"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "febr."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "aug."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "szept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "dec."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "év"
+msgstr[1] "év"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "hónap"
+msgstr[1] "hónap"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "hét"
+msgstr[1] "hét"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "nap"
+msgstr[1] "nap"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "óra"
+msgstr[1] "óra"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "perc"
+msgstr[1] "perc"
+
+#: utils/timesince.py:39
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:45
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/text.py:127
+msgid "or"
+msgstr "vagy"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "du"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "de"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "DU"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "DE"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "éjfél"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "dél"
+
+#: utils/translation/trans_real.py:391
+msgid "DATE_FORMAT"
+msgstr "Y. F j."
+
+#: utils/translation/trans_real.py:392
+msgid "DATETIME_FORMAT"
+msgstr "Y. F j., H:i"
+
+#: utils/translation/trans_real.py:393
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:409
+msgid "YEAR_MONTH_FORMAT"
+msgstr "Y. F j."
+
+#: utils/translation/trans_real.py:410
+msgid "MONTH_DAY_FORMAT"
+msgstr "Y. F j."
+
+#: template/defaultfilters.py:485
+msgid "yes,no,maybe"
+msgstr "igen,nem,talán"
+
+#: template/defaultfilters.py:514
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bájt"
+msgstr[1] "%(size)d bájt"
+
+#: template/defaultfilters.py:516
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:518
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:519
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
diff --git a/webapp/django/conf/locale/hu/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/hu/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..e538984
--- /dev/null
+++ b/webapp/django/conf/locale/hu/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/hu/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/hu/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..26f0232
--- /dev/null
+++ b/webapp/django/conf/locale/hu/LC_MESSAGES/djangojs.po
@@ -0,0 +1,111 @@
+# translation of djangojs.po to Hungarian
+# translation of djangojs.po to
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: 2007-09-13 13:30+0200\n"
+"Last-Translator: Szilveszter Farkas <szilveszter.farkas@gmail.com>\n"
+"Language-Team: Hungarian <hu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Elérhető %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Mindet kijelölni"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Hozzáadás"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Eltávolítás"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s kiválasztva"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Válassza ki a kért elemeket és kattintson"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Összes törlése"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "január február március április május június július augusztus szeptember október november december"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "vasárnap hétfő kedd szerda csütörtök péntek szombat"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "V H K Sz Cs P Szo"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Most"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Óra"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Válassza ki az időt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Éjfél"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "Reggel 6 óra"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "Dél"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "Mégsem"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Ma"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Naptár"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Tegnap"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Holnap"
+
diff --git a/webapp/django/conf/locale/is/LC_MESSAGES/django.mo b/webapp/django/conf/locale/is/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..1a95aad
--- /dev/null
+++ b/webapp/django/conf/locale/is/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/is/LC_MESSAGES/django.po b/webapp/django/conf/locale/is/LC_MESSAGES/django.po
new file mode 100644
index 0000000..82cfa67
--- /dev/null
+++ b/webapp/django/conf/locale/is/LC_MESSAGES/django.po
@@ -0,0 +1,4266 @@
+# Icelandic translation of Django.
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-01-18 15:00+0000\n"
+"PO-Revision-Date: 2008-01-18 17:16+0100\n"
+"Last-Translator: Jökull Sólberg Auðunsson <jokullsolberg@gmail.com>\n"
+"Language-Team:  <dagurp@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arabíska"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengalska"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "Búlgarska"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr ""
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "Tékkneska"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "Velska"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "Danska"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "Þýska"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "Gríska"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "Enska"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "Spænska"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "Argentínsk Spænska"
+
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr ""
+
+#: conf/global_settings.py:52
+msgid "Finnish"
+msgstr "Finnska"
+
+#: conf/global_settings.py:53
+msgid "French"
+msgstr "Franska"
+
+#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr ""
+
+#: conf/global_settings.py:55
+msgid "Galician"
+msgstr "Galíska"
+
+#: conf/global_settings.py:56
+msgid "Hungarian"
+msgstr "Ungverska"
+
+#: conf/global_settings.py:57
+msgid "Hebrew"
+msgstr "Hebreska"
+
+#: conf/global_settings.py:58
+msgid "Croatian"
+msgstr ""
+
+#: conf/global_settings.py:59
+msgid "Icelandic"
+msgstr "Íslenska"
+
+#: conf/global_settings.py:60
+msgid "Italian"
+msgstr "Ítalska"
+
+#: conf/global_settings.py:61
+msgid "Japanese"
+msgstr "Japanska"
+
+#: conf/global_settings.py:62
+msgid "Korean"
+msgstr ""
+
+#: conf/global_settings.py:63
+msgid "Khmer"
+msgstr ""
+
+#: conf/global_settings.py:64
+msgid "Kannada"
+msgstr ""
+
+#: conf/global_settings.py:65
+msgid "Latvian"
+msgstr ""
+
+#: conf/global_settings.py:66
+msgid "Macedonian"
+msgstr ""
+
+#: conf/global_settings.py:67
+msgid "Dutch"
+msgstr "Hollenska"
+
+#: conf/global_settings.py:68
+msgid "Norwegian"
+msgstr "Norska"
+
+#: conf/global_settings.py:69
+msgid "Polish"
+msgstr ""
+
+#: conf/global_settings.py:70
+msgid "Portugese"
+msgstr "Portúgalska"
+
+#: conf/global_settings.py:71
+msgid "Brazilian"
+msgstr "Brasilíska"
+
+#: conf/global_settings.py:72
+msgid "Romanian"
+msgstr "Rúmenska"
+
+#: conf/global_settings.py:73
+msgid "Russian"
+msgstr "Rússneska"
+
+#: conf/global_settings.py:74
+msgid "Slovak"
+msgstr "Slóvaska"
+
+#: conf/global_settings.py:75
+msgid "Slovenian"
+msgstr ""
+
+#: conf/global_settings.py:76
+msgid "Serbian"
+msgstr "Serbneska"
+
+#: conf/global_settings.py:77
+msgid "Swedish"
+msgstr "Sænska"
+
+#: conf/global_settings.py:78
+msgid "Tamil"
+msgstr ""
+
+#: conf/global_settings.py:79
+msgid "Telugu"
+msgstr ""
+
+#: conf/global_settings.py:80
+msgid "Turkish"
+msgstr ""
+
+#: conf/global_settings.py:81
+msgid "Ukrainian"
+msgstr ""
+
+#: conf/global_settings.py:82
+msgid "Simplified Chinese"
+msgstr "Einfölduð Kínverska "
+
+#: conf/global_settings.py:83
+msgid "Traditional Chinese"
+msgstr "Hefðbundin Kínverska"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Frá %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74
+#: contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147
+#: contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Allt"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Allar dagsetningar"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Dagurinn í dag"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Síðustu 7 dagar"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Þessi mánuður"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Þetta ár"
+
+#: contrib/admin/filterspecs.py:147
+#: newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Já"
+
+#: contrib/admin/filterspecs.py:147
+#: newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Nei"
+
+#: contrib/admin/filterspecs.py:154
+#: newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Óþekkt"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "tími aðgerðar"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "kenni hlutar"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "framsetning hlutar"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "aðgerðarveifa"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "breyta skilaboði"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "kladdafærsla"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "kladdafærslur"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Síða fannst ekki"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Því miður fannst umbeðin síða ekki."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Heim"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Kerfisvilla"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Kerfisvilla (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Kerfisvilla <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Villa hefur komið upp. Hún hefur verið tilkynnt vefstjórunum með tölvupósti og verður örugglega löguð fljótlega. Við þökkum þolinmæðina."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Velkomin(n),"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Skjölun"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Breyta lykilorði"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Skrá út"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django vefstjóri"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django vefstjórn"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Bæta við"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Saga"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Skoða á vef"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Vinsamlegast leiðréttu villuna hér að neðan:"
+msgstr[1] "Vinsamlegast leiðréttu villurnar hér að neðan:"
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Röðun"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Röð:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Bæta við %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Eyða"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Eyðing á %(object_name)s „%(escaped_object)s“ hefði í för með sér eyðingu á tengdum hlutum en þú hefur ekki réttindi til að eyða eftirfarandi hlutum:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Ertu viss um að þú viljir eyða %(object_name)s „%(escaped_object)s“? Öllu eftirfarandi verður eytt:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Já ég er viss."
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Eftir %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Sía"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Líkön sem eru hluti af %(name)s forritinu."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Breyta"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Þú hefur ekki réttindi til að breyta neinu"
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Nýlegar aðgerðir"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Mínar aðgerðir"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Engin fáanleg"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Eitthvað er að gagnagrunnsuppsetningu. Gakktu úr skuggum um að allar töflur séu til staðar og að notandinn hafi aðgang að grunninum."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Notandanafn:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Lykilorð:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:25
+msgid "Log in"
+msgstr "Skrá inn"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Dagsetning/tími"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Notandi"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Aðgerð"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Þessi hlutur hefur enga breytingasögu. Hann var líklega ekki búinn til á þessu stjórnunarsvæði."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Sýna allt"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Áfram"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 niðustaða"
+msgstr[1] "%(counter)s niðurstöður"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s í heildina"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Vista sem nýtt"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Vista og búa til nýtt"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Vista og halda áfram að breyta"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Vista"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Fyrst, settu inn notendanafn og lykilorð. Svo geturðu breytt öðrum notendamöguleikum."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Notandanafn"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Lykilorð"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Lykilorð (aftur)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "Settu inn sama lykilorðið aftur til staðfestingar."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Settu inn nýtt lykilorð fyrir notandann <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bókamerklar"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Skjölunarbókamerklar"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Til að setja upp bókamerkil (Bookmarklet) þarftu að draga tengilinn\n"
+"í bókamerkjareinina þína eða hægrismella á tengilinn og bæta honum við bókamerkin þín\n"
+"Nú getur þú notað bókamerkilinn frá hvaða síðu sem er innan vefjarins. Athugaðu að sumir\n"
+"þessara bókamerkla krefjast þess að þú sért að skoða vefinn frá tölvu sem er\n"
+"skráð sem \"internal\" (hafðu samband við kerfisstjórann ef þú ert óviss hvort tölvan þín er \"internal\").</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Skjölun þessarar síðu"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Sendir þig af hvaða síðu sem er á skjölun þess framsetningarlags sem myndar hana."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Sýna kenni hlutar"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Sýnir efnistag og sérkenni síða sem gefa tiltekna mynd af stökum hlut."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Breyta þessum hlut (í þessum glugga)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Stekkur á stjórnunarsíðuna fyrir þær síður sem gefa tiltekna mynd af stökum hlut."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Breyta þessum hlut (nýr gluggi)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Eins og að ofan en opnar stjórnunarsíðuna í nýjum glugga."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Takk fyrir að verja tíma í vefsíðuna í dag."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Skráðu þig inn aftur"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Breyta lykilorði"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Breyting á lykilorði tókst"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Lykilorði þínu var breytt"
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Vinsamlegast skrifaðu gamla lykilorðið þitt til öryggis. Sláðu svo nýja lykilorðið tvisvar inn svo að hægt sé að ganga úr skugga um að þú hafir ekki gert innsláttarvillu."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Gamla lykilorðið:"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Nýja lykilorðið:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Staðfesta lykilorð:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Breyta lykilorðinu mínu"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Endurstilla lykilorð"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Endurstilling á lykilorði tókst"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Við sendum nýtt lykilorð á tölvupóstfangið sem þú gafst upp. Það ætti að berast fljótlega til þín."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Þú fékkst þennan tölvupóst vegna þess að þú baðst um endurstillingu á lykilorðinu þínu"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "fyrir notandareikning þinn á %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Nýja lykilorðið þitt er: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Þér er frjálst að breyta lykilorðinu með því að fara á þessa síðu:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Notandanafnið þitt ef þú skyldir hafa gleymt því:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Takk fyrir að nota vefinn okkar!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s hópurinn"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Gleymdir þú lykilorðinu þínu? Sláðu tölvupóstfangið þitt inn að neðan og við munum endurstilla lykilorðið þitt og senda til þín."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Tölvupóstfang:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Endursstilla lykilorðið mitt"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Dagsetning:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Tími:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Eins og er:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Breyta:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Allar dagsetningar"
+
+#: contrib/admin/views/auth.py:20
+#: contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s „%(obj)s“ var bætt við."
+
+#: contrib/admin/views/auth.py:25
+#: contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Þú getur breytt því aftur að neðan."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Bæta við notanda"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Breyting á lykilorði tókst."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Breyta lykilorði: %s"
+
+#: contrib/admin/views/decorators.py:11
+#: contrib/auth/forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Vinsamlegast sláðu inn rétt notandanafn og lykilorð. Athugaðu að báðir reitirnir þurfa að vera stafréttir."
+
+#: contrib/admin/views/decorators.py:63
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Vinsamlegast skráðu þig inn aftur vegna þess að setan þín rann út. Engar áhyggjur, breytingin þín var vistuð."
+
+#: contrib/admin/views/decorators.py:70
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Vafri þinn virðist ekki vera stilltur til að leyfa dúsur (cookies). Vinsamlegast gerðu dúsur virkar, endurhladdu þessa síðu og reyndu aftur."
+
+#: contrib/admin/views/decorators.py:84
+msgid "Usernames cannot contain the '@' character."
+msgstr "Notendanöfn geta ekki innihaldið '@' merkið."
+
+#: contrib/admin/views/decorators.py:86
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Tölvupóstfangið þitt er ekki notandanafnið þitt. Prófaðu '%s' í staðinn."
+
+#: contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "merki:"
+
+#: contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "sía:"
+
+#: contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "skoða:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "Forrit %r fannst ekki"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Líkanið %(name)r finnst ekki í forritinu %(label)r"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "tengdur `%(label)s.%(type)s` hluturinn"
+
+#: contrib/admin/views/doc.py:185
+#: contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221
+#: contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "líkan:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "tengdir `%(label)s.%(name)s` hlutir"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "allt %s"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "fjöldi af %s"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Svæði í %s hlutnum"
+
+#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306
+#: contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313
+#: contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Heiltala"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Boole-gildi (True eða False)"
+
+#: contrib/admin/views/doc.py:295
+#: contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Strengur (mest %(max_length)s)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Kommuaðgreindar heiltölur"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Dagsetning (án tíma)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Dagsetning (með tíma)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Tugatala"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "Tölvupóstfang"
+
+#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Skjalaslóð"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Hlaupakommutala (floating point number)"
+
+#: contrib/admin/views/doc.py:307
+#: contrib/comments/models.py:85
+msgid "IP address"
+msgstr "IP tala"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Boole-gildi (True, False eða None)"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Tengsl við yfirlíkan"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Símanúmer"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Texti"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Tími"
+
+#: contrib/admin/views/doc.py:318
+#: contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "Veffang"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "Bandarískt fylki (tveir hástafir)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "XML texti"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s virðist ekki vera urlpattern hlutur"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Vefstjórn"
+
+#: contrib/admin/views/main.py:280
+#: contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Þú getur bætt öðru %s við að neðan."
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "Bæta við %s"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "Bætti við %s."
+
+#: contrib/admin/views/main.py:344
+#: contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348
+#: core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "og"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "Breytti %s."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "Eyddi %s."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Engum reitum breytt."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s „%(obj)s“ hefur verið breytt."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s „%(obj)s“ hefur verið bætt við. Þú getur breytt því aftur að neðan."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "Breyta %s"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Eitt eða fleiri %(fieldname)s í %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Eitt eða fleiri %(fieldname)s í %(name)s:"
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s „%(obj)s“ var eytt."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Ertu viss?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Breytingarsaga: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "Veldu %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "Veldu %s til að breyta"
+
+#: contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr "Gagnagrunnsvilla"
+
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Lykilorðin tvö pössuðu ekki saman."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Notandi með þetta notendanafn er nú þegar til."
+
+#: contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Vafri þinn virðist ekki vera stilltur til að leyfa dúsur (cookies). Dúsur eru nauðsynlegar fyrir innskráningu."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Þessi reikningur er óvirku."
+
+#: contrib/auth/forms.py:84
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Þetta netfang hefur engan tengdan notandareikning. Ertu viss um að þú hafi skráð þig?"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Lykilorð endurstillt á %s"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "'Nýtt lykilorð' svæðin passa ekki saman."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Gamla lykilorðið var vitlaust. Vinsamlegast reyndu aftur."
+
+#: contrib/auth/models.py:73
+#: contrib/auth/models.py:93
+msgid "name"
+msgstr "nafn"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "vinnuheiti"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "réttindi"
+
+#: contrib/auth/models.py:79
+#: contrib/auth/models.py:94
+msgid "permissions"
+msgstr "réttindi"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "hópur"
+
+#: contrib/auth/models.py:98
+#: contrib/auth/models.py:141
+msgid "groups"
+msgstr "hópar"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "notandanafn"
+
+#: contrib/auth/models.py:131
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Krafist. 30 stafir eða færri. Aðeins enskir ritstafastafir (enskir ritstafir, tölur og undirstrik)."
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "skírnarnafn"
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "eftirnafn"
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "tölvupóstfang"
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "lykilorð"
+
+#: contrib/auth/models.py:135
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "Notaðu '[algo]$[salt]$[hexdigest]' eða <a href=\"password/\">'breyta lykilorði' formið</a>."
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "staða starfsmanns"
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Segir til um hvort notandinn getur skráð sig inn á þetta stjórnunarsvæði."
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "virkur"
+
+#: contrib/auth/models.py:137
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "Segir til um hvort notandinn geti skráð sig inn á þetta stjórnunarsvæði. Slökktu á þessum möguleika í stað þess að eyða notandanum."
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "staða ofurnotanda"
+
+#: contrib/auth/models.py:138
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Til marks um að notandinn hafi öll réttindi án þess að taka þau sérstaklega fram."
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "síðasta innskráning"
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "skráning dags."
+
+#: contrib/auth/models.py:142
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Auk réttindanna sem notandanum var gefið sérstaklega fær hann öll þau réttindi sem hópurinn hans hefur."
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "réttindi"
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "notandi"
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "notendur"
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Persónuupplýsingar"
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Réttindi"
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Mikilvægar dagsetningar"
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Hópar"
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "skilaboð"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Útskráður"
+
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:169
+msgid "object ID"
+msgstr "kenni hlutar"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "fyrirsögn"
+
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
+#: contrib/comments/models.py:170
+msgid "comment"
+msgstr "athugasemd"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "einkunn #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "einkunn #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "einkunn #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "einkunn #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "einkunn #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "einkunn #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "einkunn #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "einkunn #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "er gild einkunn"
+
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:172
+msgid "date/time submitted"
+msgstr "innsent dags/tími"
+
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:173
+msgid "is public"
+msgstr "er öllum sýnilegt"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "hefur verið fjarlægt"
+
+#: contrib/comments/models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Hakaðu við þennan reit ef athugasemdin er óviðeigandi. Skilaboðin „Þessi athugasemd hefur verið fjarlægð“ birtist í staðinn."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "athugasemdir"
+
+#: contrib/comments/models.py:134
+#: contrib/comments/models.py:213
+msgid "Content object"
+msgstr "Efnishlutur"
+
+#: contrib/comments/models.py:162
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"%(user)s sendi inn %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:171
+msgid "person's name"
+msgstr "nafn einstaklings"
+
+#: contrib/comments/models.py:174
+msgid "ip address"
+msgstr "IP tala"
+
+#: contrib/comments/models.py:176
+msgid "approved by staff"
+msgstr "samþykkt af umsjónarmönnum"
+
+#: contrib/comments/models.py:179
+msgid "free comment"
+msgstr "frjáls athugasemd"
+
+#: contrib/comments/models.py:180
+msgid "free comments"
+msgstr "frjálsar athugasemdir"
+
+#: contrib/comments/models.py:239
+msgid "score"
+msgstr "stig"
+
+#: contrib/comments/models.py:240
+msgid "score date"
+msgstr "dagsetning stigagjafar"
+
+#: contrib/comments/models.py:243
+msgid "karma score"
+msgstr "karma stig"
+
+#: contrib/comments/models.py:244
+msgid "karma scores"
+msgstr "karma stig"
+
+#: contrib/comments/models.py:248
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d stig frá %(user)s"
+
+#: contrib/comments/models.py:264
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Þessi athugasemd var veifuð af %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:271
+msgid "flag date"
+msgstr "Dagsetning veifu"
+
+#: contrib/comments/models.py:274
+msgid "user flag"
+msgstr "notandaveifa"
+
+#: contrib/comments/models.py:275
+msgid "user flags"
+msgstr "notendaveifur"
+
+#: contrib/comments/models.py:279
+#, python-format
+msgid "Flag by %r"
+msgstr "Veifað af %r"
+
+#: contrib/comments/models.py:284
+msgid "deletion date"
+msgstr "eytt dags."
+
+#: contrib/comments/models.py:286
+msgid "moderator deletion"
+msgstr "eytt af umsjónarmanni"
+
+#: contrib/comments/models.py:287
+msgid "moderator deletions"
+msgstr "eytt af umsjónarmanni"
+
+#: contrib/comments/models.py:291
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Eytt af umsjónarmanni %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Gleymdir þú lykilorðinu þínu?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Einkunnir"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Nauðsynlegt"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Valfrjálst"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Sendu inn ljósmynd"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Athugasemd:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Forskoða athugasemd"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Nafnið þitt:"
+
+#: contrib/comments/views/comments.py:28
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Þessi stigagjöf er nauðsynleg vegna þess að þú gafst að minnsta kosti eina aðra einkunn."
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Þessi athugasemd var send inn af notanda sem hefur sent inn færri en %(count)s athugasemd:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Þessi athugasemd var send inn af notanda sem hefur sent inn færri en %(count)s athugasemdir:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Þessi athugasemd var send inn af vafasömum notanda:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Eingöngu POST eru leyfð"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Einn eða fleiri nauðsynlegir reitir voru ekki fylltir"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Einhver átti við athugasemdaformið (öryggisbrot)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Athugasemdaformið hafði ógildan 'target' stika -- kenni hlutarins var ógilt"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Athugasemdaformið útvegaði ekki annað hvort 'forskoða' eða 'senda'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Ónafngreindir notendur geta ekki kosið"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Ógilt kenni á athugasemd"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Þú getur ekki kosið sjálfa(n) þig"
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "python eininga klasa nafn"
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "efnistag"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "efnistög"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Dæmi: '/about/contact/'. Passaðu að hafa skástrik fremst og aftast."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "titill"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "innihald"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "virkja athugasemdir"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "nafn sniðmáts"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Dæmi: 'flatpages/contact_page.html'. Ef ekkert er gefið upp mun kerfið nota 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "skráning nauðsynleg"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Ef þetta er valið geta eingöngu innskráðir notendur séð síðuna."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "flatskrá"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "flatskrár"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:52
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milljón"
+msgstr[1] "%(value).1f milljónir"
+
+#: contrib/humanize/templatetags/humanize.py:55
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f milljarður"
+msgstr[1] "%(value).1f milljarðar"
+
+#: contrib/humanize/templatetags/humanize.py:58
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f billjarður"
+msgstr[1] "%(value).1f billjónir"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "one"
+msgstr "einn"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "two"
+msgstr "tveir"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "three"
+msgstr "þrír"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "four"
+msgstr "fjórir"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "five"
+msgstr "fimm"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "six"
+msgstr "sex"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "seven"
+msgstr "sjö"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "eight"
+msgstr "átta"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "nine"
+msgstr "níu"
+
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "today"
+msgstr "í dag"
+
+#: contrib/humanize/templatetags/humanize.py:96
+msgid "tomorrow"
+msgstr "morgundagur"
+
+#: contrib/humanize/templatetags/humanize.py:98
+msgid "yesterday"
+msgstr "gærdagur"
+
+#: contrib/localflavor/ar/forms.py:28
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Færðu inn póstnúmer í sniðinu NNNN eða ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:50
+#: contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135
+#: contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Þessi reitur tekur aðeins tölugildi."
+
+#: contrib/localflavor/ar/forms.py:51
+msgid "This field requires 7 or 8 digits."
+msgstr "Þessi reitur krefst 7 eða 8 tölustafa."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Færðu inn gilt CUIT í XX-XXXXXXXX-X eða XXXXXXXXXXXX sniðinu."
+
+#: contrib/localflavor/ar/forms.py:81
+msgid "Invalid CUIT."
+msgstr "Ógilt CUIT."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Sláðu inn 4 stafa póstkóða."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Sláðu inn zip póstfang í sniðinu XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Símanúmer verða að vera í XXX-XXX-XXXX sniði."
+
+#: contrib/localflavor/br/forms.py:58
+msgid "Select a valid brazilian state. That state is not one of the available states."
+msgstr "Veldu gilt brasilískt fylki. Fylkið er ekki eitt af gildum fylkjum."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Ógilt CPF númer."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Þessi reitur krefst að minnsta kosti 14 tölustafa."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:64
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14
+#: contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:41
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
+msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Sláðu inn gilda íslenska kennitölu. Sniðið er DDMMÁÁÁÁ-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Íslenska kennitalan er ekki gild."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:19
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Sláðu inn gilt póstnúmer."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Sláðu inn gilt símanúmer."
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Þessi reitur krefst 8 tölustafa."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Þessi reitur krefst 11 tölustafa."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Sláðu inn gilt póstnúmer."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "vísun frá"
+
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Þetta þarf að vera full slóð án lénsins. Dæmi: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "vísa á"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Þetta getur verið full slóð (eins og hér að ofan) eða veffang með 'http://' fremst."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "vísun"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "vísanir"
+
+#: contrib/sessions/models.py:46
+msgid "session key"
+msgstr "setulykill"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "setugögn"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "fyrningardagsetning"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "seta"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "setur"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "lén"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "birtingarnafn"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "vefur"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "vefir"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Þetta gildi má einungis innihalda stafi, tölur og undirstrik."
+
+#: core/validators.py:76
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Þetta gildi má einungis innihalda stafi, tölur, undirstrik, skástrik og bandstrik."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Þetta gildi má einungis innihalda stafi, tölur, undirstrik og úrfellingarkommur."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Hástafir eru ekki leyfðir hér."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Lágstafir eru ekki leyfðir hér."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Skrifaðu einungis tölur aðskildar með kommum."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Sláðu inn gild tölvupóstföng aðskilin með kommum."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Vinsamlegast sláðu inn gilda IP tölu."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Tóm gildi eru ekki leyfð hér."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Aðeins tölustafir eru leyfðir hér."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Þetta gildi verður að vera samsett úr fleiru en tölustöfum."
+
+#: core/validators.py:128
+#: newforms/fields.py:151
+msgid "Enter a whole number."
+msgstr "Sláðu inn heila tölu."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Einungis bókstafir eru leyfðir hér."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr ""
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Ógild dagsetning: %s"
+
+#: core/validators.py:156
+#: db/models/fields/__init__.py:509
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Sláðu inn gilda dagsetningu á YYYY-MM-DD sniði."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Sláðu inn gildan tíma á HH:MM sniði."
+
+#: core/validators.py:165
+#: db/models/fields/__init__.py:583
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Sláðu inn gilda dagsetningu/tíma á YYYY-MM-DD HH:MM sniði."
+
+#: core/validators.py:170
+#: newforms/fields.py:402
+msgid "Enter a valid e-mail address."
+msgstr "Sláðu inn gilt tölvupóstfang."
+
+#: core/validators.py:182
+#: core/validators.py:474
+#: newforms/fields.py:432
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Engin skrá var send. Athugaðu kótunartegund á forminu (encoding type)."
+
+#: core/validators.py:193
+#: newforms/fields.py:456
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Halaðu upp gildri myndskrá. Skráin sem þú halaðir upp var annað hvort gölluð eða ekki mynd."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "Veffangið %s bendir ekki á fullgilda mynd."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Símanúmer verða að vera á XXX-XXX-XXXX forminu. „%s“ er ógilt."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "Veffangið %s vísar ekki á gilt QuickTime myndskeið."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Gilds veffangs er krafist."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Gilt HTML er nauðsynlegt. Tilteknar villur:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Illa sniðið XML: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Ógilt veffang: %s"
+
+#: core/validators.py:259
+#: core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Veffangið %s er brotinn hlekkur."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Skrifaðu gilda styttingu á bandarísku fylkisnafni."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Passaðu orðbragðið! Orðið %s er ekki leyft hér."
+msgstr[1] "Passaðu orðbragðið! Orðin %s eru ekki leyfð hér."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Þessi reitur verður að passa við „%s“ reitinn."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Vinsamlegast fylltu út einn reit að minnsta kosti."
+
+#: core/validators.py:316
+#: core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Vinsamlegast fylltu út í báða reitina eða skildu þá eftir tóma."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Þessi reitur þarf að vera útfylltur ef %(field)s er %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Þessi reitur verður að vera útfylltur ef %(field)s er ekki %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Endurtekin gildi eru ekki leyfð."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Þetta gildi verður að vera á milli  %(lower)s og %(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Þetta gildi verður að vera að minnsta kosti  %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Þetta gildi má ekki vera hærra en  %s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Þessi reitur verður að vera veldi af %s."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Vinsamlegast settu inn gilda tugatölu."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Vinsamlegast skrifaðu gilda tugatölu með hámark %s tölustaf."
+msgstr[1] "Vinsamlegast skrifaðu gilda tugatölu með hámark %s tölustafi."
+
+#: core/validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Vinsamlegast settu inn gilda tugatölu með hámark %s tölustaf."
+msgstr[1] "Vinsamlegast settu inn gilda tugatölu með hámark %s tölustafi."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Vinsamlegast skrifaðu gilda tugatölu með hámark %s tugbrotastaf."
+msgstr[1] "Vinsamlegast skrifaðu gilda tugatölu með hámark %s tugbrotastafi."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Vinsamlegast settu inn gilda hlaupakommutölu (floating point number)."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Gakktu úr skugga um að upphöluð skrá sé að minnsta kosti %s bæti að stærð."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Gakktu úr skugga um að upphlaðin skrá sé í mesta lagi %s bæti að stærð."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "Sniðið á þessum reit í rangt."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "Þessi reitur er ótækur."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Gat engu náð úr %s."
+
+#: core/validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "Veffangið %(url)s skilaði ótæka efnistagshausnum '%(contenttype)s'."
+
+#: core/validators.py:572
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Vinsamlegast lokaðu opna %(tag)s taginu sem byrjar á línu %(line)s. (Línan hefst á \"%(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Texti sem hefst á línu %(line)s er ekki leyfður í því samhengi. (Line starts with \"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" á línu %(line)s er ótækt eigindi (línan hefst á \"%(start)s\")."
+
+#: core/validators.py:586
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\" á línu %(line)s er ótækt tag. (Línan hefst á \"%(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "Tag á línu %(line)s vantar eitt eða fleiri nauðsynleg eigindi. (Línan hefst á \"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" eigindið á línu %(line)s hefur ótækt gildi (línan hefst á \"%(start)s\")."
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s með þetta %(type)s er nú þegar til fyrir uppgefið %(field)s."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s með þetta %(fieldname)s er nú þegar til."
+
+#: db/models/fields/__init__.py:161
+#: db/models/fields/__init__.py:318
+#: db/models/fields/__init__.py:735
+#: db/models/fields/__init__.py:746
+#: newforms/fields.py:45
+#: oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Þennan reit þarf að fylla út."
+
+#: db/models/fields/__init__.py:418
+msgid "This value must be an integer."
+msgstr "Þetta gildi verður að vera heil tala."
+
+#: db/models/fields/__init__.py:454
+msgid "This value must be either True or False."
+msgstr "Þetta gildi verður að vera True eða False."
+
+#: db/models/fields/__init__.py:475
+msgid "This field cannot be null."
+msgstr "Þessi reitur getur ekki haft tómgildi (null)."
+
+#: db/models/fields/__init__.py:644
+msgid "This value must be a decimal number."
+msgstr "Þetta gildi verður að vera tugatala (decimal number)."
+
+#: db/models/fields/__init__.py:755
+msgid "Enter a valid filename."
+msgstr "Sláðu inn gilt tölvupóstfang."
+
+#: db/models/fields/__init__.py:904
+msgid "This value must be either None, True or False."
+msgstr "Þetta gildi verður að vera annaðhvort None, True eða False."
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Vinsamlegast sláðu inn fullgilt %s."
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "Aðgreindu mörg kenni með kommum."
+
+#: db/models/fields/related.py:660
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Haltu inni „Control“, eða „Command“ á Mac til þess að velja fleira en eitt."
+
+#: db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Vinsamlegast sláðu inn gild %(self)s kenni. Gildið %(value)r er ógilt."
+msgstr[1] "Vinsamlegast sláðu inn gild %(self)s kenni. Gildin %(value)r eru ógild."
+
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr "Sláðu inn gilt gildi."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Gildið má ekki hafa fleiri en %(max)d stafi (gildið hefur %(length)d)."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Gildið má ekki hafa færri en %(min)d stafi (gildið hefur %(length)d)."
+
+#: newforms/fields.py:152
+#: newforms/fields.py:181
+#: newforms/fields.py:210
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Gakktu úr skuggum um að gildið sé minna en eða jafn og %s."
+
+#: newforms/fields.py:153
+#: newforms/fields.py:182
+#: newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Gildið þarf að vera jafnt og eða hærra en %s."
+
+#: newforms/fields.py:180
+#: newforms/fields.py:209
+msgid "Enter a number."
+msgstr "Sláðu inn heila tölu."
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Gildið má ekki hafa fleiri en %s tölur."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Gildið má ekki hafa meira en %s tugatölustafi (decimal places)."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Gildið má ekki hafa fleiri en %s tölur fyrir tugabrotskil."
+
+#: newforms/fields.py:262
+#: newforms/fields.py:719
+msgid "Enter a valid date."
+msgstr "Sláðu inn gilda dagsetningu."
+
+#: newforms/fields.py:295
+#: newforms/fields.py:720
+msgid "Enter a valid time."
+msgstr "Sláðu inn gilda tímasetningu."
+
+#: newforms/fields.py:334
+msgid "Enter a valid date/time."
+msgstr "Sláðu inn gilda dagsetningu ásamt tíma."
+
+#: newforms/fields.py:433
+msgid "No file was submitted."
+msgstr "Engin skrá var send."
+
+#: newforms/fields.py:434
+#: oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Innsend skrá er tóm."
+
+#: newforms/fields.py:492
+msgid "Enter a valid URL."
+msgstr "Sláðu inn gilt veffang (URL)."
+
+#: newforms/fields.py:493
+msgid "This URL appears to be a broken link."
+msgstr "Síðan á þessari slóð lítur út fyrir að skila villu."
+
+#: newforms/fields.py:555
+#: newforms/models.py:317
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Veldu gildan valmöguleika. Valið virðist ekki vera eitt af gildum valmöguleikum."
+
+#: newforms/fields.py:594
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Veldu gildan valmöguleika. %(value)s er ekki eitt af gildum valmöguleikum."
+
+#: newforms/fields.py:595
+#: newforms/fields.py:657
+#: newforms/models.py:377
+msgid "Enter a list of values."
+msgstr "Sláðu inn lista af gildum."
+
+#: newforms/fields.py:748
+msgid "Enter a valid IPv4 address."
+msgstr "Sláðu inn gilda IPv4 tölu."
+
+#: newforms/models.py:378
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Veldu gildan valmöguleika. %s er ekki einn af gildum valmöguleikum."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Gangtu úr skugga um að textinn þin sé styttri en %s tákn."
+msgstr[1] "Gangtu úr skugga um að textinn þin sé styttri en %s tákn."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Línuskil eru ekki leyfð hér."
+
+#: oldforms/__init__.py:512
+#: oldforms/__init__.py:586
+#: oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Veldu gildan valmöguleika; „%(data)s“ er ekki í %(choices)s."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Sláðu inn heila tölu á bilinu -32.768 til 32.767."
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Sláðu inn jákvæða tölu."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Sláðu inn heila tölu á bilinu 0 til 32.767."
+
+#: template/defaultfilters.py:691
+msgid "yes,no,maybe"
+msgstr "já,nei,kannski"
+
+#: template/defaultfilters.py:722
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bæti"
+msgstr[1] "%(size)d bæti"
+
+#: template/defaultfilters.py:724
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:726
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:727
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "eftirmiðdegi"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "morgun"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "Eftirmiðdegi"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "Morgun"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "miðnætti"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "hádegi"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "mánudagur"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "þriðjudagur"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "miðvikudagur"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "fimmtudagur"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "föstudagur"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "laugardagur"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "sunnudagur"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Mán"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Þri"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Mið"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Fim"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Fös"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Lau"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Sun"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "janúar"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "febrúar"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "March"
+msgstr "mars"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "April"
+msgstr "apríl"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "May"
+msgstr "maí"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "June"
+msgstr "júní"
+
+#: utils/dates.py:19
+#: utils/dates.py:31
+msgid "July"
+msgstr "júlí"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "ágúst"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "september"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "október"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "nóvember"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "desember"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "Jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "maí"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jún"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "júl"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "ágú"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nóv"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "des"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "ág."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "nóv."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "des."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "eða"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "ár"
+msgstr[1] "ár"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mánuður"
+msgstr[1] "mánuðir"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "vika"
+msgstr[1] "vikur"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dagur"
+msgstr[1] "dagar"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "klukkutími"
+msgstr[1] "klukkutímar"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "mínúta"
+msgstr[1] "mínútur"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "mínútur"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:399
+msgid "DATE_FORMAT"
+msgstr "j. N Y"
+
+#: utils/translation/trans_real.py:400
+msgid "DATETIME_FORMAT"
+msgstr "j. N Y, H:i"
+
+#: utils/translation/trans_real.py:401
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:417
+msgid "YEAR_MONTH_FORMAT"
+msgstr "j. N Y"
+
+#: utils/translation/trans_real.py:418
+msgid "MONTH_DAY_FORMAT"
+msgstr "j. N Y"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s var fært inn."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s var uppfært."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s var eytt."
+
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr "<a href=\"/password_reset/\">Gleymdir þú lykilorðinu</a> þínu?"
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Notaðu '[algo]$[salt]$[hexdigest]'"
+#~ msgid "Comment"
+#~ msgstr "Athugasemd"
+#~ msgid "Comments"
+#~ msgstr "Athugasemdir"
+#~ msgid ""
+#~ "This comment was posted by a user who has posted fewer than %(count)s "
+#~ "comment:\n"
+#~ "\n"
+#~ "%(text)sThis comment was posted by a user who has posted fewer than %"
+#~ "(count)s comments:\n"
+#~ "\n"
+#~ "%(text)s"
+#~ msgstr ""
+#~ "Þessi athugasemd var send inn af notanda sem hefur skrifað færri en %"
+#~ "(count)s athugasemd:\n"
+#~ "\n"
+#~ "%(text)sÞessi athugasemd var send inn af notanda sem hefur skrifað færri "
+#~ "en %(count)s athugasemdir:\n"
+#~ "\n"
+#~ "%(text)s"
+#~ msgid "String (up to 50)"
+#~ msgstr "Strengur (allt að 50)"
+#~ msgid "label"
+#~ msgstr "merki"
+#~ msgid "package"
+#~ msgstr "pakki"
+#~ msgid "packages"
+#~ msgstr "pakkar"
+
+#, fuzzy
+#~ msgid "count"
+#~ msgstr "innihald"
+
diff --git a/webapp/django/conf/locale/is/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/is/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..1a11690
--- /dev/null
+++ b/webapp/django/conf/locale/is/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/is/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/is/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..c68e77d
--- /dev/null
+++ b/webapp/django/conf/locale/is/LC_MESSAGES/djangojs.po
@@ -0,0 +1,109 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: 2006-05-13 11:48-0000\n"
+"Last-Translator: Dagur Páll Ammendrup <dagurp@gmail.com>\n"
+"Language-Team: Icelandic <dagurp@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Icelandic\n"
+"X-Poedit-Country: ICELAND\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Fáanleg %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Velja öll"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Bæta við"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Fjarlægja"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Valin %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Veldu úr valmöguleikunum og smelltu"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Hreinsa öll"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid "January February March April May June July August September October November December"
+msgstr "janúar febrúar mars apríl maí júní júlí ágúst september október nóvember desember"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "sunnudagur mánudagur þriðjudagur miðvikudagur fimmtudagur föstudagur laugardagur"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S M Þ M F F L"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Núna"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Klukka"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Veldu tíma"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Miðnætti"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6 f.h."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "Hádegi"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "Hætta við"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Í dag"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Dagatal"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Í gær"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Á morgun"
+
diff --git a/webapp/django/conf/locale/it/LC_MESSAGES/django.mo b/webapp/django/conf/locale/it/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..68f9f7b
--- /dev/null
+++ b/webapp/django/conf/locale/it/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/it/LC_MESSAGES/django.po b/webapp/django/conf/locale/it/LC_MESSAGES/django.po
new file mode 100644
index 0000000..c21f860
--- /dev/null
+++ b/webapp/django/conf/locale/it/LC_MESSAGES/django.po
@@ -0,0 +1,4523 @@
+# translation of django.po to Italiano
+# Italian translation of Django.
+# Copyright (C) 2006 the Lawrence Journal-World
+# This file is distributed under the same license as the Django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django vSVN\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-10 16:19+0200\n"
+"PO-Revision-Date: 2008-08-14 18:37+0200\n"
+"Last-Translator: Nicola Larosa <nico@tekNico.net>\n"
+"Language-Team: Italiano\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "arabo"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "bengali"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "bulgaro"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "catalano"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "ceco"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "gallese"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "danese"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "tedesco"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "greco"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "inglese"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "spagnolo"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "estone"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "spagnolo argentino"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "basco"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "persiano"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "finlandese"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "francese"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "irlandese"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "galiziano"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "ungherese"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "ebraico"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "croato"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "islandese"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "italiano"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "giapponese"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "georgiano"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "coreano"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "khmer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "lettone"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "lituano"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "macedone"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "olandese"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "norvegese"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "polacco"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "portoghese"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "brasiliano portoghese"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "rumeno"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "russo"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "slovacco"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "sloveno"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "serbo"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "svedese"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "tamil"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "turco"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ucraino"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "cinese semplificato"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "cinese tradizionale"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Di %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Tutti"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Qualsiasi data"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Oggi"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Ultimi 7 giorni"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Questo mese"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Quest'anno"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Sì"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "No"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "momento dell'azione"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "id dell'oggetto"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "rappresentazione dell'oggetto"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "flag di azione"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "messaggio di modifica"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "voce di log"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "voci di log"
+
+#: contrib/admin/options.py:143 contrib/admin/options.py:202
+msgid "None"
+msgstr "Nessuno"
+
+#: contrib/admin/options.py:407
+#, python-format
+msgid "Changed %s."
+msgstr "%s modificato."
+
+#: contrib/admin/options.py:407 contrib/admin/options.py:417
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "e"
+
+#: contrib/admin/options.py:412
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Aggiunti %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:416
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Cambiati %(list)s per %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:421
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Cancellati %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:425
+msgid "No fields changed."
+msgstr "Nessun campo modificato."
+
+#: contrib/admin/options.py:480 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Il %(name)s \"%(obj)s\" è stato aggiunto correttamente."
+
+#: contrib/admin/options.py:484 contrib/admin/options.py:517
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "È possibile modificarlo nuovamente qui sotto."
+
+#: contrib/admin/options.py:494 contrib/admin/options.py:527
+#, python-format
+msgid "You may add another %s below."
+msgstr "Puoi aggiungere un altro %s qui sotto."
+
+#: contrib/admin/options.py:515
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Il %(name)s \"%(obj)s\" è stato modificato correttamente."
+
+#: contrib/admin/options.py:523
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"Il %(name)s \"%(obj)s\" è stato aggiunto correttamente. È possibile "
+"modificarlo nuovamente qui sotto."
+
+#: contrib/admin/options.py:593
+#, python-format
+msgid "Add %s"
+msgstr "Aggiungi %s"
+
+#: contrib/admin/options.py:673
+#, python-format
+msgid "Change %s"
+msgstr "Modifica %s"
+
+#: contrib/admin/options.py:704
+msgid "Database error"
+msgstr "Errore nel database"
+
+#: contrib/admin/options.py:753
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Lo %(name)s \"%(obj)s\" è stato cancellato correttamente."
+
+#: contrib/admin/options.py:760
+msgid "Are you sure?"
+msgstr "Sei sicuro?"
+
+#: contrib/admin/options.py:787
+#, python-format
+msgid "Change history: %s"
+msgstr "Tracciato delle modifiche: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "Inserisci nome utente e password corretti. In entrambi i campi le maiuscole sono significative."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Devi effettuare di nuovo l'accesso, perché la sessione è scaduta. I dati inseriti sono "
+"stati comunque salvati."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Il browser non sembra configurato per accettare i cookie. Una volta "
+"abilitati, ricarica la pagina e riprova."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "I nomi utente non possono contenere il carattere '@'."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Il nome utente non è costituito dall'indirizzo e-mail. Prova con '%s'."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Amministrazione sito"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Accedi"
+
+#: contrib/admin/util.py:126
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Uno o più %(fieldname)s in %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:131
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Uno o più %(fieldname)s in %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Ora:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Attualmente:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Modifica:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Pagina non trovata"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Spiacenti, ma la pagina richiesta non è stata trovata."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Pagina iniziale"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Errore del server"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Errore del server (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Errore del server <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Si è verificato un errore. È stato riportato agli amministratori del sito "
+"via e-mail e verrà corretto a breve. Grazie per la tua pazienza."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Benvenuto,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentazione"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Cambia la password"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Esci"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Amministrazione sito Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Amministrazione Django"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Aggiungi"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Storia"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Vedi sul sito"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Correggi l'errore qui sotto."
+msgstr[1] "Correggi gli errori qui sotto."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Aggiungi %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filtro"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Cancella"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"La cancellazione di %(object_name)s '%(escaped_object)s' causerebbe la "
+"cancellazione di oggetti collegati, ma questo account non ha i permessi per "
+"cancellare gli oggetti dei seguenti tipi:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Sei sicuro di voler cancellare gli %(object_name)s \"%(escaped_object)s\"? "
+"Tutti i seguenti oggetti collegati saranno cancellati:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Sì, sono sicuro"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Per %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelli disponibili nell'applicazione %(name)s."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Modifica"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Non hai i privilegi per modificare alcunché."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Azioni Recenti"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Azioni Proprie"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Nessuno disponibile"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Ci sono problemi nell'installazione del database. Assicurarsi che le tabelle "
+"appropriate del database siano state create, e che il database sia leggibile "
+"dall'utente appropriato."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Nome utente:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Password:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Data/ora"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Utente"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Azione"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j F Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Questo oggetto non ha cambiamenti registrati. Probabilmente non è stato "
+"creato con questo sito di amministrazione."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostra tutto"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Vai"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 risultato"
+msgstr[1] "%(counter)s risultati"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s totali"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Salva come nuovo"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Salva e aggiungi un altro"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Salva e continua le modifiche"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Salva"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "Inserisci innanzitutto nome utente e password. Potrai poi modificare le altre impostazioni dell'utente."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Nome utente"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Password"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Password (di nuovo)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Inserisci la stessa password inserita sopra, come verifica."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Inserisci una nuova password per l'utente <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Grazie per aver speso il tuo tempo prezioso su questo sito oggi."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Accedi di nuovo"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Cambio password"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Cambio di password avvenuto correttamente"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "La password è stata cambiata."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Inserisci la password attuale, per ragioni di sicurezza, e poi la nuova "
+"password due volte, per verificare di averla scritta correttamente."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Password attuale:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Nuova password:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Conferma la password:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Modifica la mia password"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Reimposta la password"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Password reimpostata"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "La tua password è stata impostata. Ora puoi effettuare l'accesso."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Conferma reimpostazione password"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Inserisci la nuova password"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Inserisci la nuova password due volte, per verificare di averla scritta "
+"correttamente."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Password NON reimpostata"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"Il link per la reimpostazione della password non era valido, forse perché "
+"era già stato usato. Richiedi una nuova reimpostazione della password."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Password reimpostata correttamente"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Abbiamo inviato le istruzioni per impostare la tua password all'indirizzo e-"
+"mail inserito. Arriveranno a breve."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Hai ricevuto questa e-mail perché hai chiesto di reimpostare la password"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "per il tuo account utente su %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Vai alla pagina seguente e scegli una nuova password:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Il tuo nome utente, in caso l'abbia dimenticato:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Grazie per aver usato il nostro sito!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Il team di %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Dimenticata la password? Inserisci il tuo indirizzo email qui sotto, e ti "
+"invieremo per email le istruzioni per impostarne una nuova."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Indirizzo e-mail:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Reimposta la mia password"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Tutte le date"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Scegli %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Scegli %s da modificare"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filtro:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "view:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Appl. %r non trovata"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Modello %(model_name)r non trovato nell'appl. %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "l'oggetto `%(app_label)s.%(data_type)s` collegato"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "modello:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "oggetti `%(app_label)s.%(object_name)s` collegati"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "tutti %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "numero di %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Campi sugli oggetti %s"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Intero"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Booleano (True o False)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Stringa (fino a %(max_length)s)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Interi separati da virgola"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Data (senza ora)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Data (con ora)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Numero decimale"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "Indirizzo e-mail"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Percorso di file"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Numero decimale"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "indirizzo IP"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (True, False o None)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Collegamento a modello padre"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Numero di telefono"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Testo"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Ora"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "Stato USA (due lettere maiuscole)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "Testo XML"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s non sembra essere un oggetto urlpattern"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklet"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Bookmarklet alla documentazione"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Per installare i bookmarklet, trascina il link sulla barra \n"
+"dei bookmark, o clicca il link con il tasto destro e aggiungilo ai "
+"bookmark.\n"
+"Potrai poi scegliere un bookmarklet in qualsiasi pagina del sito.\n"
+"Nota che alcuni di questi bookmarklet richiedono l'accesso al sito tramite un\n"
+"computer designato come \"interno\" (chiedi al tuo amministratore di \n"
+"sistema se non sei sicuro che il tuo computer sia \"interno\").</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentazione per questa pagina"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Porta da qualsiasi pagina alla documentazione della view che genera quella "
+"pagina."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Mostra l'ID dell'oggetto"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Mostra il content-type e l'ID univoco di pagine che rappresentano un singolo "
+"oggetto."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Modifica quest'oggetto (nella finestra corrente)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Porta alla pagina amministrativa di pagine che rappresentano un oggetto "
+"singolo."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Modifica quest'oggetto (in una nuova finestra)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Come sopra, ma apre la pagina di amministrazione in una nuova finestra."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Informazioni personali"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Permessi"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Date importanti"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Gruppi"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Aggiungi utente"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "La password è stata cambiata correttamente."
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Cambia la password: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:134
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Obbligatorio. 30 caratteri o meno. Solo caratteri alfanumerici (lettere, "
+"cifre e sottolineati)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Questo valore può contenere solo lettere, cifre e sottolineati."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Conferma password"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "Un utente con questo nome·è già presente."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "I due campi password non corrispondono."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Questo account non è attivo."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Il browser web sembra non avere i cookie abilitati. I cookie sono necessari "
+"per poter accedere."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "E-mail"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Questo indirizzo email non è associato ad alcun account utente. Sei sicuro "
+"di esserti registrato?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Password reimpostata su %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Nuova password"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Conferma nuova password"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Password attuale"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "La password attuale non è stata inserita correttamente: va inserita di nuovo."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "nome"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "nome in codice"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "permesso"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "permessi"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "gruppo"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:144
+msgid "groups"
+msgstr "gruppi"
+
+#: contrib/auth/models.py:134
+msgid "username"
+msgstr "nome utente"
+
+#: contrib/auth/models.py:135
+msgid "first name"
+msgstr "nome"
+
+#: contrib/auth/models.py:136
+msgid "last name"
+msgstr "cognome"
+
+#: contrib/auth/models.py:137
+msgid "e-mail address"
+msgstr "indirizzo e-mail"
+
+#: contrib/auth/models.py:138
+msgid "password"
+msgstr "password"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Usa '[algo]$[salt]$[hexdigest]' oppure la <a href=\"password/\">maschera "
+"di cambio password</a>."
+
+#: contrib/auth/models.py:139
+msgid "staff status"
+msgstr "privilegi di staff"
+
+#: contrib/auth/models.py:139
+msgid "Designates whether the user can log into this admin site."
+msgstr "Indica se l'utente può accedere a questo sito di amministrazione."
+
+#: contrib/auth/models.py:140
+msgid "active"
+msgstr "attivo"
+
+#: contrib/auth/models.py:140
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Indica se l'utente debba essere considerato attivo. Deseleziona qui, "
+"piuttosto che cancellare gli account."
+
+#: contrib/auth/models.py:141
+msgid "superuser status"
+msgstr "privilegi di superutente"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Indica che l'utente ha tutti i privilegi, senza che siano stati assegnati "
+"esplicitamente."
+
+#: contrib/auth/models.py:142
+msgid "last login"
+msgstr "ultimo accesso"
+
+#: contrib/auth/models.py:143
+msgid "date joined"
+msgstr "iscritto in data"
+
+#: contrib/auth/models.py:145
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"In aggiunta ai privilegi assegnati manualmente, l'utente riceverà anche "
+"tutti i privilegi assegnati ad ogni gruppo cui appartiene."
+
+#: contrib/auth/models.py:146
+msgid "user permissions"
+msgstr "privilegi utente"
+
+#: contrib/auth/models.py:150
+msgid "user"
+msgstr "utente"
+
+#: contrib/auth/models.py:151
+msgid "users"
+msgstr "utenti"
+
+#: contrib/auth/models.py:306
+msgid "message"
+msgstr "messaggio"
+
+#: contrib/auth/views.py:51
+msgid "Logged out"
+msgstr "Accesso annullato"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "ID dell'oggetto"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "intestazione"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "commento"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "valutazione #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "valutazione #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "valutazione #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "valutazione #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "valutazione #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "valutazione #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "valutazione #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "valutazione #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "è una valutazione valida"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "data/ora di inserimento"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "è pubblico"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "è rimosso"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Spunta la casella se il commento è inappropriato. Verrà sostituito dal "
+"messaggio \"Questo commento è stato rimosso\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "commenti"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Oggetto con contenuto"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Inserito da %(user)s il %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "nome della persona"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "indirizzo IP"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "approvato dallo staff"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "commento libero"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "commenti liberi"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "punteggio"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "data punteggio"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "livello karma"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "livelli karma"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "valutazione: %(score)d da %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"A questo commento è stato apposto un flag da %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "data flag"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "flag utente"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "flag utente"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Flag da %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "data cancellazione"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "cancellazione da moderatore"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "cancellazioni da moderatore"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Cancellazione da moderatore %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Hai dimenticato la password?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Valutazioni"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Obbligatorio"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Facoltativo"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Inserisci una foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Commento:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Anteprima commento"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Il tuo nome:"
+
+#: contrib/comments/views/comments.py:76
+msgid "This rating is required because you've entered at least one other rating."
+msgstr ""
+"Questa valutazione è obbligatoria perché hai inserito almeno un'altra "
+"valutazione."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Questo commento è stato inserito da un utente autore di meno di %(count)s "
+"commento:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Questo commento è stato inserito da un utente autore di meno di %(count)s "
+"commenti:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Questo commento è stato inserito da un utente non confermato:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Sono ammessi solo POST"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Uno o più campi richiesti non sono stati inseriti"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Qualcuno ha alterato il modulo di commento (violazione di sicurezza)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Il modulo di commento ha un parametro 'target' non valido -- l'ID "
+"dell'oggetto non è valido"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Il modulo di commento non fornisce né 'anteprima' né 'invia'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Gli utenti anonimi non possono votare"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "ID commento non valido"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Impossibile votare per se stessi"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "nome della classe del modello Python"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "content type"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "content type"
+
+#: contrib/flatpages/admin.py:9
+msgid "Advanced options"
+msgstr "Opzioni avanzate"
+
+#: contrib/flatpages/models.py:9
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Esempio: '/about/contact/'. Assicurati di inserire le barre diagonali iniziali e finali."
+
+#: contrib/flatpages/models.py:10
+msgid "title"
+msgstr "titolo"
+
+#: contrib/flatpages/models.py:11
+msgid "content"
+msgstr "contenuto"
+
+#: contrib/flatpages/models.py:12
+msgid "enable comments"
+msgstr "abilita commenti"
+
+#: contrib/flatpages/models.py:13
+msgid "template name"
+msgstr "nome modello"
+
+#: contrib/flatpages/models.py:14
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Esempio: 'flatpages/contact_page.html'. Se non specificato, il sistema userà "
+"'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:15
+msgid "registration required"
+msgstr "registrazione obbligatoria"
+
+#: contrib/flatpages/models.py:15
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Se selezionato, solo gli utenti che hanno effettuato l'accesso potranno "
+"vedere la pagina."
+
+#: contrib/flatpages/models.py:20
+msgid "flat page"
+msgstr "pagina statica"
+
+#: contrib/flatpages/models.py:21
+msgid "flat pages"
+msgstr "pagine statiche"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Nessun valore geometrico fornito."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Valore geometrico non valido."
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Tipo geometrico non valido."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milione"
+msgstr[1] "%(value).1f milioni"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f miliardo"
+msgstr[1] "%(value).1f miliardi"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f migliaio di miliardi"
+msgstr[1] "%(value).1f migliaia di miliardi"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "uno"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "due"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "tre"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "quattro"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "cinque"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "sei"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "sette"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "otto"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "nove"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "oggi"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "domani"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "ieri"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Inserisci un codice postale nel formato NNNN o ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Questo campo può contenere solo numeri."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Questo campo richiede 7 o 8 cifre."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Inserisci un CUIT valido nel formato XX-XXXXXXXX-X o XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "CUIT non valido."
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "Burgenland"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Carinthia"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "Bassa Austria"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "Alta Austria"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "Salisburgo"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "Styria"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "Tirolo"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "Vorarlberg"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "Vienna"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Inserisci un codice postale nel formato XXXXX ."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+"Inserisci un Numero di Assistenza Sociale Austriaco valido, nel formato XXXX "
+"XXXXXX."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Inserisci un codice postale di 4 cifre."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Inserisci un codice postale nel formato XXXXX-XXX ."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "I numeri di telefono devono essere in formato XX-XXXX-XXXX ."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+"Scegliere uno stato brasiliano valido. Questo stato non è uno di quelli "
+"disponibili."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Numero CPF non valido."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Questo campo richiede non più di 11 cifre, o 14 caratteri."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Numero CNPJ non valido."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Questo campo richiede almeno 14 cifre"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Inserisci un codice postale nel formato XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"Inserisci un numero di assicurazione sociale canadese valido, nel formato XXX-"
+"XXX-XXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berna"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Friburgo"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Ginevra"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerna"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurigo"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Inserisci un numero di carta d'identità o passaporto svizzeri validi, in "
+"formato X1234567<0 o 1234567890 ."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Inserisci un RUT cileno valido."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Inserisci un RUT cileno valido. Il formato è XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "Il RUT cileno non è valido."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Baviera"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlino"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburgo"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Brema"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Amburgo"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Pomerania Ovest"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Bassa Sassonia"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Reno Nord-Wesfalia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhineland-Palatinate"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Sassonia"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxony-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thuringia"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Inserisci un codice postale nel formato XXXXX ."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Inserisci un numero di carta d'identità tedesco valido nel formato "
+"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X ."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Arava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almeria"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Avila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Isole Baleari"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcellona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Caceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cadice"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castello"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Città Reale"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Cordoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruna"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaen"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "Leon"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Malaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarre"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Croce di Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Siviglia"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valenza"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Bizkaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Saragozza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalusia"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragon"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principato delle Asturie"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Isole Baleari"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Paese Basco"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Isole Canarie"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castile-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castile and Leon"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Catalogna"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Estremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galizia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Regione Murzia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Comunità Forale di Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Comunità di Valenza"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Inserisci un codice postale valido nell'intervallo e formato 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Inserisci un numero telefonico valido in uno dei formati 6XXXXXXXX, 8XXXXXXXX "
+"o 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Inserisci un NIF, NIE, o CIF valido."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Inserisci un NIF o NIE valido."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Checksum non valido per il NIF."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Checksum non valido per il NIE."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Checksum non valido per il CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+"Inserisci un numero di conto corrente bancario valido nel formato XXXX-XXXX-"
+"XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Checksum non valido per il numero di conto corrente bancario."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Inserisci un numero di assistenza sociale finlandese valido."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Inserisci un codice postale nel formato XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"Inserisci un numero di identificazione islandese valido. Il formato è XXXXXX-"
+"XXXX ."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Il numero di identificazione islandese non è valido."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Inserisci un codice postale valido."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Inserisci un numero di codice fiscale valido."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Inserisci una partita IVA valida."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Inserisci un codice postale nel formato XXXXXXX o XXX-XXXX ."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baia California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baia California Sud"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distretto Federale"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Stato del Messico"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuova Leòn"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Inserisci un codice postale valido"
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Inserisci un numero telefonico valido"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Inserisci un numero SoFi valido"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friesland"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburg"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Noord-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Noord-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Zuid-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Inserisci un numero di assistenza sociale norvegese valido."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Questo campo richiede 8 cifre."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Questo campo richiede 11 cifre."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "Il Numero Identificativo Nazionale è costituito da 11 cifre."
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Checksum errato per il Numero Identificativo Nazionale."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+"Inserisci un campo di numero d'imposta (NIP) nel formato XXX-XXX-XX-XX o XX-"
+"XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Checksum errato per il Numero d'Imposta (NIP)."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+"Il Numero di Registro Nazionale d'Impresa (REGON) è costituito da 7 o 9 "
+"cifre."
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Checksum errato per il Numero di Registro Nazionale d'Impresa (REGON)."
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Inserisci un codice postale nel formato XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Bassa Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublino"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Polonia Minore"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Subcarpatia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Polonia Maggiore"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Pomerania Ovest"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "Inserisci un codice CIF valido."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "Inserisci un codice CNP valido."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr "Inserisci un codice IBAN valido nel formato ROXX-XXXX-XXXX-XXXX-XXXX-XXXX."
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "I numeri di telefono devono essere in formato XXXX-XXXXXX."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Inserisci un codice postale valido nel formato XXXXXX."
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Inserisci un codice postale nel formato XXXXX o XXX XX ."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banska Bystrica region"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Regione di Bratislava"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Regione di Kosice"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Regione di Nitra"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Regione di Presov"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Regione di Trencin"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Regione di Trnava"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Regione di Zilina"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Inserisci un codice postale valido."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornovaglia e Isole di Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "Sussex dell'Est"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Greater London"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Greater Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "Yorkshire del Nord"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "Yorkshire del Sud"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "Midland dell'Ovest"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "Sussex dell'Ovest"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "Yorkshire dell'Ovest"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "County Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "County Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Glamorgan centrale"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "Glamorgan Sud"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "Glamorgan Ovest"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Scozia Centrale"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Isole Orkney"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Isole Shetland"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Isole dell'Ovest"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Inghilterra"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Irlanda del Nord"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Scozia"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Galles"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Inserisci un codice postale nel formato XXXXX o XXXXX-XXXX ."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+"Inserisci un numero di assistenza sociale statunitense valido, nel formato "
+"XXX-XX-XXXX ."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Inserisci un numero ID sudafricano valido"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Inserisci un codice postale sudafricano valido"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Capo Est"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Libero Stato"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Capo Nord"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "Nordovest"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Capo Ovest"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redirezione da"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Deve essere un percorso assoluto, senza nome di dominio. Esempio: '/events/"
+"search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redirezione verso"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Può essere un percorso assoluto (come sopra) o una URL completa che inizia "
+"con 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redirezione"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redirezioni"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "chiave di sessione"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "dati di sessione"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "data di scadenza"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sessione"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sessioni"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nome di dominio"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "nome visualizzato"
+
+#: contrib/sites/models.py:38
+msgid "site"
+msgstr "sito"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "siti"
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Questo valore può contenere solo lettere, cifre, sottolineati, trattini e "
+"barre diagonali."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Questo valore può contenere solo lettere, cifre, sottolineati e trattini."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Non sono ammesse lettere maiuscole."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Non sono ammesse lettere minuscole."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Inserisci solo cifre separate da virgole."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Inserisci indirizzi e-mail validi separati da virgole."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Inserisci un indirizzo IP valido."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "I valori vuoti non sono ammessi qui."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Sono ammessi soltanto caratteri numerici."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Questo valore non può essere composto solo da cifre."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Inserisci un numero intero."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Sono ammessi solo caratteri alfabetici."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Data non valida: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:569
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Inserisci una data valida in formato AAAA-MM-GG."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Inserisci un ora valida in formato OO:MM."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Inserisci una data/ora valida in formato AAAA-MM-GG OO:MM."
+
+#: core/validators.py:166 forms/fields.py:412
+msgid "Enter a valid e-mail address."
+msgstr "Inserisci un indirizzo e-mail valido."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:430
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Non è stato inviato alcun file. Verifica il tipo di codifica della form."
+
+#: core/validators.py:189 forms/fields.py:470
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "Carica un'immagine valida. Il file caricato non è un'immagine o è corrotto."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "La URL %s non punta ad un'immagine valida."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"I numeri di telefono devono essere in formato XXX-XXX-XXXX . \"%s\" non è "
+"valido."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "La URL %s non punta ad un video QuickTime valido."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "Inserisci una URL valida."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"È richiesto HTML valido. Gli errori sono i seguenti:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML malformato: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL non valida: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "La URL %s è un link non funzionante."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Inserisci un valido nome di stato USA abbreviato."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Modera i termini: la parola %s non è ammessa."
+msgstr[1] "Modera i termini: le parole %s non sono ammesse."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Questo campo deve corrispondere al campo '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Inserisci qualcosa in almeno un campo."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Inserisci entrambi i campi o lasciarli entrambi vuoti."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Questo campo è obbligatorio se %(field)s è %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Questo campo è obbligatorio se %(field)s non è %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Non sono ammessi valori duplicati."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Questo valore deve essere compreso tra %(lower)s e %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Questo valore deve essere almeno pari a %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Questo valore non deve essere maggiore di %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Questo valore deve essere una potenza di %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Inserisci un numero decimale valido."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Inserisci un numero decimale con non più di %s cifra in totale."
+msgstr[1] "Inserisci un numero decimale con non più di %s cifre in totale."
+
+#: core/validators.py:443
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Inserisci un numero decimale la cui parte intera sia composta da non più di %"
+"s cifra."
+msgstr[1] ""
+"Inserisci un numero decimale la cui parte intera sia composta da non più di %"
+"s cifre."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Inserisci un decimale con non più di %s cifra decimale."
+msgstr[1] "Inserisci un decimale con non più di %s cifre decimali."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Inserisci un numero decimale valido."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Verifica che il file caricato sia grande almeno %s byte."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Verifica che il file caricato non sia più grande di %s byte."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Il formato di questo campo non è valido."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Questo campo non è valido."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Impossibile recupera alcunché da %s."
+
+#: core/validators.py:535
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"La URL %(url)s ha restituito un header Content-Type non valido: '%"
+"(contenttype)s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Chiudi il tag %(tag)s a linea %(line)s. (La linea inizia con \"%(start)s"
+"\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Il testo che comincia a linea %(line)s non e' ammesso in quel contesto. (La "
+"linea comincia con \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" a linea %(line)s non è un attributo valido. (La linea comincia "
+"con \"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" a linea %(line)s non è un tag valido. (La linea comincia con "
+"\"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Un tag a linea %(line)s manca di uno o più attributi richiesti. (La linea "
+"comincia con \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"L'attributo \"%(attr)s\" a linea %(line)s ha un valore non valido. (La linea "
+"comincia con \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "Un %(object)s·con questo·%(type)s·esiste già per questo·%(field)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Un %(optname)s·con questo·%(fieldname)s·esiste già."
+
+#: db/models/fields/__init__.py:170 db/models/fields/__init__.py:343
+#: db/models/fields/files.py:168 db/models/fields/files.py:179
+#: forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "Questo campo è obbligatorio."
+
+#: db/models/fields/__init__.py:457
+msgid "This value must be an integer."
+msgstr "Questo valore deve essere un intero."
+
+#: db/models/fields/__init__.py:503
+msgid "This value must be either True or False."
+msgstr "Questo valore deve essere True o False."
+
+#: db/models/fields/__init__.py:532
+msgid "This field cannot be null."
+msgstr "Questo campo non può essere nullo."
+
+#: db/models/fields/__init__.py:634 db/models/fields/__init__.py:651
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "Inserisci una data/ora valida nel formato AAAA-MM-GG OO:MM[ss[.uuuuuu]]."
+
+#: db/models/fields/__init__.py:707
+msgid "This value must be a decimal number."
+msgstr "Questo valore deve essere un numero decimale."
+
+#: db/models/fields/__init__.py:854
+msgid "This value must be either None, True or False."
+msgstr "Questo valore deve essere None, True o False."
+
+#: db/models/fields/__init__.py:969 db/models/fields/__init__.py:982
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Inserisci un ora valida nel formato OO:MM[ss[.uuuuuu]]."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Inserisci un nome di file valido."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Inserisci un %s valido."
+
+#: db/models/fields/related.py:759
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Tieni premuto \"Control\", o \"Command\" su Mac, per selezionarne più di "
+"uno."
+
+#: db/models/fields/related.py:839
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Inserisci un ID valido per %(self)s. Il valore %(value)r non è valido."
+msgstr[1] "Inserisci ID validi per %(self)s. I valori %(value)r non sono validi."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Inserisci un valore valido."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Assicurarsi che questo valore non contenga più di %(max)d caratteri (ne ha %"
+"(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Assicurarsi che questo valore contenga almeno %(min)d caratteri (ne ha %"
+"(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Assicurarsi che questo valore sia minore o uguale a %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Assicurarsi che questo valore sia maggiore o uguale a %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Inserisci un numero."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Assicurarsi che non vi siano più di %s cifre in totale."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Assicurarsi che non vi siano più di %s cifre decimali."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Assicurarsi che non vi siano più di %s cifre prima della virgola."
+
+#: forms/fields.py:272 forms/fields.py:802
+msgid "Enter a valid date."
+msgstr "Inserisci una data valida."
+
+#: forms/fields.py:305 forms/fields.py:803
+msgid "Enter a valid time."
+msgstr "Inserisci un ora valida."
+
+#: forms/fields.py:344
+msgid "Enter a valid date/time."
+msgstr "Inserisci una coppia data/ora valida."
+
+#: forms/fields.py:431
+msgid "No file was submitted."
+msgstr "Nessun file è stato inviato."
+
+#: forms/fields.py:432 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Il file inviato è vuoto."
+
+#: forms/fields.py:531
+msgid "Enter a valid URL."
+msgstr "Inserisci una URL valida."
+
+#: forms/fields.py:532
+msgid "This URL appears to be a broken link."
+msgstr "Questa URL non sembra funzionare."
+
+#: forms/fields.py:600 forms/fields.py:651
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Scegli un'opzione valida. '%(value)s non compare tra quelle disponibili."
+
+#: forms/fields.py:652 forms/fields.py:713 forms/models.py:589
+msgid "Enter a list of values."
+msgstr "Inserisci una lista di valori."
+
+#: forms/fields.py:831
+msgid "Enter a valid IPv4 address."
+msgstr "Inserisci un indirizzo IPv4 valido."
+
+#: forms/models.py:522
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Scegli un'opzione valida. La scelta effettuata non compare tra quelle "
+"disponibili."
+
+#: forms/models.py:590
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Scegli un'opzione valida. %s non compare tra quelle disponibili."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Assicurarsi che il testo sia più corto di %s carattere."
+msgstr[1] "Assicurarsi che il testo sia più corto di %s caratteri."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Non sono ammessi a capo manuali qui."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Scegli un'opzione valida; '%(data)s' non è presente in %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Inserisci un numero intero compreso tra -32.768 e 32.767 ."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Inserisci un numero positivo."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Inserisci un numero intero compreso tra 0 e 32.767 ."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "sì,no,forse"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d byte"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "mezzanotte"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "mezzogiorno"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "lunedì"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "martedì"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "mercoledì"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "giovedì"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "venerdì"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "sabato"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "domenica"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "lun"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "mar"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "mer"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "gio"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "ven"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "sab"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "dom"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "gennaio"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "febbraio"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "marzo"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "aprile"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "maggio"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "giugno"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "luglio"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "agosto"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "settembre"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "ottobre"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "novembre"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "dicembre"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "gen"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mag"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "giu"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "lug"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "ago"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "set"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "ott"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dic"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "gen."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "ago."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "set."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "ott."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "dic."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "o"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "anno"
+msgstr[1] "anni"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mese"
+msgstr[1] "mesi"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "settimana"
+msgstr[1] "settimane"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "giorno"
+msgstr[1] "giorni"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "ora"
+msgstr[1] "ore"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuto"
+msgstr[1] "minuti"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minuti"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "j F Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "j F Y, H:i"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "Y F"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "F j"
+
+#: views/generic/create_update.py:129
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s è stato creato correttamente."
+
+#: views/generic/create_update.py:172
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s è stato aggiornato correttamente."
+
+#: views/generic/create_update.py:214
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s è stato cancellato."
+
diff --git a/webapp/django/conf/locale/it/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/it/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..827f6e4
--- /dev/null
+++ b/webapp/django/conf/locale/it/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/it/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/it/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..8f6d6dd
--- /dev/null
+++ b/webapp/django/conf/locale/it/LC_MESSAGES/djangojs.po
@@ -0,0 +1,121 @@
+# translation of djangojs.po to Italiano
+# Italian translation for the django-admin JS files
+# Copyright (C) 2006 the Lawrence Journal-World
+# This file is distributed under the same license as the Django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django vSVN\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-10 16:19+0200\n"
+"PO-Revision-Date: 2008-08-14 18:36+0200\n"
+"Last-Translator: Nicola Larosa <nico@tekNico.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+"Language-Team: Italiano\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s disponibili"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Scegli tutto"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Aggiungi"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Rimuovi"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s scelti"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Fai le tue scelte e clicca "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Cancella tutto"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre "
+"novembre dicembre"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D L M M G V S"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "domenica lunedì martedì mercoledì giovedì venerdì sabato"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Mostra"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Nascondi"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Adesso"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Orologio"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Scegli un orario"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Mezzanotte"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 del mattino"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Mezzogiorno"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Annulla"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Oggi"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Calendario"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Ieri"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Domani"
+
diff --git a/webapp/django/conf/locale/ja/LC_MESSAGES/django.mo b/webapp/django/conf/locale/ja/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..907d7df
--- /dev/null
+++ b/webapp/django/conf/locale/ja/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ja/LC_MESSAGES/django.po b/webapp/django/conf/locale/ja/LC_MESSAGES/django.po
new file mode 100644
index 0000000..675d41a
--- /dev/null
+++ b/webapp/django/conf/locale/ja/LC_MESSAGES/django.po
@@ -0,0 +1,4510 @@
+# Translation of django.po to japanese.
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-17 10:54+0900\n"
+"PO-Revision-Date: 2008-08-17 11:05+0900\n"
+"Last-Translator: Takashi Matsuo <matsuo.takashi@gmail.com>\n"
+"Language-Team: Japanese <django-ja@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "アラビア語"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "ベンガル語"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "ブルガリア語"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "カタロニア語"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "チェコ語"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "ウェールズ語"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "デンマーク語"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "ドイツ語"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "ギリシャ語"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "英語"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "スペイン語"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "エストニア語"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "アルゼンチンスペイン語"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "バスク語"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "ペルシア語"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "フィンランド語"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "フランス語"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "アイルランド語"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "ガリシア語"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "ハンガリー語"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "ヘブライ語"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "クロアチア語"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "アイスランド語"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "イタリア語"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "日本語"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "グルジア語"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "韓国語"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "クメール語"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "カンナダ語"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "ラトビア語"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "リトアニア語"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "マケドニア語"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "オランダ語"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "ノルウェー語"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "ポーランド語"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "ポルトガル語"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "ブラジルポルトガル語"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "ルーマニア語"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "ロシア語"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "スロバキア語"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "スロヴェニア語"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "セルビア語"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "スウェーデン語"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "タミル語"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "テルグ語"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "トルコ語"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ウクライナ語"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "簡体字中国語"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "繁体字中国語"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>%s で絞り込む</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "全て"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "いつでも"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "今日"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "過去 7 日間"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "今月"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "今年"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "はい"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "いいえ"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "不明"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "操作時刻"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "オブジェクト ID"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "オブジェクトの文字列表現"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "操作種別"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "変更メッセージ"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "ログエントリ"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "ログエントリ"
+
+#: contrib/admin/options.py:143 contrib/admin/options.py:202
+msgid "None"
+msgstr "None"
+
+#: contrib/admin/options.py:413
+#, python-format
+msgid "Changed %s."
+msgstr "%s を変更しました。"
+
+#: contrib/admin/options.py:413 contrib/admin/options.py:423
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "と"
+
+#: contrib/admin/options.py:418
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "%(name)s \"%(object)s\"を追加しました。"
+
+#: contrib/admin/options.py:422
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "%(name)s \"%(object)s\" の %(list)s を変更しました。"
+
+#: contrib/admin/options.py:427
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "%(name)s \"%(object)s\" を削除しました。"
+
+#: contrib/admin/options.py:431
+msgid "No fields changed."
+msgstr "変更はありませんでした。"
+
+#: contrib/admin/options.py:492 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" を追加しました。"
+
+#: contrib/admin/options.py:496 contrib/admin/options.py:529
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "続けて編集できます。"
+
+#: contrib/admin/options.py:506 contrib/admin/options.py:539
+#, python-format
+msgid "You may add another %s below."
+msgstr "続けて別の %s を追加できます。"
+
+#: contrib/admin/options.py:527
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" を変更しました。"
+
+#: contrib/admin/options.py:535
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" を追加しました。続けて編集できます。"
+
+#: contrib/admin/options.py:601
+#, python-format
+msgid "Add %s"
+msgstr "%s を追加"
+
+#: contrib/admin/options.py:678
+#, python-format
+msgid "Change %s"
+msgstr "%s を変更"
+
+#: contrib/admin/options.py:709
+msgid "Database error"
+msgstr "データベースエラー"
+
+#: contrib/admin/options.py:758
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" を削除しました。"
+
+#: contrib/admin/options.py:765
+msgid "Are you sure?"
+msgstr "よろしいですか？"
+
+#: contrib/admin/options.py:792
+#, python-format
+msgid "Change history: %s"
+msgstr "変更履歴: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"正しいユーザ名とパスワードを入力してください (大文字小文字は区別します) 。"
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"再ログインしてください。ログインセッションが有効期間切れしてしまいました。入"
+"力データは失われておりませんのでご安心ください。"
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"ブラウザがクッキーの使用を許可していないようです。クッキーの使用を許可して、"
+"もう一度このページを表示してください。"
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "ユーザ名には '@' を含められません。"
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "メールアドレスはユーザ名ではありません。 '%s' を試してみてください。"
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "サイト管理"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "ログイン"
+
+#: contrib/admin/util.py:126
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "%(name)s に %(fieldname)s が一つ以上あります: %(obj)s"
+
+#: contrib/admin/util.py:131
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "%(name)s に %(fieldname)s が一つ以上あります:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "日付:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "時刻:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "現在:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "変更:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "ページが見つかりません"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "申し訳ありませんが、お探しのページは見つかりませんでした。"
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "ホーム"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "サーバエラー"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "サーバエラー (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "サーバエラー <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"エラーが発生しました。エラーをサイトの管理者にメールで報告しましたので、近い"
+"うちに修正されるはずです。しばらくお待ちください。"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "ようこそ"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "ドキュメント"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "パスワードの変更"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "ログアウト"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django サイト管理"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django 管理サイト"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "追加"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "履歴"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "サイト上で表示"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "下記のエラーを修正してください。"
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s を追加"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "フィルタ"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "削除"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"%(object_name)s '%(escaped_object)s' の削除時に関連づけられたオブジェクトも削"
+"除しようとしましたが、あなたのアカウントには以下のタイプのオブジェクトを削除"
+"するパーミッションがありません:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"%(object_name)s \"%(escaped_object)s\"を削除しますか？ 関連づけられている以下"
+"のオブジェクトも全て削除されます:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "はい。"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "%(filter_title)s で絞り込む"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "%(name)s アプリケーションで利用可能なモデル"
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "変更"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "変更のためのパーミッションがありません。"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "最近行った操作"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "操作"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "利用不可"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"データベースの設定に問題があるようです。適切なテーブルが作られていること、適"
+"切なユーザでデータベースのデータを読み込めることを確認してください。"
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "ユーザ名:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "パスワード:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "日付/時刻"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "ユーザ"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "操作"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "Y/m/d H:i:s"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"このオブジェクトには変更履歴がありません。おそらくこの管理サイトで追加したも"
+"のではありません。"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "全件表示"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "検索"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "%(counter)s 件"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "全 %(full_result_count)s 件"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "新規保存"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "保存してもう一つ追加"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "保存して編集を続ける"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "保存"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"まずユーザ名とパスワードを登録してください。その後詳細情報が編集可能になりま"
+"す。"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "ユーザ名"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "パスワード"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "パスワード(確認用)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "確認のため、再度パスワードを入力してください。"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr ""
+"<strong>%(username)s</strong>さんの新しいパスワードを入力してください。"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "ご利用ありがとうございました。"
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "もう一度ログイン"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "パスワードの変更"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "パスワードを変更しました"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "あなたのパスワードは変更されました"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"セキュリティ上の理由から元のパスワードの入力が必要です。新しいパスワードは正"
+"しく入力したか確認できるように二度入力してください。"
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "元のパスワード:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "新しいパスワード:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "新しいパスワード (確認用) :"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "パスワードの変更"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "パスワードをリセット"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "パスワードがリセットされました"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "パスワードがセットされました。ログインしてください。"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "パスワードリセットの確認"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "新しいパスワードを入力してください"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr "確認のために、新しいパスワードを二回入力してください。"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "パスワードのリセットに失敗しました"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"パスワードリセットのリンクが不正です。おそらくこのリンクは既に使われていま"
+"す。もう一度パスワードリセットしてください。"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "パスワードをリセットしました"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"登録されているメールアドレスにパスワードリセットの方法を送信しました。まもな"
+"く届くでしょう。"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"あなたのパスワードはリセットされましたので、ここにメールでご連絡差し上げま"
+"す。"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "リセットされたのは %(site_name)s のアカウントです。"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "次のページで新しいパスワードを選んでください:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "あなたのユーザ名 (念のため):"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "ご利用ありがとうございました！"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr " %(site_name)s チーム"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"パスワードをお忘れですか？メールアドレスを入力してください。パスワードのリ"
+"セット方法をメールでお知らせします。"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "メールアドレス"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "パスワードをリセット"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "いつでも"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "%s を選択"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "変更する %s を選択"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "サイト"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "テンプレート"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "タグ"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "フィルタ"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "ビュー"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "アプリケーション %r が見つかりません"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr ""
+"モデル %(model_name)r が %(app_label)r アプリケーションに見つかりません"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "`%(app_label)s.%(data_type)s` (関連オブジェクト)"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "モデル :"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "`%(app_label)s.%(object_name)s` (関連オブジェクト)"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "全ての %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "%s の数"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s のフィールド"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "整数"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "ブール値 (真: True または偽: False)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "文字列 ( %(max_length)s 字まで )"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "カンマ区切りの整数"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "日付"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "日時"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "10 進数 (小数可)"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "メールアドレス"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "ファイルの場所"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "浮動小数点"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP アドレス"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "ブール値 (真: True 、偽: False または None)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "親モデルへのリレーション"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "電話番号"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "テキスト"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "時刻"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "アメリカの州 (大文字二文字で)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XMLテキスト"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s はurlpatternオブジェクトでは無いようです"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "ブックマークレット"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "ドキュメントへのブックマークレット"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">ブックマークレットをインストールするには、リンクをブック"
+"マークツールバーにドラッグするか、\n"
+"リンクを右クリックしてブックマークに追加してください。これで\n"
+"サイトのどのページからでもブックマークレットを選択可能になりました。\n"
+"ブックマークレットによっては、内部ネットワークにあるコンピュータからこのサイ"
+"トを\n"
+"参照していなければならないことがあります。内部ネットワークにあるかどうか不明"
+"な場合は、システム管理者に確認してください。</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "このページのドキュメント"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "各ページから、ページを生成したビューのドキュメントにジャンプします。"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "オブジェクト ID を表示"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"単一のオブジェクトを表示するページのコンテンツタイプと一意な IDを表示します。"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "オブジェクトを (現在のウィンドウで) 編集"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "単一のオブジェクトを表示するページの管理ページへジャンプします。"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "オブジェクトを (新しいウィンドウで) 編集"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "上と同じですが、新しいウィンドウで管理ページを開きます。"
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "個人情報"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "パーミッション"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "重要な日程"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "グループ"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "ユーザを追加"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "パスワードを変更しました"
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "パスワードの変更: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"この項目は必須です。半角アルファベット、半角数字、半角アンダーバーで30文字以"
+"下にしてください。"
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "半角の英数字およびアンダースコア以外は使用できません。"
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "パスワードの確認"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "同じユーザ名が既に登録済みです。"
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "確認用パスワードが一致しません。"
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "アカウントが無効です。"
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"お使いのブラウザはクッキーを有効にしていないようです。ログインにはクッキーが"
+"必要です。"
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "メールアドレス"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr "メールアドレスの一致するユーザはいません。本当に登録しましたか？"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "%s にパスワードをリセット"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "新しいパスワード"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "新しいパスワード(確認用)"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "元のパスワード"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "元のパスワードが間違っています。もう一度入力してください。"
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "名前"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "コード名"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "パーミッション"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "パーミッション"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "グループ"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "グループ"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "ユーザ名"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "名"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "姓"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "メールアドレス"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "パスワード"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"'[algo]$[salt]$[hexdigest]'形式か、<a href=\"password/\">パスワード変更フォー"
+"ム</a>を使ってください。"
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "スタッフ権限"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "ユーザが管理サイトにログイン可能かどうかを示します。"
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "有効"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"ユーザがアクティブかどうかを示します。アカウントを消す代わりに選択を解除して"
+"ください。"
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "スーパーユーザ権限"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "全ての権限を持っているとみなされます。"
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "最終ログイン"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "登録日"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"手動で付与したパーミッションに加え、所属しているグループに付与された全ての"
+"パーミッションを獲得します。"
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "ユーザパーミッション"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "ユーザ"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "ユーザ"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "メッセージ"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "ログアウト"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "オブジェクト ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "新着情報"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "コメント"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "レーティング #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "レーティング #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "レーティング #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "レーティング #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "レーティング #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "レーティング #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "レーティング #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "レーティング #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "は有効なレーティングです"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "コメント投稿日時"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "は公開中です"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "は削除されました"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"コメントが不適切な場合はチェックを入れてください。「コメントは削除されまし"
+"た」と表示されるようになります。"
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "コメント"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "コンテンツオブジェクト"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"%(user)s が %(date)s に投稿\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "名前"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "IP アドレス"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "スタッフの承認済み"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "フリーコメント"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "フリーコメント"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "スコア"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "スコアされた日"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "カルマスコア"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "カルマスコア"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(user)s により %(score)d 点のレーティング"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"このコメントは %(user)s がフラグ付けしました。:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "フラグ日"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "ユーザフラグ"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "ユーザフラグ"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "%r によるフラグ"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "削除日"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "モデレータ削除"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "モデレータ削除"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "%r によるモデレータ削除"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "パスワードをお忘れですか？"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "レーティング"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "必須"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "オプション"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "写真を登録"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "コメント:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "コメントをプレビュー"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "ユーザ名:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"他のレーティングを入力した場合は、このレーティングは必ず入力してください。"
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"このコメントを投稿したユーザのコメント数は %(count)s 未満です。コメント:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"このコメントを投稿したユーザの詳細は不明です:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "POST メソッドのみ有効です。"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "必須項目がいくつか入力されていません。"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "だれかがコメントフォームを改竄しています (セキュリティ侵害です)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"コメントフォームの 'target' パラメータが不正です。 -- オブジェクト IDが不正な"
+"値でした"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "コメントの「プレビュー」「投稿」種別が不明です。"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "非ログインユーザは投票できません。"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "コメント ID が不正です"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "自分には投票できません。"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "Python モデルクラス名"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "コンテンツタイプ"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "コンテンツタイプ"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"例: '/about/contact/'. 先頭と最後にスラッシュがあるか確認してください。"
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"半角の英数字、アンダースコア、ダッシュ、スラッシュ以外は使用できません。"
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "詳細設定"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "タイトル"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "内容"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "コメントを有効にする"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "テンプレート名"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"例: 'flatpages/contact_page.html'. 指定しなければ、デフォルト設定"
+"の'flatpages/default.html' を使います。"
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "登録が必要です"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "チェックした場合、ログインしたユーザだけがページを参照できます。"
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "フラットページ"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "フラットページ"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Geo値がありません。"
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Geo値が不正です"
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Geometry タイプが不正です。"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "番目"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "番目"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "番目"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "番目"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f 百万"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f 十億"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f 兆"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "1"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "2"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "3"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "4"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "5"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "6"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "7"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "8"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "9"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "今日"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "明日"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "昨日"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "NNNNか、ANNNNAAAの形式で郵便番号を入力してください。"
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "このフィールドは必須です(数値のみ)。"
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "7桁か8桁で入力して下さい。"
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+"XX-XXXXXXXX-X か XXXXXXXXXXXX の形式で納税証明単一番号(CUIT)を入力して下さ"
+"い。"
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "無効な納税証明単一番号(CUIT): %s"
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "Burgenland"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Carinthia"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "Lower Austria"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "Upper Austria"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "Salzburg"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "Styria"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "Tyrol"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "Vorarlberg"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "Vienna"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "XXXXの形式でZipコードを入力してください。"
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr "XXXX XXXXXX の形式でオーストリア社会保障番号を入力してください。"
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "4桁でポストコードを入力してください。"
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "XXXXX-XXXの形式でZipコードを入力してください。"
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "電話番号は XX-XXXX-XXXX 形式で入力してください。"
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "ブラジルの州から選択してください。選択したものは候補にありません。"
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "ブラジル納税者番号(CPF)が無効です。"
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "11桁の数字か14文字で入力してください。"
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "納税登録番号(CNPJ)が正しくありません。"
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "14桁以上で入力して下さい。"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "XXX XXXの形式で郵便番号を入力してください。"
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "XXX-XXX-XXX の形式で、カナダ社会保障番号を入力して下さい。"
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Geneva"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"スイス アイデンティティかパスポート番号を X1234567<0 か 1234567890 の形式で入"
+"力して下さい。"
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "正しいチリ納税者番号(RUT)を入力してください。"
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "XX.XXX.XXX-Xの形式でチリ納税者番号(RUT)を入力してください。"
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "このチリ納税者番号(RUT)は無効です。"
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavaria"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Western Pomerania"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Lower Saxony"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "North Rhine-Westphalia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhineland-Palatinate"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxony"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxony-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thuringia"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "XXXXXの形式でZipコードを入力してください。"
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X の形式でドイツIDカード番号を入力して下さい。"
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Arava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almeria"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Avila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Illes Balears"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Caceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cadiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castello"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Cordoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruna"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaen"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "Leon"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Malaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarre"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Seville"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Bizkaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalusia"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragon"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principality of Asturias"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Balearic Islands"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Basque Country"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Canary Islands"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castile-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castile and Leon"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Catalonia"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Region of Murcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Foral Community of Navarre"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valencian Community"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "01XXX から 52XXXの形式で郵便番号を入力してください。"
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"6XXXXXXXX か 8XXXXXXXX か 9XXXXXXXX かのいずれかの形式で電話番号を入力してく"
+"ださい。"
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr ""
+"スペイン納税者番号(NIF)かスペイン住民番号(N.I.E)かスペイン企業番号(CIF)のいず"
+"れかを入力してください。"
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "スペイン納税者番号(NIF)かスペイン住民番号(N.I.E)を入力してください。"
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "スペイン納税者番号(NIF)のチェックサムがあいません。"
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "スペイン住民番号(N.I.E)のチェックサムがあいません。"
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "スペイン企業番号(CIF)のチェックサムがあいません。"
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "XXXX-XXXX-XX-XXXXXXXXXX の形式で銀行口座番号を入力して下さい。"
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "銀行口座番号のチェックサムがあいません。"
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "フィンランド社会保証番号を正しく入力してください。"
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "XXXXXXXの形式でZipコードを入力してください。"
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "XXXXXか、XXXXX-XXXXの形式でアイスランド納税者番号を入力してください。"
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "アイスランド納税者番号を正しく入力して下さい。"
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Zipコードを正しく入力してください。"
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "社会保障番号番号を正しく入力してください。"
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "VAT番号を正しく入力してください。"
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "XXXXXか、XXXXX-XXXXの形式で郵便番号を入力してください。"
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "北海道"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "青森県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "岩手県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "宮城県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "秋田県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "山形県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "福島県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "茨城県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "栃木県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "群馬県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "埼玉県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "千葉県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "東京都"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "神奈川県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "山梨県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "長野県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "新潟県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "富山県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "石川県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "福井県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "岐阜県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "静岡県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "愛知県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "三重県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "滋賀県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "京都府"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "大阪府"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "兵庫県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "奈良県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "和歌山県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "鳥取県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "島根県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "岡山県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "広島県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "山口県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "徳島県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "香川県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "愛媛県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "高知県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "福岡県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "佐賀県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "長崎県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "熊本県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "大分県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "宮崎県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "鹿児島県"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "沖縄県"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Estado de México"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacan"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo Leon"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Queretaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosi"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatan"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "郵便番号を正しく入力してください。"
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "電話番号を正しく入力してください。"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "社会税務番号(SoFi)を正しく入力してください。"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friesland"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburg"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Noord-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Noord-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Zuid-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "ノルウェー社会保障番号を正しく入力してください。"
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "8桁で入力して下さい。"
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "11桁で入力して下さい。"
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr "国民識別番号は11文字で入力して下さい。"
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr "国民識別番号のチェックサムがあいません。"
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "XXXXXか、XXXXX-XXXXの形式で納税者欄(NIP)を入力してください。"
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "税務署登録ID(NIP)のチェックサムがあいません。"
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "ポーランド企業番号(REGON)は7文字か9文字で入力して下さい。"
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "ポーランド企業番号(REGON)のチェックサムがあいません。"
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "XX-XXXの形式で郵便番号を入力してください。"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Lower Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Lesser Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Subcarpatia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Greater Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "West Pomerania"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "CIFを正しく入力してください。"
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "CNPを正しく入力してください。"
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr "ROXX-XXXX-XXXX-XXXX-XXXX-XXXX の形式でIBANを入力してください"
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "電話番号は XXXX-XXXXXX 形式で入力してください。"
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "XXXXXX の形式で郵便番号を入力してください。"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "XXXXXか、XXX XXの形式で郵便番号を入力してください。"
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banska Bystrica region"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Bratislava region"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Kosice region"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Nitra region"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Presov region"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Trencin region"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Trnava region"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Zilina region"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "郵便番号を正しく入力してください。"
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall and Isles of Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Greater London"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Greater Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "South Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "West Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "County Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "County Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Central Scotland"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetland Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "England"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Northern Ireland"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Scotland"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Wales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "XXXXXか、XXXXX-XXXXの形式で郵便番号を入力してください。"
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "XXX-XX-XXXX の形式で、米国社会保障番号を入力して下さい。"
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "南アフリカID番号を正しく入力してください。"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "南アフリカ郵便番号を正しく入力してください。"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Eastern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Free State"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Northern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "North West"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Western Cape"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "リダイレクト元"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr "'/events/search/' のように、ドメイン名を除いた絶対パスにします。 "
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "リダイレクト先"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "上記のような絶対パスか、 'http://' で始まる完全な URL にします。"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "リダイレクト"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "リダイレクト"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "セッションキー"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "セッションデータ"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "有効期限"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "セッション"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "セッション"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "ドメイン名"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "表示名"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "サイト"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "半角の英数字、アンダースコア、ハイフン以外は使用できません。"
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "大文字はここでは使用できません。"
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "小文字はここでは使用できません。"
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "カンマ区切りの数字だけを入力してください。"
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "カンマ区切りの有効なメールアドレスを入力してください。"
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "有効な IP アドレスを入力してください。"
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "入力は必須です。"
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "数値以外は使用できません。"
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "数値だけの値にはできません。"
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "整数を入力してください。"
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "半角アルファベット以外使用できません。"
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "無効な日付: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "YYYY-MM-DD形式で日付を入力してください。"
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "HH:MM形式で時刻を入力してください。"
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "YYYY-MM-DD HH:MM形式で日時を入力してください。"
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "有効なメールアドレスを入力してください。"
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"ファイルが取得できませんでした。formのencoding typeを確認してください。"
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "画像をアップロードしてください。アップロードしたファイルは画像でないか、または壊れています。"
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL ( %s )  は画像ではありません。"
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "電話番号は XXX-XXX-XXXX 形式で入力してください。\"%s\" は無効です。"
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL ( %s ) は QuickTime ビデオではありません。"
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "正しい URL を入力してください。"
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"有効な HTML を入力してください。エラー:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "不正な XML です: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "無効なURL: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL ( %s ) はリンクが壊れています。"
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "正しい米州略称を入力してください。"
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "言葉使いに気を付けて！ %s という言葉は使えません。"
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "このフィールドは '%s' フィールドと一致せねばなりません。"
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "少なくとも一つのフィールドに何か入力してください。"
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "両方のフィールドに入力するか、両方とも未入力にしてください。"
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr ""
+"%(field)s を %(value)s にするのなら、このフィールドに必ず入力してください。"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr ""
+"%(field)s を %(value)s にしないのなら、このフィールドに必ず入力してください。"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "重複する値は認められません。"
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "この値は %(lower)s から %(upper)s の間でなければなりません。"
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "この値は %s 以上でなければなりません。"
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "この値は %s より小さくなければなりません。"
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "この値は %s の累乗でなければなりません。"
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "有効な 10 進数を入力してください。"
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "全体で %s 文字以下の数字を入力してください。"
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "整数部は %s 文字以下の数字を入力してください。"
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "小数部は %s 文字以下の数字を入力してください。"
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "有効な 小数 を入力してください。"
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "アップロードするファイルの大きさは %s バイト以上にしてください。"
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "アップロードするファイルの大きさは %s 最大バイトまでです。"
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "フィールドの形式が正しくありません。"
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "このフィールドは無効です。"
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "%s から何も検索できませんでした。"
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"URL %(url)s は無効なコンテンツタイプヘッダ '%(contenttype)s' を返しました。"
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"%(line)s 行目から始まる %(tag)s タグを閉じてください (\"%(start)s\" で始まる"
+"行です)。"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"%(line)s 行目から始まるテキストはこのコンテキストでは使えません。 (\"%(start)"
+"s\" で始まる行です)。"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"%(line)s 行目の \"%(attr)s\" は無効なアトリビュートです (\"%(start)s\" で始ま"
+"る行です)。"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"%(line)s 行目の \"<%(tag)s>\" は無効なタグです( \"%(start)s\" で始まる行で"
+"す)。"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"%(line)s 行目のタグは必須アトリビュートが未入力です( \"%(start)s\" で始まる行"
+"です)。"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"%(line)s 行目の \"%(attr)s\" アトリビュートの値が正しくありません (\"%(start)"
+"s\" で始まる行です) 。"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+"%(field)s に入力されたものは、この %(type)s の %(object)s に既に存在します。"
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(fieldname)s に %(optname)s は既に存在します。"
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "このフィールドは必須です。"
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "値は整数でなければなりません。"
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "値は真: True または偽: False でなければなりません。"
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "このフィールドには NULL を指定できません。"
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "YYYY-MM-DD HH:MM[:ss[.uuuuuu]]形式で日時を入力してください。"
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "値は整数でなければなりません。"
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "値は、空: None、真: True または偽: False でなければなりません。"
+
+#: db/models/fields/__init__.py:937 db/models/fields/__init__.py:950
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "HH:MM[:ss[.uuuuuu]]形式で時刻を入力してください。"
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "正しいファイル名を入力してください。"
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "正しい %s を入力してください。"
+
+#: db/models/fields/related.py:776
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"複数選択するときには Control キーを押したまま選択してください。Mac は "
+"Command キーを使ってください"
+
+#: db/models/fields/related.py:856
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "正しい %(self)s IDを入力してください。 %(value)r は無効です。"
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "値を正しく入力してください。"
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "%(max)d 字以下で入力してください( %(length)d 文字入力されました)。"
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "%(min)d 字以上で入力してください。( %(length)d 文字入力されました)。"
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "この値は %s 以下でなければなりません。"
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "この値は %s 以上でなければなりません。"
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "整数を入力してください。"
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "整数部と少数部を併せて %s 桁までで入力して下さい。"
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "少数部は %s 桁までで入力して下さい。"
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "整数部は %s 桁までで入力して下さい。"
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "日付を正しく入力してください。"
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "時間を正しく入力してください。"
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "日付/時間を正しく入力してください。"
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "ファイルが送信されていません。"
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "入力されたファイルは空です。"
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "URLを正しく入力してください。"
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "このURLはリンクが壊れています。"
+
+#: forms/fields.py:601 forms/fields.py:652
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "正しく選択してください。 %(value)s は候補にありません。"
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "リストを入力してください。"
+
+#: forms/fields.py:832
+msgid "Enter a valid IPv4 address."
+msgstr "有効なIPアドレス (IPv4) を入力してください。"
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "正しく選択してください。選択したものは候補にありません。"
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "正しく選択してください。 %s は候補にありません。"
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "%s 字以下で入力してください。"
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "改行はできません。"
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "正しく選択してください。; '%(data)s' は %(choices)s にありません。"
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "-32,768 から 32,767 までの整数を入力してください。"
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "正の数を入力してください。"
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "0 から 32,767 までの整数を入力してください。"
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "はい,いいえ,たぶん"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d バイト"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "0時"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "12時"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "月曜日"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "火曜日"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "水曜日"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "木曜日"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "金曜日"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "土曜日"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "日曜日"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "月"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "火"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "水"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "木"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "金"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "土"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "日"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "1月"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "2月"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "3月"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "4月"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "5月"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "6月"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "7月"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "8月"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "9月"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "10月"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "11月"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "12月"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "1月"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "2月"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "3月"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "4月"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "5月"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "6月"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "7月"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "8月"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "9月"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "10月"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "11月"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "12月"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "1月"
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "2月"
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "8月"
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "9月"
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "10月"
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "11月"
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "12月"
+
+#: utils/text.py:128
+msgid "or"
+msgstr "または"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "年"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "ヶ月"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "週間"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "日"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "時間"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "分"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "分"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "Y/m/d"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "Y/m/d H:i"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "Y/m/d"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "m/d"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s を作成しました。"
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s を更新しました。"
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr " %(verbose_name)s を削除しました。"
+
+#~ msgid "Your new password is: %(new_password)s"
+#~ msgstr "新しいパスワード: %(new_password)s"
+
+#~ msgid "Feel free to change this password by going to this page:"
+#~ msgstr "パスワードは下記のページで自由に変更していただけます:"
+
+#~ msgid "Gaeilge"
+#~ msgstr "アイルランド語"
+
+#~ msgid "Brazilian"
+#~ msgstr "ブラジル語"
+
+#~ msgid "Ordering"
+#~ msgstr "順序"
+
+#~ msgid "Order:"
+#~ msgstr "並び変え:"
+
+#~ msgid "Added %s."
+#~ msgstr "%s を追加しました。"
+
+#~ msgid "Deleted %s."
+#~ msgstr "%s を削除しました。"
+
+#~ msgid "The two 'new password' fields didn't match."
+#~ msgstr "新しいパスワード(確認用)が一致しません。"
+
+#~ msgid "Year must be 1900 or later."
+#~ msgstr "1900年以降を指定してください。"
+
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "複数の ID はカンマで区切ってください。"
diff --git a/webapp/django/conf/locale/ja/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/ja/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..6abe6ea
--- /dev/null
+++ b/webapp/django/conf/locale/ja/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ja/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/ja/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..c7f2db5
--- /dev/null
+++ b/webapp/django/conf/locale/ja/LC_MESSAGES/djangojs.po
@@ -0,0 +1,113 @@
+# Japanese translation for js.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-03-26 23:41+0900\n"
+"PO-Revision-Date: 2006-05-08 13:39+0900\n"
+"Last-Translator: makoto tsuyuki <mtsuyuki@gmail.com>\n"
+"Language-Team: Japanese <django-ja@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "日 月 火 水 木 金 土"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "日曜 月曜 火曜 水曜 木曜 金曜 土曜"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "利用可能 %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "全て選択"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "追加"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "削除"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "選択された %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "選択してクリック"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "全てクリア"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "表示"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "非表示"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "現在"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "時計"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "時間を選択"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "0時"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "午前 6 時"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "12時"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "キャンセル"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "今日"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "カレンダー"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "昨日"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "明日"
diff --git a/webapp/django/conf/locale/ka/LC_MESSAGES/django.mo b/webapp/django/conf/locale/ka/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..aa632e4
--- /dev/null
+++ b/webapp/django/conf/locale/ka/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ka/LC_MESSAGES/django.po b/webapp/django/conf/locale/ka/LC_MESSAGES/django.po
new file mode 100644
index 0000000..59bec5e
--- /dev/null
+++ b/webapp/django/conf/locale/ka/LC_MESSAGES/django.po
@@ -0,0 +1,4571 @@
+# Django translation to Georgian language.
+# Copyright (C) 2008
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-20 21:33+0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: David Avsajanishvili <avsd05@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "არაბული"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "ბენგალიური"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "ბულგარული"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "კატალანური"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "ჩეხური"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "უელსური"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "დანიური"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "გერმანული"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "ბერძნული"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "ინგლისური"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "ესპანური"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "ესტონური"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "არგენტინის ესპანური"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "ბასკური"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "სპარსული"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "ფინური"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "ფრანგული"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "ირლანდიური"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "გალიციური"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "უნგრული"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "ებრაული"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "ხორვატიული"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "ისლანდიური"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "იტალიური"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "იაპონური"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "ქართული"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "კორეული"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "ხმერული"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "კანნადა"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "ლატვიური"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "ლიტვური"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "მაკედონური"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "ჰოლანდიური"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "ნორვეგიული"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "პოლონური"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "პორტუგალიური"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "ბრაზილიური პორტუგალიური"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "რუმინული"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "რუსული"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "სლოვარური"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "სლოვენიური"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "სერბული"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "შვედური"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "თამილური"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "ტელუგუ"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "თურქული"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "უკრაინული"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "გამარტივებული ჩინური"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "ტრადიციული ჩინური"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>%s-ს მიერ:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "ყველა"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "ნებისმიერი თარიღი"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "დღეს"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "ბოლო 7 დღე"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "მიმდინარე თვე"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "მიმდინარე წელი"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "კი"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "არა"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "გაურკვეველი"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "მოქმედების დრო"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "ობიექტის id"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "ობიექტის წარმ."
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "მოქმედების დროშა"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "შეცვლის შეტყობინება"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "ლოგის ერთეული"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "ლოგის ერთეულები"
+
+#: contrib/admin/options.py:56 contrib/admin/options.py:115
+msgid "None"
+msgstr "არცერთი"
+
+#: contrib/admin/options.py:326
+#, python-format
+msgid "Changed %s."
+msgstr "%s შეცვლილია."
+
+#: contrib/admin/options.py:326 contrib/admin/options.py:336
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "და"
+
+#: contrib/admin/options.py:331
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "დამატებულია %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:335
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "შეცვლილია %(list)s for %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:340
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "წაშლილია %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:344
+msgid "No fields changed."
+msgstr "არცერთი ველი არ შეცვლილა."
+
+#: contrib/admin/options.py:405 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" წარმატებით დაემატა."
+
+#: contrib/admin/options.py:409 contrib/admin/options.py:442
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "თქვენ შეგიძლიათ შეცვალოთ იგი."
+
+#: contrib/admin/options.py:419 contrib/admin/options.py:452
+#, python-format
+msgid "You may add another %s below."
+msgstr "შეგიძლიათ დაამატოთ კიდევ ერთი %s."
+
+#: contrib/admin/options.py:440
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" წარმატებით შეიცვალა."
+
+#: contrib/admin/options.py:448
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"%(name)s \"%(obj)s\" წარმატებით დაემატა. შეგიძლიათ განაგრძოთ მისი "
+"რედაქტირება."
+
+#: contrib/admin/options.py:514
+#, python-format
+msgid "Add %s"
+msgstr "დავამატოთ %s"
+
+#: contrib/admin/options.py:591
+#, python-format
+msgid "Change %s"
+msgstr "შევცვალოთ %s"
+
+#: contrib/admin/options.py:622
+msgid "Database error"
+msgstr "მონაცემთა ბაზის შეცდომა"
+
+#: contrib/admin/options.py:671
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" წარმატებით წაიშალა."
+
+#: contrib/admin/options.py:678
+msgid "Are you sure?"
+msgstr "დარწმუნებული ხართ?"
+
+#: contrib/admin/options.py:705
+#, python-format
+msgid "Change history: %s"
+msgstr "ცვლილებების ისტორია: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"გთხოვთ, შეიყვანოთ სწორი მომხმარებლის სახელი და პაროლი. გაითვალისწინეთ, რომ "
+"ორივე ველი დამოკიდებულია რეგისტრზე."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"გთხოვთ, შეხვიდეთ კიდევ ერთხელ, რადგანაც თქვენი სესიის დრო ამოიწურა. ნუ "
+"ღელავთ: თქვენს მიერ შეტანილი ცვლილებები შენახულია."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"როგორც ჩანს, თქვენი ბროუზერი არ ღებულობს cookie-ებს. გთხოვთ, ჩართოთ cookie-"
+"ების მიღების ფუნქცია, განაახლეთ ეს გვერდი და სცადეთ კიდევ ერთხელ."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "მომხმარებლის სახელი არ უნდა შეიცავდეს სიმბოლოს '@'."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"ელ-ფოსტის მისამართი არ არის თქვენი მომხმარებლის სახელი. სცადეთ '%s' მის "
+"ნაცვლად."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "საიტის ადმინისტრირება"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "შესვლა"
+
+#: contrib/admin/util.py:138
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "ერთი ან რამდენიმე %(fieldname)s ობიექტში %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:143
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "ერთი ან რამდენიმე %(fieldname)s ობიექტში %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "თარიღი;"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "დრო:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "მიმდინარე:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "შეცვლა:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "გვერდი ვერ მოიძებნა"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "უკაცრავად, მოთხოვნილი გვერდი ვერ მოიძებნა."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "საწყისი გვერდი"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "სერვერის შეცდომა"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "სერვერის შეცდომა (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "სერვერის შეცდომა <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"სისტემაში მოხდა შეცდომა. იგი გადაგზავნილია საიტის ადმინისტრატორის ელექტრონულ "
+"ფოსტაზე და მალე გამოსწორდება. გმადლობთ მოთმინებისათვის."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "კეთილი იყოს თქვენი მობრძანება,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "დოკუმენტაცია"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "პაროლის შეცვლა"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "გამოსვლა"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django-ს ადმინისტრირების საიტი"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django-ს ადმინისტრირება"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "დამატება"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "ისტორია"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "წარმოდგენა საიტზე"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "გთხოვთ, გაასწორეთ ქვემოთ მოყვანილი შეცდომა."
+msgstr[1] "გთხოვთ, გაასწორეთ ქვემოთ მოყვანილი შეცდომები."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "დავამატოთ %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "ფილტრი"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "წავშალოთ"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"ობიექტების წაშლა: %(object_name)s '%(escaped_object)s' გამოიწვევს "
+"დაკავშირებული ობიექტების წაშლას, მაგრამ თქვენ არა გაქვთ შემდეგი ტიპების "
+"ობიექტების წაშლის უფლება:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"ნამდვილად გსურთ, წაშალოთ %(object_name)s \"%(escaped_object)s\"? ყველა "
+"ქვემოთ მოყვანილი დაკავშირებული ობიექტი წაშლილი იქნება:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "კი, ნამდვილად"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " %(filter_title)s მიხედვით "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "%(name)s აპლიკაციაში არსებული მოდელები."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "შეცვლა"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "თქვენ არა გაქვთ რედაქტირების უფლება."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "ბოლო მოქმედებები"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "ჩემი მოქმედებები"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "არ არის მისაწვდომი"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"თქვენი მონაცემთა ბაზის ინსტალაცია არაკორექტულია. დარწმუნდით, რომ მონაცემთა "
+"ბაზის შესაბამისი ცხრილები შექმნილია, და მონაცემთა ბაზის წაკითხვა შეუძლია "
+"შესაბამის მომხმარებელს."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "მომხმარებლის სახელი:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "პაროლი:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "თარიღი/დრო"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "მომხმარებელი"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "მოქმედება"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"ამ ობიექტს ცვლილებების ისტორია არა აქვს. როგორც ჩანს, იგი არ იყო დამატებული "
+"ადმინისტრირების საიტის მეშვეობით."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "ვაჩვენოთ ყველა"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "ძებნა"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "ერთი შედეგი"
+msgstr[1] "%(counter)s შედეგი"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "სულ %(full_result_count)s"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "შევინახოთ, როგორც ახალი"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "შევინახოთ და დავამატოთ ახალი"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "შევინახოთ და გავაგრძელოთ რედაქტირება"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "შევინახოთ"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"ჯერ შეიყვანეთ მომხმარებლის სახელი და პაროლი. ამის შემდეგ თქვენ გექნებათ "
+"მომხმარებლის სხვა ოპციების რედაქტირების შესაძლებლობა."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "მომხმარებელი"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "პაროლი"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "პაროლი (განმეორებით)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "შეიყვანეთ იგივე პაროლი, დამოწმებისათვის."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr ""
+"შეიყვანეთ ახალი პაროლი მომხმარებლისათვის <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "გმადლობთ, რომ დღეს ამ საიტთან მუშაობას დაუთმეთ დრო."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "ხელახლა შესვლა"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "პაროლის შეცვლა"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "პაროლი წარმატებით შეიცვალა"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "თქვენი პაროლი შეიცვალა."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"გთხოვთ, უსაფრთხოების დაცვის მიზნით, შეიყვანოთ თქვენი ძველი პაროლი, შემდეგ კი "
+"ახალი პაროლი ორჯერ, რათა დარწმუნდეთ, რომ იგი შეყვანილია სწორად."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "ძველი პაროლი:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "ახალი პაროლი:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "პაროლის დამოწმება:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "შევცვალოთ ჩემი პაროლი"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "პაროლის აღდგენა"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "პაროლის აღდგენა დასრულებულია"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "თქვენი პაროლი დაყენებულია. ახლა შეგიძლიათ გადახვიდეთ შემდეგ გვერდზე და შეხვიდეთ სისტემაში."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "პაროლი შეცვლის დამოწმება"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "შეიყვანეთ ახალი პაროლი:"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"გთხოვთ, შეიყვანეთ თქვენი ახალი პაროლი ორჯერ, რათა დავრწმუნდეთ, "
+"რომ იგი სწორად ჩაბეჭდეთ."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "პაროლის აღდგენა წარუმატებლად დასრულდა"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"პაროლის აღდგენის ბმული არასწორი იყო, შესაძლოა იმის გამო, რომ "
+"იგი უკვე ყოფილა გამოყენებული. გთხოვთ, კიდევ ერთხელ სცადოთ პაროლის აღდგენა."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "პაროლის აღდგენა წარმატებით დასრულდა"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"თქვენს მიერ მითითებულ საფოსტო ყუთზე გამოგიგზავნეთ ინსტრუქციები, "
+"თუ როგორ უნდა დააყენოთ თქვენი პაროლი. წერილი მალე უნდა მიიღოთ."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "თქვენ მიიღეთ ეს წერილი, რადგანაც მოითხოვეთ პაროლის აღდგენა"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "თქვენი მომხმარებლის ანგარიშისათვის %(site_name)s-საიტზე"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "გთხოვთ, გადახვიდეთ შემდეგ გვერდზე და აირჩიოთ ახალი პაროლი:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "თქვენი მომხმარებლის სახელი (თუ დაგავიწყდათ):"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "გმადლობთ, რომ იყენებთ ჩვენს საიტს!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s საიტის გუნდი"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"დაგავიწყდათ პაროლი? შეიყვანეთ თქვენი ელექტრონული ფოსტის მისამართი ამ ველში, "
+"ჩვენ გამოგიგზავნით ინსტრუქციებს, როგორ დააყენოთ ახალი."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "ელ. ფოსტა:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "აღვადგინოთ ჩემი პაროლი"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "ყველა თარიღი"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "ავირჩიოთ %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "აირჩიეთ %s შესაცვლელად"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "საიტი"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "შაბლონი"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "ტეგი:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "ფილტრი:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "წარმოდგენა:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "აპლიკაცია %r ვერ მოიძებნა"
+
+#: contrib/admindocs/views.py:194
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "მოდელი %(model_name)r ვერ მოიძებნა აპლიკაციაში %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "`%(app_label)s.%(data_type)s` დაკავშირებული ობიექტი"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "მოდელი:"
+
+#: contrib/admindocs/views.py:237
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "`%(app_label)s.%(object_name)s` დაკავშირებული ობიექტები"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "ყველა %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "%s - რაოდენობა"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s ობიექტების ველები"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "მთელი"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "ლოგიკური (True ან False)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "სტრიქონი (%(max_length)s სიმბოლომდე)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "მძიმით გამოყოფილი მთელი რიცხვები"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "თარიღი (დროის გარეშე)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "თარიღი (დროსთან ერთად)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "ათობითი რიცხვი"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "ელ. ფოსტის მისამართი"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "გზა ფაილისაკენ"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "რიცხვი მცოცავი წერტილით"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP-მისამართი"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "ლოგიკური (True, False ან None)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "მშობელ მოდელთან დამოკიდებულება"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "ტელეფონის ნომერი"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "ტექსტი"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "დრო"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "აშშ შტატი (ორი ასომთავრული)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML ტექსტი"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s არ არის urlpattern-ის შესაბამისი ობიექტი"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "სანიშნები"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "დოკუმენტაციის სანიშნები"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">სანიშნების დასაყენებლად გადაათრიეთ ბმული თქვენი "
+"სანიშნების\n"
+"პანელზე, ან დააწკაპეთ ბმულზე მარჯვენა ღილაკით და დაამატეთ იგი სანიშნებში.\n"
+"ამის შემდეგ თქვენ შეძლებთ სანიშნის არჩევას საიტის ნებისმიერი გვერდიდან.\n"
+"გაითვალისწინეთ, რომ ზოგიერთი სანიშნის მოხმარებისათვის საჭიროა, რომ თქვენ\n"
+"იყოთ შესული ამ საიტზე ე.წ. \"შიდა\" კომპიუტერიდან (შეუთანხმდით თქვენს\n"
+"ადმინისტრატორს, თუ არ ხართ დარწმუნებული, რომ თქვენი კომპიუტერი არის\n"
+"\"შიდა\" კომპიუტერი).</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "ამ გვერდის დოკუმენტაცია"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"გადასვლა ნებისმიერი გვერდიდან იმ წარმოდგენის დოკუმენტაციაზე, რომელიც ამ "
+"გვერდს აგენერირებს."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "ობიექტის ID-ის ჩვენება"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"ერთი ობიექტის ამსახველი გვერდის content-type-ის და უნიკალური ID-ის ჩვენება."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "შევცვალოთ ეს ობიექტი (იმავე ფანჯარაში)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "ერთი ობიექტის ამსახველი გვერდების ადმინისტრირებაზე გადასვლა."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "შევცვალოთ ეს ობიექტი (ახალ ფანჯარაში)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "იგივე, ოღონდ ხსნის ადმინისტრირების გვერდს ახალ ფანჯარაში."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "პირადი ინფორმაცია"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "უფლებები"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "მნიშვნელოვანი თარიღები"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "ჯგუფები"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "მომხმარებლის დამატება"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "პაროლი წარმატებით შეიცვალა."
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "შევცვალოთ პაროლი: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"აუცილებელია. 30 ან ნაკლები სიმბოლო. მხოლოდ ლათინური ასოები, ციფრები და "
+"ხაზგასმა."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr ""
+"ეს მნიშვნელობა შეიძლება შეიცავდეს მხოლოდ ასოებს, ციფრებს და ხაზგასმის "
+"ნიშნებს."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "პაროლის დამოწმება"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "მომხმარებელი ამ სახელით უკვე არსებობს."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "პაროლის ორი ველი ერთმანეთს არ ემთხვევა."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "თქვენი ანგარიში არააქტიურია."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"თქვენი ბროუზერი არ ღებულობს cookie-ებს. Cookie საჭიროა საიტზე შესასვლელად."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "ელ. ფოსტა"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"ელ.ფოსტის ეს მისამართი არ შეესაბამება არცერთ მომხმარებელს. ნამდვილად ხართ "
+"დარეგისტრირებული?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "პაროლი შეცვლილია: %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "ახალი პაროლი"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "ახალი პაროლის დამოწმება"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "ძველი პაროლი"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "თქვენი ძველი პაროლი შეყვანილია არასწორად. გთხოვთ, შეიყვანოთ ხელახლა."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "სახელი"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "კოდური სახელი"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "უფლება"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "უფლებები"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "ჯგუფი"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "ჯგუფები"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "მომხმარებლის სახელი"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "სახელი"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "გვარი"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "ელ. ფოსტა"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "პაროლი"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"გამოიყენეთ '[algo]$[salt]$[hexdigest]' ან <a href=\"password/\">პაროლის "
+"შეცვლის ფორმა</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "თანამშრომლობის სტატუსი"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+"განსაზღვრავს, აქვს თუ არა მომხმარებელს ადმინისტრირების საიტზე შესვლის უფლება."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "აქტიურია"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"განსაზღვრავს, რომ მომხმარებელი გააქტიურებულია. მომხმარებლის წაშლის მაგივრად "
+"გადანიშნეთ ეს დროშა."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "სუპერმომხმარებლის სტატუსი"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "განსაზღვრავს, რომ ამ მომხმარებელს აქვს ყველა უფლება."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "ბოლო შესვლა"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "გაწევრიანების თარიღი"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"ინდივიდუალურად მითითებული უფლებების გარდა, ეს მომხმარებელი მიიღებს აგრეთვე "
+"ყველა იმ ჯგუფის უფლებას, რომელშიც იგი გაწევრიანებულია."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "მომხმარებლის უფლებები"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "მომხმარებელი"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "მომხმარებლები"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "შეტყობინება"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "გამოსული ხართ"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "ობიექტის ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "ჰედლაინი"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "კომენტარი"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "რეიტინგი #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "რეიტინგი #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "რეიტინგი #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "რეიტინგი #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "რეიტინგი #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "რეიტინგი #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "რეიტინგი #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "რეიტინგი #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "დასაშვები რეიტინგია"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "გაგზავნის თარიღი და დრო"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "საყოველთაოა"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "წაშლილია"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"მონიშნეთ ეს დროშა, თუ კომენტარი შეუსაბამოა. მის ნაცვლად გაჩნდება "
+"შეტყობინება: \"კომენტარი წაშლილია\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "კომენტარები"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "კონტენტის ობიექტი"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"გამოგზავნილია %(user)s-ს მიერ, %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "პიროვნების სახელი"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "ip-მისამართი"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "მოწონებულია პერსონალის მიერ"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "თავისუფალი კომენტარი"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "თავისუფალი კომენტარები"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "შეფასება"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "შეფასების თარიღი"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "კარმა-შეფასება"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "კარმა-შეფასებები"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d შეფასებულია %(user)s-ის მიერ"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"ეს კომენტარი მონიშნულია %(user)s-ის მიერ:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "მონიშვნის თარიღი"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "მომხმარებლის მონიშვნა"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "მომხმარებლის მონიშვნები"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "%r-ის მონიშვნები"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "წაშლის თარიღი"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "მოდერატორის წაშლა"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "მოდერატორის წაშლები"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "მოდერატორის წაშლა %r-ის მიერ"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "დაგავიწყდათ თქვენი პაროლი?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "რეიტინგები"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "აუცილებელია"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "არასავალდებულოა"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "სურათის გაგზავნა"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "კომენტარი:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "კომენტარის წინასწარი ნახვა"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "თქვენი სახელი:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "ეს რეიტინგი აუცილებელია, რადგანაც თქვენ შესულხართ სხვა რეიტინგებში."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"ეს კომენტარი გამოგზავნილია მომხმარებლის მიერ, რომელსაც %(count)s-ზე ნაკლები "
+"კომენტარი აქვს:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"ეს კომენტარი გამოგზავნილია მომხმარებლის მიერ, რომელსაც %(count)s-ზე ნაკლები "
+"კომენტარი აქვს:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"ეს კომენტარი გამოგზავნილია ზერელე მომხმარებლის მიერ:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "დაშვებულია მხოლოდ POST-ები"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "ერთი ან რამდენიმე აუცილებელი ველი არ იყო მითითებული"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "ვიღაცა ჩაერია კომენტარის ფორმაში (უსაფრთხოების დარღვევა)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"კომენტარის ფორმას აქვს არასწორი პარამეტრი 'target' -- ობიექტის ID არ იყო "
+"სწორი"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "კომენტარის ფორმას არა აქვს 'წინასწარი ხედვის' ან 'გაგზავნის' საშუალება"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "ანონიმურ მომხმარებლებს ხმის მიცემის უფლება არა აქვთ"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "კომენტარის ID არასწორია"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "საკუთარი თავისათვის ხმის მიცემა აკრძალულია"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "python-ის მოდელის კლასის სახელი"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "კონტენტის ტიპი"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "კონტენტის ტიპები"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"მაგალითი: '/about/contact/'. ყურადღება მიაქციეთ დახრილ ხაზებს თავში და "
+"ბოლოში."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"ეს მნიშვნელობა შეიძლება შეიცავდეს მხოლოდ ასოებს, ციფრებს, ხაზგასმის ნიშნებს, "
+"ტირეებს და დახრილ ხაზებს."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "დამატებითი პარამეტრები"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "სათაური"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "კონტენტი"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "ჩავრთოთ კომენტარები"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "შაბლონის სახელი"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"მაგალითი: 'flatpages/contact_page.html'. თუ იგი მითითებული არ არის, "
+"გამოყენებული იქნება 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "რეგისტრაცია აუცილებელია"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"თუ ეს დროშა ჩართულია, მხოლო შემოსულ მომხმარებლებს ექნებათ გვერდის "
+"დათვალიერების საშუალება."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "უბრალო გვერდი"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "უბრალო გვერდები"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "გეომეტრიის მნიშვნელობა მოცემული არ არის."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "გეომეტრიის მნიშვნელობა არასწორია."
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "გეომეტრიის ტიპი არასწორია."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "-ე"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "-ლი"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "-ე"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "-ე"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f მილიონი"
+msgstr[1] "%(value).1f მილიონი"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f მილიარდი"
+msgstr[1] "%(value).1f მილიარდი"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f ტრილიონი"
+msgstr[1] "%(value).1f ტრილიონი"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "ერთი"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "ორი"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "სამი"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "ოთხი"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "ხუთი"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "ექვსი"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "შვიდი"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "რვა"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "ცხრა"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "დღეს"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "ხვალ"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "გუშინ"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "შეიყვანეთ საფოსტო კოდი ერთ-ერთ ფორმატში: NNNN ან ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "ამ ველში შეიძლება იყოს მხოლოდ ციფრები."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "ამ ველში შეიძლება იყოს 7 ან 8 თანრიგი."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+"შეიყვანეთ დასაშვები CUIT ერთ-ერთ ფორმატში: XX-XXXXXXXX-X ან XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "არასწორი CUIT."
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "ბურგლენდი"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "კარინტია"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "ქვემო ავსტრია"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "ზემო ავსტრია"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "ზალცბურგი"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "სტირია"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "ტიროლი"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "ფორარლბერგი"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "ვენა"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "შეიყვანეთ zip-კოდი ფორმატში XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+"შეიყვანეთ კანადაში დასაშვები პირადი ნომერი ფორმატში: XXX-XXX-XXX"
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "შეიყვანეთ ოთხთანრიგიანი საფოსტო კოდი"
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "შეიყვანეთ zip-კოდი ფორმატში: XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "ტელეფონის ნომრები უნდა იყოს XX-XXXX-XXXX ფორმატში."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+"შეიყვანეთ დასაშვები ბრაზილიური შტატი. მოცემული შტატი არ არის დასაშვები."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "არასწორი CPF ნომერი."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "ეს ველი უნდა შეიცავდეს 11 ციფრს ან 14 სიმბოლოს, ან ნაკლებს."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "არასწორი CNPJ ნომერი."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "ეს ველი მოითხოვს არაუმეტეს 14 თანრიგისა"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში: XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"შეიყვანეთ კანადაში დასაშვები სოციალური დაზღვევის ნომერი ფორმატში: XXX-XXX-XXX"
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "აარგაუ"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "აპენცელ ინერჰოდენ"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "აპენცელ აუსერჰოდენ"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "ბაზელ-შტადტი"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "ბაზელ-ლანდი"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "ბერნი"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "ფრაიბურგი"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "ჟენევა"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "გლარუსი"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "გრაუბუენდენ"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "ჯურა"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "ლეცერნი"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "ნოიხატლი"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "ნიდვალდენი"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "ობვალდენი"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "შაფჰაუზენი"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "შვიცი"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "სოლოთურნი"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "სენტ-გალენი"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "თურგაუ"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "ტიჯინო"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "ური"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "ვალაისი"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "ვაუდი"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "ცუგი"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "ციურიხი"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"შეიყვანეთ შვეიცარიაში დაშვებული პირადი ან პასპორტის ნომერი, ფორმატებში: "
+"X1234567<0 ან 1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "შეიყვანეთ დასაშვები ჩილიური RUT."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "შეიყვანეთ დასაშვები ჩილიური RUT. ფორმატი: XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "ჩილიური RUT არასწორია."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "ბადენ-ვურტემბერგი"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "ბავარია"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "ბერლინი"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "ბრანდენბურგი"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "ბრემენი"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "ჰამბურგი"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "ჰესენი"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "მეკლენბურგ-ვესტერნ პომერანია"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "ქვემო საქსონია"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "ჩრდილოეთ რაინ-ვესტფალია"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "რაინლანდ-პალატინატა"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "ზაარლანდი"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "საქსონია"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "საქსონია-ანჰალტ"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "შლეზვიგ-ჰოლშტაინი"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "თურინგია"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "შეიყვანეთ zip-კოდი ფორმატში XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"შეიყვანეთ გერმანიაში დასაშვები პირადობის მოწმობის ნომერი, ფორმატში: "
+"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "არავა"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "ალბასეტე"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "ალასანტი"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "ალმერია"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "ავილა"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "ბადაჰოსი"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "ილეს ბალეარს"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "ბარსელონა"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "ბურგოსი"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "კასერესი"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "კადიზი"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "კასტელო"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "სიუდად რეალი"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "კორდობა"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "ა კორუნია"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "კუენსა"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "გირონა"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "გრანადა"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "გუადალაჯარა"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "გუიპუზკოა"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "ჰუელვა"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "ჰუესკა"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "ჯეინი"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "ლეონი"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "ლეიდა"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "ლა რიოხა"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "ლუგო"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "მადრიდი"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "მალაგა"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "მურსია"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "ნავარე"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "ოურენსი"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "ასტურია"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "პალენსია"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "ლას პალმას"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "პონტევედრა"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "სალამანსა"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "სანტა კრუზ დე ტენერიფე"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "კანტაბრია"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "სეგოვია"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "სევილი"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "სორია"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "ტარაგონა"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "ტერუელი"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "ტოლედო"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "ვალენსია"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "ვალადოლიდი"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "ბიზკაია"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "სამორა"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "სარაგოსა"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "კეუტა"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "მელილა"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "ანდალუზია"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "არაგონ"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "ასტურიის პრინციპატი"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "ბალეარის კუნძულები"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "ბასკების ქვეყანა"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "კანარის კუნძuლები"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "კასტილია ლა მანჩა"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "კასტილია და ლეონი"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "კატალონია"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "ექსტრემადურა"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "გალიცია"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "მურსიის რეგიონი"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "ნავარის ფორალური თემი"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "ვალენსიის თემი"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "შეიყვანეთ სწორი საფოსტო კოდი შემდეგ ინტერვალში და ფორმატში: 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"შეიყვანეთ სწორი სატელეფონო ნომერი ერთ-ერთ ფორმატში: 6XXXXXXXX, 8XXXXXXXX ან "
+"9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "გთხოვთ, შეიყვანოთ სწორი NIF, NIE, ან CIF."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "გთხოვთ, შეიყვანოთ სწორი NIF ან NIE."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "NIF-ის საკონტროლო ჯამი არასწორია."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "NIE-ს საკონტროლო ჯამი არასწორია."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "CIF-ის საკონტროლო ჯამი არასწორია."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+"გთხოვთ, შეიყვანოთ სწორი საბანკო ანგარიშის ნომერი ფორმატში: XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "არასწორი საკონტროლო ჯამი საბანკო ანგარიშის ნომრისათვის."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "შეიყვანეთ სწორი ფინური პირადი ნომერი."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "შეიყვანეთ zip-კოდი ფორმატში: XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"შეიყვანეთ სწორი ისლანდიური საიდენტიფიკაციო ნომერი. ფორმატია XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "ისლანდიური საიდენტიფიკაციო ნომერი არასწორია."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "შეიყვანეთ სწორი zip-კოდი."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "შეიყვანეთ სწორი პირადი ნომერი."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "შეიყვანეთ სწორი დღგ-ს ნომერი."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში XXXXXXX ან XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "ჰოკაიდო"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "აომორი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "იუატე"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "მიიაგი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "აკიტა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "იამაგატა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "ფუკუსიმა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "იბარაკი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "ტოჩიგი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "გუნმა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "საიტამა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "ჩიბა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "ტოკიო"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "კანაგავა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "იამანაში"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "ნაგანო"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "ნიიგატა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "ტოიამა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "იშიკავა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "ფუკუი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "გიფუ"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "შიზუოკა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "აიჩი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "მიე"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "შიგა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "კიოტო"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "ოსაკა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "ჰიოგო"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "ნარა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "უაკაიამა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "ტოტორი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "შიმანე"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "ოკაიამა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "ჰიროსიმა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "იამაგუჩი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "ტოკუშიმა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "კაგავა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "ეჰიმე"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "კოჩი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "ფუკუოკა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "საგა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "ნაგასაკი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "კუმამოტო"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "ოიტა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "მიაზაკი"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "კაგოსიმა"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "ოკინავა"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "აგუასკალიენტესი"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "ქვემო კალიფორნია"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "ქვემო სამხრეთ კალიფორნია"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "კამპეჩე"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "ჩიჰუაჰუა"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "ჩიაპასი"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "კოაჰუილა"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "კოლიმა"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "ფედერალური ოლქი"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "დურანგო"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "გერერო"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "გუანაჰუატო"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "იდალგო"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "ჰალისკო"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "მეხიკოს შტატი"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "მიჩოაკანი"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "მორელოსი"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "ნაიარიტი"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "ნუევო-ლეონი"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "ოახაკა"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "პუებლა"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "კერეტარო"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "კინტანა-როო"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "სინალოა"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "სან-ლუის-პოტოსი"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "sონორა"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "ტაბასკო"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "ტამაულიპასი"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "ტლასკალა"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "ვერაკრუსი"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "იუკატანი"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "საკატეკასი"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "შეიყვანეთ სწორი საფოსტო კოდი"
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "შეიყვანეთ სწორი ტელეფონის ნომერი"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "შეიყვანეთ სწორი SoFi ნომერი"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drenthe"
+msgstr "დრენტე"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "ფლევოლანდი"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "ფრისლანდია"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "გელდერლანდი"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "გრონიგენი"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "ლიმბურგი"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "ჩრდილოეთ ბრაბანტი"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "ჩრდილოეთ ჰოლანდია"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "ოვერეისელი"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "უტრეხტი"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "ზელანდია"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "სამხრეთ ჰოლანდია"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "შეიყვანეთ სწორი ნორვეგიული პირადი ნომერი."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "ეს ველი შედგება 8 თანრიგისაგან."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "ეს ველი სედგება 11 თანრიგისაგან."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr "ეროვნული საიდენტიფიკაციო ნომერი შედგება 11 თანრიგისაგან."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr "არასწორი საკონტროლო ჯამი ეროვნულ საიდენტიფიკაციო ნომერში."
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+"შეიყვანეთ საგადასახადოს ნომერი (NIP) ფორმატში: XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "არასწორი საკონტროლო ჯამი საგადასახადო ნომრისათვის (NIP)."
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "საწარმოოს ეროვნული სარეგისტრაციო ნომერი (REGON) შედგება 7 ან 9 თანრიგისაგან."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "არასწორი საკონტროლო ჯამი საწარმოოს ეროვნულ სარეგისტრაციო ნომერში (REGON)."
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "ქვემო სილეზია"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "კუიავია-პომერანია"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "ლუბლინი"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "ლუბუში"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "ლოძი"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "მცირე პოლონეთი"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "მაზოვია"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "ოპოლე"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "სუბკარპატია"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "პოდლასიე"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "პომერანია"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "სილეზია"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "სვენტოკშისკე"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "ვარმია-მაზურია"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "დიდი პოლონეთი"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "დასავლეთ პომერანია"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "შეიყვანეთ სწორი URL."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "შეიყვანეთ სწორი URL."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr ""
+"შეიყვანეთ დასაშვები CUIT ერთ-ერთ ფორმატში: XX-XXXXXXXX-X ან XXXXXXXXXXXX."
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "ტელეფონის ნომრები უნდა იყოს XX-XXXX-XXXX ფორმატში."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში: XXX XXX."
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში XXXXX or XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "ბანსკა ბისტრიცა"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "ბანსკა შტიავნიცა"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "ბარდეიოვი"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "ბანოვცე-ნად-ბებრავოუ"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "ბრეზნო"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "ბრატისლავა I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "ბრატისლავა II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "ბრატისლავა III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "ბრატისლავა IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "ბრატისლავა V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "ბიტჩა"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "ჩადცა"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "დეტვა"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "დოლნი კუბინი"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "დუნაისკა სტრედა"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "გალანტა"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "გელნიცა"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "ჰლოჰოვეცი"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "ჰუმენე"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "ილავა"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "კეზმაროკი"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "კომარნო"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "კოშიცე I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "კოშიცე II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "კოშიცე III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "კოშიცე IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "კოშიცე - ოკოლიე"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "კრუპინა"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "კისუცკე ნოვე მესტო"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "ლევიცე"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "ლევოჩა"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "ლიპტოვსკი მიკულაში"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "ლუჩენეცი"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "მალაცკი"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "მარტინი"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "მეძილაბორცე"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "მიხალოვცე"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "მიავა"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "ნამესტოვო"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "ნიტრა"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "ნოვე-მესტო-ნად-ვაჰომ"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "ნოვე ზამკი"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "პარტიზანსკე"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "პეზინოკი"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "პიესტანი"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "პოლტარი"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "პოპრადი"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "პოვაჟსკა ბისტრიცა"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "პრესოვი"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "პრიევიძა"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "პუხოვი"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "რევუცა"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "რიმავსკა სობოტა"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "როზნავა"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "რუზომბეროკი"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "საბინოვი"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "სენეცი"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "სენიცა"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "სკალიცა"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "სნინა"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "სობრანცე"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "სპისკა-ნოვა-ვესი"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "სტარა-ლუბოვნა"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "სტროპკოვი"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "სვიდნიკი"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "სალა"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "ტოპოლჩანი"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "ტრებისოვი"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "ტრენჩინი"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "ტრნავა"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "ტურჩანსკე ტეპლიცე"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "ტვრდოშინი"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "ველკი კრტიში"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "ვრანოვ-ნად-ტოპლოუ"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "ზლატე მორავცე"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "ზვოლენი"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "ზარნოვიცა"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "ზიარ-ნად-ჰრონომი"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "ზილინა"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "ბანსკა-ბისტრიცის რაიონი"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "ბრატისლავას რაიონი"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "კოშიცეს რაიონი"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "ნიტრას რაიონი"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "პრესოვის რაიონი"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "ტრენჩინის რაიონი"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "ტრნავას რაიონი"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "ზილინას რაიონი"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "შეიყვანეთ სწორი საფოსტო კოდი."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "ბედფორდშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "ბუკინჰემშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "ჩეშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "კორნუოლი და სილის კუნძულები"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "კამბრია"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "დერბიშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "დევონი"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "დორსეტი"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "დარემი"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "აღმოსავლეთ სასექსი"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "ესექსი"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "გლოსტეშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "დიდი ლონდონი"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "დიდი მანჩესტერი"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "ჰემპშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "ჰარტფორდშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "კენტი"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "ლანკაშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "ლაიჩესტეშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "ლინკოლნშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "მერსისაიდი"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "ნორფოლკი"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "ჩრდილოეთ იოკშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "ნორტჰემპტონშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "ნორტუმბერლანდი"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "ნოტინგემშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "ოქსფორდშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "შროპშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "სომერსეტი"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "სამხრეთ იოკშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "სტაფორდშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "საფოლკი"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "სურეი"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "თაინ და უირი"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "უარვიკშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "დასავლეთ მიდლენდსი"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "დასავლეთ სასექსი"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "დასავლეთ იოკშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "უილტშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "უორსესტერშირი"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "ანტრიმის ქვეყანა"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "არმაგის ქვეყანა"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "დაუნის ქვეყანა"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "ფერმანაგის ქვეყანა"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "ლონდონდერის ქვეყანა"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "ტაირონის ქვეყანა"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "კლოუიდი"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "დაიფიდი"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "გვენტი"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "გუაინიდი"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "შუა გლემორგენი"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "პოუისი"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "სამხრეთ გლემორგენი"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "დასავლეთ გლემორგენი"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "საზღვრები"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "ცენტრალური შოტლანდია"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "დამფრაის და გელოუეი"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "ფაიფი"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "გრემპაინი"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "ჰაილენდი"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "ლოთიენი"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "ორკნის კუნძულები"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "შიტლენდის კუნძულები"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "სტრესკლაიდი"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "თეისაიდი"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "დასავლეთ კუნძულები"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "ინგლისი"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "ჩრდილოეთ ირლანდია"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "შოტლანდია"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "უელსი"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "შეიყვანეთ zip-კოდი ფორმატში XXXXX ან XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "შეიყვანეთ სწორი აშშ-ს პირადი ნომერი ფორმატში XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "შეიყვანეთ სწორი სამხრეთ-აფრიკული ID ნომერი"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "შეიყვანეთ სწორი სამხრეთ-აფრიკული საფოსტო კოდი"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "აღმოსავლეთ კაპი"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "თავისუფალი სახელმწიფო"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "გაუტენგი"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "კვაზულუ-ნატალი"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "ლიმპოპო"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "მპუმალანგა"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "ჩრდილოეთ კაპი"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "ჩრდილო-დასავლეთი"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "დასავლეთ კაპი"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "გადამისამართება გვერდიდან"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"უნდა იყოს აბსოლუტური გზა დომენის სახელის გარეშე. მაგალითი: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "გადამისამართება გვერდზე"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"უნდა იყოს აბსოლუტური გზა (როგორც ზემოთ) ან სრული URL, რომელიც იწყება "
+"'http://' სტრიქონით."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "გადამისამართება"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "გადამისამართებები"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "სესიის გასაღები"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "სესიის მონაცემები"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "ამოწურვის თარიღი"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "სესია"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "სესიები"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "დომენის სახელი"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "საჩვენებელი სახელი"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "საიტები"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"ეს მნიშვნელობა შეიძლება შეიცავდეს მხოლოდ ასოებს, ციფრებს, ხაზგასმის ნიშნებს "
+"და დეფისებს."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "ასომთავრულები აქ დაუშვებელია."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "პატარა ასოები აქ დაუშვებელია."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "შეიყვანეთ მხოლოდ მძიმეებით გამოყოფილი ციფრები."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "შეიყვანეთ მძიმეებით გამოყოფილი ელ. ფოსტის მისამართები."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "გთხოვთ, შეიყვანოთ დასაშვები IP-მისამართი"
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "ცარიელი მნიშვნელობები აქ დაუშვებელია."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "არაციფრული სიმბოლოები აქ დაუშვებელია."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "ეს მნიშვნელობა არ უნდა შედგებოდეს მხოლოდ ციფრებისაგან."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "შეიყვანეთ მთელი რიცხვი"
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "მხოლოდ ლათინური ასოებია დასაშვები."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "არასწორი თარიღი: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:556
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "შეიყვანეთ სწორი თარიღი YYYY-MM-DD ფორმატში."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "შეიყვანეთ სწორი დრო HH:MM ფორმატში."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "შეიყვანეთ სწორი თარიღი და დრო YYYY-MM-DD HH:MM ფორმატში."
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "შეიყვანეთ სწორი ელ. ფოსტის მისამართი."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"ფაილი არ იყო გამოგზავნილი. შეამოწმეთ კოდირების ტიპი მოცემული ფორმისათვის."
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"ატვირთეთ დასაშვები გამოსახულება. თქვენს მიერ გამოგზავნილი ფაილი ან არ არის "
+"გამოსახულება, ან დაზიანებულია."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s არ მიუთითებს დასაშვებ გამოსახულებას."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "ტელეფონის ნომრები უნდა იყოს XXX-XXX-XXXX ფორმატში. \"%s\" არასწორია."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s არ მიუთითებს დასაშვებ QuickTime ვიდეოფაილს."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "საჭიროა სწორი URL"
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"საჭიროა სწორი HTML. ტიპიური შეცდომებია:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "ცუდად დაფორმირებული XML-ია: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "არასწორი URL: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s არის გაწყვეტილი ბმული."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "შეიყვანეთ სწორი აშშ შტატის აბრევიატურა."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "ყურადღება მიაქციეთ ლექსიკას! სიტყვა %s აქ დაუშვებელია."
+msgstr[1] "ყურადღება მიაქციეთ ლექსიკას! სიტყვები %s აქ დაუშვებელია."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "ველი უნდა ემთხვეოდეს '%s' ველს."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "გთხოვთ, შეიყვანოთ რაიმე მნიშვნელობა სულ მცირე ერთ ველში."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "გთხოვთ, შეავსოთ ორივე ველი, ან ორივე დატოვოთ ცარიელი."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "ეს ველი უნდა იყოს მითითებული, თუ %(field)s არის %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "ეს ველი უნდა იყოს მითითებული, თუ %(field)s არ არის %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "განმეორებითი მნიშვნელობები დაუშვებელია."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "მნიშვნელობა უნდა იყოს %(lower)s და %(upper)s შორის."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "მნიშვნელობა უნდა იყოს სულ მცირე %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "მნიშვნელობა არ უნდა აღემატებოდეს %s-ს."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "მნიშვნელობა უნდა იყოს %s-ის ხარისხი."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+"გთხოვთ, შეიყვანოთ სწორი, არაუმეტეს %s თანრიგისაგან შემდგარი ათობითი რიცხვი."
+msgstr[1] ""
+"გთხოვთ, შეიყვანოთ სწორი, არაუმეტეს %s თანრიგისაგან შემდგარი ათობითი რიცხვი."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი, რომლის მთელი ნაწილის სიგრძე არ "
+"აღემატება %s თანრიგს."
+msgstr[1] ""
+"გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი, რომლის მთელი ნაწილის სიგრძე არ "
+"აღემატება %s თანრიგს."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი, რომლის წილადი ნაწილის სიგრძე არ "
+"აღემატება %s ციფრს."
+msgstr[1] ""
+"გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი, რომლის წილადი ნაწილის სიგრძე არ "
+"აღემატება %s ციფრს."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "გთხოვთ, შეიყვანოთ სწორი რიცხვი მცოცავი ათობითი წერტილით."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+"დარწმუნდით, რომ თქვენს მიერ ატვირთული ფაილის სიგრძე არ არის %s ბაიტზე "
+"ნაკლები."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+"დარწმუნდით, რომ თქვენს მიერ ატვირთული ფაილის სიგრძე არ აღემატება %s ბაიტს."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "ამ ველის ფორმატი არასწორია."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "ველი არასწორია."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "%s-დან მნიშვნელობის ამოღება შეუძლებელია."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"URL %(url)s მისამართმა დააბრუნა არასწორი Content-Type სათაური '%(contenttype)"
+"s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"გთხოვთ, დახუროთ დაუხურავი %(tag)s ტეგი, ხაზის ნომერია %(line)s. (სტრიქონი "
+"იწყება ტექსტით: \"%(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"ტექსტის ნაწილი, რომელიც %(line)s ხაზზე იწყება, დაუშვებელია მიმდინარე "
+"კონტექსტში. (სტრიქონი იწყება ტექსტით: \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" ატრიბუტი არასწორია %(line)s ხაზზე. (სტრიქონი იწყება ტექსტით: \"%"
+"(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" ტეგი არასწორია %(line)s ხაზზე. (სტრიქონი იწყება ტექსტით: \"%"
+"(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"ტეგში %(line)s ხაზზე ერთი ან რამდენიმე ატრიბუტი გამოტოვებულია. (სტრიქონი "
+"იწყება ტექსტით: \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"\"%(attr)s\" ატრიბუტს %(line)s ხაზზე აქვს არასწორი მნიშვნელობა. (სტრიქონი "
+"იწყება ტექსტით: \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s მოცემული %(type)s-ით უკვე არსებობს მოცემული %(field)s-თვის."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s მოცემული %(fieldname)s-ით უკვე არსებობს."
+
+#: db/models/fields/__init__.py:321 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "ეს ველი აუცილებელია."
+
+#: db/models/fields/__init__.py:444
+msgid "This value must be an integer."
+msgstr "ეს მნიშვნელობა უნდა იყოს მთელი."
+
+#: db/models/fields/__init__.py:490
+msgid "This value must be either True or False."
+msgstr "ეს მნიშვნელობა უნდა იყოს True ან False."
+
+#: db/models/fields/__init__.py:519
+msgid "This field cannot be null."
+msgstr "ეს მნიშვნელობა არ შეიძლება იყოს null."
+
+#: db/models/fields/__init__.py:621 db/models/fields/__init__.py:638
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "შეიყვანეთ სწორი თარიღი და დრო YYYY-MM-DD HH:MM ფორმატში."
+
+#: db/models/fields/__init__.py:694
+msgid "This value must be a decimal number."
+msgstr "ეს მნიშვნელობა უნდა იყოს ათობითი რიცხვი."
+
+#: db/models/fields/__init__.py:835
+msgid "This value must be either None, True or False."
+msgstr "ეს მნიშვნელობა უნდა იყოს None, True ან False."
+
+#: db/models/fields/__init__.py:947 db/models/fields/__init__.py:960
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "შეიყვანეთ სწორი დრო HH:MM ფორმატში."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "შეიყვანეთ სწორი ფაილის სახელი."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "გთხოვთ, შეიყვანოთ სწორი %s."
+
+#: db/models/fields/related.py:782
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"დააჭირეთ \"Control\", ან \"Command\" Mac-ზე, ერთზე მეტი მნიშვნელობის "
+"ასარჩევად."
+
+#: db/models/fields/related.py:862
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"გთხოვთ, შეიყვანოთ სწორი %(self)s ID-ები. მნიშვნელობა %(value)r არასწორია."
+msgstr[1] ""
+"გთხოვთ, შეიყვანოთ სწორი %(self)s ID-ები. მნიშვნელობები %(value)r არასწორია."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "შეიყვანეთ სწორი მნიშვნელობა."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"დარწმუნდით, რომ მნიშვნელობა შედგება არაუმეტეს %(max)d სიმბოლოსაგან (ახლა "
+"მისი სიგრძეა %(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"დარწმუნდით, რომ მნიშვნელობა შედგება არანაკლებ %(min)d სიმბოლოსაგან (ახლა "
+"მისი სიგრძეა %(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "დარწმუნდით, რომ მნიშვნელობა ნაკლებია ან ტოლია %s-ზე."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "დარწმუნდით, რომ მნიშვნელობა მეტია ან ტოლია %s-ზე."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "შეიყვანეთ რიცხვი."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "დარწმუნდით, რომ მნიშვნელობა %s თანრიგს არ აღემატება."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "დარწმუნდით, რომ წილადი ნაწილი %s თანრიგს არ აღემატება."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "დარწმუნდით, რომ მთელი ნაწილი %s თანრიგს არ აღემატება."
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "შეიყვანეთ სწორი თარიღი."
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "შეიყვანეთ სწორი დრო."
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "შეიყვანეთ სწორი თარიღი და დრო."
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "ფაილი არ იყო გამოგზავნილი."
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "გამოგზავნილი ფაილი ცარიელია."
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "შეიყვანეთ სწორი URL."
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "როგორც ჩანს, URL არის გაწყვეტილი ბმული."
+
+#: forms/fields.py:601 forms/fields.py:652
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "აირჩიეთ დასაშვები მნიშვნელობა. %(value)s დასაშვები არ არის."
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "შეიყვანეთ მნიშვნელობების სია."
+
+#: forms/fields.py:832
+msgid "Enter a valid IPv4 address."
+msgstr "შეიყვანეთ სწორი IPv4 მისამართი."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "აირჩიეთ დასაშვები მნიშვნელობა. ეს არჩევანი დასაშვები არ არის."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "აირჩიეთ დასაშვები მნიშვნელობა. %s დასაშვები არ არის."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "დარწმუნდით, რომ თქვენს მიერ შეყვანილი ტექსტი %s სიმბოლოზე ნაკლებია."
+msgstr[1] "დარწმუნდით, რომ თქვენს მიერ შეყვანილი ტექსტი %s სიმბოლოზე ნაკლებია."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "ახალ ხაზზე გადასვლა აქ დაუშვებელია."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+"აირჩიეთ დასაშვები მნიშვნელობა; '%(data)s' არ არის %(choices)s მნიშვნელობების "
+"სიაში."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "შეიყვანეთ მთელი რიცხვი -32,768-დან 32,767-მდე."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "შეიყვანეთ დადებითი რიცხვი."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "შეიყვანეთ მთელი რიცხვი 0-დან 32,767-მდე."
+
+#: template/defaultfilters.py:707
+msgid "yes,no,maybe"
+msgstr "კი,არა,შესაძლოა"
+
+#: template/defaultfilters.py:738
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d ბაიტი"
+msgstr[1] "%(size)d ბაიტი"
+
+#: template/defaultfilters.py:740
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f კბაიტი"
+
+#: template/defaultfilters.py:742
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f მბაიტი"
+
+#: template/defaultfilters.py:743
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f გბაიტი"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "შუაღამე"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "შუადღე"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "ორშაბათი"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "სამშაბათი"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "ოთხშაბათი"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "ხუთშაბათი"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "პარასკევი"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "შაბათი"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "კვირა"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "ორშ"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "სამ"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "ოთხ"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "ხუთ"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "პარ"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "შაბ"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "კვრ"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "იანვარი"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "თებერვალი"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "მარტი"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "აპრილი"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "მაისი"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "ივნისი"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "ივლისი"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "აგვისტო"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "სექტემბერი"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "ოქტომბერი"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "ნოემბერი"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "დეკემბერი"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "იან"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "თებ"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "მარ"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "აპრ"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "მაი"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "ივნ"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "ივლ"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "აგვ"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "სექ"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "ოქტ"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "ნოე"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "დეკ"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "იან."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "თებ."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "აგვ."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "სექტ."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "ოქტ."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "ნოემ."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "დეკ."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "ან"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "წელი"
+msgstr[1] "წელი"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "თვე"
+msgstr[1] "თვე"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "კვირა"
+msgstr[1] "კვირა"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "დღე"
+msgstr[1] "დღე"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "საათი"
+msgstr[1] "საათი"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "წუთი"
+msgstr[1] "წუთი"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "წუთი"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "d.m.Y H:i"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "d.m.Y"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s წარმატებით შეიქმნა."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s წარმატებით შეიცვალა."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s წაიშალა."
+
+#~ msgid "Ordering"
+#~ msgstr "დალაგება"
+
+#~ msgid "Order:"
+#~ msgstr "დალაგება:"
+
+#~ msgid "Your new password is: %(new_password)s"
+#~ msgstr "თქვენი ახალი პაროლია: %(new_password)s"
+
+#~ msgid "Feel free to change this password by going to this page:"
+#~ msgstr "თქვენ შეგიძლიათ შეცვალოთ იგი შემდეგი გვერდიდან:"
+
+#~ msgid "Added %s."
+#~ msgstr "%s დამატებულია."
+
+#~ msgid "Deleted %s."
+#~ msgstr "%s წაშლილია."
+
+#~ msgid "The two 'new password' fields didn't match."
+#~ msgstr "'ახალი პაროლის' ორი ველი ერთმანეთს არ ემთხვევა."
+
+#~ msgid "Year must be 1900 or later."
+#~ msgstr "წელი უნდა იყოს 1900 ან მეტი."
+
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "გამოყავით ID-ები მძიმეებით."
+
+#~ msgid "Brazilian"
+#~ msgstr "ბრაზილიური"
diff --git a/webapp/django/conf/locale/ka/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/ka/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..bb70794
--- /dev/null
+++ b/webapp/django/conf/locale/ka/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ka/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/ka/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..e23b600
--- /dev/null
+++ b/webapp/django/conf/locale/ka/LC_MESSAGES/djangojs.po
@@ -0,0 +1,117 @@
+# Translation of Django Java-script part to Georgian.
+# Copyright (C) 2008
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-02-16 22:31+0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: David Avsajanishvili <avsd05@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "მისაწვდომი %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "ავირჩიოთ ყველა"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "დავამატოთ"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "წავშალოთ"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "არჩეული %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "აირჩიეთ და დააწკაპეთ "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "გავასუფთავოთ ყველა"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "იანვარი თებერვალი მარტი აპრილი მაისი ივნისი ივლისი აგვისტო სექტემბერი "
+"ოქტომბერი ნოემბერი დეკემბერი"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "კ ო ს ო ხ პ შ"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "კვირა ორშაბათი სამშაბათი ოთხშაბათი ხუთშაბათი პარასკევი შაბათი"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "ვაჩვენოთ"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "დავმალოთ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "ახლა"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "საათი"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "ავირჩიოთ დრო"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "შუაღამე"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "დილის 6 სთ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "შუადღე"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "უარი"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "დღეს"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "კალენდარი"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "გუშინ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "ხვალ"
diff --git a/webapp/django/conf/locale/km/LC_MESSAGES/django.mo b/webapp/django/conf/locale/km/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..91f0628
--- /dev/null
+++ b/webapp/django/conf/locale/km/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/km/LC_MESSAGES/django.po b/webapp/django/conf/locale/km/LC_MESSAGES/django.po
new file mode 100644
index 0000000..faf3a91
--- /dev/null
+++ b/webapp/django/conf/locale/km/LC_MESSAGES/django.po
@@ -0,0 +1,2508 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: sengtha@e-khmer.com\n"
+"POT-Creation-Date: 2007-01-15 15:43+0200\n"
+"PO-Revision-Date: 2007-08-10 00:21+0900\n"
+"Last-Translator: Chay Sengtha <sengtha@e-khmer.com>\n"
+"Language-Team: Chay Sengtha <sengtha@e-khmer.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: Information
+msgid "Administration Page"
+msgstr "ទំព័រគ្រប់គ្រង"
+
+msgid "Tag"
+msgstr "ប្រភេទ"
+
+msgid "Headline"
+msgstr "ចំណងជើង"
+
+msgid "Article"
+msgstr "អត្ថបទ"
+
+msgid "Review"
+msgstr "ព្រឹត្តិការណ៍ និង ផលិតផលថ្មីៗ"
+
+msgid "Keyword"
+msgstr "ពាក្យសំខាន់ៗ"
+
+msgid "Advertisement"
+msgstr "ការផ្សាយពាណិជ្ជកម្ម"
+
+msgid "Link"
+msgstr "អត្ថបទភ្ជាប់"
+
+msgid "Accounting"
+msgstr "គណនី"
+
+msgid "Name"
+msgstr "ឈ្មោះ"
+
+msgid "Slug"
+msgstr "ឈ្មោះជាអក្សរឡាតាំង"
+
+msgid "Created"
+msgstr "កាលបរិច្ឆេទនៃការសរសេរ"
+
+msgid "Modified"
+msgstr "កាលបរិច្ឆេទ​នៃការ​ផ្លាស់ប្តូរ"
+
+msgid "Summary"
+msgstr "អត្ថបទសង្ខេប"
+
+msgid "Viewed number"
+msgstr "ចំនួនអាន"
+
+msgid "Site"
+msgstr "គេហទំព័រ"
+
+msgid "Rate"
+msgstr "ការវាយតំលៃ"
+
+msgid "Private"
+msgstr "សំរាប់សមាជិកបង់លុយ"
+
+msgid "Public"
+msgstr "ផ្សព្វផ្សាយ"
+
+msgid "Content"
+msgstr "អត្ថបទ"
+
+msgid "Page"
+msgstr "ទំព័រទី"
+
+msgid "Attach Image"
+msgstr "រូបភាព"
+
+msgid "Ads type"
+msgstr "ប្រភេទពាណិជ្ជកម្ម"
+
+msgid "Link type"
+msgstr "ប្រភេទអត្ថបទភ្ជាប់"
+
+msgid "Account type"
+msgstr "ប្រភេទគណនី"
+
+msgid "Amount"
+msgstr "ចំនួន"
+
+msgid "Person"
+msgstr "អ្នកទទួលខុសត្រូវ"
+
+msgid "Date"
+msgstr "កាលបរិច្ឆេទ"
+
+msgid "Information"
+msgstr "ការគ្រប់គ្រងព័ត៌មាន"
+
+msgid "Auth"
+msgstr "ការគ្រប់គ្រងសមាជិក"
+
+msgid "Comments"
+msgstr "ការគ្រប់គ្រងមតិ​យោបល់"
+
+msgid "Sites"
+msgstr "ការគ្រប់គ្រងដមែន"
+
+msgid "Flatpages"
+msgstr "ការគ្រប់គ្រងទំព័រថ្មី"
+
+msgid "File-Browser"
+msgstr "ការគ្រប់គ្រងឯកសារ"
+
+msgid "Make Directory"
+msgstr "បង្កើតថតថ្មី"
+
+msgid "Multiple Upload"
+msgstr "ទាញយកឯកសារ"
+
+msgid "results"
+msgstr "លទ្ធផល"
+
+msgid "total"
+msgstr "​សរុប"
+
+msgid "Total"
+msgstr "​សរុប"
+
+msgid "type"
+msgstr "ប្រភេទ"
+
+msgid "filename"
+msgstr "ឈ្មោះឯកសារ"
+
+msgid "size"
+msgstr "ទំហំ"
+
+msgid "Past 30 days"
+msgstr "៣០ថ្ងៃកន្លងមក"
+
+msgid "By Date"
+msgstr "តាម​កាលបរិច្ឆេទ"
+
+msgid "By Type"
+msgstr "តាម​ប្រភេទ"
+
+msgid "no entries found"
+msgstr "រកមិនឃើញ"
+
+msgid "Select files to upload"
+msgstr "សូមជ្រើសរើសឯកសារ​។"
+
+msgid "At least one file must be chosen."
+msgstr "សូមជ្រើសរើសឯកសារ​យ៉ាង​តិច១។"
+
+msgid "Wrong filetype for"
+msgstr "ប្រភេទឯកសារដែលមិនអាចទាញយកបាន។"
+
+msgid "File already exists"
+msgstr "ឯកសារនេះមានរួចហើយ។"
+
+msgid "File"
+msgstr "ឯកសារ"
+
+msgid " is existed."
+msgstr "ត្រូវបានគេយករួចហើយ។"
+
+msgid "Account registration is not complete yet.<br/>You need to activate your account first.<br/>We have already sent you the activate URL. Please check you mail box."
+msgstr "ការចុះឈ្មោះមិនទាន់ចប់នៅឡើយទេ។ <br/>យើងខ្ញុំបានបញ្ជូនអ៊ីមែល​ទៅកាន់អាស័យដ្ឋានអ៊ីមែល​របស់​លោកអ្នក​ហើយ​ សូមចុច​អត្ថបទភ្ជាប់​នៅក្នុង​អ៊ីមែល ដើម្បី​បញ្ជប់ការចុះឈ្មោះ។"
+
+msgid "Help"
+msgstr "ជំនួយ"
+
+msgid "Max. Filesize"
+msgstr "ទំហំឯកសារអតិបរិមា"
+
+msgid "Upload"
+msgstr "ទាញយក"
+
+msgid "Folder"
+msgstr "ថត"
+
+msgid "Video"
+msgstr "វីដេអូ"
+
+msgid "Document"
+msgstr "ឯកសារ"
+
+msgid "Sound"
+msgstr "សំលេង"
+
+msgid "Code"
+msgstr "កូត"
+
+msgid "Allowed"
+msgstr "ប្រភេទឯកសារដែលអាចទាញ​យកបាន"
+
+msgid "Directory already exists."
+msgstr "ថតនេះមាន​រួចហើយ។"
+
+msgid "Permission denied."
+msgstr "ពុំមានសិទ្ធិអាចបង្កើតបាន។"
+
+msgid "Please correct the errors below."
+msgstr "សូមកែកំហុសដូចខាងក្រោម។"
+
+msgid "Only letters, numbers and underscores are allowed."
+msgstr "ត្រូវបំពេញតែអក្សរឡាតាំង ចំនួនលេខ និង សញ្ញា _ ។"
+
+msgid "The directory will automatically be converted to lowercase"
+msgstr "ឈ្មោះថតនឹងត្រូវផ្លាស់ប្តូរទៅជាអក្សរតូចដោយស្វ័យប្រវត្ត។"
+
+msgid "Create"
+msgstr "បង្កើត"
+
+msgid "date"
+msgstr "​កាលបរិច្ឆេទ"
+
+msgid "Dbtemplate"
+msgstr "ការគ្រប់គ្រងឯកសារគំរូ"
+
+msgid "template"
+msgstr "ឯកសារគំរូ"
+
+msgid "templates"
+msgstr "ឯកសារគំរូ"
+
+msgid "Comment"
+msgstr "ផ្សេងៗ"
+
+msgid "Income"
+msgstr "ចំណូល"
+
+msgid "Expense"
+msgstr "ចំណាយ"
+
+msgid "Image"
+msgstr "រូបភាព"
+
+msgid "Text and Image"
+msgstr "អក្សរ និង​ រូបភាព"
+
+msgid "New Headlines"
+msgstr "អត្ថបទថ្មីៗ"
+
+msgid "New Reviews"
+msgstr "ព្រឹត្តិការណ៍ និង ផលិតផលថ្មីៗ"
+
+msgid "Login"
+msgstr "ពិនិត្យចូល"
+
+msgid "Logout"
+msgstr "ចាកចេញ"
+
+msgid "Register"
+msgstr "ចូលជាសមាជិក"
+
+msgid "Free"
+msgstr "ឥតគិតថ្លៃ"
+
+msgid "Welcome"
+msgstr "សូមស្វាគមន័ "
+
+msgid "IT Resources"
+msgstr "ប្រភពព័ត៌មានអំពី បច្ចេកទេសព័ត៌មានវិទ្យា"
+
+msgid "Copyrights"
+msgstr "រក្សាសិទ្ធិដោយ "
+
+msgid "Next page"
+msgstr "ទំព័របន្ទាប់"
+
+msgid "Previous page"
+msgstr "ទំព័រមុន "
+
+msgid "Wrong number or password. Please try it again."
+msgstr "ឈ្មោះជាសមាជិក​ ឬ ពាក្យសំងាត់ មិនត្រឹមត្រូវ។ សូមសាកល្បងម្តងទៀត។ "
+
+msgid "This username has not activated yet."
+msgstr "ឈ្មោះសាមាជិកនេះមិនទាន់ត្រូវបានគេអនុញ្ញាតនៅឡើយទេ។"
+
+msgid "Please write"
+msgstr "សូមបំពេញ"
+
+msgid "More"
+msgstr "អត្ថបទផ្សេងទៀត"
+
+msgid "Please correct below errors."
+msgstr "សូកកែកូមហុសខាងក្រោម។"
+
+msgid "Thank for your comment."
+msgstr "សូមអរគុណដែលបានបញ្ជេញមតិយោបល់ទាក់ទងនឹងអត្ថបទនេះ"
+
+#: Django standard
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:166
+msgid "object ID"
+msgstr "លេខ​សំគាល់​កម្មវិធី"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "ចំណងជើង"
+
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "មតិ​យោបល់"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "វាយ​តំលៃ #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "វាយ​តំលៃ #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "វាយ​តំលៃ #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "វាយ​តំលៃ #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "វាយ​តំលៃ #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "វាយ​តំលៃ #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "វាយ​តំលៃ #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "វាយ​តំលៃ #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "កំពុង​ត្រួត​ពិនិត្យចំពោះ​​ការ​វាយ​តំលៃ"
+
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "កាល​បរិច្ឆេទនៃ​ការ​សរសេរ​​"
+
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:170
+msgid "is public"
+msgstr "ផ្សព្វផ្សាយ​ជាសធារណៈ"
+
+#: contrib/comments/models.py:85
+#: contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "លេខ IP"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "ត្រូវ​បាន​លប់​ចេញ"
+
+#: contrib/comments/models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "សូម​ចុច​ជ្រើសរើស​យក​ប្រអប់​នេះ​ ប្រសិន​បើ​មតិ​យោបល់​មិនសមរម្យ។ ឃ្លា \" មតិ​យោបល់​នេះ​ត្រូវបាន​គេលប់​\" នឹងត្រូវ​បង្ហាញ​ជំនួស​វិញ។"
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "មតិ​យោបល់"
+
+#: contrib/comments/models.py:131
+#: contrib/comments/models.py:207
+msgid "Content object"
+msgstr "អត្ថន័យ​របស់​កម្មវិធី"
+
+#: contrib/comments/models.py:159
+#: python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"សរសេរ​ដោយ %(user)s នៅថ្ងៃ​ %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "ឈ្មោះ"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "លេខ ip"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "យល់ព្រម​ដោយ​បុគ្គលិក"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "មតិ​យោបល់(មិនចាំបាច់សមាជិក)"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "មតិ​យោបល់(មិនចាំបាច់សមាជិក)"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "ពិន្ទុ"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "កាលបរិច្ឆេទ​ដាក់ពិន្ទុ"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "ពិន្ទុ​កម្មា(karma)"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "ពិន្ទុ​កម្មា(karma)"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d វាយ​តំលៃ​ដោយ %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"មតិ​យោបល់នេះ​ត្រូវបាន​កត់សំគាល់ទុក​ដោយ %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "កាល​បរិច្ឆេទ​កត់​សំគាល់​ទុក"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "ការ​កត់​សំគាល់​ទុក​"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "ការ​កត់​សំគាល់​ទុក"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "កត់​សំគាល់​ទុកដោយ %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "កាល​បរិច្ឆេទនៃ​ការ​លប់​"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "ការ​លប់​ដោយអ្នក​គ្រប់គ្រង"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "ការ​លប់​ដោយអ្នក​គ្រប់គ្រង"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "ការ​លប់​ដោយអ្នក​គ្រប់គ្រង នៅ %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "ជនអនាមិក​មិន​អាច​បោះ​ឆ្នោត​បាន​ទេ"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "លេខ​សំគាល់​មតិ​យោបល់​មិន​ត្រឹម​ត្រូវ"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "មិន​អាច​បោះ​ឆ្នោត​អោយ​ខ្លួន​ឯង​បាន​ទេ"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "ចាំបាច់ត្រូវការ វាយតំលៃ ពីព្រោះលោកអ្នកបានជ្រើសរើសធ្វើការវាយតំលៃផ្សេងពីនេះ។"
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"មតិយោបល់នេះត្រូវបានបញ្ជូនដោយសមាជិកម្នាក់ដែលបាន​ផ្តល់មតិយោបល់​តិចជាង %(count)s។\n"
+"%(text)s"
+msgstr[1] ""
+"មតិយោបល់នេះត្រូវបានសរសេរដោយសមាជិកម្នាក់ដែលបាន​ផ្តល់មតិយោបល់​តិចជាង %(count)s។\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"មតិយោបល់បានសរសេរដោយសមាជិកមិនសូវប្រាកដប្រជា:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "អនុញ្ញាតតែទិន្នន័យតាមរយះ​ POST ​។"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "ទិន្នន័យរបស់ចំនុចមួយចំនួនដែលចាំបាច់ មិនទាន់បានបំពេញ។"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "មានគេព្យាយាមសរសេរ មតិយោបល់ មិនត្រឹមត្រូវ (ប៉ះពាល់ដល់សុវត្ថិភាព)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "បែបបទបំពេញមតិយោបល់មិនមាន 'target' ​និង​ លេខសំគាល់កម្មវិធី (object ID)​ ត្រឹមត្រូវ"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "បែបបទបំពេញមតិយោបល់មិនមាន 'preview' or 'post' ។"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "ឈ្មោះសមាជិក"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "ចាកចេញ"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "ពាក្យ​សំងាត់"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "តើលោកអ្នក​ភ្លេច​ពាក្យសំងាត់រឺ?​​"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "វាយតំលៃ"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "ចាំ​បាច់"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "មិនចាំ​បាច់​ជ្រើសរើស​យក​ក៏បាន​"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "បញ្ជូន​រូបភាព"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "មតិ​យោបល់"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "មើល​ មតិយោបល់"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "ឈ្មោះ"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>ដោយ %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70
+#: contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143
+#: contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "ទាំងអស់"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "កាល​បរិច្ឆេទណាមួយ"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "ថ្ងៃនេះ"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "៧​ថ្ងៃ​កន្លង​មក"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "ខែ​នេះ"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "ឆ្នាំ​នេះ"
+
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "យល់ព្រម"
+
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "មិនយល់ព្រម"
+
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "មិន​ដឹង"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "ពេលវេលាប្រតិបត្តិការ"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "លេខ​សំគាល់​កម្មវិធី (object id)"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "object repr"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "សកម្មភាព"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "ផ្លាស់ប្តូរ"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "កំណត់ហេតុ"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "កំណត់ហេតុ"
+
+#: contrib/admin/templatetags/admin_list.py:230
+msgid "All dates"
+msgstr "កាលបរិច្ឆេទទាំងអស់"
+
+#: contrib/admin/views/decorators.py:10
+#: contrib/auth/forms.py:59
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "សូមបំពេញ ឈ្មោះសមាជិក និង ពាក្យសំងាត់ ។ "
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "ពិនិត្យចូល"
+
+#: contrib/admin/views/decorators.py:62
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "សូមពិនិត្យចូលម្តងទៀត ។"
+
+#: contrib/admin/views/decorators.py:69
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "ប្រហែលជាកម្មវិធីមើលគេះទំព័រដែលលោកអ្នកកំពុងប្រើ មិនទទួល​ គូគី (cookies) ។ សូមកំណត់កម្មវិធីដែលលោកអ្នកកំពុងប្រើនេះអោយទទួលយក គូគី ហើយចូលមកមើលទំព័រនេះម្តងទៀត ។"
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "ឈ្មោះសមាជិកមិនអាចមាន សញ្ញា '@' ។"
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "អ៊ីមែលរបស់លោកអ្នក មិនអាចធ្វើជា ឈ្មោះសមាជិកបានទេ ។ សូមសាកល្បងជាមួយ '%s'។"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "ទំព័រគ្រប់គ្រង"
+
+#: contrib/admin/views/main.py:257
+#: contrib/admin/views/auth.py:17
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "ឈ្មោះកម្មវិធី %(name)s \"%(obj)s\" បានបញ្ជូលដោយជោគជ័យ​។"
+
+#: contrib/admin/views/main.py:261
+#: contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:22
+msgid "You may edit it again below."
+msgstr "សូមសាកល្បងកែប្រែម្តងទៀត។"
+
+#: contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "លោកអ្នកអាចបន្ថែម  %s ផ្សេងទៀតដូចខាងក្រោម។"
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "បន្ថែម %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "បានបន្ថែម %s"
+
+#: contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
+msgid "and"
+msgstr "និង"
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "បានផ្លាស់ប្តូរ %s"
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "បានលប់ %s"
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "ពុំមានទិន្នន័យត្រូវបានផ្លាស់ប្តូរ។"
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "កម្មវិធីឈ្មោះ %(name)s \"%(obj)s\" ត្រូវបានផ្លាស់ប្តូរដោយជោគជ័យ។"
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "ឈ្មោះកម្មវីធី %(name)s \"%(obj)s\" ត្រូវបានបន្ថែមដោយជោគជ័យ។ លោកអ្នកអាចផ្លាស់ប្តូរម្តងទៀតនៅខាងក្រោម។"
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "ផ្លាស់ប្តូរ %s"
+
+#: contrib/admin/views/main.py:473
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "មានទិន្នន័យ %(fieldname)s មួយចំនួននៅក្នុង %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:478
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "មានទិន្នន័យ %(fieldname)s មួយចំនួននៅក្នុង %(name)s:"
+
+#: contrib/admin/views/main.py:511
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "ឈ្មោះកម្មវិធី %(name)s \"%(obj)s\" ត្រូវបានលប់ដោយជោគជ័យ។"
+
+#: contrib/admin/views/main.py:514
+msgid "Are you sure?"
+msgstr "តើលោកអ្នកប្រាកដទេ?"
+
+#: contrib/admin/views/main.py:536
+#, python-format
+msgid "Change history: %s"
+msgstr "សកម្មភាពផ្លាស់ប្តូរកន្លងមក : %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s"
+msgstr "ជ្រើសរើស %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s to change"
+msgstr "ជ្រើសរើស %s ដើម្បីផ្លាស់ប្តូរ"
+
+#: contrib/admin/views/main.py:758
+msgid "Database error"
+msgstr "ទិន្នន័យមូលដ្ឋានមានបញ្ហា"
+
+#: contrib/admin/views/doc.py:46
+#: contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "ប្រភេទ:"
+
+#: contrib/admin/views/doc.py:77
+#: contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "ពាក្យស្វែងរក"
+
+#: contrib/admin/views/doc.py:135
+#: contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "មើល"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "ស្វែងរក App %r មិនឃើញ ។"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr "Model %r រកមិនឃើញនៅក្នុង app %r"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr " `%s.%s` object ដែលពាក់ព័ន្ធ"
+
+#: contrib/admin/views/doc.py:183
+#: contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219
+#: contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr "ជាប់​ទាក់ទង​ជាមួយ​នឹងកម្មវិធី​  `%s.%s` "
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "ទាំងអស់ %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "ចំនួន​នៃ​%s"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "ទិន្នន័យអំពី %s កម្មវិធី"
+
+#: contrib/admin/views/doc.py:291
+#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303
+#: contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310
+#: contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "ចំនួនពិត(Integer)"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (អាច​ជា True រឺ False)"
+
+#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "String (អាចសរសេរបានរហូតដល់ %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "ចំនួនពិត(Integer) ដែលផ្តាច់ចេញពីគ្នាដោយ​ក្បៀស"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "កាល​បរិច្ឆេទ (Date) (មិនមានសរសេរម៉ោង)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "កាល​បរិច្ឆេទ (Date) (មានសរសេរម៉ោង)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "អ៊ីម៉ែល"
+
+#: contrib/admin/views/doc.py:298
+#: contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "ផ្លូវទៅកាន់ឯកសារ"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "ចំនួនទសភាគ (Decimal)"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (អាចជា True​ រឺ False រឺ None)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "ទាក់ទងទៅនឹងម៉ូដែល (model)មេ"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "លេខទូរស័ព្ទ"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "អត្ថបទ"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "ពេលវេលា"
+
+#: contrib/admin/views/doc.py:315
+#: contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "អាស័យដ្ឋានគេហទំព័រ(URL)"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "សហរដ្ឋអាមេរិក U.S. (ជាមួយនឹងអក្សរធំពីរ)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "អត្ថបទ XML"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ហាក់បីដូចជា URL ដែល​ត្រឹមត្រូវទេ"
+
+#: contrib/admin/views/auth.py:28
+msgid "Add user"
+msgstr "បន្ថែមសមាជិក"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "ឯកសារ"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "ផ្លាស់ប្តូរពាក្យសំងាត់"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "គេហទំព័រ"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:20
+msgid "History"
+msgstr "សកម្មភាព​កន្លង​មក"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Date/time"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "សមាជិក"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "សកម្មភាព"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "កម្មវិធីនេះមិនមានសកម្មភាព​កន្លងមកទេ។ ប្រហែលជាសកម្មភាពទាំងនេះមិនបានធ្វើនៅទំព័រគ្រប់គ្រងនេះ។"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "ទំព័រគ្រប់គ្រងរបស់ Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "ការ​គ្រប់គ្រង​របស់ ​Django"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "ម៉ាស៊ីនផ្តល់សេវាកម្ម​ មានបញ្ហា"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "ម៉ាស៊ីនផ្តល់សេវាកម្ម​ មានបញ្ហា (៥០០)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "ម៉ាស៊ីនផ្តល់សេវាកម្ម​ មានបញ្ហា  <em>(៥០០)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "មានកំហុស។ កំហុសនេះត្រូវបានបញ្ជូនទៅកាន់អ្នកគ្រប់គ្រងគេហទំព័រនេះរួចហើយ។ សូមអភ័យទោសចំពោះបញ្ហានេះ។"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "ទំព័រ​ដែល​លោកអ្នកចង់​រក​នេះពុំមាន​នៅក្នុងម៉ាស៊ីនរបស់យើងខ្ញុំទេ"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "សួមអភ័យទោស ទំព័រ​ដែល​លោកអ្នកចង់​រក​នេះពុំមាន​នឹងក្នុងម៉ាស៊ីនរបស់យើងខ្ញុំទេ"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "ម៉ូដែល (Models) មាននៅក្នុងកម្មវិធី %(name)s ។"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "បន្ថែម"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "ផ្លាស់ប្តូរ"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "លោកអ្នកពុំមានសិទ្ធិ ផ្លាស់​ប្តូរ ទេ។"
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "សកម្មភាពបច្ចុប្បន្ន"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "សកម្មភាពរបស់ខ្ញុំ"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "គ្មាន"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "បន្ថែម %(name)s"
+
+#: contrib/admin/templates/admin/login.html:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr "តើលោកអ្នក <a href=\"/password_reset/\">ភ្លេចពាក្យសំងាត់</a>?"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "សូមស្វាគមន៏"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "លប់"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "ការលប់ %(object_name)s '%(escaped_object)s' អាចធ្វើអោយ​កម្មវិធីដែលពាក់​ព័ន្ធបាត់បង់ ។ ក៏ប៉ន្តែលោកអ្នក​ពុំមាន​សិទ្ធិលប់​កម្មវិធី​ប្រភេទនេះទេ។"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "តើលោកអ្នកប្រាកដជាចង់លប់ %(object_name)s \"%(escaped_object)s\"? ការលប់ %(object_name)s '%(escaped_object)s' អាចធ្វើអោយ​កម្មវិធីដែលពាក់​ព័ន្ធបាត់បង់។"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "ខ្ញុំច្បាស់​ជាចង់លប់"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "ដោយ​  %(filter_title)s "
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "ស្វែងរក"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "លទ្ធផល ១"
+msgstr[1] "លទ្ធផល %(counter)s "
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "សរុបទាំងអស់ %(full_result_count)s"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "បង្ហាញទាំងអស់"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "ស្វែងរកជាមួយ"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "មើលនៅលើគេហទំព័រដោយផ្ទាល់"
+
+#: contrib/admin/templates/admin/change_form.html:30
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "សូមកែប្រែកំហុសខាងក្រោម ។"
+msgstr[1] "សូមកែប្រែកំហុសខាងក្រោម ។"
+
+#: contrib/admin/templates/admin/change_form.html:48
+msgid "Ordering"
+msgstr "កំពុងតំរៀប"
+
+#: contrib/admin/templates/admin/change_form.html:51
+msgid "Order:"
+msgstr "តំរៀប"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "រក្សាទុក"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "រក្សាទុក ហើយ បន្ថែម​ថ្មី"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "រក្សាទុក ហើយ កែឯកសារដដែល"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "រក្សាទុក"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "មូលដ្ឋាន​ទិន្នន័យ​​​ របស់លោកអ្នក មានបញ្ហា។ តើ លោកអ្នកបាន បង្កើត តារាង​ របស់មូលដ្ឋានទិន្នន័យ​ ហើយឬនៅ? តើ​ លោកអ្នកប្រាកដថាសមាជិកអាចអានមូលដ្ឋានទិន្នន័យនេះ​​បានឬទេ? "
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "តំបូងសូមបំពេញ ឈ្មោះជាសមាជិក និង ពាក្យសំងាត់​។ បន្ទាប់មកលោកអ្នកអាចបំពេញបន្ថែមជំរើសផ្សេងៗទៀតបាន។ "
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "ឈ្មោះជាសមាជិក"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "ពាក្យសំងាត់"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "ពាក្យសំងាត់ (ម្តងទៀត)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "សូមបំពេញពាក្យសំងាត់ដូចខាងលើ ដើម្បីត្រួតពិនិត្យ។ "
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "ផ្លាស់ប្តូរពាក្យសំងាត់"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "ពាក្យសំងាត់បានផ្លាស់ប្តូរដោយជោគជ័យ"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "ពាក្យសំងាត់របស់លោកអ្នកបានផ្លាស់ប្តូរហើយ"
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "ពាក្យសំងាត់បានកំណត់សារជាថ្មី"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "តើលោកអ្នកភ្លេចពាក្យសំងាត់រឺ? សូមបំពេញអ៊ីម៉ែលខាងក្រោម យើងខ្ញុំនឹងកំណត់ពាក្យសំងាត់របស់លោកអ្នកសារឡើងវិញ ហើយបញ្ជូនទៅកាន់អ៊ីម៉ែលរបស់លោកអ្នក។"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "អ៊ីមែល"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "កំណត់ពាក្យសំងាត់សារជាថ្មី"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "សូមថ្លែងអំណរគុណ ដែលបានចំណាយ ពេលវេលាដ៏មានតំលៃ របស់លោកអ្នកមកទស្សនាគេហទំព័ររបស់យើងខ្ញុំ"
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "ពិនិត្យចូលម្តងទៀត"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "ពាក្យសំងាត់បានផ្លាស់ប្តូរដោយជោគជ័យ"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "យើងខ្ញុំបានបញ្ជូន​ពាក្យសំងាត់ទៅកាន់​អ៊ីម៉ែលរបស់លោកអ្នករួចហើយ។ លោកអ្នកនឹងបានទទួលនៅពេលបន្តិចទៀតនេះ។"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "សូមបំពេញពាក្យសំងាត់ចាស់របស់លោកអ្នក។ ដើម្បីសុវត្ថភាព សូមបំពេញពាក្យសំងាត់ថ្មីខាងក្រោមពីរដង។"
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "ពាក្សំងាត់ចាស់"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "ពាក្យសំងាត់ថ្មី"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "បំពេញពាក្យសំងាត់ថ្មីម្តងទៀត"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "ផ្លាស់ប្តូរពាក្យសំងាត់"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "លោកអ្នកទទួលអ៊ីម៉ែលនេះដោយសារលោកអ្នកកំណត់ពាក្យសំងាត់នេះសារជាថ្មី"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "សំរាប់សមាជិកនៅឯគេហទំព័រ %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "ពាក្យសំងាត់ថ្មីគឺ: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "សូមផ្លាស់ប្តូរពាក្យសំងាត់នៅឯទំព័រនេះ:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "ឈ្មោះជាសមាជិកក្នុងករណីភ្លេច:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "សូមអរគុណដែលបានប្រើប្រាស់សេវាកម្មរបស់យើងខ្ញុំ"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "ក្រុមរបស់គេហទំព័រ %(site_name)s"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "កំរងចំណាំ"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "កំរងចំណាំអំពីឯកសារ"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">ដើម្បីតំលើងកំរងចំណាំ សូមទាញយកអត្ថបទភ្ជាប់ទៅ​កាន់​របាឧបករណ៍ ឬក៏ចុចខាងស្តាំលើអត្ថបទភ្ជាប់ហើយ​បញ្ជូលទៅក្នុងកំរងចំណាំរបស់លោកអ្នក។</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "ឯកសារសំរាប់ទំព័រនេះ"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Jumps you from any page to the documentation for the view that generates that page."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "បង្ហាញលេខសំគាល់កម្មវិធី"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Shows the content-type and unique ID for pages that represent a single object."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "កែប្រែកម្មវិធីនេះ(វីនដូវកំពុងប្រើ)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "បង្វែរទៅកាន់​ ទំព័រគ្រប់គ្រង សំរាប់ទំព័រណាដែលតំណាងអោយកម្មវិធីតែមួយ។"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "កែប្រែកម្មវិធីនេះ(វីនដូវថ្មី)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "ដូចខាងលើ តែបើកនៅទំព័រវីនដូវថ្មី"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "កាលបរិច្ឆេទ"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "ម៉ោង"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "បច្ចុប្បន្ន"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "ផ្លាស់ប្តូរ"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "នាំចេញពី"
+
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "គួរតែជាផ្លូវពេញ (absolute path) ហើយមិនបញ្ជូលឈ្មោះ ដមែន (domain name​)។​ឧទាហរណ៍ '/events/search/'។"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "នាំចេញទៅ"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "អាចជាផ្លូវពេញ (absolute path) ឬក៏ URL ទាំងមូលដែលចាប់ផ្តើមជាមួយ 'http://'។"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "នាំចេញ"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "នាំចេញ"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "ឧទាហរណ៍  '/about/contact/' ។ ត្រូវប្រាកដថាមានសញ្ញា / ទាំងនៅផ្នែកខាងមុខ និង ខាងក្រោយ។"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "ចំណងជើង"
+
+msgid "Title"
+msgstr "ចំណងជើង"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "អត្ថន័យ"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "អនុញ្ញាត"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "ឈ្មោះឯកសារគំរូ"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "ឧទាហរណ៍ 'flatpages/contact_page.html'។ ប្រសិនឯកសារនេះមិនមានទេ​ នោះឯកសារ 'flatpages/default.html'នឹងត្រូវប្រើ។"
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "ត្រូវការសមាជិកភាព"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "ប្រសិនជាចុចជ្រើសរើសយកជំរើសនេះ នោះ មានតែសមាជិកទេដែលអាចមើលទំព័រនេះបាន​។"
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "ទំព័ថ្មី"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "ទំព័ថ្មី"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "ចាកចេញ"
+
+#: contrib/auth/models.py:38
+#: contrib/auth/models.py:57
+msgid "name"
+msgstr "ឈ្មោះ"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "ឈ្មោះលេខកូត"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "អនុញ្ញាត"
+
+#: contrib/auth/models.py:43
+#: contrib/auth/models.py:58
+msgid "permissions"
+msgstr "អនុញ្ញាត"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "ក្រុម"
+
+#: contrib/auth/models.py:61
+#: contrib/auth/models.py:100
+msgid "groups"
+msgstr "ក្រុម"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "ឈ្មោះជាសមាជិក"
+
+#: contrib/auth/models.py:90
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "ត្រូចវបំពេញអក្សរឡាតាំងចំនួន៣០ ឬ តិចជាងនេះ (អក្សរ លេខ ឬ សញ្ញា _)។"
+
+#: contrib/auth/models.py:91
+msgid "First name"
+msgstr "នាម"
+
+#: contrib/auth/models.py:92
+msgid "Last name"
+msgstr "គោត្តនាម"
+
+msgid "first name"
+msgstr "នាម"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "គោត្តនាម"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "អ៊ីមែល"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "ពាក្យសំងាត់"
+
+#: contrib/auth/models.py:94
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr "ប្រើ '[algo]$[salt]$[hexdigest]'"
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "ស្ថានភាពបុគ្គលិក"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "កំណត់អោយសមាជិកអាចចូលមកប្រើប្រាស់ទំព័រគ្រប់គ្រងនេះ។"
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "សកម្ម"
+
+#: contrib/auth/models.py:96
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "កំណត់ថាតើសមាជិកអាច​ពិនិត្យចូលមកប្រើទំព័រគ្រប់គ្រង។ មិនជ្រើសរើស ជាជាងលប់ចោល។"
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "ស្ថានភាពអ្នកគ្រងគ្រង"
+
+#: contrib/auth/models.py:97
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "កំណត់អោយសមាជិកនេះមានសិទ្ធិទាំងអស់។"
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "ការពិនិត្យចូលកន្លងមក"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "កាលបរិច្ឆេទចូលរួម"
+
+#: contrib/auth/models.py:101
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "បន្ថែមចំពោះសិទ្ធិដែលគេបាន​ផ្តល់​អោយ សមាជិកនេះអាចទទួលបានសិទ្ធិទាំងអស់​ដែលកំណត់​សំរាប់​ក្រុម​ ដែលសមាជិកនេះស្ថិតនៅ។"
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "ការអនុញ្ញាតអោយសមាជិក"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "សមាជិក"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "សមាជិក"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "ព័ត៌មានផ្ទាល់ខ្លួន"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "ការអនុញ្ញាត"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "កាលបរិច្ឆេទសំខាន់"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "ក្រុម"
+
+#: contrib/auth/models.py:256
+msgid "message"
+msgstr "អត្ថបទ"
+
+#: contrib/auth/forms.py:52
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "កម្មវិធីសំរាប់មើលគេហទំព័រនេះហាក់បីដូចជាមិនទាន់បានទទួលយកគុគី ។ ចាំបាច់ត្រូវកំណត់អោយ​កម្មវិធីសំរាប់មើលគេហទំព័រទទួល​យក គុគី ដើម្បីពិនិត្យចូល ។"
+
+#: contrib/auth/forms.py:61
+msgid "This account is inactive."
+msgstr "ឈ្មោះសមាជិកនេះ​លែងដំណើរការ"
+
+#: contrib/contenttypes/models.py:20
+msgid "python model class name"
+msgstr "ឈ្មោះ python model class"
+
+#: contrib/contenttypes/models.py:23
+msgid "content type"
+msgstr "ប្រភេទអត្ថន័យ"
+
+#: contrib/contenttypes/models.py:24
+msgid "content types"
+msgstr "ប្រភេទអត្ថន័យ"
+
+#: contrib/sessions/models.py:51
+msgid "session key"
+msgstr "លេខសំគាល់​រយះពេល​ពិនិត្យ​ចូល"
+
+#: contrib/sessions/models.py:52
+msgid "session data"
+msgstr "ទិន្នន័យរយះពេល​ពិនិត្យ​ចូល"
+
+#: contrib/sessions/models.py:53
+msgid "expire date"
+msgstr "ហួសពេលកំណត់"
+
+#: contrib/sessions/models.py:57
+msgid "session"
+msgstr "រយះពេល​ពិនិត្យ​ចូល"
+
+#: contrib/sessions/models.py:58
+msgid "sessions"
+msgstr "រយះពេល​ពិនិត្យ​ចូល"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "ឈ្មោះដមែន"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "ឈ្មោះសំរាប់បង្ហាញ"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "គេហទំព័រ"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "គេហទំព័រ"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "ច័ន្ទ"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "អង្គារ"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "ពុធ"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "ព្រហស្បតិ៍"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "សុក្រ"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "សៅរ៍"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "អាទិត្យ"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "មករា"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "កុម្ភៈ"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "March"
+msgstr "មិនា"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "April"
+msgstr "មេសា"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "May"
+msgstr "ឧសភា"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "June"
+msgstr "មិថុនា"
+
+#: utils/dates.py:15
+#: utils/dates.py:27
+msgid "July"
+msgstr "កក្កដា"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "សីហា"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "កញ្ញា"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "តុលា"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "វិច្ឆិកា"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "ធ្នូ"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "មករា"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "កុម្ភះ"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "មិនា"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "មេសា"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "ឧសភា"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "មិថុនា"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "កក្កដា"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "សីហា"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "កញ្ញា"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "តុលា"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "វិច្ឆិកា"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "ធ្នូ"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "មករា"
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "កុម្ភះ"
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "សីហា"
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "កញ្ញា"
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "តុលា"
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "វិច្ឆិកា"
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "ធ្នូ"
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "ឆ្នាំ"
+msgstr[1] "ឆ្នាំ"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "ខែ"
+msgstr[1] "ខែ"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "សប្តាហ៍"
+msgstr[1] "សប្តាហ៍"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "ថ្ងៃ"
+msgstr[1] "ថ្ងៃ"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "ម៉ោង"
+msgstr[1] "ម៉ោង"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "នាទី"
+msgstr[1] "នាទី"
+
+#: utils/translation/trans_real.py:362
+msgid "DATE_FORMAT"
+msgstr "ថ្ងៃទី j ​ខែ N ឆ្នាំ Y"
+
+#: utils/translation/trans_real.py:363
+msgid "DATETIME_FORMAT"
+msgstr "ថ្ងៃទី j ​ខែ N ឆ្នាំ Y ម៉ោង P"
+
+#: utils/translation/trans_real.py:364
+msgid "TIME_FORMAT"
+msgstr "ម៉ោង P"
+
+#: utils/translation/trans_real.py:380
+msgid "YEAR_MONTH_FORMAT"
+msgstr "ខែ F ឆ្នាំ Y"
+
+#: utils/translation/trans_real.py:381
+msgid "MONTH_DAY_FORMAT"
+msgstr "ថ្ងៃទី​​ j ខែ F"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "ភាសាអារ៉ាប់"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "ភាសាបេឡារុស្ស"
+
+#: conf/global_settings.py:41
+msgid "Czech"
+msgstr "ភាសាឆេក"
+
+#: conf/global_settings.py:42
+msgid "Welsh"
+msgstr "ភាសាអ៊ុយក្រែន"
+
+#: conf/global_settings.py:43
+msgid "Danish"
+msgstr "ភាសាដាណឺម៉ាក"
+
+#: conf/global_settings.py:44
+msgid "German"
+msgstr "ភាសាអាល្លឺម៉ង់"
+
+#: conf/global_settings.py:45
+msgid "Greek"
+msgstr "ភាសាហ្កែលិគ"
+
+#: conf/global_settings.py:46
+msgid "English"
+msgstr "ភាសាអង់គ្លេស"
+
+#: conf/global_settings.py:47
+msgid "Spanish"
+msgstr "ភាសាអេស្ប៉ាញ"
+
+#: conf/global_settings.py:48
+msgid "Argentinean Spanish"
+msgstr "ភាសាអេស្ប៉ាញ"
+
+#: conf/global_settings.py:49
+msgid "Finnish"
+msgstr "ភាសាហ្វាំងឡង់"
+
+#: conf/global_settings.py:50
+msgid "French"
+msgstr "ភាសាបារាំង"
+
+#: conf/global_settings.py:51
+msgid "Galician"
+msgstr "ភាសាហ្កែលិគ"
+
+#: conf/global_settings.py:52
+msgid "Hungarian"
+msgstr "ភាសាហុងគ្រី"
+
+#: conf/global_settings.py:53
+msgid "Hebrew"
+msgstr "ភាសាហេប្រិ"
+
+#: conf/global_settings.py:54
+msgid "Icelandic"
+msgstr "ភាសាអ៉ីស្លង់"
+
+#: conf/global_settings.py:55
+msgid "Italian"
+msgstr "ភាសាអ៊ីតាលី"
+
+#: conf/global_settings.py:56
+msgid "Japanese"
+msgstr "ភាសាជប៉ុន"
+
+#: conf/global_settings.py:57
+msgid "Dutch"
+msgstr "ភាសាហ្វាំងឡង់"
+
+#: conf/global_settings.py:58
+msgid "Norwegian"
+msgstr "ភាសាន័រវែស"
+
+#: conf/global_settings.py:59
+msgid "Brazilian"
+msgstr "ភាសាប្រេស៊ីល"
+
+#: conf/global_settings.py:60
+msgid "Romanian"
+msgstr "ភាសារូម៉ានី"
+
+#: conf/global_settings.py:61
+msgid "Russian"
+msgstr "ភាសាรัរូស្ស៉ី"
+
+#: conf/global_settings.py:62
+msgid "Slovak"
+msgstr "ភាសាស្លូវ៉ាគី"
+
+#: conf/global_settings.py:63
+msgid "Slovenian"
+msgstr "ភាសាស្លូវ៉ានី"
+
+#: conf/global_settings.py:64
+msgid "Serbian"
+msgstr ""
+
+#: conf/global_settings.py:65
+msgid "Swedish"
+msgstr "ភាសាស៊ុយអែដ"
+
+#: conf/global_settings.py:66
+msgid "Tamil"
+msgstr "ភាសាតាមីល"
+
+#: conf/global_settings.py:67
+msgid "Turkish"
+msgstr "ភាសាទួរគី"
+
+#: conf/global_settings.py:68
+msgid "Ukrainian"
+msgstr "ភាសាអ៊ុយក្រែន"
+
+#: conf/global_settings.py:69
+msgid "Simplified Chinese"
+msgstr "ភាសាចិនសាមញ្ញ"
+
+#: conf/global_settings.py:70
+msgid "Traditional Chinese"
+msgstr "ភាសាចិនបុរាណ"
+
+#: core/validators.py:63
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "ត្រូវបំពេញតែអក្សរឡាតាំង ចំនួនលេខ និង សញ្ញា _"
+
+#: core/validators.py:67
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "ត្រូវបំពេញតែអក្សរឡាតាំង ចំនួនលេខ និង សញ្ញា _ សញ្ញា - ឬ សញ្ញា / ។"
+
+#: core/validators.py:71
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "ត្រូវបំពេញតែអក្សរឡាតាំង ចំនួនលេខ និង សញ្ញា _ សញ្ញា - ។"
+
+#: core/validators.py:75
+msgid "Uppercase letters are not allowed here."
+msgstr "មិនអនុញ្ញាតអោយសរសេរអក្សរធំ។"
+
+#: core/validators.py:79
+msgid "Lowercase letters are not allowed here."
+msgstr "មិនអនុញ្ញាតអោយសរសេរអក្សរតូច។"
+
+#: core/validators.py:86
+msgid "Enter only digits separated by commas."
+msgstr "បំពេញតែលេខហើយផ្តាច់ចេញពីគ្នាដោយសញ្ញាក្បៀស។"
+
+#: core/validators.py:98
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "បំពេញអ៊ីម៉ែលហើយផ្តាច់ចេញពីគ្នាដោយសញ្ញាក្បៀស។"
+
+#: core/validators.py:102
+msgid "Please enter a valid IP address."
+msgstr "សូមបំពេញអាស័យដ្ឋាន IP។"
+
+#: core/validators.py:106
+msgid "Empty values are not allowed here."
+msgstr "មិនអនុញ្ញាតអោយមានចំនួនទទេ។"
+
+#: core/validators.py:110
+msgid "Non-numeric characters aren't allowed here."
+msgstr "មិនអនុញ្ញាតអោយសរសេរអក្សរដែលមិនមែនជាលេខ។"
+
+#: core/validators.py:114
+msgid "This value can't be comprised solely of digits."
+msgstr "មិនអាចអនុញ្ញាតអោយមានតែចំនួនលេខ។"
+
+#: core/validators.py:119
+msgid "Enter a whole number."
+msgstr "បំពេញចំនួនទាំងអស់។"
+
+#: core/validators.py:123
+msgid "Only alphabetical characters are allowed here."
+msgstr "អនុញ្ញាតអោយសរសេរតែអក្សរឡាតាំង។"
+
+#: core/validators.py:138
+msgid "Year must be 1900 or later."
+msgstr "ត្រូវបំពេញឆ្នាំចាប់ពី ១៩០០។"
+
+#: core/validators.py:142
+#, python-format
+msgid "Invalid date: %s."
+msgstr "កាលបរិច្ឆេទមិនត្រឹមត្រូវ : %s។"
+
+#: core/validators.py:146
+#: db/models/fields/__init__.py:415
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "សូមបំពេញកាលបរិច្ឆេទក្នុងទំរង់ជា YYYY-MM-DD ។"
+
+#: core/validators.py:151
+msgid "Enter a valid time in HH:MM format."
+msgstr "សូមបំពេញពេលវេលាក្នុងទំរង់ជា HH:MM ។"
+
+#: core/validators.py:155
+#: db/models/fields/__init__.py:477
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "សូមបំពេញកាលបរិច្ឆេទក្នុងទំរង់ជា YYYY-MM-DD HH:MM ។"
+
+#: core/validators.py:160
+msgid "Enter a valid e-mail address."
+msgstr "សូមបំពេញអ៊ីមែល"
+
+#: core/validators.py:172
+#: core/validators.py:401
+#: forms/__init__.py:661
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "មិនមានឯកសារត្រូវបានជ្រើសរើស។ សូមពិនិត្យប្រភេទឯកសារម្តងទៀត។"
+
+#: core/validators.py:176
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "រូបភាពដែលទាញយកមិនត្រឹមត្រូវ ប្រហែលជាមិនមែនជារូបភាព ឬក៏ជា រូបភាពខូច។"
+
+#: core/validators.py:183
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL រូបភាព %s មិនត្រឹមត្រូវ ។"
+
+#: core/validators.py:187
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "លេខទូរស័ព្ទត្រូវតែក្នុងទំរង់ជា XXX-XXX-XXXX ។ \"%s\" គឺមិនត្រឹមត្រូវទេ។"
+
+#: core/validators.py:195
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL ទៅកាន់វីដេអូ QuickTime %s មិនត្រឹមត្រូវ ។"
+
+#: core/validators.py:199
+msgid "A valid URL is required."
+msgstr "URL មិនត្រឹមត្រូវ។"
+
+#: core/validators.py:213
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"ចាំបាច់ HTML ដែលត្រឹមត្រូវ។ ខាងក្រោម​គឺ​ជាកំហុស​:\n"
+"%s"
+
+#: core/validators.py:220
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML មិនត្រឹមត្រូវ​: %s"
+
+#: core/validators.py:230
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL ដែលមិនត្រឹមត្រូវ: %s"
+
+#: core/validators.py:234
+#: core/validators.py:236
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL​ខូច: %s"
+
+#: core/validators.py:242
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "សូមបំពេញអក្សរកាត់រដ្ឋរបស់សហរដ្ឋអាមេរិកអោយបានត្រឹមត្រូវ។"
+
+#: core/validators.py:256
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "ពាក្យ %s មិនអនុញ្ញាតអោយប្រើនៅទីនេះទេ។"
+msgstr[1] "ពាក្យ %s មិនអនុញ្ញាតអោយប្រើនៅទីនេះទេ។"
+
+#: core/validators.py:263
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "ទិន្នន័យនៅកន្លែងនេះត្រូវតែដូច '%s'  ។"
+
+#: core/validators.py:282
+msgid "Please enter something for at least one field."
+msgstr "សូមបំពេញទិន្នន័យយ៉ាងតិចនៅមួយ​កន្លែង។"
+
+#: core/validators.py:291
+#: core/validators.py:302
+msgid "Please enter both fields or leave them both empty."
+msgstr "អាចបំពេញ ឬ មិនបំពេញ ទិន្នន័យនៅកន្លែងទាំងពីរនេះ។"
+
+#: core/validators.py:309
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "ទិន្នន័យកន្លែងនេះត្រូវបំពេញ​ប្រសិន​បើ %(field)s មានតំលៃ %(value)s"
+
+#: core/validators.py:321
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "ទិន្នន័យកន្លែងនេះត្រូវបំពេញ​ប្រសិន​បើ %(field)s មិនមានតំលៃ %(value)s"
+
+#: core/validators.py:340
+msgid "Duplicate values are not allowed."
+msgstr "មិនអនុញ្ញាតអោយមានតំលៃដូចគ្នា។"
+
+#: core/validators.py:363
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "ចំនួនត្រូវតែជាស្វ័យគុណរបស់ %s។"
+
+#: core/validators.py:374
+msgid "Please enter a valid decimal number."
+msgstr "សូមបំពេញចំនួនទសភាគអោយបានត្រឹមត្រូវ។"
+
+#: core/validators.py:378
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "សូមបំពេញចំនួនទសភាគយ៉ាងតិច  %sខ្ទង់។"
+msgstr[1] "សូមបំពេញចំនួនទសភាគយ៉ាងតិច  %sខ្ទង់។"
+
+#: core/validators.py:381
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "សូមបំពេញចំនួនទសភាគទាំងអស់  %sខ្ទង់។"
+msgstr[1] "សូមបំពេញចំនួនទសភាគទាំងអស់  %sខ្ទង់។"
+
+#: core/validators.py:384
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "សូមបំពេញចំនួនទសភាគយ៉ាងច្រើន  %sខ្ទង់។"
+msgstr[1] "សូមបំពេញចំនួនទសភាគយ៉ាងច្រើន  %sខ្ទង់។"
+
+#: core/validators.py:394
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "ឯកសារដែលទាញយកត្រូវមានទំហំយ៉ាងតិច %s បៃ។"
+
+#: core/validators.py:395
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "ឯកសារដែលទាញយកត្រូវមានទំហំអតិបរិមា %s បៃ។"
+
+#: core/validators.py:412
+msgid "The format for this field is wrong."
+msgstr "ទំរង់ទិន្នន័យនៅកន្លែងនេះមិនត្រឹមត្រូវ។"
+
+#: core/validators.py:427
+msgid "This field is invalid."
+msgstr "ទិន្នន័យកន្លែងនេះមិនត្រឹមត្រូវ។"
+
+#: core/validators.py:463
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "មិនអាចទាញយកពី  %s។"
+
+#: core/validators.py:466
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "ទទួលចំលើយ ​Content-Type header '%(contenttype)s' មិនត្រឹមត្រូវពី URL %(url)s ។"
+
+#: core/validators.py:499
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "សូមបិទ ថាក់(tag) ដែលមិនទាន់បិទ %(tag)s នៅបន្ទាត់ %(line)s ។ (បន្ទាត់ដែលចាប់ផ្តើមជាមួយ \"%(start)s\".)"
+
+#: core/validators.py:503
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "ពាក្យមួយចំនួននៅបន្ទាត់ %(line)s មិនអនុញ្ញាតអោយប្រើទេ។ (បន្ទាត់ចាប់ផ្តើមជាមួយ \"%(start)s\"។)"
+
+#: core/validators.py:508
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" on line %(line)s គឺជាគុណលក្ខណៈ(attribute) មិនត្រឹមត្រូវ។ (បន្ទាត់ចាប់ផ្តើមជាមួយ \"%(start)s\".)"
+
+#: core/validators.py:513
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\" ថាក់(tag)នៅបន្ទាត់ %(line)s គឺមិនត្រឹមត្រូវ។ (បន្ទាត់ចាប់ផ្តើមជាមួយ \"%(start)s\".)"
+
+#: core/validators.py:517
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "ថាក់ (tag)​នៅបន្ទាត់ %(line)s បាត់គុណលក្ខណៈ មួយ ឬ ច្រើន។(បន្ទាត់ចាប់ផ្តើមជាមួយ \"%(start)s\".)"
+
+#: core/validators.py:522
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "គុណលក្ខណៈ \"%(attr)s\" នៅបន្ទាត់ %(line)s ពុំមានតំលៃត្រឹមត្រូវទេ។ (បន្ទាត់ចាប់ផ្តើមជាមួយ \"%(start)s\".)"
+
+#: views/generic/create_update.py:43
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "The %(verbose_name)s បានផ្លាស់ប្តូរដោយជោគជ័យ។"
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "The %(verbose_name)s​ បានលប់។ "
+
+#: db/models/manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s ជាមួយនឹងប្រភេទ %(type)s នេះមានម្តងរួចហើយនៅជាមួយ %(field)s"
+
+#: db/models/fields/__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s ជាមួយឈ្មោះ %(fieldname)s នេះមានរួចរាល់ហើយ។"
+
+#: db/models/fields/__init__.py:114
+#: db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:551
+#: db/models/fields/__init__.py:562
+#: forms/__init__.py:346
+msgid "This field is required."
+msgstr "ចាំបាច់បំពេញទិន្នន័យកន្លែងនេះ។"
+
+#: db/models/fields/__init__.py:340
+msgid "This value must be an integer."
+msgstr "តំលៃនេះត្រូវតែជាចំនួនលេខ។"
+
+#: db/models/fields/__init__.py:372
+msgid "This value must be either True or False."
+msgstr "តំលៃអាចជា True ឬ False។"
+
+#: db/models/fields/__init__.py:388
+msgid "This field cannot be null."
+msgstr "ចាំបាច់បំពេញទិន្នន័យកន្លែងនេះ។"
+
+#: db/models/fields/__init__.py:571
+msgid "Enter a valid filename."
+msgstr "សូមបំពេញឈ្មោះឯកសារអោយបានត្រឹមត្រូវ។"
+
+#: db/models/fields/related.py:51
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "សូមបំពេញ  %s អោយបានត្រឹមត្រូវ។"
+
+#: db/models/fields/related.py:618
+msgid "Separate multiple IDs with commas."
+msgstr "ផ្តាច់លេច ID ចេញពីគ្នាដោយក្បៀស។"
+
+#: db/models/fields/related.py:620
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "សូមចុចប៉ូតុន \"Control\", ឬ \"Command\" ចំពោះកុំព្យូទ័រ Mac, ដើម្បីជ្រើសរើសច្រើនជាងមួយ។"
+
+#: db/models/fields/related.py:664
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "សូមបំពេញលេខ %(self)s អោយបានត្រឹមត្រូវ។ តំលៃ %(value)r នេះមិនត្រឹមត្រូវទេ។"
+msgstr[1] "សូមបំពេញលេខ %(self)s អោយបានត្រឹមត្រូវ។ តំលៃ %(value)r នេះមិនត្រឹមត្រូវទេ។"
+
+#: forms/__init__.py:381
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "អត្ថបទរបស់អ្នកតិចជាង %s អក្សរ។"
+msgstr[1] ""
+
+msgid "Ensure this value has at most %d characters."
+msgstr "អត្ថបទរបស់អ្នកត្រូវតិចជាង %d អក្សរ។"
+
+#: newforms/fields.py:105
+#: newforms/fields.py:258
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "អត្ថបទរបស់អ្នកត្រូវច្រើនជាង  %d អក្សរ។"
+
+#: forms/__init__.py:386
+msgid "Line breaks are not allowed here."
+msgstr "បន្ទាត់មិនអនុញ្ញាតនៅទីនេះទេ។"
+
+#: forms/__init__.py:487
+#: forms/__init__.py:560
+#: forms/__init__.py:599
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "សូមជ្រើសរើស ; '%(data)s' មិនមាននៅក្នុង %(choices)s"
+
+#: forms/__init__.py:663
+msgid "The submitted file is empty."
+msgstr "ពុំមានឯកសារ។​"
+
+#: forms/__init__.py:719
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "សូម​បំពេញ​លេខចន្លោះ​ពី​ -៣២.៧៦៧ និង ៣២.៧៦៧"
+
+#: forms/__init__.py:729
+msgid "Enter a positive number."
+msgstr "សូមបំពេញចំនួន​វិជ្ជមាន"
+
+#: forms/__init__.py:739
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "សូម​បំពេញ​លេខចន្លោះ​ពី​ ០ និង ៣២.៧៦៧"
+
+#: template/defaultfilters.py:401
+msgid "yes,no,maybe"
+msgstr "យល់ព្រម មិនយល់ព្រម​ ប្រហែល"
+
+msgid "Your username and password didn't match. Please try again."
+msgstr "ឈ្មោះជាសមាជិក និង ពាក្យ​សំងាត់​មិន​ត្រឹមត្រូវ។"
+
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "អ៊ីមែល នេះ មិនមាន​នៅក្នុង​ទិន្នន័យ​របស់​យើង​ខ្ញុំ​ទេ។"
+
+msgid "5-30 alphanumeric characters or underscores."
+msgstr "ត្រូវបំពេញអក្សរឡាតាំង (អក្សរ លេខ ឬ សញ្ញា _) ចំនួនពី​៥​ ទៅ ៣០។"
+
+msgid "Must be 5-30 alphanumeric characters or underscores."
+msgstr "ត្រូចវបំពេញអក្សរឡាតាំង (អក្សរ លេខ ឬ សញ្ញា _) ចំនួនពី​៥​ ទៅ ៣០។"
+
+msgid "Confirm password"
+msgstr "បំពេញពាក្យសំងាត់ម្តងទៀត"
+
+msgid "Please make sure your passwords match."
+msgstr "ពាក្យសំងាត់មិនដូចគ្នា។"
+
+msgid "The username \"%s\" is already taken."
+msgstr "ឈ្មោះជាសមាជិក  \"%s\" ត្រូវបានគេយករួចហើយ។ សូមជ្រើសរើសឈ្មោះជាសមាជិកផ្សេងទៀត។"
+
+msgid "The email \"%s\" existed."
+msgstr "អ៊ីមែល  \"%s\" មានរួចហើយ។ សូមជ្រើសរើសអ៊ីមែលផ្សេងទៀត។"
+
+msgid "Audio"
+msgstr "ចំរៀង"
+
+msgid "Video id"
+msgstr "លេខ វីដេអូ"
+
+msgid "Video title"
+msgstr "ចំណងជើើង  វីដេអូ"
+
+msgid "Video length"
+msgstr "ទំហំ  វីដេអូ"
+
+msgid "Outside url"
+msgstr "គេហទំព័រ​ពីក្រៅ"
+
+msgid "Receive name"
+msgstr "ឈ្មោះ​អ្នក​ទទួល"
+
+msgid "Receive email"
+msgstr "អ៊ីមែល​របស់​​អ្នក​ទទួល"
+
+msgid "Message"
+msgstr "អត្ថបទ"
+
+msgid "Sending date"
+msgstr "បញ្ជូន​នៅ​ថ្ងៃ"
+
+msgid "Received date"
+msgstr "​ថ្ងៃ​ទទួល"
+
+msgid "Send as private message"
+msgstr "ជាអត្ថបទ​ផ្ទាល់​ខ្លួន​"
+
+msgid "Sent"
+msgstr "បានបញ្ជូន​"
+
+msgid "Question"
+msgstr "សំណួរ"
+
+msgid "Answer"
+msgstr "ចំលើយ​"
+
+msgid "Tags"
+msgstr "ប្រភេទ​"
+
+msgid "Business"
+msgstr "ពាណិជ្ជកម្ម"
+
+msgid "Beauty & Style"
+msgstr "សោភ័ណភាព និង ម៉ូត​"
+
+msgid "Education"
+msgstr "ការអប់រំ​"
+
+msgid "Environment"
+msgstr "បរិដ្ឋាន"
+
+msgid "Family & Relationships"
+msgstr "គ្រួសារ និង សេចក្តីស្នេហា"
+
+msgid "Food & Drink"
+msgstr "ម្ហូប និង ភេសជ្ជៈ"
+
+msgid "General"
+msgstr "ផ្សេងៗ"
+
+msgid "Games & Recreation"
+msgstr "កំសាន្ត និង ហ្គេម"
+
+msgid "Health"
+msgstr "សុខភាព"
+
+msgid "Pets"
+msgstr "សត្វ ចិញ្ជឹម"
+
+msgid "Politics & Government"
+msgstr "រដ្ឋាភិបាល និង នយោបាយ"
+
+msgid "Sports"
+msgstr "កីឡា"
+
+msgid "Technology"
+msgstr "បច្ចេកវិទ្សា"
+
+msgid "Travel"
+msgstr "ដំណើរកំសាន្ត"
+
+msgid "Source"
+msgstr "ដកស្រង់ចេញ"
+
+msgid "Left column"
+msgstr "ជួរទីមួយ"
+
+msgid "Right column"
+msgstr "ជួរទីពីរ"
+
+msgid "Start date"
+msgstr "ចាប់ផ្តើមនៅ"
+
+msgid "End date"
+msgstr "បញ្ជប់នៅ"
+
diff --git a/webapp/django/conf/locale/km/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/km/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..613f548
--- /dev/null
+++ b/webapp/django/conf/locale/km/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/km/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/km/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..6084219
--- /dev/null
+++ b/webapp/django/conf/locale/km/LC_MESSAGES/djangojs.po
@@ -0,0 +1,108 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: sengtha@e-khmer.com\n"
+"POT-Creation-Date: 2007-01-15 15:43+0200\n"
+"PO-Revision-Date: 2007-01-21 01:25+0900\n"
+"Last-Translator: Chay Sengtha <sengtha@e-khmer.com>\n"
+"Language-Team: Chay Sengtha <sengtha@e-khmer.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s ដែលអាច​ជ្រើសរើសបាន"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "ជ្រើសរើសទាំងអស់"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "បន្ថែម"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "លប់ចេញ"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s ដែលបានជ្រើសរើស"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "សូមជ្រើសរើសយក"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "លប់ចេញទាំងអស់"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid "January February March April May June July August September October November December"
+msgstr "January February March April May June July August September October November December"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S M T W T F S"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "ឥឡូវនេះ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "នាឡិការ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "ជ្រើសរើសម៉ោង"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "អធ្រាត្រ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "ម៉ោង ៦ ព្រឹក"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "ពេលថ្ងែត្រង់"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "លប់ចោល"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "ថ្ងៃនេះ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "ប្រក្រតិទិន"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "ម្សិលមិញ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "ថ្ងៃស្អែក"
+
diff --git a/webapp/django/conf/locale/kn/LC_MESSAGES/django.mo b/webapp/django/conf/locale/kn/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..8c9fe23
--- /dev/null
+++ b/webapp/django/conf/locale/kn/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/kn/LC_MESSAGES/django.po b/webapp/django/conf/locale/kn/LC_MESSAGES/django.po
new file mode 100644
index 0000000..37c632c
--- /dev/null
+++ b/webapp/django/conf/locale/kn/LC_MESSAGES/django.po
@@ -0,0 +1,2536 @@
+# Kannada translation of Django.
+# Copyright (C) 2007 Translation Team <translation@sampada.info>
+# This file is distributed under the same license as the Django package.
+# Kannada Localization Team <translation@sampada.info>, 2007.
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-25 15:43+0200\n"
+"PO-Revision-Date: 2007-01-08 20:22+0530\n"
+"Last-Translator: Kannada Localization Team <translation@sampada.info>\n"
+"Language-Team: Kannada <translation@sampada.info>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "ವಸ್ತುವಿನ ಐಡಿ"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "ತಲೆಬರಹ"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "ಟಿಪ್ಪಣಿ"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "ಕ್ರಮಾಂಕ ೧"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "ಕ್ರಮಾಂಕ  ೨"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "ಕ್ರಮಾಂಕ  ೩ "
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "ಕ್ರಮಾಂಕ ೪"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "ಕ್ರಮಾಂಕ ೫ "
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "ಕ್ರಮಾಂಕ ೬ "
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "ಕ್ರಮಾಂಕ ೭"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "ಕ್ರಮಾಂಕ ೮"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "ಕ್ರಮಬದ್ಧ ಕ್ರಮಾಂಕ"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "ಸಲ್ಲಿಸಿದ ದಿನಾಂಕ/ಸಮಯ"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "ಸಾರ್ವಜನಿಕವಾಗಿದೆ"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "IP ವಿಳಾಸ"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "ತೆಗೆದು ಹಾಕಲಾಗಿದೆ"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"ಟಿಪ್ಪಣಿ ಅನುಚಿತವಾಗಿ "
+"ಇದ್ದಲ್ಲಿ ಈ ಚೌಕದಲ್ಲಿ ಗುರುತು "
+"ಮಾಡಿ. ಅದರ ಬದಲಾಗಿ \"ಈ ಟಿಪ್ಪಣಿ "
+"ತೆಗೆದುಹಾಕಲಾಗಿದೆ\" ಎಂಬ "
+"ಸಂದೇಶವನ್ನು  ತೋರಿಸಲಾಗುವುದು."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "ಟಿಪ್ಪಣಿಗಳು"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "ಒಳವಿಷಯ ವಸ್ತು"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"ಸಲ್ಲಿಸಿದವರು %(user)s ರವರು  %(date)s\n"
+"\n"
+"  ದಿನ/ಸಮಯಕ್ಕೆ %(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s  ಸಲ್ಲಿಸಿದ್ದು"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "ವ್ಯಕ್ತಿಯ ಹೆಸರು"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "IP ವಿಳಾಸ"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr ""
+"ಸಿಬ್ಬಂದಿಯಿಂದ ಅನುಮೋದನೆ "
+"ಪಡೆದಿದೆ"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "ಉಚಿತ ಟಿಪ್ಪಣಿ"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "ಉಚಿತ ಟಿಪ್ಪಣಿಗಳು"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "ಅಂಕ"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "ಅಂಕದ ದಿನಾಂಕ"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "ಕರ್ಮ ಅಂಕ"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "ಕರ್ಮ ಅಂಕಗಳು"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr " %(user)s ಇಂದ  %(score)d ಕ್ರಮಾಂಕ"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"ಈ ಟಿಪ್ಪಣಿಯನ್ನು %(user)s ರವರು "
+"ಪತಾಕೆಯಿಂದ ಗುರುತು "
+"ಮಾಡಿದ್ದಾರೆ:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "ಪತಾಕೆ ದಿನಾಂಕ"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "ಬಳಕೆದಾರ ಪತಾಕೆ"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "ಬಳಕೆದಾರ ಪತಾಕೆಗಳು"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "%r ಇಂದ ಪತಾಕೆ"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "ತೆಗೆದುಹಾಕಿದ ದಿನಾಂಕ"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "ನಿಯಂತ್ರಕರು ಅಳಿಸಿದ್ದು"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "ನಿಯಂತ್ರಕರು ಅಳಿಸಿದ್ದು"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr " %r ಇಂದ ನಿಯಂತ್ರಕರ ಅಳಿಸುವಿಕೆ "
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr ""
+"ಅನಾಮಧೇಯ ಬಳಕೆದಾರರು ಮತ "
+"ಹಾಕುವಂತಿಲ್ಲ"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "ತಪ್ಪು ಟಿಪ್ಪಣಿ ಐಡಿ"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr ""
+"ತಮಗೇ ಮತ ಹಾಕಿಕೊಳ್ಳುವಂತಿಲ್ಲ."
+
+#: contrib/comments/views/comments.py:27
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"ನೀವು  ಬೇರೆಯ ಕ್ರಮಾಂಕ "
+"ನೀಡಿರುವುದರಿಂದ ಈ ಕ್ರಮಾಂಕ "
+"ಅವಶ್ಯವಾಗಿದೆ."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"%(count)s ಕ್ಕಿಂತಲೂ ಕಡಿಮೆ "
+"ಟಿಪ್ಪಣಿಗಳನ್ನು ಬರೆದಿರುವ "
+"ಸದಸ್ಯರಿಂದ ಈ ಟಿಪ್ಪಣಿ "
+"ಬರೆಯಲ್ಪಟ್ಟಿದೆ:\n"
+"\n"
+"%(text)s"
+"%(count)sಕ್ಕಿಂತಲೂ ಕಡಿಮೆ "
+"ಟಿಪ್ಪಣಿಗಳನ್ನು ಬರೆದಿರುವ "
+"ಸದಸ್ಯರಿಂದ ಈ ಟಿಪ್ಪಣಿ "
+"ಬರೆಯಲ್ಪಟ್ಟಿದೆ:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"ಈ ಟಿಪ್ಪಣಿಯನ್ನು ಅಪೂರ್ಣ "
+"ಮಾಹಿತಿಯುಳ್ಳ ಬಳಕೆದಾರ :\n"
+"\n"
+" %(text)s ರು ಸಲ್ಲಿಸಿದ್ದಾರೆ"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr ""
+"ಸಲ್ಲಿಕೆಗಳಿಗೆ ಮಾತ್ರ "
+"ಅನುಮತಿಯಿದೆ"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr ""
+"ಒಂದು ಅಥವಾ ಹೆಚ್ಚು ಅಗತ್ಯ "
+"ಅಂಶಗಳನ್ನು ಸಲ್ಲಿಸಿಲ್ಲ"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"ಯಾರೋ ಟಿಪ್ಪಣಿಯನ್ನು "
+"ಬದಲಾಯಿಸಿದ್ದಾರೆ( ಭದ್ರತೆಯ "
+"ಉಲ್ಲಂಘನೆ)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"ಟಿಪ್ಪಣಿ ನಮೂನೆಗೆ ತಪ್ಪು "
+"ಟಾರ್ಗೆಟ್ ಪ್ಯಾರಾಮೀಟರ್ ಇದೆ. "
+"ವಸ್ತುವಿನ ಐಡಿಯು "
+"ದೋಷಪೂರಿತವಾಗಿತ್ತು."
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+"ಟಿಪ್ಪಣಿ ನಮೂನೆ "
+"'ಮುನ್ನೋಟ'ವನ್ನಾಗಲೀ "
+"'ಸಲ್ಲಿಕೆ'ಯನ್ನಾಗಲೀ "
+"ಒದಗಿಸಲಿಲ್ಲ."
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "ಬಳಕೆದಾರನ ಹೆಸರು:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "ಹೊರಕ್ಕೆ ಹೋಗಿ"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "ಪ್ರವೇಶಪದ:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr ""
+"ನಿಮ್ಮ ಪ್ರವೇಶಪದ ಮರೆತಿದ್ದೀರಾ?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "ಕ್ರಮಾಂಕಗಳು"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "ಅವಶ್ಯ"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "ಐಚ್ಛಿಕ"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "ಭಾವಚಿತ್ರ ಸಲ್ಲಿಸಿ"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "ಟಿಪ್ಪಣಿ:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "ಟಿಪ್ಪಣಿ ಮುನ್ನೋಟ"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "ನಿಮ್ಮ ಹೆಸರು:"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>%s ಇಂದ :</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "ಎಲ್ಲಾ"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "ಯಾವುದೇ ದಿನಾಂಕ"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "ಈದಿನ"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "ಕಳೆದ ೭ ದಿನಗಳು"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "ಈ ತಿಂಗಳು"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "ಈ ವರ್ಷ"
+
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "ಹೌದು"
+
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "ಇಲ್ಲ"
+
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "ಗೊತ್ತಿಲ್ಲ(ದ/ದ್ದು)"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "ಕ್ರಮದ(ಕ್ರಿಯೆಯ) ಸಮಯ"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "ವಸ್ತುವಿನ ಐಡಿ"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "ವಸ್ತು ಪ್ರಾತಿನಿಧ್ಯ"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "ಕ್ರಮದ(ಕ್ರಿಯೆಯ) ಪತಾಕೆ"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr ""
+"ಬದಲಾವಣೆಯ ಸಂದೇಶ/ಸಂದೇಶ ಬದಲಿಸಿ"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "ಲಾಗ್ ದಾಖಲೆ"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "ಲಾಗ್ ದಾಖಲೆಗಳು"
+
+#: contrib/admin/templatetags/admin_list.py:230
+msgid "All dates"
+msgstr "ಎಲ್ಲಾ ದಿನಾಂಕಗಳು"
+
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:59
+msgid ""
+"Please enter a correct username and password. Note that both fields are "
+"case-sensitive."
+msgstr ""
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ ಬಳಕೆದಾರ-ಪದ "
+"ಮತ್ತು  ಪ್ರವೇಶಪದ ಬರೆಯಿರಿ "
+".ಎರಡೂ ಇಂಗ್ಲೀಷಿನ  ಸಣ್ಣ ಮತ್ತು "
+"ದೊಡ್ಡ ಅಕ್ಷರ ಸಂವೇದಿ  "
+"ಎಂಬುದನ್ನು ಗಮನದಲ್ಲಿಡಿ"
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "ಒಳಗೆ ಬನ್ನಿ"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"ದಯವಿಟ್ಟು ಇನ್ನೊಮ್ಮೆ ಒಳಬನ್ನಿ "
+"(ಲಾಗಿನ್ ಮಾಡಿ) . ನಿಮ್ಮ ಅಧಿವೇಶನ "
+"ಕೊನೆಗೊಂಡಿದೆ. "
+"ಚಿಂತಿಸಬೇಡಿ:ನಿಮ್ಮ "
+"ಸಲ್ಲಿಕೆಯನ್ನು ಉಳಿಸಲಾಗಿದೆ."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"ಕುಕೀಗಳನ್ನು ಸ್ವೀಕರಿಸುವಂತೆ "
+"ನಿಮ್ಮ ಜಾಲವೀಕ್ಷಕವನ್ನು "
+"ಸಂರಚಿಸಲಾಗಿಲ್ಲ ಎಂದು "
+"ತೋರುತ್ತದೆ. ದಯವಿಟ್ಟು "
+"ಕುಕೀಗಳನ್ನು  ಸಕ್ರಿಯಗೊಳಿಸಿ , ಈ "
+"ಪುಟವನ್ನು ಮತ್ತೆ ಲೋಡ್ ಮಾಡಿ "
+"ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿರಿ. "
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr ""
+"ಬಳಕೆದಾರ-ಹೆಸರುಗಳು '@' "
+"ಅಕ್ಷರವನ್ನು ಒಳಗೊಳ್ಳುವಂತಿಲ್ಲ"
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"ನಿಮ್ಮ ವಿ-ಅಂಚೆ ವಿಳಾಸವು ನಿಮ್ಮ "
+"ಬಳಕೆದಾರ-ಹೆಸರಲ್ಲ; ಬದಲಾಗಿ '%s'  "
+"ಪ್ರಯತ್ನಿಸಿ."
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "ತಾಣ ನಿರ್ವಹಣೆ"
+
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:17
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr ""
+" %(name)s \"%(obj)s\" ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ "
+"ಸೇರಿಸಲಾಯಿತು."
+
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:22
+msgid "You may edit it again below."
+msgstr ""
+"ನೀವು ಅದನ್ನು ಕೆಳಗೆ ಮತ್ತೆ "
+"ಬದಲಾಯಿಸಬಹುದು."
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr ""
+"ನೀವು ಕೆಳಗೆ ಇನ್ನೊಂದು %s "
+"ಸೇರಿಸಬಹುದು."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "%s ಸೇರಿಸಿ"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "%s ಸೇರಿಸಲಾಯಿತು."
+
+#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
+msgid "and"
+msgstr "ಮತ್ತು"
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "%s ಬದಲಾಯಿಸಲಾಯಿತು."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "%s ತೆಗೆದುಹಾಕಲಾಯಿತು."
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "ಯಾವುದೇ ಅಂಶಗಳು ಬದಲಾಗಲಿಲ್ಲ."
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr ""
+"%(name)s \"%(obj)s\" ಸಫಲವಾಗಿ "
+"ಬದಲಾಯಿಸಲಾಯಿತು."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"%(name)s \"%(obj)s\" ಅನ್ನು  ಯಶಸ್ವಿಯಾಗಿ "
+"ಸೇರಿಸಲಾಯಿತು. ನೀವು ಕೆಳಗೆ "
+"ಅದನ್ನು ಮತ್ತೆ ಬದಲಾಯಿಸಬಹುದು."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "%s ಅನ್ನು ಬದಲಿಸು"
+
+#: contrib/admin/views/main.py:473
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+"%(name)s ನಲ್ಲಿ ಒಂದು ಅಥವಾ ಹೆಚ್ಚು "
+"%(fieldname)s :%(obj)s"
+
+#: contrib/admin/views/main.py:478
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr ""
+"%(name)s ನಲ್ಲಿ ಒಂದು ಅಥವಾ ಹೆಚ್ಚು "
+"%(fieldname)s :"
+
+#: contrib/admin/views/main.py:511
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr ""
+"%(name)s \"%(obj)s\" ಯಶಸ್ವಿಯಾಗಿ "
+"ಅಳಿಸಲಾಯಿತು."
+
+#: contrib/admin/views/main.py:514
+msgid "Are you sure?"
+msgstr "ಖಚಿತಪಡಿಸುವಿರಾ? "
+
+#: contrib/admin/views/main.py:536
+#, python-format
+msgid "Change history: %s"
+msgstr "ಬದಲಾವಣೆಗಳ ಇತಿಹಾಸ: %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s"
+msgstr "%s ಆಯ್ದುಕೊಳ್ಳಿ"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s to change"
+msgstr "ಬದಲಾಯಿಸಲು %s ಆಯ್ದುಕೊಳ್ಳಿ"
+
+#: contrib/admin/views/main.py:758
+msgid "Database error"
+msgstr "ದತ್ತಸಂಚಯದ ದೋಷ"
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "ಟ್ಯಾಗ್:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "ಸೋಸಕ:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "ನೋಟ:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "%r ಅನ್ವಯಾಂಶ ಸಿಗಲಿಲ್ಲ"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr ""
+"%r ಅನ್ವಯಾಂಶದಲ್ಲಿ %r  ಮಾಡೆಲ್ಲು "
+"ಸಿಗಲಿಲ್ಲ"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr "ಸಂಬಂಧಿಸಿದ `%s.%s` ವಸ್ತು"
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "ಮಾಡೆಲ್:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr "ಸಂಬಂಧಿಸಿದ `%s.%s` ವಸ್ತುಗಳು"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "ಎಲ್ಲಾ %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "%s ಗಳ ಸಂಖ್ಯೆ"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s ವಸ್ತುಗಳ ಅಂಶಗಳು"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "ಸಂಖ್ಯೆ"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "ಬೂಲಿಯನ್( ನಿಜ ಅಥವಾ ಸುಳ್ಳು)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "(%(maxlength)s ವರೆಗಿನ  ) ಅಕ್ಷರಪುಂಜ"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr ""
+"ಅಲ್ಪವಿರಾಮ(,) ದಿಂದ ಬೇರ್ಪಟ್ಟ "
+"ಸಂಖ್ಯೆಗಳು"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "ದಿನಾಂಕ (ಸಮಯರಹಿತ)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "ದಿನಾಂಕ(ಸಮಯದೊಂದಿಗೆ)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "ವಿ-ಅಂಚೆ ವಿಳಾಸ"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "ಕಡತದ ಸ್ಥಾನಪಥ"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "ದಶಮಾನ ಸಂಖ್ಯೆ"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr ""
+"ಬೂಲಿಯನ್( ನಿಜ ಅಥವಾ ಸುಳ್ಳು "
+"ಅಥವಾ ಯಾವುದೂ ಅಲ್ಲ)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr ""
+"ಹಿರಿಯ ಮಾಡೆಲ್‍ನೊಂದಿಗಿನ ಸಂಬಂಧ"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "ದೂರವಾಣಿ ಸಂಖ್ಯೆ"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "ಪಠ್ಯ"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "ಸಮಯ"
+
+#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr ""
+"ಅಮೇರಿಕಾ ಸಂಯುಕ್ತ ಸಂಸ್ಥಾನದ "
+"ರಾಜ್ಯ ( ಎರಡು ಇಂಗ್ಲೀಷ್ "
+"ದೊಡ್ಡಕ್ಷರಗಳು)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML ಪಠ್ಯ"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr ""
+"%s  URL ಸ್ವರೂಪದ್ದಾಗಿ ತೋರುವದಿಲ್ಲ."
+
+#: contrib/admin/views/auth.py:28
+msgid "Add user"
+msgstr "ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಿ"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "ವಿವರಮಾಹಿತಿ"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "ಪ್ರವೇಶಪದ ಬದಲಿಸಿ"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "ಪ್ರಾರಂಭಸ್ಥಳ(ಮನೆ)"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:20
+msgid "History"
+msgstr "ಚರಿತ್ರೆ"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "ದಿನಾಂಕ/ಸಮಯ"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "ಬಳಕೆದಾರ"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "ಕ್ರಮ(ಕ್ರಿಯೆ)"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"ಈ ವಸ್ತುವಿಗೆ ಬದಲಾವಣೆಯ "
+"ಇತಿಹಾಸವಿಲ್ಲ. ಅದು ಬಹುಶಃ ಈ "
+"ಆಡಳಿತತಾಣದ ಮೂಲಕ "
+"ಸೇರಿಸಲ್ಪಟ್ಟಿಲ್ಲ."
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "ಜಾಂಗೋ ತಾಣದ ಆಡಳಿತಗಾರರು"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "ಜಾಂಗೋ ಆಡಳಿತ"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "ಸರ್ವರ್ ದೋಷ"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "ಸರ್ವರ್ ದೋಷ(೫೦೦)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "ಸರ್ವರ್ ದೋಷ<em>(೫೦೦)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via "
+"e-mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"ಇಲ್ಲಿ ಒಂದು ತಪ್ಪಾಗಿದೆ. ಅದನ್ನು "
+"ತಾಣದ ಆಡಳಿತಗಾರರಿಗೆ ವರದಿ "
+"ಮಾಡಲಾಗಿದ್ದು ಶೀಘ್ರದ್ದಲ್ಲಿ "
+"ಸರಿಪಡಿಸಲಾಗುವದು. ನಿಮ್ಮ "
+"ತಾಳ್ಮೆಗೆ ಧನ್ಯವಾದಗಳು."
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "ಪುಟ ಸಿಗಲಿಲ್ಲ"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr ""
+"ಕ್ಷಮಿಸಿ, ನೀವು ಕೇಳಿದ ಪುಟ "
+"ಸಿಗಲಿಲ್ಲ"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr ""
+"%(name)s ಅನ್ವಯಾಂಶದಲ್ಲಿ "
+"ಮಾಡೆಲ್ಲುಗಳು ಲಭ್ಯ."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "ಸೇರಿಸಿ"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "ಬದಲಿಸಿ/ಬದಲಾವಣೆ"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr ""
+"ಯಾವುದನ್ನೂ ತಿದ್ದಲು ನಿಮಗೆ "
+"ಅನುಮತಿ ಇಲ್ಲ ."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "ಇತ್ತೀಚಿನ ಕ್ರಮಗಳು"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "ನನ್ನ ಕ್ರಮಗಳು"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "ಯಾವುದೂ ಲಭ್ಯವಿಲ್ಲ"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s ಸೇರಿಸಿ"
+
+#: contrib/admin/templates/admin/login.html:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr ""
+"ನೀವು <a "
+"href=\"/password_reset/\">ಪ್ರವೇಶಪದವನ್ನು "
+"ಮರೆತಿದ್ದೀರಾ</a>?"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "ಸುಸ್ವಾಗತ."
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "ಅಳಿಸಿಹಾಕಿ"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"'%(escaped_object)s'  %(object_name)s ಅನ್ನು "
+"ತೆಗೆದುಹಾಕುವುದರಿಂದ ಸಂಬಂಧಿತ "
+"ವಸ್ತುಗಳೂ ಕಳೆದುಹೋಗುತ್ತವೆ. "
+"ಆದರೆ ನಿಮ್ಮ ಖಾತೆಗೆ ಕೆಳಕಂಡ "
+"ಬಗೆಗಳ ವಸ್ತುಗಳನ್ನು "
+"ತೆಗೆದುಹಾಕಲು ಅನುಮತಿಯಿಲ್ಲ."
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+#,fuzzy
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"ದಿಟವಾಗಿಯೂ, ನೀವು %(object_name)s  "
+"\"%(escaped_object)ಗಳನ್ನು\"? "
+"ತೆಗೆದುಹಾಕಬಯಸಿದ್ದೀರಾ? "
+"ಸಂಬಂಧಪಟ್ಟ ಕೆಳಕಂಡ ಎಲ್ಲವನ್ನೂ "
+"ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "ಹೌದು,ನನಗೆ ಖಚಿತವಿದೆ"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "%(filter_title)s ಇಂದ"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "ಹೋಗಿ"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgstr "೧ ಫಲಿತಾಂಶ"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "ಒಟ್ಟು %(full_result_count)s"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "ಎಲ್ಲವನ್ನೂ ತೋರಿಸು"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "ಸೋಸಕ"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "ತಾಣದಲ್ಲಿ ನೋಡಿ"
+
+#: contrib/admin/templates/admin/change_form.html:30
+msgid "Please correct the error below."
+msgstr ""
+"ದಯಮಾಡಿ ಕೆಳಗಿನ ತಪ್ಪನ್ನು "
+"ಸರಿಪಡಿಸಿ "
+"ದಯಮಾಡಿ ಕೆಳಗಿನ ತಪ್ಪುಗಳನ್ನು "
+"ಸರಿಪಡಿಸಿ. "
+
+#: contrib/admin/templates/admin/change_form.html:48
+msgid "Ordering"
+msgstr "ಅನುಕ್ರಮದಲ್ಲಿ ಜೋಡಣೆ"
+
+#: contrib/admin/templates/admin/change_form.html:51
+msgid "Order:"
+msgstr "ಅನುಕ್ರಮ:"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "ಹೊಸದರಂತೆ ಉಳಿಸಿ"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr ""
+"ಉಳಿಸಿ ಮತ್ತು ಇನ್ನೊಂದನ್ನು "
+"ಸೇರಿಸಿ"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr ""
+"ಉಳಿಸಿ ಮತ್ತು ತಿದ್ದುವುದನ್ನು "
+"ಮುಂದುವರಿಸಿರಿ."
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "ಉಳಿಸಿ"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"ಡಾಟಾಬೇಸನ್ನು ಇನ್ಸ್ಟಾಲ್ "
+"ಮಾಡುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ. ಸೂಕ್ತ "
+" ಡಾಟಾಬೇಸ್ ಕೋಷ್ಟಕಗಳು "
+"ರಚನೆಯಾಗಿ ಅರ್ಹ ಬಳಕೆದಾರರು "
+"ಅವುಗಳನ್ನು ಓದಬಹುದಾಗಿದೆಯೇ "
+"ಎಂಬುದನ್ನು ಖಾತರಿ "
+"ಪಡಿಸಿಕೊಳ್ಳಿ."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"ಮೊದಲು ಬಳಕೆದಾರ-ಹೆಸರು ಮತ್ತು "
+"ಪ್ರವೇಶಪದವನ್ನು ಕೊಡಿರಿ. ನಂತರ, "
+"ನೀವು ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳನ್ನು  "
+"ಬದಲಿಸಬಹುದಾಗಿದೆ."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "ಬಳಕೆದಾರ-ಹೆಸರು"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "ಪ್ರವೇಶಪದ"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "ಪ್ರವೇಶಪದ(ಇನ್ನೊಮ್ಮೆ)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr ""
+"ಖಚಿತಗೊಳಿಸಲು ಮೇಲಿನ "
+"ಪ್ರವೇಶಪದವನ್ನು ಇನ್ನೊಮ್ಮೆ "
+"ಬರೆಯಿರಿ."
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "ಪ್ರವೇಶಪದ ಬದಲಾವಣೆ"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "ಪ್ರವೇಶಪದ ಬದಲಾವಣೆ ಯಶಸ್ವಿ"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr ""
+"ನಿಮ್ಮ ಪ್ರವೇಶಪದ "
+"ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "ಪ್ರವೇಶಪದವನ್ನು ಬದಲಿಸುವಿಕೆ"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"ಪ್ರವೇಶಪದವನ್ನು ಮರೆತಿದ್ದೀರಾ? "
+"ನಿಮ್ಮ ವಿ-ಅಂಚೆಯ ವಿಳಾಸವನ್ನು "
+"ಕೆಳಗೆ ಸೂಚಿಸಿರಿ, ನಾವು ನಿಮ್ಮ "
+"ಪ್ರವೇಶಪದವನ್ನು ಬದಲಾಯಿಸಿ "
+"ಅದನ್ನು ರವಾನಿಸುತ್ತೇವೆ."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "ವಿ-ಅಂಚೆ ವಿಳಾಸ:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr ""
+"ನನ್ನ ಪ್ರವೇಶಪದವನ್ನು ಮತ್ತೆ "
+"ನಿರ್ಧರಿಸಿ "
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr ""
+"ಈದಿನ ತಮ್ಮ ಅತ್ಯಮೂಲ್ಯವಾದ "
+"ಸಮಯವನ್ನು ನಮ್ಮ ತಾಣದಲ್ಲಿ "
+"ಕಳೆದುದಕ್ಕಾಗಿ ಧನ್ಯವಾದಗಳು."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "ಮತ್ತೆ ಒಳಬನ್ನಿ"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr ""
+"ಪ್ರವೇಶಪದದ ಮರುನಿರ್ಧಾರ "
+"ಸಾಧ್ಯವಾಗಿದೆ"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"ನಾವು ಹೊಸ ಪ್ರವೇಶಪದವನ್ನು "
+"ನಿಮ್ಮ ವಿ-ಅಂಚೆಗೆ ಕಳಿಸಿದ್ದೇವೆ. "
+"ಕೆಲವೇ ಕ್ಷಣಗಳಲ್ಲಿ ನೀವದನ್ನು "
+"ಪಡೆಯಲಿದ್ದೀರಿ."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"ಭದ್ರತೆಯ ದೃಷ್ಟಿಯಿಂದ "
+"ದಯವಿಟ್ಟು ನಿಮ್ಮ ಹಳೆಯ "
+"ಪ್ರವೇಶಪದವನ್ನು ಸೂಚಿಸಿರಿ. "
+"ಆನಂತರ ನೀವು ಸರಿಯಾಗಿ "
+"ಬರೆದಿದ್ದೀರೆಂದು ನಾವು "
+"ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು   ಹೊಸ "
+"ಪ್ರವೇಶಪದವನ್ನು ಎರಡು ಬಾರಿ "
+"ಬರೆಯಿರಿ."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "ಹಳೆಯ ಪ್ರವೇಶಪದ:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "ಹೊಸ ಪ್ರವೇಶಪದ:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "ಪ್ರವೇಶಪದವನ್ನು ಖಚಿತಪಡಿಸಿ:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "ನನ್ನ ಪ್ರವೇಶಪದ ಬದಲಿಸಿ"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"ಪ್ರವೇಶಪದದ ಮರುನಿರ್ಧಾರವನ್ನು "
+"ನೀವು ಕೇಳಿದುದರಿಂದ ಈ "
+"ವಿ-ಅಂಚೆಯನ್ನು "
+"ಪಡೆಯುತ್ತಿದ್ದೀರಿ."
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr ""
+"%(site_name)s ತಾಣದಲ್ಲಿ ನಿಮ್ಮ "
+"ಬಳಕೆದಾರ-ಖಾತೆಗಾಗಿ"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "ನಿಮ್ಮ ಹೊಸ ಪ್ರವೇಶಪದ : %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr ""
+"ನಿಸ್ಸಂಕೋಚವಾಗಿ ಈ ಪುಟಕ್ಕೆ "
+"ಹೋಗಿ ಈ ಪ್ರವೇಶಪದವನ್ನು "
+"ಬದಲಿಸಿರಿ."
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr ""
+"ನೀವು ಮರೆತಿದ್ದಲ್ಲಿ , ನಿಮ್ಮ "
+"ಬಳಕೆದಾರ-ಹೆಸರು"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr ""
+"ನಮ್ಮ ತಾಣವನ್ನು "
+"ಬಳಸಿದ್ದಕ್ದಾಗಿ ಧನ್ಯವಾದಗಳು!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s ತಂಡ"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "ಚಿಕ್ಕ ಪುಟಗುರುತುಗಳು"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr ""
+"ಮಾಹಿತಿಯ ಚಿಕ್ಕ ಪುಟಗುರುತುಗಳು"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p "
+"class=\"help\">ಸಣ್ಣ್ಪುಟಗುರುತುಗಳನ್ನು "
+"ಅನುಸ್ಥಾಪಿಸಲು ಕೊಂಡಿಯನ್ನು "
+"ಪುಟಗುರುತು ಉಪಕರಣಪಟ್ಟಿ(ಟೂಲ್ "
+"ಬಾರ್)ಕಡೆಗೆ ಎಳೆದೊಯ್ಯಿರಿ,\n"
+" ಅಥವಾ ಕೊಂಡಿಯ ಮೇಲೆ "
+"ಮೂಷಿಕ(ಮೌಸ್)ದ ಬಲಬಟನ್ನನ್ನು "
+"ಒತ್ತಿ ಪುಟಗುರುತುಗಳಿಗೆ "
+"ಸೇರಿಸಿಕೊಳ್ಳಿ. ಈಗ \n"
+" ನೀವು ಸಣ್ಣಪುಟಗುರುತುಗಳನ್ನು "
+"ತಾಣದ ಯಾವ ಪುಟದಿಂದ ಬೇಕಾದರೂ "
+"ಆಯ್ಕೆಮಾಡಿಕೊಳ್ಳಬಹುದು.\n"
+"ನೆನಪಿರಲಿ, ಕೆಲವು "
+"ಸಣ್ಣಪುಟಗುರುತುಗಳಿಗೆ ನೀವು ಈ "
+"ತಾಣವನ್ನು ಆಂತರಿಕ (\"internal\") ಎಂದು "
+"ಸೂಚಿತವಾಗಿರುವ ಗಣಕದಿಂದ "
+"ವೀಕ್ಷಿಸಬೇಕಾಗುತ್ತದೆ.\n"
+"(  ನಿಮ್ಮ ಗಣಕವು \"internal\" ಹೌದೇ "
+"ಅಲ್ಲವೇ ಎಂದು "
+"ಗೊತ್ತಿಲ್ಲದಿದ್ದರೆ , ಗಣಕದ "
+"ಆಡಳಿತಗಾರರನ್ನು ಕೇಳಿರಿ).</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "ಈ ಪುಟದ ಬಗೆಗಿನ ಮಾಹಿತಿ"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"ನಿಮ್ಮನ್ನು ಯಾವುದೇ ಪುಟದಿಂದ ಆ "
+"ಪುಟವನ್ನು ಸೃಷ್ಟಿಸುವ ನೋಟದ "
+"ಮಾಹಿತಿಪುಟಕ್ಕೆ ಕೊಂಡೊಯ್ಯುವದು"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "ವಸ್ತುವಿನ ಐಡಿ ತೋರಿಸಿ"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"ಏಕೈಕ ವಸ್ತುವನ್ನು "
+"ಪ್ರತಿನಿಧಿಸುವ ಪುಟಗಳ ವಿಶಿಷ್ಠ "
+"ಐಡಿ ಮತ್ತು ಒಳವಿಷಯಬಗೆಯನ್ನು "
+"ತೋರಿಸುತ್ತದೆ."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr ""
+"ಈ ವಸ್ತುವನ್ನು ಬದಲಿಸಿ(ಈಗಿನ "
+"ಕಿಟಕಿಯಲ್ಲಿ)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"ಏಕೈಕ ವಸ್ತುವನ್ನು "
+"ಪ್ರತಿನಿಧಿಸುವ ಪುಟಗಳಿಗಾಗಿ "
+"ಆಡಳಿತಪುಟಕ್ಕೆ ಒಯ್ಯುತ್ತದೆ"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr ""
+"ಈ ವಸ್ತುವನ್ನು ಬದಲಿಸಿ(ಹೊಸ "
+"ಕಿಟಕಿಯಲ್ಲಿ)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr ""
+"ಮೇಲಿನಂತೆ, ಆದರೆ "
+"ಆಡಳಿತಪುಟವನ್ನು ಹೊಸ "
+"ಕಿಟಕಿಯಲ್ಲಿ ತೆರೆಯುವದು."
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "ದಿನಾಂಕ:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "ಸಮಯ:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "ಈಗ:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "ಬದಲಿಸಿ / ಬದಲಾವಣೆ :"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "ಪುನರ್ನಿರ್ದೇಶನ ಇಲ್ಲಿಂದ->"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: "
+"'/events/search/'."
+msgstr ""
+"ಇದು ಡೊಮೈನ್ ಹೊರತುಪಡಿಸಿದ "
+"ಸಂಪೂರ್ಣ ಪಥವಾಗಿರಬೇಕು "
+"ಉದಾ.'/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "ಪುನರ್ನಿರ್ದೇಶನ ಇಲ್ಲಿಗೆ->"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"ಇದು ಮೇಲಿನಂತೆ ಸಂಪೂರ್ಣ "
+"ಪಥವಾದರೂ ಆಗಿರಬಹುದು ಅಥವಾ "
+"'http://'ದಿಂದ ಆರಂಭವಾಗುವ ಸಂಪೂರ್ಣ URL "
+"ಆಗಿರಬಹುದು."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "ಪುನರ್ನಿರ್ದೇಶನ"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "ಪುನರ್ನಿರ್ದೇಶನ(ಗಳು)"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"ಉದಾ:'/about/contact/'. ಮೊದಲು ಮತ್ತು "
+"ಕೊನೆಯಲ್ಲಿ ಓರೆಗೆರೆ (/) ಇರುವಂತೆ "
+"ನೋಡಿಕೊಳ್ಳಿ."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "ಶೀರ್ಷಿಕೆ"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "ಒಳವಿಷಯ"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr ""
+"ಟಿಪ್ಪಣಿಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "ಟೆಂಪ್ಲೇಟಿನ ಹೆಸರು"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"ಉದಾ:'flatpages/contact_page.html'. ಇದನ್ನು "
+"ಕೊಡದಿದ್ದರೆ ಗಣಕವ್ಯವಸ್ಥೆಯು  "
+"'flatpages/default.html' ಅನ್ನು ಬಳಸುವದು."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "ನೋಂದಾವಣೆ ಅಗತ್ಯವಿದೆ."
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"ಇದರಲ್ಲಿ ಗುರುತು  ಮಾಡಿದರೆ,  "
+"ಒಳಬಂದ (ಲಾಗಿನ್ ಆದ) ಬಳಕೆದಾರರು "
+"ಮಾತ್ರ ಪುಟವನ್ನು ನೋಡಬಹುದು."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "ಚಪ್ಪಟೆ ಪುಟ"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "ಚಪ್ಪಟೆ  ಪುಟಗಳು"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "ಹೊರಬರಲಾಗಿದೆ"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "ಹೆಸರು"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "ಸಾಂಕೇತಿಕ ಹೆಸರು"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "ಅನುಮತಿ"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "ಅನುಮತಿಗಳು"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "ಗುಂಪು"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "ಗುಂಪುಗಳು"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "ಬಳಕೆದಾರ-ಹೆಸರು"
+
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"೩೦ ಅಥವಾ ಕಡಿಮೆ ಅಕ್ಷರಗಳು "
+"ಅವಶ್ಯ. ( ಅಕ್ಷರಗಳು , ಅಂಕೆಗಳು "
+"ಮತ್ತು ಅಂಡರ್ಸ್ಕೋರ್(_) ಗಳು "
+"ಮಾತ್ರ)"
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "ಮೊದಲ ಹೆಸರು"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "ಕೊನೆಯ ಹೆಸರು"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "ವಿ-ಅಂಚೆ ವಿಳಾಸ"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "ಪ್ರವೇಶಪದ"
+
+#: contrib/auth/models.py:94
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr " '[algo]$[salt]$[hexdigest]' ಬಳಸಿ"
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "ಸಿಬ್ಬಂದಿ ಸ್ಥಿತಿ"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+"ಬಲಕೆದಾರರು ಈ ಆಡಳಿತ ತಾಣಕ್ಕೆ  "
+"ಪ್ರವೇಶಪಡೆಯಬಹುದೇ ಎಂಬುದನ್ನು "
+"ತಿಳಿಸುತ್ತದೆ."
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "ಸಕ್ರಿಯ"
+
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"ಈ ಬಳಕೆದಾರರು ಜಾಂಗೋ "
+"ಆಡಳಿತಪುಟಕ್ಕೆ "
+"ಪ್ರವೇಶಪಡೆಯಬಹುದೇ ಎಂಬುದನ್ನು "
+"ತಿಳಿಸುತ್ತದೆ. ಖಾತೆಗಳನ್ನು "
+"ಕಿತ್ತುಹಾಕುವ ಬದಲು ಇದನ್ನು "
+"ಆಯ್ಕೆಯನ್ನು ತೆಗೆದುಹಾಕಿರಿ."
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "ಮಹಾಬಳಕೆದಾರನ ಸ್ಧಿತಿ"
+
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"ಈ ಸದಸ್ಯರು ಸುವ್ಯಕ್ತವಾಗಿ  "
+"ನೀಡದಿದ್ದರೂ ಎಲ್ಲಾ "
+"ಅನುಮತಿಗಳನ್ನು ಪಡೆದಿರುವರು "
+"ಎಂಬುದನ್ನು ಸೂಚಿಸುತ್ತದೆ."
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "ಕಡೇ ಸಾರಿ ಒಳಬಂದದ್ದು"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "ಸೇರಿದ ದಿನಾಂಕ"
+
+#: contrib/auth/models.py:101
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"ವೈಯಕ್ತಿಕವಾಗಿ ನೀಡಲಾಗಿರುವ "
+"ಅನುಮತಿಗಳ ಜೊತೆಗೆ, ಈ ಸದಸ್ಯರು "
+"ತಮ್ಮ ಗುಂಪಿಗೆ ನೀಡಲಾಗಿರುವ "
+"ಅನುಮತಿಗಳನ್ನೂ ಕೂಡ "
+"ಪಡೆಯುತ್ತಾರೆ."
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "ಬಳಕೆದಾರ ಅನುಮತಿಗಳು"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "ಬಳಕೆದಾರ"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "ಬಳಕೆದಾರರು"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "ವೈಯುಕ್ತಿಕ ಮಾಹಿತಿ"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "ಅನುಮತಿಗಳು"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "ಮಹತ್ವದ ದಿನಾಂಕಗಳು"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "ಗುಂಪುಗಳು"
+
+#: contrib/auth/models.py:256
+msgid "message"
+msgstr "ಸಂದೇಶ"
+
+#: contrib/auth/forms.py:52
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"ನಿಮ್ಮ ಜಾಲವೀಕ್ಷಕದಲ್ಲಿ "
+"ಕುಕೀಗಳು "
+"ಸಕ್ರಿಯಗೊಳಿಸಲ್ಪಟ್ಟಂತಿಲ್ಲ. "
+"ಒಳಬರಲು ಕುಕೀಗಳು ಅಗತ್ಯ. "
+
+#: contrib/auth/forms.py:61
+msgid "This account is inactive."
+msgstr "ಈ ಖಾತೆಯು ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ"
+
+#: contrib/contenttypes/models.py:20
+msgid "python model class name"
+msgstr ""
+"ಪೈಥಾನ್ ಮಾಡೆಲ್  ಕ್ಲಾಸಿನ ಹೆಸರು"
+
+#: contrib/contenttypes/models.py:23
+msgid "content type"
+msgstr "ಒಳವಿಷಯದ ಬಗೆ"
+
+#: contrib/contenttypes/models.py:24
+msgid "content types"
+msgstr "ಒಳವಿಷಯದ ಬಗೆಗಳು"
+
+#: contrib/sessions/models.py:51
+msgid "session key"
+msgstr "ಅಧಿವೇಶನದ ಕೀಲಿಕೈ"
+
+#: contrib/sessions/models.py:52
+msgid "session data"
+msgstr "ಅಧಿವೇಶನದ ದತ್ತಾಂಶ"
+
+#: contrib/sessions/models.py:53
+msgid "expire date"
+msgstr "ಅವಧಿಮೀರುವ ದಿನಾಂಕ"
+
+#: contrib/sessions/models.py:57
+msgid "session"
+msgstr "ಅಧಿವೇಶನ"
+
+#: contrib/sessions/models.py:58
+msgid "sessions"
+msgstr "ಅಧಿವೇಶನಗಳು"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "ಡೊಮೈನ್  ಹೆಸರು"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "ತೋರಿಸುವ ಹೆಸರು"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "ತಾಣ"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "ತಾಣಗಳು"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "ಸೋಮವಾರ"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "ಮಂಗಳವಾರ"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "ಬುಧವಾರ"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "ಗುರುವಾರ"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "ಶುಕ್ರವಾರ"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "ಶನಿವಾರ"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "ರವಿವಾರ"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "ಜನವರಿ"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "ಫೆಬ್ರುವರಿ"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "ಮಾರ್ಚ್"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "ಎಪ್ರಿಲ್"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "ಮೇ"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "ಜೂನ್"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "ಜುಲೈ"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "ಆಗಸ್ಟ್"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "ಸೆಪ್ಟೆಂಬರ್"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "ಅಕ್ಟೋಬರ್"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "ನವೆಂಬರ್"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "ಡಿಸೆಂಬರ್"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "ಜನವರಿ"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "ಫೆಬ್ರವರಿ"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "ಮಾರ್ಚ್"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "ಏಪ್ರಿಲ್"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "ಮೇ"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "ಜೂನ್"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "ಜುಲೈ"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "ಆಗಸ್ಟ್"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "ಸೆಪ್ಟೆಂಬರ್"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "ಅಕ್ಟೋಬರ್"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "ನವೆಂಬರ್"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "ಡಿಸೆಂಬರ್"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "ಜನವರಿ."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "ಫೆಬ್ರವರಿ."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "ಆಗಸ್ಟ್."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "ಸೆಪ್ಟೆಂಬರ್."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "ಅಕ್ಟೋಬರ್."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "ನವೆಂಬರ್."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "ಡಿಸೆಂಬರ್."
+
+#: utils/timesince.py:12
+msgid "year"
+msgstr "ವರ್ಷ"
+
+#: utils/timesince.py:13
+msgid "month"
+msgstr "ತಿಂಗಳು"
+
+#: utils/timesince.py:14
+msgid "week"
+msgstr "ವಾರ"
+
+#: utils/timesince.py:15
+msgid "day"
+msgstr "ದಿನ"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgstr "ಘಂಟೆ"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgstr "ನಿಮಿಷ"
+
+#: utils/translation/trans_real.py:362
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation/trans_real.py:363
+msgid "DATETIME_FORMAT"
+msgstr "N j, Y, P"
+
+#: utils/translation/trans_real.py:364
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:380
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:381
+msgid "MONTH_DAY_FORMAT"
+msgstr "F j"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "ಅರೇಬಿಕ್"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "ಬೆಂಗಾಲಿ"
+
+#: conf/global_settings.py:41
+msgid "Czech"
+msgstr "ಝೆಕ್"
+
+#: conf/global_settings.py:42
+msgid "Welsh"
+msgstr "ವೆಲ್ಷ್"
+
+#: conf/global_settings.py:43
+msgid "Danish"
+msgstr "ಡ್ಯಾನಿಷ್"
+
+#: conf/global_settings.py:44
+msgid "German"
+msgstr "ಜರ್ಮನ್"
+
+#: conf/global_settings.py:45
+msgid "Greek"
+msgstr "ಗ್ರೀಕ್"
+
+#: conf/global_settings.py:46
+msgid "English"
+msgstr "ಇಂಗ್ಲಿಷ್"
+
+#: conf/global_settings.py:47
+msgid "Spanish"
+msgstr "ಸ್ಪ್ಯಾನಿಷ್"
+
+#: conf/global_settings.py:48
+msgid "Argentinean Spanish"
+msgstr "ಅರ್ಜೆಂಟೈನಾದ ಸ್ಪ್ಯಾನಿಷ್"
+
+#: conf/global_settings.py:49
+msgid "Finnish"
+msgstr "ಫಿನ್ನಿಶ್"
+
+#: conf/global_settings.py:50
+msgid "French"
+msgstr "ಫ್ರೆಂಚ್"
+
+#: conf/global_settings.py:51
+msgid "Galician"
+msgstr "ಗ್ಯಾಲಿಶಿಯನ್"
+
+#: conf/global_settings.py:52
+msgid "Hungarian"
+msgstr "ಹಂಗೇರಿಯನ್"
+
+#: conf/global_settings.py:53
+msgid "Hebrew"
+msgstr "ಹೀಬ್ರೂ"
+
+#: conf/global_settings.py:54
+msgid "Icelandic"
+msgstr "ಐಸ್‍ಲ್ಯಾಂಡಿಕ್"
+
+#: conf/global_settings.py:55
+msgid "Italian"
+msgstr "ಇಟಾಲಿಯನ್"
+
+#: conf/global_settings.py:56
+msgid "Japanese"
+msgstr "ಜಪಾನೀಸ್"
+
+#: conf/global_settings.py:57
+msgid "Dutch"
+msgstr "ಡಚ್"
+
+#: conf/global_settings.py:58
+msgid "Norwegian"
+msgstr "ನಾರ್ವೇಜಿಯನ್"
+
+#: conf/global_settings.py:59
+msgid "Brazilian"
+msgstr "ಬ್ರಾಝಿಲಿಯನ್"
+
+#: conf/global_settings.py:60
+msgid "Romanian"
+msgstr "ರೋಮೇನಿಯನ್"
+
+#: conf/global_settings.py:61
+msgid "Russian"
+msgstr "ರಶಿಯನ್"
+
+#: conf/global_settings.py:62
+msgid "Slovak"
+msgstr "ಸ್ಲೋವಾಕ್"
+
+#: conf/global_settings.py:63
+msgid "Slovenian"
+msgstr "ಸ್ಲೋವೇನಿಯನ್"
+
+#: conf/global_settings.py:64
+msgid "Serbian"
+msgstr "ಸೆರ್ಬಿಯನ್"
+
+#: conf/global_settings.py:65
+msgid "Swedish"
+msgstr "ಸ್ವೀಡಿಷ್"
+
+#: conf/global_settings.py:66
+msgid "Tamil"
+msgstr "ತಮಿಳು"
+
+#: conf/global_settings.py:67
+msgid "Turkish"
+msgstr "ಟರ್ಕಿಶ್"
+
+#: conf/global_settings.py:68
+msgid "Ukrainian"
+msgstr "ಯುಕ್ರೇನಿಯನ್"
+
+#: conf/global_settings.py:69
+msgid "Simplified Chinese"
+msgstr "ಸರಳೀಕೃತ ಚೈನೀಸ್"
+
+#: conf/global_settings.py:70
+msgid "Traditional Chinese"
+msgstr "ಸಂಪ್ರದಾಯಿಕ ಚೈನೀಸ್ "
+
+#: core/validators.py:63
+msgid "This value must contain only letters, numbers and underscores."
+msgstr ""
+"ಈ ಬೆಲೆಯು ಕೇವಲ ಅಕ್ಷರಗಳು , "
+"ಅಂಕೆಗಳು ಮತ್ತು ಅಂಡರ್ಸ್ಕೋರ್(_) "
+"ಗಳನ್ನು ಒಳಗೊಂಡಿರಬೇಕು"
+
+#: core/validators.py:67
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"ಈ ಬೆಲೆಯು ಅಕ್ಷರಗಳು , ಅಂಕೆಗಳು , "
+"ಅಡಿಗೆರೆ ಅರ್ಥಾತ್ "
+"ಅಂಡರ್ಸ್ಕೋರ್(_) ,ಅಡ್ಡಗೆರೆ "
+"ಅರ್ಥಾತ್ ಡ್ಯಾಷ್(-) ಮತ್ತು "
+"ಓರೆಗೆರೆ ಅರ್ಥಾತ್ ಸ್ಲ್ಯಾಶ್ (/) "
+"ಗಳನ್ನು ಒಳಗೊಳ್ಳಬಹುದು."
+
+#: core/validators.py:71
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"ಈ ಬೆಲೆಯು ಕೇವಲ ಅಕ್ಷರಗಳು , "
+"ಅಂಕೆಗಳು ಮತ್ತು ಅಂಡರ್ಸ್ಕೋರ್(_) "
+"ಮತ್ತು ಹೈಫನ್(-)ಗಳನ್ನು "
+"ಒಳಗೊಂಡಿರಬೇಕು"
+
+#: core/validators.py:75
+msgid "Uppercase letters are not allowed here."
+msgstr ""
+"ಇಂಗ್ಲೀಷ್ ದೊಡ್ಡಕ್ಷರಗಳನ್ನು "
+"ಇಲ್ಲಿ ಬಳಸುವಂತಿಲ್ಲ"
+
+#: core/validators.py:79
+msgid "Lowercase letters are not allowed here."
+msgstr ""
+"ಇಂಗ್ಲೀಷ್ ಸಣ್ಣಕ್ಷರಗಳನ್ನು "
+"ಇಲ್ಲಿ ಬಳಸುವಂತಿಲ್ಲ"
+
+#: core/validators.py:86
+msgid "Enter only digits separated by commas."
+msgstr ""
+"ಅಲ್ಪವಿರಾಮ(,)ಗಳಿಂದ  ಬೇರ್ಪಟ್ಟ  "
+"ಅಂಕೆಗಳನ್ನು ಮಾತ್ರ ಬರೆಯಿರಿ."
+
+#: core/validators.py:98
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr ""
+"ಇ-ಅಂಚೆಗಳ ವಿಳಾಸಗಳನ್ನು, "
+"ಅಲ್ಪವಿರಾಮ(,)ಗಳಿಂದ "
+"ಬೇರ್ಪಟ್ಟಿರುವಂತೆ ಸೂಚಿಸಿರಿ."
+
+#: core/validators.py:102
+msgid "Please enter a valid IP address."
+msgstr "ಸರಿಯಾದ  IP ವಿಳಾಸ ಬರೆಯಿರಿ"
+
+#: core/validators.py:106
+msgid "Empty values are not allowed here."
+msgstr "ಇಲ್ಲಿ ಖಾಲಿ ಬಿಡುವಂತಿಲ್ಲ"
+
+#: core/validators.py:110
+msgid "Non-numeric characters aren't allowed here."
+msgstr ""
+"ಅಂಕೆಗಳಲ್ಲದೆ ಯಾವದೇ "
+"ಅಕ್ಷರಗಳನ್ನು ಇಲ್ಲಿ "
+"ಬಳಸುವಂತಿಲ್ಲ"
+
+#: core/validators.py:114
+msgid "This value can't be comprised solely of digits."
+msgstr ""
+"ಈ ಬೆಲೆಯಲ್ಲಿ ಅಂಕೆಗಳಷ್ಟೇ  "
+"ಇರುವಂತಿಲ್ಲ"
+
+#: core/validators.py:119
+msgid "Enter a whole number."
+msgstr "ಪೂರ್ಣಾಂಕವೊಂದನ್ನು ಬರೆಯಿರಿ"
+
+#: core/validators.py:123
+msgid "Only alphabetical characters are allowed here."
+msgstr ""
+"ವರ್ಣಮಾಲೆಯ ಅಕ್ಷರಗಳನ್ನು "
+"ಮಾತ್ರ ಇಲ್ಲಿ ಬಳಸಬಹುದು."
+
+#: core/validators.py:138
+msgid "Year must be 1900 or later."
+msgstr ""
+"ವರ್ಷವು ೧೯೦೦ ಅಥವಾ "
+"ನಂತರದ್ದಿರಬೇಕು."
+
+#: core/validators.py:142
+#, python-format
+msgid "Invalid date: %s."
+msgstr "ತಪ್ಪು ದಿನಾಂಕ: %s."
+
+#: core/validators.py:146 db/models/fields/__init__.py:415
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr ""
+"ಸರಿಯಾದ ದಿನಾಂಕವನ್ನು "
+"ವವವವ-ತಿತಿ-ದಿದಿ ರೀತಿಗೆ "
+"ಹೊಂದುವಂತೆ ಸೂಚಿಸಿರಿ."
+
+#: core/validators.py:151
+msgid "Enter a valid time in HH:MM format."
+msgstr ""
+"HH:MM ರೂಪದಲ್ಲಿ  ಸರಿಯಾದ ಸಮಯವನ್ನು "
+"ಬರೆಯಿರಿ"
+
+#: core/validators.py:155 db/models/fields/__init__.py:477
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr ""
+"ಸರಿಯಾದ ದಿನಾಂಕ/ವೇಳೆಯನ್ನು "
+"ವವವವ-ತಿತಿ-ದಿದಿ ಗಗ:ನಿನಿ "
+"ರೀತಿಗೆ ಹೊಂದುವಂತೆ ಸೂಚಿಸಿರಿ."
+
+#: core/validators.py:160
+msgid "Enter a valid e-mail address."
+msgstr ""
+"ಕ್ರಮಬದ್ಧ ವಿ-ವಿಳಾಸವೊಂದನ್ನು "
+"ಇಲ್ಲಿ ಬರೆಯಿರಿ"
+
+#: core/validators.py:172 core/validators.py:401 forms/__init__.py:661
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"ಯಾವದೇ ಕಡತವನ್ನೂ "
+"ಸಲ್ಲಿಸಲಾಗಿಲ್ಲ.ನಮೂನೆಯ ಮೇಲಿನ "
+"ಸಂಕೇತೀಕರಣ ಬಗೆಯನ್ನು "
+"ಪರೀಕ್ಷಿಸಿ."
+
+#: core/validators.py:176
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"ಸರಿಯಾದ ಚಿತ್ರವನ್ನು ಏರಿಸಿ. "
+"ನೀವು ಏರಿಸಿದ ಕಡತವು ಚಿತ್ರವಲ್ಲ "
+"ಅಥವಾ ಅದು ಕೆಟ್ಟು ಹೋಗಿರುವ "
+"ಚಿತ್ರ. "
+
+#: core/validators.py:183
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr ""
+"%s URL ಸರಿಯಾದ ಚಿತ್ರದೆಡೆಗೆ "
+"ಒಯ್ಯುತ್ತಿಲ್ಲ."
+
+#: core/validators.py:187
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"ದೂರವಾಣಿ ಅಂಕೆಗಳು XXX-XXX-XXXX "
+"ರೀತಿಯಲ್ಲಿರಬೇಕು. \"%s\" "
+"ತಪ್ಪಾಗಿರುತ್ತದೆ."
+
+#: core/validators.py:195
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr ""
+"%s URL ಸರಿಯಾದ ಕ್ವಿಕ್‍ಟೈಮ್ "
+"ದೃಶ್ಯದೆಡೆಗೆ ಒಯ್ಯುತ್ತಿಲ್ಲ."
+
+#: core/validators.py:199
+msgid "A valid URL is required."
+msgstr "ಸರಿಯಾದ URL ಅವಶ್ಯವಿದೆ"
+
+#: core/validators.py:213
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"ಸರಿಯಾದ  HTML ಅವಶ್ಯ. ಇಲ್ಲಿನ "
+"ನಿರ್ದಿಷ್ಟ ತಪ್ಪುಗಳು:\n"
+"%s"
+
+#: core/validators.py:220
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "ತಪ್ಪು XML: %s"
+
+#: core/validators.py:230
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "ತಪ್ಪು URL: %s"
+
+#: core/validators.py:234 core/validators.py:236
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "%s ಈ  URL  ಮುರಿದ ಕೊಂಡಿಯಾಗಿದೆ."
+
+#: core/validators.py:242
+msgid "Enter a valid U.S. state abbreviation."
+msgstr ""
+" ಅಮೇರಿಕೆಯ ಸಂಯುಕ್ತ ಸಂಸ್ಥಾನದ "
+"ರಾಜ್ಯದ ಸರಿಯಾದ "
+"ಸಂಕ್ಷಿಪ್ತರೂಪವನ್ನು ಕೊಡಿ."
+
+#: core/validators.py:256
+#, python-format
+#,fuzzy
+msgid "Watch your mouth! The word %s is not allowed here."
+msgstr ""
+"ನಾಲಿಗೆ ಬಿಗಿ ಹಿಡಿಯಿರಿ! %s  "
+"ಶಬ್ದವನ್ನು ಇಲ್ಲಿ "
+"ಬಳಸುವಂತಿಲ್ಲ."
+"ನಾಲಿಗೆ ಬಿಗಿ ಹಿಡಿಯಿರಿ! %s ಈ "
+"ಶಬ್ದಗಳನ್ನು ಇಲ್ಲಿ "
+"ಬಳಸುವಂತಿಲ್ಲ."
+
+#: core/validators.py:263
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr ""
+"ಈ ಅಂಶವು  '%s' ಅಂಶದೊಂದಿಗೆ "
+"ಹೊಂದಿಕೊಳ್ಳಬೇಕು."
+
+#: core/validators.py:282
+msgid "Please enter something for at least one field."
+msgstr ""
+"ಕನಿಷ್ಠ ಒಂದು ಅಂಶದಲ್ಲಿ "
+"ಏನನ್ನಾದರೂ ಬರೆಯಿರಿ."
+
+#: core/validators.py:291 core/validators.py:302
+msgid "Please enter both fields or leave them both empty."
+msgstr ""
+"ಎರಡೂ ಅಂಶಗಳನ್ನು ಭರತಿ ಮಾಡಿರಿ "
+"ಅಥವಾ ಎರಡನ್ನೂ ಖಾಲಿಯಾಗಿಡಿ."
+
+#: core/validators.py:309
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr ""
+" %(field)s ಇದು  %(value)s ಆಗಿದ್ದರೆ ಈ "
+"ಅಂಶವನ್ನು ಕೊಡಲೇಬೇಕು"
+
+#: core/validators.py:321
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr ""
+" %(field)s ಇದು  %(value)s ಆಗಿಲ್ಲದಿದ್ದರೆ ಈ "
+"ಅಂಶವನ್ನು ಕೊಡಲೇಬೇಕು"
+
+#: core/validators.py:340
+msgid "Duplicate values are not allowed."
+msgstr ""
+"ಪಡಿಯಚ್ಚುಬೆಲೆಗಳಿಗೆ "
+"ಅನುಮತಿಯಿಲ್ಲ"
+
+#: core/validators.py:363
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "ಈ ಬೆಲೆಯು %sದ ಘಾತವಾಗಿರಬೇಕು."
+
+#: core/validators.py:374
+msgid "Please enter a valid decimal number."
+msgstr ""
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ ದಶಮಾನ "
+"ಸಂಖ್ಯೆ ಬರೆಯಿರಿ"
+
+#: core/validators.py:378
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+"Please enter a valid decimal number with at most %s total digits."
+msgstr ""
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ ದಶಮಾನ "
+"ಸಂಖ್ಯೆಯನ್ನು - ಹೆಚ್ಚೆಂದರೆ  "
+"ಒಟ್ಟು %s ಅಂಕೆ ಇರುವಂತೆ - "
+"ಬರೆಯಿರಿ."
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ ದಶಮಾನ "
+"ಸಂಖ್ಯೆಯನ್ನು - ಹೆಚ್ಚೆಂದರೆ  "
+"ಒಟ್ಟು %s ಅಂಕೆಗಳು ಇರುವಂತೆ - "
+"ಬರೆಯಿರಿ."
+
+#: core/validators.py:381
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr ""
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ ದಶಮಾನ "
+"ಸಂಖ್ಯೆಯನ್ನು - ಪೂರ್ಣಾಂಕ ಭಾಗವು "
+"ಹೆಚ್ಚೆಂದರೆ  ಒಟ್ಟು %s ಅಂಕೆ "
+"ಇರುವಂತೆ - ಬರೆಯಿರಿ."
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ ದಶಮಾನ "
+"ಸಂಖ್ಯೆಯನ್ನು - ಪೂರ್ಣಾಂಕ ಭಾಗವು "
+"ಹೆಚ್ಚೆಂದರೆ  ಒಟ್ಟು %s ಅಂಕೆಗಳು "
+"ಇರುವಂತೆ - ಬರೆಯಿರಿ."
+
+#: core/validators.py:384
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr ""
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ ದಶಮಾನ "
+"ಸಂಖ್ಯೆಯನ್ನು - ದಶಮಾಂಶ ಭಾಗವು "
+"ಹೆಚ್ಚೆಂದರೆ  ಒಟ್ಟು %s ಸ್ಥಾನ "
+"ಇರುವಂತೆ - ಬರೆಯಿರಿ."
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ ದಶಮಾನ "
+"ಸಂಖ್ಯೆಯನ್ನು - ದಶಮಾಂಶ ಭಾಗವು "
+"ಹೆಚ್ಚೆಂದರೆ   %s ಸ್ಥಾನಗಳು  "
+"ಇರುವಂತೆ - ಬರೆಯಿರಿ."
+
+#: core/validators.py:394
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+"ನೀವು ಏರಿಸಿದ ಕಡತವು ಕನಿಷ್ಟ %s "
+"ಬೈಟ್‍ಗಳಷ್ಟು ದೊಡ್ಡದಿದೆ ಎಂದು "
+"ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ."
+
+#: core/validators.py:395
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+"ನೀವು ಏರಿಸಿದ ಕಡತವು %s "
+"ಬೈಟ್‍ಗಳಿಗಿಂತ ಹೆಚ್ಚಿರದ ಹಾಗೆ "
+"ನೋಡಿಕೊಳ್ಳಿ."
+
+#: core/validators.py:412
+msgid "The format for this field is wrong."
+msgstr "ಈ ಅಂಶದ ಸ್ವರೂಪವು ತಪ್ಪಾಗಿದೆ"
+
+#: core/validators.py:427
+msgid "This field is invalid."
+msgstr "ಈ ಅಂಶವು ತಪ್ಪಾಗಿದೆ"
+
+#: core/validators.py:463
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr ""
+" %s ದಿಂದ ಏನನ್ನೂ "
+"ಹೊರತೆಗೆದುಕೊಳ್ಳಲಾಗಲಿಲ್ಲ."
+
+#: core/validators.py:466
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+" %(url)s ಈ  URL ತಪ್ಪು ಒಳವಿಷಯ-ಬಗೆಯ "
+"ಶಿರೋ‍ಭಾಗ '%(contenttype)s' ಅನ್ನು "
+"ಮರಳಿಸಿತು."
+
+#: core/validators.py:499
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"ದಯವಿಟ್ಟು  %(line)s - ಸಾಲಿನಿಂದ "
+"ಮುಚ್ಚಿರದ %(tag)s ಟ್ಯಾಗ್ ಅನ್ನು "
+"ಮುಚ್ಚಿರಿ . (ಸಾಲು  \"%(start)s\" ಎಂದು "
+"ಆರಂಭವಾಗುತ್ತದೆ.)"
+
+#: core/validators.py:503
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+" %(line)s ಸಾಲಿನಲ್ಲಿ ಆರಂಭವಾಗುವ ಕೆಲ "
+"ಪಠ್ಯಭಾಗವನ್ನು ಆ ಸಂದರ್ಭದಲ್ಲಿ "
+"ಬಳಸಲಾಗದು.(ಸಾಲು  \"%(start)s\" ಎಂದು "
+"ಆರಂಭವಾಗುತ್ತದೆ.)"
+
+#: core/validators.py:508
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+" %(line)sನೆ ಸಾಲಿನಲ್ಲಿರುವ \"%(attr)s\"  "
+"ತಪ್ಪು ಗುಣಧರ್ಮವಾಗಿದೆ . (ಸಾಲು "
+"\"%(start)s\" ಎಂದು ಆರಂಭವಾಗುತ್ತದೆ.)"
+
+#: core/validators.py:513
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+" %(line)s ನೆ ಸಾಲಿನಲ್ಲಿರುವ \"<%(tag)s>\"  "
+"ತಪ್ಪು ಟ್ಯಾಗ್ ಆಗಿದೆ . (ಸಾಲು "
+"\"%(start)s\" ಎಂದು ಆರಂಭವಾಗುತ್ತದೆ.)"
+
+#: core/validators.py:517
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+" %(line)s ನೆ ಸಾಲಿನಲ್ಲಿರುವ  ಟ್ಯಾಗ್ "
+"ಗೆ ಅಗತ್ಯವಾದ ಒಂದು ಅಥವಾ ಹೆಚ್ಚು "
+"ಗುಣಧರ್ಮಗಳು ಕಾಣೆಯಾಗಿವೆ . "
+"(ಸಾಲು \"%(start)s\" ಎಂದು "
+"ಆರಂಭವಾಗುತ್ತದೆ.)"
+
+#: core/validators.py:522
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+" %(line)s ನೆ ಸಾಲಿನಲ್ಲಿರುವ  \"%(attr)s\" ಗೆ "
+"ತಪ್ಪು ಬೆಲೆ ಇದೆ. (ಸಾಲು \"%(start)s\" "
+"ಎಂದು ಆರಂಭವಾಗುತ್ತದೆ.)"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr ""
+" %(verbose_name)s ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ "
+"ನಿರ್ಮಿಸಲಾಯಿತು."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr ""
+" %(verbose_name)s ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ "
+"ಮಾರ್ಪಡಿಸಲಾಯಿತು."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr ""
+" %(verbose_name)s ಅನ್ನು "
+"ತೆಗೆದುಹಾಕಲಾಯಿತು"
+
+#: db/models/manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+"ಕೊಟ್ಟಿರುವ %(field)sಗೆ  ಈ %(type)s  "
+"ಹೊಂದಿರುವ %(object)s ಈಗಾಗಲೇ ಇದೆ."
+
+#: db/models/fields/__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+"ಈ %(fieldname)s ಹೊಂದಿರುವ %(optname)s ಈಗಾಗಲೇ "
+"ಇದೆ."
+
+#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:551 db/models/fields/__init__.py:562
+#: forms/__init__.py:346
+msgid "This field is required."
+msgstr "ಈ ಅಂಶ ಅಗತ್ಯ."
+
+#: db/models/fields/__init__.py:340
+msgid "This value must be an integer."
+msgstr ""
+"ಈ ಬೆಲೆಯು ಪೂರ್ಣ ಸಂಖ್ಯೆ ಇರಬೇಕು."
+
+#: db/models/fields/__init__.py:372
+msgid "This value must be either True or False."
+msgstr ""
+"ಈ ಬೆಲೆಯು  ಹೌದು ಅಥವಾ ಇಲ್ಲ "
+"ಇರಬೇಕು."
+
+#: db/models/fields/__init__.py:388
+msgid "This field cannot be null."
+msgstr ""
+"ಈ ಅಂಶವನ್ನು ಖಾಲಿ ಬಿಡುವಂತಿಲ್ಲ."
+
+#: db/models/fields/__init__.py:571
+msgid "Enter a valid filename."
+msgstr ""
+"ಸರಿಯಾದ ಕಡತದ ಹೆಸರನ್ನು "
+"ಬರೆಯಿರಿ"
+
+#: db/models/fields/related.py:51
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "ಸರಿಯಾದ %s ಅನ್ನು ಬರೆಯಿರಿ ."
+
+#: db/models/fields/related.py:618
+msgid "Separate multiple IDs with commas."
+msgstr ""
+"ಅನೇಕ ಐಡಿಗಳನ್ನು "
+"ಅಲ್ಪವಿರಾಮ(,)ಗಳಿಂದ "
+"ಬೇರ್ಪಡಿಸಿರಿ"
+
+#: db/models/fields/related.py:620
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚನ್ನು "
+"ಆಯ್ದುಕೊಳ್ಳಲು ಮ್ಯಾಕ್ ಗಣಕದ "
+"ಮೇಲೆ  \"ಕಂಟ್ರೋಲ್\", ಅಥವಾ "
+"\"ಕಮ್ಯಾಂಡ್\" ಅನ್ನು ಒತ್ತಿ "
+"ಹಿಡಿಯಿರಿ."
+
+#: db/models/fields/related.py:664
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr ""
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ %(self)s "
+"ಐಡಿಗಳನ್ನು ಸೂಚಿಸಿರಿ . ಈಗ "
+"ಸೂಚಿಸಿದ          %(value)r   ತಪ್ಪಾಗಿದೆ."
+"ದಯವಿಟ್ಟು ಸರಿಯಾದ %(self)s "
+"ಐಡಿಗಳನ್ನು ಸೂಚಿಸಿರಿ . ಈಗ "
+"ಸೂಚಿಸಿದ          %(value)s ತಪ್ಪಾಗಿವೆ"
+
+#: forms/__init__.py:381
+#, python-format
+#,fuzzy
+msgid "Ensure your text is less than %s character."
+msgstr ""
+"ನಿಮ್ಮ ಗದ್ಯ %s ಅಕ್ಷರಕ್ಕಿಂತ "
+"ಕಡಿಮೆ ಇರುವಂತೆ ಜಾಗ್ರತೆ ವಹಿಸಿ."
+"ನಿಮ್ಮ ಗದ್ಯ %s ಅಕ್ಷರಗಳಿಗಿಂತ "
+"ಕಡಿಮೆ ಇರುವಂತೆ ಜಾಗ್ರತೆ ವಹಿಸಿ."
+
+#: forms/__init__.py:386
+msgid "Line breaks are not allowed here."
+msgstr ""
+" ಇಲ್ಲಿ "
+"ಸಾಲುಗಳನ್ನುತುಂಡರಿಸುವಂತಿಲ್ಲ"
+
+#: forms/__init__.py:487 forms/__init__.py:560 forms/__init__.py:599
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+"ಸರಿಯಾದ ಆಯ್ಕೆಯನ್ನು "
+"ಆಯ್ದುಕೊಳ್ಳಿರಿ.'%(data)s' %(choices)s "
+"ನಲ್ಲಿಲ್ಲ."
+
+#: forms/__init__.py:663
+msgid "The submitted file is empty."
+msgstr "ಸಲ್ಲಿಸಲಾದ ಕಡತ ಖಾಲಿ ಇದೆ."
+
+#: forms/__init__.py:719
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr ""
+"-೩೨,೭೬೮ ಹಾಗೂ ೩೨,೭೬೭ ರ ನಡುವಿನ "
+"ಪೂರ್ಣ ಸಂಖ್ಯೆ ಕೊಡಿ."
+
+#: forms/__init__.py:729
+msgid "Enter a positive number."
+msgstr "ಧನಾತ್ಮಕ ಸಂಖ್ಯೆ ಕೊಡಿ."
+
+#: forms/__init__.py:739
+msgid "Enter a whole number between 0 and 32,767."
+msgstr ""
+"೦ ಮತ್ತು ೩೨,೭೬೭ ರ ನಡುವಿನ ಒಂದು "
+"ಪೂರ್ಣಾಂಕ ಕೊಡಿ"
+
+#: template/defaultfilters.py:401
+msgid "yes,no,maybe"
+msgstr "ಹೌದು,ಇಲ್ಲ,ಇರಬಹುದು"
+
diff --git a/webapp/django/conf/locale/kn/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/kn/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..60272ca
--- /dev/null
+++ b/webapp/django/conf/locale/kn/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/kn/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/kn/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..5909436
--- /dev/null
+++ b/webapp/django/conf/locale/kn/LC_MESSAGES/djangojs.po
@@ -0,0 +1,116 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-25 15:43+0200\n"
+"PO-Revision-Date: 2007-01-08 20:22+0530\n"
+"Last-Translator: Kannada Localization Team <translation@sampada.info>\n"
+"Language-Team: Kannada <translation@sampada.info>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "ಲಭ್ಯ %s "
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "ಎಲ್ಲವನ್ನೂ  ಆಯ್ದುಕೊಳ್ಳಿ"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "ಸೇರಿಸಿ"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "ತೆಗೆದು ಹಾಕಿ"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s ಆಯ್ದುಕೊಳ್ಳಲಾಗಿದೆ"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr ""
+"ನಿಮ್ಮ ಆಯ್ಕೆ(ಗಳ)ನ್ನು ಆರಿಸಿ "
+"ಮತ್ತು ಕ್ಲಿಕ್ಕಿಸಿ"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "ಎಲ್ಲವನ್ನೂ  ತೆರವುಗೊಳಿಸಿ"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"ಜನವರಿ ಫೆಬ್ರುವರಿ ಮಾರ್ಚ್ "
+"ಎಪ್ರಿಲ್ ಮೇ ಜೂನ್ ಜುಲೈ ಆಗಸ್ಟ್ "
+"ಸೆಪ್ಟೆಂಬರ್ ನವೆಂಬರ್ ಡಿಸೆಂಬರ್"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr ""
+"ರವಿವಾರ ಸೋಮವಾರ ಮಂಗಳವಾರ "
+"ಬುಧವಾರ ಗುರುವಾರ ಶುಕ್ರವಾರ "
+"ಶನಿವಾರ"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "ರ ಸೋ ಮ ಬು ಗು ಶು ಶ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "ಈಗ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "ಗಡಿಯಾರ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "ಸಮಯವೊಂದನ್ನು ಆರಿಸಿ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "ಮಧ್ಯರಾತ್ರಿ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "ಬೆಳಗಿನ ೬ ಗಂಟೆ "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "ಮಧ್ಯಾಹ್ನ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "ರದ್ದುಗೊಳಿಸಿ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "ಈ ದಿನ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "ಪಂಚಾಂಗ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "ನಿನ್ನೆ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "ನಾಳೆ"
diff --git a/webapp/django/conf/locale/ko/LC_MESSAGES/django.mo b/webapp/django/conf/locale/ko/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..d200157
--- /dev/null
+++ b/webapp/django/conf/locale/ko/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ko/LC_MESSAGES/django.po b/webapp/django/conf/locale/ko/LC_MESSAGES/django.po
new file mode 100644
index 0000000..fee4895
--- /dev/null
+++ b/webapp/django/conf/locale/ko/LC_MESSAGES/django.po
@@ -0,0 +1,2797 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-24 12:33+0900\n"
+"PO-Revision-Date: 2007-04-06 11:04+0900\n"
+"Last-Translator: Sung-Jin Hong <serialx.net@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(field)s 에 입력된 값은 %(type)s 의 %(object)s 에 이미 존재합니다."
+
+#: db/models/manipulators.py:308 contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339
+msgid "and"
+msgstr "또한"
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(fieldname)s 의 %(optname)s (은)는 이미 존재합니다."
+
+#: db/models/fields/__init__.py:117 db/models/fields/__init__.py:274
+#: db/models/fields/__init__.py:610 db/models/fields/__init__.py:621
+#: newforms/fields.py:80 newforms/fields.py:376 newforms/fields.py:452
+#: newforms/fields.py:463 newforms/models.py:178 oldforms/__init__.py:357
+msgid "This field is required."
+msgstr "필수 항목입니다."
+
+#: db/models/fields/__init__.py:367
+msgid "This value must be an integer."
+msgstr "정수 값을 사용하세요."
+
+#: db/models/fields/__init__.py:402
+msgid "This value must be either True or False."
+msgstr "True 또는 False 값을 사용하세요."
+
+#: db/models/fields/__init__.py:423
+msgid "This field cannot be null."
+msgstr "이 필드는 null 값은 사용할 수 없습니다. "
+
+#: db/models/fields/__init__.py:457 core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "날짜는 YYYY-MM-DD 형식으로 입력하세요."
+
+#: db/models/fields/__init__.py:526 core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "날짜/시각을 YYYY-MM-DD HH:MM 형식으로 입력하세요."
+
+#: db/models/fields/__init__.py:630
+msgid "Enter a valid filename."
+msgstr "올바른 파일명을 입력하세요."
+
+#: db/models/fields/__init__.py:751
+msgid "This value must be either None, True or False."
+msgstr "None, True 또는 False 값을 사용하세요."
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "올바른  %s (을)를 입력하세요."
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "복수 ID는 콤마로 구분해 주세요."
+
+#: db/models/fields/related.py:644
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"복수 선택 시에는 \"Control\" 키를 누른 상태에서 선택해 주세요.(Mac은 "
+"\"Command\" 키)"
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"올바른 %(self)s ID를 입력해 주세요. %(value)r (은)는 적절치 않습니다."
+msgstr[1] ""
+"올바른 %(self)s ID를 입력해 주세요. %(value)r (은)는 적절치 않습니다."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "아랍어"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "방글라데시어"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "카탈로니아어"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "체코어"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "웨일즈어"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "덴마크어"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "독일어"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "그리스어"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "영어"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "스페인어"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "아르헨티나_스페인어"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "핀란드어"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "프랑스어"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "갈리시아어"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "헝가리어"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "히브리어"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "아이슬란드어"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "이탈리아어"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "일본어"
+
+#: conf/global_settings.py:58
+msgid "Korean"
+msgstr "한국어"
+
+#: conf/global_settings.py:59
+msgid "Kannada"
+msgstr "칸나다어"
+
+#: conf/global_settings.py:60
+msgid "Latvian"
+msgstr "라트비아어"
+
+#: conf/global_settings.py:61
+msgid "Macedonian"
+msgstr "마케도니아어"
+
+#: conf/global_settings.py:62
+msgid "Dutch"
+msgstr "네덜란드어"
+
+#: conf/global_settings.py:63
+msgid "Norwegian"
+msgstr "노르웨이어"
+
+#: conf/global_settings.py:64
+msgid "Polish"
+msgstr "폴란드어"
+
+#: conf/global_settings.py:65
+msgid "Portugese"
+msgstr "포르투갈어"
+
+#: conf/global_settings.py:66
+msgid "Brazilian"
+msgstr "브라질어"
+
+#: conf/global_settings.py:67
+msgid "Romanian"
+msgstr "루마니아어"
+
+#: conf/global_settings.py:68
+msgid "Russian"
+msgstr "러시아어"
+
+#: conf/global_settings.py:69
+msgid "Slovak"
+msgstr "슬로바키아어"
+
+#: conf/global_settings.py:70
+msgid "Slovenian"
+msgstr "슬로베니아어"
+
+#: conf/global_settings.py:71
+msgid "Serbian"
+msgstr "세르비아어"
+
+#: conf/global_settings.py:72
+msgid "Swedish"
+msgstr "스웨덴어"
+
+#: conf/global_settings.py:73
+msgid "Tamil"
+msgstr "타밀어"
+
+#: conf/global_settings.py:74
+msgid "Telugu"
+msgstr "텔루구어"
+
+#: conf/global_settings.py:75
+msgid "Turkish"
+msgstr "터키어"
+
+#: conf/global_settings.py:76
+msgid "Ukrainian"
+msgstr "우크라이나어"
+
+#: conf/global_settings.py:77
+msgid "Simplified Chinese"
+msgstr "중국어 간체"
+
+#: conf/global_settings.py:78
+msgid "Traditional Chinese"
+msgstr "중국어 번체"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "문자, 숫자, '_'만 가능합니다."
+
+#: core/validators.py:68
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "문자, 숫자, '_', '-', '/'만 가능합니다."
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "문자, 숫자, '_', '-'만 가능합니다."
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "대문자는 사용할 수 없습니다."
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "소문자는 사용할 수 없습니다."
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "콤마로 구분된 숫자만 입력하세요."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "콤마로 구분된 이메일 주소만 입력하세요."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "올바른 IP 주소를 입력하세요."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "반드시 입력하세요."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "숫자만 사용할 수 있습니다."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "숫자만 사용할 수는 없습니다."
+
+#: core/validators.py:120 newforms/fields.py:128
+msgid "Enter a whole number."
+msgstr "정수를 입력하세요."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "문자만 사용할 수 있습니다."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr "1900년 이후의 연도만 가능"
+
+#: core/validators.py:143
+#, python-format
+msgid "Invalid date: %s"
+msgstr "날짜가 부적절합니다.: %s"
+
+#: core/validators.py:153
+msgid "Enter a valid time in HH:MM format."
+msgstr "시각은 HH:MM 형식으로 입력하세요."
+
+#: core/validators.py:162 newforms/fields.py:271
+msgid "Enter a valid e-mail address."
+msgstr "올바른 이메일 주소를 입력하세요."
+
+#: core/validators.py:174 core/validators.py:445 oldforms/__init__.py:672
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "등록된 파일이 없습니다. 인코딩 형식을 확인하세요."
+
+#: core/validators.py:178
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"올바른 이미지를 업로드하세요.업로드하신 파일은 이미지 파일이 아니거나 파일이 "
+"깨져 있습니다."
+
+#: core/validators.py:185
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "해당 URL %s (은)는 올바른 이미지가 아닙니다."
+
+#: core/validators.py:189
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"전화번호는 xxx-xxx-xxxx 형식으로 입력하세요.  \"%s\" (은)는 부적절합니다."
+
+#: core/validators.py:197
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "해당 URL %s (은)는 올바른 QuickTime video가 아닙니다."
+
+#: core/validators.py:201
+msgid "A valid URL is required."
+msgstr "올바른 URL을 입력하세요."
+
+#: core/validators.py:215
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"올바른 HTML을 입력하세요. 오류:\n"
+"%s"
+
+#: core/validators.py:222
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "잘못된 형식의 XML: %s"
+
+#: core/validators.py:239
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "부적절한 URL: %s"
+
+#: core/validators.py:244 core/validators.py:246
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "해당 URL %s 링크가 깨졌습니다."
+
+#: core/validators.py:252
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "올바른 미국의 주의 약어를 입력하세요."
+
+#: core/validators.py:266
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "비속어/욕설입니다. %s (은)는 사용하실 수 없습니다."
+msgstr[1] "비속어/욕설입니다. %s (은)는 사용하실 수 없습니다."
+
+#: core/validators.py:273
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "이 필드는 '%s' 필드와 일치해야 합니다."
+
+#: core/validators.py:292
+msgid "Please enter something for at least one field."
+msgstr "하나 이상의 필드에 입력해 주세요."
+
+#: core/validators.py:301 core/validators.py:312
+msgid "Please enter both fields or leave them both empty."
+msgstr "양쪽 필드에 모두 입력하시거나, 모두 빈칸으로 해 주십시오."
+
+#: core/validators.py:320
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "%(field)s (이)가 %(value)s 일 경우, 이 필드에 반드시 입력해 주세요."
+
+#: core/validators.py:333
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr ""
+"%(field)s (이)가 %(value)s (이)가 아닐 경우, 이 필드에 반드시 입력해 주세요."
+
+#: core/validators.py:352
+msgid "Duplicate values are not allowed."
+msgstr "중복해서 사용할 수 없습니다."
+
+#: core/validators.py:367
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "%(lower)s 에서 %(upper)s 사이의 값을 사용해 주세요."
+
+#: core/validators.py:369
+#, python-format
+msgid "This value must be at least %s."
+msgstr "%s 이상의 값을 사용해 주세요."
+
+#: core/validators.py:371
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "%s 이하의 값을 사용해 주세요."
+
+#: core/validators.py:407
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "%s 제곱의 값을 사용해 주세요."
+
+#: core/validators.py:418
+msgid "Please enter a valid decimal number."
+msgstr "10진수를 사용해 주세요."
+
+#: core/validators.py:422
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "전체 %s 자리 이하의 10진수를 입력하세요."
+msgstr[1] "전체 %s 자리 이하의 10진수를 입력하세요."
+
+#: core/validators.py:425
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "정수부분이 %s 자리 이하인 10진수를 입력하세요."
+msgstr[1] "정수부분이 %s 자리 이하인 10진수를 입력하세요."
+
+#: core/validators.py:428
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "소수부분이 %s 자리 이하인 10진수를 입력하세요."
+msgstr[1] "소수부분이 %s 자리 이하인 10진수를 입력하세요."
+
+#: core/validators.py:438
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "업로드 파일은 %s bytes 이상입니다."
+
+#: core/validators.py:439
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "업로드 파일은 %s bytes 이하입니다."
+
+#: core/validators.py:456
+msgid "The format for this field is wrong."
+msgstr "이 필드의 형식이 잘못되었습니다."
+
+#: core/validators.py:471
+msgid "This field is invalid."
+msgstr "필드가 올바르지 않습니다."
+
+#: core/validators.py:507
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "%s 에서 검색된 내용이 없습니다."
+
+#: core/validators.py:510
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"URL %(url)s (이)가 부적절한 Content-Type heade '%(contenttype)s' (을)를 반환"
+"했습니다."
+
+#: core/validators.py:543
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"%(line)s 줄의 %(tag)s 태그가 닫히지 않았습니다.(시작줄 : \"%(start)s\")"
+
+#: core/validators.py:547
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"%(line)s 줄의 내용으로 시작하는 텍스트는 사용할 수 없습니다.(시작줄 : \"%"
+"(start)s\")"
+
+#: core/validators.py:552
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"%(line)s 줄의 \"%(attr)s\" (은)는 부적절한 속성입니다.(시작줄 : \"%(start)s"
+"\")"
+
+#: core/validators.py:557
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"%(line)s 줄의 \"<%(tag)s>\" (은)는 부적절한 태그입니다.(시작줄 : \"%(start)s"
+"\")"
+
+#: core/validators.py:561
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"%(line)s 줄의 태그는 하나 이상의 필수 속성이 생략되어 있습니다.(시작줄 : \"%"
+"(start)s\")"
+
+#: core/validators.py:566
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"%(line)s 줄의 \"%(attr)s\" 속성의 값이 부적절합니다.(시작줄 : \"%(start)s\")"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s (이)가 생성되었습니다."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s (이)가 수정되었습니다."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s (이)가 삭제되었습니다."
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "월요일"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "화요일"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "수요일"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "목요일"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "금요일"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "토요일"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "일요일"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "1월"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "2월"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "3월"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "4월"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "5월"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "6월"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "7월"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "8월"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "9월"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "10월"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "11월"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "12월"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "1월"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "2월"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "3월"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "4월"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "5월"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "6월"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "7월"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "8월"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "9월"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "10월"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "11월"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "12월"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "1월"
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "2월"
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "8월"
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "9월"
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "10월"
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "11월"
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "12월"
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "년"
+msgstr[1] "년"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "월"
+msgstr[1] "월"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "주"
+msgstr[1] "주"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "일"
+msgstr[1] "일"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "시간"
+msgstr[1] "시간"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "분"
+msgstr[1] "분"
+
+#: utils/timesince.py:40
+#, python-format
+msgid "%d milliseconds"
+msgstr "%d밀리초"
+
+#: utils/timesince.py:41
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d%(type)s"
+
+#: utils/timesince.py:47
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d%(type)s"
+
+#: utils/dateformat.py:40
+msgid "p.m."
+msgstr "오후"
+
+#: utils/dateformat.py:41
+msgid "a.m."
+msgstr "오전"
+
+#: utils/dateformat.py:46
+msgid "PM"
+msgstr "오후"
+
+#: utils/dateformat.py:47
+msgid "AM"
+msgstr "오전"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "자정"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "정오"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr ""
+
+#: newforms/fields.py:103 newforms/fields.py:256
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "%d 자 이하로 입력해 주세요."
+
+#: newforms/fields.py:105 newforms/fields.py:258
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "%d 자 이상 입력해 주세요."
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "%s 이하의 값을 입력해 주세요."
+
+#: newforms/fields.py:132
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "%s 이상의 값을 입력해 주세요."
+
+#: newforms/fields.py:165
+msgid "Enter a valid date."
+msgstr "올바른 날짜를 입력하세요."
+
+#: newforms/fields.py:192
+msgid "Enter a valid time."
+msgstr "올바른 시각을 입력하세요."
+
+#: newforms/fields.py:228
+msgid "Enter a valid date/time."
+msgstr "올바른 날짜/시각을 입력하세요."
+
+#: newforms/fields.py:242
+msgid "Enter a valid value."
+msgstr "올바른 값을 입력하세요."
+
+#: newforms/fields.py:289 newforms/fields.py:311
+msgid "Enter a valid URL."
+msgstr "올바른 URL을 입력하세요."
+
+#: newforms/fields.py:313
+msgid "This URL appears to be a broken link."
+msgstr "해당 URL의 링크가 잘못 되어 있습니다."
+
+#: newforms/fields.py:364 newforms/models.py:165
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "올바르게 선택해 주세요. 선택하신 것이 선택가능항목에 없습니다."
+
+#: newforms/fields.py:380 newforms/fields.py:456 newforms/models.py:182
+msgid "Enter a list of values."
+msgstr "리스트를 입력하세요."
+
+#: newforms/fields.py:389 newforms/models.py:188
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "올바르게 선택해 주세요. %s (이)가 선택가능항목에 없습니다."
+
+#: newforms/widgets.py:180 contrib/admin/filterspecs.py:150
+#: oldforms/__init__.py:577
+msgid "Unknown"
+msgstr "알 수 없습니다."
+
+#: newforms/widgets.py:180 contrib/admin/filterspecs.py:143
+#: oldforms/__init__.py:577
+msgid "Yes"
+msgstr "예"
+
+#: newforms/widgets.py:180 contrib/admin/filterspecs.py:143
+#: oldforms/__init__.py:577
+msgid "No"
+msgstr "아니오"
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "python 모델 클래스 명"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "콘텐츠 타입"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "콘텐츠 타입(들)"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr "번째"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "st"
+msgstr "번째"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "nd"
+msgstr "번째"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr "번째"
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "(value).1f"
+msgstr[1] "(value).1f"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f"
+msgstr[1] "%(value).1f"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f"
+msgstr[1] "%(value).1f"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "1"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "2"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "3"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "4"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "5"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "6"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "7"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "8"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "9"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "로그 아웃"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:58
+msgid "name"
+msgstr "이름"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "코드명"
+
+#: contrib/auth/models.py:43
+msgid "permission"
+msgstr "허가"
+
+#: contrib/auth/models.py:44 contrib/auth/models.py:59
+msgid "permissions"
+msgstr "허가"
+
+#: contrib/auth/models.py:62
+msgid "group"
+msgstr "그룹"
+
+#: contrib/auth/models.py:63 contrib/auth/models.py:103
+msgid "groups"
+msgstr "그룹"
+
+#: contrib/auth/models.py:93
+msgid "username"
+msgstr "사용자명"
+
+#: contrib/auth/models.py:93
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "필수항목입니다. 30자 이내로 입력하세요.(알파벳, 숫자, '_' 만 가능)"
+
+#: contrib/auth/models.py:94
+msgid "first name"
+msgstr "이름"
+
+#: contrib/auth/models.py:95
+msgid "last name"
+msgstr "성"
+
+#: contrib/auth/models.py:96
+msgid "e-mail address"
+msgstr "이메일 주소"
+
+#: contrib/auth/models.py:97
+msgid "password"
+msgstr "비밀번호"
+
+#: contrib/auth/models.py:97
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"'[algo]$[salt]$[hexdigest]' 또는 <a href=\"password/\">비밀번호 변경</a>"
+
+#: contrib/auth/models.py:98
+msgid "staff status"
+msgstr "스태프 권한"
+
+#: contrib/auth/models.py:98
+msgid "Designates whether the user can log into this admin site."
+msgstr "사용자가 관리사이트에 로그인이 가능한지를 나타냅니다."
+
+#: contrib/auth/models.py:99
+msgid "active"
+msgstr "활성"
+
+#: contrib/auth/models.py:99
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "사용자가 'Django 관리'에 로그인이 가능한지를 나타냅니다."
+
+#: contrib/auth/models.py:100
+msgid "superuser status"
+msgstr "최상위 사용자 권한"
+
+#: contrib/auth/models.py:100
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "해당 사용자에게 모든 권한을 허가합니다."
+
+#: contrib/auth/models.py:101
+msgid "last login"
+msgstr "마지막 로그인"
+
+#: contrib/auth/models.py:102
+msgid "date joined"
+msgstr "등록일"
+
+#: contrib/auth/models.py:104
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr "해당 사용자에게 속해있는 그룹의 모든 권한을 허가합니다."
+
+#: contrib/auth/models.py:105
+msgid "user permissions"
+msgstr "사용자 권한"
+
+#: contrib/auth/models.py:109
+msgid "user"
+msgstr "사용자"
+
+#: contrib/auth/models.py:110
+msgid "users"
+msgstr "사용자(들)"
+
+#: contrib/auth/models.py:116
+msgid "Personal info"
+msgstr "개인정보"
+
+#: contrib/auth/models.py:117
+msgid "Permissions"
+msgstr "권한"
+
+#: contrib/auth/models.py:118
+msgid "Important dates"
+msgstr "중요한 일정"
+
+#: contrib/auth/models.py:119
+msgid "Groups"
+msgstr "그룹"
+
+#: contrib/auth/models.py:263
+msgid "message"
+msgstr "메시지"
+
+#: contrib/auth/models.py:276
+#, fuzzy
+msgid "AnonymousUser"
+msgstr "익명사용자"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "비밀번호가 일치하지 않습니다."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "해당 사용자명은 이미 존재합니다."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"사용하시는 브라우저가 쿠키를 허용하지 않습니다.로그인하기 위해서는 쿠키 사용"
+"이 필요합니다."
+
+#: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "사용자명과 비밀번호를 입력하세요.(대, 소문자 구별)"
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "이 계정은 유효하지 않습니다."
+
+#: contrib/auth/forms.py:85
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"이메일주소와 일치하는 사용자가 없습니다.이 이메일주소로 등록하셨습니까?"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "새로운 비밀번호가 일치하지 않습니다."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "기존 비밀번호를 잘못 입력하셨습니다. 다시 입력해 주세요."
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "에서 재전송"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr "도메인명을 제외한 절대경로로 입력하세요. 예: '/events/search/'"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "(으)로 재전송"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "절대경로와 URL('http://' 포함) 모두 가능합니다."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "재전송"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "재전송"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "오브젝트 ID"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "최근 정보"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "코멘트"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "rating #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "rating #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "rating #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "rating #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "rating #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "rating #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "rating #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "rating #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "올바른 레이팅입니다."
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "날짜/시간 확인"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "공개합니다."
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "IP 주소"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "삭제합니다."
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"코멘트가 부적절한 경우 체크하세요. \"코멘트가 삭제되었습니다.\" 메시지가 표시"
+"됩니다."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "코멘트(들)"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "콘텐츠 오브젝트"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"%(user)s (이)가 %(date)s 등록\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "사용자 이름"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "IP 주소"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "스태프 승인"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "프리 코멘트"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "프리 코멘트(들)"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "스코어"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "스코어 날짜"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "카르마 스코어"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "카르마 스코어"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(user)s (이)가 %(score)d 점 부여했습니다."
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"%(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "플래그 날짜"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "사용자 플래그"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "사용자 플래그"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "%r (으)로 플래그"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "삭제일"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr ""
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr ""
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr ""
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "미등록 사용자는 투표할 수 없습니다."
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "코멘트 ID가 부적절합니다."
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "자신이 직접 투표할 수 없습니다."
+
+#: contrib/comments/views/comments.py:27
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "다른 레이팅을 입력했을 경우, 이 레이팅은 필히 입력하셔야 합니다."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"이 코멘트를 작성한 사용자의 코멘트 포스팅은 %(count)s 번 이하입니다.:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"이 코멘트를 작성한 사용자의 코멘트 포스팅은 %(count)s 번 이하입니다.:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"이 코멘트는 알수 없는 사용자가 작성했습니다.:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "POST만 가능합니다."
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "하나 이상의 필수항목이 누락되었습니다."
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "해당 코멘트가 누군가에 의해 변경되었습니다."
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"'target' 파라미터가 코멘트 폼에 적합하지 않습니다.오브젝트 ID가 부적절합니다."
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "해당 코멘트 폼은 '미리보기'와 'post' 기능을 제공하지 않습니다."
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "이름:"
+
+#: contrib/comments/templates/comments/freeform.html:5
+#: contrib/comments/templates/comments/form.html:28
+msgid "Comment:"
+msgstr "코멘트:"
+
+#: contrib/comments/templates/comments/freeform.html:10
+#: contrib/comments/templates/comments/form.html:35
+msgid "Preview comment"
+msgstr "코멘트 미리보기"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "사용자명"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "로그아웃"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "비밀번호"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "비밀번호를 잊으셨습니까?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "레이팅"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "필수항목"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "옵션"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "사진 등록"
+
+#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:315
+msgid "URL"
+msgstr "URL"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "앞, 뒤에 슬래시(/)를 넣으세요. 예:'/about/contact/' "
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "제목"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "내용"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "사용 가능한 코멘트"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "템플릿명"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"예: 'flatpages/contact_page.html' 를 사용할 수 없는 경우 시스템이 'flatpages/"
+"default.html' (을)를 사용합니다."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "등록하세요."
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "체크할 경우, 로그인 사용자만 해당 페이지를 볼 수 있습니다."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "플랫 페이지"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "플랫 페이지(들)"
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "세션 키"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "세션 날짜"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "유효날짜"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "세션"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "세션"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "도메인 명"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "표시명"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "사이트"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "사이트(들)"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>%s(으)로:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "모두"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "언제나"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "오늘"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "지난 7일"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "이번 달"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "이번 해"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "액션 타임"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "오브젝트 아이디"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "오브젝트 표현"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "액션 플래그"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "메시지 변경"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "로그 엔트리"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "로그 엔트리"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "언제나"
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "로그인"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr "로그인 세션이 끊겼습니다. 다시 로그인 하세요."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"사용하시는 브라우저가 쿠키 사용을 허가하고 있지 않습니다.쿠키 사용을 체크하시"
+"고 다시 시도해 주세요."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "사용자명에는 '@'을 사용할 수 없습니다."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "이메일 주소와 사용자명은 다릅니다. '%s'를 사용하세요."
+
+#: contrib/admin/views/auth.py:19 contrib/admin/views/main.py:257
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" (이)가 추가되었습니다."
+
+#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:261
+#: contrib/admin/views/main.py:347
+msgid "You may edit it again below."
+msgstr "계속해서 편집하실 수 있습니다."
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "사용자 추가"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "비밀번호가 변경되었습니다."
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "비밀번호 변경: %s"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "사이트 관리"
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "계속해서 다른 %s (을)를 추가하세요."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "%s 추가"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "%s (이)가 추가되었습니다."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "%s (이)가 변경되었습니다."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "%s (이)가 삭제되었습니다."
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "변경된 필드가 없습니다."
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" (이)가 변경되었습니다."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" (이)가 추가되었습니다. 계속해서 편집하세요."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "%s 변경"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "%(name)s 에 %(fieldname)s (이)가 하나 이상 있는 %(obj)s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "%(name)s 에 %(fieldname)s (이)가 하나 이상 있는"
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" (이)가 삭제되었습니다."
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "확실합니까?"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "변경 히스토리: %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "%s 선택"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s to change"
+msgstr "변경할 %s 선택"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "데이터베이스 오류"
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "태그:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "필터:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "뷰:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "어플리케이션 %r (이)가 없습니다."
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "모델 %(name)r (이)가 어플리케이션 %(label)r 에 없습니다."
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "`%(label)s.%(type)s` 관련 오브젝트"
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "모델:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "`%(label)s.%(name)s` 관련 오브젝트(들)"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "모든 %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "%s 의 수"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s 오브젝트의 필드"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "정수"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "boolean(참 또는 거짓)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "문자열(%(maxlength)s 까지)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "정수(콤마로 구분)"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "날짜(시간 제외)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "날짜(시간 포함)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "이메일 주소"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "파일 경로"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "10진수"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "boolean (참, 거짓 또는 none)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "부모(상위) 모델과 연계"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "전화번호"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "텍스트"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "시각"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "미국의 주 (두개의 대문자로)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML 텍스트"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s (은)는 url 패턴의 오브젝트가 아닙니다."
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "현재:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "변경:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "날짜:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "시각:"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "문서"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "비밀번호 변경"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "홈"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "히스토리"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "날짜/시간"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "사용자"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "액션"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "년/월/일 시:분:초"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"오브젝트에 변경사항이 없습니다.이 admin 사이트를 통해 추가된 사항이 아닙니다."
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s 추가"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "%(filter_title)s (으)로"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "서버 오류"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "서버 오류 (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "서버 오류 <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"오류가 발생했습니다. 사이트 관리자에게 이메일로 에러를 보고 했습니다.조속히 "
+"수정하도록 하겠습니다. 고맙습니다."
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"데이터베이스 설정에 문제가 발생했습니다. 해당 데이터베이스 테이블이 생성되었"
+"는지,해당 유저가 데이터베이스를 읽어 들일 수 있는지 확인하세요."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "실행"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1건"
+msgstr[1] "%(counter)s 건"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "모두 %(full_result_count)s 건"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "모두 표시"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django 사이트 관리"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django 관리"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "필터"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "해당 페이지가 없습니다."
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "죄송합니다, 요청하신 페이지를 찾을 수 없습니다."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "%(name)s 어플리케이션으로 이용 가능한 모델"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "추가"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "변경"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "수정할 권한이 없습니다."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "최근 액션"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "나의 액션"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "이용할 수 없습니다."
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "사이트에서 보기"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "아래의 오류를 수정해 주세요."
+msgstr[1] "아래의 오류들을 수정해 주세요."
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "순서"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "순서:"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "환영합니다,"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "삭제"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"%(object_name)s \"%(escaped_object)s\" (을)를 삭제하면서관련 오브젝트를 제거"
+"하고자 했으나, 지금 사용하시는 계정은 다음 타입의 오브젝트를 제거할 권한이 없"
+"습니다. :"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"정말로 %(object_name)s \"%(escaped_object)s\" (을)를 삭제하시겠습니까?다음의 "
+"관련 아이템들이 모두 삭제됩니다. :"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "네, 확실합니다."
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "새로 저장"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "저장 및 다른 이름으로 추가"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "저장 및 편집 계속"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "저장"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "<strong>%(username)s</strong> 새로운 비밀번호를 입력하세요."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "비밀번호"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "비밀번호 (확인)"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "확인을 위해 위와 동일한 비밀번호를 입력하세요. "
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"사용자명와 비밀번호를 입력하세요.더 많은 사용자 옵션을 사용하실 수 있습니다."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "사용자명"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "비밀번호 변경"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "비밀번호를 변경하였습니다."
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "비밀번호가 변경되었습니다."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "비밀번호 초기화"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"비밀번호를 잊으셨나요? 아래에 비밀번호를 입력하시면비밀전호를 초기화 한 후, "
+"새로운 비밀번호를 보내드리겠습니다."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "이메일 주소:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "비밀번호 초기화"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "사이트를 이용해 주셔서 고맙습니다."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "다시 로그인하기"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "비밀번호가 초기화 되었습니다."
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr "새로운 비밀번호를 등록하신 이메일로 보내드렸습니다."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"보안상 필요하오니 기존에 사용하시던 비밀번호를 입력해 주세요.새로운 비밀번호"
+"는 정확히 입력했는지 확인할 수 있도록 두 번 입력하시기 바랍니다."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "기존 비밀번호:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "새로운 비밀번호:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "새로운 비밀번호(확인):"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "비밀번호 변경"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "비밀번호가 초기화 되었음을 알려드립니다."
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "%(site_name)s 의 사용자 비밀번호가 초기화 되었습니다."
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "새로운 비밀번호는 %(new_password)s 입니다."
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "해당 페이지에서 언제든지 비밀번호 변경이 가능합니다."
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "사용자명:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "사이트를 이용해 주셔서 고맙습니다."
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s 팀"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "북마크릿"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "문서 북마크릿"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\"> 북마크릿을 설치하시려면 링크를 북마크 툴바로 드래그 하거"
+"나,\n"
+"오른쪽 클릭으로 해당 링크를 북마크에 추가하세요.\n"
+"이제 사이트 내의 모든 페이지에서 북마크릿 선택이 가능합니다.\n"
+"북마크릿에 따라 내부 네트워크 상의 컴퓨터로부터 이 사이트를 참조해야하는 경우"
+"가 있습니다.\n"
+"(내부 네트워크가 있는지 불명확한 경우 시스템 관리자에게 확인하시기 바랍니다.)"
+"</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "이 페이지의 문서"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "각 페이지로에서 해당 페이지를 생성한 뷰의 문서로 갑니다."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "오브젝트 아이디 표시"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "단일 오브젝트 페이지의 고유 아이디와 컨텐츠 타입을 표시합니다."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "오브젝트 편집(현재 창)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "단일 오브젝트 페이지의 관리 페이지로 이동"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "오브젝트 편집(새로운 창)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "위와 동일하며, 새로운 창에서 관리 페이지를 엽니다."
+
+#: contrib/localflavor/au/forms.py:18
+#, 
+msgid "Enter a 4 digit post code."
+msgstr "우편번호를 입력하세요. (xxxx)"
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "우편번호를 입력하세요. (xxx xxx)"
+
+#: contrib/localflavor/fr/forms.py:17 contrib/localflavor/fi/forms.py:14
+#: contrib/localflavor/de/forms.py:16
+msgid "Enter a zip code in the format XXXXX."
+msgstr "우편번호를 입력하세요.(xxx xxx)"
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "우변번호를 입력하세요.(xxxxxx 또는 xxx-xxx)"
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:16
+#, 
+msgid "Enter a valid zip code."
+msgstr "올바른 우편번호를 입력하세요."
+
+#: contrib/localflavor/it/forms.py:41
+#, 
+msgid "Enter a valid Social Security number."
+msgstr "올바른 Social Security number를 입력하세요."
+
+#: contrib/localflavor/it/forms.py:68
+#, 
+msgid "Enter a valid VAT number."
+msgstr "올바른 VAT번호를 입력하세요."
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+#, 
+msgid "Enter a valid Finnish social security number."
+msgstr "올바른 핀란드 Social Security number를 입력하세요."
+
+#: contrib/localflavor/br/forms.py:18
+#, 
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "우편번호는 XXXXX-XXX 형식으로 입력하세요."
+
+#: contrib/localflavor/br/forms.py:30
+#, fuzzy
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr ""
+"전화번호는 xx-xxxx-xxxx 형식으로 입력하세요."
+
+#: contrib/localflavor/no/forms.py:15
+#, fuzzy
+msgid "Enter a zip code in the format XXXX."
+msgstr "우편번호를 입력하세요.(xxx xxx)"
+
+#: contrib/localflavor/no/forms.py:36
+#, fuzzy
+msgid "Enter a valid Norwegian social security number."
+msgstr "10진수를 사용해 주세요."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+#, fuzzy
+msgid "Berlin"
+msgstr "브라질어"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+#, fuzzy
+msgid "Hessen"
+msgstr "메시지"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+#, fuzzy
+msgid "Saarland"
+msgstr "카탈로니아어"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:60
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "우변번호를 입력하세요.(xxxxxx 또는 xxx-xxx)"
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "예, 아니오, 아마도"
+
+#: template/defaultfilters.py:520
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: template/defaultfilters.py:522
+#, python-format
+msgid "%.1f KB"
+msgstr ""
+
+#: template/defaultfilters.py:524
+#, python-format
+msgid "%.1f MB"
+msgstr ""
+
+#: template/defaultfilters.py:525
+#, python-format
+msgid "%.1f GB"
+msgstr ""
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "%s 자 이하로 입력해 주세요."
+msgstr[1] "%s 자 이하로 입력해 주세요."
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "줄바꿈이 허용되지 않습니다."
+
+#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "올바르게 선택해 주세요. '%(data)s' (이)가 %(choices)s 에 없습니다."
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "입력하신 파일은 빈 파일입니다."
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "-32,768 ~ 32,767 사이의 정수를 입력하세요."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "양수를 입력하세요."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "0 ~ 32,767 사이의 정수를 입력하세요."
diff --git a/webapp/django/conf/locale/ko/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/ko/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..cdc19a1
--- /dev/null
+++ b/webapp/django/conf/locale/ko/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ko/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/ko/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..fe1c7a4
--- /dev/null
+++ b/webapp/django/conf/locale/ko/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-06 11:10+0900\n"
+"PO-Revision-Date: 2007-04-06 11:15+0900\n"
+"Last-Translator: Hyun Mi Ae <happyhyun@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "일 월 화 수 목 금 토"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "일요일 월요일 화요일 수요일 목요일 금요일 토요일"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "이용 가능한 %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "모두 선택"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "추가"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "삭제"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "선택된 %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "선택한 후 클릭하세요"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "모두 삭제"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "보기"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "감추기"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "현재"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "시계"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "시간 선택"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "자정"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "오전 6시"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "정오"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "취소"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "오늘"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "달력"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "어제"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "내일"
diff --git a/webapp/django/conf/locale/lt/LC_MESSAGES/django.mo b/webapp/django/conf/locale/lt/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..3d42827
--- /dev/null
+++ b/webapp/django/conf/locale/lt/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/lt/LC_MESSAGES/django.po b/webapp/django/conf/locale/lt/LC_MESSAGES/django.po
new file mode 100644
index 0000000..d855d87
--- /dev/null
+++ b/webapp/django/conf/locale/lt/LC_MESSAGES/django.po
@@ -0,0 +1,2868 @@
+# Lithuanian translation of Django.
+# Copyright (C) 2008 The Django Software Foundation
+# This file is distributed under the same license as the Django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-06-15 23:03+0300\n"
+"PO-Revision-Date: 2008-06-18 22:37+0200\n"
+"Last-Translator: Rapolas Kaselis <rapolas@gmail.com>\n"
+"Language-Team: Django-i18n <django-i18n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: oldforms/__init__.py:357
+#: db/models/fields/__init__.py:117
+#: db/models/fields/__init__.py:274
+#: db/models/fields/__init__.py:612
+#: db/models/fields/__init__.py:623
+#: newforms/models.py:178
+#: newforms/fields.py:80
+#: newforms/fields.py:376
+#: newforms/fields.py:452
+#: newforms/fields.py:463
+msgid "This field is required."
+msgstr "Šis laukas yra privalomas."
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Įsitikink, kad tavo tekstas turi mažiau nei %s simbolį."
+msgstr[1] "Įsitikink, kad tavo tekstas turi mažiau nei %s simbolių."
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "Nauja eilutė nėra leidžiama."
+
+#: oldforms/__init__.py:498
+#: oldforms/__init__.py:571
+#: oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Pasirink gerą variantą; '%(data)s' nėra tarp %(choices)s."
+
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "Nežinomas"
+
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "Taip"
+
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "Ne"
+
+#: oldforms/__init__.py:672
+#: core/validators.py:174
+#: core/validators.py:445
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Failas nebuvo nurodytas. Patikrink formos koduotę."
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "Nurodytas failas yra tuščias"
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Įvesk sveiką skaičių nuo -32,768 iki 32,767."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "Įvesk teigiamą skaičių."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Įvesk sveiką skaičių nuo 0 iki 32,767."
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s su šiuo %(type)s jau egzistuoja duotuose %(field)s."
+
+#: db/models/manipulators.py:308
+#: contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
+msgid "and"
+msgstr "ir"
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s su šiuo %(fieldname)s jau egzistuoja."
+
+#: db/models/fields/__init__.py:369
+msgid "This value must be an integer."
+msgstr "Ši reikšme turi būti sveikas skaičius."
+
+#: db/models/fields/__init__.py:404
+msgid "This value must be either True or False."
+msgstr "Ši reikšmė turi būti True arba False."
+
+#: db/models/fields/__init__.py:425
+msgid "This field cannot be null."
+msgstr "Šis laukas negali būti null"
+
+#: db/models/fields/__init__.py:459
+#: core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Įvesk tinkamą datą YYYY-MM-DD formatu."
+
+#: db/models/fields/__init__.py:528
+#: core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Įvesk tinkamą datą/laiką YYYY-MM-DD HH:MM formatu."
+
+#: db/models/fields/__init__.py:632
+msgid "Enter a valid filename."
+msgstr "Įvesk tinkamą failo vardą."
+
+#: db/models/fields/__init__.py:753
+msgid "This value must be either None, True or False."
+msgstr "Ši reikšmė turi būti viena iš None, True arba False."
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Įveskite tinkamą %s"
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Atskirkite skirtingus ID su kableliu."
+
+#: db/models/fields/related.py:644
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Paspausk ir laikyk \"Control\", arba \"Command\" Mac'uose, kad pasirinkti daugiau nei vieną."
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Įveskite tinkamą %(self)s ID. Reikšmė %(value)r yra netinkama."
+msgstr[1] "Įveskite tinkamą %(self)s ID. Reikšmės %(value)r yra netinkamos."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arabų"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengalų"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "Katalonų"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "Čekų"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "Velso"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "Danų"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "Vokiečių"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "Graikų"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "Anglų"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "Ispanų"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "Argentinos Ispanų"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "Suomių"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "Prancūzų"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "Galų"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "Vengrų"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "Hebrajų"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "Islandų"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "Italų"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "Japonų"
+
+#: conf/global_settings.py:58
+msgid "Korean"
+msgstr "Korėjiečių"
+
+#: conf/global_settings.py:59
+msgid "Kannada"
+msgstr "Dravidų"
+
+#: conf/global_settings.py:60
+msgid "Latvian"
+msgstr "Latvių"
+
+#: conf/global_settings.py:61
+msgid "Macedonian"
+msgstr "Makedonų"
+
+#: conf/global_settings.py:62
+msgid "Dutch"
+msgstr "Olandų"
+
+#: conf/global_settings.py:63
+msgid "Norwegian"
+msgstr "Norvegų"
+
+#: conf/global_settings.py:64
+msgid "Polish"
+msgstr "Lenkų"
+
+#: conf/global_settings.py:65
+msgid "Portugese"
+msgstr "Portugalų"
+
+#: conf/global_settings.py:66
+msgid "Brazilian"
+msgstr "Brazilų"
+
+#: conf/global_settings.py:67
+msgid "Romanian"
+msgstr "Rumunų"
+
+#: conf/global_settings.py:68
+msgid "Russian"
+msgstr "Rusų"
+
+#: conf/global_settings.py:69
+msgid "Slovak"
+msgstr "Slovakų"
+
+#: conf/global_settings.py:70
+msgid "Slovenian"
+msgstr "Slovėnų"
+
+#: conf/global_settings.py:71
+msgid "Serbian"
+msgstr "Serbų"
+
+#: conf/global_settings.py:72
+msgid "Swedish"
+msgstr "Švedų"
+
+#: conf/global_settings.py:73
+msgid "Tamil"
+msgstr "Tamilų"
+
+#: conf/global_settings.py:74
+msgid "Telugu"
+msgstr "Telugų"
+
+#: conf/global_settings.py:75
+msgid "Turkish"
+msgstr "Turkų"
+
+#: conf/global_settings.py:76
+msgid "Ukrainian"
+msgstr "Ukrainiečių"
+
+#: conf/global_settings.py:77
+msgid "Simplified Chinese"
+msgstr "Supaprastinta kinų"
+
+#: conf/global_settings.py:78
+msgid "Traditional Chinese"
+msgstr "Tradicinė kinų"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Ši reikšmė gali būti sudaryta tik iš raidžių, skaičių ir pabraukimų."
+
+#: core/validators.py:68
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Ši reikšmė gali būti sudaryta tik iš raidžių, skaičių, pabraukimų, brūkšnių ir/arba pasvirų brūkšnių."
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Ši reikšmė gali būti sudaryta tik iš raidžių, skaičių, pabraukimų arba brūkšnelių."
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "Didžiosios raidės nėra leidžiamos."
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "Mažosios raidės nėra leidžiamos."
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "Įvesk skaitmenis atskirtus kableliais."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Įvesk tinkamus e-mailus atskirtus kableliais."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "Įveskt tinkamą IP adresą."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "Tuščios reikšmės neleidžiamos."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Ne skaičius neleidžiamas čia."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "Ši reikšmė negali būti sudaryta vientik iš skaičių."
+
+#: core/validators.py:120
+#: newforms/fields.py:128
+msgid "Enter a whole number."
+msgstr "Įvesk sveiką skaičių."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "Tik alfabetiniai simboliai leidžiami."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr "Metai turi būti 1900 arba vėlesni."
+
+#: core/validators.py:143
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Netinkama data: %s"
+
+#: core/validators.py:153
+msgid "Enter a valid time in HH:MM format."
+msgstr "Įvesk tinkamą laiką HH:MM formatu"
+
+#: core/validators.py:162
+#: newforms/fields.py:271
+msgid "Enter a valid e-mail address."
+msgstr "Įvesk tinkamą e-mailą."
+
+#: core/validators.py:178
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Atsiųsk tinkamą paveiksliuką. Failas, kurį siuntei buvo arba ne paveiksliukas, arba sugadintas paveiksliukas"
+
+#: core/validators.py:185
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s nenurodo tinkamo paveiksliuko."
+
+#: core/validators.py:189
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefono numeris turi būti XXX-XXX-XXXX formatu. \"%s\" yra netinkamas."
+
+#: core/validators.py:197
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s nenurodo tinkamo QuickTime video."
+
+#: core/validators.py:201
+msgid "A valid URL is required."
+msgstr "Tinkamas URL privalomas."
+
+#: core/validators.py:215
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Tinkamas HTML privalomas. Klaidos:\n"
+"%s"
+
+#: core/validators.py:222
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Blogai suformuotas XML: %s"
+
+#: core/validators.py:239
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Netinkamas URL: %s"
+
+#: core/validators.py:244
+#: core/validators.py:246
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s yra neveikiantis."
+
+#: core/validators.py:252
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Įvesk tinkamą JAV valstijos sutrumpinimą."
+
+#: core/validators.py:266
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Kontroliuok liežuvį! %s neleidžiamas."
+msgstr[1] "Kontroliuok liežuvį! %s neleidžiami."
+
+#: core/validators.py:273
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Šis laukas turi atitikti %s lauką."
+
+#: core/validators.py:292
+msgid "Please enter something for at least one field."
+msgstr "Nors vienam lauke kažką reikia įvesti."
+
+#: core/validators.py:301
+#: core/validators.py:312
+msgid "Please enter both fields or leave them both empty."
+msgstr "Įveskite abu laukus arba abu palikite tuščius."
+
+#: core/validators.py:320
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Šis laukas turi būti užpildytas, jei %(field)s yra %(value)s"
+
+#: core/validators.py:333
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Šis laukas turi būti užpildytas, jei %(field)s nėra %(value)s"
+
+#: core/validators.py:352
+msgid "Duplicate values are not allowed."
+msgstr "Vienodos reikšmės neleidžiamos."
+
+#: core/validators.py:367
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Ši reikšmė turi būti tarp %(lower)s ir %(upper)s."
+
+#: core/validators.py:369
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Ši reikšme mažiausiai turi būti %s."
+
+#: core/validators.py:371
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Ši reikšmė negali būti daugiau nei %s."
+
+#: core/validators.py:407
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Ši reikšmė turi būti %s laipsnis."
+
+#: core/validators.py:418
+msgid "Please enter a valid decimal number."
+msgstr "Įveskite tinkamą dešimtainį skaičių."
+
+#: core/validators.py:422
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Įveskite tinkamą dešimtainį skaičių su daugiausiai %s skaitmeniu."
+msgstr[1] "Įveskite tinkamą dešimtainį skaičių su daugiausiai %s skaitmenimis."
+
+#: core/validators.py:425
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Įveskite tinkamą dešimtainį skaičių, kurio sveikoji dalis ne didenė nei %s skaitmens."
+msgstr[1] "Įveskite tinkamą dešimtainį skaičių, kurio sveikoji dalis ne didenė nei %s skaitmenų."
+
+#: core/validators.py:428
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Įveskite tinkamą dešimtainį skaičių, kur po kablelio max %s skaitmuo."
+msgstr[1] "Įveskite tinkamą dešimtainį skaičių, kur po kablelio max %s skaitmenų."
+
+#: core/validators.py:438
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Įsitikink, kad įkeltas failas yra mažiausiai %s baitų dydžio."
+
+#: core/validators.py:439
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Įsitikink, kad įkeltas failas yra daugiausiai %s baitų dydžio."
+
+#: core/validators.py:456
+msgid "The format for this field is wrong."
+msgstr "Šis formatas yra netinkamas šiam laukui."
+
+#: core/validators.py:471
+msgid "This field is invalid."
+msgstr "Šis laukas yra netinkamas."
+
+#: core/validators.py:507
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Nieko negaliu gauti iš %s"
+
+#: core/validators.py:510
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s gražino blogą Content-Type headerį '%(contenttype)s'."
+
+#: core/validators.py:543
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Uždaryk neuždarytus %(tag)s tagus nuo %(line)s eilutės. (Pradedant \"%(start)s\" eilute.)"
+
+#: core/validators.py:547
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Kažkiek teksto pradedant %(line)s eilute nėra leidžiamas šiame kontekste. (Pradedant \"%(start)s\" eilute."
+
+#: core/validators.py:552
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" eilutėje %(line)s yra netinkamas atributas. (Pradedant \"%(start)s\" eilute.)"
+
+#: core/validators.py:557
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\" eilutėje %(line)s yra netinkami tagai. (Pradedant \"%(start)s\" eilute.)"
+
+#: core/validators.py:561
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "Eilutėje %(line)s tagui trūksta vieno ar daugiau privalomų atributų. (Pradedant \"%(start)s\" eilute.)"
+
+#: core/validators.py:566
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" atributas eilutėje %(line)s turi netinkamą reikšmę. (Pradedant \"%(start)s\" eilute.)"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s sėkmingai sukurtas."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s sėkmingai atnaujintas."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s buvo ištrintas."
+
+#: newforms/models.py:165
+#: newforms/fields.py:364
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Pasirink tinkamą. Tas pasirinkimas nėra iš galimų."
+
+#: newforms/models.py:182
+#: newforms/fields.py:380
+#: newforms/fields.py:456
+msgid "Enter a list of values."
+msgstr "Įvesk reikšmių sarašą."
+
+#: newforms/models.py:188
+#: newforms/fields.py:389
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Pasirink tinkamą. %s nėra vienas iš galimų."
+
+#: newforms/fields.py:103
+#: newforms/fields.py:256
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "Įsitikink, kad reikšmė daugiausiai turi %d simbolių."
+
+#: newforms/fields.py:105
+#: newforms/fields.py:258
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "Įsitikink, kad reikšmė mažiausiai turi %d simbolių."
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Įsitikink, kad ši reikšmė yra mažiau arba lygu %s."
+
+#: newforms/fields.py:132
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Įsitikink, kad ši reikšmė yra daugiau arba lygu %s."
+
+#: newforms/fields.py:165
+msgid "Enter a valid date."
+msgstr "Įvesk tinkamą datą."
+
+#: newforms/fields.py:192
+msgid "Enter a valid time."
+msgstr "Įvesk tinkamą laiką."
+
+#: newforms/fields.py:228
+msgid "Enter a valid date/time."
+msgstr "Įvesk tinkamą datą/laiką."
+
+#: newforms/fields.py:242
+msgid "Enter a valid value."
+msgstr "Įvesk tinkamą reikšmę."
+
+#: newforms/fields.py:289
+#: newforms/fields.py:311
+msgid "Enter a valid URL."
+msgstr "Įvesk tinkamą URL."
+
+#: newforms/fields.py:313
+msgid "This URL appears to be a broken link."
+msgstr "Atrodo URL blogas."
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "st"
+msgstr "st"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "nd"
+msgstr "nd"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milijonas"
+msgstr[1] "%(value).1f milijonas"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f milijardas"
+msgstr[1] "%(value).1f milijardas"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f trilijonas"
+msgstr[1] "%(value).1f trilijonas"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "vienas"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "du"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "trys"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "keturi"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "penki"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "šeši"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "septyni"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "aštuoni"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "devyni"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "nukreiptas (redirect) iš"
+
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Turi būti absoliutus adresas neįtraukiant domaino. Pavyzdžiui: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "nukreipti(redirect) į"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Gali būti absoliutus adresas (kaip viršuj) arba pilnas URL pradedant 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "nukreipti"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "nukreipia"
+
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:166
+msgid "object ID"
+msgstr "objekto ID"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "antraštė"
+
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "komentaras"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "reitingas #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "reitingas #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "reitingas #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "reitingas #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "reitingas #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "reitingas #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "reitingas #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "reitingas #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "tinkamas reitingas"
+
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "įvesta data/laikas"
+
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:170
+msgid "is public"
+msgstr "viešas"
+
+#: contrib/comments/models.py:85
+#: contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "IP adresas"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "pašalintas"
+
+#: contrib/comments/models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Pažymėk šį laukelį, jei komentaras netinkamas. \"Šis komentaras ištrintas\" bus rodoma."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "komentarai"
+
+#: contrib/comments/models.py:131
+#: contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Turinio objektas"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Paskelbta  %(user)s, %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "asmens vardas"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ip adresas"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "patvirtinta personalo"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "laisvas komentaras"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "laisvi komentarai"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "rezultatas"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "rezultato data"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "karma rezultatas"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "karma rezultatai"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d reitingas nuo %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Šis komentaras pažymėtas %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "pažymėjimo data"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "vartotojo žymė"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "vartotojo žymės"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Pažymėtas %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "ištrinimo data"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "moderatoriaus ištrynimas"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "moderatoriaus ištrynimai"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Moderatoriaus ištrynimas, pagal %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Neprisijungę vartotojai negali balsuoti"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "Blogas komentaro ID"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Negali balsuoti už save"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Šis reitingas privalomas nes įvedei mažiausiai vieną kitą reitingą."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Šis komentaras buvo paskelbtas vartotojo, kuris paskelbė mažiau nei %(count)s komentarą:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Šis komentaras buvo paskelbtas vartotojo, kuris paskelbė mažiau nei %(count)s komentarų:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Šis komentaras buvo paskelbtas nerimto vartotojo:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Tik POSTai yra leidžiami"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Vienas ar daugiau privalomų laukų nebuvo įrašytas"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Kažkas padirbo komentaro formą (saugumo pažeidimai)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Komentaro forma turi blogą 'target' parametrą -- objekto ID blogas"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Komentaro forma nepateikė 'preview' arba 'post'"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Vartotojo vardas:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Log out"
+msgstr "Atsijungti"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Slaptažodis:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Pamiršai slaptažodį?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Reitingas"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Privalomas"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Neprivalomas"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Įkelk nuotrauką"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentaras:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Peržiūrėti komentarą"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Jūsų vardas:"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "domeno vardas"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "rodomas vardas"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "saitas"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "saitai"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:70
+#: contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143
+#: contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Visi"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Betkokia data"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Šiandien"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Paskutinės 7 dienos"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Šį mėnesį"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Šiais metais"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "veiksmo laikas"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "objekto id"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "objekto repr"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "veiksmo žymė"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "pakeisti žinutę"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "log įrašas"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "log įrašai"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "Visos datos"
+
+#: contrib/admin/views/auth.py:19
+#: contrib/admin/views/main.py:257
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" pridėtas sėkmingai."
+
+#: contrib/admin/views/auth.py:24
+#: contrib/admin/views/main.py:261
+#: contrib/admin/views/main.py:347
+msgid "You may edit it again below."
+msgstr "Gali taisyti dar kartą žemiau."
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "Pridėti vartotoją"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "Slaptažodis pakeistas sėkmingai."
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "Pakeisti slaptažodį: %s"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Saito administracija"
+
+#: contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Gali pridėti dar vieną %s žemiau."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "Pridėti %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "Pridėtas %s."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "Pakeistas %s."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "Ištrintas %s"
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Nei vienas laukas nepakeistas"
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" buvo sėkmingai pakeistas."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" pridėtas sėkmingai. Gali taisytį jį dar kartą žemiau."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "Pakeisti %s"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Vienas arba daugiau %(fieldname)s %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Vienas arba daugiau %(fieldname)s %(name)s:"
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" sėkmingai ištrintas."
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "Ar tu tikras?"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "Pakeisti istoriją: %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "Pasirinkti %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s to change"
+msgstr "Pasirinkti %s pakeitimui"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "Duomenų bazės klaida"
+
+#: contrib/admin/views/decorators.py:10
+#: contrib/auth/forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Įveskite teisingą vartotojo vardą ir slaptažodį. Abiejuose laukuose didžiosios mažosios raidės skiriasi"
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Prisijungti"
+
+#: contrib/admin/views/decorators.py:62
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Prisijunkite dar kartą, nes sesijos laikas baigėsi. Nesirūpinkite, įrašai buvo išsaugoti."
+
+#: contrib/admin/views/decorators.py:69
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Atrodo, kad Jūsų naršyklė nepriima sausainėlių (cookies). Įjunkite sausainėlių palaikymą, perkraukite puslapį ir bandykite dar kartą."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Vartotojo vardas negali turėti '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "E-mailas nėra vartotojo vardas. Pabandyk '%s' vietoj to."
+
+#: contrib/admin/views/doc.py:46
+#: contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "tagas"
+
+#: contrib/admin/views/doc.py:77
+#: contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "filtras:"
+
+#: contrib/admin/views/doc.py:135
+#: contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "vaizdas:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "Programa %r nerasta"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Modelis %(name)r programoje %(label)r nerastas"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "susijęs `%(label)s.%(type)s` objektas"
+
+#: contrib/admin/views/doc.py:183
+#: contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219
+#: contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "modelis:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "susiję `%(label)s.%(name)s` objektai"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "visi %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "%s skaičius"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Objekto %s laukai"
+
+#: contrib/admin/views/doc.py:291
+#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303
+#: contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310
+#: contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "Sveikas skaičius"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (True arba False)"
+
+#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Eilutė (iki %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Kableliais atskirti sveikieji skaičiai"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Data (be laiko)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Data (su laiku)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "E-mailo adresas"
+
+#: contrib/admin/views/doc.py:298
+#: contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Kelias iki failo"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "Dešimtainis skaičius"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (True arba False arba None)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "Sąsaja su tėviniu modeliu"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Telefono numeris"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Tekstas"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Laikas"
+
+#: contrib/admin/views/doc.py:315
+#: contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "JAV valstija (dvi didžiosios raidės)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML tekstas"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s neatrodo kaip urlpattern objektas"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Dabartinis:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Pakeisti:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Laikas:"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentacija"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Change password"
+msgstr "Pakeisti slaptažodį"
+
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Pradinis"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Pridėti %(name)s"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Pagal %(filter_title)s "
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "Istorija"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Data/laikas"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Vartotojas"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Veiksmas"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j. N Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Šis objektas neturi pakeitimų istorijos. Tikriausiai jis buvo pridėtas ne per admin puslapį."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Eiti!"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 rezultatas"
+msgstr[1] "%(counter)s rezultatai"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s iš viso"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Rodyti visus"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django saito administravimas"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administravimas"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serverio klaida"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serverio klaida (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Serverio klaida <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Įvyko klaida. Apie ją buvo pranešta administratoriams ir turėtų būti greitai ištaisyta. Dėkojame už kantrybę."
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Kažkas yra negerai su jūsų duomenų bazės instaliacija. Įsitikink, kad visos reikalingos lentelės sukurtos ir vartotojas turi teises skaityti duomenų bazę."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelis prieinamas %(name)s programoje."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Pridėti"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Pakeisti"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Neturi teisių ką nors keistis."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Neseni veiksmai"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Mano Veiksmai"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nėra prieinamų"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Puslapis nerastas"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Atsiprašome, bet prašytas puslapis nerastas."
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtras"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Matyti saite"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Ištaisykite klaidą žemiau"
+msgstr[1] "Ištaisykite klaidas žemiau"
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Rūšiavimas"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Rūšiuoti:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Ištrinti"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Trinant %(object_name)s '%(escaped_object)s' turi būti ištrinti ir susiję objektai, bet tavo vartotojas neturi teisių ištrinti šių objektų:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Ar tu esi tikras, kad nori ištrinti %(object_name)s \"%(escaped_object)s\"? Visi susiję objektai bus ištrinti:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Taip, aš esu tikras"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Sveiki,"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Išsaugoti kaip naują"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Išsaugoti ir pridėti naują"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Išsaugoti ir tęsti redagavimą"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Išsaugoti"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Įvesk naują slaptažodį vartotojui <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "Slaptažodis"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "Slaptažodis (dar kartą)"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "Patikrinimui įvesk tokį patį slaptažodį, kaip viršuje."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Pirmiausi įvesk vartotojo vardą ir slaptažodį. Tada turėsi galimybę redaguoti daugiau nustatymų."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Vartotojo vardas"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Slaptažodžio keitimas"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Slaptažodis sėkmingai pakeistas"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Jūsų slaptažodis buvo pakeistas."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Slaptažodžiu atstatymas(reset)"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Pamiršai slaptažodį? Įvesk savo emailą žemiau ir mes atsiųsime naują slaptažodį emailu."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mailo adresas:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Atstatyti slaptažodį"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Dėkui už praleistą laiką šiandien."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Prisijungti dar kartą"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Slaptažodis sėkmingai atsatytas"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Išsiuntėm naują slaptažodį e-mailu. Turėtumėte greitai gauti."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Saugumo sumetimais įvesk seną slaptažodį ir tada du kartus naują, kad įsitikinti, jog nesuklydai rašydamas"
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Senas slaptažodis:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Naujas slaptažodis:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Slaptažodžio patvirtinimas:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Pakeisti slaptažodį"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Gavote šį laišką, nes paprašėte atstatyti slaptažodį"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "Jūsų vartotojui %(site_name)s saite"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Jūsų naujas slaptažodis yra: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Nebijokite pasikeisti šį slaptažodį puslapyje:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Jūsų vartotojo vardas, jei netyčia užmiršote:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Dėkui, kad naudojatės mūsų saitu!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s komanda"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Greitosios žymės"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Doumentacijos greitosios žymės"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Greitųjų žymių įdiegimui, nutempkite nuorodą į greitųjų žymių\n"
+"juostą, arba spauskite dešinį pelės klavišą ir pridėkite prie greitųjų žymių. Dabar galite\n"
+"pasirinkti greitąją žymę iš bet kurio saito puslapio. Pastebėjimas, kad keletas iš šių\n"
+"greitųjų žymių reikalauja, kad saitas būtų žiūrimas iš vidinio kompiuterio \n"
+"(pasitarkite su administratorium, jei nežinai ar tavo kompiuteris yra vidinis).</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Šio puslapio dokumentacija"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Pereina iš bet kurio puslapio į jo view funkcijos dokumentaciją, kuri sukūria tą puslapį"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Parodyti objekto ID"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Parodyti content-type ir unikalų puslapių ID, kuris parodo vieną objektą."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Redaguoti šį objektą (einamajame lange)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Pereina į administravimo puslapį, kuris parodo vieną objektą."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Redaguoti šį objektą (naujame lange)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Kaip ir viršuje, bet administravimo puslapį atidaro naujame lange."
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "python modelio klasės vardas"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "turinio tipas"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "turinio tipai"
+
+#: contrib/auth/views.py:40
+msgid "Logged out"
+msgstr "Atsijungęs"
+
+#: contrib/auth/models.py:44
+#: contrib/auth/models.py:64
+msgid "name"
+msgstr "vardas"
+
+#: contrib/auth/models.py:46
+msgid "codename"
+msgstr "kodinis vardas"
+
+#: contrib/auth/models.py:49
+msgid "permission"
+msgstr "leidimas"
+
+#: contrib/auth/models.py:50
+#: contrib/auth/models.py:65
+msgid "permissions"
+msgstr "leidimai"
+
+#: contrib/auth/models.py:68
+msgid "group"
+msgstr "grupė"
+
+#: contrib/auth/models.py:69
+#: contrib/auth/models.py:109
+msgid "groups"
+msgstr "grupės"
+
+#: contrib/auth/models.py:99
+msgid "username"
+msgstr "vartotojo vardas"
+
+#: contrib/auth/models.py:99
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Privalomas. 30 simbolių arba mažiau. Alfanumeriniai simboliai tik (raidės, skaitmenys ir pabraukimai)"
+
+#: contrib/auth/models.py:100
+msgid "first name"
+msgstr "vardas"
+
+#: contrib/auth/models.py:101
+msgid "last name"
+msgstr "pavardė"
+
+#: contrib/auth/models.py:102
+msgid "e-mail address"
+msgstr "e-mailo adresas"
+
+#: contrib/auth/models.py:103
+msgid "password"
+msgstr "slaptažodis"
+
+#: contrib/auth/models.py:103
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "Naudok '[algo]$[salt]$[hexdigest]' arba naudok <a href=\"password/\">slaptažodžio keitimo formą</a>."
+
+#: contrib/auth/models.py:104
+msgid "staff status"
+msgstr "personalo statusas"
+
+#: contrib/auth/models.py:104
+msgid "Designates whether the user can log into this admin site."
+msgstr "Pažymi ar vartotojas gali prisijungti prie administravimo puslapio."
+
+#: contrib/auth/models.py:105
+msgid "active"
+msgstr "aktyvus"
+
+#: contrib/auth/models.py:105
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "Pažymi ar šis vartotojas gali prisijungti prie Django administravimo. Nepažymėk šios lauko, vietoj vartotojo trynimo."
+
+#: contrib/auth/models.py:106
+msgid "superuser status"
+msgstr "supervartotojo statusas"
+
+#: contrib/auth/models.py:106
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Pažymi, kad šis vartotojas turi visas teises be specialių nustatymų."
+
+#: contrib/auth/models.py:107
+msgid "last login"
+msgstr "paskutinį kartą prisijungęs"
+
+#: contrib/auth/models.py:108
+msgid "date joined"
+msgstr "data, kada prisijungė"
+
+#: contrib/auth/models.py:110
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Prie rankiniu būdų priskirtų teisių, šis vartotojas taip pat gaus visas teises, kurias turi grupės, kurioms jis priklauso."
+
+#: contrib/auth/models.py:111
+msgid "user permissions"
+msgstr "vartotojo leidimai"
+
+#: contrib/auth/models.py:115
+msgid "user"
+msgstr "vartotojas"
+
+#: contrib/auth/models.py:116
+msgid "users"
+msgstr "vartotojai"
+
+#: contrib/auth/models.py:122
+msgid "Personal info"
+msgstr "Asmeninė informacija"
+
+#: contrib/auth/models.py:123
+msgid "Permissions"
+msgstr "Leidimai"
+
+#: contrib/auth/models.py:124
+msgid "Important dates"
+msgstr "Svarbios datos"
+
+#: contrib/auth/models.py:125
+msgid "Groups"
+msgstr "Grupės"
+
+#: contrib/auth/models.py:269
+msgid "message"
+msgstr "žinutė"
+
+#: contrib/auth/models.py:282
+msgid "AnonymousUser"
+msgstr "Anoniminis vartotojas"
+
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Slaptažodžio laukai nesutapo"
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Jau egzistuoja vartotojas su tokiu vardu."
+
+#: contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Atrodo, jūsų naršyklė nepriima sausainėlių(cookies). Sausainėliai yra reikalingi norint prisijungti."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Ši paskyra yra neaktyvi."
+
+#: contrib/auth/forms.py:85
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Šis emailas nėra registruotas sistemoje. Ar esi tikras, kad tu užsiregistravęs?"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Naujo slaptažodžio laukai nesutapo"
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Blogai įvestas senas slaptažodis. Bandykite dar kartą."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "Įveskite pašto kodą. Tarpas reikalingas tarp dviejų pašto kodo dalių."
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Įveskite pašto kodą XXXXX-XXX formatu."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefonas turi būti XXX-XXXX-XXXX formatu."
+
+#: contrib/localflavor/br/forms.py:72
+msgid "This field requires only numbers."
+msgstr "Šis laukas priima tik skaičius."
+
+#: contrib/localflavor/br/forms.py:74
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Šis laukas talpina daugiausiai 11 skaitmenų arba 14 simbolių."
+
+#: contrib/localflavor/br/forms.py:84
+msgid "Invalid CPF number."
+msgstr "Netinkamas CPF numeris"
+
+#: contrib/localflavor/br/forms.py:106
+msgid "This field requires at least 14 digits"
+msgstr "Šis laukas reikalauja mažiausiai 14 skaitmenų."
+
+#: contrib/localflavor/br/forms.py:116
+msgid "Invalid CNPJ number."
+msgstr "Netinkamas CNPJ numeris"
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "Įveskite 4 skaitmenų pašto kodą."
+
+#: contrib/localflavor/fr/forms.py:17
+#: contrib/localflavor/de/forms.py:16
+#: contrib/localflavor/fi/forms.py:14
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Įveskite pašto kodą XXXXX formatu."
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Įveskite pašto kodą XXXXX arba XXXXX-XXXX formatu."
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Įveskite tinkamą JAV socialinio draudimo numerį."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavarija"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlynas"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburgas"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremenas"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburgas"
+
+#: contrib/localflavor/de/de_states.py:11
+#, fuzzy
+msgid "Hessen"
+msgstr "Hesenas"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saksonija"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:60
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Įveskite tinkamą Vokiško asmens id numerį XXXXXXXXXXX-XXXXXXX-XXXXXXX-X formatu."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokaidas"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+#, fuzzy
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokijas"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+#, fuzzy
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hirošima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+#, fuzzy
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinava"
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Įveskite pašto kodą XXXXXXX arba XXX-XXXX formatu."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+#, fuzzy
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+#, fuzzy
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+#, fuzzy
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+#, fuzzy
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+#, fuzzy
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:18
+#: contrib/localflavor/no/forms.py:15
+msgid "Enter a zip code in the format XXXX."
+msgstr "Įveskite pašto kodą XXXX formatu."
+
+#: contrib/localflavor/ch/forms.py:90
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Įveskite tinkamą šveicarų asmens id ar paso numerį X1234567<0 arba 1234567890 formatu."
+
+#: contrib/localflavor/is_/forms.py:16
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Įveskite tinkamą islandų asmens id numerį XXXXXX-XXXX formatu."
+
+#: contrib/localflavor/is_/forms.py:30
+msgid "The Icelandic identification number is not valid."
+msgstr "Islandiškas asmend id yra netinkamas."
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Įveskite tinkamą pašto kodą."
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "Įveskite tinkamą socialinio draudimo numerį."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Įveskite tinkamą PVM numerį"
+
+#: contrib/localflavor/no/forms.py:36
+msgid "Enter a valid Norwegian social security number."
+msgstr "Įveskite tinkamą norvegiška socialinio draudimo numerį."
+
+#: contrib/localflavor/cl/forms.py:21
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Įveskite tinkamą Čilės RUT XX.XXX.XXX-X formatu."
+
+#: contrib/localflavor/cl/forms.py:26
+msgid "Enter valid a Chilean RUT"
+msgstr "Įveskite tinkamą Čilės RUT"
+
+#: contrib/localflavor/fi/forms.py:40
+#: contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr "Įveskite tinkamą suomišką socialinio draudimo numerį."
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "sesijos raktas"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "sesijos data"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "galiojima data"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "sesija"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "sesijos"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Pavyzdžiui: '/about/contact/'. Įsitikink, kad yra pasvirieji brūkšniai pradžioj ir gale."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "pavadinimas"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "turinys"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "įjungti komentavimą"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "šablono vardas"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Pavyzdžiui: 'flatpages/contact_page.html'. Jeigu bus nenurodytas, sistema naudos 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "registracija privaloma"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Jeigu pažymėta, tik prisijungę vartotojai galės matyti šį puslapį."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "paprastas puslapis"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "paprasti puslapiai"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Pirmadienis"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Antradienis"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Trečiadienis"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Ketvirtadienis"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Penktadienis"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Šeštadienis"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Sekmadienis"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Sausis"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Vasaris"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "March"
+msgstr "Kovas"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "April"
+msgstr "Balandis"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "May"
+msgstr "Gegužė"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "June"
+msgstr "Birželis"
+
+#: utils/dates.py:15
+#: utils/dates.py:27
+msgid "July"
+msgstr "Liepa"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Rugpjūtis"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Rugsėjis"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Spalis"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Lapkritis"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Gruodis"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "sau"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "vas"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "kov"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "bal"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "geg"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "bir"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "lie"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "rugp"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "rugs"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "spa"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "lap"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "grd"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "Sau."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "Vas."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "Rugp."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Rugs."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "Spa."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "Lap."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "Grd."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "metai"
+msgstr[1] "metai"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mėnesis"
+msgstr[1] "mėnesiai"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "savaitė"
+msgstr[1] "savaitės"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "diena"
+msgstr[1] "dienos"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "valanda"
+msgstr[1] "valandos"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minutė"
+msgstr[1] "minutės"
+
+#: utils/timesince.py:40
+#, python-format
+msgid "%d milliseconds"
+msgstr "%d milisekundės"
+
+#: utils/timesince.py:41
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:47
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/dateformat.py:40
+#, fuzzy
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:41
+#, fuzzy
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:46
+#, fuzzy
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:47
+#, fuzzy
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "vidurnaktis"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "vidurdienis"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "DATE_FORMAT"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "DATETIME_FORMAT"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "TIME_FORMAT"
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "taip,ne,galbūt"
+
+#: template/defaultfilters.py:520
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d baitas"
+msgstr[1] "%(size)d baitai"
+
+#: template/defaultfilters.py:522
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:524
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:525
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
diff --git a/webapp/django/conf/locale/lt/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/lt/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..d703bfb
--- /dev/null
+++ b/webapp/django/conf/locale/lt/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/lt/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/lt/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..81d6988
--- /dev/null
+++ b/webapp/django/conf/locale/lt/LC_MESSAGES/djangojs.po
@@ -0,0 +1,116 @@
+# Lithuanian translation of Django.
+# Copyright (C) 2008 The Django Software Foundation
+# This file is distributed under the same license as the Django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-06-15 23:03+0300\n"
+"PO-Revision-Date: 2008-06-18 22:37+0200\n"
+"Last-Translator: Rapolas Kaselis <rapolas@gmail.com>\n"
+"Language-Team: Django-i18n <django-i18n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Galimas %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Pasirinkti visus"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Pridėti"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Pašalinti"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Pasirinktas %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Pasirink ir paspausk"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Išvalyti visus"
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "Sausis Vasaris Kovas Balandis Gegužė Birželis Liepa Rugpjūtis Rugsėjis "
+"Spalis Lapkritis Gruodis"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Sekmadienis Pirmadienis Antradienis Trečiadienis Ketvirtadienis Penktadienis Šeštadienis"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S P A T K P Š"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Dabar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Laikrodis"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Pasirink laiką"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Vidurnaktis"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Vidurdienis"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Atšaukti"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Šiandien"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalendorius"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Vakar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Rytoj"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Parodyti"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Slėpti"
diff --git a/webapp/django/conf/locale/lv/LC_MESSAGES/django.mo b/webapp/django/conf/locale/lv/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..ad9bf70
--- /dev/null
+++ b/webapp/django/conf/locale/lv/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/lv/LC_MESSAGES/django.po b/webapp/django/conf/locale/lv/LC_MESSAGES/django.po
new file mode 100644
index 0000000..c6541d2
--- /dev/null
+++ b/webapp/django/conf/locale/lv/LC_MESSAGES/django.po
@@ -0,0 +1,2864 @@
+# Django Latvian translation.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# , fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-05-07 23:28+0300\n"
+"PO-Revision-Date: 2007-05-08 00:35+0300\n"
+"Last-Translator: Gatis Tomsons <gatis.tomsons@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: oldforms/__init__.py:357
+#: db/models/fields/__init__.py:117
+#: db/models/fields/__init__.py:274
+#: db/models/fields/__init__.py:612
+#: db/models/fields/__init__.py:623
+#: newforms/models.py:178
+#: newforms/fields.py:80
+#: newforms/fields.py:376
+#: newforms/fields.py:452
+#: newforms/fields.py:463
+msgid "This field is required."
+msgstr "Šis lauks ir obligāts."
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "Pārnešana jaunā rindā šeit nav atļauta."
+
+#: oldforms/__init__.py:498
+#: oldforms/__init__.py:571
+#: oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "Nezināms"
+
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "Jā"
+
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "Nē"
+
+#: oldforms/__init__.py:672
+#: core/validators.py:174
+#: core/validators.py:445
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "Jūsu norādītais fails ir tukšs."
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Ievadiet veselu skaitli intervālā no -32,768 līdz 32,767."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "Ievadiet pozitīvu skaitli."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Ievadiet veselu skaitli intervāla starp 0 un 32,767."
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+
+#: db/models/manipulators.py:308
+#: contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
+msgid "and"
+msgstr "un"
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:369
+msgid "This value must be an integer."
+msgstr "Vērtībai ir jābūt veselam skaitlim."
+
+#: db/models/fields/__init__.py:404
+msgid "This value must be either True or False."
+msgstr "Vērtībai jābūt True vai False."
+
+#: db/models/fields/__init__.py:425
+msgid "This field cannot be null."
+msgstr "Šis lauks nevar būt null"
+
+#: db/models/fields/__init__.py:459
+#: core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Ievadiet korektu datumu YYYY-MM-DD formātā."
+
+#: db/models/fields/__init__.py:528
+#: core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Ievadiet korektu datumu/laiku YYYY-MM-DD HH:MM formātā."
+
+#: db/models/fields/__init__.py:632
+msgid "Enter a valid filename."
+msgstr "Ievadiet korektu faila vārdu."
+
+#: db/models/fields/__init__.py:753
+msgid "This value must be either None, True or False."
+msgstr "Šai vērtībai jābūt None, True vai False."
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Lūdzu ievadiet korektu %s"
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Atdaliet vairākus ID ar komatiem."
+
+#: db/models/fields/related.py:644
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+msgstr[1] ""
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arābu"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengāļu"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr ""
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "Čehu"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "Velsas"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "Dāņu"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "Vācu"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "Grieķu"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "Angļu"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "Spaņu"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "Argentīniešu Spāņu"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "Somu"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "Franču"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "Galīciešu"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "Ungāru"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr ""
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "Islandiešu"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "Itāļu"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "Japāņu"
+
+#: conf/global_settings.py:58
+msgid "Korean"
+msgstr "Koreiešu"
+
+#: conf/global_settings.py:59
+msgid "Kannada"
+msgstr "Kanāda"
+
+#: conf/global_settings.py:60
+msgid "Latvian"
+msgstr "Latviešu"
+
+#: conf/global_settings.py:61
+msgid "Macedonian"
+msgstr "Maķedoniešu"
+
+#: conf/global_settings.py:62
+msgid "Dutch"
+msgstr "Dāņu"
+
+#: conf/global_settings.py:63
+msgid "Norwegian"
+msgstr "Norvēģu"
+
+#: conf/global_settings.py:64
+msgid "Polish"
+msgstr "Poļu"
+
+#: conf/global_settings.py:65
+msgid "Portugese"
+msgstr "Portugāļu"
+
+#: conf/global_settings.py:66
+msgid "Brazilian"
+msgstr "Brazīliešu"
+
+#: conf/global_settings.py:67
+msgid "Romanian"
+msgstr "Rumāņu"
+
+#: conf/global_settings.py:68
+msgid "Russian"
+msgstr "Krievu"
+
+#: conf/global_settings.py:69
+msgid "Slovak"
+msgstr "Slovāku"
+
+#: conf/global_settings.py:70
+msgid "Slovenian"
+msgstr "Slovēņu"
+
+#: conf/global_settings.py:71
+msgid "Serbian"
+msgstr "Serbu"
+
+#: conf/global_settings.py:72
+msgid "Swedish"
+msgstr "Zviedru"
+
+#: conf/global_settings.py:73
+msgid "Tamil"
+msgstr "Tamiliešu"
+
+#: conf/global_settings.py:74
+msgid "Telugu"
+msgstr "Telugu"
+
+#: conf/global_settings.py:75
+msgid "Turkish"
+msgstr "Turku"
+
+#: conf/global_settings.py:76
+msgid "Ukrainian"
+msgstr "Ukraiņu"
+
+#: conf/global_settings.py:77
+msgid "Simplified Chinese"
+msgstr "Vienkāršā ķīniešu"
+
+#: conf/global_settings.py:78
+msgid "Traditional Chinese"
+msgstr "Tradicionālā ķīniešu"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Šī vērtība var saturēt tikai burtus, numurus un apakšsvītras."
+
+#: core/validators.py:68
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Šī vērtība var saturēt tikai burtus, numurus un apakšsvītras, svītras vai šķērssvītras."
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Šī vērtība var saturēt tikai burtus, numurus un apakšsvītras vai šķērssvītras."
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "Augšējā reģistra burti nav atļauti."
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "Apakšējā reģistra burti nav atļauti."
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "Ievadiet tikai numurus, kas atdalīti ar komatiem."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Ievadiet korektas e-pasta adreses, kas atdalītas ar komatiem."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "Lūdzu ievadiet korektu IP adresi."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "Tukšas vērtības nav atļautas."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Ne ciparu simboli nav atļauti."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "Šī vērtība nevar saturēt tikai ciparus."
+
+#: core/validators.py:120
+#: newforms/fields.py:128
+msgid "Enter a whole number."
+msgstr "Ievadiet veselus skaitļus."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "Atļauti tikai alfabētiskie simboli."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr "Gadam jabūt 1900 vai vēlākam."
+
+#: core/validators.py:143
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Nekorekts datums: %s"
+
+#: core/validators.py:153
+msgid "Enter a valid time in HH:MM format."
+msgstr "Ievadiet korektu laiku HH:MM formātā"
+
+#: core/validators.py:162
+#: newforms/fields.py:271
+msgid "Enter a valid e-mail address."
+msgstr "Ievadiet korektu e-pasta adresi."
+
+#: core/validators.py:178
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Augšupielādējiet korektu attēlu. Fails, ko Jūs augšupielādējāt nav attēls vai arī bojāts attēla fails."
+
+#: core/validators.py:185
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s nesatur korektu attēlu."
+
+#: core/validators.py:189
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefona numuriem jābūt XXX-XXX-XXXX formātā. \"%s\" is nekorekts."
+
+#: core/validators.py:197
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s nenorāda uz korektu QuickTime video."
+
+#: core/validators.py:201
+msgid "A valid URL is required."
+msgstr "Reāls URL obligāts."
+
+#: core/validators.py:215
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Korekts HTML ir obligāts. Specifiskās kļūdas:\n"
+"%s"
+
+#: core/validators.py:222
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Slikti formēts XML: %s"
+
+#: core/validators.py:239
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Nekorekts URL: %s"
+
+#: core/validators.py:244
+#: core/validators.py:246
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s ir salauzta saite."
+
+#: core/validators.py:252
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Ievadiet korektu ASV štata abriviatūru."
+
+#: core/validators.py:266
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Seko saviem vārdiem! Vārds %s nav atļauts šeit."
+msgstr[1] "Seko saviem vārdiem! Vārdi %s nav atļauts šeit."
+
+#: core/validators.py:273
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Laukam jāsaskan ar %s lauku."
+
+#: core/validators.py:292
+msgid "Please enter something for at least one field."
+msgstr "Lūdzu ievadiet kaut ko vismaz vienā laukā."
+
+#: core/validators.py:301
+#: core/validators.py:312
+msgid "Please enter both fields or leave them both empty."
+msgstr "Lūdzu ievadiet abus laukus vai atstājiet abus tukšus."
+
+#: core/validators.py:320
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Šis lauks ir jāaizpilda, ja %(field)s ir vienāds %(value)s"
+
+#: core/validators.py:333
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Šis lauks ir jāaizpilda, ja %(field)s nav vienāds %(value)s"
+
+#: core/validators.py:352
+msgid "Duplicate values are not allowed."
+msgstr "Duplicētas vērtības nav atļautas."
+
+#: core/validators.py:367
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Šai vērtībai jābūt starp %(lower)s un %(upper)s."
+
+#: core/validators.py:369
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Šai vērtībai jābūt vismaz %s."
+
+#: core/validators.py:371
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Šai vērtība nedrīkst pārsniegt %s."
+
+#: core/validators.py:407
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Šai vērtībai jābūt %s pakāpei."
+
+#: core/validators.py:418
+msgid "Please enter a valid decimal number."
+msgstr "Lūdzu ievadiet korektu decimālu numuru."
+
+#: core/validators.py:422
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Lūdzu ievadiet korektu decimālu numuru ar maksimālu ciparu skaitu %s."
+msgstr[1] "Lūdzu ievadiet korektu decimālu numuru ar maksimālu ciparu skaitu %s."
+
+#: core/validators.py:425
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Lūdzu ievadiet korektu decimālu numuru ar maksimālu ciparu skaitu %s."
+msgstr[1] "Lūdzu ievadiet korektu decimālu numuru ar maksimālu ciparu skaitu %s."
+
+#: core/validators.py:428
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Lūdzu ievadiet korektu decimālu numuru ar maksimālu ciparu skaitu aiz komata %s."
+msgstr[1] "Lūdzu ievadiet korektu decimālu numuru ar maksimālu ciparu skaitu aiz komata %s."
+
+#: core/validators.py:438
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Pārliecinieties, ka jūsu augšupielādētais fails ir vismaz %s baiti liels."
+
+#: core/validators.py:439
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Pārliecinieties, ka jūsu augšupielādētais fails ir maksimums %s baiti liels."
+
+#: core/validators.py:456
+msgid "The format for this field is wrong."
+msgstr "Šī faila formāts ir nekorekts."
+
+#: core/validators.py:471
+msgid "This field is invalid."
+msgstr "Šis lauks ir nekorekts."
+
+#: core/validators.py:507
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Nevar neko no %s"
+
+#: core/validators.py:510
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s atgrieza nekorektu Content-Type headeri '%(contenttype)s'."
+
+#: core/validators.py:543
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Lūdzu aiztaisiet neaiztaisīto %(tag)s tagu no rindas nr %(line)s. (Rinda sākas ar \"%(start)s\".)"
+
+#: core/validators.py:547
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:552
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:557
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:561
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:566
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr ""
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s tika veiksmīgi izveidots."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s tika veiksmīgi dzēsts."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s tika dzēsts."
+
+#: newforms/models.py:165
+#: newforms/fields.py:364
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Izvēlaties pareizu izvēli. Jūsu izvēlētais objekts neietilpst pieejamo sarakstā."
+
+#: newforms/models.py:182
+#: newforms/fields.py:380
+#: newforms/fields.py:456
+msgid "Enter a list of values."
+msgstr "Ievadiet sarakstu ar vērtībām."
+
+#: newforms/models.py:188
+#: newforms/fields.py:389
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Izvēlieties pareizu izvēli. %s nav pieejamo izvēļu sarakstā."
+
+#: newforms/fields.py:103
+#: newforms/fields.py:256
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "Vērtībai jasatur ne vairāk, kā %d rakstzīmju."
+
+#: newforms/fields.py:105
+#: newforms/fields.py:258
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "Vērtībai jasatur vismaz %d rakstzīmju."
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Šai vērtībai jabūt mazākai vai vienādai ar %s."
+
+#: newforms/fields.py:132
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Vērtībai jabūt lielākai vai vienādai ar %s."
+
+#: newforms/fields.py:165
+msgid "Enter a valid date."
+msgstr "Ievadiet korektu datumu."
+
+#: newforms/fields.py:192
+msgid "Enter a valid time."
+msgstr "Ievadiet korektu laiku."
+
+#: newforms/fields.py:228
+msgid "Enter a valid date/time."
+msgstr "Ievadiet korektu datumu/laiku."
+
+#: newforms/fields.py:242
+msgid "Enter a valid value."
+msgstr "Ievadiet korektu vērtību."
+
+#: newforms/fields.py:289
+#: newforms/fields.py:311
+msgid "Enter a valid URL."
+msgstr "Ievadiet korektu adresi."
+
+#: newforms/fields.py:313
+msgid "This URL appears to be a broken link."
+msgstr "Šī adrese ir bojāta."
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "st"
+msgstr "saits"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "nd"
+msgstr "un"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "viens"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "divi"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "trīs"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "četri"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "pieci"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "seši"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "septiņi"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "astoņi"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "deviņi"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "novirzīt(redirect) no"
+
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Tam jābūt absolūtajam ceļam, ieskaitot domēna vārdu. Piemēram: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "novirzīt(redirect) uz"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Tas ir vai nu absolūtais ceļš (kā pirms tam) vai pilnais URL, kas sākas ar 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "novirzīt"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "novirzījumi"
+
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:166
+msgid "object ID"
+msgstr "objekta ID"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "virsraksts"
+
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "komentārs"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "reitings #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "reitings #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "reitings #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "reitings #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "reitings #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "reitings #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "reitings #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "reitings #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "korekts reitings"
+
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "ievietošanas datums/laiks"
+
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:170
+msgid "is public"
+msgstr "publisks"
+
+#: contrib/comments/models.py:85
+#: contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "IP adrese"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "idzēsts"
+
+#: contrib/comments/models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Atķeksējiet, ja komentārs ir neatbilstošs. Paziņojums A \"Šis komentārs ir izdzēsts\" tiks parādīts tai vietā."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "komentāri"
+
+#: contrib/comments/models.py:131
+#: contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Satura objekts"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Pievienojis  %(user)s, %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "personas vārds"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ip adrese"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "apstiprinājusi administrācija"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "brīvais komentārs"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "brīvie komentāri"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "rezultāts"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "rezultāta datums"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "karmas rezultāts"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "karmas rezultāti"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d reitingu publicējis %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Šo komentāru atzīmējis %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "atzīmēšanas datums"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "lietotāja atzīme"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "lietotāja atzīmes"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Atzīmējis %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "dzēšanas datums"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "moderācijas dzēšana"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "moderācijas dzēšanas"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Moderācijas dzēšana, veicis %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Anonīmie lietotāji nedrīkst balsot"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "Invalīds komentāru ID"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Nedrīkst balsot par sevi"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Šis reiting ir obligāts jo Jūs ievietojāt vismaz vienu citu reitingu."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Šo komentāru ir ievietojis lietotājs, kas ievietojis mazāk kā %(count)s komentāru:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Šo komentāru ir ievietojis lietotājs, kas ievietojis mazāk kā %(count)s komentārus:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Šo komentāru ieviejis paviršs lietotājs:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Atļauti tikai POST izsaukumi"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Viens vai vairāki pieprasītie lauki netika ievadīti"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Kāds ir iejaucies komentāru formā (drošības traucējums)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Komentāru forma ir nekorekts 'target' parametrs -- objekta ID bija nepareizs"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Komentāru forma nenodrošināja 'preview' vai 'post'"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Lietotāja vārds:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Log out"
+msgstr "Izlogoties"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Parole:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Esat aizmirsis savu paroli?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Reitings"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Pieprasīts"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Neobligāts"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Ievietojiet fotogrāfiju"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentārs:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Pirmsskatīt komentāru"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Jūsu vārds:"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "domēna vārds"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "izvadāmais vārds"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "saits"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "saiti"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:70
+#: contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143
+#: contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Visi"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Jebkuršs datums"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Šodien"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Pēdējās 7 dienas"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Šomēnes"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Šogad"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "darbības laiks"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "objekta id"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "objekta attēlojunms"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "darbības atzīme"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "momainīt paziņojumu"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "žurnāla ieraksts"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "žurnāla ieraksti"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "Visi datumi"
+
+#: contrib/admin/views/auth.py:19
+#: contrib/admin/views/main.py:257
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" pievienots sekmīgi."
+
+#: contrib/admin/views/auth.py:24
+#: contrib/admin/views/main.py:261
+#: contrib/admin/views/main.py:347
+msgid "You may edit it again below."
+msgstr "Jūs varat labot to atkal zemāk."
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "Pievienot lietotāju"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "Paroles maiņa notikusi veiksmīgi."
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "Paroles maiņa: %s"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Saita administrācija"
+
+#: contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Jūs varat pievienot vēl vienu %s zemāk."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "Pievienot %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "Pievienots %s."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "Izmainīts %s."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "Izdzēsts %s"
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Neviens lauks nav izmainīts"
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" nomainīts sekmīgi."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" pievienots sekmīgi. Jūs to varat regiģēt zemāk."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "Izmainīt %s"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr ""
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" sekmīgi izdzēsts."
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "Vai esat pārliecināts?"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "Izmainīt vēsturi: %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "Izvēlēties %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s to change"
+msgstr "Izvēlēties %s lai izmainītu"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "Datubāzes kļūda"
+
+#: contrib/admin/views/decorators.py:10
+#: contrib/auth/forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Lūdzu ievadiet lietotājvārdu un paroli. Atceraties ka abi lauki ir reģistrjūtīgi."
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Pieslēdzieties"
+
+#: contrib/admin/views/decorators.py:62
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Lūdzu pieslēdzieties vēlreiz, jo jūsu sesija ir novecojusi. Neuztraucieties: Jūsu ievadītie dati ir saglabāti."
+
+#: contrib/admin/views/decorators.py:69
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Izskatās, ka Jūsu pārlūks neatbalsta sīkdatnes (cookies). Lūdzu ieslēdziet sīkdatņu atbalstu, pārlādējiet lapu un mēģiniet vēlreiz."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Lietotājvārdi nevar saturēt simbolu '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Jūsu e-pasta adrese nav jūsu lietotājvārds. Lietojiet '%s' tā vietā."
+
+#: contrib/admin/views/doc.py:46
+#: contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:77
+#: contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "filtrs:"
+
+#: contrib/admin/views/doc.py:135
+#: contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "skats:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "Aplikācija %r netika atrasta"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr ""
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr ""
+
+#: contrib/admin/views/doc.py:183
+#: contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219
+#: contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "modelis:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "saistītie `%(label)s.%(name)s` objekti"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "visi %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr ""
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr ""
+
+#: contrib/admin/views/doc.py:291
+#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303
+#: contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310
+#: contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "Vesels skaitlis"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (Pareizs vai Nepareizs)"
+
+#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Virkne (līdz pat %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Ar komatu atdalīti veselie skaitļi"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Datums (bez laika)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Datums (ar laiku)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "E-pasta adrese"
+
+#: contrib/admin/views/doc.py:298
+#: contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Faila ceļš"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "Decimāls skaitlis"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Loģiskais (Pareizs vai Nepareizs)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "Relācija uz vecāka modeli"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Telefona numurs"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Teksts"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Laiks"
+
+#: contrib/admin/views/doc.py:315
+#: contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "ASV štats (divi augšējā reģistra burti)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML teksts"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr ""
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Patreiz:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Nomainīt:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Datums:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Laiks:"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentācija"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Change password"
+msgstr "Paroles maiņa"
+
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Sākums"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Pievienot %(name)s"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Pēc %(filter_title)s "
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "Vēsture"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Datums/laiks"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Lietotājs"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "darbība"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j. N Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Šim objektam nav izmaiņu vēsture. Tas visdrīzāk nav pievienots izmantojot administrācijas saitu."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Aiziet!"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr ""
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Rādīt visu"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django saita administrācija"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administrēšana"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Servera kļūda"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Servera kļūda (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Servera kļūda <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Ir notikusi kļūda. Tas ir paziņots saita administratoriem ar e-pasta starpniecību un visdrīzākajā laikā tiks izlabots. Paldies par sapratni."
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Kaut kas nav kārtībā ar Jūsu datubāzes instalāciju. Pārliecinieties vai attiecīgās tabulas ir izveidotas un attiecīgajam lietotājam ir tiesības lasīt datubāzi."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modeļi, kas pieejami %(name)s aplikācijā."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Pievienot"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Izmainīt"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Jums nav tiesības jebko labot."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Nesenās darbības"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Manas darbības"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nav pieejams"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Lapa nav atrasta"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Mēs atvainojamies, bet pieprasītā lapa nevar tikt atrasta."
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtrs"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Apskatīt saitā"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Lūdzu izlabojiet kļūdu zemāk"
+msgstr[1] "Lūdzu izlabojiet kļūdas zemāk"
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Sakārtošana"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Sakārtojums:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Dzēst"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Izdzēšot objektu %(object_name)s '%(escaped_object)s' tiks dzēsti visi saistītie objekti , bet Jums nav tiesību dzēst sekojošus objektu tipus:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Vai esat pārliecināts, ka vēlaties dzēst %(object_name)s \"%(escaped_object)s\"? Tiks dzēsti  asrī sekojoši saistītie objekti:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Jā, es esmu pārliecināts"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Sveicināti,"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Saglabāt kā jaunu"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Saglabāt un pievienot vēl vienu"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Saglabāt un turpināt labošanu"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Saglabāt"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Ievadiet jaunu paroli lietotājam <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "Parole"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "Parole (vēlreiz)"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "Ievadot tādu pašu paroli, kā augstāk, pārbaudei."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Lietotāja vārds"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Paroles maiņa"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Paroles nomaiņa sekmīga"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Jūsu parole ir nomainīta."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Paroles pārstatīšana(reset)"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Esat aizmirsuši savu paroli? Ievadiet e-pasta adresi zemāk un mēs pārstatīsim Jūsu paroli un aizsūtīsim jaunu pa e-pastu."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-pasta adrese:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Paroles pārstatīšana"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Paldies par pavadīto laiku māja lapā."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Pieslēgties vēlreiz"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Paroles pārstatīšana sekmīga"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Mēs aizsūtījām pa e-pastu jaunu paroli, ko Jūs esat apstiprinājis. Jūs to drīzumā saņemsiet."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Drošības nolūkos ievadiet veco paroli un pēc tam ievadiet Jūsu jauno paroli divreiz lai mēs varētu pārbaudīt, vai tā ir uzrakstīta pareizi."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Vecā parole:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Jaunā parole:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Apstiprināt paroli:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Nomainīt manu paroli"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Jūs esat saņēmuši šo e-pastu sakarā ar Jūsu pieprasīto paroles pārstatīšanu"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "Jūsu lietotāja kontam %(site_name)s saitā"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Jūsu jaunais parole ir: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Jūs vienmēr varat nomainīt šo paroli aizejot uz šo lapu:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Jūsu lietotājvārds, ja gadījumā Jūs esat to aizmirsis:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Paldies par mūsu saita lietošanu!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s komanda"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Grāmatzīmes"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Dokumentācijas grāmatzīmes"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Dokumentācija šai lapai"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Pārvieto jūs no jebkuras lapas dokumentācijā uz skatu, kas ģenerē šo lapu."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Parādīt objekta ID"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Parāda content-type un unikālo ID lapām, kas atspoguļo vientuļu objektu."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Labot šo objektu (patreizējā logā)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Pāriet uz admininstrācijas lapu tām lapām, kas atspoguļo vientuļu objektu."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Labot šo lapu (jaunā logā)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Tāpat kā iepriekš, tikai atver administrācijas lapu jaunā logā."
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "python modeļa klases nosaukums"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "satura tips"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "satura tips"
+
+#: contrib/auth/views.py:40
+msgid "Logged out"
+msgstr "Izlogojies"
+
+#: contrib/auth/models.py:44
+#: contrib/auth/models.py:64
+msgid "name"
+msgstr "nosaukums"
+
+#: contrib/auth/models.py:46
+msgid "codename"
+msgstr "kods"
+
+#: contrib/auth/models.py:49
+msgid "permission"
+msgstr "tiesība"
+
+#: contrib/auth/models.py:50
+#: contrib/auth/models.py:65
+msgid "permissions"
+msgstr "tiesības"
+
+#: contrib/auth/models.py:68
+msgid "group"
+msgstr "grupa"
+
+#: contrib/auth/models.py:69
+#: contrib/auth/models.py:109
+msgid "groups"
+msgstr "grupas"
+
+#: contrib/auth/models.py:99
+msgid "username"
+msgstr "lietotāja vārds"
+
+#: contrib/auth/models.py:99
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr ""
+
+#: contrib/auth/models.py:100
+msgid "first name"
+msgstr "vārds"
+
+#: contrib/auth/models.py:101
+msgid "last name"
+msgstr "uzvārds"
+
+#: contrib/auth/models.py:102
+msgid "e-mail address"
+msgstr "e-pasta adrese"
+
+#: contrib/auth/models.py:103
+msgid "password"
+msgstr "parole"
+
+#: contrib/auth/models.py:103
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr ""
+
+#: contrib/auth/models.py:104
+msgid "staff status"
+msgstr "personāla statuss"
+
+#: contrib/auth/models.py:104
+msgid "Designates whether the user can log into this admin site."
+msgstr "Atzīmējiet, ja vēlaties, lai lietotājs var pieslēgties administrācijas lapā."
+
+#: contrib/auth/models.py:105
+msgid "active"
+msgstr "aktīvs"
+
+#: contrib/auth/models.py:105
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "Nosaka, ka lietotājs var pieslēgties Django administrācijas lapai. Ieteicams atcelt šo izvēli nevis dzēst lietotājus."
+
+#: contrib/auth/models.py:106
+msgid "superuser status"
+msgstr "superlietotāja statuss"
+
+#: contrib/auth/models.py:106
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr ""
+
+#: contrib/auth/models.py:107
+msgid "last login"
+msgstr "pēdējoreiz pieslēdzies"
+
+#: contrib/auth/models.py:108
+msgid "date joined"
+msgstr "datums, kad pievienojies"
+
+#: contrib/auth/models.py:110
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Papildus manuāli piešķirtajām atļaujām, šis lietotājs papildus iegūs visas atļaujas, kas piešķirtas grupām, kurās lietotājs atrodas."
+
+#: contrib/auth/models.py:111
+msgid "user permissions"
+msgstr "lietotāja atļaujas"
+
+#: contrib/auth/models.py:115
+msgid "user"
+msgstr "lietotājs"
+
+#: contrib/auth/models.py:116
+msgid "users"
+msgstr "lietotāji"
+
+#: contrib/auth/models.py:122
+msgid "Personal info"
+msgstr "Personīgā informācija"
+
+#: contrib/auth/models.py:123
+msgid "Permissions"
+msgstr "Atļaujas"
+
+#: contrib/auth/models.py:124
+msgid "Important dates"
+msgstr "Svarīgi datumi"
+
+#: contrib/auth/models.py:125
+msgid "Groups"
+msgstr "Grupas"
+
+#: contrib/auth/models.py:269
+msgid "message"
+msgstr "ziņojums"
+
+#: contrib/auth/models.py:282
+msgid "AnonymousUser"
+msgstr "Anonīms lietotājs"
+
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr ""
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Lietotājs ar šādu lietotāja vārdu jau eksistē."
+
+#: contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Izskatās, ka Jūsu pārlūks neatbalsta cookies. Cookies ir obligātas, lai pieslēgtos."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Šis konts ir neaktīvs."
+
+#: contrib/auth/forms.py:85
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr ""
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Abi \"Jaunā parole\" lauki nesakrīt."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Jūsu iepriekšējā parole tika ievadīta nekorekti. Lūdzu ievadiet to atkārtoti."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "Ievadiet pasta indeksu. Atstarpe ir nepieciešama starp abām pasta indeksa daļām."
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Ievadiet pasta indeksu XXXXX-XXX formātā."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefona numuriem jābūt XXX-XXXX-XXXX formātā."
+
+#: contrib/localflavor/br/forms.py:72
+msgid "This field requires only numbers."
+msgstr "Šis lauks drīkst saturēt tikai skaitļus."
+
+#: contrib/localflavor/br/forms.py:74
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Šī lauka vērtībai jabūt vismaz 11 cipariem vai 14 simboliem."
+
+#: contrib/localflavor/br/forms.py:84
+msgid "Invalid CPF number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:106
+msgid "This field requires at least 14 digits"
+msgstr "Šim laukam jasastāv vismaz no 14 cipariem."
+
+#: contrib/localflavor/br/forms.py:116
+msgid "Invalid CNPJ number."
+msgstr ""
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "Ievadiet pasta indeksu, kurš sastāv no 4 cipariem."
+
+#: contrib/localflavor/fr/forms.py:17
+#: contrib/localflavor/de/forms.py:16
+#: contrib/localflavor/fi/forms.py:14
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Ievadiet pasta indeksu formātā XXXXX."
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburga"
+
+#: contrib/localflavor/de/de_states.py:11
+#, fuzzy
+msgid "Hessen"
+msgstr "sesija"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:60
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Ievadiet korektu vāciešu identifikācijas nummuru XXXXXXXXXXX-XXXXXXX-XXXXXXX-X formātā."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+#, fuzzy
+msgid "Iwate"
+msgstr "Datums:"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokija"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+#, fuzzy
+msgid "Shimane"
+msgstr "Izmainīt"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+#, fuzzy
+msgid "Ehime"
+msgstr "Laiks"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinava"
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Ievadiet pasta indeksu XXXXXXX vai XXX-XXXX formātā."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+#, fuzzy
+msgid "Berne"
+msgstr "lietotāja vārds"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+#, fuzzy
+msgid "Glarus"
+msgstr "Grupas"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+#, fuzzy
+msgid "Lucerne"
+msgstr "lietotāja vārds"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+#, fuzzy
+msgid "Thurgau"
+msgstr "Ceturdiena"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+#, fuzzy
+msgid "Zug"
+msgstr "aug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:18
+#: contrib/localflavor/no/forms.py:15
+msgid "Enter a zip code in the format XXXX."
+msgstr "Ievadiet pasta indeksu formātā XXXX."
+
+#: contrib/localflavor/ch/forms.py:90
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Lūdzu ievadiet korektu šveiciešu identifikācijas vai pases nummuru X1234567<0 vai 1234567890 formātā."
+
+#: contrib/localflavor/is_/forms.py:16
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Lūdzu ievadiet korektu islandiešu identifikācijas nummuru XXXXXX-XXXX formātā."
+
+#: contrib/localflavor/is_/forms.py:30
+msgid "The Icelandic identification number is not valid."
+msgstr "Islandiešu identifikācijas nummurs nav korekts."
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Ievadiet korektu pasta indeksu."
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "Ievadiet korektu sociālās drošības nummuru."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Ievadiet korektu VAT nummuru."
+
+#: contrib/localflavor/no/forms.py:36
+msgid "Enter a valid Norwegian social security number."
+msgstr "Lūdzu ievadiet korektu norvēģu sociālās drošības nummuru."
+
+#: contrib/localflavor/cl/forms.py:21
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Ievadiet korektu čīliešu RUT XX.XXX.XXX-X formātā."
+
+#: contrib/localflavor/cl/forms.py:26
+msgid "Enter valid a Chilean RUT"
+msgstr "Ievadiet korektu čīliešu RUT"
+
+#: contrib/localflavor/fi/forms.py:40
+#: contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr "Ievadiet korektu somu sociālās drošības nummuru."
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "sesijas atslēga"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "sesijas dati"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "beigu datums"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "sesija"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "sesijas"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Piemēram: '/about/contact/'. Pārliecinieties, ka esat ievietojuši sākuma un beigu slīpsvītras."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "virsraksts"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "saturs"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "ieslēgt komentārus"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "šablona nosaukums"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Piemēram: 'flatpages/contact_page.html'. Ja tas nav norādīts, sistēma lietos  'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "reģistrācija obligāta"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Ja tas ir atzīmēts, tikai lietotāji, kas ir pieslēgušies sistēmās redzēs šo lapu."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "vienkārša lapa"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "vienkāršas lapas"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Pirmdiena"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Otrdiena"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Trešdiena"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Ceturdiena"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Piektdiena"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Sestdiena"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Svētdiena"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Janvāris"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Februāris"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "March"
+msgstr "Marts"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "April"
+msgstr "Aprīlis"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "May"
+msgstr "Maijs"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "June"
+msgstr "Jūnijs"
+
+#: utils/dates.py:15
+#: utils/dates.py:27
+msgid "July"
+msgstr "Jūlijs"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Augusts"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Septembris"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Oktobris"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Novembris"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Decembris"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "jūn"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "jūl"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "aug"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "dec"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "Jan."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "Feb."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "Aug."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Sept."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "Okt."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "Dec."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "gads"
+msgstr[1] "gadi"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mēnesis"
+msgstr[1] "mēneši"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "nedēļa"
+msgstr[1] "nedēļas"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "diena"
+msgstr[1] "dienas"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "stunda"
+msgstr[1] "stundas"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minūte"
+msgstr[1] "minūtes"
+
+#: utils/timesince.py:40
+#, python-format
+msgid "%d milliseconds"
+msgstr "%d millisekundes"
+
+#: utils/timesince.py:41
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:47
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/dateformat.py:40
+#, fuzzy
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:41
+#, fuzzy
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:46
+#, fuzzy
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:47
+#, fuzzy
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "pusnakts"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "dienas vidus"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "DATE_FORMAT"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "DATETIME_FORMAT"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "TIME_FORMAT"
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "jā,nē,varbūt"
+
+#: template/defaultfilters.py:520
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: template/defaultfilters.py:522
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:524
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:525
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
diff --git a/webapp/django/conf/locale/lv/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/lv/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..6f9a8a8
--- /dev/null
+++ b/webapp/django/conf/locale/lv/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/lv/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/lv/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..2e1d307
--- /dev/null
+++ b/webapp/django/conf/locale/lv/LC_MESSAGES/djangojs.po
@@ -0,0 +1,119 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-02-15 10:46+1100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Gatis Tomsons <gatis.tomsons@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Pieejams %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Izvēlēties visu"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Pievienot"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Izņemt"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Izvēlies %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Izvēlies un klikšķini"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Attīrīt visu"
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "Janvāris Februāris Marts Aprīlis Maijs Jūnijs Jūlijs Augusts Septembris Oktobris Novembris"
+"Decembris"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Svētdiena Pirmdiena Otrdiena Trešdiena Ceturtdiena Piektdiena Sestdiena"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S M T W T F S"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Tagad"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Pulkstens"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Izvēlieties laiku"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Pusnakts"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Pusdienas laiks"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Atcelt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Šodien"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalendārs"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Vakar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Rīt"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Parādīt"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Slēpt"
diff --git a/webapp/django/conf/locale/mk/LC_MESSAGES/django.mo b/webapp/django/conf/locale/mk/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..6dfd651
--- /dev/null
+++ b/webapp/django/conf/locale/mk/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/mk/LC_MESSAGES/django.po b/webapp/django/conf/locale/mk/LC_MESSAGES/django.po
new file mode 100644
index 0000000..5e531a4
--- /dev/null
+++ b/webapp/django/conf/locale/mk/LC_MESSAGES/django.po
@@ -0,0 +1,4353 @@
+# translation of django.po to Macedonian
+#
+# Georgi Stanojevski <glisha@gmail.com>, 2006, 2007, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-06-18 12:26+0200\n"
+"PO-Revision-Date: 2008-06-28 16:36+0200\n"
+"Last-Translator: Georgi Stanojevski <glisha@gmail.com>\n"
+"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "Арапски"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "Бенгалски"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "Бугарски"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "Каталански"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "Чешки"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "Велшки"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "Дански"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "Германски"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "Грчки"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "Англиски"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "Шпански"
+
+#: conf/global_settings.py:55
+msgid "Argentinean Spanish"
+msgstr "Аргентиско шпански"
+
+#: conf/global_settings.py:56
+msgid "Basque"
+msgstr "Баскиски"
+
+#: conf/global_settings.py:57
+msgid "Persian"
+msgstr "Персиски"
+
+#: conf/global_settings.py:58
+msgid "Finnish"
+msgstr "Фински"
+
+#: conf/global_settings.py:59
+msgid "French"
+msgstr "Француски"
+
+#: conf/global_settings.py:60
+msgid "Irish"
+msgstr "Ирски"
+
+#: conf/global_settings.py:61
+msgid "Galician"
+msgstr "Галски"
+
+#: conf/global_settings.py:62
+msgid "Hungarian"
+msgstr "Унгарски"
+
+#: conf/global_settings.py:63
+msgid "Hebrew"
+msgstr "Еврејски"
+
+#: conf/global_settings.py:64
+msgid "Croatian"
+msgstr "Хрватски"
+
+#: conf/global_settings.py:65
+msgid "Icelandic"
+msgstr "Исландски"
+
+#: conf/global_settings.py:66
+msgid "Italian"
+msgstr "Италијански"
+
+#: conf/global_settings.py:67
+msgid "Japanese"
+msgstr "Јапонски"
+
+#: conf/global_settings.py:68
+msgid "Georgian"
+msgstr "Грузиски"
+
+#: conf/global_settings.py:69
+msgid "Korean"
+msgstr "Корејски"
+
+#: conf/global_settings.py:70
+msgid "Khmer"
+msgstr "Кмер"
+
+#: conf/global_settings.py:71
+msgid "Kannada"
+msgstr "Канада"
+
+#: conf/global_settings.py:72
+msgid "Latvian"
+msgstr "Латвиски"
+
+#: conf/global_settings.py:73
+msgid "Macedonian"
+msgstr "Македонски"
+
+#: conf/global_settings.py:74
+msgid "Dutch"
+msgstr "Холандски"
+
+#: conf/global_settings.py:75
+msgid "Norwegian"
+msgstr "Норвешки"
+
+#: conf/global_settings.py:76
+msgid "Polish"
+msgstr "Полски"
+
+#: conf/global_settings.py:77
+msgid "Portugese"
+msgstr "Португалкски"
+
+#: conf/global_settings.py:78
+msgid "Brazilian Portuguese"
+msgstr "Бразилско португалски"
+
+#: conf/global_settings.py:79
+msgid "Romanian"
+msgstr "Романски"
+
+#: conf/global_settings.py:80
+msgid "Russian"
+msgstr "Руски"
+
+#: conf/global_settings.py:81
+msgid "Slovak"
+msgstr "Словачки"
+
+#: conf/global_settings.py:82
+msgid "Slovenian"
+msgstr "Словенечки"
+
+#: conf/global_settings.py:83
+msgid "Serbian"
+msgstr "Српски"
+
+#: conf/global_settings.py:84
+msgid "Swedish"
+msgstr "Шведски"
+
+#: conf/global_settings.py:85
+msgid "Tamil"
+msgstr "Тамил"
+
+#: conf/global_settings.py:86
+msgid "Telugu"
+msgstr "Телугу"
+
+#: conf/global_settings.py:87
+msgid "Turkish"
+msgstr "Турски"
+
+#: conf/global_settings.py:88
+msgid "Ukrainian"
+msgstr "Украински"
+
+#: conf/global_settings.py:89
+msgid "Simplified Chinese"
+msgstr "Упростен кинески"
+
+#: conf/global_settings.py:90
+msgid "Traditional Chinese"
+msgstr "Традиционален кинески"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Од %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Сите"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Било кој датум"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Денеска"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Последните 7 дена"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Овој месец"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Оваа година"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Да"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Не"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Непознато"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "време на акција"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "идентификационен број на објект"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "object repr"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "знакче за акција"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "измени ја пораката"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "ставка во записникот"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "ставки во записникот"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Страницата не е најдена"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Се извинуваме, но неможе да ја најдеме страницата која ја баравте."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Дома"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Грешка со серверот"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Грешка со серверот (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Грешка со серверот <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Имаше грешка. Истата беше пријавена на администраторите и ќе биде поправена "
+"во брзо време. Ви благодариме за вашето трпение."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Добредојдовте,"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Документација"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Промени лозинка"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Одјава"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Џанго администрација на сајт"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Џанго администрација"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Додади"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Историја"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Погледни на сајтот"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Ве молам поправете ја грешката подолу."
+msgstr[1] "Ве молам поправете ги грешките подолу."
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Подредување"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Подреди:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Додади %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Избриши"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Бришење на %(object_name)s '%(escaped_object)s' ќе резултира со бришење на "
+"поврзаните објекти, но со вашата сметка немате доволно привилегии да ги "
+"бришете следните типови на објекти:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Сигурне сте дека сакате да ги бришете %(object_name)s „%(escaped_object)s“? "
+"Сите овие ставки ќе бидат избришани:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Да, сигурен сум"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Од %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Филтер"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Достапни модели во апликацијата %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Измени"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Немате дозвола ништо да уредува."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Последни акции"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Мои акции"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Ништо не е достапно"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Нешто не е во ред со инсталацијата на базата на податоци. Потврдете дека "
+"соодветни табели во базата се направени и потврдете дека базата може да биде "
+"прочитана од соодветниот корисник."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Корисник:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Лозинка:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:31
+msgid "Log in"
+msgstr "Најава"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Датум/час"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Корисник"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Акција"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j M Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Овој објект нема историја на измени. Најверојатно не бил додаден со админ "
+"сајтот."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Прикажи ги сите"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Оди"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 резултат"
+msgstr[1] "%(counter)s резултати"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "вкупно %(full_result_count)s"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Сними како нова"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Сними и додади уште"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Сними и продолжи со уредување"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Сними"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Прво, внесете корисничко име и лозинка. Потоа ќе можете да уредувате повеќе "
+"кориснички опции."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Корисник"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Лозинка"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Лозинка (повторно)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "Заради верификација внесете ја истата лозинка како и горе."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Внесете нова лозинка за корисникот <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Обележувачи"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Обележувачи на документација"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">За да инсталирате обележувачи, влечете ја врската до "
+"вашата\n"
+"лента со алатки, или кликнете со десното копче  и додадете го во вашите \n"
+"обележувачи. Сега може да го изберете обележувачот од било која страница "
+"на \n"
+"сајтот. Имајте на ум дека за некои од овие обележувачи е потребно да го "
+"гледате \n"
+"сајтот од компјутер кој е означен како „внатрешен“ (разговарајте со вашиот \n"
+"администратор ако не сте сигурни).</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Документација за оваа страница"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Ве носи од било која страница од документацијата до погледот кој ја генерира "
+"таа страница."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Прикажи идентификационен број на објектот"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Го прикажува типот на содржината и уникатниот идентификационен број за "
+"страници  кои претставуваат единечен објект."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Уреди го овој објект (во овој прозорец)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Скокнува до админ страницата за страници кои претставуваат единечен објект."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Уреди го овој објект (во нов прозорец)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Како погоре, но ја отвара админ страницата во нов прозорец."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Ви благодариме што денеска поминавте квалитетно време со интернет страницава."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Логирајте се повторно"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Измена на лозинка"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Успешна промена на лозинката"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Вашата лозинка беше сменета."
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Заради сигурност ве молам внесете ја вашата стара лозинка и потоа внесете ја "
+"новата двапати за да може да се потврди дека правилно сте ја искуцале."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Стара лозинка:"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Нова лозинка:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Потврди лозинка:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Промени ја мојата лозинка"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Ресетирање на лозинка"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Успешно е ресетирањето на лозинката"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Ви пративме нова лозинка на адресата која ја внесовте.Треба да ја примите за "
+"кратко време."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Ја добивата оваа порака бидејќи побаравте да се ресетира вашата лозинка"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "за корисничката сметка на %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Вашата нова лозинка е: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Чуствувајте се слободно да ја промените оваа лозинка преку оваа страница:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Вашето корисничко име, во случај да сте го заборавиле:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Ви благодариме што го користите овој сајт!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Тимот на %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Сте ја заборавиле вашата лозинка? Внесете ја вашата е-пошта подолу, ќе ја "
+"ресетираме вашата лозинка и новата ќе ви ја пратиме по е-пошта."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Е-пошта:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Ресетирај ја мојата лозинка"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Датум:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Време:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Моментално:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Измена:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Сите датуми"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" беше успешно додаден."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Подолу можете повторно да го уредите."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Додади корисник"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Успешна промена на лозинката."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Промени лозинка: %s"
+
+#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Ве молам внесете точно корисничко име и лозинка. Имајте на ум дека и во "
+"двете полиња се битни големите и малите букви."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Ве молам најавете се повторно бидејќи вашата сесија е истечена. Не се "
+"грижете. Вашите внесови беа зачувани."
+
+#: contrib/admin/views/decorators.py:76
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Изгледа дека вашиот прелистувач не е конфигуриран да прифаќа колачиња. Ве "
+"молам овозможете ги колачињата, превчитајте ја страта и пробајте повторно."
+
+#: contrib/admin/views/decorators.py:89
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Вашата е-пошта не е вашето корисничко име. Пробајте со „%s“."
+
+#: contrib/admin/views/decorators.py:93
+msgid "Usernames cannot contain the '@' character."
+msgstr "Корисничките имиња неможе да го содржат „@“ знакот."
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "таг:"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "филтер:"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "поглед:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "Не е најдена апликацијата %r"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Моделот %(name)r не е најден во апликацијата %(label)r"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "поврзаниот`%(label)s.%(type)s` објект"
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "модел:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "поврзани `%(label)s.%(name)s` објекти"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "сите %s"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "број на %s"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Полиња на %s објекти"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Цел број"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Логичка (или точно или неточно)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Збор (до %(max_length)s)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Целобројни вредности одделени со запирка"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Датум (без час)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Датум (со час)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Децимален број"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "Адреса на е-пошта"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Патека на датотека"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Децимален број"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "ИП адреса"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Логичка (точно,неточно или празно)"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Релација со родителскиот модел"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Телефонски број"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Текст"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Час"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "Држава во САД (две големи букви)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "XML текст"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s не изгледа дека е url објект"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Администрација на сајт"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Подолу можете да додате уште еден %s."
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "Додади %s"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "Додадено %s."
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "и"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "Изменета %s."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "Избришана %s."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Не беше изменето ниедно поле."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" беше успешно изменета."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"%(name)s \"%(obj)s\" беше успешно додадена.Подолу можете повторно да ја "
+"уредите."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "Измени %s"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Еден или повеќе %(fieldname)s во %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Еден или повеќе %(fieldname)s во %(name)s:"
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" беше избришана успешно."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Сигурни сте?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Историја на измени: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "Изберет %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "Изберете %s за измена"
+
+#: contrib/admin/views/main.py:765
+msgid "Database error"
+msgstr "Грешка во базата со податоци"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Двете полиња со лозинките не се совпаѓаат."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Веќе постои корисник со тоа корисничко име."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Не изгледа дека вашиот прелистувач има овозможено колачиња. Колачињата се "
+"потребни за да се најавите."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Оваа сметка е неактивна."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Нема регистрирано корисник со оваа адреса за е-пошта. Сигурни ли сте дека "
+"сте регистрирани?"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Ресетирање на лозинка на %s"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Двете нови лозинки не се совпаѓаат."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Не ја внесовте точно вашата стара лозинка. Ве молам внесете ја повторно."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "име"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "кодно име"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "привилегија"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "привилегии"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "група"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:148
+msgid "groups"
+msgstr "групи"
+
+#: contrib/auth/models.py:138
+msgid "username"
+msgstr "корисничко име"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Дозволени се најмногу 30 знаци. Дозволени се само алфанумерички знаци "
+"(букви, цифри и долна црта)."
+
+#: contrib/auth/models.py:139
+msgid "first name"
+msgstr "име"
+
+#: contrib/auth/models.py:140
+msgid "last name"
+msgstr "презиме"
+
+#: contrib/auth/models.py:141
+msgid "e-mail address"
+msgstr "е-пошта"
+
+#: contrib/auth/models.py:142
+msgid "password"
+msgstr "лозинка"
+
+#: contrib/auth/models.py:142
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Користете '[algo]$[salt]$[hexdigest]' или користете ја <a href=\"password/"
+"\">формата за промена на лозинката</a>."
+
+#: contrib/auth/models.py:143
+msgid "staff status"
+msgstr "статус на администраторите"
+
+#: contrib/auth/models.py:143
+msgid "Designates whether the user can log into this admin site."
+msgstr "Означува дали корисникот може да се логира во сајтот за администрација."
+
+#: contrib/auth/models.py:144
+msgid "active"
+msgstr "активен"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Означува дали корисникот треба да биде активен. Одштиклирајте го ова наместо да "
+"бришете корисници."
+
+#: contrib/auth/models.py:145
+msgid "superuser status"
+msgstr "статус на суперкорисник"
+
+#: contrib/auth/models.py:145
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Означува дека овој корисник ги има сите привилегии без експлицитно да се "
+"доделуваат сите."
+
+#: contrib/auth/models.py:146
+msgid "last login"
+msgstr "последна најава"
+
+#: contrib/auth/models.py:147
+msgid "date joined"
+msgstr "датум на зачленување"
+
+#: contrib/auth/models.py:149
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Како дополнување на рачно доделени привилегии, овој корисник ќе ги добие "
+"автоматски и сите привилегии за секоја група во која тој/таа членува."
+
+#: contrib/auth/models.py:150
+msgid "user permissions"
+msgstr "кориснички привилегии"
+
+#: contrib/auth/models.py:154
+msgid "user"
+msgstr "корисник"
+
+#: contrib/auth/models.py:155
+msgid "users"
+msgstr "корисници"
+
+#: contrib/auth/models.py:161
+msgid "Personal info"
+msgstr "Лични информации"
+
+#: contrib/auth/models.py:162
+msgid "Permissions"
+msgstr "Привилегии"
+
+#: contrib/auth/models.py:163
+msgid "Important dates"
+msgstr "Важни датуми"
+
+#: contrib/auth/models.py:164
+msgid "Groups"
+msgstr "Групи"
+
+#: contrib/auth/models.py:323
+msgid "message"
+msgstr "порака"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Одјавен"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
+msgid "object ID"
+msgstr "object ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "наслов"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+msgid "comment"
+msgstr "коментар"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "популарност #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "популарност #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "популарност #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "популарност #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "популарност #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "популарност #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "популарност #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "популарност #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "е валидна популарност"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "датум/време пријавен"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
+msgid "is public"
+msgstr "е јавен"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "е отстранет"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Штиклирајте го ова поле ако коментарот не е пригоден. Наместо него пораката "
+"„Овој коментар беше отстранет“ ќе биде прикажана."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "коментари"
+
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
+msgid "Content object"
+msgstr "Content објект"
+
+#: contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Напишан од %(user)s на %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+msgid "person's name"
+msgstr "име на личноста"
+
+#: contrib/comments/models.py:181
+msgid "ip address"
+msgstr "ип адреса"
+
+#: contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr "одобрено од администраторите"
+
+#: contrib/comments/models.py:187
+msgid "free comment"
+msgstr "слободен коментар"
+
+#: contrib/comments/models.py:188
+msgid "free comments"
+msgstr "слободни коментари"
+
+#: contrib/comments/models.py:250
+msgid "score"
+msgstr "поени"
+
+#: contrib/comments/models.py:251
+msgid "score date"
+msgstr "датум поени"
+
+#: contrib/comments/models.py:255
+msgid "karma score"
+msgstr "карма поен"
+
+#: contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "карма поени"
+
+#: contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d гласање за популарност од %(user)s"
+
+#: contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Овој коментар беше означен од %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:285
+msgid "flag date"
+msgstr "датум на означување"
+
+#: contrib/comments/models.py:289
+msgid "user flag"
+msgstr "корисничка ознака"
+
+#: contrib/comments/models.py:290
+msgid "user flags"
+msgstr "кориснички ознаки"
+
+#: contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "Означено од %r"
+
+#: contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "датум на бришење"
+
+#: contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "бришење од модератор"
+
+#: contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "бришења од модератор"
+
+#: contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Бришење од модератор од %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Ја заборавите вашата лозинка?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Популарност"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Потребно"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "По желба"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Објави фотографија"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Коментар:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Прегледај"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Вашето име:"
+
+#: contrib/comments/views/comments.py:28
+msgid "This rating is required because you've entered at least one other rating."
+msgstr ""
+"Ова гласање за популарност е потребно бидејќи внесовте најмалку уште едно "
+"друго."
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Овој коментар беше пратен од корисник кој пратил помалку од %(count)s "
+"коментар:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Овој коментар беше пратен од корисник кој пратил помалку од %(count)s "
+"коментари:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Овој коментар беше пратен од недоверлив корисник:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Дозволено е само POST"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Едно или повеќе од потребните полиња не беше пополнето"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Некој ја променил формата за коментари (сигурносен прекршок)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Формата за коментар имаше неправилен „target“ параметар - идентификациониот "
+"број на објектот беше неправилен"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Формата за коментар не овозможи ниту „преглед“ ниту „праќање“"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Анонимните корисници неможе да гласаат"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Невалидно ИД на коментарот"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Нема гласање за самиот себе"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "има на класата на питон моделите"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "content type"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "content types"
+
+#: contrib/flatpages/models.py:9
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"На пр. „/za/kontakt/“. Осигурајте се да имате коса црта и на крајот и на "
+"почетокот."
+
+#: contrib/flatpages/models.py:10
+msgid "title"
+msgstr "наслов"
+
+#: contrib/flatpages/models.py:11
+msgid "content"
+msgstr "содржина"
+
+#: contrib/flatpages/models.py:12
+msgid "enable comments"
+msgstr "овозможи коментари"
+
+#: contrib/flatpages/models.py:13
+msgid "template name"
+msgstr "име на шаблонот"
+
+#: contrib/flatpages/models.py:14
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"На пр. „flatpages/kontakt.html'. Ако не го внесете ова, системот ќе користи "
+"„flatpages/default.html“."
+
+#: contrib/flatpages/models.py:15
+msgid "registration required"
+msgstr "потребна е регистрација"
+
+#: contrib/flatpages/models.py:15
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Ако ова е штиклирано, само најавените корисници ќе можат да ја гледаат оваа "
+"страница."
+
+#: contrib/flatpages/models.py:20
+msgid "flat page"
+msgstr "статична страница"
+
+#: contrib/flatpages/models.py:21
+msgid "flat pages"
+msgstr "статични страници"
+
+#: contrib/flatpages/models.py:27
+msgid "Advanced options"
+msgstr "Напредни можности"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "st"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "nd"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f милион"
+msgstr[1] "%(value).1f милион"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f милијарда"
+msgstr[1] "%(value).1f милијарда"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f трилион"
+msgstr[1] "%(value).1f трилион"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "еден"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "два"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "три"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "четири"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "пет"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "шест"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "седум"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "осум"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "девет"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "денеска"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "утре"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "вчера"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Внесете поштенски број во форматот NNNN или ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Во ова поле смее да бидат само бројки."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Во ова поле смее да има 7 или 8 цифри."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Внесете правилен CUIT во XX-XXXXXXXX-X or XXXXXXXXXXXX формат."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Неправилен CUIT."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Внесете 4 цифрен поштенски број."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Внесете правилен поштенски број во форматот XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Телефонските броеви мора да бидат во XX-XXXX-XXXX форматот."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "Изберете правилна бразилска држава. Оваа држава не е од достапните држави."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Неправилен CPF број."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Во ова поле смее да има најмногу 11 цифри или 14 знаци."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Неправилен CNPJ број."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Во ова поле треба да има најмалку 14 цифри"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Внесете правилен поштенски број во формат XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "Внесте правилен канадски број за осигурување во XXX-XXX-XXX форматот."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Женева"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Цирих"
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Внесете правилен поштенски број во форматот XXXX."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Внесете правилен швајцарски број на пасош во X1234567<0 или "
+" 1234567890 формат."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Внесете правилeн RUT за Чиле."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Внесете правилен RUT за Чиле. Форматот е Xx.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "RUT бројот за Чиле е невалиден."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Баден-Вуертемберг"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Баварија"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Берлин"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Бранденбург"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Бремен"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Хамбург"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Хесен"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Мекленбург - Западна Померанија"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Долна Саксонија"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Северна Рајна-Вестфалија"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Рајналенд-Палатинате"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Сарленд"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Саксонија"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Саксонија-Анхалт"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Шлесвиг-Холштајн"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Турингиа"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Внесете правилен поштенски број во формат XXXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Внесете правилен број на лична карта во Германија во XXXXXXXXXXX-XXXXXXX-"
+"XXXXXXX-X  форматот."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Arava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almeria"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Авила"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Illes Balears"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Барцелона"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Caceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cadiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castello"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Кордоба"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruna"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaen"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "Леон"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Луго"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Мадрид"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Малага"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarre"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Санта Круз и Тенерифе"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Севиља"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Толедо"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Валенсија"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Bizkaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Сарагоса"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Андалузија"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Арагон"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principality of Asturias"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Острови Балеарик"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Баскија"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Канарски острови"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Кастиља ла Манча"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Кастиња и Леон"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Каталонија"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Екстремадура"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Галиција"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Регион Мурција"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Foral Community of Navarre"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valencian Community"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Внесете поштенски број во опсег и формат 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr "Внесете правилен телефонски број во еден од формативе 6XXXXXXXX, 8XXXXXXXX или 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Ве молам внесете правиелн NIF, NIE или CIF."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Ве молам внесете валиден NIF или NIE."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Неправилна контролна сума за NIF."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Неправилна контролна сума за NIE."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Неправилна контролна сум за CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Внесете правилна банкарска сметка во формат XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Неправилна контролна сума за бројот на банкарската сметка."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Внесте правилен фински матичен број."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Внесете правилен поштенски број во форматот  XXXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Внесете валиден идентификационен број од Исланд. Форматот е XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Исландскиот идентификационент број е невалиден."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Внесете правилен поштенски број."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Внесете правилен осигурителен број."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Внесете правилен даночен број."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Внесете поштенски број во форматот XXXXXXX или XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Хокаидо"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Аомори"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Ивате"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Мијаги"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Акита"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Јамагата"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Фукушима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ибараки"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Точиги"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Гунма"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Саитама"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Чиба"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Токио"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Канагава"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Јаманаши"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Нагано"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Нигита"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Тојама"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ишикава"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Фукуи"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Гифу"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Шизоука"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Аичи"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Мие"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Шига"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Кјото"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Осака"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Хиого"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Нара"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Вакајама"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Тотори"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Шимане"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Окајама"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Хирошима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Јамагучи"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Токушима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Кагава"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Еиме"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Кочи"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Фукуока"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Сага"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Нагасаки"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Кумамото"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Оита"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Мијазаки"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Кагошима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Окинава"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Баја Калифорнија"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Кампеш"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Чиапас"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Колима"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Дуранго"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Гуереро"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Хидалго"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Џалиско"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Estado de México"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Куантана Ро"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Синалоа"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "Сан Луис Потоси"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Сонора"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Табаско"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Тамаулипас"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Веракруз"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Јукатан"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Зацатекас"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Внесете правилен поштенски код"
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Внесете валиден телефонски број"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Внесете валиден осигурителен број"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Дренте"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Флеволанд"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Фраисланд"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Гелдерланд"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Гронинген"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Лимбург"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Noord-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Noord-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Утрехт"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Зиланд"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Zuid-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Ве молам внесете правилен норвешки матичен број."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Во ова поле мора да се внесат 8 цифри."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Во ова поле се потребни 11 цифри."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "Националниот идентификационен број се состои од 11 цифири."
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Погрешна проверка за Националниот идентификационен број."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Внесете даночен број (NIP) во форматот XXX-XXX-XX-XX или XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Даночниот број (NIP) е погрешен."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "Националниот бизнис регистрациски број (REGON) се состои од 7 или 9 цифри."
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Неправилна контролна сум за Националниот бизнис регистрационен број (REGON)."
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Внесете правилен поштенски број во формат XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Долна Силесиа"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Лублин"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Лубус"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Лодз"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Lesser Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Масовиа"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Ополе"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Субкарпатиа"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Подласи"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Померанија"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Силесиа"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Greater Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Западна Померанија"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Внесете поштенски број во форматот XXXXX или XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Банска Бистрица"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Банска Стиавница"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Бардејов"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Бановце над Бебраво"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Брезно"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Братислава I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Братислава II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Братислава III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Братислава IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Братислава V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Битка"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Кадка"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Детва"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Гелника"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Хлоховец"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Хумен"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Кезмарок"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Комарно"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Кошице I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Кошице II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Кошице III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Кошице IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Кошице - околина"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Крупина"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Левице"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Левока"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Луценец"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Мартин"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Наместово"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Нитра"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Партизанске"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Пезинок"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Полтар"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Попрад"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Пресов"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Пучов"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Ревука"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Рознава"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Рузомберок"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Сабинов"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Сенец"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Сеника"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Скалица"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Шнина"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Собранце"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Стара Љубовна"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Стропков"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Свидник"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Сала"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Тополчани"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Требисов"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Тренцин"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Трнава"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Тврдосин"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Злате Моравце"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Зволен"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Зарновица"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Зилина"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banska Bystrica region"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Братиславски регион"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Кошице регион"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Нитра регион"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Пресов регион"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Тренцин регион"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Трнава регион"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Зилина регион"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Внесете правилен поштенски код."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Бедфордшир"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Букингхамшир"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Чешир"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall and Isles of Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Кумбриа"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Дербишир"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Девон"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Дорсет"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Дурам"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "Источен Сасекс"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Есекс"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Поширок Лондон"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Поширок Манчестер"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Хемпшир"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Хертфордшир"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Кент"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Ланкашир"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Линколншир"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Мерсејсајд"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Норфолк"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "Северен Јоркшир"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Нортхамтоншир"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Нотингхамшир"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Оксфордшир"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Шропшир"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Сомерсет"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "Јужен Јоркшир"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Стафордшир"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Суфолк"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "Западен Мидландс"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "Западен Сасекс"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "Западен Јоркшир"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Вилтшир"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "County Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "County Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Гвент"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "Јужен Гламорга"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "Западен Гламорган"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Централна Шкотска"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Грампиан"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetland Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Англија"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Северна Ирска"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Шкотска"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Велс"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Внесете поштенски број во форматот XXXXX или XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Внесте правилен матичен број за САД во XXX-XX-XXXX форматот."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Внесете правилен јужно афрички број за идентификација"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Внесете правилен јужно афрички поштенски код"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Источен Кејп"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Free State"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Northern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "North West"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Western Cape"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "пренасочи од"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Ова треба да биде апсолутна патека без името на домејнот. На пр. „/nastani/"
+"prebaraj/“."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "пренасочи кон"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Ова може да биде или апсолутна патека (како погоре) или цела адреса "
+"почувајќи со „http://“."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "пренасочување"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "пренасочувања"
+
+#: contrib/sessions/models.py:41
+msgid "session key"
+msgstr "клуч на сесијата"
+
+#: contrib/sessions/models.py:42
+msgid "session data"
+msgstr "податоци од сесијата"
+
+#: contrib/sessions/models.py:43
+msgid "expire date"
+msgstr "датум на истекување"
+
+#: contrib/sessions/models.py:48
+msgid "session"
+msgstr "сесија"
+
+#: contrib/sessions/models.py:49
+msgid "sessions"
+msgstr "сесии"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "домејн"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "име кое се прикажува"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "сајт"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "сајтови"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Оваа вредност смее да има само букви, бројки или долни црти."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "Оваа вредност смее да има само букви, бројки, долни црти, црти или коси црти."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Оваа вредност смее да содржи само букви, бројки, долни црти или црти."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Големи букви не се дозволени."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Мали букви не се дозволени."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Внесете само цифри одделени со запирки."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Внесете валидни адреси за е-пошта одделени со запирки."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Ве молам внесете валидна ИП адреса."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Празни вредности не се дозволени."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Ненумерички знаци не се дозволени тука."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Оваа вредност не смее да биде само од цифри."
+
+#: core/validators.py:128 newforms/fields.py:152
+msgid "Enter a whole number."
+msgstr "Внеси цел број."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Дозволени се само букви."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "Годината мора да биде 1900 или покасно."
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Неправилен датум: %s"
+
+#: core/validators.py:156 db/models/fields/__init__.py:548
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Внесете правилен датум во форматот ГГГГ-ММ-ДД."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Внесете правилно време во форматот HH:MM."
+
+#: core/validators.py:165 db/models/fields/__init__.py:625
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Внесете правилен датум/време во форматот ГГГГ-ММ-ДД ЧЧ:ММ."
+
+#: core/validators.py:170 newforms/fields.py:403
+msgid "Enter a valid e-mail address."
+msgstr "Внесeте правилна адреса за е-пошта."
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Не беше пратена датотека. Проверете го типот на енкодирање на формата."
+
+#: core/validators.py:193 newforms/fields.py:459
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Качете валидна фотографија. Датотеката која ја качивте или не беше "
+"фотографија или беше расипана датотеката."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "Адресата %s не покажува кон валидна фотографија."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Телефонските броеви мора да бидат во XXX-XXX-XXXX форматот. „%s“ не е "
+"валиден."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "Адресата „%s“ не покажува кон QuickTime видео."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Задолжителна е правилна адреса."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Задолжителен е правилен HTML. Грешките се:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Неправилно формиран XML: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Неправилна адреса: %s"
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Адресата %s е скршена врска."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Внесете правилна скратеница за држава во САД."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Внимавајте на јазикот. Тука не е дозволен зборот %s."
+msgstr[1] "Внимавајте на јазикот. Тука не се дозволени зборовите %s."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Ова поле мора да соодејствува со полето „%s“."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Ве молам внесете нешто во барем едно поле."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Ве молам внесете во двете полиња или оставете ги двете празни."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Ова поле мора да биде зададено ако %(field)s е %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Ова поле мора да биде зададено ако %(field)s не е %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Дупликат вредности не се дозволени."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Оваа вредноста мора да биде помеѓу %(lower)s и %(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Оваа вредноста мора да биде најмалку %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Оваа вредност не смее да биде поголема од %s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Оваа вредноста мора да биде степен од %s."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Ве молам внесете правилен децимален број."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Ве молам внесете правилен децимален број со најмногу %s цифрa."
+msgstr[1] "Ве молам внесете правилен децимален број со најмногу %s вкупно цифри."
+
+#: core/validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Ве молам внесете правилен децимален број кој во целиот број има најмногу %s "
+"цифра."
+msgstr[1] ""
+"Ве молам внесете правилен децимален број кој во целиот број има најмногу %s "
+"цифри."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Ве молам внесете правилен децимален број кој има најмногу %s децимална цифра."
+msgstr[1] "Ве молам внесете правилен децимален број кој има најмногу %s децимални цифри."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Ве молам внесете правилен децимален број."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Потврдете дека качената датотека има најмалку %s бајти."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Потврдете дека качената датотека има најмногу %s бајти."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "Форматот за ова поле е грешен."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "Ова поле не е правилно."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Неможев да извадам ништо од %s."
+
+#: core/validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "Адресата %(url)s врати неправилно заглавје Content-Type „%(contenttype)s“."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Ве молам затворете го отворениот %(tag)s таг од линијата %(line)s. (линијата "
+"почнува со „%(start)s“.)"
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Некој текст  кој почнува на линијата %(line)s не е дозволен во тој контекст. "
+"(Линијата започнува со „%(start)s“.)"
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"„%(attr)s“ на линија %(line)s е неправилен атрибут. (линијата започнува со „%"
+"(start)s“.)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"„<%(tag)s>“ на линија %(line)s е неправилен таг. (линијата започнува со „%"
+"(start)s“.)"
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"На таг од линијата %(line)s му недостасува еден или повеќе од потребните "
+"атрибути (линијата започнува со „%(start)s“)."
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr "Атрибутот „%(attr)s“ на линијата %(line)s има неправилна вредност (линијата започнува со „%(start)s“)."
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s од овој тип %(type)s веќе постои за даденото %(field)s."
+
+#: db/models/fields/__init__.py:51
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s со ова %(fieldname)s веќе постои."
+
+#: db/models/fields/__init__.py:176 db/models/fields/__init__.py:348
+#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791
+#: newforms/fields.py:46 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Ова поле е задолжително."
+
+#: db/models/fields/__init__.py:448
+msgid "This value must be an integer."
+msgstr "Оваа вредност мора да биде цел број."
+
+#: db/models/fields/__init__.py:487
+msgid "This value must be either True or False."
+msgstr "Оваа вредност мора да биде или точно или неточно."
+
+#: db/models/fields/__init__.py:511
+msgid "This field cannot be null."
+msgstr "Оваа вредност неможе да биде null."
+
+#: db/models/fields/__init__.py:689
+msgid "This value must be a decimal number."
+msgstr "Оваа вредност мора да биде децимален број."
+
+#: db/models/fields/__init__.py:800
+msgid "Enter a valid filename."
+msgstr "Внесите правилно име на датотека."
+
+#: db/models/fields/__init__.py:981
+msgid "This value must be either None, True or False."
+msgstr "Оваа вредност мора да биде празна, точно или неточно."
+
+#: db/models/fields/related.py:94
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Ве молам внесете правилно %s."
+
+#: db/models/fields/related.py:746
+msgid "Separate multiple IDs with commas."
+msgstr "Одвојте ги идентификационите броеви со запирки."
+
+#: db/models/fields/related.py:748
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Држете го „Control“ или „Command“ на Мекинтош за да изберете повеќе од едно."
+
+#: db/models/fields/related.py:795
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Ве молам внесете правилен %(self)s идентификацион број. Оваа вредност %"
+"(value)r е неправилна."
+msgstr[1] ""
+"Ве молам внесете правилен %(self)s идентификацион број. Вредностите %(value)"
+"r се неправилни."
+
+#: newforms/fields.py:47
+msgid "Enter a valid value."
+msgstr "Внесете правилна вредност."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Осигурајте се дека оваа вредност има најмногу %(max)d знаци (има %(length)d)."
+
+#: newforms/fields.py:125
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Осигурајте се дека оваа вредност има најмалку %(min)d знаци (има %(length)d)."
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Осигурајте се дека оваа вредност е помала или еднаква со %s."
+
+#: newforms/fields.py:154 newforms/fields.py:183 newforms/fields.py:212
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Осигурајте се дека оваа вредност е поголема или еднаква со %s."
+
+#: newforms/fields.py:181 newforms/fields.py:210
+msgid "Enter a number."
+msgstr "Внесете број."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Осигурајте се дека нема вкупно повеќе од %s цифри."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Осигурајте се дека нема повеќе од %s децимални места."
+
+#: newforms/fields.py:215
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Осигурајте се дека нема повеќе од %s цифри пред децималната запирка."
+
+#: newforms/fields.py:263 newforms/fields.py:750
+msgid "Enter a valid date."
+msgstr "Внесете правилен датум."
+
+#: newforms/fields.py:296 newforms/fields.py:751
+msgid "Enter a valid time."
+msgstr "Внесете правилно време."
+
+#: newforms/fields.py:335
+msgid "Enter a valid date/time."
+msgstr "Внесете правилен датум со време."
+
+#: newforms/fields.py:434
+msgid "No file was submitted."
+msgstr "Не беше пратена датотека."
+
+#: newforms/fields.py:435 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Пратената датотека е празна."
+
+#: newforms/fields.py:497
+msgid "Enter a valid URL."
+msgstr "Внесете правилна адреса."
+
+#: newforms/fields.py:498
+msgid "This URL appears to be a broken link."
+msgstr "Оваа адреса изгледа дека не е достапна."
+
+#: newforms/fields.py:559 newforms/models.py:299
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Изберете правилно. Тоа не е едно од можните избори."
+
+#: newforms/fields.py:598
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Внесете валиден избор. %(value)s не е еден од можните избори."
+
+#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:365
+msgid "Enter a list of values."
+msgstr "Внесете листа на вредности."
+
+#: newforms/fields.py:779
+msgid "Enter a valid IPv4 address."
+msgstr "Внесeте правилна IPv4 адреса."
+
+#: newforms/models.py:366
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Внесете правилно. %s не е еден од достапните вредности."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Осигурајте се дека вашиот текст има помалку од %s знак."
+msgstr[1] "Осигурајте се дека вашиот текст има помалку од %s знаци."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Тука не се дозволени прекини на линија."
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Изберете правилно, %(data)s' не е во %(choices)s."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Внесете цел број помеѓу -32,768 и 32,767."
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Внесете позитивен број."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Внесете цел број помеѓу 0 и 32,767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "да, не, можеби"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d бајт"
+msgstr[1] "%(size)d бајти"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f КБ"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f МБ"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f ГБ"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "попладне"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "наутро"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "попладне"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "наутро"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "полноќ"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "пладне"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "понеделник"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "вторник"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "среда"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "четврток"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "петок"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "сабота"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "недела"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "пон"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "вто"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "сре"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "чет"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "пет"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "саб"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "нед"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "јануари"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "февруари"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "март"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "април"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "мај"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "јуни"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "јули"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "август"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "септември"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "октомври"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "ноември"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "декември"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "јан"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "фев"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "мар"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "апр"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "мај"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "јун"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "јул"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "авг"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "сеп"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "окт"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "ное"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "дек"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "јан."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "фев."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "авг."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "сеп."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "окт."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "ное."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "дек."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "или"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "година"
+msgstr[1] "години"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "месец"
+msgstr[1] "месеци"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "седмица"
+msgstr[1] "седмици"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "ден"
+msgstr[1] "дена"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "час"
+msgstr[1] "часа"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "минута"
+msgstr[1] "минути"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "минути"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:403
+msgid "DATE_FORMAT"
+msgstr "j M Y"
+
+#: utils/translation/trans_real.py:404
+msgid "DATETIME_FORMAT"
+msgstr "j M Y, P"
+
+#: utils/translation/trans_real.py:405
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:421
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:422
+msgid "MONTH_DAY_FORMAT"
+msgstr "F j"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s беше успешно создаден."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s беше успешно ажуриран."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s беше избришан."
+
diff --git a/webapp/django/conf/locale/mk/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/mk/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..200ddce
--- /dev/null
+++ b/webapp/django/conf/locale/mk/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/mk/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/mk/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..122a189
--- /dev/null
+++ b/webapp/django/conf/locale/mk/LC_MESSAGES/djangojs.po
@@ -0,0 +1,119 @@
+# translation of djangojs.po to Macedonian
+#
+# Georgi Stanojevski <glisha@gmail.com>, 2006, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-02-15 10:53+1100\n"
+"PO-Revision-Date: 2007-02-24 13:49+0100\n"
+"Last-Translator: Georgi Stanojevski <glisha@gmail.com>\n"
+"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Достапно %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Избери ги сите"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Додади"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Отстрани"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Избрано %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Означете го вашиот избор/и и кликнете"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Исчисти ги сите"
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Јануари Февруари Март Април Мај Јуни Јули Август Септември Октомври Ноември "
+"Декември"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Недела Понеделник Вторник Среда Четврток Петок Сабота"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "Н П В С Ч П С"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Сега"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Часовник"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Избери време"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Полноќ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 наутро"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Пладне"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Откажи"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Денеска"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Календар"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Вчера"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Утре"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Прикажи"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Скриј"
+
diff --git a/webapp/django/conf/locale/nl/LC_MESSAGES/django.mo b/webapp/django/conf/locale/nl/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..5f1f10c
--- /dev/null
+++ b/webapp/django/conf/locale/nl/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/nl/LC_MESSAGES/django.po b/webapp/django/conf/locale/nl/LC_MESSAGES/django.po
new file mode 100644
index 0000000..6d3d365
--- /dev/null
+++ b/webapp/django/conf/locale/nl/LC_MESSAGES/django.po
@@ -0,0 +1,4548 @@
+# Dutch translation for Django.
+# Copyright (C) 2008, Django Software Foundation
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-14 19:46+0200\n"
+"PO-Revision-Date: 2008-07-31 23:08+0200\n"
+"Last-Translator: Rudolph Froger <rudolphfroger@estrate.nl>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "Arabisch"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "Bengaals"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "Bulgaars"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "Catalaans"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "Tjechisch"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "Welsh"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "Deens"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "Duits"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "Grieks"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "Engels"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "Spaans"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "Ests"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "Argentijns Spaans"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "Baskisch"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "Perzisch"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "Fins"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "Frans"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "Iers"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "Galicisch"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "Hongaars"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "Hebreews"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "Kroatisch"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "IJslands"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "Italiaans"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "Japans"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "Georgisch"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "Koreaans"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "Khmer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "Lets"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "Litouws"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "Macedonisch"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "Nederlands"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "Noors"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "Pools"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "Portugees"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "Braziliaans Portugees"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "Roemeens"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "Russisch"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "Slovaaks"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "Sloveens"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "Servisch"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "Zweeds"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "Tamil"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "Telegu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "Turks"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "Oekraïens"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "Vereenvoudigd Chinees"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "Traditioneel Chinees"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Door %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Alle"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Elke datum"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Vandaag"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Laatste 7 dagen"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Deze maand"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Dit jaar"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Ja"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Nee"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "actietijd"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "object-id"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "object-repr"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "actievlag"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "wijzig bericht"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "logregistratie"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "logregistraties"
+
+#: contrib/admin/options.py:143 contrib/admin/options.py:202
+msgid "None"
+msgstr "Geen"
+
+#: contrib/admin/options.py:407
+#, python-format
+msgid "Changed %s."
+msgstr "%s gewijzigd."
+
+#: contrib/admin/options.py:407 contrib/admin/options.py:417
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "en"
+
+#: contrib/admin/options.py:412
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "%(name)s \"%(object)s\" toegevoegd."
+
+#: contrib/admin/options.py:416
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "%(list)s aangepast voor %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:421
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "%(name)s \"%(object)s\" verwijderd."
+
+#: contrib/admin/options.py:425
+msgid "No fields changed."
+msgstr "Geen velden gewijzigd."
+
+#: contrib/admin/options.py:486 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "De %(name)s \"%(obj)s\" is toegevoegd."
+
+#: contrib/admin/options.py:490 contrib/admin/options.py:523
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "U kunt dit hieronder weer bewerken."
+
+#: contrib/admin/options.py:500 contrib/admin/options.py:533
+#, python-format
+msgid "You may add another %s below."
+msgstr "U kunt hieronder de volgende %s toevoegen."
+
+#: contrib/admin/options.py:521
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Het wijzigen van %(name)s \"%(obj)s\" is geslaagd."
+
+#: contrib/admin/options.py:529
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "De %(name)s \"%(obj)s\" was toegevoegd. U kunt het hieronder wijzigen."
+
+#: contrib/admin/options.py:595
+#, python-format
+msgid "Add %s"
+msgstr "Toevoegen %s"
+
+#: contrib/admin/options.py:672
+#, python-format
+msgid "Change %s"
+msgstr "Wijzig %s"
+
+#: contrib/admin/options.py:703
+msgid "Database error"
+msgstr "Databasefout"
+
+#: contrib/admin/options.py:752
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "De verwijdering van %(name)s \"%(obj)s\" is geslaagd."
+
+#: contrib/admin/options.py:759
+msgid "Are you sure?"
+msgstr "Weet u het zeker?"
+
+#: contrib/admin/options.py:786
+#, python-format
+msgid "Change history: %s"
+msgstr "Wijzigingsgeschiedenis: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Voer een correcte gebruikersnaam en wachtwoord in. Let op, de velden zijn "
+"hoofdletter-gevoelig."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Uw sessie is verlopen, meld u opnieuw aan. Maakt u zich geen zorgen: Uw "
+"bijdrage is opgeslagen."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Het lijkt erop dat uw browser geen cookies accepteert. Zet het gebruik van "
+"cookies aan in uw browser, laad deze pagina nogmaals en probeer het opnieuw."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Gebruikersnamen mogen geen '@' teken bevatten."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Uw e-mailadres is niet uw gebruikersnaam. Probeer '%s' eens."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Sitebeheer"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Inloggen"
+
+#: contrib/admin/util.py:126
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Eén of meer %(fieldname)s in %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:131
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Eén of meer %(fieldname)s in %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Datum:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Tijd:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Huidige:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Wijziging:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Pagina niet gevonden"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Onze excuses, maar de gevraagde pagina bestaat niet."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Voorpagina"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serverfout"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serverfout (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Serverfout <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Er is een fout opgetreden. Dit is inmiddels doorgegeven aan de sitebeheerder "
+"via e-mail en zal spoedig worden gerepareerd. Bedankt voor uw geduld."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Welkom,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentatie"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Wachtwoord wijzigen"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Afmelden"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django sitebeheer"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Djangobeheer"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Toevoegen"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Geschiedenis"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Toon op site"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Herstel de fout hieronder."
+msgstr[1] "Herstel de fouten hieronder."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s toevoegen"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filter"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Het verwijderen van %(object_name)s '%(escaped_object)s' zal ook "
+"gerelateerde objecten verwijderen. Echter u heeft geen rechten om de "
+"volgende typen objecten te verwijderen:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Weet u zeker dat u %(object_name)s \"%(escaped_object)s\" wilt verwijderen? "
+"Alle volgende objecten worden verwijderd:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Ja, ik weet het zeker"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Op %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Beschikbare modellen in de %(name)s toepassing."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Wijzigen"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "U heeft geen rechten om iets te wijzigen."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Recente acties"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Mijn acties"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Geen beschikbaar"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Er is iets mis met de database. Verzeker u ervan dat de benodigde tabellen "
+"zijn aangemaakt en dat de database toegankelijk is voor de juiste gebruiker."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Gebruikersnaam:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Wachtwoord:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Datum/tijd"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Gebruiker"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Actie"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "d-n-Y H:i:s"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Dit object heeft geen wijzigingsgeschiedenis. Het is mogelijk niet via de "
+"beheersite toegevoegd."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Alles tonen"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Zoek"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 resultaat"
+msgstr[1] "%(counter)s resultaten"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s totaal"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Opslaan als nieuw item"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Opslaan en nieuw item"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Opslaan en opnieuw bewerken"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Opslaan"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Vul allereerst een gebruikersnaam en wachtwoord in. Vervolgens kunt u de "
+"andere opties instellen."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Gebruikersnaam"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Wachtwoord"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Wachtwoord (nogmaals)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Vul hetzelfde wachtwoord als hierboven in, ter bevestiging."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Geef een nieuw passwoord voor gebruiker <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Bedankt voor de aanwezigheid op de site vandaag."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Log opnieuw in"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Wachtwoordwijziging"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Wachtwoord wijzigen is geslaagd"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Uw wachtwoord is gewijzigd."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Vanwege de beveiliging moet u uw oude en twee keer een nieuw wachtwoord "
+"invoeren, zodat we kunnen controleren of er geen typefouten zijn gemaakt."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Oud wachtwoord:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Nieuw wachtwoord:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Bevestig wachtwoord:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Wijzig mijn wachtwoord"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Wachtwoord hersteld"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Wachtwoord herstellen volooid"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Uw wachtwoord is ingesteld. U kunt nu verder gaan en inloggen."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Bevestiging wachtwoord herstellen"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Voer nieuw wachtwoord in"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Voer het nieuwe wachtwoord twee keer in, zodat we kunnen controleren of er "
+"geen typefouten zijn gemaakt."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Wachtwoord herstel geslaagd"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"De link voor het herstellen van het wachtwoord is ongeldig, misschien omdat "
+"de link al eens is gebruikt. Vraag opnieuw het wachtwoord herstellenaan."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Wachtwoord herstel geslaagd"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"We hebben u de instructies voor het instellen van een nieuw wachtwoord per e-"
+"mail gestuurd. U zou dit spoedig moeten ontvangen."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "U krijgt deze e-mail omdat u om een nieuw wachtwoord heeft gevraagd"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "voor uw gebruikersaccount op %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Gaat u naar de volgende pagina en kies een nieuw wachtwoord:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Uw gebruikersnaam, mocht u deze vergeten zijn:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Bedankt voor het gebruik van onze site!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Het %(site_name)s team"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Uw wachtwoord vergeten? Geef uw e-mailadres op en we sturen u per e-mail de "
+"instructies voor het instellen van een nieuw wachtwoord."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mailadres:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Herstel mijn wachtwoord"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "Alle data"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Selecteer %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Selecteer %s om te wijzigen"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "site"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "sjabloon"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filter:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "view:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Toepassing %r niet gevonden"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Model %(model_name)r niet gevonden in toepassing %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "het gerelateerde `%(app_label)s.%(data_type)s` object"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "gerelateerde `%(app_label)s.%(object_name)s` objecten"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "alle %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "aantal %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Velden van %s objecten"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Geheel getal"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (True danwel False)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Karakterreeks (hooguit %(max_length)s)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Komma-gescheiden gehele getallen"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Datum (zonder tijd)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Datum (met tijd)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Decimaal getal"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "E-mailadres"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Bestandspad"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Decimaal getal"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP-adres"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (True, False of None)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Relatie tot oudermodel"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Telefoonnummer"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Tekst"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Tijd"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "Staat van de VS (twee hoofdletters)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML-tekst"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s lijkt geen urlpattern-object te zijn"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Documentatie bookmarklets"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Om bookmarklets te installeren, sleep de link naar uw "
+"bladwijzers\n"
+"werkbalk, of rechtermuis klik op de link en voeg het toe aan de bladwijzer. "
+"Nu kan\n"
+"de bookmarklet vanuit elke pagina op de site worden gekozen. Let erop dat "
+"het soms\n"
+"noodzakelijk is dat de computer van waaruit de pagina wordt bekeken intern "
+"is.\n"
+"(Raadpleeg uw systeembeheerder of uw computer zich op het interne netwerk "
+"bevind).<p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentatie voor deze pagina"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Springt vanuit elke pagina naar de documentatie voor de view die gegenereerd "
+"wordt door die pagina"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Toon object-ID"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Toont het content-type en unieke ID voor pagina's die een enkel object "
+"voorstellen."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Bewerk dit object (huidig venster)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Gaat naar de beheerpagina voor pagina's die een enkel object weergeven."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Bewerk dit object (nieuwe pagina)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Zoals hierboven, maar opent de beheerpagina in een nieuw venster."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Persoonlijke informatie"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Rechten"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Belangrijke datums"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Groepen"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Gebruiker toevoegen"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Wachtwoord wijzigen is geslaagd"
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Wijzig wachtwoord: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Verplicht. 30 tekens of minder. Alleen alfanumerieke tekens (letters, "
+"cijfers en liggende strepen)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Deze waarde mag alleen letters, getallen en liggende strepen bevatten."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Bevestiging wachtwoord"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "Een gebruiker met deze gebruikersnaam bestaat al."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "De twee ingevulde wachtwoorden zijn niet gelijk."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Dit account is inactief."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Het lijkt erop dat uw browser geen cookies accepteert. Om in te loggen "
+"moeten cookies worden geaccepteerd."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "E-mail"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Dat e-mailadres heeft geen gerelateerd gebruikersaccount. Weet u zeker dat u "
+"zich heeft geregistreerd?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Wachtwoord hersteld op %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Nieuw wachtwoord"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Nieuw wachtwoord bevestigen"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Oud wachtwoord"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr ""
+"Uw oude wachtwoord is niet correct ingevoerd. Voert u het alstublieft "
+"opnieuw in."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "naam"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "codenaam"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "recht"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "rechten"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "groep"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "groepen"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "gebruikersnaam"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "voornaam"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "achternaam"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "e-mailadres"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "wachtwoord"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Gebruik '[algo]$[salt]$[hexdigest]' of gebruik het<a href=\"password/"
+"\">wachtwoord wijzigen formulier</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "stafstatus"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "Bepaalt of de gebruiker kan inloggen op deze beheersite."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "actief"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Bepaalt of deze gebruiker als actief dient te worden behandeld. U kunt dit "
+"uitvinken in plaats van een gebruiker te verwijderen."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "supergebruikerstatus"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Bepaalt dat deze gebruiker alle rechten heeft, zonder deze expliciet toe te "
+"wijzen."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "laatste inlog"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "datum toegetreden"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Bovenop de rechten welke handmatig zijn toegekend, krijgt deze gebruiker ook "
+"alle rechten van de groepen waar hij of zij deel van uitmaakt."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "gebruikersrechten"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "gebruiker"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "gebruikers"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "bericht"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "Afmelden"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "object-ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "kop"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "opmerking"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "waardering #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "waardering #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "waardering #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "waardering #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "waardering #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "waardering #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "waardering #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "waardering #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "is een geldige waardering"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "datum/tijd toegevoegd"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "is openbaar"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "is verwijderd"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Kruis dit vak aan indien de opmerking niet gepast is. Een \"Dit commentaar "
+"is verwijderd\" bericht wordt dan getoond"
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "opmerkingen"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Inhoud-object"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Geplaatst door %(user)s op %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "naam van persoon"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "ip-adres"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "goedgekeurd door de staf"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "vrije opmerking"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "vrije opmerkingen"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "score"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "scoredatum"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "karmascore"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "karmascores"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d waardering door %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Deze opmerking is gemarkeerd door %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "markeerdatum"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "gebruikersmarkering"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "gebruikersmarkeringen"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Gemarkeerd door %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "verwijderingsdatum"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "verwijderd door moderator"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "verwijderd door moderator"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Verwijderd door moderator %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Uw wachtwoord vergeten?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Waarderingen"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Verplicht"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Optioneel"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Plaats een foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Opmerking:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Conceptopmerking"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Uw gebruikersnaam:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"Deze waardering is verplicht omdat u tenminste één andere waardering hebt "
+"ingevoerd."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Deze opmerking is gepost door een gebruiker die minder dan %(count)s "
+"opmerking heeft gepost:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Deze opmerking is gepost door een gebruiker die minder dan %(count)s "
+"opmerkingen heeft gepost:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Deze opmerking is gepost door een twijfelachtige gebruiker:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Alleen POSTs zijn toegestaan"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Eén of meerdere verplichte velden zijn niet ingevuld"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Iemand heeft het opmerkingenformulier gewijzigd (beveilingsinbreuk)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Het opmerkingenformulier heeft een ongeldige 'target' parameter -- het "
+"object-ID was ongeldig"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Het opmerkingenformulier verschaft geen 'voorbeeld' of 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonieme gebruikers kunnen niet stemmen"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Ongeldige opmerkingen-ID"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Niet op uzelf stemmen"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "klassenaam van pythonmodel"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "inhoudstype"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "inhoudstypen"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Voorbeeld: '/about/contact/'. Zorg voor slashes aan het begin en eind."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Deze waarde mag alleen letters, cijfers, liggende strepen en schuine strepen "
+"bevatten."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Geavanceerde opties"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "titel"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "inhoud"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "opmerkingen toestaan"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "sjabloonnaam"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Voorbeeld: 'flatpages/contact_page.html'. Als deze niet is opgegeven, dan "
+"wordt 'flatpages/default.html' gebruikt."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "registratie verplicht"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Indien dit is aangekruist kunnen alleen ingelogde gebruikers deze pagina "
+"bekijken."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "platte pagina"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "platte pagina's"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Geen geometrische waarde opgegeven."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Ongeldige geometrie waarde."
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Ongeldig geometrie type."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f miljoen"
+msgstr[1] "%(value).1f miljoen"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f miljard"
+msgstr[1] "%(value).1f miljard"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f biljoen"
+msgstr[1] "%(value).1f biljoen"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "één"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "twee"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "drie"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "vier"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "vijf"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "zes"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "zeven"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "acht"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "negen"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "vandaag"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "morgen"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "gisteren"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Geef een postcode op volgens het NNNN of ANNNNAAA formaat."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Dit veld dient alleen cijfers te bevatten."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Dit veld dient 7 of 8 cijfers te zijn."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Geef een geldige CUIT op in het XX-XXXXXXXX-X of XXXXXXXXXXXX formaat."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Ongeldige CUIT."
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "Burgenland"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Carinthia"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "Lager Australië"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "Hoger Australië"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "Salzburg"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "Styria"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "Tirol"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "Vorarlberg"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "Wenen"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Geef een postcode op in het formaat XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+"Geef een geldig Oostenrijks Sociaalnummer op in het XXX-XX-XXXX formaat."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Geef een vier cijferige postcode op."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Geef een postcode op in het formaat XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefoonnummers dienen volgens het XX-XXXX-XXXX formaat te zijn."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "Selecteer een geldige braziliaanse staat. Uw keuze is niet geldig."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Ongeldig CPF nummer."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Dit veld dient maximaal 11 cijfers of 14 letters te bevatten."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Ongeldig CNPJ nummer."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Dit vereist minimaal 14 cijfers."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Geef een postcode op in het formaat XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"Geef een geldig Canadees Sociaal Verzekeringsnummer op volgens het XXX-XXX-"
+"XXX formaat."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stad"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Bern"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Genève"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Geef een geldig Zwitsers identiteits- of paspoortnummer op volgens het "
+"X1234567<0 of 1234567890 formaat"
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Geen een geldige Chileense RUT op."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Geef een geldige Chileense RUT op. Het formaat is XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "De Chileense RUT is ongeldig."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Beieren"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlijn"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Western Pomerania"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Nedersaksen"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Noord Rijn-Westfalen"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rijnland-Palts"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saksen"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saksen-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Sleeswijk-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thüringen"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Geef een postcode op in het formaat XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Geef een geldig Duits identiteitsnummer op volgens het XXXXXXXXXXX-XXXXXXX-"
+"XXXXXXX-X formaat."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Arava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almeria"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Avila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Balearen"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Caceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cadiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castello"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Cordoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruna"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaen"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "Leon"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Malaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarre"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencië"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Bizkaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalusië"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragon"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Prinsdom Asturië"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Balearen"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Baskenland"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Canarische Eilanden"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castilië-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castilië en León"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Catalonië"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicië"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Vul een postcode in volgens het 01XXX - 52XXX formaat."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Geef een geldig telefoonnummer op in één van de volgende formaten: "
+"6XXXXXXXX, 8XXXXXXXX of 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Geef een geldige NIF, NIE of CIF op."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Geef een geldige NIF of NIE op."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Ongeldig controlegetal voor NIF."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Ongeldig controlegetal voor NIE."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Ongeldig controlegetal voor CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+"Geef een geldig bankrekeningnummer op in het formaat XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Ongeldig controlegetal voor het bankrekeningnummer."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Geef een geldig Fins sociaal nummer op."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Geef een geldige postcode op in het formaat XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"Geef een geldig IJslands identificatienummer op. Het formaat is XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Het IJslandse identificatienummer is niet geldig."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Geef een geldige postcode op."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Geef een geldig Sociaal Nummer op."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Geef een geldig BTW nummer op."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Geef een geldige postcode op in het formaat XXXXXXX of XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "de Staat Mexico"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:22
+msgid "Enter a valid postal code"
+msgstr "Geef een geldige postcode op"
+
+#: contrib/localflavor/nl/forms.py:53
+msgid "Enter a valid phone number"
+msgstr "Geef een geldig telefoonnummer op"
+
+#: contrib/localflavor/nl/forms.py:79
+msgid "Enter a valid SoFi number"
+msgstr "Geef een geldig SoFi nummer"
+
+#: contrib/localflavor/nl/forms.py:115
+msgid "Enter a valid Dutch bank account number"
+msgstr "Geef een geldig Nederlands bankrekeningnummer op"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friesland"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburg"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Noord-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Noord-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Zuid-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Geef een geldig Noors Sociaal Nummer op."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Dit veld vereist 8 cijfers."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Dit veld vereist 11 cijfers."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr "Het Nationaal Identificatie Nummer bestaat uit 11 cijfers."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Verkeerd controlecijfer voor het Nationaal Identificatie Nummer."
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+"Geef een fiscaal nummer (NIP) op volgens het formaat XXX-XXX-XX-XX or XX-XX-"
+"XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Verkeerd controlecijfer voor het fiscaal nummer (NIP)."
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+"Het Nationaal Zakelijk Registratie Nummer (REGON) bestaat uit 7 of 9 cijfers."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+"Verkeerd controlecijfer op het Nationaal Zakelijk Registratie Nummer (REGON)."
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Geef een postcode op in het formaat XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Neder-Silezië"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Klein-Polen"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Subcarpatia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Groot-Polen"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "West Pomerania"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "Geef een geldige CIF op."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "Geef een geldige CNP op."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr ""
+"Geef een geldige IBAN volgens het ROXX-XXXX-XXXX-XXXX-XXXX-XXXX formaat"
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Telefoonnummers moeten volgens het XXXX-XXXXXX formaat te zijn."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Geef een geldige postcode in het formaat XXXXXX"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Geef een postcode op in het formaat XXXXX of XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Regio Banská Bystrica"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Regio Bratislava"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Regio Košice"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Regio Nitra"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Regio Prešov"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Regio Trenčín"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Regio Trnava"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Regio Žilina"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Geef een geldige postcode op."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall en de Scilly-Eilanden"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "Oost-Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Groot-Londen"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Groot-Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "Noord-Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "Zuid-Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West-Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "West-Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West-Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "Graafschap Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "Graafschap Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "Graafschap Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "Graafschap Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "Graafschap Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "Graafschap Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "Zuid-Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West-Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Schotse-Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Centraal-Schotland"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries en Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkneyeilanden"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetlandeilanden"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Buiten-Hebriden"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Engeland"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Noord-Ierland"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Schotland"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Wales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Geef een geldige postcode op volgens het XXXXX of XXXXX-XXXX formaat."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Geef een geldig V.S. Sociaalnummer op in het XXX-XX-XXXX formaat."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Geef een geldig Zuid-Afrikaans identificatienummer op"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Geef een geldige Zuid-Afrikaanse postcode op"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Oost-Kaap"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Vrijstaat"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Noord-Kaap"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "Noordwest"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "West-Kaap"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "omgeleid via"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Dit moet een absoluut pad zijn, zonder de domeinnaam. Bijvoorbeeld: '/events/"
+"search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "omleiden naar"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Dit kan een absoluut pad (zoals hierboven) zijn of een volledige URL "
+"beginnend met 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "omleiding"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "omleidingen"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "sessiesleutel"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "sessiegegevens"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "verloopdatum"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sessie"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sessies"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "domeinnaam"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "weergavenaam"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "sites"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Deze waarde mag alleen letters, cijfers, liggende strepen en "
+"verbindingsstrepen bevatten."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Hoofdletters zijn hier niet toegestaan."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Kleine letters zijn hier niet toegestaan."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Geef alleen cijfers op, gescheiden door komma's."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Geef geldige e-mailadressen op, gescheiden door komma's."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Geef een geldig IP-adres op."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Lege waarden zijn hier niet toegestaan."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Niet-numerieke karakters zijn hier niet toegestaan."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Deze waarde kan niet alleen uit cijfers bestaan."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Geef een geheel getal op."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Alleen alfabetische karakters zijn toegestaan"
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Ongeldige datum: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Geef een geldige datum in JJJJ-MM-DD formaat."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Geef een geldige tijd in UU:MM formaat."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Geef geldige datum/tijd in JJJJ-MM-DD UU:MM formaat."
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "Geef een geldig e-mailadres op."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Er was geen bestand verstuurd. Controleer het coderingstype van het "
+"formulier."
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Bestand ongeldig. Het bestand dat is gegeven is geen afbeelding of is "
+"beschadigd."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "De URL %s wijst niet naar een geldige afbeelding."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Telefoonnummers moeten volgens het XXX-XXX-XXXX formaat zijn. \"%s\" is "
+"ongeldig."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "De URL %s wijst niet naar een geldige QuickTime video."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "Een geldige URL is vereist."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Geldige HTML is vereist. De specifieke fouten zijn:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Foute XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Ongeldige URL: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "De URL %s is niet een werkende link."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Geef een geldige afkorting van een staat in de VS."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Pas op uw taalgebruik! Gebruik van %s niet toegestaan."
+msgstr[1] ""
+"Pas op uw taalgebruik! Gebruik van de woorden %s is niet toegestaan."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Dit veld moet overeenkomen met het '%s'-veld."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Voer tenminste één veld in."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Voer waarden in beide velden in of laat beide leeg."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Dit veld moet opgegeven worden indien %(field)s %(value)s is"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Dit veld moet worden opgegeven indien %(field)s niet %(value)s is"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Dubbele waarden zijn niet toegestaan."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "De waarde moet tussen %(lower)s en %(upper)s zijn."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "De waarde moet minimaal %s zijn."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "De waarde mag niet meer zijn dan %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "De waarde moet een macht van %s zijn."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Geef een geldig decimaal getal."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Geef een geldig decimaal getal met hooguit %s cijfer."
+msgstr[1] "Geef een geldig decimaal getal met hooguit %s cijfers."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Geef een geldig decimaal getal waarbij het gehele getal minimaal %s cijfer "
+"heeft."
+msgstr[1] ""
+"Geef een geldig decimaal getal waarbij het gehele getal minimaal %s cijfers "
+"heeft."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Geef een decimaal getal met hooguit %s cijfer achter de komma."
+msgstr[1] "Geef een decimaal getal met hooguit %s cijfers achter de komma."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Geef een geldig decimaal getal."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Zorg ervoor dat het bestand minstens %s bytes groot is."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Zorg ervoor dat het bestand hoogstens %s bytes groot is."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Het formaat van dit veld is foutief."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Dit veld is ongeldig."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Kan niks ophalen van %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"De geretourneerde URL %(url)s bevat een ongeldige Content-Type '%"
+"(contenttype)s."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Sluit de niet gesloten %(tag)s tag op regel %(line)s. (Regel start met \"%"
+"(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Tekst beginnend op regel %(line)s is in deze context niet toegestaan. (Regel "
+"start met \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" op regel %(line)s is een ongeldig attribuut. (Regel start met "
+"\"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" op regel %(line)s is een ongeldige tag. (Regel start met \"%"
+"(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Een of meerdere attributen ontbreken bij een tag op regel %(line)s. (Regel "
+"start met \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"De \"%(attr)s\" attribuut op regel %(line)s heeft een ongeldige waarde. "
+"(Regel start met \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+"%(object)s van het type %(type)s bestaat al voor het gegeven %(field)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s met deze %(fieldname)s bestaat al."
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "Dit veld is verplicht."
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "De waarde moet een geheel getal zijn."
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "De waarde moet of True (Waar) of False (Onwaar) zijn."
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "Dit veld mag niet leeg zijn."
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "Geef geldige datum/tijd in JJJJ-MM-DD UU:MM[:ss[.uuuuuu]] formaat."
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "De waarde moet een getal zijn."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "De waarde moet of None (leeg), True (Waar) of False (Onwaar) zijn."
+
+#: db/models/fields/__init__.py:937 db/models/fields/__init__.py:950
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Geef een geldige tijd in UU:MM[:ss[.uuuuuu]] formaat."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Geef een geldige bestandsnaam."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Geef een geldig %s veld."
+
+#: db/models/fields/related.py:759
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Houd \"Control\", of \"Command\" op een Mac, ingedrukt om meerdere te "
+"selecteren."
+
+#: db/models/fields/related.py:839
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Geef een geldig %(self)s IDs. De waarde %(value)r is ongeldig."
+msgstr[1] "Geef een geldig %(self)s IDs. De waarden %(value)r zijn ongeldig."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Geef een geldige waarde."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Zorg ervoor dat waarde korter is dan %(max)d tekens (huidige lengte %(length)"
+"d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Zorg ervoor dat uw tekst langer is dan %(min)d tekens (huidige lengte %"
+"(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Zorg ervoor dat de waarde kleiner of gelijk is aan %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Zorg ervoor de waarde groter of gelijk is aan %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Geef een getal op."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Zorg dat er minder dan %s cijfers zijn."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Zorg dat er minder dan %s cijfers na de komma zijn."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Zorg dat er minder dan %s cijfers voor de komma zijn."
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "Geef een geldige datum op."
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "Geef een geldige tijd op."
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "Geef een geldige datum/tijd op."
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "Geen bestand werd aangeboden."
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Het gegeven bestand is leeg."
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "Geef een geldige URL op."
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "Deze URL lijkt niet te werken."
+
+#: forms/fields.py:601 forms/fields.py:652
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Selecteer een geldige keuze. %(value)s is geen beschikbare keuze."
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "Geef een lijst op met waardes."
+
+#: forms/fields.py:832
+msgid "Enter a valid IPv4 address."
+msgstr "Geef een geldig IPv4-adres op."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Selecteer een geldige keuze. Deze keuze is niet beschikbaar."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Selecteer een geldige keuze. %s is geen beschikbare keuze."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Zorg ervoor dat uw tekst korter is dan %s karakter."
+msgstr[1] "Zorg ervoor dat uw tekst korter is dan %s karakters."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Regeleindes zijn niet toegestaan."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Selecteer een geldige keuze; '%(data)s is niet in %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Geef een geheel getal op tussen -32.768 en 32.767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Geef een geheel getal op."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Geef een geheel getal op tussen 0 en 32.767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "ja,nee,misschien"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "middernacht"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "middag"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "maandag"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "dinsdag"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "woensdag"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "donderdag"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "vrijdag"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "zaterdag"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "zondag"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "ma"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "di"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "woe"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "don"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "vrij"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "zat"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "zon"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "januari"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "februari"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "maart"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "april"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "mei"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "juni"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "juli"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "augustus"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "september"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "oktober"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "november"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "december"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mrt"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mei"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "aug"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dec"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "aug."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "dec."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "of"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "jaar"
+msgstr[1] "jaren"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "maand"
+msgstr[1] "maanden"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "week"
+msgstr[1] "weken"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dag"
+msgstr[1] "dagen"
+
+# In the timesince context it is stilistically wrong to use the plural for hour in Dutch.
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "uur"
+msgstr[1] "uur"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuut"
+msgstr[1] "minuten"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minuten"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "j-n-Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "j-n-Y H:i"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "j F"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "De %(verbose_name)s is succesvol aangemaakt."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "De %(verbose_name)s is succesvol aangepast."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "De %(verbose_name)s is verwijderd."
diff --git a/webapp/django/conf/locale/nl/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/nl/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..22015ed
--- /dev/null
+++ b/webapp/django/conf/locale/nl/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/nl/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/nl/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..e9a5d66
--- /dev/null
+++ b/webapp/django/conf/locale/nl/LC_MESSAGES/djangojs.po
@@ -0,0 +1,115 @@
+# Dutch Javascript translations.
+# Copyright (C) 2006
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-02-27 10:34+0100\n"
+"PO-Revision-Date: 2008-02-27 11:22+0100\n"
+"Last-Translator: jdetaeye <jdetaeye@frepple.com>\n"
+"Language-Team: nl <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Beschikbare %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Kies allemaal"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Toevoegen"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Gekozen %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Selecteer uw keuze(s) en klik "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Allemaal verwijderen"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid "January February March April May June July August September October November December"
+msgstr "januari februari maart april mei juni juli augustus september oktober november december"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "Z M D W D V Z"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "zondag maandag dinsdag woensdag donderdag vrijdag zaterdag"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Tonen"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Verbergen"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Nu"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Klok"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Kies een tijd"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Middernacht"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 uur"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "12 uur"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Vandaag"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalender"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Gisteren"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Morgen"
+
diff --git a/webapp/django/conf/locale/no/LC_MESSAGES/django.mo b/webapp/django/conf/locale/no/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..371dab5
--- /dev/null
+++ b/webapp/django/conf/locale/no/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/no/LC_MESSAGES/django.po b/webapp/django/conf/locale/no/LC_MESSAGES/django.po
new file mode 100644
index 0000000..e96f104
--- /dev/null
+++ b/webapp/django/conf/locale/no/LC_MESSAGES/django.po
@@ -0,0 +1,4502 @@
+# translation of django.po to norwegian
+# Copyright (C) 2005 and beyond
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-05-16 10:12+0200\n"
+"PO-Revision-Date: 2008-08-19 21:57+0200\n"
+"Last-Translator: Christian Mikalsen and Jon Lønne\n"
+"Language-Team: Norsk <no@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "Arabisk"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "Bengalsk"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "Bulgarsk"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "Katalansk"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "Tsjekkisk"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "Walisisk"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "Dansk"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "Tysk"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "Gresk"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "Engelsk"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "Spansk"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "Estisk"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "Argentinsk spansk"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "Baskisk"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "Persisk"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "Finsk"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "Fransk"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "Irsk"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "Galisisk"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "Ungarsk"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "Hebraisk"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "Kroatisk"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "Islandsk"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "Italiensk"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "Japansk"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "Georgisk"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "Koreansk"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "Khmer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "Latvisk"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "Litauisk"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "Makedonsk"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "Nederlandsk"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "Norsk"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "Polsk"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "Portugisisk"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "Brasiliansk portugisisk"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "Rumensk"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "Russisk"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "Slovakisk"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "Slovensk"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "Serbisk"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "Svensk"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "Tamil"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "Telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "Tyrkisk"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "Ukrainsk"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "Simplifisert kinesisk"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "Tradisjonell kinesisk"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Etter %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Alle"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Når som helst"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "I dag"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Siste syv dager"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Denne måneden"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "I år"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Ja"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Nei"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Ukjent"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "tid for handling"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "objekt-ID"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "objekt repr"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "handlingsflagg"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "endre melding"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "logginnlegg"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "logginnlegg"
+
+#: contrib/admin/options.py:56 contrib/admin/options.py:115
+msgid "None"
+msgstr "Ingen"
+
+#: contrib/admin/options.py:326
+#, python-format
+msgid "Changed %s."
+msgstr "Endret %s."
+
+#: contrib/admin/options.py:326 contrib/admin/options.py:336
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "og"
+
+#: contrib/admin/options.py:331
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Opprettet %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:335
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Endret %(list)s for %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:340
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Slettet %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:344
+msgid "No fields changed."
+msgstr "Ingen felt endret."
+
+#: contrib/admin/options.py:405 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" ble opprettet."
+
+#: contrib/admin/options.py:409 contrib/admin/options.py:442
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "Du kan redigere videre nedenfor."
+
+#: contrib/admin/options.py:419 contrib/admin/options.py:452
+#, python-format
+msgid "You may add another %s below."
+msgstr "Du kan opprette ny %s under."
+
+#: contrib/admin/options.py:440
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" ble endret."
+
+#: contrib/admin/options.py:448
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" ble endret. Du kan redigere det igjen under."
+
+#: contrib/admin/options.py:514
+#, python-format
+msgid "Add %s"
+msgstr "Opprett %s"
+
+#: contrib/admin/options.py:591
+#, python-format
+msgid "Change %s"
+msgstr "Rediger %s"
+
+#: contrib/admin/options.py:622
+msgid "Database error"
+msgstr "Databasefeil"
+
+#: contrib/admin/options.py:671
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" ble slettet."
+
+#: contrib/admin/options.py:678
+msgid "Are you sure?"
+msgstr "Er du sikker?"
+
+#: contrib/admin/options.py:705
+#, python-format
+msgid "Change history: %s"
+msgstr "Endringshistorikk: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Vennligst angi korrekt brukernavn og passord. Merk at det er forskjell på "
+"små og store bokstaver."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Du må logge inn igjen, fordi økten din har blitt tidsavbrutt. Slapp av, "
+"innlegget ditt ble lagret."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Det ser ut som om nettleseren din ikke støtter informasjonskapsler "
+"(cookies). Vennligst konfigurer nettleseren din og prøv igjen."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Brukernavnet kan ikke inneholde tegnet '@'."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "E-postadressen er ikke brukernavnet ditt, prøv '%s' isteden."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Nettstedsadministrasjon"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Logg inn"
+
+#: contrib/admin/util.py:138
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "En eller flere %(fieldname)s i %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:143
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "En eller flere %(fieldname)s i %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Dato:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Tid:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Nå:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Endre:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Fant ikke siden"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Beklager, men siden du spør etter finnes ikke."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Hjem"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Tjenerfeil"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Tjenerfeil (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Tjenerfeil <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Det har oppstått en feil. Feilen er blitt rapportert til administrator via e-"
+"post, og vil bli fikset snart. Takk for din tålmodighet."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Velkommen,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentasjon"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Endre passord"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Logg ut"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django administrasjonsside"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django-administrasjon"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Opprett"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Historikk"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Vis på nettside"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Vennligst korriger feilen under."
+msgstr[1] "Vennligst korriger feilene under."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Opprett %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filtrering"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Slett"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Hvis du sletter %(object_name)s '%(escaped_object)s', vil også slette "
+"relaterte objekter, men du har ikke tillatelse til å slette følgende "
+"objekttyper:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Er du sikker på at du vil slette %(object_name)s \"%(escaped_object)s\"? "
+"Alle de følgende relaterte objektene vil bli slettet:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Ja, jeg er sikker"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "Etter %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modeller tilgjengelig i %(name)s-applikasjonen."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Endre"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Du har ikke rettigheter til å redigere noe."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Siste handlinger"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Mine handlinger"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Ingen tilgjengelige"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Noe er galt med databaseinstallasjonen din. Sørg for at databasetabellene er "
+"opprettet og at brukeren har de nødvendige rettigheter."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Brukernavn:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Passord:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Dato/tid"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Bruker"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Handling"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "H:i, j. M Y"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Dette objektet har ingen endringshistorikk. Det var sannsynligvis ikke "
+"opprettet med administrasjonssiden."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Vis alle"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Gå"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "Ett resultat"
+msgstr[1] "%(counter)s resultater"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s totalt"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Lagre som ny"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Lagre og opprett ny"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Lagre og fortsett å redigere"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Lagre"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Skriv først inn brukernavn og passord. Deretter vil du få mulighet til å "
+"endre flere brukerinnstillinger."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Brukernavn"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Passord"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Passord (gjenta)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Skriv inn det samme passordet som ovenfor, for verifisering."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Skriv inn et nytt passord for brukeren <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Takk for at du valgte å bruke kvalitetstid på nettstedet i dag."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Logg inn igjen"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Endre passord"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Passord endret"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Ditt passord ble endret."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Venligst oppgi ditt gamle passord av sikkerhetsgrunner. Oppgi deretter "
+"ditt nye passord to ganger, slik at vi kan kontrollere at det er korrekt."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Gammelt passord:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Nytt passord:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Gjenta nytt passord:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Endre passord"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Nullstill passord"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Passord nullstilt"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Passordet ditt er satt. Du kan nå logge inn."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Bekreftelse på nullstilt passord"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Oppgi nytt passord"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Venligst oppgi ditt nye passord to ganger, for å sikre at du oppgir det "
+"korrekt."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Passordet ble ikke nullstilt"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"Nullstillingslinken er ugyldig, kanskje fordi den allerede har vært brukt. "
+"Vennligst nullstill passordet ditt på nytt."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Passordet ble nullstilt"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Vi har sendt deg en e-post med instruksjoner for nullstilling av passord. Du "
+"bør motta den om kort tid."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"Du har mottatt denne e-posten fordi du har bedt om nullstilling av passordet "
+"ditt"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "for din konto på %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Vennligst gå til følgende side og velg et nytt passord:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Brukernavnet ditt, i tilfelle du har glemt det:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Takk for at du bruker siden vår!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Hilsen %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Glemt passordet ditt? Oppgi e-postadressen din under, så sender vi deg en e-"
+"post med instruksjoner for nullstilling av passord."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-postadresse:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Nullstill mitt passord"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "Alle datoer"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Velg %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Velg %s du ønsker å redigere"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "nettside"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "mal"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filter:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "view:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Fant ikke applikasjonen %r"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Fant ikke modellen %(model_name)r i applikasjonen %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "det relaterte `%(app_label)s.%(data_type)s`-objektet"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "modell:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "relaterte `%(app_label)s.%(object_name)s`-objekter"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "alle %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "antall %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Felter på %s-objekter"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Heltall"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Boolsk (True eller False)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Tekst (opp til %(max_length)s tegn)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Heltall adskilt med komma"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Dato (uten tid)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Dato (med tid)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Desimaltall"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "E-postadresse"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Filsti"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Flyttall"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP-adresse"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolsk (True, False eller None)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Relasjon til foreldermodell"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Telefonnummer"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Tekst"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Tid"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "Nettadresse"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "Stat (i USA, to store bokstaver)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML-tekst"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ser ikke ut til å være et urlpattern-objekt"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bokmerker"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentasjonsbokmerker"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">For å installere bokmerker, dra linken til verktøylinja\n"
+"for bokmerker, eller høyreklikk og legg til i bokmerker. Nå kan du du velge\n"
+"bokmerket fra hvilken som helst side på nettstedet. Noen av disse\n"
+"bokmerkene krever at datamaskinen du bruker er markert som \"intern\"\n"
+"(kontakt din systemadministrator hvis du er usikker på om maskinen din er "
+"\"intern\").</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Dokumentasjon for denne siden"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Hopp fra hvilken som helst side til dokumentasjonen for visningsfunksjonen "
+"som genererte den siden."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Vis objekt-ID"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Viser \"content-type\" og en unik ID for sider som representerer et enkelt "
+"objekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Endre dette objektet (nåværende vindu)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Hopper til administrasjonssiden for sider som representerer et enkelt objekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Endre dette objektet (nytt vindu)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Samme som over, men åpner administrasjonssiden i et nytt vindu."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Personlig informasjon"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Rettigheter"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Viktige datoer"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Grupper"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Opprett ny bruker"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Passordet er endret."
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Endre passord: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Påkrevet. 30 tegn eller færre. Kun alfanumeriske tegn (bokstaver, tall og "
+"understreker)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Feltet kan kun inneholde bokstaver, nummer og understreker."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Passordbekreftelse"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "Det eksisterer allerede en bruker med dette brukernavnet."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "De to passordfeltene er ikke like."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Denne kontoen er inaktiv."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Din nettleser ser ikke ut til å støtte informasjonskapsler (cookies). "
+"Informasjonskapsler er påkrevet for å logge inn."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "E-post"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Den oppgitte e-postadressen er ikke registrert hos oss. Er du sikker på at "
+"du er registrert?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Nullstilling av passord på %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Nytt passord"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Bekreft nytt passord"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Gammelt passord"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Ditt gamle passord er galt. Vennligst prøv igjen."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "navn"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "kodenavn"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "rettighet"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "rettigheter"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "gruppe"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "grupper"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "brukernavn"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "fornavn"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "etternavn"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "e-postadresse"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "passord"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Bruk '[algo]$[salt]$[hexdigest]' eller <a href=\"password/\">endre passord-"
+"skjemaet</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "administrasjonsstatus"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "Angir at brukeren kan logge inn på denne administrasjonssiden."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "aktiv"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Angir at denne brukeren er aktiv. Avmerk denne i stedet for å slette kontoen."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "superbruker"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Angir at denne brukeren har alle rettigheter uten å eksplisitt sette de."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "siste innlogging"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "registrert"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"I tillegg til de rettighetene som blir angitt manuelt, får brukeren også "
+"rettighetene til gruppene han/hun er med i."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "Brukerrettigheter"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "bruker"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "brukere"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "melding"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "Logget ut"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "objekt-ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "overskrift"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "kommentar"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "rangering #1 "
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "rangering #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "rangering #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "rangering #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "rangering #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "rangering #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "rangering #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "rangering #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "er gyldig rangering"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "dato/tid for innsendelse"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "er tilgjengelig for alle"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "er fjernet"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Huk av denne hvis kommentaren er upassende. Meldingen \"Denne kommentaren "
+"har blitt fjernet\" vil bli vist i stedet."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "kommentarer"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Content-objekt"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Skrevet av %(user)s, %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "personens navn"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "IP-adresse"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "godkjent av moderator"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "åpen kommentar"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "åpne kommentarer"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "poeng"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "poengdato"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "karmapoeng"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "karmapoeng"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d rangering av %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Denne kommentaren er flagget av %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "flaggdato"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "brukerflagg"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "brukerflagg"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Flagg med %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "dato fjernet"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "fjernet av  moderator"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "fjernet av moderator"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Fjernet av moderator %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Har du glemt passordet ditt?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Rangeringer"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Påkrevet"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Valgfri"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Send et bilde"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Kommentar:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Forhåndvis kommentar"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Ditt navn:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Denne rangeringen er påkrevet, fordi du har rangert tidligere."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Denne kommentaren var skrevet av en bruker som har skrevet mindre enn %"
+"(count)s kommentarer:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Denne kommentaren var skrevet av en bruker som har skrevet mindre enn %"
+"(count)s kommentarer:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Denne kommentaren er skrevet av en upålitelig bruker:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Kun POST er tillatt"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "En eller flere av feltene som er påkrevet ble ikke sendt"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Noen har endret på kommentarskjemaet (sikkerhetsbrudd)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Kommentarskjemaet hadde en ugyldig 'target'-verdi: objekt-IDen var ugyldig"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Kommentarskjemaet mangler 'preview'- eller 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonyme brukere kan ikke stemme"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Ugyldig kommentar-ID"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Du kan ikke stemme på deg selv"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "python-modell klassenavn"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "innholdstype"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "innholdstyper"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Eksempel: '/om/kontakt/'. Kontroller at det er en skråstrek foran og bak."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Dette feltet kan bare inneholde bokstaver, nummer, understreker, "
+"bindestreker eller skråstreker."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Avanserte innstillinger"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "tittel"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "innhold"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "tillat kommentarer"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "malnavn"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Eksempel: 'flatpages/kontakt_side.html'. Hvis denne ikke er gitt, vil "
+"'flatpages/default.html' bli brukt."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "registrering kreves"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Hvis denne er krysset av, kan kun innloggede brukere se siden."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "flatside"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "flatsider"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Ingen geometriverdi oppgitt."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Ugyldig Geometry-verdi"
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Ugyldig Geometry-type"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f million"
+msgstr[1] "%(value).1f millioner"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f milliard"
+msgstr[1] "%(value).1f milliarder"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f billion"
+msgstr[1] "%(value).1f billioner"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "én"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "to"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "tre"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "fire"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "fem"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "seks"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "sju"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "åtte"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "ni"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "i dag"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "i morgen"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "i går"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Oppgi et postnummer på formen NNNN eller ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Feltet krever kun tall."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Ugyldig CUIT."
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr ""
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Oppgi et postnummer på formen XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Oppgi et postnummer på formen XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefonnummeret må være i XXX-XXX-XXXX format."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr ""
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Oppgi et postnummer på formen XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Oppgi et postnummer på formen XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Oppgi et postnummer på formen XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Oppgi et gyldig postnummer."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Oppgi et gyldig italiensk personnummer."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Oppgi et gyldig VAT-nummer."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Oppgi et postnummer på formen XXXXXXX eller XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Oppgi et gyldig postnummer."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Oppgi et gyldig norsk personnummer."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Dette feltet krever åtte siffer."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Dette feltet krever 11 siffer."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Oppgi et postnummer på formen XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Telefonnummeret må være i XXXX-XXXXXX format."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Oppgi et postnummer på formen XXXXXX."
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Oppgi et postnummer på formen XXXXX or XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Oppgi et gyldig postnummer."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Oppgi et postnummer på formen XXXXX eller XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Oppgi et gyldig postnummer."
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "omadresser fra"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Dette bør være en fullstendig sti uten domenenavn. Eksempel: '/hendelser/"
+"finn/"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "omadresser til"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Dette kan enten være en fullstendig sti (som over), eller en fullstendig "
+"nettadresse som starter med 'http://'"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "omadressering"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "omadresseringer"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "sesjonsnøkkel"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "sesjonsdata"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "utløpsdato"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sesjon"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sesjoner"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "domenenavn"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "visningsnavn"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "nettsider"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Feltet kan bare inneholde bokstaver, nummer, understreker eller "
+"bindestreker."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Store bokstaver er ikke tillatt her."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Små bokstaver er ikke tillatt her."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Oppgi kun tall adskilt med komma."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Oppgi gyldige e-postadresser adskilt med komma."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Vennligst oppgi en gyldig IP-adresse."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Feltet kan ikke være tomt."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Feltet kan kun bestå av tall."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Feltet kan ikke bare bestå av siffer."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Oppgi et heltall."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Kun bokstaver er tillatt her."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Ugyldig dato: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Oppgi en gyldig dato på formen ÅÅÅÅ-MM-DD."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Oppgi tid på formen TT:MM."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Oppgi dato og tid på formen ÅÅÅÅ-MM-DD TT:MM."
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "Oppgi en gyldig e-postadresse."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ingen fil ble sendt. Sjekk \"encoding\"-typen på skjemaet."
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Last opp et gyldig bilde. Filen du lastet opp var ødelagt eller ikke et "
+"bilde."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "Nettadressen %s peker ikke på et gyldig bilde."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefonnummeret må være på formen XXX-XXX-XXXX. \"%s\" er ugyldig."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "Nettadressen %s peker ikke på en gyldig QuickTime-video."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "En gyldig nettadresse er påkrevet."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Gyldig HTML er påkrevet. Feilene var:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Ikke velformet XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Ugyldig nettadresse: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Nettadressen %s fører til en side som ikke eksisterer."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Oppgi en gyldig amerikansk delstatsforkortelse."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Pass munnen din! Ordet %s er ikke tillatt her."
+msgstr[1] "Pass munnen din! Ordene %s er ikke tillatt her."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Feltet må være det samme som '%s'-feltet."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Vennligst oppgi noe i minst ett felt."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Vennligst oppgi noe i begge felter, eller la begge være blanke."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Feltet kreves hvis %(field)s er lik %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Feltet kreves hvis %(field)s ikke er lik %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Like verdier er ikke tillatt."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Verdien må være mellom %(lower)s og %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Verdien må minst være %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Verdien kan ikke være mer enn %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Verdien må være et kvadrat av %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Vennligst oppgi et gyldig desimaltall."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Oppgi et desimaltall med maks %s siffer."
+msgstr[1] "Oppgi et desimaltall med maks %s siffer."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Oppgi et desimaltall hvor heltallsdelen er maks %s siffer."
+msgstr[1] "Oppgi et desimaltall hvor heltallsdelen er maks %s siffer."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Oppgi et desimaltall med maks %s siffer bak komma."
+msgstr[1] "Oppgi et desimaltall med maks %s siffer bak komma."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Vennligst oppgi et gyldig flyttall."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Vær sikker på at filen du prøver å laste opp minst er %s bytes."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Vær sikker på at filen du prøver å laste opp ikke er mer enn %s bytes."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Formatet i dette feltet er feil."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Feltet er ugyldig."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Klarte ikke å hente noe fra %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"Nettadressen %(url)s returnerte den ugyldige Content-Type-headeren "
+"'%(contenttype)s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Vennligst lukk taggen %(tag)s på linje %(line)s. (Linjen starer med "
+"\"%(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Deler av teksten som starter på linje %(line)s er ikke tillatt. (Linjen "
+"starter med \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" på linje %(line)s er et ugyldig attributt. (Linjen starter med "
+"\"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" på linje %(line)s er et ugyldig element. (Linjen starter med "
+"\"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Et element på linje %(line)s mangler et av de påkrevde attributtene. (Linjen "
+"starter med \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"\"%(attr)s\"-attributtet på linje %(line)s har en ugyldig verdi. (Linjen "
+"starter med \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s med %(type)s finnes allerede for angitt %(field)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s med %(fieldname)s finnes allerede."
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "Feltet er påkrevet."
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "Verdien må være et heltall."
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "Verdien må være True eller False."
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "Feltet kan ikke være tomt."
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "Oppgi dato og tid på formen ÅÅÅÅ-MM-DD TT:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "Verdien må være et desimaltall."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "Verdien må være None, True eller False."
+
+#: db/models/fields/__init__.py:937 db/models/fields/__init__.py:950
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Oppgi tiden på formen TT:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Oppgi et gyldig filnavn."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Vennligst oppgi en/et gyldig %s."
+
+#: db/models/fields/related.py:782
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Hold nede \"Control\", eller \"Command\" på en Mac, for å velge mer enn en."
+
+#: db/models/fields/related.py:862
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Oppgi gyldige %(self)s-ID-er. Verdien %(value)r er ugyldig."
+msgstr[1] ""
+"Oppgi gyldige %(self)s-ID-er. Verdiene %(value)r er ugyldige."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Oppgi en gyldig verdi."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Verdien kan maksimalt ha %(max)d tegn (den er %(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Verdien må minimum ha %(min)d tegn (den er %(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Verdien må være mindre enn eller lik %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Verdien må være større enn eller lik %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Oppgi et tall."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Verdien kan ikke ha mer enn %s siffer totalt."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Verdien kan ikke ha mer enn %s desimaler."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Verdien kan ikke ha mer enn %s siffer foran komma."
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "Oppgi en gyldig dato."
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "Oppgi et gyldig tidspunkt."
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "Oppgi gyldig dato og tidspunkt."
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "Ingen fil ble sendt."
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Filen er tom."
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "Oppgi en gyldig nettadresse."
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "Nettadressen fører til en side som ikke eksisterer."
+
+#: forms/fields.py:601 forms/fields.py:652
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Velg et gyldig valg. %(value)s er ikke et av de tilgjengelige valgene."
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "Oppgi en liste med verdier."
+
+#: forms/fields.py:832
+msgid "Enter a valid IPv4 address."
+msgstr "Oppgi en gyldig IPv4-adresse."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Velg et gyldig valg. Valget er ikke et av de tilgjengelige valgene."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Velg et gyldig valg. %s er ikke et av de tilgjengelige valgene."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Teksten er kortere enn %s tegn."
+msgstr[1] "Teksten er kortere enn %s tegn."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Linjeskift er ikke tillatt."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Velg et gyldig valg. '%(data)s' er ikke i %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Oppgi et heltall mellom -32768 og 32767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Oppgi et positivt heltall."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Oppgi et heltall mellom 0 og 32767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "ja,nei,kanskje"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "midnatt"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "12:00"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "mandag"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "tirsdag"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "onsdag"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "torsdag"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "fredag"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "lørdag"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "søndag"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "man"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "tirs"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "ons"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "tors"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "fre"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "lør"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "søn"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "januar"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "februar"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "mars"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "april"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "mai"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "juni"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "juli"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "august"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "september"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "oktober"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "november"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "desember"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "aug"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "des"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "aug."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "des."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "eller"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "år"
+msgstr[1] "år"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "måned"
+msgstr[1] "måneder"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "uke"
+msgstr[1] "uker"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dag"
+msgstr[1] "dager"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "time"
+msgstr[1] "timer"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minutt"
+msgstr[1] "minutter"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutter"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "j. F Y"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "j. F Y H:i"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "j. F"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s ble opprettet."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s ble oppdatert."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s ble slettet."
diff --git a/webapp/django/conf/locale/no/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/no/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..45dbab2
--- /dev/null
+++ b/webapp/django/conf/locale/no/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/no/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/no/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..cab59a3
--- /dev/null
+++ b/webapp/django/conf/locale/no/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# translation of djangojs.po to norwegian
+# Copyright (C) 2005 and beyond
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: 2008-08-19 20:12+0200\n"
+"Last-Translator: Christian Mikalsen and Jon Lønne\n"
+"Language-Team: Norsk <no@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s er tilgjengelige"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Velg alle"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Ny"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Slett"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Valgte %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Velg ditt svaralternativ(er) og klikk "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Tøm"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Januar Februar Mars April Mai Juni Juli August September Oktober November "
+"Desember"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S M T O T F L"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Søndag Mandag Tirsdag Onsdag Torsdag Fredag Lørdag"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Vis"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Skjul"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Nå"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Klokke"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Velg et klokkeslett"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Midnatt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "06:00"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "12:00"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "I dag"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalender"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "I går"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "I morgen"
diff --git a/webapp/django/conf/locale/pl/LC_MESSAGES/django.mo b/webapp/django/conf/locale/pl/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..d615ced
--- /dev/null
+++ b/webapp/django/conf/locale/pl/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/pl/LC_MESSAGES/django.po b/webapp/django/conf/locale/pl/LC_MESSAGES/django.po
new file mode 100644
index 0000000..4d65b05
--- /dev/null
+++ b/webapp/django/conf/locale/pl/LC_MESSAGES/django.po
@@ -0,0 +1,4622 @@
+# translation of django.po to Polish
+# Polish .po file.
+# This file is distributed under the same license as the django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-25 09:09+0200\n"
+"PO-Revision-Date: 2008-02-25 15:53+0100\n"
+"Last-Translator: Piotr Lewandowski <piotr.lewandowski@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%"
+"100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "arabski"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "bengalski"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "bułgarski"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "kataloński"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "czeski"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "walijski"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "duński"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "niemiecki"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "grecki"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "angielski"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "hiszpański"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "estoński"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "hiszpański argentyński"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "baskijski"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "perski"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "fiński"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "francuski"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "irlandzki"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "galicyjski"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "węgierski"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "hebrajski"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "chorwacki"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "islandzki"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "włoski"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "japoński"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "gruziński"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "koreański"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "khmerski"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "łotewski"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "litewski"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "macedoński"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "holenderski"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "norweski"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "polski"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "portugalski"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "brazylijski portugalski"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "rumuński"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "rosyjski"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "słowacki"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "słoweński"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "serbski"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "szwedzki"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "tamilski"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "turecki"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ukraiński"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "chiński uproszczony"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "chiński tradycyjny"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Przez %s:</h3>\n"
+"</ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Wszystko"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Dowolna data"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Dzisiaj"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Ostatnie 7 dni"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Ten miesiąc"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Ten rok"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:389
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Tak"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:389
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Nie"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:389
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Nieznany"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "czas akcji"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "id obiektu"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "reprezentacja obiektu"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "flaga akcji"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "zmień wiadomość"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "log"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "logi"
+
+#: contrib/admin/options.py:56 contrib/admin/options.py:115
+msgid "None"
+msgstr "brak"
+
+#: contrib/admin/options.py:329
+#, python-format
+msgid "Changed %s."
+msgstr "Zmieniono %s"
+
+#: contrib/admin/options.py:329 contrib/admin/options.py:339
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "i"
+
+#: contrib/admin/options.py:334
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Dodano %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:338
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Zmieniono %(list)s w %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:343
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Usunięto %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:347
+msgid "No fields changed."
+msgstr "Żadne pole nie zmienione."
+
+#: contrib/admin/options.py:408 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" dodany pomyślnie."
+
+#: contrib/admin/options.py:412 contrib/admin/options.py:445
+#: contrib/auth/admin.py:56
+msgid "You may edit it again below."
+msgstr "Możesz ponownie edytować wpis poniżej."
+
+#: contrib/admin/options.py:422 contrib/admin/options.py:455
+#, python-format
+msgid "You may add another %s below."
+msgstr "Możesz dodać nowy wpis %s poniżej."
+
+#: contrib/admin/options.py:443
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" zostało pomyślnie zmienione."
+
+#: contrib/admin/options.py:451
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"%(name)s \"%(obj)s\" dodane pomyślnie. Możesz edytować ponownie wpis poniżej."
+
+#: contrib/admin/options.py:517
+#, python-format
+msgid "Add %s"
+msgstr "Dodaj %s"
+
+#: contrib/admin/options.py:595
+#, python-format
+msgid "Change %s"
+msgstr "Zmień %s"
+
+#: contrib/admin/options.py:627
+msgid "Database error"
+msgstr "Błąd bazy danych"
+
+#: contrib/admin/options.py:677
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" usunięty pomyślnie."
+
+#: contrib/admin/options.py:684
+msgid "Are you sure?"
+msgstr "Jesteś pewien?"
+
+#: contrib/admin/options.py:712
+#, python-format
+msgid "Change history: %s"
+msgstr "Historia zmian: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma "
+"znaczenie."
+
+#: contrib/admin/sites.py:242 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Zaloguj się ponownie. Twoja sesja wygasła lecz twoje zgłoszenie zostało "
+"zapisane."
+
+#: contrib/admin/sites.py:249 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i "
+"spróbuj ponownie."
+
+#: contrib/admin/sites.py:265 contrib/admin/sites.py:271
+#: contrib/admin/views/decorators.py:94
+msgid "Usernames cannot contain the '@' character."
+msgstr "Nazwy użytkowników nie mogą zawierać znaku '@'."
+
+#: contrib/admin/sites.py:268 contrib/admin/views/decorators.py:90
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Podany adres e-mail nie jest Twoją nazwą użytkownika. Spróbuj '%s'."
+
+#: contrib/admin/sites.py:336
+msgid "Site administration"
+msgstr "Administracja stroną"
+
+#: contrib/admin/sites.py:358 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Zaloguj się"
+
+#: contrib/admin/sites.py:403
+#, python-format
+msgid "%s administration"
+msgstr "%s - administracja"
+
+#: contrib/admin/util.py:138
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Jedno lub więcej %(fieldname)s w %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:143
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Jedno lub więcej %(fieldname)s w %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Czas:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Teraz:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Zmień:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Strona nie znaleziona"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Niestety, żądana strona nie została znaleziona."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/app_index.html:8
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Początek"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Błąd serwera"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Błąd serwera (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Błąd Serwera <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Wystąpił niespodziewany błąd. Raport został wysłany e-mailem "
+"administratorowi strony i powinien zostać wkrótce naprawiony. Dziękujemy za "
+"cierpliwość."
+
+#: contrib/admin/templates/admin/app_index.html:10
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Witaj,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentacja"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Zmiana hasła"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Wyloguj się"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Administracja stroną Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administracja Django"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Dodaj"
+
+#: contrib/admin/templates/admin/change_form.html:27
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Historia"
+
+#: contrib/admin/templates/admin/change_form.html:28
+msgid "View on site"
+msgstr "Pokaż na stronie"
+
+#: contrib/admin/templates/admin/change_form.html:38
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Proszę popraw poniższy błąd."
+msgstr[1] "Proszę popraw poniższe błędy."
+msgstr[2] "Proszę popraw poniższe błędy."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Dodaj %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filtr"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:10
+#: contrib/admin/templates/admin/submit_line.html:4
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Usuń"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:16
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Skasowanie %(object_name)s '%(escaped_object)s' spowoduje usunięcie "
+"zależnych obiektów, lecz nie posiadasz uprawnień do usunięcia następujących "
+"typów obiektów:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:23
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Czy chcesz skasować %(object_name)s \"%(escaped_object)s\"? Następujące "
+"zależne obiekty zostaną skasowane:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:28
+msgid "Yes, I'm sure"
+msgstr "Tak, na pewno"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Używając %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modele dostępne w aplikacji %(name)s."
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Zmień"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Nie masz uprawnień by edytować cokolwiek."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Ostatnie akcje"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Moje akcje"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Brak"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Instalacja Twojej bazy danych jest niepoprawna. Upewnij się, że odpowiednie "
+"tabele zostały utworzone i odpowiedni użytkownik jest uprawniony do ich "
+"odczytu."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Nazwa użytkownika:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Hasło:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Data/czas"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Użytkownik"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Akcja"
+
+#: contrib/admin/templates/admin/object_history.html:24
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "Y-m-d H:i:s"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Ten obiekt nie ma historii zmian. Najprawdopodobniej wpis ten nie został "
+"dodany poprzez panel administracyjny."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Pokaż wszystko"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Szukaj"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 wynik"
+msgstr[1] "%(counter)s wyniki"
+msgstr[2] "%(counter)s wyników"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s trafień"
+
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Save"
+msgstr "Zapisz"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save as new"
+msgstr "Zapisz jako nowe"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and add another"
+msgstr "Zapisz i dodaj nowe"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save and continue editing"
+msgstr "Zapisz i kontynuuj edycję"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Najpierw podaj nazwę użytkownika i hasło. Następnie będziesz mógł edytować "
+"więcej opcji użytkownika."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Nazwa użytkownika"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Hasło"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Hasło (powtórz)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Podaj powyższe hasło w celu weryfikacji."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Podaj nowe hasło dla użytkownika <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Dziękujemy za odwiedzenie serwisu."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Zaloguj ponownie"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Zmiana hasła"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Hasło zmienione"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Twoje hasło zostało zmienione."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr "Podaj swoje stare hasło i dwa razy nowe."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Stare hasło:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Nowe hasło:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Potwierdź hasło:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Zmień hasło"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Zresetuj hasło"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Resetowanie hasła zakończone"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Twoje hasło zostało ustawione. Możesz się teraz zalogować."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Potwierdzenie zresetowania hasła"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Podaj nowe hasło"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Podaj dwukrotnie nowe hasło, by można było zweryfikować, czy zostało wpisane "
+"poprawnie."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Resetowanie hasła nieudane"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"Link do resetowania hasła był niepoprawny, być może dlatego, że został już "
+"raz użyty. Możesz ponownie zażądać zresetowania hasła."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Udane resetowanie hasła"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Instrukcje dalszego postępowania zostały wysłane na podany adres e-mail. "
+"Powinieneś otrzymać je niebawem."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Otrzymałeś ten e-mail gdyż zażądałeś zresetowania hasła"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "dla twojego konta użytkownika na stronie %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Proszę, idź do podanej strony i wybierz nowe hasło:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Twoja nazwa użytkownika:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Dziękujemy za używanie naszej strony!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Zespół %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Zapomniałeś hasła? Podaj swój adres e-mail, a prześlemy Ci instrukcję, jak "
+"ustawić nowe hasło."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Adres e-mail:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Zresetuj moje hasło"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "Wszystkie daty"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Zaznacz %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Zaznacz %s aby zmienić"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "strona"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "szablon"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filtr:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "widok:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Aplikacja %r nie została znaleziona"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Model %(model_name)r nie został znaleziony w aplikacji %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "powiązany obiekt `%(app_label)s.%(data_type)s`"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "powiązane obiekty `%(app_label)s.%(object_name)s`"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "wszystkie %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "liczba %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Pola obiektów %s"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Liczba całkowita"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Wartość logiczna (True, False - prawda lub fałsz)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Łańcuch (do %(max_length)s znaków)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Liczby całkowite rozdzielone przecinkami"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Data (bez godziny)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Data (z godziną)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Liczba dziesiętna"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "Adres e-mail"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Ścieżka do pliku"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Liczba zmiennoprzecinkowa"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "Adres IP"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Wartość logiczna (True, False, None - prawda, fałsz lub nic)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Relacja do modelu rodzica"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Numer telefonu"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Tekst"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Czas"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "Stan USA (dwie duże litery)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "Tekst XML"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s nie jest obiektem urlpattern"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Zakładki"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Zakładki Dokumentacji"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Aby zainstalować skryptozakładki, przeciągnij łącze do "
+"paska zakładek\n"
+"lub kliknij prawym klawiszem na łączu i dodaj je do zakładek. Teraz możesz\n"
+"wybrać skryptozakładkę na dowolnej stronie serwisu. Uwaga: niektóre z tych "
+"skryptozakładek wymagają przeglądania serwisu z komputera\n"
+"\"wewnętrznego\" (skontaktuj się z administratorem systemu, jeśli nie jesteś "
+"pewien, czy ten komputer jest \"wewnętrznym\").</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Dokumentacja dla tej strony"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Przekierowuje z dowolnej strony do dokumentacji dla widoku, który ją "
+"generuje."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Pokaż ID obiektu"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Pokazuje typ i unikalne ID dla stron, które reprezentują pojedynczy obiekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Edytuj ten obiekt (bieżące okno)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Przeskok do panelu administratora dla stron reprezentujących pojedynczy "
+"obiekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Edytuj ten obiekt (nowe okno)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Jak wyżej, tyle że otwiera nowe okno."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Dane osobowe"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Uprawnienia"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Ważne daty"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Grupy"
+
+#: contrib/auth/admin.py:61
+msgid "Add user"
+msgstr "Dodaj użytkownika"
+
+#: contrib/auth/admin.py:87
+msgid "Password changed successfully."
+msgstr "Hasło zostało zmienione pomyślnie."
+
+#: contrib/auth/admin.py:93
+#, python-format
+msgid "Change password: %s"
+msgstr "Zmień hasło: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Wymagane. 30 znaków lub mniej. Tylko znaki alfanumeryczne (litery, cyfry i "
+"podkreślenia)."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "To pole może zawierać tylko litery, cyfry i podkreślenia."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Potwierdzenie hasła"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "Użytkownik o tej nazwie już istnieje."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "Hasła się nie zgadzają."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "To konto jest nieaktywne."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Twoja przeglądarka nie chce akceptować ciasteczek. Są one wymagane do "
+"zalogowania się."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "E-mail"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Ten adres e-mail nie ma przypisanego konta. Jesteś pewien, że "
+"zarejestrowałeś się?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Hasło zresetowane dla %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Nowe hasło"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Nowe hasło ponownie"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Stare hasło"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Podane stare hasło jest niepoprawne. Proszę podać je jeszcze raz."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "nazwa"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "nazwa kodowa"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "uprawnienie"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "uprawnienia"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "grupa"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "grupy"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "użytkownik"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "imię"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "nazwisko"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "adres e-mail"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "hasło"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Użyj '[algo]$[salt]$[hexdigest]' lub <a href=\"password/\">formularza zmiany "
+"hasła</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "w zespole"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "Oznacza czy użytkownik może zalogować się do panelu admina."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "aktywny"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Oznacza czy użytkownika należy uważać za aktywnego. Odznacz to, zamiast "
+"usuwać konta."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "status administratora"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Oznacza, że ten użytkownik ma wszystkie uprawnienia bez jawnego "
+"przypisywania ich."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "ostatnio zalogowany"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "data przyłączenia"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Oprócz uprawnień przypisanych bezpośrednio użytkownikowi otrzyma on "
+"uprawnienia grup, do których należy."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "uprawnienia użytkownika"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "użytkownik"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "użytkownicy"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "wiadomość"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "Wylogowany"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "ID obiektu"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "nagłówek"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "komentarz"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "ocena #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "ocena #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "ocena #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "ocena #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "ocena #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "ocena #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "ocena #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "ocena #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "jest poprawną oceną"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "data/czas dodania"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "publicznie dostępny"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "usunięty"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Zaznacz to pole jeżeli komentarz jest nieodpowiedni. Wyświetlony zostanie "
+"tekst \"Ten komentarz został usunięty\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "komentarze"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Obiekt treści"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Dodane przez %(user)s dnia %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "Nazwa osoby"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "adres IP"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "zaakceptowano"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "wolny komentarz"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "wolne komentarze"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "ilość punktów"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "data przyznania punktów"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "ilość punktów"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "wyniki"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d ocenę przez %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Komentarz oflagowany przez %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "data flagi"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "flaga użytkownika"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "flagi użytkownika"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Flaga %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "data skasowania"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "usunięcie moderatora"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "usunięcia moderatorów"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Usunięcie moderatora przez %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Zapomniałeś hasło?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Oceny"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Wymagane"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcjonalne"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Wyślij zdjęcie"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentarz:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Podgląd"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Twoje imię:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Ta ocena jest wymagana gdyż podałeś przynajmniej jedną inną ocenę."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Ten komentarz został wysłany przez użytkownika, który wysłał mniej niż %"
+"(count)s komentarz:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Ten komentarz został wysłany przez użytkownika, który wysłał mniej niż %"
+"(count)s komentarze:\n"
+"\n"
+"%(text)s"
+msgstr[2] ""
+"Ten komentarz został wysłany przez użytkownika, który wysłał mniej niż %"
+"(count)s komentarzy:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ten komentarz został dodany przez użytkownika::\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Dozwolone tylko POSTy"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Jedno lub więcej wymaganych pól nie zostało wypełnionych"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"Ktoś próbował obejść zabezpieczenia formularza komentarzy (naruszenie "
+"bezpieczeństwa)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Formularz komentarza miał niepoprawny parametr 'target' -- ID obiektu było "
+"niepoprawne"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Formularz komentarza nie zapewnił obiektów 'preview' ani 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonimowi użytkownicy nie mogą głosować"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Błędny ID komentarza"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Nie można głosować na siebie"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "nazwa pythonowa modelu klasy"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "typ zawartości"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "typy zawartości"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Przykład: '/about/contact/'. Upewnij się że wpisałeś otwierający i "
+"zamykający ukośnik."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"To pole może zawierać jedynie litery, cyfry, podkreślenia, myślniki i "
+"ukośniki."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Opcje zaawansowane"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "tytuł"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "zawartość"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "włącz komentarze"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "nazwa szablonu"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Przykład: 'flatpages/contact_page.html'. Jeżeli nie zostanie podane, system "
+"użyje 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "wymagana rejestracja"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Jeżeli zaznaczone - tylko zalogowani użytkownicy będą mogli zobaczyć stronę."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "strona statyczna"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "strony statyczne"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr ""
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Błędna wartość geometrii"
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Błędny typ geometrii"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "-y"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "-szy"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "-gi"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "-ci"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milion"
+msgstr[1] "%(value).1f miliony"
+msgstr[2] "%(value).1f milionów"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f miliard"
+msgstr[1] "%(value).1f miliardy"
+msgstr[2] "%(value).1f miliardów"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f bilion"
+msgstr[1] "%(value).1f biliony"
+msgstr[2] "%(value).1f bilionów"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "jeden"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "dwa"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "trzy"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "cztery"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "pięć"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "sześć"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "siedem"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "osiem"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "dziewięć"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "dzisiaj"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "jutro"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "wczoraj"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Wpisz kod pocztowy w formacie NNNN lub ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "To pole może zawierać jedynie liczby."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "To pole musi zawierać 7 lub 8 cyfr."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Podaj poprawny numer CUIT w formacie XX-XXXXXXXX-X lub XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Niepoprawny CUIT"
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "Burgenland"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Karyntia"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "Dolna Austria"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "Górna Austria"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "Salzburg"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "Styria"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "Tyrol"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "Vorarlberg"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "Wiedeń"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Wpisz kod pocztowy w formacie XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+"Wpisz poprawny numer austriackiego ubezpieczenia w formacie XXXX XXXXXX."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Wpisz czterocyfrowy kod pocztowy."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Wpisz kod pocztowy w formacie XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Numery telefoniczne muszą być w formacie XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+"Wybierz poprawny brazylijski stan. Ten stan nie jest jednym z dostępnych "
+"stanów."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Błędny numer CPF."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "To pole nie może zawierać więcej niż 11 cyfr lub 14 znaków."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Błędny numer CNPJ."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "To pole musi zawierać co najmniej 14 cyfr"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Wpisz kod pocztowy w formacie XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"Wpisz poprawny numer kanadyjskiego ubezpieczenia w formacie XXX-XXX-XXXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Argowia"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Bazylea-miasto"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Bazylea-okręg"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berno"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fryburg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Genewa"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Gryzonia"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerna"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Szafuza"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solura"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "Sankt Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Turgowia"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurych"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Podaj poprawny numer szwajcarskiego dowodu osobistego lub paszportu w "
+"formacie X1234567<0 lub 1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Wpisz poprawny chilijski RUT."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Podaj poprawny chilijski RUT w formacie XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "Podany chilijski RUT jest nieprawidłowy."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Badenia-Wirtembergia"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bawaria"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburgia"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Brema"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hesja"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Meklemburgia-Pomorze Zachodnie"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Dolna Saksonia"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Nadrenia Północna-Westfalia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Nadrenia-Palatynat"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Kraj Saary"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saksonia"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saksonia-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Szlezwik-Holsztyn"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Turyngia"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Wpisz kod pocztowy w formacie XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Podaj poprawny numer niemieckiego dowodu osobistego w formacie XXXXXXXXXXX-"
+"XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Arawa"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alicante"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almeria"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Avila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Baleary"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Caceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Kadyks"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castellon"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Kordowa"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruna"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Gipuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaen"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "Leon"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madryt"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Malaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcja"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Nawarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturia"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanka"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Kantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segowia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sewilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Walencja"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Vizcaya"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Saragossa"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andaluzja"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragonia"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Asturia"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Baleary"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Kraj Basków"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Wyspy Kanaryjskie"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Kastylia-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Kastylia-Leon"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Katalonia"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Estremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicja"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Murcja"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Nawarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Walencja"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Wpisz kod pocztowy w zakresie i formacie 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Wpisz numer telefoniczny w formacie 6XXXXXXXX, 8XXXXXXXX lub 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Proszę wpisać poprawny numer NIF, NIE lub CIF."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Proszę wpisać poprawny numer NIF lub NIE."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Niepoprawna suma kontrolna NIF."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Niepoprawna suma kontrolna NIE."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Niepoprawna suma kontrolna CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+"Podaj poprawny numer konta bankowego w formacie XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Niepoprawna suma kontrolna numeru konta bankowego."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Wpis poprawny numer fińskiego ubezpieczenia socjalnego."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Wpisz kod pocztowy w formacie XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"Podaj poprawny numer islandzkiego dowodu osobistego w formacie XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Numer islandzkiego dowodu osobistego jest błędny."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Wpisz poprawny kod pocztowy."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Wpisz poprawny numer ubezpieczenia socjalnego."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Wpisz poprawny numer VAT."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Wpisz kod pocztowy w formacie XXXXXXX lub XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokio"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroszima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Kalifornia Dolna"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Kalifornia Dolna Południowa"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Meksyk (miasto)"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Meksyk (stan)"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michocan"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo Leon"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Queretaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potasi"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Jukatan"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Wpisz poprawny kod pocztowy"
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Wpisz poprawny numer telefonu"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Wpisz poprawny numer SoFi"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drenthe"
+msgstr "Drenthe"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Fryzja"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Geldria"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburgia"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Brabancja Północna"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Holandia Północna"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zelandia"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Holandia Południowa"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Wpis poprawny numer norweskiego ubezpieczenia socjalnego."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "To pole musi zawierać 8 cyfr."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "To pole musi zawierać 11 cyfr."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr "Numer PESEL składa się z 11 cyfr."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Błędna suma kontrolna numeru PESEL."
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Wpisz numer NIP w formacie XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Błędna suma kontrolna numeru NIP"
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "Numer REGON składa się z 7 lub 9 cyfr."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Błędna suma kontrolna numeru REGON"
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Wpisz kod pocztowy w formacie XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Dolnośląskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kujawsko-Pomorskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lubelskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubuskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Łódzkie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Małopolskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Mazowieckie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opolskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Podkarpackie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlaskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomorskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Śląskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Świętokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmińsko-Mazurskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Wielkopolskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Zachodniopomorskie"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "Wpisz poprawny CIF."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "Wpisz poprawny CNP."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr "Podaj poprawny IBAN w formacie ROXX-XXXX-XXXX-XXXX-XXXX-XXXX"
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Numery telefoniczne muszą być w formacie XXXX-XXXXXX."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Wpisz kod pocztowy w formacie XXXXXX."
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Wpisz kod pocztowy w formacie XXXXX or XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Bańska Bystrzyca"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Bańska Szczawnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardiów"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratysława I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratysława II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratysława III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratysława IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratysława V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Czadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kieżmarek"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Koszyce I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Koszyce II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Koszyce III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Koszyce IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Koszyce - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Lewocza"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptowski Mikulasz"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Łuczeniec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Pieszczany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Poważska Bystrzyca"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Preszów"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Rużemberk"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Nowa Wieś Spiska"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubowla"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolczany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trenczyn"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnawa"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Twardoszyn"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zwoleń"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Żylina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Kraj bańskobystrzycki"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Kraj bratysławski"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Kraj koszycki"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Kraj nitrzański"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Kraj preszowski"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Kraj trenczyński"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Kraj trnawski"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Kraj żyliński"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Wpisz poprawny kod pocztowy."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Kornwalia i wyspy Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Wielki Londyn"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Greater Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "South Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "West Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "Hrabstwo Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "Hrabstwo Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "Hrabstwo Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "Hrabstwo Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "Hrabstwo Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "Hrabstwo Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Scottish Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Central Scotland"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkady"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Szetlandy"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Hebrydy Zewnętrzne"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Anglia"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Irlandia Północna"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Szkocja"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Walia"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Wpisz kod pocztowy w formacie XXXXX. lub XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Wpisz poprawny numer U.S. Social Security w formacie XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Wpisz poprawny południowoafrykański numer ID"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Wpisz poprawny południowoafrykański kod pocztowy"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Prowincja Przylądkowa Wschodnia"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Wolne Państwo"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Prowincja Przylądkowa Północna"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "Prowincja Północno-Zachodnia"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Prowincja Przylądkowa Zachodnia"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "przekieruj z"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr "Podaj pełną ścieżkę bez nazwy domeny. Przykład: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "przekierowanie do"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "Ścieżka jak wyżej lub pełny URL z http://"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "przekieruj"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "przekierowania"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "klucz sesji"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "data sesji"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "data wygaśnięcia sesji"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sesja"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sesje"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nazwa domeny"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "wyświetlana nazwa"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "strony"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "To pole może zawierać jedynie litery, cyfry, podkreślenia i myślniki."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Wielkie litery nie są tutaj dozwolone."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Małe litery nie są tutaj dozwolone."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Wpisz tylko cyfry oddzielone przecinkami."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Wpisz poprawne adresy e-mail oddzielone przecinkami."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Proszę wpisać poprawny adres IP."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Proszę wypełnić te pola."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Tu mogą być tylko cyfry."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "To pole nie może zawierać jedynie cyfr."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Wpisz liczbę całkowitą."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Tutaj są dozwolone tylko litery."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Niepoprawna data: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:547
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Wprowadź poprawną datę i godzinę w formacie RRRR-MM-DD GG:MM."
+
+#: core/validators.py:166 forms/fields.py:423
+msgid "Enter a valid e-mail address."
+msgstr "Wprowadź poprawny adres e-mail."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:441
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Nie wysłano żadnego pliku. Sprawdź typ kodowania formularza."
+
+#: core/validators.py:189 forms/fields.py:472
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Wgraj poprawny plik graficzny. Ten, który został wgrany, nie jest obrazem, "
+"albo jest uszkodzony."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "Odnośnik %s nie wskazuje na poprawny plik z obrazem."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Numery telefoniczne muszą być w formacie XXX-XXX-XXXX. \"%s\" jest "
+"niepoprawny."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "Odnośnik %s nie wskazuje na poprawne nagranie QuickTime video."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "Wymagany jest poprawny URL."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Wymagany jest poprawny HTML. Błędy, które wystąpiły:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Nieprawidłowy format XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Niepoprawny odnośnik: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Odnośnik %s jest nieprawidłowy."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Wpisz poprawny kod stanu USA."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Nie wolno przeklinać! Słowo %s nie jest dozwolone."
+msgstr[1] "Nie wolno przeklinać! Słowa %s nie są dozwolone."
+msgstr[2] "Nie wolno przeklinać! Słowa %s nie są dozwolone."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "To pole musi pasować do pola '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Proszę uzupełnić przynajmniej jedno pole."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Proszę uzupełnić oba pola lub zostawić je puste."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "To pole musi być uzupełnione, jeśli %(field)s ma wartość %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr ""
+"To pole musi być uzupełnione, jeśli %(field)s ma wartość inną niż %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Duplikaty nie są dozwolone."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Ta wartość musi być pomiędzy %(lower)s a %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Ta wartość nie może być mniejsza od %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Ta wartość nie może być większa od %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Ta wartość musi być potęgą %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Proszę wpisać poprawną liczbę dziesiętną."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+"Proszę wpisać poprawną liczbę dziesiętną o nie więcej niż %s cyfrze."
+msgstr[1] ""
+"Proszę wpisać poprawną liczbę dziesiętną o nie więcej niż %s cyfrach."
+msgstr[2] ""
+"Proszę wpisać poprawną liczbę dziesiętną o nie więcej niż %s cyfrach."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Proszę wpisać poprawną liczbę dziesiętną zawierającą nie więcej niż %s cyfrę."
+msgstr[1] ""
+"Proszę wpisać poprawną liczbę dziesiętną zawierającą nie więcej niż %s cyfry."
+msgstr[2] ""
+"Proszę wpisać poprawną liczbę dziesiętną zawierającą nie więcej niż %s cyfr."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Proszę wpisać poprawną liczbę dziesiętną z dokładnością do %s miejsca po "
+"przecinku."
+msgstr[1] ""
+"Proszę wpisać poprawną liczbę dziesiętną z dokładnością do %s miejsc po "
+"przecinku."
+msgstr[2] ""
+"Proszę wpisać poprawną liczbę dziesiętną z dokładnością do %s miejsc po "
+"przecinku."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Proszę wpisać poprawną liczbę rzeczywistą."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Upewnij się, że wgrany plik ma co najmniej %s bajtów."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Upewnij się, że wgrany plik ma co najwyżej %s bajtów."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Format tego pola jest nieprawidłowy."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "To pole jest nieprawidłowe."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Nie można nic pobrać z %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"URL %(url)s zwrócił niepoprawny nagłówek Content-Type '%(contenttype)s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Proszę zamknąć tag %(tag)s z linii %(line)s. (Linia zaczyna się od \"%(start)"
+"s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Część tekstu od linii %(line)s nie jest dozwolony w tym kontekście. (Linia "
+"zaczyna się od \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" w linii %(line)s jest niepoprawnym atrybutem. (Linia zaczyna "
+"się od \"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" w linii %(line)s nie jest poprawnym tagiem. (Linia zaczyna się "
+"od \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Tag w linii %(line)s nie posiada jednego lub więcej wymaganych atrybutów. "
+"(Linia zaczyna się od \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Atrybut \"%(attr)s\" w linii %(line)s ma niepoprawną wartość. (Linia zaczyna "
+"się od \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s z %(type)s już istnieje dla %(field)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Już istnieje %(optname)s z %(fieldname)s."
+
+#: db/models/fields/__init__.py:321 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "To pole jest wymagane."
+
+#: db/models/fields/__init__.py:435 db/models/fields/__init__.py:803
+msgid "This value must be an integer."
+msgstr "Ta wartość musi być liczbą całkowitą."
+
+#: db/models/fields/__init__.py:481
+msgid "This value must be either True or False."
+msgstr ""
+"Ta wartość musi być wartością logiczną (True, False - prawda lub fałsz)."
+
+#: db/models/fields/__init__.py:510
+msgid "This field cannot be null."
+msgstr "To pole nie może być puste."
+
+#: db/models/fields/__init__.py:619 db/models/fields/__init__.py:636
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr ""
+"Wprowadź poprawną datę i godzinę w formacie YYYY-MM-DD HH:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/__init__.py:692
+msgid "This value must be a decimal number."
+msgstr "Ta wartość musi być liczbą dziesiętną."
+
+#: db/models/fields/__init__.py:841
+msgid "This value must be either None, True or False."
+msgstr ""
+"Ta wartość musi być jedną z None (nic), True (prawda) lub False (fałsz)."
+
+#: db/models/fields/__init__.py:911
+msgid ""
+"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
+msgstr "To pole może zawierać jedynie litery, cyfry, podkreślenia i myślniki."
+
+#: db/models/fields/__init__.py:960 db/models/fields/__init__.py:973
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Wpisz poprawną nazwę pliku."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Proszę wpisać poprawne %s."
+
+#: db/models/fields/related.py:786
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby "
+"zaznaczyć więcej niż jeden wybór."
+
+#: db/models/fields/related.py:866
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Proszę podać poprawne identyfikatory %(self)s. Wartość %(value)r jest "
+"niepoprawna."
+msgstr[1] ""
+"Proszę podać poprawne identyfikatory %(self)s. Wartości %(value)r są "
+"niepoprawne."
+msgstr[2] ""
+"Proszę podać poprawne identyfikatory %(self)s. Wartości %(value)r są "
+"niepoprawne."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Wpisz poprawną wartość."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Upewnij się, że ta wartość ma co najwyżej %(max)d znaków (ma długość %"
+"(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Upewnij się, że ta wartość ma co najmniej %(min)d znaków (ma długość %"
+"(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Upewnij się, że ta wartość jest mniejsza lub równa %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Upewnij się, że ta wartość jest większa lub równa %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Wpisz liczbę."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Upewnij się, że jest nie więcej niż %s cyfr."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Upewnij się, że jest nie więcej niż %s miejsc po przecinku."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Upewnij się, że jest nie więcej niż %s miejsc przed przecinkiem."
+
+#: forms/fields.py:282 forms/fields.py:804
+msgid "Enter a valid date."
+msgstr "Wpisz poprawną datę."
+
+#: forms/fields.py:316 forms/fields.py:805
+msgid "Enter a valid time."
+msgstr "Wpisz poprawną godzinę."
+
+#: forms/fields.py:355
+msgid "Enter a valid date/time."
+msgstr "Wpisz poprawną datę/godzinę."
+
+#: forms/fields.py:442
+msgid "No file was submitted."
+msgstr "Żaden plik nie został przesłany."
+
+#: forms/fields.py:443 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Wysłany plik jest pusty."
+
+#: forms/fields.py:533
+msgid "Enter a valid URL."
+msgstr "Wpisz poprawny URL."
+
+#: forms/fields.py:534
+msgid "This URL appears to be a broken link."
+msgstr "Ten odnośnik jest nieprawidłowy."
+
+#: forms/fields.py:602 forms/fields.py:653
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów."
+
+#: forms/fields.py:654 forms/fields.py:715 forms/models.py:531
+msgid "Enter a list of values."
+msgstr "Podaj listę wartości."
+
+#: forms/fields.py:833
+msgid "Enter a valid IPv4 address."
+msgstr "Wprowadź poprawny adres IPv4."
+
+#: forms/models.py:463
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów."
+
+#: forms/models.py:532
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Upewnij się, że tekst ma mniej niż %s znak."
+msgstr[1] "Upewnij się, że tekst ma mniej niż %s znaki."
+msgstr[2] "Upewnij się, że tekst ma mniej niż %s znaków."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Znaki nowej linii są tutaj niedopuszczalne."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Wybierz poprawną opcję; '%(data)s' nie jest wśród %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Proszę wpisać liczbę całkowitą z zakresu od -32 768 do 32 767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Proszę wpisać liczbę dodatnią."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Proszę wpisać liczbę całkowitą z zakresu od 0 do 32 767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "tak,nie,może"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bajt"
+msgstr[1] "%(size)d bajty"
+msgstr[2] "%(size)d bajtów"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "po południu"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "rano"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "po południu"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "rano"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "północ"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "południe"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Poniedziałek"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Wtorek"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Środa"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Czwartek"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Piątek"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Sobota"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Niedziela"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Pon"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Wt"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Śr"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Czw"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Pi"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "So"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Nd"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Styczeń"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Luty"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Marzec"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "Kwiecień"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Maj"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Czerwiec"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Lipiec"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Sierpień"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "Wrzesień"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Październik"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "Listopad"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Grudzień"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "sty"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "luty"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "marz"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "kwie"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "maj"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "czerw"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "lip"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "sier"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "wrze"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "paź"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "list"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "gru"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Sty."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Lut."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Sier."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Wrz."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Paź."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Lis."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Gru."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "lub"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "rok"
+msgstr[1] "lata"
+msgstr[2] "lat"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "miesiąc"
+msgstr[1] "miesiące"
+msgstr[2] "miesięcy"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "tydzień"
+msgstr[1] "tygodnie"
+msgstr[2] "tygodni"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dzień"
+msgstr[1] "dni"
+msgstr[2] "dni"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "godzina"
+msgstr[1] "godziny"
+msgstr[2] "godzin"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuta"
+msgstr[1] "minuty"
+msgstr[2] "minut"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minuty"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "Y-m-d"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i:s"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "Y-m"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "m-d"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s zostało pomyślnie utworzone."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s zostało pomyślnie zmienione."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s zostało usunięte."
+
+#~ msgid "DATE_WITH_TIME_FULL"
+#~ msgstr "j F Y H:i:s"
+
+#~ msgid "Your new password is: %(new_password)s"
+#~ msgstr "Twoje nowe hasło to: %(new_password)s"
+
+#~ msgid "Feel free to change this password by going to this page:"
+#~ msgstr "Możesz zmienić je na stronie:"
+
+#~ msgid "Ordering"
+#~ msgstr "Sortowanie"
+
+#~ msgid "Order:"
+#~ msgstr "Porządek:"
+
+#~ msgid "Added %s."
+#~ msgstr "Dodano %s"
+
+#~ msgid "Deleted %s."
+#~ msgstr "Skasowano %s"
+
+#~ msgid "The two 'new password' fields didn't match."
+#~ msgstr "Pola 'nowe hasło' nie zgadzają się."
+
+#~ msgid "Year must be 1900 or later."
+#~ msgstr "Rok nie może być wcześniejszy niż 1900."
+
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "Oddziel identyfikatory przecinkami."
+
+#~ msgid "Brazilian"
+#~ msgstr "Brazylijski"
+
+#~ msgid "Gaeilge"
+#~ msgstr "Gaelicki"
+
+#~ msgid ""
+#~ "Enter a postcode. A space is required between the two postcode parts."
+#~ msgstr ""
+#~ "Wpisz kod pocztowy. Biały znak pomiędzy dwiema częściami kodu jest "
+#~ "wymagany."
+
+#~ msgid "AnonymousUser"
+#~ msgstr "UżytkownikAnonimowy"
+
+#~ msgid "%d milliseconds"
+#~ msgstr "%d milisekund"
diff --git a/webapp/django/conf/locale/pl/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/pl/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..24d19bb
--- /dev/null
+++ b/webapp/django/conf/locale/pl/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/pl/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/pl/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..07ab5c1
--- /dev/null
+++ b/webapp/django/conf/locale/pl/LC_MESSAGES/djangojs.po
@@ -0,0 +1,120 @@
+# translation of djangojs.po to Polish
+# This file is distributed under the same license as the django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-19 07:28+0200\n"
+"PO-Revision-Date: 2007-03-12 11:42+0100\n"
+"Last-Translator: Jarek Zgoda <jarek.zgoda@gmail.com>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%"
+"100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Dostępne %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Wybierz wszystko"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Dodaj"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Usuń"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Wybrano %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Zaznacz swój wybór i kliknij "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Wyczyść wszystko"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Styczeń Luty Marzec Kwiecień Maj Czerwiec Lipiec Sierpień Wrzesień "
+"Październik Listopad Grudzień"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "N Pn Wt Śr Cz Pt So"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Niedziela Poniedziałek Wtorek Środa Czwartek Piątek Sobota"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Pokaż"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Ukryj"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Teraz"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Zegar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Wybierz czas"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Północ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 rano"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Południe"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Dzisiaj"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalendarz"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Wczoraj"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Jutro"
diff --git a/webapp/django/conf/locale/pt/LC_MESSAGES/django.mo b/webapp/django/conf/locale/pt/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..66632e8
--- /dev/null
+++ b/webapp/django/conf/locale/pt/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/pt/LC_MESSAGES/django.po b/webapp/django/conf/locale/pt/LC_MESSAGES/django.po
new file mode 100644
index 0000000..203eec4
--- /dev/null
+++ b/webapp/django/conf/locale/pt/LC_MESSAGES/django.po
@@ -0,0 +1,2128 @@
+# Portuguese translation of Django.
+# Copyright (C) 2007 the Lawrence Journal-World
+# This file is distributed under the same license as the PACKAGE package.
+# Nuno Mariz <nmariz@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-03-15 15:43+0200\n"
+"PO-Revision-Date: 2007-03-16 10:00+0000\n"
+"Last-Translator: Nuno Mariz <nmariz@gmail.com>\n"
+"Language-Team: pt_PT <nmariz@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "ID do objecto"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "título"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "comentário"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "avaliação #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "avaliação #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "avaliação #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "avaliação #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "avaliação #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "avaliação #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "avaliação #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "avaliação #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "é uma avaliação válida"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "data/hora de submissão"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "é público"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "Endereço IP"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "foi removido"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr "Seleccione esta opção se o comentário não é apropriado. Uma mensagem \"Este comentário foi removido\" será mostrada no seu lugar."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "comentários"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Objecto de conteúdo"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Colocado pelo utilizador %(user)s em %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "nome da pessoa"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "endereço ip"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "aprovado pela equipa"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "comentário livre"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "comentários livres"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "pontuação"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "data da pontuação"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "pontuação do karma"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "pontuações do karma"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "Avaliação %(score)d por %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"O utilizador %(user)s colocou uma flag neste comentário\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "data da flag"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "flag do utilizador"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "flags do utilizador"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Flag por %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "data de remoção"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "remoção pelo moderador"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "remoções pelo moderador"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Remoção de moderador %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Utilizadores anónimos não podem votar"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "ID de comentário inválido"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Não pode votar em si"
+
+#: contrib/comments/views/comments.py:27
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Esta avaliação é obrigatória porque introduziu pelo menos uma outra avaliação."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Este comentário foi colocado por um utilizador que efectuou menos de %(count)s comentário:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Este comentário foi colocado por um utilizador que efectuou menos de %(count)s comentários:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Este comentário foi colocado por um utilizador incompleto:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Apenas POSTs são autorizados"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Um ou mais campos obrigatórios não foram submetidos"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Alguém modificou o formulário de comentário (violação de segurança)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr "O formulário de comentário teve um parâmetro 'target' inválido -- o ID do objecto foi inválido"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "O formulário de comentário não forneceu nem 'preview' ou 'post'"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Utilizador:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "Sair"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Palavra-passe:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Esqueceu-se da palavra-passe?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Avaliações"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Obrigatório"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcional"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Colocar uma foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Comentário:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Pré-visualizar comentário"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "O seu nome:"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Por %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Todos"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Qualquer data"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Hoje"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Últimos 7 dias"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Este mês"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Este ano"
+
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "Sim"
+
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "Não"
+
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "hora da acção"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "id do objecto"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "repr do objecto"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "flag de acção"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "modificar mensagem"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "entrada de log"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "entradas de log"
+
+#: contrib/admin/templatetags/admin_list.py:230
+msgid "All dates"
+msgstr "Todas as datas"
+
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:59
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "Por favor introduza o utilizador e palavra-passe correctos. Note que ambos os casos diferenciam maiúsculas e minúsculas."
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Entrar"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr "Por favor autentique-se novamente, porque a sua sessão expirou. Não se preocupe: Os dados submetidos foram gravados."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr "Aparentemente o seu browser não está configurado para aceitar cookies. Por favor active os cookies, carrege novamente a página e volte a tentar."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Nomes de utilizador não podem conter o caracter '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "O seu endereço de e-mail não é o seu nome de utilizador. Tente usar '%s'."
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Administração do site"
+
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:17
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "O(A) %(name)s \"%(obj)s\" foi adicionado(a) com sucesso."
+
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:22
+msgid "You may edit it again below."
+msgstr "Pode editá-lo(a) outra vez abaixo."
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Pode adicionar outro %s abaixo."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "Adicionar %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "Foi adicionado %s"
+
+#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
+msgid "and"
+msgstr "e"
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "Foi modificado %s."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "Foi removido %s."
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Nenhum campo foi modificado."
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "O(A) %(name)s \"%(obj)s\" foi modificado(a) com sucesso."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "O(A) %(name)s \"%(obj)s\" foi adicionado(a) com sucesso. Pode voltar a editar novamente abaixo."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "Modificar %s"
+
+#: contrib/admin/views/main.py:473
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Um ou mais %(fieldname)s em %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:478
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Um ou mais %(fieldname)s em %(name)s:"
+
+#: contrib/admin/views/main.py:511
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "O(A) %(name)s \"%(obj)s\" foi removido(a) com sucesso."
+
+#: contrib/admin/views/main.py:514
+msgid "Are you sure?"
+msgstr "Tem a certeza?"
+
+#: contrib/admin/views/main.py:536
+#, python-format
+msgid "Change history: %s"
+msgstr "Histórico de modificações: %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s"
+msgstr "Seleccionar %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s to change"
+msgstr "Seleccione %s para modificar"
+
+#: contrib/admin/views/main.py:758
+msgid "Database error"
+msgstr "Erro de base de dados"
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "filtro:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "ver:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "A aplicação %r não encontrada"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr "O Model %r não foi encontrado na aplicação %r"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr "o objecto `%s.%s` relacionado"
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr "os objectos `%s.%s` relacionados"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "todos %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "número de %s"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Campos nos objectos %s"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "Inteiro"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (Pode ser True ou False)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "String (até %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Inteiros separados por virgula"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Data (sem hora)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Data (com hora)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "Endereço de e-mail"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Caminho do ficheiro"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "Número décimal"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (Pode ser True, False ou None)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "Relação para o pai do model"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Número de telefone"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Texto"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Hora"
+
+#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "Estado dos E.U.A (duas letras em maiúsculas)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "Texto XML"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s não parece ser um objecto urlpattern"
+
+#: contrib/admin/views/auth.py:28
+msgid "Add user"
+msgstr "Adicionar utilizador"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentação"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "Modificar palavra-passe"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Início"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:20
+msgid "History"
+msgstr "História"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Data/hora"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Utilizador"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Acção"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr "Este objecto não tem histórico de modificações. Provavelmente não foi modificado via site de administração."
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Site de administração do Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administração do Django"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Erro do servidor"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Erro do servidor (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Erro do servidor <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr "Ocorreu um erro. Foi reportado aos administradores do site via e-mail e deverá ser corrigido brevemente. Obrigado pela sua paciência."
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Página não encontrada"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Pedimos desculpa, mas a página solicitada não foi encontrada."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Models disponíveis na aplicação %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Adicionar"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modificar"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Não tem permissão para modificar nada."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Acções Recentes"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "As minhas Acções"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nenhum disponível"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Adicionar %(name)s"
+
+#: contrib/admin/templates/admin/login.html:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr "<a href=\"/password_reset/\">Esqueceu-se a sua palavra-passe?</a>"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Bem-vindo,"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Remover"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+#, fuzzy
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr "A remoção de %(object_name)s '%(escaped_objects)s' resultará na remoção dos objectos relacionados, mas a sua conta não tem permissão de remoção dos seguintes tipos de objectos:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr "Tem a certeza que deseja remover %(object_name)s \"%(escaped_object)s\"? Todos os items relacionados seguintes irão ser removidos:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Sim, tenho a certeza"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Por %(filter_title)s "
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Ir"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 resultado"
+msgstr[1] "%(counter)s resultados"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s no total"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostrar todos"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtro"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Ver no site"
+
+#: contrib/admin/templates/admin/change_form.html:30
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Por favor corrija o erro abaixo."
+msgstr[1] "Por favor corrija os erros abaixo."
+
+#: contrib/admin/templates/admin/change_form.html:48
+msgid "Ordering"
+msgstr "Ordenação"
+
+#: contrib/admin/templates/admin/change_form.html:51
+msgid "Order:"
+msgstr "Ordem:"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Gravar como novo"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Gravar e adicionar outro"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Gravar e continuar a editar"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Gravar"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr "Passa-se algo de errado com a instalação da sua base de dados. Verifique se as tabelas da base de dados foram criadas apropriadamente e verifique se a base de dados pode ser lida pelo utilizador definido."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "Primeiro introduza o nome do utilizador e palavra-passe. Depois poderá editar mais opções do utilizador."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Utilizador"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "Palavra-passe"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "Palavra-passe (novamente)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "Introduza a palavra-passe como acima, para verificação."
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Modificação de palavra-passe"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Palavra-passe modificada com sucesso"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "A sua palavra-passe foi modificada."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Reinicializar palavra-passe"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr "Esqueceu-se da palavra-passe? Introduza o seu email abaixo, e enviaremos a sua palavra-passe reinicializada para o seu e-mail."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Endereço de e-mail:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Reinicializar a minha palavra-passe"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Obrigado por ter gasto tempo de qualidade no Web site hoje."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Entrar novamente"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Palavra-passe reinicializada com sucesso"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr "Foi enviada uma nova palavra-passe nova para o e-mail que submeteu. Deverá estar a recebê-la brevemente."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr "Por razões de segurança, por favor introduza a sua palavra-passe antiga e depois introduza a nova duas vezes para que possamos verificar se introduziu correctamente."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Palavra-passe antiga:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Nova password:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Confirmação da palavra-passe:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Modificar a minha palavra-passe"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Está a receber este e-mail porque requisitou a reinicialização da sua palavra-passe"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "para a sua conta de utilizador em %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "A sua nova palavra-chave é: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Tenha a liberdade de modificar esta palavra-passe através desta página:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "O seu nome de utilizador, no caso de se ter esquecido:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Obrigado pela sua visita ao nosso site!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "A equipa do %(site_name)s"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Itens do bookmark"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Documentação dos itens do bookmark"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Para instalar itens no bookmark, arraste o link para sua barra \n"
+"de bookmarks, ou clique com o lado direito do rato no link e adicione ao seus bookmarks. Agora pode \n"
+"seleccionar o link do bookmark de qualquer página no site. Note que alguns destes \n"
+"itens do bookmark requerem que visualize o site de um computador designado \n"
+"por \"internal\" (entre em contacto com o seu administrador de sistema se \n"
+"não tiver a certeza se o seu computador é \"internal\".</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Documentação desta página"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "Vai de qualquer página para a documentação da view que gera essa página."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Mostrar o ID do objecto"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "Mostra o tipo de conteúdo e o ID único para as páginas que representam um único objecto."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Editar este objecto (janela actual)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Vai para a página de admin para as páginas que representam um único objecto."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Editar este objecto (nova janela)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Tal como acima, mas abre a página de admin numa nova janela."
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Hora:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Actualmente:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Modificar:"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redireccionar de"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr "Isto deverá ser um caminho absoluto, excluindo o domínio. Exemplo: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redireccionar para"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "Isto poderá ser um caminho absoluto (como acima) ou um URL completo começado por 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redireccionar"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redirecciona"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Exemplo: '/about/contact/'. Verifique se possui as barras no inicio e no fim."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "titulo"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "conteúdo"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "permitir comentários"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "nome da template"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr "Exemplo: 'flatpages/contact_page.html'. Se não for fornecido, o sistema usará: 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "é necessário registo"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Se estiver seleccionado, apenas utilizadores autenticados poderão ver esta página."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "página plana"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "páginas planas"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "Saiu"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "nome"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "nome de código"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "permissão"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "permissões"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "grupo"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "grupos"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "utilizador"
+
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "Obrigatório. 30 caracteres ou menos. Apenas caracteres alfanúmericos (letras, números ou underscores)."
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "primeiro nome"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "último nome"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "endereço de e-mail"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "palavra-passe"
+
+#: contrib/auth/models.py:94
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr "Use '[algo]$[salt]$[hexdigest]'"
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "status de equipa"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "Define se o utilizador pode usar a administração do site."
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "activo"
+
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "Define se este utiliador pode usar a adminstração do site. Não seleccione em vez de remover as contas."
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "Status de superuser"
+
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "Define se este utilizador tem todas as permissões sem explicitamente as atribuir."
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "última entrada"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "data de registo"
+
+#: contrib/auth/models.py:101
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr "Em adição às permissões definidas manualmente, este utilizador também terá todas as permissões atribuídas a cada grupo a que partence."
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "permissões do utilizador"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "utilizador"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "utilizadores"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "Informação pessoal"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "Permissões"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "Datas importantes"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "Grupos"
+
+#: contrib/auth/models.py:256
+msgid "message"
+msgstr "mensagem"
+
+#: contrib/auth/forms.py:52
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "Aparentemente que o seu browser não está configurado para aceitar cookies. Os cookies são necessários para poder entrar."
+
+#: contrib/auth/forms.py:61
+msgid "This account is inactive."
+msgstr "Esta conta não está activa."
+
+#: contrib/contenttypes/models.py:20
+msgid "python model class name"
+msgstr "python model class name"
+
+#: contrib/contenttypes/models.py:23
+msgid "content type"
+msgstr "tipo de conteúdo"
+
+#: contrib/contenttypes/models.py:24
+msgid "content types"
+msgstr "tipos de conteúdos"
+
+#: contrib/sessions/models.py:51
+msgid "session key"
+msgstr "chave da sessão"
+
+#: contrib/sessions/models.py:52
+msgid "session data"
+msgstr "dados da sessão"
+
+#: contrib/sessions/models.py:53
+msgid "expire date"
+msgstr "data de expiração"
+
+#: contrib/sessions/models.py:57
+msgid "session"
+msgstr "sessão"
+
+#: contrib/sessions/models.py:58
+msgid "sessions"
+msgstr "sessões"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "nome do domínio"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "mostrar nome"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "site"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "sites"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Segunda-feira"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Terça-feira"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Quarta-feira"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Quinta-feira"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Sexta-feira"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Sábado"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Domingo"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Janeiro"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Fevereiro"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "Março"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "Abril"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "Maio"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "Junho"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "Julho"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Agosto"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Setembro"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Outubro"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Novembro"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Dezembro"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "fev"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "abr"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "ago"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "set"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "out"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "dez"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "Jan."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "Fev."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "Ago."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Set."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "Out."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "Dez."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "ano"
+msgstr[1] "anos"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mês"
+msgstr[1] "meses"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "semana"
+msgstr[1] "semanas"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dia"
+msgstr[1] "dias"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hora"
+msgstr[1] "horas"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuto"
+msgstr[1] "minutos"
+
+#: utils/translation/trans_real.py:362
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation/trans_real.py:363
+msgid "DATETIME_FORMAT"
+msgstr "N j, Y, P"
+
+#: utils/translation/trans_real.py:364
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:380
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:381
+msgid "MONTH_DAY_FORMAT"
+msgstr "F j"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Árabe"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengalês"
+
+#: conf/global_settings.py:41
+msgid "Czech"
+msgstr "Checo"
+
+#: conf/global_settings.py:42
+msgid "Welsh"
+msgstr "Galês"
+
+#: conf/global_settings.py:43
+msgid "Danish"
+msgstr "Dinamarquês"
+
+#: conf/global_settings.py:44
+msgid "German"
+msgstr "Alemão"
+
+#: conf/global_settings.py:45
+msgid "Greek"
+msgstr "Grego"
+
+#: conf/global_settings.py:46
+msgid "English"
+msgstr "Inglês"
+
+#: conf/global_settings.py:47
+msgid "Spanish"
+msgstr "Espanhol"
+
+#: conf/global_settings.py:48
+msgid "Argentinean Spanish"
+msgstr "Espanhol Argentino"
+
+#: conf/global_settings.py:49
+msgid "Finnish"
+msgstr "Filandês"
+
+#: conf/global_settings.py:50
+msgid "French"
+msgstr "Francês"
+
+#: conf/global_settings.py:51
+msgid "Galician"
+msgstr "Galaciano"
+
+#: conf/global_settings.py:52
+msgid "Hungarian"
+msgstr "Húngaro"
+
+#: conf/global_settings.py:53
+msgid "Hebrew"
+msgstr "Hebraico"
+
+#: conf/global_settings.py:54
+msgid "Icelandic"
+msgstr "Islandês"
+
+#: conf/global_settings.py:55
+msgid "Italian"
+msgstr "Italiano"
+
+#: conf/global_settings.py:56
+msgid "Japanese"
+msgstr "Japonês"
+
+#: conf/global_settings.py:57
+msgid "Dutch"
+msgstr "Holandês"
+
+#: conf/global_settings.py:58
+msgid "Norwegian"
+msgstr "Norueguês"
+
+#: conf/global_settings.py:59
+msgid "Brazilian"
+msgstr "Brasileiro"
+
+#: conf/global_settings.py:60
+msgid "Romanian"
+msgstr "Romeno"
+
+#: conf/global_settings.py:61
+msgid "Russian"
+msgstr "Russo"
+
+#: conf/global_settings.py:62
+msgid "Slovak"
+msgstr "Eslovaco"
+
+#: conf/global_settings.py:63
+msgid "Slovenian"
+msgstr "Esloveno"
+
+#: conf/global_settings.py:64
+msgid "Serbian"
+msgstr "Sérvio"
+
+#: conf/global_settings.py:65
+msgid "Swedish"
+msgstr "Sueco"
+
+#: conf/global_settings.py:66
+msgid "Tamil"
+msgstr "Tamil"
+
+#: conf/global_settings.py:67
+msgid "Turkish"
+msgstr "Turco"
+
+#: conf/global_settings.py:68
+msgid "Ukrainian"
+msgstr "Ucraniano"
+
+#: conf/global_settings.py:69
+msgid "Simplified Chinese"
+msgstr "Chinês Simplificado"
+
+#: conf/global_settings.py:70
+msgid "Traditional Chinese"
+msgstr "Chinês Tradicional"
+
+#: core/validators.py:63
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Este valor apenas poderá conter letras, números ou underscores."
+
+#: core/validators.py:67
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "Este valor apenas poderá conter letras, números, underscores ou traços."
+
+#: core/validators.py:71
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Este valor apenas poderá conter letras, números, undercores ou hífenes."
+
+#: core/validators.py:75
+msgid "Uppercase letters are not allowed here."
+msgstr "Letras em maiúsculas não são permitidas aqui."
+
+#: core/validators.py:79
+msgid "Lowercase letters are not allowed here."
+msgstr "Letras em minúsculas não são permitidas aqui."
+
+#: core/validators.py:86
+msgid "Enter only digits separated by commas."
+msgstr "Introduza apenas números separados por vírgulas."
+
+#: core/validators.py:98
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Introduza endereços de e-mail válidos separados por vírgulas."
+
+#: core/validators.py:102
+msgid "Please enter a valid IP address."
+msgstr "Por favor introduza um endereço IP válido."
+
+#: core/validators.py:106
+msgid "Empty values are not allowed here."
+msgstr "Valores em branco não são permitidos aqui."
+
+#: core/validators.py:110
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Caracteres não númericos não são permitidos aqui."
+
+#: core/validators.py:114
+msgid "This value can't be comprised solely of digits."
+msgstr "Este valor não pode ser constituido apenas por números."
+
+#: core/validators.py:119
+msgid "Enter a whole number."
+msgstr "Introduza um número inteiro."
+
+#: core/validators.py:123
+msgid "Only alphabetical characters are allowed here."
+msgstr "Apenas letras são válidas aqui."
+
+#: core/validators.py:138
+msgid "Year must be 1900 or later."
+msgstr "O ano deve ser 1900 ou superior."
+
+#: core/validators.py:142
+#, python-format
+msgid "Invalid date: %s."
+msgstr "Data inválida: %s."
+
+#: core/validators.py:146 db/models/fields/__init__.py:415
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Introduza uma data válida no formato AAAA-MM-DD."
+
+#: core/validators.py:151
+msgid "Enter a valid time in HH:MM format."
+msgstr "Introduza uma hora válida no formato HH:MM."
+
+#: core/validators.py:155 db/models/fields/__init__.py:477
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Introduza uma data/hora válida no formato AAAA-MM-DD HH:MM."
+
+#: core/validators.py:160
+msgid "Enter a valid e-mail address."
+msgstr "Introduza um endereço de e-mail válido."
+
+#: core/validators.py:172 core/validators.py:401 forms/__init__.py:661
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Nenhum ficheiro foi submetido. Verifique o tipo de codificação do formulário."
+
+#: core/validators.py:176
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "Introduza uma imagem válida. O ficheiro que introduziu ou não é uma imagem ou está corrompido."
+
+#: core/validators.py:183
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "O URL %s não aponta para uma imagem válida."
+
+#: core/validators.py:187
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Os números de telefone deverão ser no formato XXX-XXX-XXXX. \"%s\" é inválido."
+
+#: core/validators.py:195
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "O URL %s não aponta para um QuickTime video válido."
+
+#: core/validators.py:199
+msgid "A valid URL is required."
+msgstr "É obrigatório um URL válido"
+
+#: core/validators.py:213
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"É obrigatório um HTML válido. Os erros específicos são:\n"
+"%s"
+
+#: core/validators.py:220
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML mal formatado: %s"
+
+#: core/validators.py:230
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL inválido: %s"
+
+#: core/validators.py:234 core/validators.py:236
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "O URL %s é um link quebrado."
+
+#: core/validators.py:242
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Introduza uma abreviação de um estado dos E.U.A. válido."
+
+#: core/validators.py:256
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Atenção à linguagem! A palavra %s não é permitida aqui."
+msgstr[1] "Atenção à linguagem! As palavras %s não são permitidas aqui."
+
+#: core/validators.py:263
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Este campo deve ser igual ao campo '%s'."
+
+#: core/validators.py:282
+msgid "Please enter something for at least one field."
+msgstr "Por favor preencha pelo menos um campo."
+
+#: core/validators.py:291 core/validators.py:302
+msgid "Please enter both fields or leave them both empty."
+msgstr "Por favor preencha ambos os campos ou deixe ambos vazios."
+
+#: core/validators.py:309
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Este campo deve ser preenchido se %(field)s for %(value)s"
+
+#: core/validators.py:321
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Este campo deve ser preenchido se %(field)s não é %(value)s"
+
+#: core/validators.py:340
+msgid "Duplicate values are not allowed."
+msgstr "Valores duplicados não são permitidos."
+
+#: core/validators.py:363
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Este valor deverá ser uma potência de %s."
+
+#: core/validators.py:374
+msgid "Please enter a valid decimal number."
+msgstr "Por favor introduza um número décimal válido."
+
+#: core/validators.py:378
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Por favor introduza um número décimal com um máximo de %s digito."
+msgstr[1] "Por favor introduza um número décimal com um máximo de %s digitos."
+
+#: core/validators.py:381
+#, python-format
+#, fuzzy
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Por favor introduza um número décimal com o máximo de % digito na parte inteira."
+msgstr[1] "Por favor introduza um número décimal com o máximo de % digitos na parte inteira."
+
+#: core/validators.py:384
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Por favor introduza um número décimal com o máximo de %s digito na parte décimal."
+msgstr[1] "Por favor introduza um número décimal com o máximo de %s digitos na parte décimal."
+
+#: core/validators.py:394
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Verifique que o ficheiro introduzido tem pelo menos %s bytes."
+
+#: core/validators.py:395
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Verifique se o ficheiro introduzido tem no máximo %s bytes."
+
+#: core/validators.py:412
+msgid "The format for this field is wrong."
+msgstr "O formato deste campo é errado."
+
+#: core/validators.py:427
+msgid "This field is invalid."
+msgstr "Este campo é inválido."
+
+#: core/validators.py:463
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Não foi possível extrair nada de %s."
+
+#: core/validators.py:466
+#, python-format
+#, fuzzy
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "O URL %(url)s devolveu um tipo de conteúdo inválido no header: '%s(contenttype)s'."
+
+#: core/validators.py:499
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr "Por favor feche a tag %(tag)s na linha %(line)s. (A linha começa por \"%(start)s\".)"
+
+#: core/validators.py:503
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr "Algum texto começado na linha %(line)s não é permitido nesse contexto. (A linha começa por \"%(start)s\".)"
+
+#: core/validators.py:508
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr "\"%(attr)s\" na linha %(line)s é um atributo inválido. (A linha começa por \"%(start)s\".)"
+
+#: core/validators.py:513
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr "\"<%(tag)s>\" na linha %(line)s é um tag inválida. (A linha começa por \"%(start)s\".)"
+
+#: core/validators.py:517
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr "Uma tag na linha %(line)s não tem um o mais atributos obrigatórios. (A linha começa por \"%(start)s\".)"
+
+#: core/validators.py:522
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr "O atributo \"%(attr)s\" na linha %(line)s tem um valor inválido. (A linha começa por \"%(start)s\".)"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "O(A) %(verbose_name)s foi criado(a) com sucesso."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "O(A) %(verbose_name)s foi actualizado(a) com sucesso."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "O(A) %(verbose_name)s foi removido(a)."
+
+#: db/models/manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "O(A) %(object)s com este %(type)s já existe para o(a) %(field)s fornecido."
+
+#: db/models/fields/__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s com %(fieldname)s já existe."
+
+#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:551 db/models/fields/__init__.py:562
+#: forms/__init__.py:346
+msgid "This field is required."
+msgstr "Este campo é obrigatório."
+
+#: db/models/fields/__init__.py:340
+msgid "This value must be an integer."
+msgstr "Este campo deverá ser inteiro."
+
+#: db/models/fields/__init__.py:372
+msgid "This value must be either True or False."
+msgstr "Este valor deverá ser True ou False."
+
+#: db/models/fields/__init__.py:388
+msgid "This field cannot be null."
+msgstr "Este campo não pode ser nulo."
+
+#: db/models/fields/__init__.py:571
+msgid "Enter a valid filename."
+msgstr "Introduza um nome de ficheiro válido."
+
+#: db/models/fields/related.py:51
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Por favor introduza um %s válido."
+
+#: db/models/fields/related.py:618
+msgid "Separate multiple IDs with commas."
+msgstr "Separe múltiplos IDs através de vírgulas."
+
+#: db/models/fields/related.py:620
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Mantenha pressionado o \"Control\", or \"Command\" no Mac, para seleccionar mais do que um."
+
+#: db/models/fields/related.py:664
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Por favor introduza IDs de %(self)s válidos. O valor %(value)r é inválido."
+msgstr[1] "Por favor introduza IDs de %(self)s válidos. Os valores %(value)r são inválidos."
+
+#: forms/__init__.py:381
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Verifique se o seu texto tem menos de %s caracter."
+msgstr[1] "Verifique se o seu texto tem menos de %s caracteres."
+
+#: forms/__init__.py:386
+msgid "Line breaks are not allowed here."
+msgstr "Quebras de linha não são permitas aqui."
+
+#: forms/__init__.py:487 forms/__init__.py:560 forms/__init__.py:599
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Seleccione uma opção válida; '%(data)s' não se encontra em %(choices)s."
+
+#: forms/__init__.py:663
+msgid "The submitted file is empty."
+msgstr "O ficheiro submetido encontra-se vazio."
+
+#: forms/__init__.py:719
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Introduza um número entre -32,768 e 32,767."
+
+#: forms/__init__.py:729
+msgid "Enter a positive number."
+msgstr "Introduza um número positivo."
+
+#: forms/__init__.py:739
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Introduza um número entre 0 e 32,767."
+
+#: template/defaultfilters.py:401
+msgid "yes,no,maybe"
+msgstr "sim,não,talvez"
diff --git a/webapp/django/conf/locale/pt/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/pt/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..26ad584
--- /dev/null
+++ b/webapp/django/conf/locale/pt/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/pt/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/pt/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..130a75f
--- /dev/null
+++ b/webapp/django/conf/locale/pt/LC_MESSAGES/djangojs.po
@@ -0,0 +1,108 @@
+# Portuguese translation of Django.
+# Copyright (C) 2007 the Lawrence Journal-World
+# This file is distributed under the same license as the PACKAGE package.
+# Nuno Mariz <nmariz@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-03-15 11:51+0100\n"
+"PO-Revision-Date: 2007-03-16 10:01+0000\n"
+"Last-Translator: Nuno Mariz <nmariz@gmail.com>\n"
+"Language-Team: pt_PT <nmariz@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Disponível %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Escolher todos"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Adicionar"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Remover"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Escolhido %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Seleccione a(s) sua(s) escolha(s) e clique "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Limpar tudo"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Domingo Segunda Terça Quarta Quinta Sexta Sábado"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D S T Q Q S S"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Agora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Relógio"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Escolha a hora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Meia-noite"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "Meio-dia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Hoje"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Calendário"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Ontem"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Amanhã"
diff --git a/webapp/django/conf/locale/pt_BR/LC_MESSAGES/django.mo b/webapp/django/conf/locale/pt_BR/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..f254e69
--- /dev/null
+++ b/webapp/django/conf/locale/pt_BR/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/pt_BR/LC_MESSAGES/django.po b/webapp/django/conf/locale/pt_BR/LC_MESSAGES/django.po
new file mode 100644
index 0000000..5f4555a
--- /dev/null
+++ b/webapp/django/conf/locale/pt_BR/LC_MESSAGES/django.po
@@ -0,0 +1,4381 @@
+# Português do Brasil translation of django.
+# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-31 21:44-0300\n"
+"PO-Revision-Date: 2008-03-31 21:59-0300\n"
+"Last-Translator: Guilherme Mesquita Gondim <semente@taurinus.org>\n"
+"Language-Team: Grupo de Localização para o Português <django-l10n-portuguese@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arábico"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengali"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "Búlgaro"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr "Catalão"
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "Tcheco"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "Galês"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "Dinamarquês"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "Alemão"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "Grego"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "Inglês"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "Espanhol"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "Espanhol Argentino"
+
+#: conf/global_settings.py:51
+msgid "Basque"
+msgstr "Basco"
+
+#: conf/global_settings.py:52
+msgid "Persian"
+msgstr "Persa"
+
+#: conf/global_settings.py:53
+msgid "Finnish"
+msgstr "Finlandês"
+
+#: conf/global_settings.py:54
+msgid "French"
+msgstr "Francês"
+
+#: conf/global_settings.py:55
+msgid "Irish"
+msgstr "Irlandês"
+
+#: conf/global_settings.py:56
+msgid "Galician"
+msgstr "Galiciano"
+
+#: conf/global_settings.py:57
+msgid "Hungarian"
+msgstr "Húngaro"
+
+#: conf/global_settings.py:58
+msgid "Hebrew"
+msgstr "Hebraico"
+
+#: conf/global_settings.py:59
+msgid "Croatian"
+msgstr "Croata"
+
+#: conf/global_settings.py:60
+msgid "Icelandic"
+msgstr "Islandês"
+
+#: conf/global_settings.py:61
+msgid "Italian"
+msgstr "Italiano"
+
+#: conf/global_settings.py:62
+msgid "Japanese"
+msgstr "Japonês"
+
+#: conf/global_settings.py:63
+msgid "Georgian"
+msgstr "Georgiana"
+
+#: conf/global_settings.py:64
+msgid "Korean"
+msgstr "Coreano"
+
+#: conf/global_settings.py:65
+msgid "Khmer"
+msgstr "Khmer"
+
+#: conf/global_settings.py:66
+msgid "Kannada"
+msgstr "Canarês"
+
+#: conf/global_settings.py:67
+msgid "Latvian"
+msgstr "Letão"
+
+#: conf/global_settings.py:68
+msgid "Macedonian"
+msgstr "Macedônio"
+
+#: conf/global_settings.py:69
+msgid "Dutch"
+msgstr "Neerlandês"
+
+#: conf/global_settings.py:70
+msgid "Norwegian"
+msgstr "Norueguês"
+
+#: conf/global_settings.py:71
+msgid "Polish"
+msgstr "Polaco"
+
+#: conf/global_settings.py:72
+msgid "Portugese"
+msgstr "Português"
+
+#: conf/global_settings.py:73
+msgid "Brazilian Portuguese"
+msgstr "Português Brasileiro"
+
+#: conf/global_settings.py:74
+msgid "Romanian"
+msgstr "Romeno"
+
+#: conf/global_settings.py:75
+msgid "Russian"
+msgstr "Russo"
+
+#: conf/global_settings.py:76
+msgid "Slovak"
+msgstr "Eslovaco"
+
+#: conf/global_settings.py:77
+msgid "Slovenian"
+msgstr "Esloveno"
+
+#: conf/global_settings.py:78
+msgid "Serbian"
+msgstr "Sérvio"
+
+#: conf/global_settings.py:79
+msgid "Swedish"
+msgstr "Sueco"
+
+#: conf/global_settings.py:80
+msgid "Tamil"
+msgstr "Tâmil"
+
+#: conf/global_settings.py:81
+msgid "Telugu"
+msgstr "Telugu"
+
+#: conf/global_settings.py:82
+msgid "Turkish"
+msgstr "Turco"
+
+#: conf/global_settings.py:83
+msgid "Ukrainian"
+msgstr "Ucraniano"
+
+#: conf/global_settings.py:84
+msgid "Simplified Chinese"
+msgstr "Chinês Simplificado"
+
+#: conf/global_settings.py:85
+msgid "Traditional Chinese"
+msgstr "Chinês Tradicional"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Por %s</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Todos"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Qualquer data"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Hoje"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Últimos 7 dias"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Este mês"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Este ano"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Sim"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Não"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "hora da ação"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "id do objeto"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "repr do objeto"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "flag de ação"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "modificar mensagem"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "entrada de log"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "entradas de log"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Página não encontrada"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Desculpe, mas a página requisitada não pode ser encontrada."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Início"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Erro no servidor"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Erro no servidor (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Erro no Servidor <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Houve um erro. Este foi reportado aos administradores do site através do e-"
+"mail e deve ser corrigido em breve. Obrigado pela compreensão."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Bem vindo,"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentação"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Alterar senha"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Encerrar sessão"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Site de administração do Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administração do Django"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Adicionar"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Histórico"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Ver no site"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Por favor, corrija o erro abaixo."
+msgstr[1] "Por favor, corrija os erros abaixo."
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Ordenação"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Ordem:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Adicionar %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Apagar"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"A remoção de '%(object_name)s' %(escaped_object)s pode resultar na remoção "
+"de objetos relacionados, mas sua conta não tem a permissão para remoção dos "
+"seguintes tipos de objetos:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Você tem certeza que quer remover o %(object_name)s \"%(escaped_object)s\"? "
+"Todos os seguintes itens relacionados serão removidos:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Sim, tenho certeza"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "Por %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtro"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelos disponíveis na aplicação %(name)s"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modificar"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Você não tem permissão para edição."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Ações Recentes"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Minhas Ações"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nenhuma disponível"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Alguma coisa errada com a instalação do banco de dados. Certifique-se que as "
+"tabelas necessárias foram criadas e que o banco de dados pode ser acessado "
+"pelo usuário."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuário:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Senha:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:31
+msgid "Log in"
+msgstr "Acessar"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Data/hora"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Usuário"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Ação"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j. N Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Este objeto não tem um histórico de alterações. Ele provavelmente não foi "
+"adicionado por este site de administração."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostrar tudo"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Ir"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 resultado"
+msgstr[1] "%(counter)s resultados"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s total"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Salvar como novo"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Salvar e adicionar outro"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Salvar e continuar editando"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Salvar"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Primeiro, informe um nome de usuário e senha. Então, você será capaz de "
+"editar mais opções do usuário."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Usuário:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Senha:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Senha (novamente)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "Informe a mesma senha digitada acima, para verificação."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Informe uma nova senha para o usuário <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Itens de bookmark"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Documentação de itens de bookmark"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Para instalar um item no bookmark, arraste o link para a \n"
+"barra de ferramentas de bookmarks, ou clique com o botão direito no link e\n"
+"adicione-o à barra de ferramentas. Agora você pode selecionar o item de\n"
+"bookmark de qualquer página do site. Lembre-se que alguns desses itens\n"
+"de bookmark requerem que você veja o site de um computador designado\n"
+"como \"interno\" (converse com seu administrador de sistemas se você não\n"
+"souber se seu computador é \"interno\").</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentação para esta página"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Leva você de qualquer página da documentação para a view que gera tal página."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Mostar ID de objeto"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Mostra o tipo de conteúdo e ID único para páginas que representam um objeto "
+"único."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Editar este objeto (janela atual)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Vai para a página de administração que representam um objeto único."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Editar este objeto (nova janela)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Como acima, mas abre a página de administração em uma nova janela."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Obrigado por visitar nosso Web site hoje."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Acessar novamente"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Alterar senha"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Senha alterada com sucesso"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Sua senha foi alterada."
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Por favor, informe sua senha antiga, por segurança, e então informe sua nova "
+"senha duas vezes para que possamos verificar se você digitou corretamente."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Senha antiga:"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Nova senha:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Confirme a senha:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Alterar minha senha"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Recuperar senha"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Senha recuperada com sucesso"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Nós enviamos uma nova senha para o e-mail que você informou. Você deverá "
+"receber uma mensagem em breve."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Você está recebendo este e-mail porque você pediu uma nova senha"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "para sua conta em %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Sua nova senha é: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Sinta-se a vontade para alterar esta senha visitando esta página:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Seu nome de usuário, caso tenha esquecido:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Obrigado por usar nosso site!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Equipe do %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Esqueceu a senha? Digite seu e-mail abaixo e nós iremos enviar uma nova "
+"senha para você."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Endereço de e-mail:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Reinicializar minha senha"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Hora:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Atualmente:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Modificar:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Todas as datas"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "O(A) %(name)s \"%(obj)s\" foi adicionado com sucesso."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Você pode editá-lo(a) de novo abaixo."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Adicionar usuário"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Senha modificada com sucesso."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Alterar senha: %s"
+
+#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Por favor entre usuário e senha corretos. Note que ambos os campos "
+"diferenciam maiúsculas e minúsculas."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Por favor acesse novamente, pois sua sessão expirou. Não se preocupe: Os "
+"dados enviados foram salvos."
+
+#: contrib/admin/views/decorators.py:76
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Parece que seu navegador não está configurado para aceitar cookies. Por "
+"favor habilite os cookies, recarregue esta página, e tente novamente."
+
+#: contrib/admin/views/decorators.py:90
+msgid "Usernames cannot contain the '@' character."
+msgstr "Nomes de usuário não podem conter o caractere '@'."
+
+#: contrib/admin/views/decorators.py:92
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Seu endereço de e-mail não é seu nome de usuário. Tente usar '%s'"
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "filtro:"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "view:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "Aplicação %r não encontrada"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "O model %(name)r não encontrado na aplicação %(label)r"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "o objeto `%(label)s.%(type)s` relacionado"
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "objetos `%(label)s.%(name)s` relacionados"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "todos %s"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "número de %s"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Campos nos objetos %s"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Inteiro"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Lógico (Verdadeiro ou Falso)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (até %(max_length)s)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Inteiros separados por vírgula"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Data (sem hora)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Data/hora"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "Endereço de e-mail"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Caminho do Arquivo"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Número de ponto flutuante"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "Endereço IP:"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Lógico (Verdadeiro, Falso ou Nada)"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Relação com o modelo pai"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Número de telefone"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Texto"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Hora"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "Estado dos EUA (duas letras maiúsculas)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "Texto XML"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s não aparenta ser um objeto urlpattern"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Administração do Site"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Você pode adicionar outro(a) %s abaixo."
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "Adicionar %s"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "Adicionado %s."
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "e"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "Modificado %s."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "Excluído %s."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Nenhum campo modificado."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "O(A) %(name)s \"%(obj)s\" foi modificado com sucesso."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"O(A) %(name)s \"%(obj)s\" foi adicionado com sucesso. Você pode editá-lo(a) "
+"abaixo."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "Modificar %s"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Um(a) ou mais %(fieldname)s em %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Um(a) ou mais %(fieldname)s em %(name)s:"
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "O(A) %(name)s \"%(obj)s\" foi excluído com sucesso."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Você tem certeza?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Histórico de Modificações: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "Selecione %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "Selecione %s para modificar"
+
+#: contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr "Erro na base de dados"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Os dois campos de senha não combinam."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Um usuário com este nome de usuário já existe."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Seu navegador Web não parece estar com os cookies habilitados. Cookies são "
+"requeridos para acessar."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Esta conta está inativa."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Este endereço de e-mail não está associado com uma conta de usuário.Você tem "
+"certeza que está registrado?"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Recuperar senha em %s"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Os dois campos 'nova senha' não conferem."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr ""
+"A senha antiga foi digitada incorretamente. Por favor, informe a senha "
+"novamente."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "nome"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "apelido"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "permissão"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "permissões"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "grupo"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr "grupos"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "usuário"
+
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Obrigatório. 30 caracteres ou menos. Apenas caracteres alfanuméricos(letras, "
+"dígitos e sublinhados (_) )"
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "primeiro nome"
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "último nome"
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "endereço de e-mail"
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "senha"
+
+#: contrib/auth/models.py:135
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Use '[algo]$[salt]$[hexdigest]' ou <a href=\"password/\"> Altere a senha</a>."
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "status da equipe"
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Permite ao usuário o acesso a este site de administração."
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "ativar"
+
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Permite ao usuário acessar este site de administração. Ao invés de excluir "
+"contas de usuário, desmarque isso."
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "status de superusuário"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Informa que este usuário tem todas as permissões sem atribuí-las "
+"explicitamente."
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "último login"
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "data de registro"
+
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Em adição às permissões atribuídas manualmente, este usuário também terá "
+"todas as permissões dadas a cada grupo que participar."
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "permissões do usuário"
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "usuário"
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "usuários"
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Informações pessoais"
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Permissões"
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Datas importantes"
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Grupos"
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "mensagem"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Sessão encerrada"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
+msgid "object ID"
+msgstr "id do objeto"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "título"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+msgid "comment"
+msgstr "comentário"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "avaliação #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "avaliação #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "avaliação #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "avaliação #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "avaliação #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "avaliação #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "avaliação #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "avaliação #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "é uma avaliação válida"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "data/hora de envio"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
+msgid "is public"
+msgstr "é público"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "foi removido"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Selecione esta opção se o comentário é inapropriado. A mensagem \"Este "
+"comentário foi removido\" será mostrada no lugar."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "comentários"
+
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
+msgid "Content object"
+msgstr "Objeto de conteúdo"
+
+#: contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Enviado por %(user)s em %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+msgid "person's name"
+msgstr "nome da pessoa"
+
+#: contrib/comments/models.py:181
+msgid "ip address"
+msgstr "endereço ip"
+
+#: contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr "aprovado pela equipe"
+
+#: contrib/comments/models.py:187
+msgid "free comment"
+msgstr "comentário livre"
+
+#: contrib/comments/models.py:188
+msgid "free comments"
+msgstr "comentários livres"
+
+#: contrib/comments/models.py:250
+msgid "score"
+msgstr "pontuação"
+
+#: contrib/comments/models.py:251
+msgid "score date"
+msgstr "data de pontuação"
+
+#: contrib/comments/models.py:255
+msgid "karma score"
+msgstr "pontuação de karma"
+
+#: contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "pontuações de karma"
+
+#: contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "Availação %(score)d por %(user)s"
+
+#: contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"O usuário %(user)s colocou flags neste comentário:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:285
+msgid "flag date"
+msgstr "flag de data"
+
+#: contrib/comments/models.py:289
+msgid "user flag"
+msgstr "flag de usuário"
+
+#: contrib/comments/models.py:290
+msgid "user flags"
+msgstr "flags de usuário"
+
+#: contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "Flag por %r"
+
+#: contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "data de exclusão"
+
+#: contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "Exclusão feita pelo moderador"
+
+#: contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "Exclusões feitas pelo moderador"
+
+#: contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Exclusao feita pelo moderador %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Esqueceu sua senha?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Avaliações"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Requerido"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcional"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Postar uma foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Comentário:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Pré-visualizar comentário"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Seu nome:"
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"Esta avaliação é requerida porque você entrou com ao menos uma avaliação"
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Este comentário foi feito por um usuário que postou menos de %(count)s "
+"comentário:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Este comentário foi feito por um usuário que postou menos de %(count)s "
+"comentários:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Este comentário foi feito por um usuário incompleto:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Somente POSTs são permitidos"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Um ou mais dos campos requeridos não foram enviados"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Alguém modificou o formulário de comentários (violação de segurança)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"O formulário de comentários teve um parâmetro 'target' inválido -- o ID do "
+"objeto é inválido"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "O formulário de comentário não forneceu nem 'preview' nem 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Usuários anônimos não podem votar"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "ID de comentário inválido"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Você não pode votar em si mesmo"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "nome da classe model no python"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "tipo de conteúdo"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "tipos de conteúdo"
+
+#: contrib/flatpages/models.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Exemplo: '/sobre/contato/'. Lembre-se das barras no começo e no final."
+
+#: contrib/flatpages/models.py:10
+msgid "title"
+msgstr "título"
+
+#: contrib/flatpages/models.py:11
+msgid "content"
+msgstr "conteúdo"
+
+#: contrib/flatpages/models.py:12
+msgid "enable comments"
+msgstr "habilitar comentários"
+
+#: contrib/flatpages/models.py:13
+msgid "template name"
+msgstr "nome do modelo"
+
+#: contrib/flatpages/models.py:14
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Exemplo: 'flatpages/contact_page.html'. Se não for informado, será utilizado "
+"'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:15
+msgid "registration required"
+msgstr "registro obrigatório"
+
+#: contrib/flatpages/models.py:15
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Se estiver marcado, apenas usuários autenticados poderão ver a página."
+
+#: contrib/flatpages/models.py:20
+msgid "flat page"
+msgstr "página plana"
+
+#: contrib/flatpages/models.py:21
+msgid "flat pages"
+msgstr "páginas planas"
+
+#: contrib/flatpages/models.py:27
+msgid "Advanced options"
+msgstr "Opções avançadas"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "º"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milhão"
+msgstr[1] "%(value).1f milhões"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f bilhão"
+msgstr[1] "%(value).1f bilhões"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f trilhão"
+msgstr[1] "%(value).1f trilhões"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "um"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "dois"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "três"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "quatro"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "cinco"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "seis"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "sete"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "oito"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "nove"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "hoje"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "amanhã"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "ontem"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Informe um código postal no formato NNNN ou ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Este campo requer somente números."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Este campo requer 7 ou 8 dígitos."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Informe um CUIT válido no formato XX-XXXXXXXX-X ou XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "CUIT inválido."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Informe um código postal de 4 dígitos."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Informe um código postal no formato XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Números de telefone devem estar no formato XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+"Selecione um estado brasileiro válido. O estado escolhido não é um dos "
+"estados disponíveis."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Número de CPF inválido."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Este campo requer no máximo 11 dígitos ou 14 caracteres."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Número de CNPJ inválido."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Este campo requer ao menos 14 dígitos"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Informe um código postal no formato XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"Informe um número de Canadian Social Insurance válido no formato XXX-XXX-XXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Informe um código postal no formato XXXX."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Informe uma indentidade Suíça ou número de passaporte válido no formato "
+"X1234567<0 ou 1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Informe um RUT chileno válido."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Informe um RUT chileno válido. O formato é XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "O RUT chileno não é válido."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Informe um código postal no formato XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Informe um número de cartão de identidade Alemã no formato XXXXXXXXXXX-"
+"XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Álava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alicante"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almería"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Ávila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Ilhas Baleares"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Cáceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cádiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castellón"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Cidade Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Córdoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "Corunha"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Gerunda"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipúscoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "Leão"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lérida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Málaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Múrcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Astúrias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palência"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantábria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segóvia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilhe"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Sória"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valência"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Biscaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Saragoça"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilha"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andaluzia"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragão"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principado das Astúrias"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Ilhas Baleares"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "País Basco"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Ilhas Canárias"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castela-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Cestela e Leão"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Catalunha"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galiza"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Região de Múrcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Comunidade Foral de Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Comunidade Valenciana"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Informe um código postal válido no intervalo e formato 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Informe um número de telefone válido em um destes formatos 6XXXXXXXX, "
+"8XXXXXXXX ou 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Por favor, informe um NIF, NIE OU CIF válido."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Por favor, informe um NIF ou FIE válido."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "O NIF é incorreto."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "O NIE é incorreto."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "O CIF é incorreto."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+"Por favor, informe um número de conta bancária válida no formato XXXX-XXXX-"
+"XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Número de conta bancária incorreto."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Informe um número de seguro social Finlandês válido."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Informe um código postal no formato XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Informe um número de identificação islandês válido."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "O número de identificação islandês não é válido."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Informe um código postal válido."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Informe um número de Segurança Social válido."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Informe um número IVA válido."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Informe um código postal no formato XXXXXXX ou XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Informe um código postal válido."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Informe um número de telefone válido."
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Informe um número SoFi válido."
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Informe um número de segurança social norueguês válido."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Este campo requer 8 dígitos."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Este campo requer 11 dígitos."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "O Número de Identificação Nacional consistem de 11 dígitos."
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Número de Identificação Nacional incorreto."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+"Informe um número de imposto (NIP) no formato XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "O Número de Identificação Tributária (NIP) é incorreto."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+"O Número Nacional de Registro de Negócios (REGON) consiste em 7 ou 9 dígitos."
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "O Número Nacional de Registro de Negócios (REGON) é incorreto."
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Informe um código postal válido no formato XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Informe um código postal no formato XXXXX ou XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Informe um código postal válido."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Informe um código postal no formato XXXXX ou XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+"Informe um número de Seguro Social dos EUA válido no formato XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Informe um ID sul-africado válido."
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Informe um código postal sul-africado válido."
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redirecionar de"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Isso deve ser um caminho absoluto, excluindo o nome de domínio. Exemplo: '/"
+"eventos/busca/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redirecionar para"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Isto pode ser um caminho absoluto (como acima) ou uma URL completa, "
+"começando com 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redirecionar"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redirecionamentos"
+
+#: contrib/sessions/models.py:41
+msgid "session key"
+msgstr "chave da sessão"
+
+#: contrib/sessions/models.py:42
+msgid "session data"
+msgstr "dados da sessão"
+
+#: contrib/sessions/models.py:43
+msgid "expire date"
+msgstr "data de expiração"
+
+#: contrib/sessions/models.py:48
+msgid "session"
+msgstr "sessão"
+
+#: contrib/sessions/models.py:49
+msgid "sessions"
+msgstr "sessões"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nome do domínio"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "nome para exibição"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "site"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "sites"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Este valor deve conter apenas letras, números e sublinhados (_)."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Este valor deve conter apenas letras, números, sublinhados (_), travessões "
+"ou barras (/)."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Este valor deve conter apenas letras, números, sublinhados (_) ou hífens."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Letras em maiúsculo não são permitidas aqui."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Letras em minúsculo não são permitidas aqui."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Informe apenas dígitos separados por vírgulas."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Informe endereços de email válidos separados por vírgulas."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Informe um endereço IP válido."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Valores em branco não são permitidos."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Caracteres não numéricos não são permitidos."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Este valor não pode conter apenas dígitos."
+
+#: core/validators.py:128 newforms/fields.py:152
+msgid "Enter a whole number."
+msgstr "Informe um número completo."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Apenas caracteres do alfabeto são permitidos aqui."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "O ano deve ser superior a 1900"
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Data inválida: %s"
+
+#: core/validators.py:156 db/models/fields/__init__.py:527
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Informe uma data válida no formato AAAA-MM-DD."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Informe uma hora válida no formato HH:MM."
+
+#: core/validators.py:165 db/models/fields/__init__.py:604
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Informe uma data/hora válida no formato AAAA-MM-DD HH:MM."
+
+#: core/validators.py:170 newforms/fields.py:403
+msgid "Enter a valid e-mail address."
+msgstr "Informe um endereço de email válido."
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Nenhum arquivo enviado. Verifique o tipo de codificação do formulário."
+
+#: core/validators.py:193 newforms/fields.py:459
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Envie uma imagem válida. O arquivo enviado não é uma imagem ou está "
+"corrompido."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "A URL %s não aponta para uma imagem válida."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Números de telefone devem estar no formato XXX-XXX-XXXX.\"%s\" é inválido."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "A URL %s não aponta para um vídeo QuickTime válido."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Uma URL válida é exigida."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"HTML válido é exigido. Os erros específicos são:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML mal formado: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL inválida: %s"
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "A URL %s é um link quebrado."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Informe uma abreviação válida de estado dos E.U.A."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Olha sua boca! A palavra %s não é permitida aqui."
+msgstr[1] "Olha sua boca! As palavras %s não são permitidas aqui."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Este campo deve casar com o campo '%s'."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Informe algo em pelo menos um campo."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Informe ambos os campos ou deixe ambos vazios."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Este campo deve ser informado se o campo %(field)s for %(value)s."
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Este campo deve ser dado se o campo %(field)s não for %(value)s."
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Valores duplicados não são permitidos."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Este valor deve estar entre %(lower)s e %(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Este valor deve ser no mínimo %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Este valor não deve ser maior que %s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Este valor deve ser uma potência de %s."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Informe um número decimal válido."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Por favor entre com um número decimal com no máximo %s dígito."
+msgstr[1] "Por favor entre com um número decimal com no máximo %s dígitos."
+
+#: core/validators.py:447
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Por favor informe um número decimal com a parte inteira de no máximo %s "
+"digito."
+msgstr[1] ""
+"Por favor informe um número decimal com a parte inteira de no máximo %s "
+"digitos."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Por favor informe um número decimal com no máximo %s casa decimal."
+msgstr[1] ""
+"Por favor informe um número decimal com no máximo %s casas decimais."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Informe um número de ponto flutuante válido."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Verifique se o arquivo enviado tem pelo menos %s bytes."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Verifique se o arquivo enviado tem no máximo %s bytes."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "O formato deste campo está errado."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "Este campo é inválido."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Não foi possível receber dados de %s."
+
+#: core/validators.py:539
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"A URL %(url)s retornou um cabeçalho '%(contenttype)s' de Content-Type "
+"inválido."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Por favor, feche a tag %(tag)s na linha %(line)s. (A linha começa com \"%"
+"(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Algum texto começando na linha %(line)s não é permitido no contexto. (Linha "
+"começa com \"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" na linha %(line)s não é um atributo válido. (Linha começa com "
+"\"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" na linha %(line)s é uma tag inválida. (Linha começa com \"%"
+"(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Uma tag na linha %(line)s não apresenta um ou mais atributos exigidos.(Linha "
+"começa com \"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"O atributo \"%(attr)s\" na linha %(line)s tem um valor inválido. (Linha "
+"começa com \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s com este %(type)s já existe para o %(field)s dado."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s com este %(fieldname)s já existe."
+
+#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327
+#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770
+#: newforms/fields.py:46 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Este campo é requerido."
+
+#: db/models/fields/__init__.py:427
+msgid "This value must be an integer."
+msgstr "Este valor deve ser um inteiro."
+
+#: db/models/fields/__init__.py:466
+msgid "This value must be either True or False."
+msgstr "Este valor deve ser True ou False."
+
+#: db/models/fields/__init__.py:490
+msgid "This field cannot be null."
+msgstr "Este campo não pode ser nulo."
+
+#: db/models/fields/__init__.py:668
+msgid "This value must be a decimal number."
+msgstr "Este valor deve ser um número decimal."
+
+#: db/models/fields/__init__.py:779
+msgid "Enter a valid filename."
+msgstr "Informe um nome de arquivo válido."
+
+#: db/models/fields/__init__.py:960
+msgid "This value must be either None, True or False."
+msgstr "Este valor deve ser None, True ou False."
+
+#: db/models/fields/related.py:93
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Por favor informe um %s válido."
+
+#: db/models/fields/related.py:701
+msgid "Separate multiple IDs with commas."
+msgstr "Separe IDs múltiplos com vírgulas."
+
+#: db/models/fields/related.py:703
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+" Mantenha pressionado \"Control\", ou \"Command\" no Mac para selecionar "
+"mais de uma opção."
+
+#: db/models/fields/related.py:750
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Por favor, informe IDs válidos para %(self)s. O valor %(value)r é inválido."
+msgstr[1] ""
+"Por favor, informe IDs válidos para %(self)s. Os valores %(value)r são "
+"inválidos."
+
+#: newforms/fields.py:47
+msgid "Enter a valid value."
+msgstr "Informe um valor válido."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Certifique-se de que o valor tenha no máximo %(max)d caracteres (ele possui %"
+"(length)d)."
+
+#: newforms/fields.py:125
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Certifique-se de que o valor tenha no mínimo %(min)d caracteres (ele possui %"
+"(length)d)."
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Certifique-se que este valor seja menor ou igual a %s."
+
+#: newforms/fields.py:154 newforms/fields.py:183 newforms/fields.py:212
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Certifique-se que este valor seja maior ou igual a %s."
+
+#: newforms/fields.py:181 newforms/fields.py:210
+msgid "Enter a number."
+msgstr "Informe um número."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Certifique-se de que não tenha mais de %s dígitos no total."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Certifique-se de que não tenha mais de %s casa decimais."
+
+#: newforms/fields.py:215
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr ""
+"Certifique-se de que não tenha mais de %s dígitos antes do ponto decimal."
+
+#: newforms/fields.py:263 newforms/fields.py:751
+msgid "Enter a valid date."
+msgstr "Informe uma data válida."
+
+#: newforms/fields.py:296 newforms/fields.py:752
+msgid "Enter a valid time."
+msgstr "Informe uma hora válida."
+
+#: newforms/fields.py:335
+msgid "Enter a valid date/time."
+msgstr "Informe uma data/hora válida."
+
+#: newforms/fields.py:434
+msgid "No file was submitted."
+msgstr "Não foi enviado nenhum arquivo."
+
+#: newforms/fields.py:435 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "O arquivo enviado está vazio."
+
+#: newforms/fields.py:497
+msgid "Enter a valid URL."
+msgstr "Informe uma URL válida."
+
+#: newforms/fields.py:498
+msgid "This URL appears to be a broken link."
+msgstr "A URL %s aparenta ser um link quebrado."
+
+#: newforms/fields.py:560 newforms/models.py:299
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Faça uma escolha válida. Sua escolha não é uma das disponíveis."
+
+#: newforms/fields.py:599
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Faça uma escolha válida. %(value)s não está disponível."
+
+#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371
+msgid "Enter a list of values."
+msgstr "Informe uma lista de valores."
+
+#: newforms/fields.py:780
+msgid "Enter a valid IPv4 address."
+msgstr "Informe um endereço IPv4 válido."
+
+#: newforms/models.py:372
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Faça uma escolha válida. %s não está disponível."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Certifique-se de que seu texto tenha menos que %s caractere."
+msgstr[1] "Certifique-se de que seu texto tenha menos que %s caracteres."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Não são permitidas quebras de linha aqui."
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Selecione uma escolha válida; '%(data)s' não está em %(choices)s."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Informe um número inteiro entre -32.768 e 32.767"
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Informe um número positivo"
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Informe um número inteiro entre 0 e 32.767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "sim,não,talvez"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "meia noite"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "meio dia"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Segunda-feira"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Terça-feira"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Quarta-feira"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Quinta-feira"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Sexta-feira"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Sábado"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Domingo"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Seg"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Ter"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Qua"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Qui"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Sex"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Sab"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Dom"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Janeiro"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Fevereiro"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Março"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "Abril"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Maio"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Junho"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Julho"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Agosto"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "Setembro"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Outubro"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "Novembro"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Dezembro"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "fev"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "abr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "ago"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "set"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "out"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dez"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Fev."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Ago."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Set."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Out."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dez."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "ou"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "ano"
+msgstr[1] "anos"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mês"
+msgstr[1] "meses"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "semana"
+msgstr[1] "semanas"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dia"
+msgstr[1] "dias"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hora"
+msgstr[1] "horas"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuto"
+msgstr[1] "minutos"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutos"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:403
+msgid "DATE_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:404
+msgid "DATETIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:405
+msgid "TIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:421
+msgid "YEAR_MONTH_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:422
+msgid "MONTH_DAY_FORMAT"
+msgstr ""
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "O(A) %(verbose_name)s foi criado com sucesso."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "O(A) %(verbose_name)s foi atualizado com sucesso."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "O(A) %(verbose_name)s foi excluído."
diff --git a/webapp/django/conf/locale/pt_BR/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/pt_BR/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..7aaab11
--- /dev/null
+++ b/webapp/django/conf/locale/pt_BR/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/pt_BR/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/pt_BR/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..0fe9f17
--- /dev/null
+++ b/webapp/django/conf/locale/pt_BR/LC_MESSAGES/djangojs.po
@@ -0,0 +1,115 @@
+# Português do Brasil translation of django.
+# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: 2008-08-01 12:27-0300\n"
+"Last-Translator: Rafael Jamur <rjamur@gmail.com>\n"
+"Language-Team: Grupo de Localização para o Português <django-l10n-portuguese@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s Disponíveis"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Escolher todos"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Adicionar"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Remover"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s escolhido(s)"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Selecione sua(s) escolha(s) e clique "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Limpar tudo"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid "January February March April May June July August September October November December"
+msgstr "Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Domingo Segunda Terça Quarta Quinta Sexta Sábado"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D S T Q Q S S"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Agora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Relógio"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Escolha uma hora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Meia-noite"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6 da manhã"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "Meio-dia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Hoje"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Calendário"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Ontem"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Amanhã"
+
+#: contrib/admin/media/js/admin/CollapsedFieldSets:34
+#: contrib/admin/media/js/admin/CollapsedFieldSets:72
+msgid "Show"
+msgstr "Mostrar"
+
+#: contrib/admin/media/js/admin/CollapsedFieldSets:63
+msgid "Hide"
+msgstr "Esconder"
+
diff --git a/webapp/django/conf/locale/ro/LC_MESSAGES/django.mo b/webapp/django/conf/locale/ro/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..c4ca6e6
--- /dev/null
+++ b/webapp/django/conf/locale/ro/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ro/LC_MESSAGES/django.po b/webapp/django/conf/locale/ro/LC_MESSAGES/django.po
new file mode 100644
index 0000000..cdbe7a4
--- /dev/null
+++ b/webapp/django/conf/locale/ro/LC_MESSAGES/django.po
@@ -0,0 +1,4261 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-04-25 14:44+0300\n"
+"PO-Revision-Date: 2008-04-25 21:44+0200\n"
+"Last-Translator: \n"
+"Language-Team: Romanian <ro@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: .\conf\global_settings.py:39
+msgid "Arabic"
+msgstr "Araba"
+
+#: .\conf\global_settings.py:40
+msgid "Bengali"
+msgstr "Bengaleza"
+
+#: .\conf\global_settings.py:41
+msgid "Bulgarian"
+msgstr "Bulgara"
+
+#: .\conf\global_settings.py:42
+msgid "Catalan"
+msgstr "Catalana"
+
+#: .\conf\global_settings.py:43
+msgid "Czech"
+msgstr "Cehă"
+
+#: .\conf\global_settings.py:44
+msgid "Welsh"
+msgstr "Galeza"
+
+#: .\conf\global_settings.py:45
+msgid "Danish"
+msgstr "Daneza"
+
+#: .\conf\global_settings.py:46
+msgid "German"
+msgstr "Germană"
+
+#: .\conf\global_settings.py:47
+msgid "Greek"
+msgstr "Greaca"
+
+#: .\conf\global_settings.py:48
+msgid "English"
+msgstr "Engleză"
+
+#: .\conf\global_settings.py:49
+msgid "Spanish"
+msgstr "Spaniolă"
+
+#: .\conf\global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "Spaniola argentiniana"
+
+#: .\conf\global_settings.py:51
+msgid "Basque"
+msgstr "Basca"
+
+#: .\conf\global_settings.py:52
+msgid "Persian"
+msgstr "Persana"
+
+#: .\conf\global_settings.py:53
+msgid "Finnish"
+msgstr "Finlandeza"
+
+#: .\conf\global_settings.py:54
+msgid "French"
+msgstr "Franceză"
+
+#: .\conf\global_settings.py:55
+msgid "Irish"
+msgstr "Irlandeza"
+
+#: .\conf\global_settings.py:56
+msgid "Galician"
+msgstr "Galiciană"
+
+#: .\conf\global_settings.py:57
+msgid "Hungarian"
+msgstr "Ungara"
+
+#: .\conf\global_settings.py:58
+msgid "Hebrew"
+msgstr "Ebraica"
+
+#: .\conf\global_settings.py:59
+msgid "Croatian"
+msgstr "Croata"
+
+#: .\conf\global_settings.py:60
+msgid "Icelandic"
+msgstr "Islandeza"
+
+#: .\conf\global_settings.py:61
+msgid "Italian"
+msgstr "Italiană"
+
+#: .\conf\global_settings.py:62
+msgid "Japanese"
+msgstr "Japoneza"
+
+#: .\conf\global_settings.py:63
+msgid "Georgian"
+msgstr "Georgiana"
+
+#: .\conf\global_settings.py:64
+msgid "Korean"
+msgstr "Koreana"
+
+#: .\conf\global_settings.py:65
+msgid "Khmer"
+msgstr "Khmera"
+
+#: .\conf\global_settings.py:66
+msgid "Kannada"
+msgstr "Limba kannada"
+
+#: .\conf\global_settings.py:67
+msgid "Latvian"
+msgstr "Letona"
+
+#: .\conf\global_settings.py:68
+msgid "Macedonian"
+msgstr "Macedoneana"
+
+#: .\conf\global_settings.py:69
+msgid "Dutch"
+msgstr "Olandeza"
+
+#: .\conf\global_settings.py:70
+msgid "Norwegian"
+msgstr "Norvegiană"
+
+#: .\conf\global_settings.py:71
+msgid "Polish"
+msgstr "Poloneza"
+
+#: .\conf\global_settings.py:72
+msgid "Portugese"
+msgstr "Portugheza"
+
+#: .\conf\global_settings.py:73
+msgid "Brazilian Portuguese"
+msgstr "Portugheza braziliana"
+
+#: .\conf\global_settings.py:74
+msgid "Romanian"
+msgstr "Romana"
+
+#: .\conf\global_settings.py:75
+msgid "Russian"
+msgstr "Rusă"
+
+#: .\conf\global_settings.py:76
+msgid "Slovak"
+msgstr "Slovaca"
+
+#: .\conf\global_settings.py:77
+msgid "Slovenian"
+msgstr "Slovena"
+
+#: .\conf\global_settings.py:78
+msgid "Serbian"
+msgstr "Sîrbă"
+
+#: .\conf\global_settings.py:79
+msgid "Swedish"
+msgstr "Suedeza"
+
+#: .\conf\global_settings.py:80
+msgid "Tamil"
+msgstr "Limba tamila"
+
+#: .\conf\global_settings.py:81
+msgid "Telugu"
+msgstr "Limba telugu"
+
+#: .\conf\global_settings.py:82
+msgid "Turkish"
+msgstr "Turca"
+
+#: .\conf\global_settings.py:83
+msgid "Ukrainian"
+msgstr "Ucraineana"
+
+#: .\conf\global_settings.py:84
+msgid "Simplified Chinese"
+msgstr "Chineză simplificată"
+
+#: .\conf\global_settings.py:85
+msgid "Traditional Chinese"
+msgstr "Chineza traditionala"
+
+#: .\contrib\admin\filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Dupa %s:</h3>\n"
+"<ul>\n"
+
+#: .\contrib\admin\filterspecs.py:74
+#: .\contrib\admin\filterspecs.py:92
+#: .\contrib\admin\filterspecs.py:147
+#: .\contrib\admin\filterspecs.py:173
+msgid "All"
+msgstr "tot"
+
+#: .\contrib\admin\filterspecs.py:113
+msgid "Any date"
+msgstr "orice data"
+
+#: .\contrib\admin\filterspecs.py:114
+msgid "Today"
+msgstr "Astazi"
+
+#: .\contrib\admin\filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Ultimele 7 zile"
+
+#: .\contrib\admin\filterspecs.py:119
+msgid "This month"
+msgstr "Luna aceasta"
+
+#: .\contrib\admin\filterspecs.py:121
+msgid "This year"
+msgstr "Anul acesta"
+
+#: .\contrib\admin\filterspecs.py:147
+#: .\newforms\widgets.py:231
+#: .\oldforms\__init__.py:592
+msgid "Yes"
+msgstr "Da"
+
+#: .\contrib\admin\filterspecs.py:147
+#: .\newforms\widgets.py:231
+#: .\oldforms\__init__.py:592
+msgid "No"
+msgstr "Nu"
+
+#: .\contrib\admin\filterspecs.py:154
+#: .\newforms\widgets.py:231
+#: .\oldforms\__init__.py:592
+msgid "Unknown"
+msgstr "Necunoscut"
+
+#: .\contrib\admin\models.py:18
+msgid "action time"
+msgstr "timp acţiune"
+
+#: .\contrib\admin\models.py:21
+msgid "object id"
+msgstr "id obiect"
+
+#: .\contrib\admin\models.py:22
+msgid "object repr"
+msgstr "repr obiect"
+
+#: .\contrib\admin\models.py:23
+msgid "action flag"
+msgstr "steguleţ acţiune"
+
+#: .\contrib\admin\models.py:24
+msgid "change message"
+msgstr "schimbă mesaj"
+
+#: .\contrib\admin\models.py:27
+msgid "log entry"
+msgstr "intrare log"
+
+#: .\contrib\admin\models.py:28
+msgid "log entries"
+msgstr "intrări log"
+
+#: .\contrib\admin\templates\admin\404.html.py:4
+#: .\contrib\admin\templates\admin\404.html.py:8
+msgid "Page not found"
+msgstr "Pagină inexistentă"
+
+#: .\contrib\admin\templates\admin\404.html.py:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Ne pare rău, dar pagina cerută nu există."
+
+#: .\contrib\admin\templates\admin\500.html.py:4
+#: .\contrib\admin\templates\admin\base.html.py:37
+#: .\contrib\admin\templates\admin\change_form.html.py:12
+#: .\contrib\admin\templates\admin\change_list.html.py:5
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:5
+#: .\contrib\admin\templates\admin\invalid_setup.html.py:4
+#: .\contrib\admin\templates\admin\object_history.html.py:4
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:11
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3
+#: .\contrib\admin\templates\registration\logged_out.html.py:4
+#: .\contrib\admin\templates\registration\password_change_done.html.py:3
+#: .\contrib\admin\templates\registration\password_change_form.html.py:3
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:4
+msgid "Home"
+msgstr "Acasă"
+
+#: .\contrib\admin\templates\admin\500.html.py:4
+msgid "Server error"
+msgstr "Eroare de server"
+
+#: .\contrib\admin\templates\admin\500.html.py:6
+msgid "Server error (500)"
+msgstr "Eroare de server (500)"
+
+#: .\contrib\admin\templates\admin\500.html.py:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Eroare server <em>(500)</em>"
+
+#: .\contrib\admin\templates\admin\500.html.py:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "A apărut o eroare. Este raportată către administrator via emailşi va fi fixată în scurt timp. Mulţumim pentru înţelegere."
+
+#: .\contrib\admin\templates\admin\base.html.py:26
+msgid "Welcome,"
+msgstr "Bine ai venit,"
+
+#: .\contrib\admin\templates\admin\base.html.py:28
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3
+msgid "Documentation"
+msgstr "Documentatie"
+
+#: .\contrib\admin\templates\admin\base.html.py:29
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:14
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:45
+msgid "Change password"
+msgstr "Schimbă parola"
+
+#: .\contrib\admin\templates\admin\base.html.py:30
+#: .\contrib\comments\templates\comments\form.html.py:6
+msgid "Log out"
+msgstr "Deautentificare"
+
+#: .\contrib\admin\templates\admin\base_site.html.py:4
+msgid "Django site admin"
+msgstr "Administrare sit Django"
+
+#: .\contrib\admin\templates\admin\base_site.html.py:7
+msgid "Django administration"
+msgstr "Administrare Django"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:14
+#: .\contrib\admin\templates\admin\index.html.py:28
+msgid "Add"
+msgstr "Adaugă"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:20
+#: .\contrib\admin\templates\admin\object_history.html.py:4
+msgid "History"
+msgstr "Istoric"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:21
+msgid "View on site"
+msgstr "Vizualizeaza pe site"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:31
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Va rugam sa corectati eroarea de mai jos"
+msgstr[1] "Va rugam sa corectati erorile de mai jos"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:49
+msgid "Ordering"
+msgstr "Ordonate dupa"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:52
+msgid "Order:"
+msgstr "Ordonare:"
+
+#: .\contrib\admin\templates\admin\change_list.html.py:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Adaugă %(name)s"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:8
+#: .\contrib\admin\templates\admin\submit_line.html.py:3
+msgid "Delete"
+msgstr "Sterge"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:13
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Ştergînd %(object_name)s '%(escaped_object)s' va avea ca rezultat ştergerea şi a obiectelor ce au legătură, dar contul tău nu are permisiunea de a şterge următoarele tipuri de obiecte:"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:20
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Eşti sigur că vrei să ştergi %(object_name)s \"%(escaped_object)s\"? Următoarele componente asociate vor fi şterse:"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:25
+msgid "Yes, I'm sure"
+msgstr "Da, sînt sigur"
+
+#: .\contrib\admin\templates\admin\filter.html.py:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "Dupa %(filter_title)s "
+
+#: .\contrib\admin\templates\admin\filters.html.py:4
+msgid "Filter"
+msgstr "Filtru"
+
+#: .\contrib\admin\templates\admin\index.html.py:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modele disponibile in applicatia %(name)s"
+
+#: .\contrib\admin\templates\admin\index.html.py:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: .\contrib\admin\templates\admin\index.html.py:34
+msgid "Change"
+msgstr "Schimbă"
+
+#: .\contrib\admin\templates\admin\index.html.py:44
+msgid "You don't have permission to edit anything."
+msgstr "Nu ai drepturi de editare."
+
+#: .\contrib\admin\templates\admin\index.html.py:52
+msgid "Recent Actions"
+msgstr "Acţiuni Recente"
+
+#: .\contrib\admin\templates\admin\index.html.py:53
+msgid "My Actions"
+msgstr "Acţiunile Mele"
+
+#: .\contrib\admin\templates\admin\index.html.py:57
+msgid "None available"
+msgstr "Indisponibil"
+
+#: .\contrib\admin\templates\admin\invalid_setup.html.py:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Exista o problema cu baza de date. Verificati daca tabelele necesare din baza de date au fost create si verificati daca baza de date poate fi citita de utilizatorul potrivit."
+
+#: .\contrib\admin\templates\admin\login.html.py:17
+#: .\contrib\comments\templates\comments\form.html.py:6
+#: .\contrib\comments\templates\comments\form.html.py:8
+msgid "Username:"
+msgstr "Utilizator:"
+
+#: .\contrib\admin\templates\admin\login.html.py:20
+#: .\contrib\comments\templates\comments\form.html.py:8
+msgid "Password:"
+msgstr "Parola:"
+
+#: .\contrib\admin\templates\admin\login.html.py:25
+#: .\contrib\admin\views\decorators.py:31
+msgid "Log in"
+msgstr "Login"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:17
+msgid "Date/time"
+msgstr "Dată/oră"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:18
+msgid "User"
+msgstr "Utilizator"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:19
+msgid "Action"
+msgstr "Acţiune"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:35
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Acest obiect nu are un istoric al schimbărilor. Probabil nu a fost adăugat prinintermediul acestui sit de administrare."
+
+#: .\contrib\admin\templates\admin\pagination.html.py:10
+msgid "Show all"
+msgstr "Arata tot/toate"
+
+#: .\contrib\admin\templates\admin\search_form.html.py:8
+msgid "Go"
+msgstr "Start"
+
+#: .\contrib\admin\templates\admin\search_form.html.py:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "Un rezultat"
+msgstr[1] "%(counter)s rezultate"
+
+#: .\contrib\admin\templates\admin\search_form.html.py:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s total"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:4
+msgid "Save as new"
+msgstr "Salvati ca nou"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:5
+msgid "Save and add another"
+msgstr "Salvati si adaugati altul"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:6
+msgid "Save and continue editing"
+msgstr "Salvati si continuati"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:7
+msgid "Save"
+msgstr "Salveaza"
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Intai introduceti un nume de utilizator si o parola. Apoi veti putea modifica mai multe optiuni de utilizator."
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:12
+msgid "Username"
+msgstr "Utilizator"
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:18
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:33
+msgid "Password"
+msgstr "Parola"
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:23
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:38
+msgid "Password (again)"
+msgstr "Parola (repeta)"
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:24
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:39
+msgid "Enter the same password as above, for verification."
+msgstr "Introduceti parola din nou pentru verificare."
+
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Introduceti o parola noua pentru utilizatorul <strong>%(username)s</strong>."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3
+msgid "Bookmarklets"
+msgstr ""
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:4
+msgid "Documentation bookmarklets"
+msgstr ""
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:18
+msgid "Documentation for this page"
+msgstr "Documentatie pentru aceasta pagina"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:19
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Te trimite de la orice pagina la documentatia pentru view-ul care genereaza acea pagina."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:21
+msgid "Show object ID"
+msgstr "Arata ID-ul obiectului"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:22
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Arata tipul de continut si ID-ul unic pentru paginile care reprezinta un singur obiect."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:24
+msgid "Edit this object (current window)"
+msgstr "Modifica acest obiect (in aceasta fereastra)"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Sare la pagina de administrare pentru pagini care reprezinta un singur obiect."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:27
+msgid "Edit this object (new window)"
+msgstr "Modifica acest obiect (intr-o fereastra noua)"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "La fel ca deasupra, dar deschide pagina de administrare intr-o fereastra noua"
+
+#: .\contrib\admin\templates\registration\logged_out.html.py:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Mulţumesc pentru petrecerea folositoare a timpului cu saitul astăzi."
+
+#: .\contrib\admin\templates\registration\logged_out.html.py:10
+msgid "Log in again"
+msgstr "Relogare"
+
+#: .\contrib\admin\templates\registration\password_change_done.html.py:3
+#: .\contrib\admin\templates\registration\password_change_form.html.py:3
+#: .\contrib\admin\templates\registration\password_change_form.html.py:5
+#: .\contrib\admin\templates\registration\password_change_form.html.py:9
+msgid "Password change"
+msgstr "Schimbă parola"
+
+#: .\contrib\admin\templates\registration\password_change_done.html.py:5
+#: .\contrib\admin\templates\registration\password_change_done.html.py:9
+msgid "Password change successful"
+msgstr "Schimbare reuşită a parolei"
+
+#: .\contrib\admin\templates\registration\password_change_done.html.py:11
+msgid "Your password was changed."
+msgstr "Parola a fost schimbată."
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:11
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Introdu te rog vechea parolă, pentru motive de siguranţă, şi apoi tastează noua parolă de două ori aşa încît putem verifica dacă ai tastat corect."
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:16
+msgid "Old password:"
+msgstr "Vechea parolă:"
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:18
+msgid "New password:"
+msgstr "Noua parolă:"
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:20
+msgid "Confirm password:"
+msgstr "Confirmă parola:"
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:22
+msgid "Change my password"
+msgstr "Schimbă-mi parola"
+
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:6
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:10
+msgid "Password reset"
+msgstr "Resetează parola"
+
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:6
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:10
+msgid "Password reset successful"
+msgstr "Parola resetată cu succes"
+
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Am trimis o nouă parolă prin email la adresa furnizată. Ar trebuisă o primeşti în scurt timp."
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Ai primit acest email pentru că ai cerut o resetare a parolei"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "pentru contul tău la %(site_name)s"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Noua ta parolă este: %(new_password)s"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Poţi schmiba această parolă vizitînd această pagină:"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Numele tău utilizator, în caz că ai uitat:"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:13
+msgid "Thanks for using our site!"
+msgstr "Mulţumesc pentru folosirea saitului nostru!"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Echipa %(site_name)s"
+
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Ai uitat parola? Introdu adresa de email mai jos, iar noi vom reseta parola şi-ţi vom trimite una nouă prin email."
+
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:16
+msgid "E-mail address:"
+msgstr "Adresa email:"
+
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:16
+msgid "Reset my password"
+msgstr "Resetează-mi parola"
+
+#: .\contrib\admin\templates\widget\date_time.html.py:3
+msgid "Date:"
+msgstr "Data:"
+
+#: .\contrib\admin\templates\widget\date_time.html.py:4
+msgid "Time:"
+msgstr "Ora:"
+
+#: .\contrib\admin\templates\widget\file.html.py:2
+msgid "Currently:"
+msgstr "Current:"
+
+#: .\contrib\admin\templates\widget\file.html.py:3
+msgid "Change:"
+msgstr "Schimbă:"
+
+#: .\contrib\admin\templatetags\admin_list.py:257
+msgid "All dates"
+msgstr "Toate datele"
+
+#: .\contrib\admin\views\auth.py:20
+#: .\contrib\admin\views\main.py:267
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" a fost inserat cu succes."
+
+#: .\contrib\admin\views\auth.py:25
+#: .\contrib\admin\views\main.py:271
+#: .\contrib\admin\views\main.py:356
+msgid "You may edit it again below."
+msgstr "Va puteti edita datele din nou mai jos."
+
+#: .\contrib\admin\views\auth.py:31
+msgid "Add user"
+msgstr "Adaugă utilizator"
+
+#: .\contrib\admin\views\auth.py:58
+msgid "Password changed successfully."
+msgstr "Schimbare reuşită a parolei"
+
+#: .\contrib\admin\views\auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Schimbă parola: %s"
+
+#: .\contrib\admin\views\decorators.py:17
+#: .\contrib\auth\forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Va rugam sa introduceti username-ul si parola corecta. Aveti grija deoarececasutele sunt case sensitive."
+
+#: .\contrib\admin\views\decorators.py:69
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Va rugam sa va inregistrati din nou, deoarece sesiunea a expirat. Nu va faceti griji datele au fost salvate."
+
+#: .\contrib\admin\views\decorators.py:76
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Se pare ca browserul dumneavostra nu este configurat sa accepte cookies. Va rugam sa va setati browserul sa accepte cookies, dati un reload la pagina si incercati din nou."
+
+#: .\contrib\admin\views\decorators.py:90
+msgid "Usernames cannot contain the '@' character."
+msgstr "Username-ul nu are voie sa contina caracterul '@'."
+
+#: .\contrib\admin\views\decorators.py:92
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Adresa ta de e-mail nu este numele tau de utilizator. Incearca '%s' in schimb."
+
+#: .\contrib\admin\views\doc.py:48
+#: .\contrib\admin\views\doc.py:50
+#: .\contrib\admin\views\doc.py:52
+msgid "tag:"
+msgstr "tag:"
+
+#: .\contrib\admin\views\doc.py:79
+#: .\contrib\admin\views\doc.py:81
+#: .\contrib\admin\views\doc.py:83
+msgid "filter:"
+msgstr "filtru:"
+
+#: .\contrib\admin\views\doc.py:137
+#: .\contrib\admin\views\doc.py:139
+#: .\contrib\admin\views\doc.py:141
+msgid "view:"
+msgstr "view:"
+
+#: .\contrib\admin\views\doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "Applicatia %r inexistenta"
+
+#: .\contrib\admin\views\doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Modelul %(name)r nu a fost gasit in aplicatia %(label)r"
+
+#: .\contrib\admin\views\doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "obiectul `%(label)s.%(type)s` asociat"
+
+#: .\contrib\admin\views\doc.py:185
+#: .\contrib\admin\views\doc.py:207
+#: .\contrib\admin\views\doc.py:221
+#: .\contrib\admin\views\doc.py:226
+msgid "model:"
+msgstr "model:"
+
+#: .\contrib\admin\views\doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "obiectele `%(label)s.%(name)s` asociate"
+
+#: .\contrib\admin\views\doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "toate %s"
+
+#: .\contrib\admin\views\doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "numarul de %s"
+
+#: .\contrib\admin\views\doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Campuri in %s obiecte"
+
+#: .\contrib\admin\views\doc.py:293
+#: .\contrib\admin\views\doc.py:304
+#: .\contrib\admin\views\doc.py:306
+#: .\contrib\admin\views\doc.py:312
+#: .\contrib\admin\views\doc.py:313
+#: .\contrib\admin\views\doc.py:315
+msgid "Integer"
+msgstr "Intreg"
+
+#: .\contrib\admin\views\doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (ori adevarat ori fals)"
+
+#: .\contrib\admin\views\doc.py:295
+#: .\contrib\admin\views\doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Sir de caractere (pana la %(max_length)s caractere)"
+
+#: .\contrib\admin\views\doc.py:296
+msgid "Comma-separated integers"
+msgstr "Numere intregi separate de virgule"
+
+#: .\contrib\admin\views\doc.py:297
+msgid "Date (without time)"
+msgstr "Data (fara ora)"
+
+#: .\contrib\admin\views\doc.py:298
+msgid "Date (with time)"
+msgstr "Data (cu ora)"
+
+#: .\contrib\admin\views\doc.py:299
+msgid "Decimal number"
+msgstr "Numar zecimal"
+
+#: .\contrib\admin\views\doc.py:300
+msgid "E-mail address"
+msgstr "Adresa email"
+
+#: .\contrib\admin\views\doc.py:301
+#: .\contrib\admin\views\doc.py:302
+#: .\contrib\admin\views\doc.py:305
+msgid "File path"
+msgstr "Calea fisierului"
+
+#: .\contrib\admin\views\doc.py:303
+msgid "Floating point number"
+msgstr "Numar cu virgula"
+
+#: .\contrib\admin\views\doc.py:307
+#: .\contrib\comments\models.py:89
+msgid "IP address"
+msgstr "adresa ip"
+
+#: .\contrib\admin\views\doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (adevarat, fals sau nici una)"
+
+#: .\contrib\admin\views\doc.py:310
+msgid "Relation to parent model"
+msgstr "Relatia cu un model parinte"
+
+#: .\contrib\admin\views\doc.py:311
+msgid "Phone number"
+msgstr "Numar de telefon"
+
+#: .\contrib\admin\views\doc.py:316
+msgid "Text"
+msgstr "Text"
+
+#: .\contrib\admin\views\doc.py:317
+msgid "Time"
+msgstr "Timp"
+
+#: .\contrib\admin\views\doc.py:318
+#: .\contrib\flatpages\models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: .\contrib\admin\views\doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "Stat SUA (doua litere mari)"
+
+#: .\contrib\admin\views\doc.py:320
+msgid "XML text"
+msgstr "Text XML"
+
+#: .\contrib\admin\views\doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s nu pare a fi un obiect urlpattern"
+
+#: .\contrib\admin\views\main.py:233
+msgid "Site administration"
+msgstr "Administrare site"
+
+#: .\contrib\admin\views\main.py:280
+#: .\contrib\admin\views\main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Mai puteti adauga un alt %s mai jos."
+
+#: .\contrib\admin\views\main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "Adaugă %s"
+
+#: .\contrib\admin\views\main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "Adaugat %s."
+
+#: .\contrib\admin\views\main.py:344
+#: .\contrib\admin\views\main.py:346
+#: .\contrib\admin\views\main.py:348
+#: .\core\validators.py:283
+#: .\db\models\manipulators.py:309
+msgid "and"
+msgstr "si"
+
+#: .\contrib\admin\views\main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "Schimbă %s."
+
+#: .\contrib\admin\views\main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "Am sters %s."
+
+#: .\contrib\admin\views\main.py:351
+msgid "No fields changed."
+msgstr "Nu s-a facut nicio schimbare."
+
+#: .\contrib\admin\views\main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" au fost modificate cu succes."
+
+#: .\contrib\admin\views\main.py:362
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" au fost adaugate cu succes. Le puteti edita mai jos."
+
+#: .\contrib\admin\views\main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "Schimbă %s"
+
+#: .\contrib\admin\views\main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Unul sau mai multe %(fieldname)s in %(name)s: %(obj)s"
+
+#: .\contrib\admin\views\main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Unul sau mai multe %(fieldname)s in %(name)s:"
+
+#: .\contrib\admin\views\main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" au fost sterse cu succes."
+
+#: .\contrib\admin\views\main.py:527
+msgid "Are you sure?"
+msgstr "Sunteti sigur?"
+
+#: .\contrib\admin\views\main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Schimbari facute: %s"
+
+#: .\contrib\admin\views\main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "Selecteaza %s"
+
+#: .\contrib\admin\views\main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "Selecteaza %s pentru schimbare"
+
+#: .\contrib\admin\views\main.py:784
+msgid "Database error"
+msgstr "Erroare de baza de date"
+
+#: .\contrib\auth\forms.py:17
+#: .\contrib\auth\forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Cele doua campuri pentru parole nu au coincis."
+
+#: .\contrib\auth\forms.py:25
+msgid "A user with that username already exists."
+msgstr "Un utilizator cu acest nume de utilizator exista deja,"
+
+#: .\contrib\auth\forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Se pare ca browserul dumneavoastra nu suporta cookies. Aveti nevoie de un browser care suporta cookies ca sa va logati."
+
+#: .\contrib\auth\forms.py:62
+msgid "This account is inactive."
+msgstr "Acest cont este inactiv."
+
+#: .\contrib\auth\forms.py:84
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Acea adresa de e-mail nu are un nume de utilizator asociat. Sunteti sigur ca v-ati inregistrat?"
+
+#: .\contrib\auth\forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Parola resetata pe %s"
+
+#: .\contrib\auth\forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Cele doua campuri 'parola noua' nu au coincis."
+
+#: .\contrib\auth\forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Parola veche a dumneavoastra a fost introdusa incorect. Va rugam introduceti-o din nou."
+
+#: .\contrib\auth\models.py:73
+#: .\contrib\auth\models.py:93
+msgid "name"
+msgstr "nume"
+
+#: .\contrib\auth\models.py:75
+msgid "codename"
+msgstr "nume cod"
+
+#: .\contrib\auth\models.py:78
+msgid "permission"
+msgstr "permisiune"
+
+#: .\contrib\auth\models.py:79
+#: .\contrib\auth\models.py:94
+msgid "permissions"
+msgstr "permisiuni"
+
+#: .\contrib\auth\models.py:97
+msgid "group"
+msgstr "grup"
+
+#: .\contrib\auth\models.py:98
+#: .\contrib\auth\models.py:141
+msgid "groups"
+msgstr "grupuri"
+
+#: .\contrib\auth\models.py:131
+msgid "username"
+msgstr "nume utilizator"
+
+#: .\contrib\auth\models.py:131
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Necesar. 30 de caractere sau mai putin. Doar caractere alfanumerice (litere, cifre, liniute de subliniere)."
+
+#: .\contrib\auth\models.py:132
+msgid "first name"
+msgstr "Prenume"
+
+#: .\contrib\auth\models.py:133
+msgid "last name"
+msgstr "Nume"
+
+#: .\contrib\auth\models.py:134
+msgid "e-mail address"
+msgstr "adresa email"
+
+#: .\contrib\auth\models.py:135
+msgid "password"
+msgstr "parola"
+
+#: .\contrib\auth\models.py:135
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "Folositi '[algo]$[salt]$[hexdigest]' sau folositi <a href=\"password/\">formularul de schimbare a parolei</a>."
+
+#: .\contrib\auth\models.py:136
+msgid "staff status"
+msgstr "stare staff"
+
+#: .\contrib\auth\models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Decide cînd utilizatorul se poate loga în acest sit de adminstrare."
+
+#: .\contrib\auth\models.py:137
+msgid "active"
+msgstr "activ"
+
+#: .\contrib\auth\models.py:137
+msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts."
+msgstr "Indica daca acest user va fi tratat ca activ sau nu. Deselecteaza-l in loc de a sterge conturi."
+
+#: .\contrib\auth\models.py:138
+msgid "superuser status"
+msgstr "stare superutilizator"
+
+#: .\contrib\auth\models.py:138
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Indica daca acest user are toate permisiile fara a le selecta explicit."
+
+#: .\contrib\auth\models.py:139
+msgid "last login"
+msgstr "ultima logare"
+
+#: .\contrib\auth\models.py:140
+msgid "date joined"
+msgstr "data aderării"
+
+#: .\contrib\auth\models.py:142
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Suplimentar permisiunilor manual alocate, acest utilizator va primi toate permisiunile alocate fiecărui grup din care el/ea face parte."
+
+#: .\contrib\auth\models.py:143
+msgid "user permissions"
+msgstr "permisiuni utilizator"
+
+#: .\contrib\auth\models.py:147
+msgid "user"
+msgstr "utilizator"
+
+#: .\contrib\auth\models.py:148
+msgid "users"
+msgstr "utilizatori"
+
+#: .\contrib\auth\models.py:154
+msgid "Personal info"
+msgstr "Informaţii personale"
+
+#: .\contrib\auth\models.py:155
+msgid "Permissions"
+msgstr "Permisiuni"
+
+#: .\contrib\auth\models.py:156
+msgid "Important dates"
+msgstr "Date importante"
+
+#: .\contrib\auth\models.py:157
+msgid "Groups"
+msgstr "Grupuri"
+
+#: .\contrib\auth\models.py:316
+msgid "message"
+msgstr "mesaj"
+
+#: .\contrib\auth\views.py:47
+msgid "Logged out"
+msgstr "Deautentificat"
+
+#: .\contrib\comments\models.py:71
+#: .\contrib\comments\models.py:176
+msgid "object ID"
+msgstr "id obiect"
+
+#: .\contrib\comments\models.py:72
+msgid "headline"
+msgstr "titlu"
+
+#: .\contrib\comments\models.py:73
+#: .\contrib\comments\models.py:95
+#: .\contrib\comments\models.py:177
+msgid "comment"
+msgstr "comentariu"
+
+#: .\contrib\comments\models.py:74
+msgid "rating #1"
+msgstr "rating #1"
+
+#: .\contrib\comments\models.py:75
+msgid "rating #2"
+msgstr "rating #2"
+
+#: .\contrib\comments\models.py:76
+msgid "rating #3"
+msgstr "rating #3"
+
+#: .\contrib\comments\models.py:77
+msgid "rating #4"
+msgstr "rating #4"
+
+#: .\contrib\comments\models.py:78
+msgid "rating #5"
+msgstr "rating #5"
+
+#: .\contrib\comments\models.py:79
+msgid "rating #6"
+msgstr "rating #6"
+
+#: .\contrib\comments\models.py:80
+msgid "rating #7"
+msgstr "rating #7"
+
+#: .\contrib\comments\models.py:81
+msgid "rating #8"
+msgstr "rating #8"
+
+#: .\contrib\comments\models.py:86
+msgid "is valid rating"
+msgstr "este rating valid"
+
+#: .\contrib\comments\models.py:87
+#: .\contrib\comments\models.py:179
+msgid "date/time submitted"
+msgstr "data/ora crearii"
+
+#: .\contrib\comments\models.py:88
+#: .\contrib\comments\models.py:180
+msgid "is public"
+msgstr "public"
+
+#: .\contrib\comments\models.py:90
+msgid "is removed"
+msgstr "sters"
+
+#: .\contrib\comments\models.py:90
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Bifeaza aceasta casuta daca comentariul nu este adecvat. Un mesaj de tipul \"Acest comentariu a fost sters\" va fi afisat in schimb."
+
+#: .\contrib\comments\models.py:96
+msgid "comments"
+msgstr "comentarii"
+
+#: .\contrib\comments\models.py:140
+#: .\contrib\comments\models.py:222
+msgid "Content object"
+msgstr "Obiect-referinta"
+
+#: .\contrib\comments\models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Postat de %(user)s la %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: .\contrib\comments\models.py:178
+msgid "person's name"
+msgstr "numele persoanei"
+
+#: .\contrib\comments\models.py:181
+msgid "ip address"
+msgstr "adresa ip"
+
+#: .\contrib\comments\models.py:183
+msgid "approved by staff"
+msgstr "aprobat de echipa"
+
+#: .\contrib\comments\models.py:187
+msgid "free comment"
+msgstr "permite comentariu fara inregistrare"
+
+#: .\contrib\comments\models.py:188
+msgid "free comments"
+msgstr "permite comentarii fara inregistrare"
+
+#: .\contrib\comments\models.py:250
+msgid "score"
+msgstr "punctaj"
+
+#: .\contrib\comments\models.py:251
+msgid "score date"
+msgstr "data punctajului"
+
+#: .\contrib\comments\models.py:255
+#, fuzzy
+msgid "karma score"
+msgstr "punctaj karmic"
+
+#: .\contrib\comments\models.py:256
+#, fuzzy
+msgid "karma scores"
+msgstr "punctaje karmice"
+
+#: .\contrib\comments\models.py:260
+#, fuzzy, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "Punctaj %(score)d atribuit de catre %(user)s"
+
+#: .\contrib\comments\models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Acest comentariu a fost marcat de %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: .\contrib\comments\models.py:285
+msgid "flag date"
+msgstr "data marcarii"
+
+#: .\contrib\comments\models.py:289
+#, fuzzy
+msgid "user flag"
+msgstr "stegulet de utilizator"
+
+#: .\contrib\comments\models.py:290
+#, fuzzy
+msgid "user flags"
+msgstr "stegulete de utilizatori"
+
+#: .\contrib\comments\models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "Marcajul lui %r"
+
+#: .\contrib\comments\models.py:300
+msgid "deletion date"
+msgstr "data stergerii"
+
+#: .\contrib\comments\models.py:303
+msgid "moderator deletion"
+msgstr "sters de moderator"
+
+#: .\contrib\comments\models.py:304
+msgid "moderator deletions"
+msgstr "sterse de moderator"
+
+#: .\contrib\comments\models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Sters de moderatorul %r"
+
+#: .\contrib\comments\templates\comments\form.html.py:8
+msgid "Forgotten your password?"
+msgstr "Ai uitat parola?"
+
+#: .\contrib\comments\templates\comments\form.html.py:12
+msgid "Ratings"
+msgstr "Ratinguri"
+
+#: .\contrib\comments\templates\comments\form.html.py:12
+#: .\contrib\comments\templates\comments\form.html.py:23
+msgid "Required"
+msgstr "Necesar"
+
+#: .\contrib\comments\templates\comments\form.html.py:12
+#: .\contrib\comments\templates\comments\form.html.py:23
+msgid "Optional"
+msgstr "Optional"
+
+#: .\contrib\comments\templates\comments\form.html.py:23
+msgid "Post a photo"
+msgstr "Adauga o poza"
+
+#: .\contrib\comments\templates\comments\form.html.py:28
+#: .\contrib\comments\templates\comments\freeform.html.py:5
+msgid "Comment:"
+msgstr "Comentariu:"
+
+#: .\contrib\comments\templates\comments\form.html.py:35
+#: .\contrib\comments\templates\comments\freeform.html.py:10
+msgid "Preview comment"
+msgstr "Previzualizare comentariu"
+
+#: .\contrib\comments\templates\comments\freeform.html.py:4
+msgid "Your name:"
+msgstr "numele dumneavoastra"
+
+#: .\contrib\comments\views\comments.py:28
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Acest rating este necesar deoarece ai introdus cel putin un alt rating."
+
+#: .\contrib\comments\views\comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Acest comentariu a fost postat de un utilizator care a postat mai putin de %(count)s comentariu:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Acest comentariu a fost postat de un utilizator care a postat mai putin de %(count)s comentarii:\n"
+"\n"
+"%(text)s"
+
+#: .\contrib\comments\views\comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Acest comentariu a fost postat de un utilizator neordonat:\n"
+"\n"
+"%(text)s"
+
+#: .\contrib\comments\views\comments.py:190
+#: .\contrib\comments\views\comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Doar postarile sunt permise"
+
+#: .\contrib\comments\views\comments.py:194
+#: .\contrib\comments\views\comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Unul sau mai multe campuri necesare nu a fost completat"
+
+#: .\contrib\comments\views\comments.py:198
+#: .\contrib\comments\views\comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Cineva a modificat formularul de comentarii (incalcare a securitatii)"
+
+#: .\contrib\comments\views\comments.py:208
+#: .\contrib\comments\views\comments.py:295
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Formularul de comentariu a avut un parametru 'tinta' invalid -- ID-ul obiectului a fost invalid"
+
+#: .\contrib\comments\views\comments.py:259
+#: .\contrib\comments\views\comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Formularul de comentariu nu specifica nici 'previzualizare' nici 'postare'"
+
+#: .\contrib\comments\views\karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Utilizatorii anonimi nu pot vota"
+
+#: .\contrib\comments\views\karma.py:25
+msgid "Invalid comment ID"
+msgstr "Comentariu cu ID invalid"
+
+#: .\contrib\comments\views\karma.py:27
+msgid "No voting for yourself"
+msgstr "Nu poti vota pentru tine"
+
+#: .\contrib\contenttypes\models.py:67
+#, fuzzy
+msgid "python model class name"
+msgstr "nume clasa model python"
+
+#: .\contrib\contenttypes\models.py:71
+msgid "content type"
+msgstr "tip conţinut"
+
+#: .\contrib\contenttypes\models.py:72
+msgid "content types"
+msgstr "tipuri conţinute"
+
+#: .\contrib\flatpages\models.py:9
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Exemplu: '/about/contact'. Asiguraţi-vă că aveţi slash-uri la început şi la sfîrşit."
+
+#: .\contrib\flatpages\models.py:10
+msgid "title"
+msgstr "titlu"
+
+#: .\contrib\flatpages\models.py:11
+msgid "content"
+msgstr "conţinut"
+
+#: .\contrib\flatpages\models.py:12
+msgid "enable comments"
+msgstr "permite comentarii"
+
+#: .\contrib\flatpages\models.py:13
+msgid "template name"
+msgstr "nume şablon"
+
+#: .\contrib\flatpages\models.py:14
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Exemplu: 'flatpages/contact_page.html'. Dacă aceasta nu există, sistemul va folosi 'flatpages/default.html'."
+
+#: .\contrib\flatpages\models.py:15
+msgid "registration required"
+msgstr "necesită înregistrare"
+
+#: .\contrib\flatpages\models.py:15
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Dacă aceasta este bifată, numai utilizatorii logaţi vor putea vedea pagina."
+
+#: .\contrib\flatpages\models.py:20
+msgid "flat page"
+msgstr "pagina plată"
+
+#: .\contrib\flatpages\models.py:21
+msgid "flat pages"
+msgstr "pagini plate"
+
+#: .\contrib\flatpages\models.py:27
+msgid "Advanced options"
+msgstr "Optiuni avansate"
+
+#: .\contrib\humanize\templatetags\humanize.py:19
+msgid "th"
+msgstr "ul"
+
+#: .\contrib\humanize\templatetags\humanize.py:19
+msgid "st"
+msgstr "ul"
+
+#: .\contrib\humanize\templatetags\humanize.py:19
+msgid "nd"
+msgstr "lea"
+
+#: .\contrib\humanize\templatetags\humanize.py:19
+msgid "rd"
+msgstr "lea"
+
+#: .\contrib\humanize\templatetags\humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milion"
+msgstr[1] "%(value).1f milioane"
+
+#: .\contrib\humanize\templatetags\humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f miliard"
+msgstr[1] "%(value).1f miliarde"
+
+#: .\contrib\humanize\templatetags\humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f mie de miliarde"
+msgstr[1] "%(value).1f mii de miliarde"
+
+#: .\contrib\humanize\templatetags\humanize.py:73
+msgid "one"
+msgstr "unu"
+
+#: .\contrib\humanize\templatetags\humanize.py:73
+msgid "two"
+msgstr "doi"
+
+#: .\contrib\humanize\templatetags\humanize.py:73
+msgid "three"
+msgstr "trei"
+
+#: .\contrib\humanize\templatetags\humanize.py:73
+msgid "four"
+msgstr "patry"
+
+#: .\contrib\humanize\templatetags\humanize.py:73
+msgid "five"
+msgstr "cinci"
+
+#: .\contrib\humanize\templatetags\humanize.py:73
+msgid "six"
+msgstr "sase"
+
+#: .\contrib\humanize\templatetags\humanize.py:73
+msgid "seven"
+msgstr "sapte"
+
+#: .\contrib\humanize\templatetags\humanize.py:73
+msgid "eight"
+msgstr "opt"
+
+#: .\contrib\humanize\templatetags\humanize.py:73
+msgid "nine"
+msgstr "noua"
+
+#: .\contrib\humanize\templatetags\humanize.py:93
+msgid "today"
+msgstr "astazi"
+
+#: .\contrib\humanize\templatetags\humanize.py:95
+msgid "tomorrow"
+msgstr "maine"
+
+#: .\contrib\humanize\templatetags\humanize.py:97
+msgid "yesterday"
+msgstr "ieri"
+
+#: .\contrib\localflavor\ar\forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Introduceti un cod postal valid de forma NNNN sau ANNNNAAA."
+
+#: .\contrib\localflavor\ar\forms.py:49
+#: .\contrib\localflavor\br\forms.py:96
+#: .\contrib\localflavor\br\forms.py:135
+#: .\contrib\localflavor\pe\forms.py:23
+#: .\contrib\localflavor\pe\forms.py:51
+msgid "This field requires only numbers."
+msgstr "Acest camp accepta doar numere."
+
+#: .\contrib\localflavor\ar\forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Acest camp are nevoie de 7 sau 8 cifre."
+
+#: .\contrib\localflavor\ar\forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Introduceti un CUIT valid de forma XX-XXXXXXXX-X sau XXXXXXXXXXXX."
+
+#: .\contrib\localflavor\ar\forms.py:80
+msgid "Invalid CUIT."
+msgstr "CUIT invalid."
+
+#: .\contrib\localflavor\au\forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Introduceti un cod postal de 4 cifre."
+
+#: .\contrib\localflavor\br\forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Adaugati un cod postal de forma XXXXX-XXX."
+
+#: .\contrib\localflavor\br\forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Numerele de telefon trebuie să fie in format XXX-XXX-XXXX."
+
+#: .\contrib\localflavor\br\forms.py:58
+msgid "Select a valid brazilian state. That state is not one of the available states."
+msgstr "Selectati un stat brazilian valid. Acest stat nu se afla printre statele disponibile."
+
+#: .\contrib\localflavor\br\forms.py:94
+msgid "Invalid CPF number."
+msgstr "Numar CPF invalid."
+
+#: .\contrib\localflavor\br\forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Acest camp are nevoie de cel mult 11 cifre sau 14 caractere."
+
+#: .\contrib\localflavor\br\forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Numar CNPJ invalid."
+
+#: .\contrib\localflavor\br\forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Acest camd are nevoie de cel putin 14 cifre."
+
+#: .\contrib\localflavor\ca\forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Introduceti un cod postal de forma XXX XXX."
+
+#: .\contrib\localflavor\ca\forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "Introduceti un numar canadia de asigurare sociala valid de forma XXX-XXX-XXX."
+
+#: .\contrib\localflavor\ch\ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: .\contrib\localflavor\ch\ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: .\contrib\localflavor\ch\ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: .\contrib\localflavor\ch\ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: .\contrib\localflavor\ch\ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: .\contrib\localflavor\ch\ch_states.py:10
+msgid "Berne"
+msgstr "Berna"
+
+#: .\contrib\localflavor\ch\ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: .\contrib\localflavor\ch\ch_states.py:12
+msgid "Geneva"
+msgstr "Geneva"
+
+#: .\contrib\localflavor\ch\ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: .\contrib\localflavor\ch\ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: .\contrib\localflavor\ch\ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: .\contrib\localflavor\ch\ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerna"
+
+#: .\contrib\localflavor\ch\ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: .\contrib\localflavor\ch\ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: .\contrib\localflavor\ch\ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: .\contrib\localflavor\ch\ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: .\contrib\localflavor\ch\ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: .\contrib\localflavor\ch\ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: .\contrib\localflavor\ch\ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: .\contrib\localflavor\ch\ch_states.py:24
+msgid "Thurgau"
+msgstr "JoiTurgovia"
+
+#: .\contrib\localflavor\ch\ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: .\contrib\localflavor\ch\ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: .\contrib\localflavor\ch\ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: .\contrib\localflavor\ch\ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: .\contrib\localflavor\ch\ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: .\contrib\localflavor\ch\ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: .\contrib\localflavor\ch\forms.py:16
+#: .\contrib\localflavor\no\forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Introduceti un cod postal de forma XXXX."
+
+#: .\contrib\localflavor\ch\forms.py:64
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Introduceti un numar elvetian de identitate sau pasaport, valid, de forma X1234567<0 sau 1234567890."
+
+#: .\contrib\localflavor\cl\forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Introduceti RUT chilian valid."
+
+#: .\contrib\localflavor\cl\forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Introduceti un RUT chilian valid. Formatul este XX.XXX.XXX-X."
+
+#: .\contrib\localflavor\cl\forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "RUT-ul chilean nu este valid."
+
+#: .\contrib\localflavor\de\de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: .\contrib\localflavor\de\de_states.py:6
+msgid "Bavaria"
+msgstr "Bavaria"
+
+#: .\contrib\localflavor\de\de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: .\contrib\localflavor\de\de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: .\contrib\localflavor\de\de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: .\contrib\localflavor\de\de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: .\contrib\localflavor\de\de_states.py:11
+msgid "Hessen"
+msgstr "Hessa"
+
+#: .\contrib\localflavor\de\de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Pomerania Inferioara"
+
+#: .\contrib\localflavor\de\de_states.py:13
+msgid "Lower Saxony"
+msgstr "Saxonia Inferioara"
+
+#: .\contrib\localflavor\de\de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Renania de Nord-Westfalia"
+
+#: .\contrib\localflavor\de\de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Renanina-Palatinat"
+
+#: .\contrib\localflavor\de\de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: .\contrib\localflavor\de\de_states.py:17
+msgid "Saxony"
+msgstr "Saxonia"
+
+#: .\contrib\localflavor\de\de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxonia-Anhalt"
+
+#: .\contrib\localflavor\de\de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: .\contrib\localflavor\de\de_states.py:20
+msgid "Thuringia"
+msgstr "Turingia"
+
+#: .\contrib\localflavor\de\forms.py:14
+#: .\contrib\localflavor\fi\forms.py:12
+#: .\contrib\localflavor\fr\forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Introduceti un cod postal de forma XXXXX."
+
+#: .\contrib\localflavor\de\forms.py:41
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Introduceti un numar german de identitate valid, de forma XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: .\contrib\localflavor\es\es_provinces.py:5
+msgid "Arava"
+msgstr "Arava"
+
+#: .\contrib\localflavor\es\es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: .\contrib\localflavor\es\es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: .\contrib\localflavor\es\es_provinces.py:8
+msgid "Almeria"
+msgstr "Almeria"
+
+#: .\contrib\localflavor\es\es_provinces.py:9
+msgid "Avila"
+msgstr "Avila"
+
+#: .\contrib\localflavor\es\es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: .\contrib\localflavor\es\es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Insulele Baleare"
+
+#: .\contrib\localflavor\es\es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: .\contrib\localflavor\es\es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: .\contrib\localflavor\es\es_provinces.py:14
+msgid "Caceres"
+msgstr "Caceres"
+
+#: .\contrib\localflavor\es\es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cadiz"
+
+#: .\contrib\localflavor\es\es_provinces.py:16
+msgid "Castello"
+msgstr "Castello"
+
+#: .\contrib\localflavor\es\es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: .\contrib\localflavor\es\es_provinces.py:18
+msgid "Cordoba"
+msgstr "Cordoba"
+
+#: .\contrib\localflavor\es\es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruna"
+
+#: .\contrib\localflavor\es\es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: .\contrib\localflavor\es\es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: .\contrib\localflavor\es\es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: .\contrib\localflavor\es\es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: .\contrib\localflavor\es\es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipuzkoa"
+
+#: .\contrib\localflavor\es\es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: .\contrib\localflavor\es\es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: .\contrib\localflavor\es\es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaen"
+
+#: .\contrib\localflavor\es\es_provinces.py:28
+msgid "Leon"
+msgstr "Leon"
+
+#: .\contrib\localflavor\es\es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: .\contrib\localflavor\es\es_provinces.py:30
+#: .\contrib\localflavor\es\es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: .\contrib\localflavor\es\es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: .\contrib\localflavor\es\es_provinces.py:32
+#: .\contrib\localflavor\es\es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: .\contrib\localflavor\es\es_provinces.py:33
+msgid "Malaga"
+msgstr "Malaga"
+
+#: .\contrib\localflavor\es\es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: .\contrib\localflavor\es\es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: .\contrib\localflavor\es\es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: .\contrib\localflavor\es\es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: .\contrib\localflavor\es\es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: .\contrib\localflavor\es\es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: .\contrib\localflavor\es\es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: .\contrib\localflavor\es\es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: .\contrib\localflavor\es\es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: .\contrib\localflavor\es\es_provinces.py:43
+#: .\contrib\localflavor\es\es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: .\contrib\localflavor\es\es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: .\contrib\localflavor\es\es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilia"
+
+#: .\contrib\localflavor\es\es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: .\contrib\localflavor\es\es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: .\contrib\localflavor\es\es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: .\contrib\localflavor\es\es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: .\contrib\localflavor\es\es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: .\contrib\localflavor\es\es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: .\contrib\localflavor\es\es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Bizkaia"
+
+#: .\contrib\localflavor\es\es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: .\contrib\localflavor\es\es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: .\contrib\localflavor\es\es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: .\contrib\localflavor\es\es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: .\contrib\localflavor\es\es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalusia"
+
+#: .\contrib\localflavor\es\es_regions.py:6
+msgid "Aragon"
+msgstr "Aragon"
+
+#: .\contrib\localflavor\es\es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principatul Asturiei"
+
+#: .\contrib\localflavor\es\es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Insulele Baleare"
+
+#: .\contrib\localflavor\es\es_regions.py:9
+msgid "Basque Country"
+msgstr "Tara Bascilor"
+
+#: .\contrib\localflavor\es\es_regions.py:10
+msgid "Canary Islands"
+msgstr "Insulele Canare"
+
+#: .\contrib\localflavor\es\es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castile-La Mancha"
+
+#: .\contrib\localflavor\es\es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castilia si Leon"
+
+#: .\contrib\localflavor\es\es_regions.py:14
+msgid "Catalonia"
+msgstr "Catalonia"
+
+#: .\contrib\localflavor\es\es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: .\contrib\localflavor\es\es_regions.py:16
+msgid "Galicia"
+msgstr "Galicia"
+
+#: .\contrib\localflavor\es\es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Regiunea Murcia"
+
+#: .\contrib\localflavor\es\es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Comunitatea Forala Navara"
+
+#: .\contrib\localflavor\es\es_regions.py:21
+msgid "Valencian Community"
+msgstr "Comunitatea Valencia"
+
+#: .\contrib\localflavor\es\forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Introduceti un cod postal valid in intervalul si de forma 01XXX - 52XXX."
+
+#: .\contrib\localflavor\es\forms.py:39
+msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+msgstr "Introduceti un numa de telefon valid intr-unul dintre formatele 6XXXXXXXX, 8XXXXXXXX sau 9XXXXXXXX."
+
+#: .\contrib\localflavor\es\forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Introduceţi vă rog un NIF, NIE sau CIF valid."
+
+#: .\contrib\localflavor\es\forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Introduceti va rog un NIF sau NIE valid."
+
+#: .\contrib\localflavor\es\forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Suma de control invalda pentru NIF."
+
+#: .\contrib\localflavor\es\forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Suma de control invalida pentru NIE."
+
+#: .\contrib\localflavor\es\forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Suma de control invalida pentru CIF."
+
+#: .\contrib\localflavor\es\forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Introduceti un numar de cont bancar valid de forma XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: .\contrib\localflavor\es\forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Suma de control invalida pentru numarul de cont bancar."
+
+#: .\contrib\localflavor\fi\forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Introduceti un numar finlandez de securitate sociala valid."
+
+#: .\contrib\localflavor\in_\forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Introduceti un cod postal de forma XXXXXXX."
+
+#: .\contrib\localflavor\is_\forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Introduceti un numa islandez de autentificare valid. Formatul este XXXXXX-XXXX."
+
+#: .\contrib\localflavor\is_\forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Numarul islandez de identificare nu este valid."
+
+#: .\contrib\localflavor\it\forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Introduceti un cod postal valid."
+
+#: .\contrib\localflavor\it\forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Introduceti un numar de securitate sociala valid."
+
+#: .\contrib\localflavor\it\forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Introduceti un numar VAT valid."
+
+#: .\contrib\localflavor\jp\forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Introduceti un cod postal de forma XXXXXXX sau XXX-XXXX."
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: .\contrib\localflavor\jp\jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: .\contrib\localflavor\mx\mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: .\contrib\localflavor\mx\mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: .\contrib\localflavor\mx\mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: .\contrib\localflavor\mx\mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: .\contrib\localflavor\mx\mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: .\contrib\localflavor\mx\mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: .\contrib\localflavor\mx\mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: .\contrib\localflavor\mx\mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: .\contrib\localflavor\mx\mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Districtul Federal"
+
+#: .\contrib\localflavor\mx\mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: .\contrib\localflavor\mx\mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: .\contrib\localflavor\mx\mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: .\contrib\localflavor\mx\mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: .\contrib\localflavor\mx\mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: .\contrib\localflavor\mx\mx_states.py:26
+msgid "Estado de MÃ©xico"
+msgstr "Statul Mexico"
+
+#: .\contrib\localflavor\mx\mx_states.py:27
+msgid "MichoacÃ¡n"
+msgstr "MichoacÃ¡n"
+
+#: .\contrib\localflavor\mx\mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: .\contrib\localflavor\mx\mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: .\contrib\localflavor\mx\mx_states.py:30
+msgid "Nuevo LeÃ³n"
+msgstr "Nuevo LeÃ³n"
+
+#: .\contrib\localflavor\mx\mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: .\contrib\localflavor\mx\mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: .\contrib\localflavor\mx\mx_states.py:33
+msgid "QuerÃ©taro"
+msgstr "QuerÃ©taro"
+
+#: .\contrib\localflavor\mx\mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: .\contrib\localflavor\mx\mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: .\contrib\localflavor\mx\mx_states.py:36
+msgid "San Luis PotosÃ­"
+msgstr "San Luis PotosÃ­"
+
+#: .\contrib\localflavor\mx\mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: .\contrib\localflavor\mx\mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: .\contrib\localflavor\mx\mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: .\contrib\localflavor\mx\mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: .\contrib\localflavor\mx\mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: .\contrib\localflavor\mx\mx_states.py:42
+msgid "YucatÃ¡n"
+msgstr "Yucatan"
+
+#: .\contrib\localflavor\mx\mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: .\contrib\localflavor\nl\forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Introduceti un cod postal valid"
+
+#: .\contrib\localflavor\nl\forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Introduceţi un număr îde telefon valid"
+
+#: .\contrib\localflavor\nl\forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Introduceti un numar SoFi valid"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:6
+msgid "Friesland"
+msgstr "Frizia"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburg"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Brabantul de Nord"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Olanda de Nord"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeelanda"
+
+#: .\contrib\localflavor\nl\nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Olanda de Sud"
+
+#: .\contrib\localflavor\no\forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Introduceti un numar norvegian de securitate sociala valid."
+
+#: .\contrib\localflavor\pe\forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Acest camp are nevoie de 8 cifre."
+
+#: .\contrib\localflavor\pe\forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Acest camp are nevoie de 11 cifre."
+
+#: .\contrib\localflavor\pl\forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "Numarul National de Identificare contine 11 cifre."
+
+#: .\contrib\localflavor\pl\forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Suma de control gresita pentru Numarul National de Identificare."
+
+#: .\contrib\localflavor\pl\forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Introduceti un numar de taxa(NIP) de forma XXX-XXX-XX-XX sau XX-XX-XXX-XXX."
+
+#: .\contrib\localflavor\pl\forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Suma de control gresita pentru Numarul de Taxa (NIP)."
+
+#: .\contrib\localflavor\pl\forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "Numarul National din Registrul pentru Afaceri (REGON) contine 7 sau 9 cifre."
+
+#: .\contrib\localflavor\pl\forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Suma de control gresita pentru Numarul National din Registrul pentru Afaceri (REGON)."
+
+#: .\contrib\localflavor\pl\forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Introduceti un cod postal de forma XX-XXX."
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Silezia Inferioara"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Polonia Mica"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Podcarpatia"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silezia"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Polonia Mare"
+
+#: .\contrib\localflavor\pl\pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Pomerania Occidentala"
+
+#: .\contrib\localflavor\sk\forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Introduceti un cod postal de forma XXXXX or XXX XX."
+
+#: .\contrib\localflavor\sk\sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: .\contrib\localflavor\sk\sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: .\contrib\localflavor\sk\sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: .\contrib\localflavor\sk\sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: .\contrib\localflavor\sk\sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: .\contrib\localflavor\sk\sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: .\contrib\localflavor\sk\sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: .\contrib\localflavor\sk\sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: .\contrib\localflavor\sk\sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: .\contrib\localflavor\sk\sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: .\contrib\localflavor\sk\sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: .\contrib\localflavor\sk\sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: .\contrib\localflavor\sk\sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: .\contrib\localflavor\sk\sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: .\contrib\localflavor\sk\sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: .\contrib\localflavor\sk\sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: .\contrib\localflavor\sk\sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: .\contrib\localflavor\sk\sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: .\contrib\localflavor\sk\sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: .\contrib\localflavor\sk\sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: .\contrib\localflavor\sk\sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: .\contrib\localflavor\sk\sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: .\contrib\localflavor\sk\sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: .\contrib\localflavor\sk\sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: .\contrib\localflavor\sk\sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: .\contrib\localflavor\sk\sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: .\contrib\localflavor\sk\sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: .\contrib\localflavor\sk\sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: .\contrib\localflavor\sk\sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: .\contrib\localflavor\sk\sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: .\contrib\localflavor\sk\sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: .\contrib\localflavor\sk\sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: .\contrib\localflavor\sk\sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: .\contrib\localflavor\sk\sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: .\contrib\localflavor\sk\sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: .\contrib\localflavor\sk\sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: .\contrib\localflavor\sk\sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: .\contrib\localflavor\sk\sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: .\contrib\localflavor\sk\sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: .\contrib\localflavor\sk\sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: .\contrib\localflavor\sk\sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: .\contrib\localflavor\sk\sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: .\contrib\localflavor\sk\sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: .\contrib\localflavor\sk\sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: .\contrib\localflavor\sk\sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: .\contrib\localflavor\sk\sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: .\contrib\localflavor\sk\sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: .\contrib\localflavor\sk\sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: .\contrib\localflavor\sk\sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: .\contrib\localflavor\sk\sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: .\contrib\localflavor\sk\sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: .\contrib\localflavor\sk\sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: .\contrib\localflavor\sk\sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: .\contrib\localflavor\sk\sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: .\contrib\localflavor\sk\sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: .\contrib\localflavor\sk\sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: .\contrib\localflavor\sk\sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: .\contrib\localflavor\sk\sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: .\contrib\localflavor\sk\sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: .\contrib\localflavor\sk\sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: .\contrib\localflavor\sk\sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: .\contrib\localflavor\sk\sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: .\contrib\localflavor\sk\sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: .\contrib\localflavor\sk\sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: .\contrib\localflavor\sk\sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: .\contrib\localflavor\sk\sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: .\contrib\localflavor\sk\sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: .\contrib\localflavor\sk\sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: .\contrib\localflavor\sk\sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: .\contrib\localflavor\sk\sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: .\contrib\localflavor\sk\sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: .\contrib\localflavor\sk\sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: .\contrib\localflavor\sk\sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: .\contrib\localflavor\sk\sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: .\contrib\localflavor\sk\sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: .\contrib\localflavor\sk\sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: .\contrib\localflavor\sk\sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: .\contrib\localflavor\sk\sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: .\contrib\localflavor\sk\sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: .\contrib\localflavor\sk\sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banska Bystrica region"
+
+#: .\contrib\localflavor\sk\sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Regiunea Bratislava"
+
+#: .\contrib\localflavor\sk\sk_regions.py:10
+msgid "Kosice region"
+msgstr "Regiunea Kosice"
+
+#: .\contrib\localflavor\sk\sk_regions.py:11
+msgid "Nitra region"
+msgstr "Regiunea Nitra"
+
+#: .\contrib\localflavor\sk\sk_regions.py:12
+msgid "Presov region"
+msgstr "Regiunea Presov"
+
+#: .\contrib\localflavor\sk\sk_regions.py:13
+msgid "Trencin region"
+msgstr "Regiunea Trencin"
+
+#: .\contrib\localflavor\sk\sk_regions.py:14
+msgid "Trnava region"
+msgstr "Regiunea Trnava"
+
+#: .\contrib\localflavor\sk\sk_regions.py:15
+msgid "Zilina region"
+msgstr "Regiunea Zilina"
+
+#: .\contrib\localflavor\uk\forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Introduceti un cod postal valid."
+
+#: .\contrib\localflavor\uk\uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall si Insulele Scilly"
+
+#: .\contrib\localflavor\uk\uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: .\contrib\localflavor\uk\uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: .\contrib\localflavor\uk\uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: .\contrib\localflavor\uk\uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: .\contrib\localflavor\uk\uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: .\contrib\localflavor\uk\uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: .\contrib\localflavor\uk\uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:24
+msgid "Greater London"
+msgstr "Londra Mare"
+
+#: .\contrib\localflavor\uk\uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Greater Manchester"
+
+#: .\contrib\localflavor\uk\uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: .\contrib\localflavor\uk\uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: .\contrib\localflavor\uk\uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: .\contrib\localflavor\uk\uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: .\contrib\localflavor\uk\uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: .\contrib\localflavor\uk\uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "South Yorkshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: .\contrib\localflavor\uk\uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: .\contrib\localflavor\uk\uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne si Wear"
+
+#: .\contrib\localflavor\uk\uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: .\contrib\localflavor\uk\uk_regions.py:48
+msgid "West Sussex"
+msgstr "West Sussex"
+
+#: .\contrib\localflavor\uk\uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West Yorkshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: .\contrib\localflavor\uk\uk_regions.py:55
+msgid "County Antrim"
+msgstr "Comitatul Antrim"
+
+#: .\contrib\localflavor\uk\uk_regions.py:56
+msgid "County Armagh"
+msgstr "Comitatul Armagh"
+
+#: .\contrib\localflavor\uk\uk_regions.py:57
+msgid "County Down"
+msgstr "Comitatul Down"
+
+#: .\contrib\localflavor\uk\uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "Comitatul Fermanagh"
+
+#: .\contrib\localflavor\uk\uk_regions.py:59
+msgid "County Londonderry"
+msgstr "Comitatul Londonderry"
+
+#: .\contrib\localflavor\uk\uk_regions.py:60
+msgid "County Tyrone"
+msgstr "Comitatul Tyrone"
+
+#: .\contrib\localflavor\uk\uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: .\contrib\localflavor\uk\uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: .\contrib\localflavor\uk\uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: .\contrib\localflavor\uk\uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: .\contrib\localflavor\uk\uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: .\contrib\localflavor\uk\uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: .\contrib\localflavor\uk\uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: .\contrib\localflavor\uk\uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West Glamorgan"
+
+#: .\contrib\localflavor\uk\uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: .\contrib\localflavor\uk\uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Central Scotland"
+
+#: .\contrib\localflavor\uk\uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries si Galloway"
+
+#: .\contrib\localflavor\uk\uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: .\contrib\localflavor\uk\uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: .\contrib\localflavor\uk\uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: .\contrib\localflavor\uk\uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: .\contrib\localflavor\uk\uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney Islands"
+
+#: .\contrib\localflavor\uk\uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetland Islands"
+
+#: .\contrib\localflavor\uk\uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: .\contrib\localflavor\uk\uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: .\contrib\localflavor\uk\uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: .\contrib\localflavor\uk\uk_regions.py:90
+msgid "England"
+msgstr "Anglia"
+
+#: .\contrib\localflavor\uk\uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Irlanda de Nord"
+
+#: .\contrib\localflavor\uk\uk_regions.py:92
+msgid "Scotland"
+msgstr "Scotia"
+
+#: .\contrib\localflavor\uk\uk_regions.py:93
+msgid "Wales"
+msgstr "Tara Galilor"
+
+#: .\contrib\localflavor\us\forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Introduceti un cod postal de forma XXXXX or XXXXX-XXXX."
+
+#: .\contrib\localflavor\us\forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Introduceti un numar SUA de Securitate Sociala de forma XXX-XX-XXXX format."
+
+#: .\contrib\localflavor\za\forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Introduceti un ID sud african valid"
+
+#: .\contrib\localflavor\za\forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Introduceti un cod postal sud african valid"
+
+#: .\contrib\localflavor\za\za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Eastern Cape"
+
+#: .\contrib\localflavor\za\za_provinces.py:5
+msgid "Free State"
+msgstr "Free State"
+
+#: .\contrib\localflavor\za\za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: .\contrib\localflavor\za\za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: .\contrib\localflavor\za\za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: .\contrib\localflavor\za\za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: .\contrib\localflavor\za\za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Northern Cape"
+
+#: .\contrib\localflavor\za\za_provinces.py:11
+msgid "North West"
+msgstr "North West"
+
+#: .\contrib\localflavor\za\za_provinces.py:12
+msgid "Western Cape"
+msgstr "Western Cape"
+
+#: .\contrib\redirects\models.py:7
+msgid "redirect from"
+msgstr "redirectat de la "
+
+#: .\contrib\redirects\models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Aceasta ar trebui să fie o cale absolută, excluzînd numele de domeniu. Exemplu: '/evenimente/cautare/'."
+
+#: .\contrib\redirects\models.py:9
+msgid "redirect to"
+msgstr "redirectat la"
+
+#: .\contrib\redirects\models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Aceasta poate fi o cale absolută (ca mai sus) sau un URL începînd cu 'http://'."
+
+#: .\contrib\redirects\models.py:13
+msgid "redirect"
+msgstr "redirectare"
+
+#: .\contrib\redirects\models.py:14
+msgid "redirects"
+msgstr "redictări"
+
+#: .\contrib\sessions\models.py:41
+msgid "session key"
+msgstr "cheie sesiune"
+
+#: .\contrib\sessions\models.py:42
+msgid "session data"
+msgstr "date sesiune"
+
+#: .\contrib\sessions\models.py:43
+msgid "expire date"
+msgstr "data expirare"
+
+#: .\contrib\sessions\models.py:48
+msgid "session"
+msgstr "sesiune"
+
+#: .\contrib\sessions\models.py:49
+msgid "sessions"
+msgstr "sesiuni"
+
+#: .\contrib\sites\models.py:32
+msgid "domain name"
+msgstr "nume domeniu"
+
+#: .\contrib\sites\models.py:33
+msgid "display name"
+msgstr "nume afişat"
+
+#: .\contrib\sites\models.py:37
+msgid "site"
+msgstr "sit"
+
+#: .\contrib\sites\models.py:38
+msgid "sites"
+msgstr "sit"
+
+#: .\core\validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Această valoare trebuie să conţină numai litere, numere şi liniuţe de subliniere."
+
+#: .\core\validators.py:76
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Această valoare trebuie să conţină numai litere, numere, liniuţe de subliniere, slash-uri si dash-uri."
+
+#: .\core\validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Această valoare trebuie să conţină numai litere, numere, liniuţe de subliniere şi liniute."
+
+#: .\core\validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Literele mari nu sînt permise aici."
+
+#: .\core\validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Literele mici nu sînt permise aici."
+
+#: .\core\validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Introduceţi numai numere separate de virgule."
+
+#: .\core\validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Introduceţi adrese de email valide separate de virgule."
+
+#: .\core\validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Introduceţi vă rog o adresă IP validă."
+
+#: .\core\validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Valorile vide nu sînt permise aici."
+
+#: .\core\validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Caracterele ne-numerice nu sînt permise aici."
+
+#: .\core\validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Această valoare nu poate conţîne numai cifre."
+
+#: .\core\validators.py:128
+#: .\newforms\fields.py:152
+msgid "Enter a whole number."
+msgstr "Introduceţi un număr întreg."
+
+#: .\core\validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Numai caractere alfabetice sînt permise aici."
+
+#: .\core\validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "Anul trebuie sa fie 1900 sau posterior."
+
+#: .\core\validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Data invalida: %s"
+
+#: .\core\validators.py:156
+#: .\db\models\fields\__init__.py:527
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Introduceţi o dată validă in format: AAAA-LL-ZZ."
+
+#: .\core\validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Introduceţi o oră în format OO:MM."
+
+#: .\core\validators.py:165
+#: .\db\models\fields\__init__.py:604
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Introduceţi o dată/oră validă în format AAAA-LL-ZZ OO:MM."
+
+#: .\core\validators.py:170
+#: .\newforms\fields.py:403
+msgid "Enter a valid e-mail address."
+msgstr "Introduceţi o adresă de email validă."
+
+#: .\core\validators.py:182
+#: .\core\validators.py:474
+#: .\newforms\fields.py:433
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Nici un fisier nu a fost trimis. Verifica tipul fisierului."
+
+#: .\core\validators.py:193
+#: .\newforms\fields.py:459
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Încărcaţi o imagine validă. Fişierul încărcat nu era o imagine sau era o imagine coruptă."
+
+#: .\core\validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL-ul %s nu pointează către o imagine validă."
+
+#: .\core\validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Numerele de telefon trebuie să fie in format XXX-XXX-XXXX. \"%s\" e invalid."
+
+#: .\core\validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL-ul %s nu pointează către o imagine video QuickTime validă."
+
+#: .\core\validators.py:216
+msgid "A valid URL is required."
+msgstr "E necesar un URL valid."
+
+#: .\core\validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"E necesar cod HTML valid. Erorile specifice sînt:\n"
+"%s"
+
+#: .\core\validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Format XML invalid: %s"
+
+#: .\core\validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL invalid: %s"
+
+#: .\core\validators.py:259
+#: .\core\validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL-ul %s e invalid."
+
+#: .\core\validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Introduceţi o abreviere validă în U.S."
+
+#: .\core\validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Îngrijiţi-vă limbajul! Cuvîntul %s nu este permis aici."
+msgstr[1] "Îngrijiţi-vă limbajul! Cuvintele %s nu sînt permise aici."
+
+#: .\core\validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Acest camp trebuie sa fie identic cu '%s'."
+
+#: .\core\validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Va rog completati cel putin un camp."
+
+#: .\core\validators.py:316
+#: .\core\validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Vă rog comletaţi ambele cîmpuri sau lăsaţi-le goale pe ambele."
+
+#: .\core\validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Acest cîmp e necesar dacă %(field)s este %(value)s"
+
+#: .\core\validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Acest cîmp e necesar dacă %(field)s nu este %(value)s"
+
+#: .\core\validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Valorile duplicate nu sînt permise."
+
+#: .\core\validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Aceasta valoare trebuie sa fie cuprinsa intre %(lower)s si %(upper)s."
+
+#: .\core\validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Această valoare trebuie să fie cel putin %s."
+
+#: .\core\validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Această valoare trebuie să nu fie mai mult de %s."
+
+#: .\core\validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Această valoare trebuie să fie o putere a lui %s."
+
+#: .\core\validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Vă rog introduceţi un număr zecimal valid."
+
+#: .\core\validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Vă rog introduceţi un număr zecimal valid cu cel mult %s cifră."
+msgstr[1] "Vă rog introduceţi un număr zecimal valid cu cel mult %s cifre."
+
+#: .\core\validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Vă rog introduceţi un număr zecimal valid cu partea intreaga cel mult %s cifră."
+msgstr[1] "Vă rog introduceţi un număr zecimal valid cu partea intreaga cel mult %s cifre."
+
+#: .\core\validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Vă rog introduceţi un număr zecimal valid cu cel mult %s zecimală."
+msgstr[1] "Vă rog introduceţi un număr zecimal valid cu cel mult %s zecimale."
+
+#: .\core\validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Vă rog introduceţi un număr cu virgula valid."
+
+#: .\core\validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Asigură-te că fişierul încărcact are cel puţin %s octeţi."
+
+#: .\core\validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Asigură-te că fişierul încărcact are cel mult %s octeţi."
+
+#: .\core\validators.py:485
+msgid "The format for this field is wrong."
+msgstr "Formatul acestui cîmp este invalid."
+
+#: .\core\validators.py:500
+msgid "This field is invalid."
+msgstr "Cîmpul este invalid."
+
+#: .\core\validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Nu pot prelua nimic de la %s."
+
+#: .\core\validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL-ul %(url)s a returnat un header Content-Type invalid '%(contenttype)s'."
+
+#: .\core\validators.py:572
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Te rog închide tagurile %(tag)s din linia %(line)s. ( Linia începe cu \"%(start)s\".)"
+
+#: .\core\validators.py:576
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Textul începînd cu linia %(line)s nu e permis în acest context. (Linia începînd cu \"%(start)s\".)"
+
+#: .\core\validators.py:581
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" în linia %(line)s e un atribut invalid. (Linia începînd cu \"%(start)s\".)"
+
+#: .\core\validators.py:586
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\" în linia %(line)s este un tag invalid. (Linia începe cu \"%(start)s\"."
+
+#: .\core\validators.py:590
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "Unui tag din linia %(line)s îi lipseşte unul sau mai multe atribute. (Linia începe cu \"%(start)s\".)"
+
+#: .\core\validators.py:595
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "Atributul \"%(attr)s\" din linia %(line)s are o valoare invalidă. ( Linia începe cu \"%(start)s\".)"
+
+#: .\db\models\manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s de acest tip %(type)s exista deja pentru %(field)s dat."
+
+#: .\db\models\fields\__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s cu acest %(fieldname)s exista deja."
+
+#: .\db\models\fields\__init__.py:161
+#: .\db\models\fields\__init__.py:327
+#: .\db\models\fields\__init__.py:759
+#: .\db\models\fields\__init__.py:770
+#: .\newforms\fields.py:46
+#: .\oldforms\__init__.py:374
+msgid "This field is required."
+msgstr "Campul acesta trebuie completat obligatoriu."
+
+#: .\db\models\fields\__init__.py:427
+msgid "This value must be an integer."
+msgstr "Această valoare trebuie să fie un numar intreg"
+
+#: .\db\models\fields\__init__.py:466
+msgid "This value must be either True or False."
+msgstr "Această valoare trebuie să fie ori falsa ori adevarata"
+
+#: .\db\models\fields\__init__.py:490
+msgid "This field cannot be null."
+msgstr "Cîmpul nu poate fi gol"
+
+#: .\db\models\fields\__init__.py:668
+msgid "This value must be a decimal number."
+msgstr "Această valoare trebuie să fie un numar zecimal."
+
+#: .\db\models\fields\__init__.py:779
+msgid "Enter a valid filename."
+msgstr "Introduceti un nume de fisier valid."
+
+#: .\db\models\fields\__init__.py:960
+msgid "This value must be either None, True or False."
+msgstr "Această valoare trebuie să fie falsa, adevarata sau nici una."
+
+#: .\db\models\fields\related.py:93
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Introduceti va rog un %s valid."
+
+#: .\db\models\fields\related.py:701
+msgid "Separate multiple IDs with commas."
+msgstr "Separă ID-urile multiple cu virgulă."
+
+#: .\db\models\fields\related.py:703
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr " Ţine apăsat \"Control\", sau \"Command\" pe un Mac, pentru a selectie multipla."
+
+#: .\db\models\fields\related.py:750
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Introduceti un ID valid pentru %(self)s. Valoarea %(value)r nu este valida."
+msgstr[1] "Introduceti ID-uri valide pentru %(self)s. Valorile %(value)r nu sunt valide."
+
+#: .\newforms\fields.py:47
+msgid "Enter a valid value."
+msgstr "Introduceti o valoare valida."
+
+#: .\newforms\fields.py:124
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Asigurati-va ca aceasta valoare are cel mult %(max)d caractere (are %(length)d)."
+
+#: .\newforms\fields.py:125
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Asigurati-va ca aceasta valoare are cel putin %(min)d caractere (are %(length)d)."
+
+#: .\newforms\fields.py:153
+#: .\newforms\fields.py:182
+#: .\newforms\fields.py:211
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Asigurati-va ca aceasta valoare este mai mica sau egala cu %s."
+
+#: .\newforms\fields.py:154
+#: .\newforms\fields.py:183
+#: .\newforms\fields.py:212
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Asigurati-va ca aceasta valoare este mai mare sau egala cu %s."
+
+#: .\newforms\fields.py:181
+#: .\newforms\fields.py:210
+msgid "Enter a number."
+msgstr "Introduceţi un număr."
+
+#: .\newforms\fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Asigurati-va ca nu exista mai mult de %s cifre in total."
+
+#: .\newforms\fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Asigurati-va ca nu exista mai mult de %s spatii zecimale."
+
+#: .\newforms\fields.py:215
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Asigurati-va ca nu exista mai mult de %s cifre inainte de virgula."
+
+#: .\newforms\fields.py:263
+#: .\newforms\fields.py:751
+msgid "Enter a valid date."
+msgstr "Introduceti o data valida."
+
+#: .\newforms\fields.py:296
+#: .\newforms\fields.py:752
+msgid "Enter a valid time."
+msgstr "Introduceti o ora valida."
+
+#: .\newforms\fields.py:335
+msgid "Enter a valid date/time."
+msgstr "Introduceti o data/ora valida."
+
+#: .\newforms\fields.py:434
+msgid "No file was submitted."
+msgstr "Nici un fisier nu a fost trimis."
+
+#: .\newforms\fields.py:435
+#: .\oldforms\__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Fisierul uploadat este gol"
+
+#: .\newforms\fields.py:497
+msgid "Enter a valid URL."
+msgstr "Introduceti un URL valid."
+
+#: .\newforms\fields.py:498
+msgid "This URL appears to be a broken link."
+msgstr "URL-ul e invalid."
+
+#: .\newforms\fields.py:560
+#: .\newforms\models.py:299
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Selectati o optiune valida. Aceasta optiune nu face parte din optiunile disponibile."
+
+#: .\newforms\fields.py:599
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Selectati o optiune valida. %(value)s nu face parte din optiunile disponibile."
+
+#: .\newforms\fields.py:600
+#: .\newforms\fields.py:662
+#: .\newforms\models.py:371
+msgid "Enter a list of values."
+msgstr "Introduceti o lista de valori."
+
+#: .\newforms\fields.py:780
+msgid "Enter a valid IPv4 address."
+msgstr "Introduceţi o adresă IPv4 valida."
+
+#: .\newforms\models.py:372
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Selectati o optiune valida. %s nu face parte din optiunile disponibile."
+
+#: .\oldforms\__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Asigurati-va ca textul dumneavoastra are mai putin de %s caracter."
+msgstr[1] "Asigurati-va ca textul dumneavoastra are mai putin de %s caractere."
+
+#: .\oldforms\__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Randurile noi nu sînt permise aici."
+
+#: .\oldforms\__init__.py:512
+#: .\oldforms\__init__.py:586
+#: .\oldforms\__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Selectati o optiune valida. '%(data)s' nu face parte din %(choices)s."
+
+#: .\oldforms\__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Introduceţi un număr întreg cu valoare intre -32,768 si 32,767."
+
+#: .\oldforms\__init__.py:755
+msgid "Enter a positive number."
+msgstr "Introduceţi un număr pozitiv."
+
+#: .\oldforms\__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Introduceţi un număr întreg cu valoare intre 0 si 32,767."
+
+#: .\template\defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "da,nu,poate"
+
+#: .\template\defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#: .\template\defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: .\template\defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: .\template\defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: .\utils\dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: .\utils\dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: .\utils\dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: .\utils\dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: .\utils\dateformat.py:97
+msgid "midnight"
+msgstr "miezul noptii"
+
+#: .\utils\dateformat.py:99
+msgid "noon"
+msgstr "amiaza"
+
+#: .\utils\dates.py:6
+msgid "Monday"
+msgstr "Luni"
+
+#: .\utils\dates.py:6
+msgid "Tuesday"
+msgstr "Marţi"
+
+#: .\utils\dates.py:6
+msgid "Wednesday"
+msgstr "Miercuri"
+
+#: .\utils\dates.py:6
+msgid "Thursday"
+msgstr "Joi"
+
+#: .\utils\dates.py:6
+msgid "Friday"
+msgstr "Vineri"
+
+#: .\utils\dates.py:7
+msgid "Saturday"
+msgstr "Sîmbătă"
+
+#: .\utils\dates.py:7
+msgid "Sunday"
+msgstr "Duminică"
+
+#: .\utils\dates.py:10
+msgid "Mon"
+msgstr "Lun"
+
+#: .\utils\dates.py:10
+msgid "Tue"
+msgstr "Mar"
+
+#: .\utils\dates.py:10
+msgid "Wed"
+msgstr "Mie"
+
+#: .\utils\dates.py:10
+msgid "Thu"
+msgstr "Joi"
+
+#: .\utils\dates.py:10
+msgid "Fri"
+msgstr "Vin"
+
+#: .\utils\dates.py:11
+msgid "Sat"
+msgstr "Sam"
+
+#: .\utils\dates.py:11
+msgid "Sun"
+msgstr "Dum"
+
+#: .\utils\dates.py:18
+msgid "January"
+msgstr "Ianuarie"
+
+#: .\utils\dates.py:18
+msgid "February"
+msgstr "Februarie"
+
+#: .\utils\dates.py:18
+#: .\utils\dates.py:31
+msgid "March"
+msgstr "Martie"
+
+#: .\utils\dates.py:18
+#: .\utils\dates.py:31
+msgid "April"
+msgstr "Aprilie"
+
+#: .\utils\dates.py:18
+#: .\utils\dates.py:31
+msgid "May"
+msgstr "Mai"
+
+#: .\utils\dates.py:18
+#: .\utils\dates.py:31
+msgid "June"
+msgstr "Iunie"
+
+#: .\utils\dates.py:19
+#: .\utils\dates.py:31
+msgid "July"
+msgstr "Iulie"
+
+#: .\utils\dates.py:19
+msgid "August"
+msgstr "August"
+
+#: .\utils\dates.py:19
+msgid "September"
+msgstr "Septembrie"
+
+#: .\utils\dates.py:19
+msgid "October"
+msgstr "Octombrie"
+
+#: .\utils\dates.py:19
+msgid "November"
+msgstr "Noiembrie"
+
+#: .\utils\dates.py:20
+msgid "December"
+msgstr "Decembrie"
+
+#: .\utils\dates.py:23
+msgid "jan"
+msgstr "ian"
+
+#: .\utils\dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: .\utils\dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: .\utils\dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: .\utils\dates.py:23
+msgid "may"
+msgstr "mai"
+
+#: .\utils\dates.py:23
+msgid "jun"
+msgstr "iun"
+
+#: .\utils\dates.py:24
+msgid "jul"
+msgstr "iul"
+
+#: .\utils\dates.py:24
+msgid "aug"
+msgstr "aug"
+
+#: .\utils\dates.py:24
+msgid "sep"
+msgstr "sep"
+
+#: .\utils\dates.py:24
+msgid "oct"
+msgstr "oct"
+
+#: .\utils\dates.py:24
+msgid "nov"
+msgstr "noi"
+
+#: .\utils\dates.py:24
+msgid "dec"
+msgstr "dec"
+
+#: .\utils\dates.py:31
+msgid "Jan."
+msgstr "Ian."
+
+#: .\utils\dates.py:31
+msgid "Feb."
+msgstr "Feb."
+
+#: .\utils\dates.py:32
+msgid "Aug."
+msgstr "Aug."
+
+#: .\utils\dates.py:32
+msgid "Sept."
+msgstr "Sept."
+
+#: .\utils\dates.py:32
+msgid "Oct."
+msgstr "Oct"
+
+#: .\utils\dates.py:32
+msgid "Nov."
+msgstr "Noi."
+
+#: .\utils\dates.py:32
+msgid "Dec."
+msgstr "Dec."
+
+#: .\utils\text.py:127
+msgid "or"
+msgstr "sau"
+
+#: .\utils\timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "an"
+msgstr[1] "ani"
+
+#: .\utils\timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "luna"
+msgstr[1] "luni"
+
+#: .\utils\timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "saptamana"
+msgstr[1] "saptamani"
+
+#: .\utils\timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "zi"
+msgstr[1] "zile"
+
+#: .\utils\timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "ora"
+msgstr[1] "ore"
+
+#: .\utils\timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minut"
+msgstr[1] "minute"
+
+#: .\utils\timesince.py:46
+msgid "minutes"
+msgstr "minute"
+
+#: .\utils\timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: .\utils\timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: .\utils\translation\trans_real.py:403
+msgid "DATE_FORMAT"
+msgstr "j N Y"
+
+#: .\utils\translation\trans_real.py:404
+msgid "DATETIME_FORMAT"
+msgstr "j N Y, H:i:s"
+
+#: .\utils\translation\trans_real.py:405
+msgid "TIME_FORMAT"
+msgstr "H:i:s"
+
+#: .\utils\translation\trans_real.py:421
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: .\utils\translation\trans_real.py:422
+msgid "MONTH_DAY_FORMAT"
+msgstr "j F"
+
+#: .\views\generic\create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s a fost creat cu succes."
+
+#: .\views\generic\create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s a fost actualizat cu succes."
+
+#: .\views\generic\create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s a fost sters."
+
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr "Ai <a href=\"/password_reset/\">uitat parola</a>?"
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Foloseste '[algo]$[salt]$[hexdigest]'"
+
+#, fuzzy
+#~ msgid "Comments"
+#~ msgstr "permite comentarii"
+#~ msgid "label"
+#~ msgstr "etichetă"
+#~ msgid "package"
+#~ msgstr "pachet"
+#~ msgid "packages"
+#~ msgstr "pachete"
+
+#, fuzzy
+#~ msgid "count"
+#~ msgstr "conţinut"
+
diff --git a/webapp/django/conf/locale/ro/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/ro/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..0e594fa
--- /dev/null
+++ b/webapp/django/conf/locale/ro/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ro/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/ro/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..7c91fb2
--- /dev/null
+++ b/webapp/django/conf/locale/ro/LC_MESSAGES/djangojs.po
@@ -0,0 +1,116 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-06-28 17:36+1000\n"
+"PO-Revision-Date: 2008-04-25 21:57+0200\n"
+"Last-Translator: \n"
+"Language-Team: Romanian <ro@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, fuzzy, perl-format
+msgid "Available %s"
+msgstr "%s disponibil"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Alege toate"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Adauga"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Sterge"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s ales"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Selectati-va alegera(ile) si dati click "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Elibereaza toate"
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid "January February March April May June July August September October November December"
+msgstr "Ianuarie Februare Martie Aprilie Mai Iunie Iulie August Septembrie Octombrie Noiembrie Decembrie"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Duminica Luni Marti Miercuri Joi Vinery Sambata"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D L M M J V S"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Acum"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Ceas"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Alege o ora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Miezul noptii"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Amiaza"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Anuleaza"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Astazi"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Calendar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Ieri"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Maine"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Arata"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Ascunde"
+
diff --git a/webapp/django/conf/locale/ru/LC_MESSAGES/django.mo b/webapp/django/conf/locale/ru/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..69aa8b8
--- /dev/null
+++ b/webapp/django/conf/locale/ru/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ru/LC_MESSAGES/django.po b/webapp/django/conf/locale/ru/LC_MESSAGES/django.po
new file mode 100644
index 0000000..46f3fab
--- /dev/null
+++ b/webapp/django/conf/locale/ru/LC_MESSAGES/django.po
@@ -0,0 +1,3029 @@
+# Translation of django.po to russian.
+# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-05-04 16:07+1300\n"
+"PO-Revision-Date: 2006-09-07 15:28+0300\n"
+"Last-Translator: Vasiliy Stavenko <stavenko@gmail.com>\n"
+"Language-Team: Dialcom Services <greg@dial.com.ru>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Poedit-Language: Russian\n"
+"X-Poedit-Country: RUSSIAN FEDERATION\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: oldforms/__init__.py:357 db/models/fields/__init__.py:117
+#: db/models/fields/__init__.py:274 db/models/fields/__init__.py:615
+#: db/models/fields/__init__.py:626 newforms/models.py:178
+#: newforms/fields.py:80 newforms/fields.py:378 newforms/fields.py:454
+#: newforms/fields.py:465
+msgid "This field is required."
+msgstr "Обязательное поле."
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Убедитесь, что длина вашего текста меньше %s символа."
+msgstr[1] "Убедитесь, что длина вашего текста меньше %s символов."
+msgstr[2] "Убедитесь, что длина вашего текста меньше %s символов."
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "Переносы строк здесь не допускаются."
+
+#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Выберите корректный вариант; '%(data)s' нет в %(choices)s."
+
+#: oldforms/__init__.py:577 newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "Неизвестно"
+
+#: oldforms/__init__.py:577 newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "Да"
+
+#: oldforms/__init__.py:577 newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "Нет"
+
+#: oldforms/__init__.py:672 core/validators.py:174 core/validators.py:445
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Не получен файл. Проверьте кодирование формы (encoding)."
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "Указанный файл пуст."
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Введите целое число в диапазоне от -32768 до 32767."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "Введите положительное число."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Введите целое число в диапазоне от 0 до 32767."
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s с типом %(type)s уже существует для данного %(field)s."
+
+#: db/models/manipulators.py:308 contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339
+msgid "and"
+msgstr "и"
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s с %(fieldname)s уже существует."
+
+#: db/models/fields/__init__.py:369
+msgid "This value must be an integer."
+msgstr "Это значение должно быть целым числом."
+
+#: db/models/fields/__init__.py:404
+msgid "This value must be either True or False."
+msgstr "Значение должно либо True, либо False."
+
+#: db/models/fields/__init__.py:425
+msgid "This field cannot be null."
+msgstr "Это поле не может быть нулевым."
+
+#: db/models/fields/__init__.py:462 core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Вводите правильную дату в формате YYYY-MM-DD."
+
+#: db/models/fields/__init__.py:531 core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Введите правильные дату/время в формате YYYY-MM-DD HH:MM."
+
+#: db/models/fields/__init__.py:635
+msgid "Enter a valid filename."
+msgstr "Укажите правильное имя файла."
+
+#: db/models/fields/__init__.py:756
+#, fuzzy
+msgid "This value must be either None, True or False."
+msgstr "Значение должно либо True, либо False."
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Пожалуйста, введите правильный %s."
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Несколько значений ID разделите запятыми."
+
+#: db/models/fields/related.py:644
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Удерживайте \"Control\" (или \"Command\" на Mac) для выбора нескольких."
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Пожалуйста, введите корректный ID для %(self)s. Значение %(value)r "
+"недопустимо."
+msgstr[1] ""
+"Пожалуйста, введите корректные ID для %(self)s. Значения %(value)r "
+"недопустимы."
+msgstr[2] ""
+"Пожалуйста, введите корректные ID для %(self)s. Значения %(value)r "
+"недопустимы."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Арабский"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Бенгальский"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "Каталанский"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "Чешский"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "Уэльский"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "Датский"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "Немецкий"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "Греческий"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "Английский"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "Испанский"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "Аргентинский испанский"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "Финский"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "Французский"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "Галльский"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "Венгерский"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "Иврит"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "Исландский"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "Итальянский"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "Японский"
+
+#: conf/global_settings.py:58
+msgid "Korean"
+msgstr "Корейский"
+
+#: conf/global_settings.py:59
+msgid "Kannada"
+msgstr "Каннада"
+
+#: conf/global_settings.py:60
+msgid "Latvian"
+msgstr "Латвийский"
+
+#: conf/global_settings.py:61
+msgid "Macedonian"
+msgstr "Македоский"
+
+#: conf/global_settings.py:62
+msgid "Dutch"
+msgstr "Голландский"
+
+#: conf/global_settings.py:63
+msgid "Norwegian"
+msgstr "Норвежский"
+
+#: conf/global_settings.py:64
+msgid "Polish"
+msgstr "Польский"
+
+#: conf/global_settings.py:65
+msgid "Portugese"
+msgstr "Португальский"
+
+#: conf/global_settings.py:66
+msgid "Brazilian"
+msgstr "Бразильский"
+
+#: conf/global_settings.py:67
+msgid "Romanian"
+msgstr "Румынский"
+
+#: conf/global_settings.py:68
+msgid "Russian"
+msgstr "Русский"
+
+#: conf/global_settings.py:69
+msgid "Slovak"
+msgstr "Словацкий"
+
+#: conf/global_settings.py:70
+msgid "Slovenian"
+msgstr "Словенский"
+
+#: conf/global_settings.py:71
+msgid "Serbian"
+msgstr "Сербский"
+
+#: conf/global_settings.py:72
+msgid "Swedish"
+msgstr "Шведский"
+
+#: conf/global_settings.py:73
+msgid "Tamil"
+msgstr "Тамиль"
+
+#: conf/global_settings.py:74
+msgid "Telugu"
+msgstr "Телугу"
+
+#: conf/global_settings.py:75
+msgid "Turkish"
+msgstr "Турецкий"
+
+#: conf/global_settings.py:76
+msgid "Ukrainian"
+msgstr "Украинский"
+
+#: conf/global_settings.py:77
+msgid "Simplified Chinese"
+msgstr "Упрощенный китайский"
+
+#: conf/global_settings.py:78
+msgid "Traditional Chinese"
+msgstr "Традиционный китайский"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Значение должно состоять только из букв, цифр и знаков подчеркивания."
+
+#: core/validators.py:68
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Значение должно состоять только из букв, цифр, знаков подчеркивания, тире "
+"или наклонной черты вправо."
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Значение должно состоять только из букв, цифр, знаков подчеркивания "
+"или тире."
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "Заглавные буквы недопустимы."
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "Строчные буквы здесь недопустимы."
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "Введите цифры, разделённые запятыми."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Введите правильные адреса электронной почты, разделённые запятыми."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "Пожалуйста, введите правильный IP-адрес."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "Пустое значение здесь недопустимо."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Нецифровые символы здесь недопустимы."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "Это значение не может быть составлено только из цифр."
+
+#: core/validators.py:120 newforms/fields.py:128
+msgid "Enter a whole number."
+msgstr "Введите целое число."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "Здесь разрешены только алфавитные символы."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr "Год должен быть больше или равен 1900"
+
+#: core/validators.py:143
+msgid "Invalid date: %s"
+msgstr "неправильная дата: %s"
+
+#: core/validators.py:153
+msgid "Enter a valid time in HH:MM format."
+msgstr "Введите правильное время в формате HH:MM."
+
+#: core/validators.py:162 newforms/fields.py:273
+msgid "Enter a valid e-mail address."
+msgstr "Укажите правильный адрес электронной почты."
+
+#: core/validators.py:178
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Загрузите реальное изображение. Файл, который вы загрузили, не является "
+"изображением или был поврежден."
+
+#: core/validators.py:185
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s не указывает на реальное изображение."
+
+#: core/validators.py:189
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Телефонные номера должен быть в формате XXX-XXX-XXXX. \"%s\" неверен."
+
+#: core/validators.py:197
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s не указывает на реальное видео QuickTime."
+
+#: core/validators.py:201
+msgid "A valid URL is required."
+msgstr "Правильный URL обязателен."
+
+#: core/validators.py:215
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Правильный HTML обязателен. Специфичные ошибки:\n"
+"%s"
+
+#: core/validators.py:222
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Неверный формат XML: %s"
+
+#: core/validators.py:239
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Неверный URL: %s"
+
+#: core/validators.py:244 core/validators.py:246
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s - сломанная ссылка."
+
+#: core/validators.py:252
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Введите правильную аббревиатуру штата США."
+
+#: core/validators.py:266
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Следите за своими словами! Слово %s здесь запрещено."
+msgstr[1] "Следите за своими словами! Слова %s здесь запрещены."
+msgstr[2] "Следите за своими словами! Слова %s здесь запрещены."
+
+#: core/validators.py:273
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Это поле должно совпадать с полем '%s'."
+
+#: core/validators.py:292
+msgid "Please enter something for at least one field."
+msgstr "Пожалуйста, заполните хотя бы одно поле."
+
+#: core/validators.py:301 core/validators.py:312
+msgid "Please enter both fields or leave them both empty."
+msgstr "Пожалуйста, заполните оба поля или оставьте их оба пустыми."
+
+#: core/validators.py:320
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Это поле должно быть заполнено, если %(field)s равно %(value)s"
+
+#: core/validators.py:333
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Это поле должно быть заполнено, если %(field)s не равно %(value)s"
+
+#: core/validators.py:352
+msgid "Duplicate values are not allowed."
+msgstr "Двойные значения запрещены."
+
+#: core/validators.py:367
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Это значение должно быть больше %(lower)s и меньше %(upper)s."
+
+#: core/validators.py:369
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Это значение должно быть не меньше %s."
+
+#: core/validators.py:371
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Это значение не должно быть больше %s."
+
+#: core/validators.py:407
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Это значение должно быть степенью %s."
+
+#: core/validators.py:418
+msgid "Please enter a valid decimal number."
+msgstr "Пожалуйста, введите корректное десятичное число."
+
+#: core/validators.py:422
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+"Пожалуйста, введите корректное десятичное число максимально с %s знаком."
+msgstr[1] ""
+"Пожалуйста, введите корректное десятичное число максимально с %s знаками."
+msgstr[2] ""
+"Пожалуйста, введите корректное десятичное число максимально с %s знаками."
+
+#: core/validators.py:425
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Пожалуйста, введите корректное десятичное число с целой частью из  %s знака."
+msgstr[1] ""
+"Пожалуйста, введите корректное десятичное число с целой частью из %s знаков."
+msgstr[2] ""
+"Пожалуйста, введите корректное десятичное число с целой частью из %s знаков."
+
+#: core/validators.py:428
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Пожалуйста, введите корректное десятичное число максимально с %s знаком "
+"после запятой."
+msgstr[1] ""
+"Пожалуйста, введите корректное десятичное число максимально с %s знаками "
+"после запятой."
+msgstr[2] ""
+"Пожалуйста, введите корректное десятичное число максимально с %s знаками "
+"после запятой."
+
+#: core/validators.py:438
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Убедитесь, что загруженный файл не меньше %s байт."
+
+#: core/validators.py:439
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Убедитесь, что загруженный файл не больше %s байт."
+
+#: core/validators.py:456
+msgid "The format for this field is wrong."
+msgstr "Формат этого поля неверен."
+
+#: core/validators.py:471
+msgid "This field is invalid."
+msgstr "Это поле неверно."
+
+#: core/validators.py:507
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Невозможно получить ничего с %s."
+
+#: core/validators.py:510
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s вернул неверный заголовок Content-Type '%(contenttype)s'."
+
+#: core/validators.py:543
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Пожалуйста, закройте незакрытый тэг %(tag)s на строке %(line)s. (Строка "
+"начинается с \"%(start)s\".)"
+
+#: core/validators.py:547
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Что-то из текста, начинающегося на строке %(line)s, недопустимо в том "
+"контексте. (Строка начинается с \"%(start)s\".)"
+
+#: core/validators.py:552
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" на строке %(line)s - неправильный атрибут. (Строка начинается с "
+"\"%(start)s\".)"
+
+#: core/validators.py:557
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" на строке %(line)s - неправильный тег. (Строка начинается с \"%"
+"(start)s\".)"
+
+#: core/validators.py:561
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"В теге на строке %(line)s не хватает одного или более обязательных "
+"атрибутов. (Строка начинается с \"%(start)s\".)"
+
+#: core/validators.py:566
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Атрибут \"%(attr)s\" на строке %(line)s имеет недопустимое значение. (Строка "
+"начинается с \"%(start)s\".)"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "Объект %(verbose_name)s был успешно создан."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Объект %(verbose_name)s был успешно изменен."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "Объект %(verbose_name)s был успешно удален."
+
+#: newforms/models.py:165 newforms/fields.py:366
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Выберите корректный вариант. Вашего варианта нет среди допустимых"
+
+#: newforms/models.py:182 newforms/fields.py:382 newforms/fields.py:458
+msgid "Enter a list of values."
+msgstr "Укажите список занчений."
+
+#: newforms/models.py:188 newforms/fields.py:391
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Выберите корректный вариант.  %s нет среди допустимых значений."
+
+#: newforms/fields.py:103 newforms/fields.py:258
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "Убедитесь, что значение содержит менее %d символов."
+
+#: newforms/fields.py:105 newforms/fields.py:260
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "Убедитесь, что значение содержит более %d символов."
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Убедитесь что это значение меньше или равно %s."
+
+#: newforms/fields.py:132
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Убедитесь что это значение больше или равно %s"
+
+#: newforms/fields.py:166
+msgid "Enter a valid date."
+msgstr "Укажите дату  правильно."
+
+#: newforms/fields.py:194
+msgid "Enter a valid time."
+msgstr "Укажите время  правильно."
+
+#: newforms/fields.py:230
+msgid "Enter a valid date/time."
+msgstr "Укажите дату и время  правильно."
+
+#: newforms/fields.py:244
+msgid "Enter a valid value."
+msgstr "Укажите значение правильно"
+
+#: newforms/fields.py:291 newforms/fields.py:313
+msgid "Enter a valid URL."
+msgstr "Укажите правильный URL"
+
+#: newforms/fields.py:315
+msgid "This URL appears to be a broken link."
+msgstr "Этот URL похоже сломанная ссылка."
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "st"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "nd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f миллион"
+msgstr[1] "%(value).1f миллиона"
+msgstr[2] "%(value).1f миллионов"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f миллиард"
+msgstr[1] "%(value).1f миллиарда"
+msgstr[2] "%(value).1f миллиардов"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f триллион"
+msgstr[1] "%(value).1f триллиона"
+msgstr[2] "%(value).1f триллионов"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "один"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "два"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "три"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "четыре"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "пять"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "шесть"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "семь"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "восемь"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "девять"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "Перенаправить от"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Это должен быть абсолютный путь без доменного имени. Пример: '/events/"
+"search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "Перенаправить на"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Это должен быть абсолютный путь (как выше) или полный URL, начинающийся с "
+"'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "Перенаправление"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "Перенаправления"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "ID объекта"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "Заголовок"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "Комментарий"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "рейтинг №1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "рейтинг №2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "рейтинг №3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "рейтинг №4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "рейтинг №5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "рейтинг №6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "рейтинг №7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "рейтинг №8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "Допустимый рейтинг"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "Дата/время добавления"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "Публичный"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "IP-адрес"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "Удален"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Отметьте, если комментарий нежелателен. Сообщение \"Этот комментарий был "
+"удалён\" будет показано взамен."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "Комментарии"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Объект содержимого"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Добавил %(user)s %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "Имя человека"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "IP-адрес:"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "Одобрено администрацией"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "Свободный комментарий"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "Свободные комментарии"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "Счёт"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "Время счёта"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "Кармический счёт"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "Кармические счета"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d рейтинг пользователя %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Этот комментарий был отмечен пользователем %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "Дата отметки"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "Отметка пользователя"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "Отметки пользователя"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Отмечен %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "Дата удаления"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "Удаление модератором"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "Удаления модератором"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Удаления модератора %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Анонимный пользователь не может голосовать"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "Неверный ID комментария"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Нельзя голосовать за себя"
+
+#: contrib/comments/views/comments.py:27
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"Этот рейтинг обязателен, так как вы уже ввели как минимум еще один рейтинг."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Этот комментарий сделан пользователем, который отправил меньше %(count)s "
+"комментария:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Этот комментарий сделан пользователем, который отправил меньше %(count)s "
+"комментариев:\n"
+"\n"
+"%(text)s"
+msgstr[2] ""
+"Этот комментарий сделан пользователем, который отправил меньше %(count)s "
+"комментариев:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Коментарий был добавлен недоверенным пользователем:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Разрешены только POSTы"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Одно или больше обязательных полей не были заполнены"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Кто-то вмешался в форму комментария (нарушение безопасности)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Форма комментария имела неверный параметр 'target' -- ID объекта неверен"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Форма комментария не предоставила ни 'предпросмотр', ни 'отправить'"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Имя пользователя:"
+
+#: contrib/comments/templates/comments/freeform.html:5
+#: contrib/comments/templates/comments/form.html:28
+msgid "Comment:"
+msgstr "Комментарий:"
+
+#: contrib/comments/templates/comments/freeform.html:10
+#: contrib/comments/templates/comments/form.html:35
+msgid "Preview comment"
+msgstr "Предпросмотр комментария"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Имя:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "Выход"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Пароль:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Забыли свой пароль?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Рейтинги"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Обязательное"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Необязательное"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Добавить фотографию"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "Доменное имя"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "Выводимое имя"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "Сайт"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "Сайты"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>По %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Все"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "За любую дату"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Сегодня"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Последние 7 дней"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "В этом месяце"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "В этом году"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "Время действия"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "id обьекта"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "Представление обьекта"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "Отметка действия"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "Изменить сообщение"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "Журнальная запись"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "Журнальные записи"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "Все даты"
+
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Пожалуйста, введите верные имя пользователя и пароль. Помните, оба поля "
+"чувствительны к регистру."
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Вход"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Пожалуйста, войдите снова, поскольку ваша сессия устарела. Не беспокойтесь: "
+"введенные вами данные сохранены."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Похоже, ваш броузер не настроен на прием cookies. Пожалуйства, включите "
+"cookie, перезагрузите страницу и попытайтесь снова."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Имя пользователя не может включать символ '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Ваш адрес электронной почты не является вашим именем пользователя. "
+"Попробуйте '%s' взамен."
+
+#: contrib/admin/views/auth.py:19 contrib/admin/views/main.py:257
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" был успешно добавлен."
+
+#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:261
+#: contrib/admin/views/main.py:347
+msgid "You may edit it again below."
+msgstr "Ниже можно снова редактировать его"
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "Добавить пользователя"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "Пароль успешно обновлен"
+
+#: contrib/admin/views/auth.py:64
+msgid "Change password: %s"
+msgstr "Изменение пароля: %s"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Администрирование сайта"
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Вы можете добавить %s внизу."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "Добавить %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "Добавлен %s."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "Изменен %s."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "Удален %s."
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Ни одно поле не изменено."
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" был успешно изменен."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"%(name)s \"%(obj)s\" был успешно добавлен. Ниже можно снова редактировать "
+"его."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "Изменить %s"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Один или более  %(fieldname)s в %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Один или более %(fieldname)s в %(name)s:"
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" был успешно удален."
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "Вы уверены?"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "История изменений: %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "Выберите %s"
+
+#: contrib/admin/views/main.py:573
+msgid "Select %s to change"
+msgstr "Выберите %s для изменения"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "Ошибка базы данных"
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "Тэг:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "Фильтр:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "view:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "Приложение %r не найдено"
+
+#: contrib/admin/views/doc.py:171
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Модель %(name) не найдена в приложении %(label)r"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "зависимый `%(label)s.%(type)s` объект"
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "модель:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "зависимые `%(label)s.%(name)s` объекты"
+
+#: contrib/admin/views/doc.py:219
+msgid "all %s"
+msgstr "все %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "количество %s"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Поля для %s объектов"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "Целое"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Логическое (True или False)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Строка (до %(maxlength)s символов)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Целые, разделенные запятыми"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Дата (без указания времени)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Дата (с указанием времени)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "Адрес электронной почты"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Путь к файлу"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "Десятичное число"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Логическое (True, False или None)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "Связь с родительской моделью"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Номер телефона"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Текст"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Время"
+
+#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "Штат США (две заглавные буквы)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "Текст XML"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s не похож на объект urlpattern"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Современно:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Изменить:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Дата:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Время:"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Документация"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "Изменение пароля"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Начало"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "История"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Дата/время"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Пользователь"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Действие"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j N Y H:i"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Данный обьект не имеет истории изменений. Возможно, он был добавлен не через "
+"данный административный сайт."
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Добавить %(name)s"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " По %(filter_title)s "
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Ошибка сервера"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Ошибка сервера (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Ошибка сервера <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Произошла ошибка. Отчет об ошибке отправлен администраторам сайта по "
+"электронной почте, ошибка должна быть вскоре исправлена. Благодарим вас на "
+"терпение и помощь."
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Неправильно настроена ваша даза данных. Убедитесь в том что соответсвующие  "
+"таблицы базы данных были созданы, а также в что что база данных читаема для "
+"соответсвующим пользователем."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Вперёд"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 результат"
+msgstr[1] "%(counter)s результата"
+msgstr[2] "%(counter)s результатов"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s всего"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Показать всё"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Административный сайт Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Администрирование Django"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Фильтр"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Страница не найдена"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "К сожалению, запрашиваемая вами страница не найдена."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Модели доступны в приложении %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Добавить"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Изменить"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Недостаточно прав для редактирования."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Последние действия"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Мои действия"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Недоступно"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Смотреть сайт"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Пожалуйста, исправьте ошибку ниже."
+msgstr[1] "Пожалуйста, исправьте ошибки ниже."
+msgstr[2] "Пожалуйста, исправьте ошибки ниже."
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Очерёдность"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Порядок:"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Добро пожаловать,"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Удалить"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#,  python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Удаление %(object_name)s '%(escaped_object)s' приведет к удалению  "
+"связанных объектов, но ваша учетная запись не имеет прав для удаления "
+"следующих типов объектов:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#,  python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Вы уверены, что хотите удалить %(object_name)s \"%(escaped_object)s\"? Все следующие "
+"связанные объекты также будут удалены:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Да, я уверен"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Сохранить как новое"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Сохранить и добавить другое"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Сохранить и продолжить редактирование"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Сохранить"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Введите новый пароль для пользователя <strong>%(username)s</strong>"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "Пароль"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "Пароль (еще раз)"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "Введите тот же пароль что и сверху, для верификации"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Сначала введите имя пользователя и пароль. Затем вы сможете "
+"редактировать больше опций"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Имя"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Изменение пароля"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Пароль успешно обновлен"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Ваш пароль был изменен."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Сброс пароля"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Забыли пароль? Введите свой адрес электронной почты ниже, мы очистим ваш "
+"старый пароль и вышлем вам по e-mail новый."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Адрес электронной почты:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Очистка пароля"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Благодарим за проведенное вами сегодня время на этом сайте."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Повторный вход"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Успешная очистка пароля"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Мы отправили новый пароль по указанному вами адресу электронной почты. "
+"Вскоре вы его получите."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"В целях безопасности, пожалуйста, введите свой старый пароль, затем - новый "
+"пароль дважды, с тем, чтобы мы могли убедиться в правильности написания."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Старый пароль:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Новый пароль:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Подтвердите пароль:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Изменение пароля"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Вы получили это сообщение, потому что была запрошена очистка пароля"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "Для вашей учетной записи на %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Ваш новый пароль: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Вы всегда можете изменить этот пароль, перейдя на страницу:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Ваше имя, на случай если вы его забыли:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Спасибо за посещение нашего сайта!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Команда сайта %(site_name)s"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Закладки"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Закладки документации"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Для установки закладок перетащите ссылку к себе на панель\n"
+"закладок или щелкните правой кнопкой мыши по ссылке и добавьте ее в "
+"закладки. Теперь у вас есть возможность\n"
+"выбрать закладку с любой страницы сайта. Обратите внимание: некоторые из "
+"этих\n"
+"закладок требуют, чтобы вы просматривали сайт с компьютера, определенного\n"
+"как \"внутренний\" (уточните у своего системного администратора, если не "
+"уверены, является ли\n"
+"ваш компьютер \"внутренним\").</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Документация по данной странице"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Перенаправляет вас с любой страницы к документации view, который генерирует "
+"эту страницу."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Показать ID обьекта"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Показывает тип наполнения и уникальный ID для страниц, представляющих один "
+"объект."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Редактировать данный обьект (в текущем окне)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Перейдет на административную страницу для страниц, представляющих один "
+"объект."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Редактировать данный обьект (в новом окне)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "То же что и выше, но откроет административную страницу в новом окне."
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "имя класса python модуля"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "Тип содержимого"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "Типы содержимого"
+
+#: contrib/auth/views.py:40
+msgid "Logged out"
+msgstr "Не авторизован"
+
+#: contrib/auth/models.py:44 contrib/auth/models.py:64
+msgid "name"
+msgstr "Имя"
+
+#: contrib/auth/models.py:46
+msgid "codename"
+msgstr "Кодовое название"
+
+#: contrib/auth/models.py:49
+msgid "permission"
+msgstr "Право"
+
+#: contrib/auth/models.py:50 contrib/auth/models.py:65
+msgid "permissions"
+msgstr "Права"
+
+#: contrib/auth/models.py:68
+msgid "group"
+msgstr "Группа"
+
+#: contrib/auth/models.py:69 contrib/auth/models.py:109
+msgid "groups"
+msgstr "Группы"
+
+#: contrib/auth/models.py:99
+msgid "username"
+msgstr "Имя пользователя"
+
+#: contrib/auth/models.py:99
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Необходимое поле. 30  символов или менее. Используйте только цифры, буквы "
+"и нижнее подчеркивание."
+
+#: contrib/auth/models.py:100
+msgid "first name"
+msgstr "Имя"
+
+#: contrib/auth/models.py:101
+msgid "last name"
+msgstr "Фамилия"
+
+#: contrib/auth/models.py:102
+msgid "e-mail address"
+msgstr "Адрес электронной почты"
+
+#: contrib/auth/models.py:103
+msgid "password"
+msgstr "Пароль"
+
+#: contrib/auth/models.py:103
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Используйте '[algo]$[salt]$[hexdigest]' или <a href=\"password/\">change "
+"форма смены пароля</a>."
+
+#: contrib/auth/models.py:104
+msgid "staff status"
+msgstr "Статус персонала"
+
+#: contrib/auth/models.py:104
+msgid "Designates whether the user can log into this admin site."
+msgstr "Отметьте, если пользователь может входить в админ. часть сайта."
+
+#: contrib/auth/models.py:105
+msgid "active"
+msgstr "Активный"
+
+#: contrib/auth/models.py:105
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Отметьте, если пользователь может входить в админ. часть сайта. Убирайте эту "
+"отметку вместо удаления аккаунта."
+
+#: contrib/auth/models.py:106
+msgid "superuser status"
+msgstr "Статус суперпользователя"
+
+#: contrib/auth/models.py:106
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "Указывает, что пользователь имеет все права без явного их назначения"
+
+#: contrib/auth/models.py:107
+msgid "last login"
+msgstr "Последний вход"
+
+#: contrib/auth/models.py:108
+msgid "date joined"
+msgstr "Дата регистрации"
+
+#: contrib/auth/models.py:110
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"В добавление к правам, присвоенным вручную, этот пользователь получит все "
+"права групп, к которым он принадлежит."
+
+#: contrib/auth/models.py:111
+msgid "user permissions"
+msgstr "права пользователя"
+
+#: contrib/auth/models.py:115
+msgid "user"
+msgstr "Пользователь"
+
+#: contrib/auth/models.py:116
+msgid "users"
+msgstr "Пользователи"
+
+#: contrib/auth/models.py:122
+msgid "Personal info"
+msgstr "Персональная информация"
+
+#: contrib/auth/models.py:123
+msgid "Permissions"
+msgstr "Права"
+
+#: contrib/auth/models.py:124
+msgid "Important dates"
+msgstr "Важные даты"
+
+#: contrib/auth/models.py:125
+msgid "Groups"
+msgstr "Группы"
+
+#: contrib/auth/models.py:269
+msgid "message"
+msgstr "Сообщение"
+
+#: contrib/auth/models.py:282
+msgid "AnonymousUser"
+msgstr "Анонимный пользователь"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Два поля с паролями не соответствуют"
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Пользователь с этим именем уже существует."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "У вашего браузера не включены cookies. Cookies необходимы для входа."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Это учетная запись не активна"
+
+#: contrib/auth/forms.py:85
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Этот адрес электронной почты не связан ни с одной учетной записью. Вы уверены "
+"что вы зарегистрированы?"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Два поля 'Новый пароль' не одинаковы."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Ваш старый пароль введен неправильно. пожалуйста введите правильно."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "Укажите почтовый код. Необходим пробел между двумя частями почтового кода"
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Введите Zip код в формате XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Телефонные номера должен быть в формате XX-XXXX-XXXX. "
+
+#: contrib/localflavor/br/forms.py:72
+msgid "This field requires only numbers."
+msgstr "Это поле требует только числа."
+
+#: contrib/localflavor/br/forms.py:74
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Это поле требует 11 цифр или 14 символов."
+
+#: contrib/localflavor/br/forms.py:84
+msgid "Invalid CPF number."
+msgstr "неправильный CPF номер"
+
+#: contrib/localflavor/br/forms.py:106
+msgid "This field requires at least 14 digits"
+msgstr "Это поле требует не меньше 14 цифр."
+
+#: contrib/localflavor/br/forms.py:116
+msgid "Invalid CNPJ number."
+msgstr "Неправильный CNPJ номер."
+
+#: contrib/localflavor/fr/forms.py:17 contrib/localflavor/de/forms.py:16
+#: contrib/localflavor/fi/forms.py:14
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Укажите zip код в формате XXXXX."
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Укажите почтовый код в формате XXXXXXX или XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Хоккаидо"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Аомори"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Иватэ"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Мияги"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Акита"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Ямагата"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Фукушима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ибакари"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Точиги"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Гунма"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Сайтама"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Чиба"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Токио"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Канагава"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Яманаши"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Нагано"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Ниигата"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Тояма"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ишикава"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Фукуй"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Гифу"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Шизуока"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Айчи"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Ми"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Шига"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Киото"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Осака"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Хиого"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Нара"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Вакаяма"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Тоттори"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Шимане"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Окаяма"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Хиросима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Ямагучи"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Токушима"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Кагава"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ехиме"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Кочи"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Фукуока"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Сага"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Нагасаки"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Миязаки"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Кагосима"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Окинава"
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "Укажите 4 цифровой почтовый код."
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+#, fuzzy
+msgid "Berlin"
+msgstr "Бразильский"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+#, fuzzy
+msgid "Hamburg"
+msgstr "авг"
+
+#: contrib/localflavor/de/de_states.py:11
+#, fuzzy
+msgid "Hessen"
+msgstr "Сообщение"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:60
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Укажите правильный zip код"
+
+#: contrib/localflavor/it/forms.py:41
+#, fuzzy
+msgid "Enter a valid Social Security number."
+msgstr "Укажите правильное имя файла."
+
+#: contrib/localflavor/it/forms.py:68
+#, fuzzy
+msgid "Enter a valid VAT number."
+msgstr "Укажите правильное имя файла."
+
+#: contrib/localflavor/no/forms.py:15 contrib/localflavor/ch/forms.py:18
+#, fuzzy
+msgid "Enter a zip code in the format XXXX."
+msgstr "Введите правильное время в формате HH:MM."
+
+#: contrib/localflavor/no/forms.py:36
+#, fuzzy
+msgid "Enter a valid Norwegian social security number."
+msgstr "Пожалуйста, введите корректное десятичное число."
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+#, fuzzy
+msgid "Enter a valid Finnish social security number."
+msgstr "Укажите правильное имя файла."
+
+#: contrib/localflavor/is_/forms.py:16
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Укажите правильный исландский идентификатор. Формат XXXXXX-XXXX"
+
+#: contrib/localflavor/is_/forms.py:30
+msgid "The Icelandic identification number is not valid."
+msgstr "Исландский идентификационный номер не правилен"
+
+#: contrib/localflavor/cl/forms.py:21
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:26
+#, fuzzy
+msgid "Enter valid a Chilean RUT"
+msgstr "Укажите правильное имя файла."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+#, fuzzy
+msgid "Berne"
+msgstr "Имя пользователя"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+#, fuzzy
+msgid "Glarus"
+msgstr "Группы"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+#, fuzzy
+msgid "Lucerne"
+msgstr "Имя пользователя"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+#, fuzzy
+msgid "Thurgau"
+msgstr "Четверг"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+#, fuzzy
+msgid "Zug"
+msgstr "авг"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:90
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "Ключ сессии"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "Данные сессии"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "Дата окончания"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "Сессия"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "Сессии"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Пример: '/about/contact/'. Убедитесь что вставили завершающий слэш."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "Заголовок"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "Содержимое"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "Активировать комментарии"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "Имя шаблона"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Пример: 'flatpages/contact_page'. Если этот файл не присутствует, система "
+"будет использовать 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "Регистрация обязательна"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Если отмечено, только вошедшие пользователи смогут видеть страницу."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "Простая страница"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "Простые страницы"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Понедельник"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Вторник"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Среда"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Четверг"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Пятница"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Суббота"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Воскресенье"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Январь"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Февраль"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "Март"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "Апрель"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "Май"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "Июнь"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "Июль"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Август"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Сентябрь"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Октябрь"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Ноябрь"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Декабрь"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "янв"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "фев"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "мар"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "апр"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "май"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "июнь"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "июль"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "авг"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "сен"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "окт"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "нояб"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "дек"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "янв."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "фев."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "авг."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "сен."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "окт."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "нояб."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "дек."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "год"
+msgstr[1] "года"
+msgstr[2] "лет"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "месяц"
+msgstr[1] "месяца"
+msgstr[2] "месяцев"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "неделя"
+msgstr[1] "недели"
+msgstr[2] "недель"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "день"
+msgstr[1] "дня"
+msgstr[2] "дней"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "час"
+msgstr[1] "часа"
+msgstr[2] "часов"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "минута"
+msgstr[1] "минуты"
+msgstr[2] "минут"
+
+#: utils/timesince.py:40
+#, python-format
+msgid "%d milliseconds"
+msgstr "%d милисекунд"
+
+#: utils/timesince.py:41
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr ""
+
+#: utils/timesince.py:47
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ""
+
+#: utils/dateformat.py:40
+msgid "p.m."
+msgstr ""
+
+#: utils/dateformat.py:41
+msgid "a.m."
+msgstr ""
+
+#: utils/dateformat.py:46
+msgid "PM"
+msgstr ""
+
+#: utils/dateformat.py:47
+msgid "AM"
+msgstr ""
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "полночь"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "полдень"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "d.m.Y H:i"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr "d.m.Y"
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "да,нет,может быть"
+
+#: template/defaultfilters.py:520
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d байт"
+msgstr[1] "%(size)d байта"
+msgstr[2] "%(size)d байт"
+
+#: template/defaultfilters.py:522
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f Кб"
+
+#: template/defaultfilters.py:524
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f Мб"
+
+#: template/defaultfilters.py:525
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f Гб"
+
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr "Вы <a href=\"/password_reset/\">забыли пароль</a>?"
+
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Используйте '[algo]$[salt]$[hexdigest]'"
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Подтверждение пароля"
diff --git a/webapp/django/conf/locale/ru/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/ru/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..a57a57e
--- /dev/null
+++ b/webapp/django/conf/locale/ru/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ru/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/ru/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..2e032c2
--- /dev/null
+++ b/webapp/django/conf/locale/ru/LC_MESSAGES/djangojs.po
@@ -0,0 +1,111 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-03-01 17:11+0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Доступные %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Выбрать все"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Добавить"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Удалить"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Выбранные %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Выберите и нажмите "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Очистить всё"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь "
+"Декабрь"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "В П В С Ч П С"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Сейчас"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Часы"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Выберите время"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Полночь"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6 часов"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "Полдень"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "Отмена"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Сегодня"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Календарь"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Вчера"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Завтра"
diff --git a/webapp/django/conf/locale/sk/LC_MESSAGES/django.mo b/webapp/django/conf/locale/sk/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..b52cb26
--- /dev/null
+++ b/webapp/django/conf/locale/sk/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/sk/LC_MESSAGES/django.po b/webapp/django/conf/locale/sk/LC_MESSAGES/django.po
new file mode 100644
index 0000000..1e5bf89
--- /dev/null
+++ b/webapp/django/conf/locale/sk/LC_MESSAGES/django.po
@@ -0,0 +1,3385 @@
+# translation of django.po to Slovak
+#
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-07-24 09:56-0400\n"
+"PO-Revision-Date: 2007-06-22 20:54-0400\n"
+"Last-Translator: Vlado <vlado@labath.org>\n"
+"Language-Team: Slovak <sk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: oldforms/__init__.py:369 db/models/fields/__init__.py:152
+#: db/models/fields/__init__.py:309 db/models/fields/__init__.py:706
+#: db/models/fields/__init__.py:717 newforms/models.py:187
+#: newforms/fields.py:92 newforms/fields.py:440 newforms/fields.py:516
+#: newforms/fields.py:527
+msgid "This field is required."
+msgstr "Toto pole je povinné."
+
+#: oldforms/__init__.py:404
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Uisite sa, že text je kratší ako %s znak."
+msgstr[1] "Uisite sa, že text je kratší ako %s znakov."
+
+#: oldforms/__init__.py:409
+msgid "Line breaks are not allowed here."
+msgstr "Zalomenia riadkov nie sú povolené."
+
+#: oldforms/__init__.py:507 oldforms/__init__.py:581 oldforms/__init__.py:620
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Vyberte platnú možnosť; '%(data)s' nie je v %(choices)s."
+
+#: oldforms/__init__.py:587 newforms/widgets.py:181
+#: contrib/admin/filterspecs.py:152
+msgid "Unknown"
+msgstr "Neznámy"
+
+#: oldforms/__init__.py:587 newforms/widgets.py:181
+#: contrib/admin/filterspecs.py:145
+msgid "Yes"
+msgstr "Áno"
+
+#: oldforms/__init__.py:587 newforms/widgets.py:181
+#: contrib/admin/filterspecs.py:145
+msgid "No"
+msgstr "Nie"
+
+#: oldforms/__init__.py:682 core/validators.py:181 core/validators.py:461
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Súbor nebol odoslaný. Skontrolujte atribút 'enctype' encoding vo formulári."
+
+#: oldforms/__init__.py:684
+msgid "The submitted file is empty."
+msgstr "Odoslaný súbor je prázdný."
+
+#: oldforms/__init__.py:740
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Zadajte celé číslo s hodnotou medzi -32768 a 32767."
+
+#: oldforms/__init__.py:750
+msgid "Enter a positive number."
+msgstr "Zadajte celé kladné číslo."
+
+#: oldforms/__init__.py:760
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Zadajte celé číslo s hodnotou medzi 0 a 32767."
+
+#: db/models/manipulators.py:309
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s s %(type)s už existuje pre prvok  %(field)s."
+
+#: db/models/manipulators.py:310 contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+msgid "and"
+msgstr "a"
+
+#: db/models/fields/__init__.py:48
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s s %(fieldname)s už existuje."
+
+#: db/models/fields/__init__.py:404
+msgid "This value must be an integer."
+msgstr "Táto hodnota musí byť celé číslo."
+
+#: db/models/fields/__init__.py:439
+msgid "This value must be either True or False."
+msgstr "Táto hodnota musí byť True alebo False."
+
+#: db/models/fields/__init__.py:460
+msgid "This field cannot be null."
+msgstr "Toto pole nemôže obsahovať null."
+
+#: db/models/fields/__init__.py:494 core/validators.py:155
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Zadajte platný dátum vo formáte RRRR-MM-DD."
+
+#: db/models/fields/__init__.py:563 core/validators.py:164
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Zadajte platný dátum a čas vo formáte RRRR-MM-DD HH:MM."
+
+#: db/models/fields/__init__.py:623
+msgid "This value must be a decimal number."
+msgstr "Táto hodnota musí byť desiatkove číslo."
+
+#: db/models/fields/__init__.py:726
+msgid "Enter a valid filename."
+msgstr "Zadajte platný názov súboru."
+
+#: db/models/fields/__init__.py:851
+msgid "This value must be either None, True or False."
+msgstr "Táto hodnota musí byť buď None, True alebo False."
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Prosím, zadajte platné %s."
+
+#: db/models/fields/related.py:661
+msgid "Separate multiple IDs with commas."
+msgstr "Oddeľte viacnásobné ID čiarkami."
+
+#: db/models/fields/related.py:663
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Ak chcete vybrať viacero možností, podržte \"Control\" alebo \"Command\" na "
+"Mac-u."
+
+#: db/models/fields/related.py:710
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Prosím, vložte platné %(self)s ID. Hodnota %(value)r je neplatná."
+msgstr[1] ""
+"Prosím, vložte platné %(self)s ID-čka. Hodnoty %(value)r sú neplatné."
+
+#: conf/global_settings.py:38
+msgid "Arabic"
+msgstr "Arabsky"
+
+#: conf/global_settings.py:39
+msgid "Bengali"
+msgstr "Bengálsky"
+
+#: conf/global_settings.py:40
+msgid "Bulgarian"
+msgstr "Bulharský"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "Katalánsky"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "Česky"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "Welšsky"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "Dánsky"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "Nemecky"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "Grécky"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "Anglicky"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "Španielsky"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "Argentínska španielčina"
+
+#: conf/global_settings.py:50
+msgid "Persian"
+msgstr "Perzský"
+
+#: conf/global_settings.py:51
+msgid "Finnish"
+msgstr "Fínsky"
+
+#: conf/global_settings.py:52
+msgid "French"
+msgstr "Francúzsky"
+
+#: conf/global_settings.py:53
+msgid "Galician"
+msgstr "Galicijsky"
+
+#: conf/global_settings.py:54
+msgid "Hungarian"
+msgstr "Maďarsky"
+
+#: conf/global_settings.py:55
+msgid "Hebrew"
+msgstr "Hebrejsky"
+
+#: conf/global_settings.py:56
+msgid "Icelandic"
+msgstr "Islandsky"
+
+#: conf/global_settings.py:57
+msgid "Italian"
+msgstr "Taliansky"
+
+#: conf/global_settings.py:58
+msgid "Japanese"
+msgstr "Japonsky"
+
+#: conf/global_settings.py:59
+msgid "Korean"
+msgstr "Korejský"
+
+#: conf/global_settings.py:60
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:61
+msgid "Latvian"
+msgstr "Lotyšsky"
+
+#: conf/global_settings.py:62
+msgid "Macedonian"
+msgstr "Mecedónsky"
+
+#: conf/global_settings.py:63
+msgid "Dutch"
+msgstr "Holandsky"
+
+#: conf/global_settings.py:64
+msgid "Norwegian"
+msgstr "Nórsky"
+
+#: conf/global_settings.py:65
+msgid "Polish"
+msgstr "Poľsky"
+
+#: conf/global_settings.py:66
+msgid "Portugese"
+msgstr "Portugalsky"
+
+#: conf/global_settings.py:67
+msgid "Brazilian"
+msgstr "Brazílsky"
+
+#: conf/global_settings.py:68
+msgid "Romanian"
+msgstr "Rumunsky"
+
+#: conf/global_settings.py:69
+msgid "Russian"
+msgstr "Rusky"
+
+#: conf/global_settings.py:70
+msgid "Slovak"
+msgstr "Slovensky"
+
+#: conf/global_settings.py:71
+msgid "Slovenian"
+msgstr "Slovinsky"
+
+#: conf/global_settings.py:72
+msgid "Serbian"
+msgstr "Srbsky"
+
+#: conf/global_settings.py:73
+msgid "Swedish"
+msgstr "Švédsky"
+
+#: conf/global_settings.py:74
+msgid "Tamil"
+msgstr "Tamilsky"
+
+#: conf/global_settings.py:75
+msgid "Telugu"
+msgstr "Telugu"
+
+#: conf/global_settings.py:76
+msgid "Turkish"
+msgstr "Turecky"
+
+#: conf/global_settings.py:77
+msgid "Ukrainian"
+msgstr "Ukrajinsky"
+
+#: conf/global_settings.py:78
+msgid "Simplified Chinese"
+msgstr "Čínsky (zjednodušene)"
+
+#: conf/global_settings.py:79
+msgid "Traditional Chinese"
+msgstr "Čínsky (tradične)"
+
+#: core/validators.py:71
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Táto hodnota môže obsahovať len písmená, číslice a podčiarkovníky."
+
+#: core/validators.py:75
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Táto hodnota môže obsahovať len písmena, číslice, podčiarkovniky, pomlčky a "
+"lomítka."
+
+#: core/validators.py:79
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Táto hodnota môže obsahovať len písmená, číslice, počiarkovníky a pomlčky."
+
+#: core/validators.py:83
+msgid "Uppercase letters are not allowed here."
+msgstr "Veľké písmená nie sú povolené."
+
+#: core/validators.py:87
+msgid "Lowercase letters are not allowed here."
+msgstr "Malé písmena nie sú povolené."
+
+#: core/validators.py:94
+msgid "Enter only digits separated by commas."
+msgstr "Zadávajte len číslice oddelené čiarkami."
+
+#: core/validators.py:106
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Zadajte platné e-mailové adresy oddelené čiarkami."
+
+#: core/validators.py:110
+msgid "Please enter a valid IP address."
+msgstr "Prosím, zadajte platnú IP adresu."
+
+#: core/validators.py:114
+msgid "Empty values are not allowed here."
+msgstr "Prázdne hodnoty tu nie sú povolené."
+
+#: core/validators.py:118
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Iné ako numerické znaky tu nie sú povolené."
+
+#: core/validators.py:122
+msgid "This value can't be comprised solely of digits."
+msgstr "Táto hodnota nemôže byť čisto numerická."
+
+#: core/validators.py:127 newforms/fields.py:141
+msgid "Enter a whole number."
+msgstr "Zadajte celé číslo."
+
+#: core/validators.py:131
+msgid "Only alphabetical characters are allowed here."
+msgstr "Tu sú povolené len alfanumerické znaky."
+
+#: core/validators.py:146
+msgid "Year must be 1900 or later."
+msgstr "Rok musí byť 1900 alebo neskôr."
+
+#: core/validators.py:150
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Neplatný dátum: %s"
+
+#: core/validators.py:160
+msgid "Enter a valid time in HH:MM format."
+msgstr "Zadajte platný čas vo formáte HH:MM."
+
+#: core/validators.py:169 newforms/fields.py:335
+msgid "Enter a valid e-mail address."
+msgstr "Zadajte platnú e-mailovú adresu."
+
+#: core/validators.py:185
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Nahrajte platný obrázok. Súbor, ktorý ste odoslali nebol obrázkový formát "
+"alebo bol poškodený."
+
+#: core/validators.py:192
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s neodkazuje na platný obrázok."
+
+#: core/validators.py:196
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Telefónne číslo musí mať formát XXX-XXX-XXXX. Číslo \"%s\" je neplatné."
+
+#: core/validators.py:204
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s neodkazuje na platné QuickTime video."
+
+#: core/validators.py:208
+msgid "A valid URL is required."
+msgstr "Je požadovaná platná adresa URL."
+
+#: core/validators.py:222
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"HTML kód musí zodpovedať špecifikácii. Zistené chyby sú:\n"
+"%s"
+
+#: core/validators.py:229
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Chybné XML nezodpovedajúce definícii: %s"
+
+#: core/validators.py:246
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Neplatná adresa URL: %s"
+
+#: core/validators.py:251 core/validators.py:253
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Odkaz na URL %s je neplatný."
+
+#: core/validators.py:259
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Zadajte platnú skratku štátu USA."
+
+#: core/validators.py:273
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Vyjadrujte sa slušne! Slovo %s tu nie je dovolené použivať."
+msgstr[1] "Vyjadrujte sa slušne! Slová %s tu nie je dovolené použivať."
+
+#: core/validators.py:280
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Toto pole sa musí zhodovať s poľom '%s'. "
+
+#: core/validators.py:299
+msgid "Please enter something for at least one field."
+msgstr "Prosím, vyplňte aspoň jedno pole."
+
+#: core/validators.py:308 core/validators.py:319
+msgid "Please enter both fields or leave them both empty."
+msgstr "Prosím, vyplňte buď obidve polia, alebo ich nechajte prázdne."
+
+#: core/validators.py:327
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Toto pole musí byť vyplnené ak, %(field)s je %(value)s"
+
+#: core/validators.py:340
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Toto pole musí byť vyplnené, ak %(field)s nie je %(value)s"
+
+#: core/validators.py:359
+msgid "Duplicate values are not allowed."
+msgstr "Duplicitné hodnoty nie sú povolené."
+
+#: core/validators.py:374
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Táto hodnota musí byť medzi %(lower)s a %(upper)s."
+
+#: core/validators.py:376
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Táto hodnota musí byť prinajmenšom %s."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Táto hodnota musí byť väčšia ako %s."
+
+#: core/validators.py:414
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Táto hodnota musí byť mocninou  %s."
+
+#: core/validators.py:424
+msgid "Please enter a valid decimal number."
+msgstr "Prosím, vložte platné desatinné číslo. "
+
+#: core/validators.py:431
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Prosím, vložte platné desatinné číslo. "
+msgstr[1] "Prosím, vložte platné desatinné čísla. "
+
+#: core/validators.py:434
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Prosím vlož platné desatinné číslo s najviac %s číslicou. "
+msgstr[1] "Prosím vlož platné desatinné číslo s najviac %s číslicami."
+
+#: core/validators.py:437
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Prosím, vložte platné desatinné číslo s najviac %s desatinným miestom. "
+msgstr[1] ""
+"Prosím, vložte platné desatinné číslo s najviac %s desatinnými miestamy. "
+
+#: core/validators.py:445
+msgid "Please enter a valid floating point number."
+msgstr "Prosím, vložte platné  číslo s pohyblivou desatinnou čiarkou. "
+
+#: core/validators.py:454
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Uistite sa, že posielaný súbor nemá menej ako %s bajtov."
+
+#: core/validators.py:455
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Uistite sa, že posielaný súbor nemá viac ako %s bajtov."
+
+#: core/validators.py:472
+msgid "The format for this field is wrong."
+msgstr "Formát pre toto pole je chybný."
+
+#: core/validators.py:487
+msgid "This field is invalid."
+msgstr "Toto pole nie je platné."
+
+#: core/validators.py:523
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Z %s nič neprišlo."
+
+#: core/validators.py:526
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"Adresa URL %(url)s vrátila v hlavičke neplatný Content-Type '%(contenttype)"
+"s'."
+
+#: core/validators.py:559
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Prosím, uzatvorte tag %(tag)s na riadku %(line)s. (Riadok začína s \"%(start)"
+"s\".)"
+
+#: core/validators.py:563
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Text začínajúci na riadku %(line)s nie je povolený v tomto kontexte. (Riadok "
+"začína s \"%(start)s\".)"
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" na riadku %(line)s je neplatný atribút. (Riadok začína s \"%"
+"(start)s\".)"
+
+#: core/validators.py:573
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" na riadku %(line)s je neplatný tag. (Riadok začína s \"%(start)"
+"s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"V tagu na riadku %(line)s chýba jeden alebo viac atribútov. (Riadok začína s "
+"\"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Atribút \"%(attr)s\" na riadku %(line)s má neplatnú hodnotu. (Riadok začína "
+"s \"%(start)s\".)"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "Objekt %(verbose_name)s bol úspešne vytvorený."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Objekt %(verbose_name)s bol úspešne zmenený."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "Objekt %(verbose_name)s bol zmazaný."
+
+#: newforms/models.py:174 newforms/fields.py:428
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Vyberte platnú možnosť. Vybraná položka nepatrí medzi platné možnosti."
+
+#: newforms/models.py:191 newforms/fields.py:444 newforms/fields.py:520
+msgid "Enter a list of values."
+msgstr "Vložte zoznam hodnôt."
+
+#: newforms/models.py:197 newforms/fields.py:450
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Vyberte platnú možnost. %s nepatrí medzi dostupné možnosti."
+
+#: newforms/fields.py:116
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Uistite sa, že hodnota má najviac %d znakov( teraz má %(length)d)."
+
+#: newforms/fields.py:118
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Uistite sa, že zadaná hodnota nemá menej ako %d znakov ( teraz má %(length)d)."
+
+#: newforms/fields.py:143 newforms/fields.py:166 newforms/fields.py:196
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Uistite sa, že táto hodnota je menšia alebo rovná %s."
+
+#: newforms/fields.py:145 newforms/fields.py:168 newforms/fields.py:198
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Uistite sa, že hodnota je väčšia alebo rovná %s."
+
+#: newforms/fields.py:164 newforms/fields.py:191
+msgid "Enter a number."
+msgstr "Zadajte číslo."
+
+#: newforms/fields.py:200
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Zabezpečte aby výraz nemal  celkom viac ako %s číslic ."
+
+#: newforms/fields.py:202
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Zabezpečte aby nebolo viac ako %s desatinných miest."
+
+#: newforms/fields.py:204
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Zabezpečte aby nebolo viac ako %s číslic pred desatinnou bodkou."
+
+#: newforms/fields.py:237 newforms/fields.py:560
+msgid "Enter a valid date."
+msgstr "Zadajte platný dátum."
+
+#: newforms/fields.py:264 newforms/fields.py:562
+msgid "Enter a valid time."
+msgstr "Zadajte platný čas."
+
+#: newforms/fields.py:300
+msgid "Enter a valid date/time."
+msgstr "Zadajte platný dátum a čas."
+
+#: newforms/fields.py:313
+msgid "Enter a valid value."
+msgstr "Zadajte platnú hodnotu."
+
+#: newforms/fields.py:353 newforms/fields.py:375
+msgid "Enter a valid URL."
+msgstr "Zadajte platnú adresu URL."
+
+#: newforms/fields.py:377
+msgid "This URL appears to be a broken link."
+msgstr "Odkaz na URL neexistuje."
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "st"
+msgstr "st"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "nd"
+msgstr "nd"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milión"
+msgstr[1] "%(value).1f milión"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f miliarda"
+msgstr[1] "%(value).1f miliarda"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f bilión"
+msgstr[1] "%(value).1f bilión"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "jeden"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "dva"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "tri"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "štyri"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "päť"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "šesť"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "sedem"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "osem"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "deväť"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "presmerovať z"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Tu by sa mala použiť absolútna cesta bez názvu domény. Napríklad: '/events/"
+"search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "presmerovať na "
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Tu môže byť buď absolútna cesta (ako je uvedené vyššie) alebo úplná adresa "
+"URL začínajúca s 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "presmerovanie"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "presmerovania"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "ID objektu"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "nadpis"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "komentár"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "hodnotenie #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "hodnotenie #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "hodnotenie #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "hodnotenie #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "hodnotenie #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "hodnotenie #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "hodnotenie #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "hodnotenie #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "je platné hodnotenie"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "dátum a čas odoslania"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "je verejný"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:306
+msgid "IP address"
+msgstr "IP adresa"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "je vymazaný"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Zaškrtnite toto pole, ak je komentár nevhodný. Správa \"Tento komenár bol "
+"zmazaný\" sa bude zobrazovať namiesto neho."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "komentáre"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Obsah objektu"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Pridaný užívateľom %(user)s dňa %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "meno osoby"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ip adresa"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "schválený  zamestnancom"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "voľný komentár"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "voľné komentáre"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "stav skóre"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "dátum stavu skóre"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "karma"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "karma"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d od hodnotiteľa %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Tento komentár bol označený užívateľom  %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "označený dátum"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "uživateľský príznak"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "užívateľské príznaky"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr " %r návestie"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "dátum zmazania"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "zmazania moderátorom"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "Zmazané moderátorom"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Zmazanané moderátorom %r"
+
+#: contrib/comments/views/karma.py:20
+msgid "Anonymous users cannot vote"
+msgstr "Hlasovať môžu len prihlásení užívatelia"
+
+#: contrib/comments/views/karma.py:24
+msgid "Invalid comment ID"
+msgstr "Chybné ID komentára"
+
+#: contrib/comments/views/karma.py:26
+msgid "No voting for yourself"
+msgstr "Nemôžete hlasovať za samého seba"
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Toto hlasovanie je nevyhnutné, lebo súvisí s predchádzjúcou voľbou."
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Tento komentár je od užívateľa, ktorý  poslal menej ako  %(count)s "
+"príspevok\n"
+"%(text)s"
+msgstr[1] ""
+"Tento komentár je od užívateľa, ktorý poslal menej ako  %(count)s "
+"príspevkov .\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Tento komentár je od užívateľa, ktorý sa rád vyjadruje v náznakoch:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:189
+#: contrib/comments/views/comments.py:281
+msgid "Only POSTs are allowed"
+msgstr "Dovolené sú len POST"
+
+#: contrib/comments/views/comments.py:193
+#: contrib/comments/views/comments.py:285
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Jedno alebo viac povinných polí nebolo vložených"
+
+#: contrib/comments/views/comments.py:197
+#: contrib/comments/views/comments.py:287
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"Niekto sa pokúšal manipulovať s formulárom komentára (porušenie bezpečnosti)"
+
+#: contrib/comments/views/comments.py:207
+#: contrib/comments/views/comments.py:293
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Formulár komentára ma chybný 'target' parameter  -- ID objektu je neplatné"
+
+#: contrib/comments/views/comments.py:258
+#: contrib/comments/views/comments.py:322
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+"Formulár komentára neobsahuje ani jednu z možností 'náhľad' alebo 'odoslať'."
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Tvoje meno:"
+
+#: contrib/comments/templates/comments/freeform.html:5
+#: contrib/comments/templates/comments/form.html:28
+msgid "Comment:"
+msgstr "Komentár:"
+
+#: contrib/comments/templates/comments/freeform.html:10
+#: contrib/comments/templates/comments/form.html:35
+msgid "Preview comment"
+msgstr "Náhľad komentára"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Meno:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "Odhlásenie"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Heslo:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Zabudli ste heslo?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Hodnotenia"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Požadované"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Nepovinné"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Pošli foto"
+
+#: contrib/sites/models.py:15
+msgid "domain name"
+msgstr "názov domény"
+
+#: contrib/sites/models.py:16
+msgid "display name"
+msgstr "zobrazené meno"
+
+#: contrib/sites/models.py:20
+msgid "site"
+msgstr "web"
+
+#: contrib/sites/models.py:21
+msgid "sites"
+msgstr "weby"
+
+#: contrib/admin/filterspecs.py:42
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Od %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:72 contrib/admin/filterspecs.py:90
+#: contrib/admin/filterspecs.py:145 contrib/admin/filterspecs.py:171
+msgid "All"
+msgstr "Všetko"
+
+#: contrib/admin/filterspecs.py:111
+msgid "Any date"
+msgstr "Lubovoľný  dátum"
+
+#: contrib/admin/filterspecs.py:112
+msgid "Today"
+msgstr "Dnes"
+
+#: contrib/admin/filterspecs.py:115
+msgid "Past 7 days"
+msgstr "Posledných 7 dní"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This month"
+msgstr "Tento mesiac"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This year"
+msgstr "Tento rok"
+
+#: contrib/admin/models.py:17
+msgid "action time"
+msgstr "čas udalosti"
+
+#: contrib/admin/models.py:20
+msgid "object id"
+msgstr "id objektu"
+
+#: contrib/admin/models.py:21
+msgid "object repr"
+msgstr "objekt repr"
+
+#: contrib/admin/models.py:22
+msgid "action flag"
+msgstr "príznak udalosti"
+
+#: contrib/admin/models.py:23
+msgid "change message"
+msgstr "zmeniť zprávu"
+
+#: contrib/admin/models.py:26
+msgid "log entry"
+msgstr "záznam priebehu"
+
+#: contrib/admin/models.py:27
+msgid "log entries"
+msgstr "záznamy priebehu"
+
+#: contrib/admin/templatetags/admin_list.py:254
+msgid "All dates"
+msgstr "Všetky dátumy"
+
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Prosím, zadajte užívateľské meno a heslo. Rešpektujte  malé a veľké písmená."
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Prihlásenie"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Vaša session vypršala. Prosím, príhlaste sa znovu. Nemusíte sa obávať, vaše "
+"údaje boli uchované."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Vyzerá to tak, že váš prehliadač nemá povolené cookies. Prosím, povoľte si "
+"cookies a skúste znova načítať stránku."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Užívateľské meno nemože obsahovať znak '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Vaša e-mailová adresa nie je užívateľským menom. Skúste použiť meno '%s'."
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Objekt  %(name)s \"%(obj)s\" bol úspešne pridaný."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:268
+#: contrib/admin/views/main.py:354
+msgid "You may edit it again below."
+msgstr "Môžete pokračovať v zmenách."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Pridať užívateľa"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Heslo bolo úspešne zmenené."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Zmeniť heslo: %s"
+
+#: contrib/admin/views/main.py:230
+msgid "Site administration"
+msgstr "Administrácia"
+
+#: contrib/admin/views/main.py:278 contrib/admin/views/main.py:363
+#, python-format
+msgid "You may add another %s below."
+msgstr "Môžete pokračovať v pridávaní ďaľších %s."
+
+#: contrib/admin/views/main.py:296
+#, python-format
+msgid "Add %s"
+msgstr "Pridaj %s"
+
+#: contrib/admin/views/main.py:342
+#, python-format
+msgid "Added %s."
+msgstr "Bol pridaný %s."
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Changed %s."
+msgstr "Bol zmenený %s"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Deleted %s."
+msgstr "Bol vymazaný %s."
+
+#: contrib/admin/views/main.py:349
+msgid "No fields changed."
+msgstr "Polia neboli zmenené."
+
+#: contrib/admin/views/main.py:352
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Objekt %(name)s \"%(obj)s\" boli úspešne zmenený."
+
+#: contrib/admin/views/main.py:360
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"Objekt %(name)s \"%(obj)s\" bol úspešne zmenený. Ďalšie zmeny môžeš urobiť "
+"zase nižšie."
+
+#: contrib/admin/views/main.py:398
+#, python-format
+msgid "Change %s"
+msgstr "Zmeniť %s"
+
+#: contrib/admin/views/main.py:483
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Jeden alebo viac %(fieldname)s v %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:488
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Jeden alebo viac %(fieldname)s v %(name)s:"
+
+#: contrib/admin/views/main.py:520
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Objekt %(name)s \"%(obj)s\" bol úspešne vymazaný."
+
+#: contrib/admin/views/main.py:523
+msgid "Are you sure?"
+msgstr "Ste si istý?"
+
+#: contrib/admin/views/main.py:545
+#, python-format
+msgid "Change history: %s"
+msgstr "Zmeniť históriu: %s"
+
+#: contrib/admin/views/main.py:579
+#, python-format
+msgid "Select %s"
+msgstr "Výber %s"
+
+#: contrib/admin/views/main.py:579
+#, python-format
+msgid "Select %s to change"
+msgstr "Ktorý %s sa má zmeniť?"
+
+#: contrib/admin/views/main.py:780
+msgid "Database error"
+msgstr "Chyba databázy"
+
+#: contrib/admin/views/doc.py:47 contrib/admin/views/doc.py:49
+#: contrib/admin/views/doc.py:51
+msgid "tag:"
+msgstr "označovač:"
+
+#: contrib/admin/views/doc.py:78 contrib/admin/views/doc.py:80
+#: contrib/admin/views/doc.py:82
+msgid "filter:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:136 contrib/admin/views/doc.py:138
+#: contrib/admin/views/doc.py:140
+msgid "view:"
+msgstr "prehľad:"
+
+#: contrib/admin/views/doc.py:165
+#, python-format
+msgid "App %r not found"
+msgstr "Aplikáciu %r sa nepodarilo nájsť."
+
+#: contrib/admin/views/doc.py:172
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Model %(name)r sa nenachádza v aplikácii %(label)r"
+
+#: contrib/admin/views/doc.py:184
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "Prepojenie na objekt `%(label)s.%(type)s`"
+
+#: contrib/admin/views/doc.py:184 contrib/admin/views/doc.py:206
+#: contrib/admin/views/doc.py:220 contrib/admin/views/doc.py:225
+msgid "model:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:215
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "súvisiace objekty `%(label)s.%(name)s`"
+
+#: contrib/admin/views/doc.py:220
+#, python-format
+msgid "all %s"
+msgstr "všetky %s"
+
+#: contrib/admin/views/doc.py:225
+#, python-format
+msgid "number of %s"
+msgstr "počet %s"
+
+#: contrib/admin/views/doc.py:230
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Polia objektu %s"
+
+#: contrib/admin/views/doc.py:292 contrib/admin/views/doc.py:303
+#: contrib/admin/views/doc.py:305 contrib/admin/views/doc.py:311
+#: contrib/admin/views/doc.py:312 contrib/admin/views/doc.py:314
+msgid "Integer"
+msgstr "Celé číslo"
+
+#: contrib/admin/views/doc.py:293
+msgid "Boolean (Either True or False)"
+msgstr "Logická hodnota (True alebo False)"
+
+#: contrib/admin/views/doc.py:294 contrib/admin/views/doc.py:313
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Dĺžka reťazca (maximálne do %(maxlength)s znakov)"
+
+#: contrib/admin/views/doc.py:295
+msgid "Comma-separated integers"
+msgstr "Celé čísla oddelené čiarkou"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (without time)"
+msgstr "Dátum (bez času)"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (with time)"
+msgstr "Dátum (a čas)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Decimal number"
+msgstr "Desatinné číslo"
+
+#: contrib/admin/views/doc.py:299
+msgid "E-mail address"
+msgstr "E-mailová adresa"
+
+#: contrib/admin/views/doc.py:300 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:304
+msgid "File path"
+msgstr "Cesta k súboru"
+
+#: contrib/admin/views/doc.py:302
+msgid "Floating point number"
+msgstr "Císlo s pohyblivou čiarkou"
+
+#: contrib/admin/views/doc.py:308
+msgid "Boolean (Either True, False or None)"
+msgstr "Logická hodnota (True, False alebo None)"
+
+#: contrib/admin/views/doc.py:309
+msgid "Relation to parent model"
+msgstr "Má vzťah k nadradenému modelu"
+
+#: contrib/admin/views/doc.py:310
+msgid "Phone number"
+msgstr "Číslo telefónu"
+
+#: contrib/admin/views/doc.py:315
+msgid "Text"
+msgstr "Text"
+
+#: contrib/admin/views/doc.py:316
+msgid "Time"
+msgstr "Čas"
+
+#: contrib/admin/views/doc.py:317 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:318
+msgid "U.S. state (two uppercase letters)"
+msgstr "Štát USA (dve veľké písmena)"
+
+#: contrib/admin/views/doc.py:319
+msgid "XML text"
+msgstr "XML text"
+
+#: contrib/admin/views/doc.py:345
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s nie je urlpattern objekt"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Aktuálne:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Zmeniť:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Dátum:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Čas:"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentácia"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "Zmeniť heslo"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Začiatok"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "História"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Dátum a čas"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Uživateľ"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Udalosť"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "DATE_WITH_TIME_FULL"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Tento object nemá históriu vykonaných zmien. Možno nebol pridaný "
+"prostredníctvom tohoto administračného rozhrania."
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Pridať %(name)s"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "Podľa %(filter_title)s "
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Chyba servera"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Chyba servera (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Chyba servera <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Vznikla neočakávaná chyba. Prostredníctvom e-mailu bol o nej informovaný "
+"správca a dá sa predpokladať, že bude v krátkej dobe odstránená. Ďakujeme za "
+"pochopenie."
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"S inštaláciou alebo nastavením vašej databázy nie je niečo v poriadku. "
+"Uistite sa, že ste vytvorili potrebné databázové tabuľky. Taktiež "
+"skontrolujte, či má systémový užívateľ, pod ktorým beží aplikácia, právo na "
+"prístup k databáze a čítanie súborov databázy."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Choď"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 výsledok"
+msgstr[1] "%(counter)s výsledkov"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s spolu"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Zobraziť všetky"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django administrácia"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administrácia Django"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filter"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Stránka nebola nájdená"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Ľutujeme, ale požadovaná stránka nebola nájdená."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modely dostupné v aplikácii %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Pridať"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Zmeniť"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Nemáte právo na vykonávanie zmien."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Posledné udalosti"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Moje udalosti"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nedostupné"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Pozrieť na stránke"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Prosím, opravte chybu uvedenú nižšie."
+msgstr[1] "Prosím, opravte chyby uvedené nižšie."
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Radenie"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Poradie:"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Vitajte,"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Vymazať"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Zmazanie objektu %(object_name)s '%(escaped_object)s' by spôsobilo zmazanie "
+"súvisiacich objektov, avšak vaše užívateľské práva vám neumožňujú zmazať "
+"nasledujúce typy objektov:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Ste si istý, že chcete zmazať objekt %(object_name)s \"%(escaped_object)s\"? "
+"Zmazané budú aj všetky tieto súvisiace objekty:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Áno, som si istý"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Uložiť ako nový"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Uložiť a pridať ďaľší"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Uložiť a pokračovať v zmenách"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Uložiť"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Zadajte nové heslo pre užívateľa <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "Heslo"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "Heslo (potvrdiť)"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "Znova zadajte heslo kvôli overeniu."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Najskôr zadajte užívateľské meno a heslo. Neskôr budete môcť upraviť ostatné "
+"užívateľské nastavnia."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Užívateľské meno"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Zmena heslo"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Heslo bolo úspešne zmenené"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Vaše heslo bolo zmenené."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Obnovenie hesla"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Zabudli ste svoje heslo? Zadajte svoju e-mailovú adresu, na ktorú vám bude "
+"zaslané nové heslo."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mailová adresa:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Obnova môjho hesla"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Ďakujeme vám, za čas strávený na našich stránkach."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Prihlásiť sa znovu"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Heslo bolo úspešne obnovené"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Bolo vám zaslané nové heslo na uvedenú adresu. Mali by ste ho obdržať v "
+"najbližšej dobe."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Z bezpečnostných dôvodov zadajte najskôr staré heslo a potom dva krát nové "
+"heslo, tak aby sa mohlo overiť, či nevznikol preklep."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Staré heslo:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Nové heslo:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Potvrdenie hesla:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Zmeň svoje heslo"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Dostali ste túto správu, lebo ste si vyžiadali obnovu hesla."
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "pre váš užívateľský účet na %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Vaše nové heslo je: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Heslo si kľudne môžete zmeniť na tejto stránke:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Vaše užívateľské meno, pre prípad, že ste zabudli:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Ďakujeme vám, že využívate služby našej stránky!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Tím %(site_name)s"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Záložky"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Dokumentácia záložiek"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Ak chete nainštalovať záložky, pretiahnite linku do vášho "
+"panela so záložkami\n"
+"alebo kliknite pravým tlačidlom myši na linku a pridajte ju do svojich "
+"záložiek.\n"
+"Následne môžete záložky použiť na stránkach. Všimnite si, že použitie "
+"niektorých záložiek vyžaduje, aby bol váš počítač pridaný do zoznamu "
+"INTERNAL_IPS. Ak nie ste si istý, že ste v tomto zozname, oslovte vášho "
+"administrátora.</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Dokumentácia k tejto stránke"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Skočte z ľubovoľnej stránky do dokumentácie, kde je popísané, ako sa táto "
+"stránka generuje."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Zobraziť ID objektu."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "Zobrazuje content-type a ID stránok, ktoré reprezentujú jediný objekt."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Editácia tohoto objektu (v aktuálnom okne)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Skočiť na stránku admina, ktorá reprezentuje tento jeden objekt."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Editácia tohoto objektu (v novom okne)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "To isté ako predtým, akurát otvorí administračnú stránku v novom okne."
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "pythonové meno triedy modelu"
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "typ obsahu"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "typy obsahu"
+
+#: contrib/auth/views.py:41
+msgid "Logged out"
+msgstr "Odhlásený"
+
+#: contrib/auth/models.py:51 contrib/auth/models.py:71
+msgid "name"
+msgstr "meno"
+
+#: contrib/auth/models.py:53
+msgid "codename"
+msgstr "codename"
+
+#: contrib/auth/models.py:56
+msgid "permission"
+msgstr "povolenie"
+
+#: contrib/auth/models.py:57 contrib/auth/models.py:72
+msgid "permissions"
+msgstr "práva"
+
+#: contrib/auth/models.py:75
+msgid "group"
+msgstr "skupina"
+
+#: contrib/auth/models.py:76 contrib/auth/models.py:116
+msgid "groups"
+msgstr "skupiny"
+
+#: contrib/auth/models.py:106
+msgid "username"
+msgstr "užívateľské meno"
+
+#: contrib/auth/models.py:106
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Povinná položka s dĺžkou 30 znakov alebo menej. Povolené sú len "
+"alfanumerické znaky (písmená, čísla a podtržník)."
+
+#: contrib/auth/models.py:107
+msgid "first name"
+msgstr "krstné meno"
+
+#: contrib/auth/models.py:108
+msgid "last name"
+msgstr "priezvisko"
+
+#: contrib/auth/models.py:109
+msgid "e-mail address"
+msgstr "e-mailová adresa"
+
+#: contrib/auth/models.py:110
+msgid "password"
+msgstr "heslo"
+
+#: contrib/auth/models.py:110
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Použite '[algo]$[salt]$[hexdigest]' alebo <a href=\"password/\">formulár na "
+"zmenu hesla</a>."
+
+#: contrib/auth/models.py:111
+msgid "staff status"
+msgstr "zamestnanec"
+
+#: contrib/auth/models.py:111
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+"Určuje, či má užívateľ oprávnenie prihlásiť sa do administračnej časti."
+
+#: contrib/auth/models.py:112
+msgid "active"
+msgstr "aktívny"
+
+#: contrib/auth/models.py:112
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Určuje, či je účet aktívny. Odškrtnite, ak chcete deaktivovať užívateľský "
+"účet."
+
+#: contrib/auth/models.py:113
+msgid "superuser status"
+msgstr "superužívateľ"
+
+#: contrib/auth/models.py:113
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Určuje, či užívateľ získava automaticky všetky práva aj bez priameho "
+"priradenia."
+
+#: contrib/auth/models.py:114
+msgid "last login"
+msgstr "naposledy prihlásený"
+
+#: contrib/auth/models.py:115
+msgid "date joined"
+msgstr "dátum registrácie"
+
+#: contrib/auth/models.py:117
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Okrem ručne zadaných práv bude mať užívateľ aj všetky práva prislúchajúce "
+"skupinám, v ktorých sa nachádza."
+
+#: contrib/auth/models.py:118
+msgid "user permissions"
+msgstr "užívateľské práva"
+
+#: contrib/auth/models.py:122
+msgid "user"
+msgstr "uživateľ"
+
+#: contrib/auth/models.py:123
+msgid "users"
+msgstr "užívatelia"
+
+#: contrib/auth/models.py:129
+msgid "Personal info"
+msgstr "Osobné údaje"
+
+#: contrib/auth/models.py:130
+msgid "Permissions"
+msgstr "Práva"
+
+#: contrib/auth/models.py:131
+msgid "Important dates"
+msgstr "Dôležité dátumy"
+
+#: contrib/auth/models.py:132
+msgid "Groups"
+msgstr "Skupiny"
+
+#: contrib/auth/models.py:274
+msgid "message"
+msgstr "správa"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Pole hesla a jeho potvrdenie sa nezhodujú."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Užívateľ s týmto užívateľským menom už existuje."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Váš prehliadač nemá povolené cookies. Cookies sú potrebné pre úspešné "
+"prihlásenie."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Účet je deaktivovaný."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"K danej e-mailovej adrese neexistuje užívateľský účet. Ste si istý, že ste "
+"sa zaregistrovali?"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Pole nového hesla a jeho potvrdenie sa nezhodujú."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Vaše staré heslo nebolo zadané správne. Prosím, zadajte heslo znova."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr ""
+"Zadajte britský poštový kód (PSČ). Medzera medzi dvomi časťami kódu je "
+"povinná."
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Vložte poštové smerovacie číslo v tvare XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefónne číslo musí mať formát XX-XXXX-XXXX. "
+
+#: contrib/localflavor/br/forms.py:72
+msgid "This field requires only numbers."
+msgstr "Toto pole je môže obsahovať len čísla."
+
+#: contrib/localflavor/br/forms.py:74
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Toto pole môže mať najviac 11 čisiel  alebo 14 písmen."
+
+#: contrib/localflavor/br/forms.py:84
+msgid "Invalid CPF number."
+msgstr "Chybné CPF číslo."
+
+#: contrib/localflavor/br/forms.py:106
+msgid "This field requires at least 14 digits"
+msgstr "Toto pole vyžaduje minimale 14 číslic."
+
+#: contrib/localflavor/br/forms.py:116
+msgid "Invalid CNPJ number."
+msgstr "Chybné CNJP číslo."
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "Vložte 4 čísla poštového smerovacieho čísla."
+
+#: contrib/localflavor/fr/forms.py:17 contrib/localflavor/de/forms.py:16
+#: contrib/localflavor/fi/forms.py:14
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Vložte poštové smerovacie číslo v tvare XXXXX."
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Zadajte americký poštový kód (ZIP) vo formáte XXXXX alebo XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Vložte platné U.S. číslo sociálneho poistenia vo formáte XXX-XX-XXXX."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavórsko"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlín"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:60
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Zadajte poštové smerovacie číslo v tvare XXXXXXX alebo XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14
+msgid "Enter a zip code in the format XXXX."
+msgstr "Vložte poštové smerovacie číslo v tvare XXXX."
+
+#: contrib/localflavor/ch/forms.py:90
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Zadajte platné Islanské číslo v tvare XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:31
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Zadajte platné poštové smerovacie číslo."
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "Vložte platné číslo sociálneho poistenia ."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Zadajte platné VAT číslo."
+
+#: contrib/localflavor/no/forms.py:35
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+"Vložte platné nórske číslo sociálneho poistenia (social security number)."
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:32
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Zadajte poštové smerovacie číslo v tvare XXXXX alebo XXX-XX."
+
+#: contrib/localflavor/cl/forms.py:32
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:37
+msgid "Enter valid a Chilean RUT"
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+"Vložte platné fínske číslo sociálneho poistenia (social security number)."
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "kľúč session"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "údaje session"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "dátum vypršania platnosti"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "session"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "sessions"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Príklad: '/about/contact/'. Uistite sa, že adresa obsahuje na začiatku a na "
+"konci.lomítka."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "názov"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "obsah"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "povoliť komentáre"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "názov šablóny"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Príklad: 'flatpages/contact_page'. Ak táto šablóna neexistuje, systém "
+"použije  'flatpages/default'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "je vyžadovaná registrácia"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Ak je zaškrtnuté, tak sa stránka zobrazí len prihlásenému užívateľovi."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "statická stránka"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "statické stránky"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Pondelok"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Utorok"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Streda"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Štvrtok"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Piatok"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Sobota"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Nedeľa"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr ""
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr ""
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr ""
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Január"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Február"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Marec"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "Apríl"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Máj"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Jún"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Júl"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "August"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "September"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Október"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "November"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "December"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "máj"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jún"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "júl"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "aug"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dec"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Aug."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dec."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "rok"
+msgstr[1] "roky"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mesiac"
+msgstr[1] "mesiacov"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "týždeň"
+msgstr[1] "týždňov"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "deň"
+msgstr[1] "dni"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hodina"
+msgstr[1] "hodín"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minúta"
+msgstr[1] "minúty"
+
+#: utils/timesince.py:39
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr ""
+
+#: utils/timesince.py:45
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ""
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr ""
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr ""
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "polnoc"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "poludnie"
+
+#: utils/translation/trans_real.py:391
+msgid "DATE_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:392
+msgid "DATETIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:393
+msgid "TIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:409
+msgid "YEAR_MONTH_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:410
+msgid "MONTH_DAY_FORMAT"
+msgstr ""
+
+#: template/defaultfilters.py:485
+msgid "yes,no,maybe"
+msgstr "áno,nie,možno"
+
+#: template/defaultfilters.py:514
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: template/defaultfilters.py:516
+#, python-format
+msgid "%.1f KB"
+msgstr ""
+
+#: template/defaultfilters.py:518
+#, python-format
+msgid "%.1f MB"
+msgstr ""
+
+#: template/defaultfilters.py:519
+#, python-format
+msgid "%.1f GB"
+msgstr ""
+
+#~ msgid "AnonymousUser"
+#~ msgstr "Neregistrovaný užívateľ"
diff --git a/webapp/django/conf/locale/sk/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/sk/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..0682827
--- /dev/null
+++ b/webapp/django/conf/locale/sk/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/sk/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/sk/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..d65ac78
--- /dev/null
+++ b/webapp/django/conf/locale/sk/LC_MESSAGES/djangojs.po
@@ -0,0 +1,116 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-01 19:21+0200\n"
+"PO-Revision-Date: 2007-04-03 21:48+0200\n"
+"Last-Translator:  <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Možný %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Vybrať všetko"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Pridať"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Vymazať"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Vybrané %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Vyberte položku a kliknite"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Odstrániť vybrané"
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Január Február Marec Apríl Máj Jún Júl August September Október November "
+"December"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Nedeľa Pondelok Utorok Streda Štvrtok Piatok Sobota"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "N P U S Š P S"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Zobraziť"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Skryť"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Práve teraz"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Hodiny"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Vybrať čas"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Polnoc"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 ráno"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Poludnie"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Zrušiť"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Dnes"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalendár"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Včera"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Zajtra"
+
diff --git a/webapp/django/conf/locale/sl/LC_MESSAGES/django.mo b/webapp/django/conf/locale/sl/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..e7865e4
--- /dev/null
+++ b/webapp/django/conf/locale/sl/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/sl/LC_MESSAGES/django.po b/webapp/django/conf/locale/sl/LC_MESSAGES/django.po
new file mode 100644
index 0000000..2796ddb
--- /dev/null
+++ b/webapp/django/conf/locale/sl/LC_MESSAGES/django.po
@@ -0,0 +1,2967 @@
+# translation of django.po to Slovenian
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-07-02 13:55+0200\n"
+"PO-Revision-Date: 2007-07-02 14:47+0100\n"
+"Last-Translator: Gasper Koren <skrat@owca.info>\n"
+"Language-Team: Slovenian <lugos-slo@lugos.si>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.2\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s s tem %(type)s že obstaja za dane %(field)s."
+
+#: db/models/manipulators.py:308
+#: contrib/admin/views/main.py:340
+#: contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:344
+msgid "and"
+msgstr "in"
+
+#: db/models/fields/related.py:54
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Prosimo, vnesite veljaven %s."
+
+#: db/models/fields/related.py:640
+msgid "Separate multiple IDs with commas."
+msgstr "Več ID-jev ločite z vejicami."
+
+#: db/models/fields/related.py:642
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Držite \"Control\" (ali \"Command\" na Mac-u), za izbiro več kot enega."
+
+#: db/models/fields/related.py:689
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Prosimo, vnesite veljavne %(self)s ID-e. Vrednost %(value)r ni veljavna."
+msgstr[1] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r nista veljavni."
+msgstr[2] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r niso veljavne."
+msgstr[3] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r niso veljavne."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s s tem %(fieldname)s že obstaja."
+
+#: db/models/fields/__init__.py:126
+#: db/models/fields/__init__.py:283
+#: db/models/fields/__init__.py:680
+#: db/models/fields/__init__.py:691
+#: oldforms/__init__.py:357
+#: newforms/fields.py:87
+#: newforms/fields.py:444
+#: newforms/fields.py:523
+#: newforms/fields.py:534
+#: newforms/models.py:185
+msgid "This field is required."
+msgstr "To polje je obvezno"
+
+#: db/models/fields/__init__.py:378
+msgid "This value must be an integer."
+msgstr "Ta vrednost mora biti celo število."
+
+#: db/models/fields/__init__.py:413
+msgid "This value must be either True or False."
+msgstr "Ta vrednost mora biti \"True\" ali \"False\"."
+
+#: db/models/fields/__init__.py:434
+msgid "This field cannot be null."
+msgstr "To polje ne more biti prazno."
+
+#: db/models/fields/__init__.py:468
+#: core/validators.py:149
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Vnesite veljavni datum v zapisu YYYY-MM-DD (leto-mesec-dan)."
+
+#: db/models/fields/__init__.py:537
+#: core/validators.py:158
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Vnesite veljavni datum/čas v zapisu YYYY-MM-DD HH:MM (leto-mesec-dan ura:minuta)"
+
+#: db/models/fields/__init__.py:597
+msgid "This value must be a decimal number."
+msgstr "Ta vrednost mora biti decimalno število."
+
+#: db/models/fields/__init__.py:700
+msgid "Enter a valid filename."
+msgstr "Vnesite veljavno ime datoteke."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "Ta vrednost mora biti None, True ali False."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arabščina"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengalski"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "Bolgarščina"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr "Katalonščina"
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "Češki"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "Valežanski"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "Danski"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "Nemški"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "Grški"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "Angleški"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "Španski"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "Španščina (Argentina)"
+
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr "Perzijščina"
+
+#: conf/global_settings.py:52
+msgid "Finnish"
+msgstr "Finščina"
+
+#: conf/global_settings.py:53
+msgid "French"
+msgstr "Francoski"
+
+#: conf/global_settings.py:54
+msgid "Galician"
+msgstr "Galičanski"
+
+#: conf/global_settings.py:55
+msgid "Hungarian"
+msgstr "Madžarski"
+
+#: conf/global_settings.py:56
+msgid "Hebrew"
+msgstr "Hebrejski"
+
+#: conf/global_settings.py:57
+msgid "Icelandic"
+msgstr "Islandski"
+
+#: conf/global_settings.py:58
+msgid "Italian"
+msgstr "Italijanski"
+
+#: conf/global_settings.py:59
+msgid "Japanese"
+msgstr "Japonski"
+
+#: conf/global_settings.py:60
+msgid "Korean"
+msgstr "Korejščina"
+
+#: conf/global_settings.py:61
+msgid "Kannada"
+msgstr "Kanareščina"
+
+#: conf/global_settings.py:62
+msgid "Latvian"
+msgstr "Latvijščina"
+
+#: conf/global_settings.py:63
+msgid "Macedonian"
+msgstr "Makedonščina"
+
+#: conf/global_settings.py:64
+msgid "Dutch"
+msgstr "Nizozemski"
+
+#: conf/global_settings.py:65
+msgid "Norwegian"
+msgstr "Norveški"
+
+#: conf/global_settings.py:66
+msgid "Polish"
+msgstr "Poljščina"
+
+#: conf/global_settings.py:67
+msgid "Portugese"
+msgstr "Portugalščina"
+
+#: conf/global_settings.py:68
+msgid "Brazilian"
+msgstr "Brazilski"
+
+#: conf/global_settings.py:69
+msgid "Romanian"
+msgstr "Romunski"
+
+#: conf/global_settings.py:70
+msgid "Russian"
+msgstr "Ruski"
+
+#: conf/global_settings.py:71
+msgid "Slovak"
+msgstr "Slovaški"
+
+#: conf/global_settings.py:72
+msgid "Slovenian"
+msgstr "Slovenski"
+
+#: conf/global_settings.py:73
+msgid "Serbian"
+msgstr "Srbski"
+
+#: conf/global_settings.py:74
+msgid "Swedish"
+msgstr "Švedski"
+
+#: conf/global_settings.py:75
+msgid "Tamil"
+msgstr "Tamilščina"
+
+#: conf/global_settings.py:76
+msgid "Telugu"
+msgstr "Teluščina"
+
+#: conf/global_settings.py:77
+msgid "Turkish"
+msgstr "Turščina"
+
+#: conf/global_settings.py:78
+msgid "Ukrainian"
+msgstr "Ukrajinski"
+
+#: conf/global_settings.py:79
+msgid "Simplified Chinese"
+msgstr "Poenostavljeni kitajski"
+
+#: conf/global_settings.py:80
+msgid "Traditional Chinese"
+msgstr "Tradicionalni kitajski"
+
+#: core/validators.py:65
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Ta vrednost mora vsebovati le črke, števila in podčrtaje (_)."
+
+#: core/validators.py:69
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Ta vrednost mora vsebovati le črke, števila, podčrtaje, poševnice ali pomišljaje."
+
+#: core/validators.py:73
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Ta vrednost mora vsebovati le črke, števila, podčrtaje ali pomišljaje."
+
+#: core/validators.py:77
+msgid "Uppercase letters are not allowed here."
+msgstr "Velike tiskane črke niso dovoljene."
+
+#: core/validators.py:81
+msgid "Lowercase letters are not allowed here."
+msgstr "Majhne tiskane črke niso dovoljene."
+
+#: core/validators.py:88
+msgid "Enter only digits separated by commas."
+msgstr "Vnesite samo števila, ločena z vejicami."
+
+#: core/validators.py:100
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Vnesite veljavne e-mail naslove, ločene z vejicami."
+
+#: core/validators.py:104
+msgid "Please enter a valid IP address."
+msgstr "Prosimo, vnesite veljavni IP naslov."
+
+#: core/validators.py:108
+msgid "Empty values are not allowed here."
+msgstr "Prazne vrednosti tu niso dovoljene."
+
+#: core/validators.py:112
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Nenumerični znaki tukaj niso dovoljne."
+
+#: core/validators.py:116
+msgid "This value can't be comprised solely of digits."
+msgstr "Ta vrednost ne sme vsebovati le števk."
+
+#: core/validators.py:121
+#: newforms/fields.py:135
+msgid "Enter a whole number."
+msgstr "Vnesite celo število."
+
+#: core/validators.py:125
+msgid "Only alphabetical characters are allowed here."
+msgstr "Tukaj so dovoljene samo črke."
+
+#: core/validators.py:140
+msgid "Year must be 1900 or later."
+msgstr "Leto mora biti 1900 ali kasnejše."
+
+#: core/validators.py:144
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Nepravilen datum: %s"
+
+#: core/validators.py:154
+msgid "Enter a valid time in HH:MM format."
+msgstr "Vnesite veljavni čas v zapisu HH:MM (ura:minuta)."
+
+#: core/validators.py:163
+#: newforms/fields.py:339
+msgid "Enter a valid e-mail address."
+msgstr "Vnesite veljaven e-mail."
+
+#: core/validators.py:175
+#: core/validators.py:453
+#: oldforms/__init__.py:672
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Datoteka ni bila poslana. Preveite nabor znakov v formi."
+
+#: core/validators.py:179
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Naložite veljavno sliko. Naložena datoteka ni bila slika ali pa je bila le-ta okvarjena."
+
+#: core/validators.py:186
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s ne kaže na veljavno sliko."
+
+#: core/validators.py:190
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefonska številka mora biti v zapisu XXX-XXX-XXXX. \"%s\" ni vredu."
+
+#: core/validators.py:198
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s ne kaže na veljavni QuickTime video."
+
+#: core/validators.py:202
+msgid "A valid URL is required."
+msgstr "Potreben je veljaven URL naslov."
+
+#: core/validators.py:216
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Potreben je veljaven HTML. Trenutni ima sledeče napake:\n"
+"%s"
+
+#: core/validators.py:223
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Nepravilen XML: %s"
+
+#: core/validators.py:240
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Neveljaven URL naslov: %s"
+
+#: core/validators.py:245
+#: core/validators.py:247
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL povezava %s ne deluje."
+
+#: core/validators.py:253
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Vnesi veljavno okrajšavo za ameriško zvezno državo."
+
+#: core/validators.py:267
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Pazite na jezik! Beseda %s tu ni dovoljena."
+msgstr[1] "Pazite na jezik! Besedi %s tu nista dovoljeni."
+msgstr[2] "Pazite na jezik! Besede %s tu niso dovoljene."
+msgstr[3] "Pazite na jezik! Besede %s tu niso dovoljene."
+
+#: core/validators.py:274
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "To polje mora ustrezati polju '%s'."
+
+#: core/validators.py:293
+msgid "Please enter something for at least one field."
+msgstr "Prosim, vnesite nekaj v vsaj eno izmed polj."
+
+#: core/validators.py:302
+#: core/validators.py:313
+msgid "Please enter both fields or leave them both empty."
+msgstr "Prosimo, izpolnite obe polji ali pa pustite obe prazni."
+
+#: core/validators.py:321
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "To polje mora biti podano, če je %(field)s %(value)s"
+
+#: core/validators.py:334
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "To polje mora biti podano, če ni %(field)s %(value)s"
+
+#: core/validators.py:353
+msgid "Duplicate values are not allowed."
+msgstr "Podvojitve niso dovoljene."
+
+#: core/validators.py:368
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Ta vrednost mora biti med %(lower)s in %(upper)s."
+
+#: core/validators.py:370
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Ta vrednost mora biti vsaj %s."
+
+#: core/validators.py:372
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Ta vrednost mora biti manjša od %s."
+
+#: core/validators.py:408
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Ta vrednost mora biti potenca od %s."
+
+#: core/validators.py:417
+msgid "Please enter a valid decimal number."
+msgstr "Prosim vnesite veljavno decimalno število."
+
+#: core/validators.py:423
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Prosimo, vnesite veljavno decimalno število z največ %s števko."
+msgstr[1] "Prosimo, vnesite veljavno decimalno število z največ %s števkama."
+msgstr[2] "Prosimo, vnesite veljavno decimalno število z največ %s števkami."
+msgstr[3] "Prosimo, vnesite veljavno decimalno število z največ %s števkami."
+
+#: core/validators.py:426
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Prosimo, vnesite veljavno decimalno število s celim številom z največ %s števko."
+msgstr[1] "PProsimo, vnesite veljavno decimalno število s celim številom z največ %s števkama."
+msgstr[2] "Prosimo, vnesite veljavno decimalno število s celim številom z največ %s števkami."
+msgstr[3] "Prosimo, vnesite veljavno decimalno število s celim številom z največ %s števkami."
+
+#: core/validators.py:429
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnim mestom."
+msgstr[1] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnima mestoma."
+msgstr[2] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnimi mesti."
+msgstr[3] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnimi mesti."
+
+#: core/validators.py:437
+msgid "Please enter a valid floating point number."
+msgstr "Prosim vnesite veljavno decimalno število."
+
+#: core/validators.py:446
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Prosimo, poskrbite, da bo naložena datoteka velika vsaj %s bajtov."
+
+#: core/validators.py:447
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Poskrbite, da bo naložena datoteka velika največ %s bajtov."
+
+#: core/validators.py:464
+msgid "The format for this field is wrong."
+msgstr "Format za to polje je napačen."
+
+#: core/validators.py:479
+msgid "This field is invalid."
+msgstr "To polje ni veljavno."
+
+#: core/validators.py:515
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Iz %s nisem mogel pridobiti ničesar."
+
+#: core/validators.py:518
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s je vrnil neveljavni Content-Type '%(contenttype)s'."
+
+#: core/validators.py:551
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Prosimo, zaprite %(tag)s oznako v vrstici %(line)s. (Vrstica se začne z \"%(start)s\".)"
+
+#: core/validators.py:555
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Tekst z začetka vrstice %(line)s ni dovoljen v tem kontekstu. (Vrstica se začne z \"%(start)s\".)"
+
+#: core/validators.py:560
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" v vrstici %(line)s je neveljaven atribut. (Vrstica se začne z \"%(start)s\".)"
+
+#: core/validators.py:565
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\" v vrstici %(line)s je neveljavna oznaka. (Vrstica se začne z \"%(start)s\".)"
+
+#: core/validators.py:569
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "Oznaki v vrstici %(line)s manjka eden ali več zahtevanih parametrov. (Vrstica se začne z \"%(start)s\".)"
+
+#: core/validators.py:574
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "Parameter \"%(attr)s\" v vrstici %(line)s vsebuje neveljavno vrednost. (Vrstica se začne z \"%(start)s\".)"
+
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Gesli se ne ujemata."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Uporabnik s tem uporabniškim imenom že obstaja."
+
+#: contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Izgleda, da vaš brskalnik nima omogočenih piškotkov. Piškotki so potrebni za prijavo."
+
+#: contrib/auth/forms.py:60
+#: contrib/admin/views/decorators.py:10
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Prosimo, vnesite veljavno uporabniško ime in geslo. Opomba: obe polji upoštevata velikost črk."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Ta uporabniški račun ni aktiven."
+
+#: contrib/auth/forms.py:84
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Tega e-mail naslova ni mogoče pripisati nobenemu uporabniku. Ali ste prepričani, da ste registrirani?"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Vrednosti v poljih 'novo geslo' se ne ujemata."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Vaše staro geslo ni pravilno. Prosim, poskusite ponovno."
+
+#: contrib/auth/models.py:49
+#: contrib/auth/models.py:69
+msgid "name"
+msgstr "ime"
+
+#: contrib/auth/models.py:51
+msgid "codename"
+msgstr "kodno ime"
+
+#: contrib/auth/models.py:54
+msgid "permission"
+msgstr "dovoljenje"
+
+#: contrib/auth/models.py:55
+#: contrib/auth/models.py:70
+msgid "permissions"
+msgstr "dovoljenja"
+
+#: contrib/auth/models.py:73
+msgid "group"
+msgstr "skupina"
+
+#: contrib/auth/models.py:74
+#: contrib/auth/models.py:114
+msgid "groups"
+msgstr "skupine"
+
+#: contrib/auth/models.py:104
+msgid "username"
+msgstr "uporabniško ime"
+
+#: contrib/auth/models.py:104
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Zahtevano. 30 znakov ali manj. Samo alfanumerični znaki (črke, števke un opdčrtaji)."
+
+#: contrib/auth/models.py:105
+msgid "first name"
+msgstr "ime"
+
+#: contrib/auth/models.py:106
+msgid "last name"
+msgstr "priimek"
+
+#: contrib/auth/models.py:107
+msgid "e-mail address"
+msgstr "e-mail naslov"
+
+#: contrib/auth/models.py:108
+msgid "password"
+msgstr "geslo"
+
+#: contrib/auth/models.py:108
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "Uporabite '[algo]$[salt]$[hexdigest]' ali <a href=\"password/\">obrazec za spremembo gesla</a>."
+
+#: contrib/auth/models.py:109
+msgid "staff status"
+msgstr "status osebja"
+
+#: contrib/auth/models.py:109
+msgid "Designates whether the user can log into this admin site."
+msgstr "Določi, če se sme uporabnik prijaviti v to administracijsko stran."
+
+#: contrib/auth/models.py:110
+msgid "active"
+msgstr "aktiven"
+
+#: contrib/auth/models.py:110
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "Določi, če se sme uporabnik prijaviti v Django admin. Odstranite to možnost namesto da brišete račune."
+
+#: contrib/auth/models.py:111
+msgid "superuser status"
+msgstr "status superuporabnika"
+
+#: contrib/auth/models.py:111
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Uporabnik bo imel vse pravice brez posamičnega dodeljevanja pravic."
+
+#: contrib/auth/models.py:112
+msgid "last login"
+msgstr "zadnja prijava"
+
+#: contrib/auth/models.py:113
+msgid "date joined"
+msgstr "član od"
+
+#: contrib/auth/models.py:115
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Poleg ročno določenih dovoljenj bo ta uporabnik dobil tudi vsa dovoljenja, ki pripadajo skupinam, katerih član je."
+
+#: contrib/auth/models.py:116
+msgid "user permissions"
+msgstr "uporabniška dovoljenja"
+
+#: contrib/auth/models.py:120
+msgid "user"
+msgstr "uporabnik"
+
+#: contrib/auth/models.py:121
+msgid "users"
+msgstr "uporabniki"
+
+#: contrib/auth/models.py:127
+msgid "Personal info"
+msgstr "Osebni podatki"
+
+#: contrib/auth/models.py:128
+msgid "Permissions"
+msgstr "Dovoljenja"
+
+#: contrib/auth/models.py:129
+msgid "Important dates"
+msgstr "Pomembni datumi"
+
+#: contrib/auth/models.py:130
+msgid "Groups"
+msgstr "Skupine"
+
+#: contrib/auth/models.py:272
+msgid "message"
+msgstr "sporočilo"
+
+#: contrib/auth/models.py:285
+msgid "AnonymousUser"
+msgstr "AnonimniUporabnik"
+
+#: contrib/auth/views.py:40
+msgid "Logged out"
+msgstr "Odjavljen"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "čas dejanja"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "id objekta"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "predstavitev objekta"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "zastavica dejanja"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "spremeni sporočilo"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "vnos v dnevniku"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "vnosi v dnevniku"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Avtor: %s</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70
+#: contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143
+#: contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Vse"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Kadarkoli"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Danes"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Zadnjih 7 dni"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Ta mesec"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Letos"
+
+#: contrib/admin/filterspecs.py:143
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:181
+msgid "Yes"
+msgstr "Da"
+
+#: contrib/admin/filterspecs.py:143
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:181
+msgid "No"
+msgstr "Ne"
+
+#: contrib/admin/filterspecs.py:150
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:181
+msgid "Unknown"
+msgstr "Neznano"
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Prijavite se"
+
+#: contrib/admin/views/decorators.py:62
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Vaša seja je pretekla; prosimo da se ponovno prijavite. Brez skrbi, vaše objave so varno shranjene."
+
+#: contrib/admin/views/decorators.py:69
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Izgleda, da vaš brskalnik nima podpore za piškotke. Prosimo, vključite piškotke, osvežite stran in poskusite še enkrat."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Uporabniška imena ne smejo vsebovati znaka '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Vaš e-main naslov ni vaše uporabniško ime. Poskusite uporabiti '%s'."
+
+#: contrib/admin/views/main.py:228
+msgid "Site administration"
+msgstr "Administracija strani"
+
+#: contrib/admin/views/main.py:262
+#: contrib/admin/views/auth.py:19
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" je bil uspešno dodan."
+
+#: contrib/admin/views/main.py:266
+#: contrib/admin/views/main.py:352
+#: contrib/admin/views/auth.py:24
+msgid "You may edit it again below."
+msgstr "Vsebino lahko znova uredite spodaj."
+
+#: contrib/admin/views/main.py:276
+#: contrib/admin/views/main.py:361
+#, python-format
+msgid "You may add another %s below."
+msgstr "Spodaj lahko dodate še en %s."
+
+#: contrib/admin/views/main.py:294
+#, python-format
+msgid "Add %s"
+msgstr "Dodaj %s"
+
+#: contrib/admin/views/main.py:340
+#, python-format
+msgid "Added %s."
+msgstr "Dodan %s."
+
+#: contrib/admin/views/main.py:342
+#, python-format
+msgid "Changed %s."
+msgstr "Spremenjen %s."
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Deleted %s."
+msgstr "Izbrisn %s."
+
+#: contrib/admin/views/main.py:347
+msgid "No fields changed."
+msgstr "Nobeno polje ni bilo spremenjeno."
+
+#: contrib/admin/views/main.py:350
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" je bil uspešno spremenjeno."
+
+#: contrib/admin/views/main.py:358
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" je bil uspešno dodano. Ponovno ga lahko urejdite spodaj."
+
+#: contrib/admin/views/main.py:396
+#, python-format
+msgid "Change %s"
+msgstr "Spremeni %s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Eden ali več %(fieldname)s v %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:486
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Eden ali več %(fieldname)s v %(name)s:"
+
+#: contrib/admin/views/main.py:518
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" je bilo uspešno izbrisan."
+
+#: contrib/admin/views/main.py:521
+msgid "Are you sure?"
+msgstr "Ste prepričani?"
+
+#: contrib/admin/views/main.py:543
+#, python-format
+msgid "Change history: %s"
+msgstr "Zgodovina sprememb: %s"
+
+#: contrib/admin/views/main.py:577
+#, python-format
+msgid "Select %s"
+msgstr "Izberite %s"
+
+#: contrib/admin/views/main.py:577
+#, python-format
+msgid "Select %s to change"
+msgstr "Izberite %s, ki ga želite spremeniti"
+
+#: contrib/admin/views/main.py:772
+msgid "Database error"
+msgstr "Napaka baze podatkov"
+
+#: contrib/admin/views/doc.py:46
+#: contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "značka:"
+
+#: contrib/admin/views/doc.py:77
+#: contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "filter:"
+
+#: contrib/admin/views/doc.py:135
+#: contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "pogled:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "Aplikacije %r ni mogoče najti"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Modela %(name)r ni v aplikaciji %(label)r"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "povezani `%(label)s.%(type)s` objekti"
+
+#: contrib/admin/views/doc.py:183
+#: contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219
+#: contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "povezani `%(label)s.%(name)s` objekti"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "vse %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "števolo %s"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Polja na %s objektih"
+
+#: contrib/admin/views/doc.py:291
+#: contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:310
+#: contrib/admin/views/doc.py:311
+#: contrib/admin/views/doc.py:313
+msgid "Integer"
+msgstr "Celo število (integer)"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (True ali False)"
+
+#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:312
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Niz (vse do %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Z vejico ločena cela števila (integer)"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Datum (brez ure)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Datum (z uro)"
+
+#: contrib/admin/views/doc.py:297
+msgid "Decimal number"
+msgstr "Decimalno število"
+
+#: contrib/admin/views/doc.py:298
+msgid "E-mail address"
+msgstr "E-mail naslov"
+
+#: contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:300
+#: contrib/admin/views/doc.py:303
+msgid "File path"
+msgstr "Pot do datoteke"
+
+#: contrib/admin/views/doc.py:301
+msgid "Floating point number"
+msgstr "Decimalno število"
+
+#: contrib/admin/views/doc.py:305
+#: contrib/comments/models.py:85
+msgid "IP address"
+msgstr "IP naslov"
+
+#: contrib/admin/views/doc.py:307
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (True, False ali None)"
+
+#: contrib/admin/views/doc.py:308
+msgid "Relation to parent model"
+msgstr "Razmerje s starševskim modelom"
+
+#: contrib/admin/views/doc.py:309
+msgid "Phone number"
+msgstr "Telefonska številka"
+
+#: contrib/admin/views/doc.py:314
+msgid "Text"
+msgstr "Besedilo"
+
+#: contrib/admin/views/doc.py:315
+msgid "Time"
+msgstr "Čas"
+
+#: contrib/admin/views/doc.py:316
+#: contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL (spletni naslov)"
+
+#: contrib/admin/views/doc.py:317
+msgid "U.S. state (two uppercase letters)"
+msgstr "Koda ameriške zvezne države (dve veliki črki)"
+
+#: contrib/admin/views/doc.py:318
+msgid "XML text"
+msgstr "XML besedilo"
+
+#: contrib/admin/views/doc.py:344
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ne izgleda veljaven urlpattern objekt"
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "Dodaj uporabnika"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "Geslo je bilo uspešno spremenjeno"
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "Spremeni geslo: %s"
+
+#: contrib/admin/templatetags/admin_list.py:249
+msgid "All dates"
+msgstr "Vsi datumi"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Prikaži vse"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Documentation"
+msgstr "Dokumentacija"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Change password"
+msgstr "Spremeni geslo"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Odjava"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+msgid "Home"
+msgstr "Domov"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Izbriši"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Izbris %(object_name)s '%(escaped_object)s' bi pomenil izbris povezanih objektov, vendar nimate dovoljenja za izbris naslednjih tipov objektov:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Ste prepričani, da želite izbrisati %(object_name)s \"%(escaped_object)s\"? Vsi naslednji povezani elementi bodo izbrisani:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Ja, sem prepričan"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Strani ni mogoče najti"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Opravičujemo se, a zahtevane strani ni mogoče najti."
+
+#: contrib/admin/templates/admin/change_form.html:15
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Dodaj"
+
+#: contrib/admin/templates/admin/change_form.html:21
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Zgodovina"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Poglej na strani"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Prosimo, odpravite sledečo napako."
+msgstr[1] "Prosimo, odpravite sledeči napaki."
+msgstr[2] "Prosimo, odpravite sledeče napake."
+msgstr[3] "Prosimo, odpravite sledeče napake."
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Razvrščanje"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Razvrsti:"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "Po %(filter_title)s "
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Shrani kot novo"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Shrani in dodaj še eno"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Shrani in nadaljuj z urejanjem"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Shrani"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Dodaj %(name)s"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modeli na voljo v %(name)s aplikaciji"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Spremeni"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Nimate dovoljenja za urejanje česar koli."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Zadnja dejanja"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Moja dejanja"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Ni na voljo"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Vmesnik za administracijo Django strani"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administracija"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Datum/čas"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Uporabnik"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Dejanje"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Ta objekt nima zgodovine sprememb. Verjetno ni bil dodan preko te strani za administracijo."
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Napaka strežnika"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Napaka strežnika (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Napaka strežnika <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Prišlo je do nepričakovane napake. Administrator je preko e-pošte prejel obvestilo o napaki in jo bo v kratkem odpravil. Hvala za potrpljenje."
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Nekaj je narobe z namestitvijo vaše podatkovne baze. Preverite, da so bile ustvarjene prave tabele v podatkovni bazi in da je dostop do branja baze omogočen pravemu uporabniku."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Pojdi"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "%(counter)s rezultat"
+msgstr[1] "%(counter)s rezultata"
+msgstr[2] "%(counter)s rezultati"
+msgstr[3] "%(counter)s rezultatov"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s skupno"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filter"
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Uporabniško ime:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Geslo:"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Dobrodošli,"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Najprej vpišite uporabniško ime in geslo, nato boste lahko urejali druge lastnosti uporabnika."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Uporabniško ime"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+msgid "Password"
+msgstr "Geslo"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Password (again)"
+msgstr "Geslo (ponovno)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Za preverjanje vpišite enako geslo kot zgoraj."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Vpišite novo geslo za uporabnika <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Zaznamkice"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Dokumentacijske zaznamkice"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Za inštalacijo zaznamkic povlečite povezavo v orodno vrstico\n"
+"z zaznamki, ali kliknite z desno miškino tipko na povezavo in jo dodajte med zaznamke. Zdaj lahko izberete zaznamkico s katerekoli strani tega spletnega mesta. Opomba: nekatere izmed teh strani lahko gledate le z računalnika, ki je označen kot \"notranji\" (v kolikor niste prepričani, če je vaš računalnik označen kot \"notranji\" se obrnite na sistemskega administratorja).</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Dokumentacija te strani"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Skok na stran z dokumentacijo za pogled (view), ki generira trenutno stran."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Pokaži ID objekta"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Pokaže content-type in unikatni ID za strani, ki predstavljajo en objekt."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Uredi objekt (v trenutnem oknu)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Skok na administracijsko stran za vse strani, ki predstavljajo en objekt."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Uredi ta objekt (v novem oknu)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Kot zgoraj, le da odpre administracijsko stran v novem oknu."
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Datum:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Ura:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Trenutno:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Sprememba:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Ponastavitev gesla"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Ste pozabili geslo? Vnesite vaš e-mail naslov in poslali vam bomo novo geslo."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Naslov e-pošte:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Ponastavi moje geslo"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Ta e-mail ste dobili, ker ste zahtevali ponastavitev gesla"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "za vaš uporabniški račun na %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Vaše novo geslo je: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Geslo lahko spremenite z obiskom strani:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Vaše uporabniško ime (za vsak primer):"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Hvala, ker uporabljate našo stran!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Ekipa strani %(site_name)s"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Hvala, ker ste si danes vzeli nekaj časa za to spletno stran."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Ponovna prijava"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Ponastavitev gesla je uspela"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Po e-pošti smo vam poslali novo geslo. Morali bi ga prejeti v kratkem"
+
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:4
+msgid "Password change"
+msgstr "Sprememba gesla"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Prosim, vnesite vaše staro geslo (zaradi varnosti) in nato še dvakrat novo (da preverimo, da se niste zatipkali)"
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Staro geslo:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Novo geslo:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Potrditev gesla:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Spremeni moje geslo"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Sprememba gesla je uspela"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Vaše geslo je bilo spremenjeno."
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "domena"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "prikazno ime"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "stran"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "strani"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "st"
+msgstr "st"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "nd"
+msgstr "nd"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milijon"
+msgstr[1] "%(value).1f milijona"
+msgstr[2] "%(value).1f milijoni"
+msgstr[3] "%(value).1f milijonov"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f bilijon"
+msgstr[1] "%(value).1f bilijona"
+msgstr[2] "%(value).1f bilijoni"
+msgstr[3] "%(value).1f bilijonov"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f triljon"
+msgstr[1] "%(value).1f triljona"
+msgstr[2] "%(value).1f triljoni"
+msgstr[3] "%(value).1f triljonov"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "ena"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "dva"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "tri"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "štiri"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "pet"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "šest"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "sedem"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "osem"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "devet"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Primer: '/about/contact/'. Preverite ali vsebuje / (poševnico) na začetku in koncu vnosa."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "naslov"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "vsebina"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "omogoči komentarje"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "ime predloge"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Primer: 'flatpages/contact_page.html'. Če to polje ni izpolnjeno, bo sistem uporabil 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "obvezna registracija"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Če je to polje izbrano, si bodo to stran lahko ogledali le prijavljeni uporabniki."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "enostavna stran"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "enostavne strani"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "preusmeritev iz"
+
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Ta pot mora biti absolutna, brez imena domene. Primer: '/events/search'"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "preusmeri na"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "To je lahko absolutna pot (kot zgoraj) ali popoln URL naslov (ki se začne s 'http://')"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "preusmeritev"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "preusmeritve"
+
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:166
+msgid "object ID"
+msgstr "ID objekta"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "naslov"
+
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "komentar"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "rating #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "rating #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "rating #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "rating #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "rating #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "rating #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "rating #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "rating #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "je veljavni rating"
+
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "datum/čas vnosa"
+
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:170
+msgid "is public"
+msgstr "je javno"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "je odstranjen/-a"
+
+#: contrib/comments/models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Odkljukaj, če je komentar neprimeren. Namesto komentarja bo vidno obvestilo \"Ta komentar je bil odstranjen\"."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "komentarji"
+
+#: contrib/comments/models.py:131
+#: contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Objekt z vsebino"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Poslal uporabnik %(user)s ob %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "ime osebe"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ip naslov"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "osebje je potrdilo"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "anonimen komentar"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "anonimni komentarji"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "ocena"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "datum ocene"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "karma točke"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "karma točke"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "oceno %(score)d podelil %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Komentar je z zastavico označil %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "datum označitve (zastavice)"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "uporabniška zastavica"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "uporabniške zastavice"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Avtor zastavice je %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "datum izbrisa"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "izbris s strani moderatorja"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "izbrisi s strani moderatorja"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Izbris opravil moderator %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Anonimni uporabniki ne morejo glasovati"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "Neveljavni ID komentarja"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Ni mogoče glasovati zase"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "To oceno moraš podati, ker si podal vsaj še eno drugo oceno."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarjev:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarja:\n"
+"\n"
+"%(text)s"
+msgstr[2] ""
+"Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarje:\n"
+"\n"
+"%(text)s"
+msgstr[3] ""
+"Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarjev:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ta komentar je poslal sumljiv uporabnik:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Dovoljena je le POST metoda"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Eno ali več obveznih polj ni vpisanih"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Nekdo se je poigraval z obrazcem za komentarje (varnostna kršitev)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Obrazec s komentarji ima neveljavni parameter 'target' -- ID objekta je neveljaven."
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Obrazec s komentarji ni podal niti 'preview' niti 'post' akcije."
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Ste pozabili geslo?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Ocene"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Obvezno"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Neobvezno"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Objavi sliko"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentar:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Predogled komentarja"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Vaše ime:"
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "Vnesite 4-mestno poštno številko."
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Vnesite poštno številko v zapisu XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefonska številka mora biti v zapisu XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:72
+msgid "This field requires only numbers."
+msgstr "To polje lahko vsebuje samo številke."
+
+#: contrib/localflavor/br/forms.py:74
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "To polje zahteva največ 11 števk ali 14 znakov."
+
+#: contrib/localflavor/br/forms.py:84
+msgid "Invalid CPF number."
+msgstr "Nepravilna CPF številka."
+
+#: contrib/localflavor/br/forms.py:106
+msgid "This field requires at least 14 digits"
+msgstr "To polje mora vsebovati vsaj 14 števk."
+
+#: contrib/localflavor/br/forms.py:116
+msgid "Invalid CNPJ number."
+msgstr "Nepravilna CNPJ številka."
+
+#: contrib/localflavor/ch/forms.py:18
+#: contrib/localflavor/no/forms.py:15
+msgid "Enter a zip code in the format XXXX."
+msgstr "Vnesite veljavno poštno številko v obliki XXXX."
+
+#: contrib/localflavor/ch/forms.py:90
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Vpišite veljavno številko švicarske osebne izkaznice ali potenga lista v zapisu X1234567<0 ali 1234567890"
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel (mesto)"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel (dežela)"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Ženeva"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/cl/forms.py:21
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Vpišite veljaven čilenski RUT v zapisu XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:26
+msgid "Enter valid a Chilean RUT"
+msgstr "Vnesite veljaven čilski RUT"
+
+#: contrib/localflavor/de/forms.py:16
+#: contrib/localflavor/fi/forms.py:14
+#: contrib/localflavor/fr/forms.py:17
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Vnesite veljavno poštno številko v obliki XXXXX."
+
+#: contrib/localflavor/de/forms.py:60
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Vpišite veljavno številko nemške osebne izkaznice v zapisu XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavarska"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Western Pomerania"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Lower Saxony"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Severno porenje - Westfalija"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhineland-Palatinate"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Posarje"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxony"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saška-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thuringia"
+
+#: contrib/localflavor/fi/forms.py:40
+#: contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr "Vnesite veljavno številko finskega socialnega zavarovanja."
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Vnesite veljavno poštno številko."
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "Vnesite veljavno številko socialnega zavarovanja."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Vnesite veljavno davčno (VAT) številko."
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Vpišite poštno številko v zapisu XXXXXXX or XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Jamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Točigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Čiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokio"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Jamanaši"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Išikava"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Šizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Šiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kjoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hjogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Vakajama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Šimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okajama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hirošima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Jamaguči"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokušima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Koči"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagošima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinava"
+
+#: contrib/localflavor/no/forms.py:36
+msgid "Enter a valid Norwegian social security number."
+msgstr "Vnesite veljavno številko norveškega socialnega zavarovanja."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "Vpišite poštno številko. Med dvema deloma poštne številke je obvezen presledek."
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Vnesite poštno številko v zapisu XXXXX ali XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Vpišite veljavno številko ameriškega socialnega zavarovanja v zapisu XXX-XX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:16
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Vpišite pravilno islandsko identifikacijsko številko v zapisu XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:30
+msgid "The Icelandic identification number is not valid."
+msgstr "Islandska identifikacijska številka ni pravilna."
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "ključ seje"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "podatki seje"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "čaz izteka"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "seja"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "seje"
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "python ime razreda modela"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "tip vsebine"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "tipi vsebine"
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Poskrbite, da bo tekst krajši od %s znaka."
+msgstr[1] "Poskrbite, da bo tekst krajši od %s znakov."
+msgstr[2] "Poskrbite, da bo tekst krajši od %s znakov."
+msgstr[3] "Poskrbite, da bo tekst krajši od %s znakov."
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "Prelomi vrstice tu niso dovoljeni."
+
+#: oldforms/__init__.py:498
+#: oldforms/__init__.py:571
+#: oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Izberite veljavno možnost; '%(data)s' ni v %(choices)s."
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "Poslana datoteka je prazna."
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Vnesite celo število med -32.768 in 32.767."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "Vnesite pozitivno število."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Vnesite celo število med 0 in 32.767."
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s je bil uspešno ustvarjen."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s je bil uspešno posodobljen."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s je bil uspešno izbrisan."
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "ponedeljek"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "torek"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "sreda"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "četrtek"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "petek"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "sobota"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "nedelja"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "januar"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "februar"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "March"
+msgstr "marec"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "April"
+msgstr "april"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "May"
+msgstr "maj"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "June"
+msgstr "junij"
+
+#: utils/dates.py:15
+#: utils/dates.py:27
+msgid "July"
+msgstr "julij"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "avgust"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "september"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "oktober"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "november"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "december"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "maj"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "avg"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "dec"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "jan."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "feb."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "avg."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "sep."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "okt."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "nov."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "dec."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "leto"
+msgstr[1] "leti"
+msgstr[2] "leta"
+msgstr[3] "let"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mesec"
+msgstr[1] "meseca"
+msgstr[2] "meseci"
+msgstr[3] "mesecev"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "teden"
+msgstr[1] "tedna"
+msgstr[2] "tedni"
+msgstr[3] "tednov"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dan"
+msgstr[1] "dneva"
+msgstr[2] "dnevi"
+msgstr[3] "dni"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "ura"
+msgstr[1] "uri"
+msgstr[2] "ure"
+msgstr[3] "ur"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuta"
+msgstr[1] "minuti"
+msgstr[2] "minute"
+msgstr[3] "minut"
+
+#: utils/timesince.py:40
+#, python-format
+msgid "%d milliseconds"
+msgstr "%d milisekund"
+
+#: utils/timesince.py:41
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:47
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/dateformat.py:40
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:41
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:46
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:47
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "polnoč"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "poldne"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "N j, Y, P"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "da,ne,morda"
+
+#: template/defaultfilters.py:520
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bajt"
+msgstr[1] "%(size)d bajta"
+msgstr[2] "%(size)d bajti"
+msgstr[3] "%(size)d bajtov"
+
+#: template/defaultfilters.py:522
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:524
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:525
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: newforms/fields.py:110
+#: newforms/fields.py:324
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "Poskrbite, da bo imela ta vrednost največ %d znakov."
+
+#: newforms/fields.py:112
+#: newforms/fields.py:326
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "Poskrbite, da bo imela ta vrednost vsaj %d znakov."
+
+#: newforms/fields.py:137
+#: newforms/fields.py:160
+#: newforms/fields.py:192
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Poskrbite, da bo imela ta vrednost manj manj kot ali natanko %s znakov."
+
+#: newforms/fields.py:139
+#: newforms/fields.py:162
+#: newforms/fields.py:194
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Poskrbite, da bo ta vrednost večja ali kvečjemu enaka %s."
+
+#: newforms/fields.py:158
+#: newforms/fields.py:186
+msgid "Enter a number."
+msgstr "Vnesite število."
+
+#: newforms/fields.py:196
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Poskrbite, da skupno ne bo več kot %s števil."
+
+#: newforms/fields.py:198
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Poskrbite, da skupno ne bo več kot %s decimalnih mest."
+
+#: newforms/fields.py:200
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Poskrbite, da ne bo več kot %s števil pred decimalno piko."
+
+#: newforms/fields.py:233
+#: newforms/fields.py:567
+msgid "Enter a valid date."
+msgstr "Vnesite veljaven datum."
+
+#: newforms/fields.py:260
+#: newforms/fields.py:569
+msgid "Enter a valid time."
+msgstr "Vnesite veljaven čas."
+
+#: newforms/fields.py:296
+msgid "Enter a valid date/time."
+msgstr "Vnesite veljaven datum/čas."
+
+#: newforms/fields.py:310
+msgid "Enter a valid value."
+msgstr "Vnesite veljavno vrednost."
+
+#: newforms/fields.py:357
+#: newforms/fields.py:379
+msgid "Enter a valid URL."
+msgstr "Vnesite veljavne URL naslov."
+
+#: newforms/fields.py:381
+msgid "This URL appears to be a broken link."
+msgstr "Izgleda, da povezava na ta URL ne deluje."
+
+#: newforms/fields.py:432
+#: newforms/models.py:172
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Izberite veljavno možnost. Te možnosti ni med možnimi izbirami."
+
+#: newforms/fields.py:448
+#: newforms/fields.py:527
+#: newforms/models.py:189
+msgid "Enter a list of values."
+msgstr "Vnesite seznam vrednosti."
+
+#: newforms/fields.py:457
+#: newforms/models.py:195
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Izberite veljavno možnost. %s ni med možnimi izbirami."
+
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr "Ste <a href=\"/password_reset/\">pozabili geslo</a>?"
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Uporabi '[algo]$[salt]$[hexdigest]'"
+#~ msgid "Comment"
+#~ msgstr "Komentar"
+#~ msgid "Comments"
+#~ msgstr "Komentarji"
+#~ msgid "String (up to 50)"
+#~ msgstr "Niz (do 50 znakov)"
+#~ msgid "label"
+#~ msgstr "oznaka"
+#~ msgid "package"
+#~ msgstr "paket"
+#~ msgid "packages"
+#~ msgstr "paketi"
+#~ msgid "Slovene"
+#~ msgstr "Slovensko"
+
diff --git a/webapp/django/conf/locale/sl/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/sl/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..14d7ffe
--- /dev/null
+++ b/webapp/django/conf/locale/sl/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/sl/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/sl/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..8ad259a
--- /dev/null
+++ b/webapp/django/conf/locale/sl/LC_MESSAGES/djangojs.po
@@ -0,0 +1,116 @@
+# Copyright (C) 2007
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-07-02 13:55+0200\n"
+"PO-Revision-Date: 2007-07-02 13:56+0100\n"
+"Last-Translator: Gasper Koren <skrat@owca.info>\n"
+"Language-Team: SLOVENIAN <lugos-slo@lugos.si>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Slovenian\n"
+"X-Poedit-Country: SLOVENIA\n"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid "January February March April May June July August September October November December"
+msgstr "Januar Februar Marec April Maj Junij Julij Avgust September Oktober November December"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "N P T S Č P S"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Nedelja Ponedeljek Torek Sreda Četrtek Petek Sobota"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Možne %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Izberi vse"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Dodaj"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Odstrani"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Izberite %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Izberite in kliknite"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Izbriši vse"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Sedaj"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "URA"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Izberite čas"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Polnoč"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "Ob 6h"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Opoldne"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Prekliči"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Danes"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Koledar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Včeraj"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Jutri"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Prikaži"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Skrij"
+
diff --git a/webapp/django/conf/locale/sr/LC_MESSAGES/django.mo b/webapp/django/conf/locale/sr/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..89e36aa
--- /dev/null
+++ b/webapp/django/conf/locale/sr/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/sr/LC_MESSAGES/django.po b/webapp/django/conf/locale/sr/LC_MESSAGES/django.po
new file mode 100644
index 0000000..b893452
--- /dev/null
+++ b/webapp/django/conf/locale/sr/LC_MESSAGES/django.po
@@ -0,0 +1,4504 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-07-29 12:06+0200\n"
+"PO-Revision-Date: 2008-07-29 12:52+0100\n"
+"Last-Translator: Nebojsa Djordjevic <djnesh@gmail.com>\n"
+"Language-Team: Nesh <djnesh@gmail.com> & Petar <petar.maric@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Poedit-Country: YUGOSLAVIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Poedit-Basepath: ../../../../\n"
+"X-Poedit-Language: Serbian\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "Arapski"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "Bengalski"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "Bugarski"
+
+#: conf/global_settings.py:47
+#, fuzzy
+msgid "Catalan"
+msgstr "Italijanski"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "Češki"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "Welšski"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "Danski"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "Nemački"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "Grčki"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "Engleski"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "Španski"
+
+#: conf/global_settings.py:55
+#, fuzzy
+msgid "Estonian"
+msgstr "Rumunski"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "Španski (Argentina)"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "Baskijski"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "Persijski"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "Finski"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "Francuski"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "Irski"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "Galski"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "Mađarski"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "Hebrejski"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "Hrvatski"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "Islandski"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "Italijanski"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "Japanski"
+
+#: conf/global_settings.py:69
+#, fuzzy
+msgid "Georgian"
+msgstr "Nemački"
+
+#: conf/global_settings.py:70
+#, fuzzy
+msgid "Korean"
+msgstr "Norveški"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "Kmerski"
+
+# wtf?
+#: conf/global_settings.py:72
+#, fuzzy
+msgid "Kannada"
+msgstr ""
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "Latvijski"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "Litvanijski"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "Makedonski"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "Holandski"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "Norveški"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "Poljski"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "Portugalski"
+
+#: conf/global_settings.py:80
+#, fuzzy
+msgid "Brazilian Portuguese"
+msgstr "Brazilski"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "Rumunski"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "Ruski"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "Slovački"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "Slovenački"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "Srpski"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "Švedski"
+
+#: conf/global_settings.py:87
+#, fuzzy
+msgid "Tamil"
+msgstr ""
+
+#: conf/global_settings.py:88
+#, fuzzy
+msgid "Telugu"
+msgstr ""
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "Turski"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "Ukrajinski"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "Kineski (pojednostavljen)"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "Tradicionalni Kineski"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Po %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74
+#: contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147
+#: contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Sve"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Bilo koji datum"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Danas"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "U zadnjih 7 dana"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Ovoga meseca"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Ove godine"
+
+#: contrib/admin/filterspecs.py:147
+#: forms/widgets.py:379
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Da"
+
+#: contrib/admin/filterspecs.py:147
+#: forms/widgets.py:379
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Ne"
+
+#: contrib/admin/filterspecs.py:154
+#: forms/widgets.py:379
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Nepoznato"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "vreme aktivnosti"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "id objekta"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "opis objekta"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "oznaka aktivnosti"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "opis izmene"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "unos u dnevniku izmena"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "unosi u dnevniku izmena"
+
+#: contrib/admin/options.py:161
+#: contrib/admin/options.py:180
+msgid "None"
+msgstr "None"
+
+#: contrib/admin/options.py:347
+#: contrib/auth/admin.py:37
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Uspešno dodat %(name)s \"%(obj)s\"."
+
+#: contrib/admin/options.py:351
+#: contrib/admin/options.py:419
+#: contrib/auth/admin.py:42
+msgid "You may edit it again below."
+msgstr "Možete ga ponovo izmeniti."
+
+#: contrib/admin/options.py:361
+#: contrib/admin/options.py:428
+#, python-format
+msgid "You may add another %s below."
+msgstr "Možete dodati još jedan %s."
+
+#: contrib/admin/options.py:395
+#, python-format
+msgid "Changed %s."
+msgstr "Izmenjen %s."
+
+#: contrib/admin/options.py:395
+#: contrib/admin/options.py:405
+#: core/validators.py:279
+#: db/models/manipulators.py:305
+msgid "and"
+msgstr "i"
+
+#: contrib/admin/options.py:400
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Dodato %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:404
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Promenjeno %(list)s za %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:409
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Obrisano %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:414
+msgid "No fields changed."
+msgstr "Nijedno polje nije izmenjeno."
+
+#: contrib/admin/options.py:417
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Uspešno izmenjen: %(name)s \"%(obj)s\"."
+
+#: contrib/admin/options.py:425
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" je uspešno dodat. Možete ga ponovo izmeniti."
+
+#: contrib/admin/options.py:506
+#, python-format
+msgid "Add %s"
+msgstr "Dodajte %s"
+
+#: contrib/admin/options.py:568
+#, python-format
+msgid "Change %s"
+msgstr "Izmeni %s"
+
+#: contrib/admin/options.py:598
+msgid "Database error"
+msgstr "Greška u bazi podataka"
+
+#: contrib/admin/options.py:647
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Uspešno obrisan: %(name)s \"%(obj)s\"."
+
+#: contrib/admin/options.py:653
+msgid "Are you sure?"
+msgstr "Da li ste sigurni?"
+
+#: contrib/admin/options.py:680
+#, python-format
+msgid "Change history: %s"
+msgstr "Istorija izmena: %s"
+
+#: contrib/admin/sites.py:18
+#: contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:70
+#: contrib/comments/views/comments.py:56
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Unesite ispravno korisničko ime i šifru. Napomena: oba polja prave razliku između velikih i malih slova."
+
+#: contrib/admin/sites.py:233
+#: contrib/admin/views/decorators.py:68
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Ponovo se prijavite pošto je vaša sesija istekla. Ne brinite, vaši podaci su sačuvani."
+
+#: contrib/admin/sites.py:240
+#: contrib/admin/views/decorators.py:75
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Vaš internet čitač nije prihvatio \"cookie\". Nakon aktiviranja odgovarajuće opcije ponovo učitajte stranu."
+
+#: contrib/admin/sites.py:254
+#: contrib/admin/sites.py:260
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Korisnička imena ne mogu sadržati karakter '@'."
+
+#: contrib/admin/sites.py:257
+#: contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Vaše korisničko ime nije data e-mail adresa. Pokušajte sa '%s'."
+
+#: contrib/admin/sites.py:325
+msgid "Site administration"
+msgstr "Administracija sajta"
+
+#: contrib/admin/sites.py:347
+#: contrib/admin/templates/admin/login.html:27
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Prijavite se"
+
+#: contrib/admin/util.py:126
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Jedno ili više %(fieldname)s u %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:131
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Jedan ili više %(fieldname)s u %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Datum:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Vreme:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Trenutno:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Izmenite:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Strana nije pronađena"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Tražena strana ne postoji."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Početna strana"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Greška na serveru"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Greška na serveru (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Greška na serveru <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Dogodila se greška koja je prijavljena administratorima."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Dobrodošli,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Documentation"
+msgstr "Dokumentacija"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Izmenite lozinku"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Odjavite se"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django administracija sajta"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administracija"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Dodajte"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Istorija"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Pogledaj na sajtu"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Ispravite dole navedenu grešku."
+msgstr[1] "Ispravite dole navedene greške."
+msgstr[2] "Ispravite dole navedene greške."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Dodajte %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filter"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Obrišite"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Brisanjem %(object_name)s  '%(escaped_object)s' došlo bi do brisanja pridruženih objekata, ali nemate prava da brišete sledeće objekte:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Da li ste sigurni da želite da obrišete %(object_name)s \"%(escaped_object)s\"? Takođe će biti obrisani sledeći pridruženi objekti:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Da, siguran sam"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Po %(filter_title)s"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Dostupni modeli u aplikaciji %(name)s."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Izmenite"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Nemate prava da vršite izmene."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Poslednje aktivnosti"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Moje aktivnosti"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Bez aktivnosti"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Nešto nije u redu sa vašom istalacijom baze podataka. Proverite da li su sve tabele kreirane i čitljive od strane definisanog korisnika."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Korisničko ime:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Lozinka:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Datum/vreme"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Korisnik"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Aktivnost"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j. N Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Ovaj objekat nema istoriju promena. Najverovatnije nije dodat korišćenjem administracije sajta."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Prikaži sve"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Nađi"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 rezultat"
+msgstr[1] "%(counter)s rezultata"
+msgstr[2] "%(counter)s rezultata"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s ukupno"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Snimite kao novi"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Snimite i dodaj još jedan"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Snimite i nastavite sa izmenama"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Snimite"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Prvo unesite korisničko ime i lozinku da bi ste mogli menjati ostale opcije za korisnika."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:12
+#: contrib/auth/forms.py:49
+msgid "Username"
+msgstr "Korisničko ime"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:15
+#: contrib/auth/forms.py:50
+#: contrib/auth/forms.py:166
+msgid "Password"
+msgstr "Lozinka"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:167
+msgid "Password (again)"
+msgstr "Lozinka (ponovo)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Zbog provere, ponovite lozinku."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Unesite novu lozinku za korisnika <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentacioni \"bookmarklets\""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Da bi ste instalirali \"bookmarklet\", odvucite link u vaše \"bookmark\"-e, ili kliknite desnim tasterom i dodajte ga. Sada možete da izaberete \"bookmark\" sa bilo koje strane na sajtu. Napomena: pristup nekima od strana mora biti sa kompjutera čija je IP adresa označena kao \"internal\" (kontaktirajte sistem administratora ako niste sigurni da li je vaš IP označen kao \"internal\").</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Dokumentacija za ovu stranu"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Skače sa bilo koje strane na stranu sa dokumentacijom za \"view\" koji generiše tu stranu."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Prikažite ID objekta"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Prikazuje \"content-type\" i jedinstveni ID strane koje predstavlja jedan objekt."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Izmena objekta (u aktivnom prozoru)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Skače na admin stranu za strane koje predstavljaju objekt."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Izmeni objekat (novi prozor)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Kao iznad, samo otvara admin stranu u novom prozoru."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Hvala Vam na poseti."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Prijavite se ponovo"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Izmenite lozinku"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Lozinka je uspešno izmenjena"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Vaša lozinka je izmenjena."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Unesite staru lozinku, nakon toga unesite novu lozinku dva puta, radi provere ispravnosti unosa."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Stara lozinka:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Nova lozinka:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Potvrdite novu lozinku:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Izmenite moju lozinku"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Resetovanje lozinke"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Vaša lozinka je uspešno resetovana"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Nova lozinka vam je poslata na zadatu e-mail adresu. E-mail bi trebao da stigne u narednih nekoliko minuta."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Primili ste ovaj e-mail jer ste zatražili resetovanje lozinke"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "za vaš korisnički nalog na %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Vaša nova lozinka je: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Lozinku možete izmeniti na sledećoj strani:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Vaše korisničko ime, u slučaju da ste zaboravili:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Hvala Vam na poseti!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s tim"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Zaboravili ste svoju lozinku? Unesite vašu e-mail adresu i dobićete novu lozinku na dati e-mail."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mail adresa:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Resetujte moju lozinku"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Svi datumi"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Izaberite %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Izaberite %s za izmenu"
+
+#: contrib/admindocs/views.py:53
+#: contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr ""
+
+#: contrib/admindocs/views.py:87
+#: contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr ""
+
+#: contrib/admindocs/views.py:153
+#: contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr ""
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Aplikacija %r nije nađena"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Model %(model_name)r nije nađen u aplikaciji %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "povezani `%(app_label)s.%(data_type)s` objekti"
+
+#: contrib/admindocs/views.py:206
+#: contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242
+#: contrib/admindocs/views.py:247
+msgid "model:"
+msgstr ""
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "povezani `%(app_label)s.%(object_name)s` objekti"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "svi %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "broj %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Polja u %s objekata"
+
+#: contrib/admindocs/views.py:317
+#: contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330
+#: contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337
+#: contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Ceo broj"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Logička vrednost (Tačno ili Netačno)"
+
+#: contrib/admindocs/views.py:319
+#: contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Niz karaktera (maksimalno %(max_length)s karaktera)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Brojevi razdvojeni zarezima"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Datum (bez vremena)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Datum (sa vremenom)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Decimalni broj"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "E-mail adresa"
+
+#: contrib/admindocs/views.py:325
+#: contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Putanja do datoteke"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr ""
+
+#: contrib/admindocs/views.py:331
+#: contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP adresa"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Logička vrednost (Tačno, Netačno ili prazno)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Relacija ka nadređenom objektu"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Telefonski broj"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Tekst"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Vreme"
+
+#: contrib/admindocs/views.py:342
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "U.S. država (dva VELIKA slova)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML tekst"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s nije urlpattern objekt"
+
+#: contrib/auth/admin.py:17
+msgid "Personal info"
+msgstr "Lične informacije"
+
+#: contrib/auth/admin.py:18
+msgid "Permissions"
+msgstr "Dozvole"
+
+#: contrib/auth/admin.py:19
+msgid "Important dates"
+msgstr "Važni datumi"
+
+#: contrib/auth/admin.py:20
+msgid "Groups"
+msgstr "Grupe"
+
+#: contrib/auth/admin.py:47
+msgid "Add user"
+msgstr "Dodajte korisnika"
+
+#: contrib/auth/forms.py:13
+#: contrib/auth/models.py:134
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Obavezno. 30 ili manje karaktera. Samo slova, brojevi i donja crta \"_\"."
+
+# nesh: Ovo je opis za stari SlugField
+#: contrib/auth/forms.py:14
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Ovo polje može sadržati samo slova, brojeve i donju crtu (_)."
+
+#: contrib/auth/forms.py:16
+msgid "Password confirmation"
+msgstr "Potvrdite lozinku"
+
+#: contrib/auth/forms.py:28
+msgid "A user with that username already exists."
+msgstr "Korisnik već postoji."
+
+#: contrib/auth/forms.py:34
+#: contrib/auth/forms.py:153
+#: contrib/auth/forms.py:178
+msgid "The two password fields didn't match."
+msgstr "Polja za lozinku nisu ista."
+
+#: contrib/auth/forms.py:72
+#: contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Neaktivni nalog."
+
+#: contrib/auth/forms.py:77
+#: contrib/comments/views/comments.py:49
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Vaš internet čitač nije prihvatio \"cookie\". \"Cookie\" podrška je potrebna da bi ste mogli da se prijavite."
+
+#: contrib/auth/forms.py:90
+msgid "E-mail"
+msgstr "E-mail"
+
+#: contrib/auth/forms.py:99
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Ova e-mail adresa nije povezana sa nijednim korisničkim nalogom. Da li ste sigurni da ste registrovani?"
+
+#: contrib/auth/forms.py:124
+#, python-format
+msgid "Password reset on %s"
+msgstr "Resetovanje lozinke za %s"
+
+#: contrib/auth/forms.py:131
+msgid "Old password"
+msgstr "Stara lozinka"
+
+#: contrib/auth/forms.py:132
+msgid "New password"
+msgstr "Nova lozinka"
+
+#: contrib/auth/forms.py:133
+msgid "New password confirmation"
+msgstr "Potvrda nove lozinke"
+
+#: contrib/auth/forms.py:145
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Pogrešna stara lozinka. Unesite je ponovo."
+
+#: contrib/auth/models.py:73
+#: contrib/auth/models.py:93
+msgid "name"
+msgstr "ime"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "šifra dozvole"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "dozvola"
+
+#: contrib/auth/models.py:79
+#: contrib/auth/models.py:94
+msgid "permissions"
+msgstr "dozvole"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "grupa"
+
+#: contrib/auth/models.py:98
+#: contrib/auth/models.py:144
+msgid "groups"
+msgstr "grupe"
+
+#: contrib/auth/models.py:134
+msgid "username"
+msgstr "korisničko ime"
+
+#: contrib/auth/models.py:135
+msgid "first name"
+msgstr "ime"
+
+#: contrib/auth/models.py:136
+msgid "last name"
+msgstr "prezime"
+
+#: contrib/auth/models.py:137
+msgid "e-mail address"
+msgstr "e-mail adresa"
+
+#: contrib/auth/models.py:138
+msgid "password"
+msgstr "lozinka"
+
+#: contrib/auth/models.py:138
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "Koristite '[algo]$[salt]$[hexdigest]' ili <a href=\"password/\">promeni lozinku</a>."
+
+#: contrib/auth/models.py:139
+msgid "staff status"
+msgstr "dozvoljen pristup administraciji sajta"
+
+#: contrib/auth/models.py:139
+msgid "Designates whether the user can log into this admin site."
+msgstr "Da li korisnik ima pristup administratorskom delu sajta."
+
+#: contrib/auth/models.py:140
+msgid "active"
+msgstr "aktivan"
+
+#: contrib/auth/models.py:140
+msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts."
+msgstr "Označava aktivne korisnike. Koristite umesto brisanja naloga."
+
+#: contrib/auth/models.py:141
+msgid "superuser status"
+msgstr "da li je korisnik administrator"
+
+#: contrib/auth/models.py:141
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Označava korisnike koji imaju sva prava."
+
+#: contrib/auth/models.py:142
+msgid "last login"
+msgstr "vreme poslednje posete"
+
+#: contrib/auth/models.py:143
+msgid "date joined"
+msgstr "datum otvaranja naloga"
+
+#: contrib/auth/models.py:145
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Uz ručno dodata prava, korisnik će dobiti sva prava iz grupa kojima pripada."
+
+#: contrib/auth/models.py:146
+msgid "user permissions"
+msgstr "korisničke dozvole"
+
+#: contrib/auth/models.py:150
+msgid "user"
+msgstr "korisnik"
+
+#: contrib/auth/models.py:151
+msgid "users"
+msgstr "korisnici"
+
+#: contrib/auth/models.py:306
+msgid "message"
+msgstr "poruka"
+
+#: contrib/auth/views.py:49
+msgid "Logged out"
+msgstr "Odjavljeni ste"
+
+#: contrib/auth/views.py:116
+msgid "Password changed successfully."
+msgstr "Lozinka je uspešno izmenjena."
+
+#: contrib/auth/views.py:122
+#, python-format
+msgid "Change password: %s"
+msgstr "Izmenite lozinku: %s"
+
+#: contrib/comments/models.py:71
+#: contrib/comments/models.py:164
+msgid "object ID"
+msgstr "ID objekta"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "naslov"
+
+#: contrib/comments/models.py:73
+#: contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "komentar"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "ocena #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "ocena #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "ocena #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "ocena #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "ocena #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "ocena #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "ocena #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "ocena #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "da li je ocena validna"
+
+#: contrib/comments/models.py:87
+#: contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "datum/vreme slanja"
+
+#: contrib/comments/models.py:88
+#: contrib/comments/models.py:168
+msgid "is public"
+msgstr "da li je javni"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "da li je obrisan"
+
+#: contrib/comments/models.py:90
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Izaberite ako je komentar neodgovarajući. Biće ispisano \"Ovaj komentar je obrisan\" umesto teksta komentara."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "komentari"
+
+#: contrib/comments/models.py:128
+#: contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Objekat sa sadržajem"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Poslao %(user)s dana %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "ime"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "ip adresa"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "odobreno od strane moderatora"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "slobodan komentar"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "slobodni komentari"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "rezultat"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "datum rezultata"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "\"karma\" rezultat"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "\"karma\" rezultati"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "Ocena %(score)d od strane %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Ovaj komentar je označen od %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "datum označavanja"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "korisnička oznaka"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "korisničke oznake"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "%r je označio"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "datum brisanja"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "brisanje od strane moderatora"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "brisanja od strane moderatora"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Obrisao moderator %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Zaboravili ste lozinku?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Ocene"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Obavezan unos"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcioni unos"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Pošaljite sliku"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentar:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Pregled komentara"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Vaše ime:"
+
+# nesh: grrrrr, ala je rogobatno
+# petar: malo sam ga izmenio da bude jasniji
+#: contrib/comments/views/comments.py:76
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Ova ocena je obavezna pošto ste uneli bar jednu ocenu."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Ovaj komentar je poslat od korisnika koji je poslao manje od %(count)s komentara:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Ovaj komentar je poslat od korisnika koji je poslao manje od %(count)s komentara:\n"
+"\n"
+"%(text)s"
+msgstr[2] ""
+"Ovaj komentar je poslat od korisnika koji je poslao manje od %(count)s komentara:\n"
+"\n"
+"%(text)s"
+
+# nesh: skethcy???
+# petar: Pojma nemam sta im to znaci
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Komentar je poslat od strane \"sketchy\" korisnika:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Jedino je POST dozvoljen"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Jedno ili više obaveznih polja nije poslato"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Neko je menjao formu za komentare (povreda sigurnosti)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Forma komentara ima neispravni 'target' parametar -- ID objekta je neispravan"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Ovaj komentar nije koristio ni 'preview' ni 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonimni korisnici ne mogu da glasaju"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Neispravan ID komentara"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Ne možete glasati sami za sebe"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "naziv python modula"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "tip sadržaja"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "tipovi sadržaja"
+
+#: contrib/flatpages/admin.py:9
+msgid "Advanced options"
+msgstr "Napredne opcije"
+
+#: contrib/flatpages/models.py:9
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Primer: '/o-nama/kontakt/'. Proverite da li ste uneli '/' na početku i na kraju."
+
+#: contrib/flatpages/models.py:10
+msgid "title"
+msgstr "naslov"
+
+#: contrib/flatpages/models.py:11
+msgid "content"
+msgstr "sadržaj"
+
+#: contrib/flatpages/models.py:12
+msgid "enable comments"
+msgstr "omogućite komentare"
+
+#: contrib/flatpages/models.py:13
+msgid "template name"
+msgstr "naziv templejta"
+
+#: contrib/flatpages/models.py:14
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Primer: 'flatpages/kontakt-stranica.html'. Ako ne zadate sistem će koristiti 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:15
+msgid "registration required"
+msgstr "samo za registrovane korisnike"
+
+#: contrib/flatpages/models.py:15
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Ako izaberete ovu opciju samo prijavljeni korisnici će imati pristup datoj strani."
+
+#: contrib/flatpages/models.py:20
+msgid "flat page"
+msgstr "statična strana"
+
+#: contrib/flatpages/models.py:21
+msgid "flat pages"
+msgstr "statične strane"
+
+# th/rd se ne koriste kod nas
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr ""
+
+# vidi "th"
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr ""
+
+# vidi "th"
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr ""
+
+# vidi "th"
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milion"
+msgstr[1] "%(value).1f miliona"
+msgstr[2] "%(value).1f miliona"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f milijarda"
+msgstr[1] "%(value).1f milijarde"
+msgstr[2] "%(value).1f milijardi"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f bilion"
+msgstr[1] "%(value).1f biliona"
+msgstr[2] "%(value).1f biliona"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "jedan"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "dva"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "tri"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "četiri"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "pet"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "šest"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "sedam"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "osam"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "devet"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "danas"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "sutra"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "juče"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:49
+#: contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135
+#: contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "U ovo polje se mogu uneti samo brojevi."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Morate unete 7 ili 8 cifara."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:80
+#, fuzzy
+msgid "Invalid CUIT."
+msgstr "Neispravan URL: %s"
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:10
+#, fuzzy
+msgid "Styria"
+msgstr "Srpski"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr ""
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr ""
+
+#: contrib/localflavor/at/forms.py:20
+#: contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+#, fuzzy
+msgid "Enter a zip code in the format XXXX."
+msgstr "Unesite ispravno vreme u HH:MM formatu."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:21
+#, fuzzy
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Unesite ispravno vreme u HH:MM formatu."
+
+# nesh: tel. brojevi su u američkom formatu, ovo se ionako neće koristiti u i18n delu
+#: contrib/localflavor/br/forms.py:30
+#, fuzzy
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefonski brojevi moraju biti u formatu XXX-XXX-XXXX. \"%s\" je neispravan."
+
+#: contrib/localflavor/br/forms.py:58
+msgid "Select a valid brazilian state. That state is not one of the available states."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:136
+#, fuzzy
+msgid "This field requires at least 14 digits"
+msgstr "Obavezno polje."
+
+#: contrib/localflavor/ca/forms.py:17
+#, fuzzy
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Unesite ispravno vreme u HH:MM formatu."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+#, fuzzy
+msgid "Berne"
+msgstr "korisničko ime"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+#, fuzzy
+msgid "Glarus"
+msgstr "Grupe"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+#, fuzzy
+msgid "Lucerne"
+msgstr "korisničko ime"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+#, fuzzy
+msgid "Thurgau"
+msgstr "Četvrtak"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+#, fuzzy
+msgid "Zug"
+msgstr "avg"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:64
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:29
+#, fuzzy
+msgid "Enter a valid Chilean RUT."
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:31
+#, fuzzy
+msgid "The Chilean RUT is not valid."
+msgstr "Neispravno polje."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+#, fuzzy
+msgid "Berlin"
+msgstr "Brazilski"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+#, fuzzy
+msgid "Hessen"
+msgstr "poruka"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14
+#: contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+#, fuzzy
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Unesite ispravno vreme u HH:MM formatu."
+
+#: contrib/localflavor/de/forms.py:41
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+#, fuzzy
+msgid "Granada"
+msgstr "Nemački"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+#, fuzzy
+msgid "Huesca"
+msgstr "Utorak"
+
+#: contrib/localflavor/es/es_provinces.py:27
+#, fuzzy
+msgid "Jaen"
+msgstr "Jan."
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+#, fuzzy
+msgid "Palencia"
+msgstr "Galski"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+#, fuzzy
+msgid "Segovia"
+msgstr "Slovenački"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+#, fuzzy
+msgid "Soria"
+msgstr "Srpski"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+#, fuzzy
+msgid "Valencia"
+msgstr "Galski"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+#, fuzzy
+msgid "Catalonia"
+msgstr "Italijanski"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+#, fuzzy
+msgid "Galicia"
+msgstr "Galski"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
+msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:66
+#, fuzzy
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Unesite ispravnu IP adresu."
+
+#: contrib/localflavor/es/forms.py:67
+#, fuzzy
+msgid "Please enter a valid NIF or NIE."
+msgstr "Unesite ispravan %s."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:28
+#, fuzzy
+msgid "Enter a valid Finnish social security number."
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/in_/forms.py:14
+#, fuzzy
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Unesite ispravno vreme u HH:MM formatu."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+#, fuzzy
+msgid "Enter a valid zip code."
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/it/forms.py:43
+#, fuzzy
+msgid "Enter a valid Social Security number."
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/it/forms.py:68
+#, fuzzy
+msgid "Enter a valid VAT number."
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+#, fuzzy
+msgid "Shimane"
+msgstr "Izmenite"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+#, fuzzy
+msgid "Ehime"
+msgstr "Vreme"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+#, fuzzy
+msgid "Campeche"
+msgstr "Češki"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de MÃ©xico"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "MichoacÃ¡n"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo LeÃ³n"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "QuerÃ©taro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+#, fuzzy
+msgid "Sinaloa"
+msgstr "Slovački"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis PotosÃ­"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "YucatÃ¡n"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+#, fuzzy
+msgid "Enter a valid postal code"
+msgstr "Unesite ispravnu e-mail adresu."
+
+#: contrib/localflavor/nl/forms.py:52
+#, fuzzy
+msgid "Enter a valid phone number"
+msgstr "Unesite celi broj."
+
+#: contrib/localflavor/nl/forms.py:78
+#, fuzzy
+msgid "Enter a valid SoFi number"
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+#, fuzzy
+msgid "Drente"
+msgstr "Obrišite"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+#, fuzzy
+msgid "Gelderland"
+msgstr "Nemački"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+#, fuzzy
+msgid "Utrecht"
+msgstr "Francuski"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+#, fuzzy
+msgid "Zeeland"
+msgstr "Islandski"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+#, fuzzy
+msgid "Enter a valid Norwegian social security number."
+msgstr "Unesite ispravan decimalni broj."
+
+#: contrib/localflavor/pe/forms.py:24
+#, fuzzy
+msgid "This field requires 8 digits."
+msgstr "Obavezno polje."
+
+#: contrib/localflavor/pe/forms.py:52
+#, fuzzy
+msgid "This field requires 11 digits."
+msgstr "Obavezno polje."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:156
+#, fuzzy
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Unesite ispravno vreme u HH:MM formatu."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+#, fuzzy
+msgid "Opole"
+msgstr "Opcioni unos"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+#, fuzzy
+msgid "Pomerania"
+msgstr "Rumunski"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+#, fuzzy
+msgid "Silesia"
+msgstr "Slovenački"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/ro/forms.py:19
+#, fuzzy
+msgid "Enter a valid CIF."
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/ro/forms.py:56
+#, fuzzy
+msgid "Enter a valid CNP."
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr ""
+
+# nesh: tel. brojevi su u američkom formatu, ovo se ionako neće koristiti u i18n delu
+#: contrib/localflavor/ro/forms.py:171
+#, fuzzy
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Telefonski brojevi moraju biti u formatu XXX-XXX-XXXX. \"%s\" je neispravan."
+
+#: contrib/localflavor/ro/forms.py:194
+#, fuzzy
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Unesite ispravno vreme u HH:MM formatu."
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+#, fuzzy
+msgid "Galanta"
+msgstr "Galski"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+#, fuzzy
+msgid "Gelnica"
+msgstr "Galski"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+#, fuzzy
+msgid "Martin"
+msgstr "Ocene"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+#, fuzzy
+msgid "Senica"
+msgstr "Slovenački"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+#, fuzzy
+msgid "Skalica"
+msgstr "Galski"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+#, fuzzy
+msgid "Trencin"
+msgstr "Francuski"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+#, fuzzy
+msgid "Enter a valid postcode."
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+#, fuzzy
+msgid "Surrey"
+msgstr "Trenutno:"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+#, fuzzy
+msgid "Borders"
+msgstr "Red:"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+#, fuzzy
+msgid "Grampian"
+msgstr "Nemački"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+#, fuzzy
+msgid "Lothian"
+msgstr "Prijavite se"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+#, fuzzy
+msgid "Enter a valid South African ID number"
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/za/forms.py:54
+#, fuzzy
+msgid "Enter a valid South African postal code"
+msgstr "Unesite ispravno ime fajla."
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "preusmeri od"
+
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Unesite apsolutnu putanju bez imena domena. Primer: '/dogadjaji/pretraga/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "preusmeri ka"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Može biti apsolutna putanja (kao gore) ili puni URL koji počinje sa 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "Preusmeravanje"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "Preusmeravanja"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "ključ sesije"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "podaci sesije"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "datum prestanka važenja sesije"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sesija"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sesije"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "ime domena"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "naziv"
+
+#: contrib/sites/models.py:38
+msgid "site"
+msgstr "sajt"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "sajtovi"
+
+#: core/validators.py:76
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Ovo polje može sadržati samo slova, brojeve, donju crtu (_), crtu (-) i kose crte."
+
+#: core/validators.py:80
+#, fuzzy
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Ovo polje može sadržati samo slova, brojeve, donju crtu (_), crtu (-) i kose crte."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Velika slova nisu dozvoljena."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Mala slova nisu dozvoljena."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Unesite brojeve razdvojene zarezima."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Unesite ispravne e-mail adrese razdvojene zarezima."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Unesite ispravnu IP adresu."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Prazne vrednosti nisu dozvoljene."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Ovde možete uneti samo brojeve."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Podatak se ne može sastojati samo od brojeva."
+
+#: core/validators.py:128
+#: forms/fields.py:158
+msgid "Enter a whole number."
+msgstr "Unesite celi broj."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Ovde možete koristiti samo slova."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Neispravan datum: %s"
+
+#: core/validators.py:152
+#: db/models/fields/__init__.py:574
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Unesite ispravan datum u YYYY-MM-DD formatu."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Unesite ispravno vreme u HH:MM formatu."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Unesite ispravan datum i vreme u YYYY-MM-DD HH:MM formatu."
+
+#: core/validators.py:166
+#: forms/fields.py:409
+msgid "Enter a valid e-mail address."
+msgstr "Unesite ispravnu e-mail adresu."
+
+#: core/validators.py:178
+#: core/validators.py:470
+#: forms/fields.py:427
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Fajl nije poslat, proverite tip enkoding form-a."
+
+#: core/validators.py:189
+#: forms/fields.py:467
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Pošaljite ispravnu sliku. Fajl koji ste poslali ili nije slika ili je sam fajl oštećen."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s ne pokazuje na ispravnu sliku"
+
+# nesh: tel. brojevi su u američkom formatu, ovo se ionako neće koristiti u i18n delu
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefonski brojevi moraju biti u formatu XXX-XXX-XXXX. \"%s\" je neispravan."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s ne pokazuje na ispravni QuickTime video fajl."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "Unesite ispravan URL."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Unesite ispravan HTML. Greške su:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Neispravan XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Neispravan URL: %s"
+
+#: core/validators.py:255
+#: core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s je neispravan link."
+
+# nesh: Ni ovo nije interesantno za i18n
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Unesite ispravnu skraćenicu za U.S. državu."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Pripazi na jezik! %s reč nije ovde dozvoljena."
+msgstr[1] "Pripazi na jezik! %s reči nisu ovde dozvoljene."
+msgstr[2] "Pripazi na jezik! %s reči nisu ovde dozvoljene."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Ovo polje mora biti jednako sa poljem '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Morate popuniti barem jedno polje."
+
+#: core/validators.py:312
+#: core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Popunite oba polja ili oba ostavite prazna."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Ovo polje mora biti uneto ako polje %(field)s ima vrednost %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Ovo polje mora biti uneto ako polje %(field)s nema vrednost %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Duple vrednosti nisu dozvoljene."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Vrednost mora biti između %(lower)s i %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Vrednost mora biti najmanje %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Vrednost ne sme biti veća od %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Vrednost mora biti stepena %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Unesite ispravan decimalni broj."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Unesite ispravan decimalni broj sa %s cifrom."
+msgstr[1] "Unesite ispravan decimalni broj sa %s cifre."
+msgstr[2] "Unesite ispravan decimalni broj sa %s cifara."
+
+#: core/validators.py:443
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Unesite ispravan decimalni broj sa celim delom od najviše %s cifre."
+msgstr[1] "Unesite ispravan decimalni broj sa celim delom od najviše %s cifre."
+msgstr[2] "Unesite ispravan decimalni broj sa celim delom od najviše %s cifara."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Unesite decimalni broj sa najviše %s decimalnim mestom."
+msgstr[1] "Unesite decimalni broj sa najviše %s decimalna mesta."
+msgstr[2] "Unesite decimalni broj sa najviše %s decimalnih mesta."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Unesite ispravan decimalni broj."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Veličina fajla mora biti najmanje %s bajtova."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Veličina fajla mora biti najviše %s bajtova."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Pogrešan format polja."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Neispravno polje."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Ništa nije moglo da se skine sa URL-a %s."
+
+#: core/validators.py:535
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "Sa URL-a %(url)s se vratio pogrešan Content-Type header '%(contenttype)s'."
+
+#: core/validators.py:568
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Zatvorite nezatvoren tag \"%(tag)s\" iz reda %(line)s. (Red počinje sa \"%(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Tekst koji počinje u redu %(line)s nije dozvoljen u ovom kontekstu. (Red počinje sa \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "Atribut \"%(attr)s\" u red %(line)s je neispravan. (Red počinje sa \"%(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "Tag \"<%(tag)s>\" u redu %(line)s je neispravan. (Red počinje \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "Tag-u u redu %(line)s nedostaje jedan ili više atributa. (Red počinje sa \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "Atribut \"%(attr)s\" u redu %(line)s ima neispravnu vrednost. (Red počinje sa \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s sa ovim tipom %(type)s već postoji za polje %(field)s."
+
+#: db/models/fields/__init__.py:47
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s sa ovim %(fieldname)s već postoji."
+
+#: db/models/fields/__init__.py:175
+#: db/models/fields/__init__.py:348
+#: db/models/fields/__init__.py:797
+#: db/models/fields/__init__.py:808
+#: forms/fields.py:52
+#: oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Obavezno polje."
+
+#: db/models/fields/__init__.py:462
+msgid "This value must be an integer."
+msgstr "Vrednost mora biti celi broj."
+
+#: db/models/fields/__init__.py:508
+msgid "This value must be either True or False."
+msgstr "Vrednost mora biti True ili False."
+
+#: db/models/fields/__init__.py:537
+msgid "This field cannot be null."
+msgstr "Polje ne može sadržati praznu vrednost."
+
+#: db/models/fields/__init__.py:639
+#: db/models/fields/__init__.py:656
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[ss[.uuuuuu]] format."
+msgstr "Unesite ispravan datum i vreme u YYYY-MM-DD HH:MM[ss[.uuuuuu]] formatu."
+
+#: db/models/fields/__init__.py:712
+msgid "This value must be a decimal number."
+msgstr "Vrednost mora biti decimalni broj."
+
+#: db/models/fields/__init__.py:817
+msgid "Enter a valid filename."
+msgstr "Unesite ispravno ime fajla."
+
+#: db/models/fields/__init__.py:1018
+msgid "This value must be either None, True or False."
+msgstr "Vrednost mora biti None, True ili False."
+
+#: db/models/fields/__init__.py:1133
+#: db/models/fields/__init__.py:1146
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Unesite ispravno vreme u HH:MM[:ss[.uuuuuu]]  formatu."
+
+#: db/models/fields/related.py:93
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Unesite ispravan %s."
+
+#: db/models/fields/related.py:730
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Koristite \"Ctrl\" (PC) ili \"Jabuku\" (Mek) da bi ste selektovali više stavki."
+
+#: db/models/fields/related.py:774
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Unesite validne %(self)s ID-ove. Vrednost %(value)r je neispravna."
+msgstr[1] "Unesite validne %(self)s ID-ove. Vrednost %(value)r je neispravna."
+msgstr[2] "Unesite validne %(self)s ID-ove. Vrednost %(value)r je neispravna."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Unesite ispravnu vrednost."
+
+#: forms/fields.py:130
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Proverite dužinu, maksimum je %(max)d karaktera (dobijeno %(length)d)."
+
+#: forms/fields.py:131
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Proverite dužinu, minimum je %(min)d karaktera (dobijeno %(length)d)."
+
+#: forms/fields.py:159
+#: forms/fields.py:188
+#: forms/fields.py:217
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Vrednost mora biti manja ili jednaka %s."
+
+#: forms/fields.py:160
+#: forms/fields.py:189
+#: forms/fields.py:218
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Proverite da li je vrednost veća ili jednaka %s."
+
+#: forms/fields.py:187
+#: forms/fields.py:216
+msgid "Enter a number."
+msgstr "Unesite broj."
+
+#: forms/fields.py:219
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Proverite da nema više od %s cifara."
+
+#: forms/fields.py:220
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Proverite da nema više od %s decimalnih mesta."
+
+#: forms/fields.py:221
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Proverite da nema više od %s cifara u celom delu."
+
+#: forms/fields.py:269
+#: forms/fields.py:799
+msgid "Enter a valid date."
+msgstr "Unesite ispravan datum."
+
+#: forms/fields.py:302
+#: forms/fields.py:800
+msgid "Enter a valid time."
+msgstr "Unesite ispravno vreme."
+
+#: forms/fields.py:341
+msgid "Enter a valid date/time."
+msgstr "Unesite ispravan datum i vreme."
+
+#: forms/fields.py:428
+msgid "No file was submitted."
+msgstr "Fajl nije poslat."
+
+#: forms/fields.py:429
+#: oldforms/__init__.py:693
+msgid "The submitted file is empty."
+msgstr "Poslati fajl je prazan."
+
+#: forms/fields.py:528
+msgid "Enter a valid URL."
+msgstr "Unesite ispravan URL."
+
+#: forms/fields.py:529
+msgid "This URL appears to be a broken link."
+msgstr "URL je neispravan link."
+
+#: forms/fields.py:597
+#: forms/fields.py:648
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Izaberite validnu opciju. %(value)s nije među njima."
+
+#: forms/fields.py:649
+#: forms/fields.py:710
+#: forms/models.py:581
+msgid "Enter a list of values."
+msgstr "Unesite listu vrednosti."
+
+#: forms/fields.py:828
+msgid "Enter a valid IPv4 address."
+msgstr "Unesite IPv4 adresu."
+
+#: forms/models.py:514
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Izaberite validnu opciju. Izabrana opcija nije validna."
+
+#: forms/models.py:582
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Izaberite validnu opciju. Opcija %s nije validna."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Tekst mora imati manje od %s slova."
+msgstr[1] "Tekst mora imati manje od %s slova."
+msgstr[2] "Tekst mora imati manje od %s slova."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Novi redovi ovde nisu dozvoljeni."
+
+#: oldforms/__init__.py:512
+#: oldforms/__init__.py:586
+#: oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Izaberite validnu opciju: '%(data)s' nije u %(choices)s."
+
+#: oldforms/__init__.py:754
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Unesite celi broj između -32,768 i 32,767."
+
+#: oldforms/__init__.py:764
+msgid "Enter a positive number."
+msgstr "Unesite pozitivan broj."
+
+#: oldforms/__init__.py:774
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Unesite celi broj između 0 i 32,767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "da,ne,možda"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bajt"
+msgstr[1] "%(size)d bajta"
+msgstr[2] "%(size)d bajtova"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr ""
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr ""
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr ""
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "popodne"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "prepodne"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "popodne"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "prepodne"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "ponoć"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "podne"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Ponedeljak"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Utorak"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Sreda"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Četvrtak"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Petak"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Subota"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Nedelja"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Pon"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Uto"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Sre"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Čet"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Pet"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Sub"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Ned"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Januar"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Februar"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "March"
+msgstr "Mart"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "April"
+msgstr "April"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "May"
+msgstr "Maj"
+
+#: utils/dates.py:18
+#: utils/dates.py:31
+msgid "June"
+msgstr "Jun"
+
+#: utils/dates.py:19
+#: utils/dates.py:31
+msgid "July"
+msgstr "Jul"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Avgust"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "Septembar"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Oktobar"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "Novembar"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Decembar"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "maj"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "avg"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dec"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Avg."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dec."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "ili"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "godina"
+msgstr[1] "godine"
+msgstr[2] "godina"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mesec"
+msgstr[1] "meseca"
+msgstr[2] "meseci"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "nedelja"
+msgstr[1] "nedelje"
+msgstr[2] "nedelja"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dan"
+msgstr[1] "dana"
+msgstr[2] "dana"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "sat"
+msgstr[1] "sata"
+msgstr[2] "sati"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minut"
+msgstr[1] "munuta"
+msgstr[2] "minuta"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minuta"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(type)s: %(number)d"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(type)s: %(number)d"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "D, d.m.Y."
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "d.m.Y. H:i:s"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i:s"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "m.Y."
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "d.m."
+
+#: views/generic/create_update.py:129
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s uspešno kreiran."
+
+#: views/generic/create_update.py:172
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s uspešno promenjen."
+
+#: views/generic/create_update.py:214
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s je obrisan."
+
+#~ msgid "Added %s."
+#~ msgstr "Dodat %s"
+#~ msgid "Deleted %s."
+#~ msgstr "Obrisan %s."
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr ""
+#~ "Da li ste <a href=\"/password_reset/\">zaboravili vašu lozinku?</a>?"
+#~ msgid "Ordering"
+#~ msgstr "Redosled"
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Koristite '[algo]$[salt]$[hexdigest]'"
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "Odvojite višestruke ID-ove zarezima."
+#~ msgid "Comment"
+#~ msgstr "Komentar"
+#~ msgid "Comments"
+#~ msgstr "Komentari"
+#~ msgid "String (up to 50)"
+#~ msgstr "Niz karaktera (maksimalno 50 karaktera)"
+#~ msgid "label"
+#~ msgstr "labela"
+#~ msgid "package"
+#~ msgstr "paket"
+#~ msgid "packages"
+#~ msgstr "paketi"
+#~ msgid "Error in Template"
+#~ msgstr "Greška u templejtu"
+#~ msgid ""
+#~ "\n"
+#~ "In template %(name)s, error at line %(line)s:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "U templejtu %(name)s, greška u redu %(line)s:\n"
+
+#, fuzzy
+#~ msgid "count"
+#~ msgstr "sadržaj"
+
diff --git a/webapp/django/conf/locale/sr/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/sr/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..1de8977
--- /dev/null
+++ b/webapp/django/conf/locale/sr/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/sr/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/sr/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..c1338be
--- /dev/null
+++ b/webapp/django/conf/locale/sr/LC_MESSAGES/djangojs.po
@@ -0,0 +1,120 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-07-29 12:07+0200\n"
+"PO-Revision-Date: 2008-07-29 12:53+0100\n"
+"Last-Translator: Nebojsa Djordjevic <djnesh@gmail.com>\n"
+"Language-Team: Nesh <djnesh@gmail.com> & Petar <petar.maric@gmail.com> <sr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Country: YUGOSLAVIA\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Poedit-Language: Serbian\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Dostupno %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Izaberite sve"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Dodajte"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Izbacite"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Izabrano %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Izaberite potrebno i kliknite"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Obrišite sve"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid "January February March April May June July August September October November December"
+msgstr "Januar Februar Mart April Maj Jun Jul Avgust Septembar Oktobar Novembar Decembar"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "N P U S Č P S"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Nedelja Ponedeljak Utorak Sreda Četvrtak Petak Subota"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Prikaži"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Sakrij"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Sada"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Sat"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Izaberite vreme"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Ponoć"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 sati"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Podne"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Poništi"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Danas"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalendar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Juče"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Sutra"
+
diff --git a/webapp/django/conf/locale/sv/LC_MESSAGES/django.mo b/webapp/django/conf/locale/sv/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..b4870c7
--- /dev/null
+++ b/webapp/django/conf/locale/sv/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/sv/LC_MESSAGES/django.po b/webapp/django/conf/locale/sv/LC_MESSAGES/django.po
new file mode 100644
index 0000000..3d0a437
--- /dev/null
+++ b/webapp/django/conf/locale/sv/LC_MESSAGES/django.po
@@ -0,0 +1,4570 @@
+# Swedish translation of Django
+# Copyright (C) 2005-2007
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-19 01:28+0200\n"
+"PO-Revision-Date: 2008-05-26 11:15+0200\n"
+"Last-Translator: Ludvig Ericson <ludvig.ericson@gmail.com>\n"
+"Language-Team: Django I18N <Django-I18N@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+
+#: conf/global_settings.py:44
+msgid "Arabic"
+msgstr "Arabiska"
+
+#: conf/global_settings.py:45
+msgid "Bengali"
+msgstr "Bengaliska"
+
+#: conf/global_settings.py:46
+msgid "Bulgarian"
+msgstr "Bulgariska"
+
+#: conf/global_settings.py:47
+msgid "Catalan"
+msgstr "Katalanska"
+
+#: conf/global_settings.py:48
+msgid "Czech"
+msgstr "Tjeckiska"
+
+#: conf/global_settings.py:49
+msgid "Welsh"
+msgstr "Walesiska"
+
+#: conf/global_settings.py:50
+msgid "Danish"
+msgstr "Danska"
+
+#: conf/global_settings.py:51
+msgid "German"
+msgstr "Tyska"
+
+#: conf/global_settings.py:52
+msgid "Greek"
+msgstr "Grekiska"
+
+#: conf/global_settings.py:53
+msgid "English"
+msgstr "Engelska"
+
+#: conf/global_settings.py:54
+msgid "Spanish"
+msgstr "Spanska"
+
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "Estländska"
+
+#: conf/global_settings.py:56
+msgid "Argentinean Spanish"
+msgstr "Argentisk Spanska"
+
+#: conf/global_settings.py:57
+msgid "Basque"
+msgstr "Baskiska"
+
+#: conf/global_settings.py:58
+msgid "Persian"
+msgstr "Persiska"
+
+#: conf/global_settings.py:59
+msgid "Finnish"
+msgstr "Finska"
+
+#: conf/global_settings.py:60
+msgid "French"
+msgstr "Franska"
+
+#: conf/global_settings.py:61
+msgid "Irish"
+msgstr "Irländska"
+
+#: conf/global_settings.py:62
+msgid "Galician"
+msgstr "Galisiska"
+
+#: conf/global_settings.py:63
+msgid "Hungarian"
+msgstr "Ungerska"
+
+#: conf/global_settings.py:64
+msgid "Hebrew"
+msgstr "Hebreiska"
+
+#: conf/global_settings.py:65
+msgid "Croatian"
+msgstr "Kroatiska"
+
+#: conf/global_settings.py:66
+msgid "Icelandic"
+msgstr "Isländska"
+
+#: conf/global_settings.py:67
+msgid "Italian"
+msgstr "Italienska"
+
+#: conf/global_settings.py:68
+msgid "Japanese"
+msgstr "Japanska"
+
+#: conf/global_settings.py:69
+msgid "Georgian"
+msgstr "Georgiska"
+
+#: conf/global_settings.py:70
+msgid "Korean"
+msgstr "Koreanska"
+
+#: conf/global_settings.py:71
+msgid "Khmer"
+msgstr "Khmer"
+
+#: conf/global_settings.py:72
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:73
+msgid "Latvian"
+msgstr "Lettiska"
+
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "Lettiska"
+
+#: conf/global_settings.py:75
+msgid "Macedonian"
+msgstr "Makedonska"
+
+#: conf/global_settings.py:76
+msgid "Dutch"
+msgstr "Holländska"
+
+#: conf/global_settings.py:77
+msgid "Norwegian"
+msgstr "Norska"
+
+#: conf/global_settings.py:78
+msgid "Polish"
+msgstr "Polska"
+
+#: conf/global_settings.py:79
+msgid "Portugese"
+msgstr "Portugisiska"
+
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
+msgstr "Brasiliensk portugisiska"
+
+#: conf/global_settings.py:81
+msgid "Romanian"
+msgstr "Rumänska"
+
+#: conf/global_settings.py:82
+msgid "Russian"
+msgstr "Ryska"
+
+#: conf/global_settings.py:83
+msgid "Slovak"
+msgstr "Slovakiska"
+
+#: conf/global_settings.py:84
+msgid "Slovenian"
+msgstr "Slovenska"
+
+#: conf/global_settings.py:85
+msgid "Serbian"
+msgstr "Serbiska"
+
+#: conf/global_settings.py:86
+msgid "Swedish"
+msgstr "Svenska"
+
+#: conf/global_settings.py:87
+msgid "Tamil"
+msgstr "Tamilska"
+
+#: conf/global_settings.py:88
+msgid "Telugu"
+msgstr "Telugu"
+
+#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "Turkiska"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "Ukrainska"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "Förenklad Kinesiska"
+
+#: conf/global_settings.py:92
+msgid "Traditional Chinese"
+msgstr "Traditionell Kinesiska"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Av %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Alla"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Alla datum"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Idag"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Senaste 7 dagarna"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Denna månad"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Detta år"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Yes"
+msgstr "Ja"
+
+#: contrib/admin/filterspecs.py:147 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "No"
+msgstr "Nej"
+
+#: contrib/admin/filterspecs.py:154 forms/widgets.py:379
+#: oldforms/__init__.py:588
+msgid "Unknown"
+msgstr "Okänt"
+
+#: contrib/admin/models.py:19
+msgid "action time"
+msgstr "händelsetid"
+
+#: contrib/admin/models.py:22
+msgid "object id"
+msgstr "objektets id"
+
+#: contrib/admin/models.py:23
+msgid "object repr"
+msgstr "objektets beskrivning"
+
+#: contrib/admin/models.py:24
+msgid "action flag"
+msgstr "händelseflagga"
+
+#: contrib/admin/models.py:25
+msgid "change message"
+msgstr "ändra meddelande"
+
+#: contrib/admin/models.py:28
+msgid "log entry"
+msgstr "loggpost"
+
+#: contrib/admin/models.py:29
+msgid "log entries"
+msgstr "loggposter"
+
+#: contrib/admin/options.py:56 contrib/admin/options.py:115
+msgid "None"
+msgstr "Inget"
+
+#: contrib/admin/options.py:326
+#, python-format
+msgid "Changed %s."
+msgstr "Ändrade %s."
+
+#: contrib/admin/options.py:326 contrib/admin/options.py:336
+#: core/validators.py:279 db/models/manipulators.py:305
+msgid "and"
+msgstr "och"
+
+#: contrib/admin/options.py:331
+#, python-format
+msgid "Added %(name)s \"%(object)s\"."
+msgstr "Lade till %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:335
+#, python-format
+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
+msgstr "Ändrade %(list)s på %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:340
+#, python-format
+msgid "Deleted %(name)s \"%(object)s\"."
+msgstr "Tog bort %(name)s \"%(object)s\"."
+
+#: contrib/admin/options.py:344
+msgid "No fields changed."
+msgstr "Inga fält ändrade."
+
+#: contrib/admin/options.py:405 contrib/auth/admin.py:50
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" lades till."
+
+#: contrib/admin/options.py:409 contrib/admin/options.py:442
+#: contrib/auth/admin.py:55
+msgid "You may edit it again below."
+msgstr "Du kan ändra det igen nedanför."
+
+#: contrib/admin/options.py:419 contrib/admin/options.py:452
+#, python-format
+msgid "You may add another %s below."
+msgstr "Du kan lägga till ytterligare %s nedanför."
+
+#: contrib/admin/options.py:440
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" ändrades."
+
+#: contrib/admin/options.py:448
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"%(name)s \"%(obj)s\" lades till. Du kan redigera objektet igen nedanför."
+
+#: contrib/admin/options.py:514
+#, python-format
+msgid "Add %s"
+msgstr "Lägg till %s"
+
+#: contrib/admin/options.py:591
+#, python-format
+msgid "Change %s"
+msgstr "Ändra %s"
+
+#: contrib/admin/options.py:622
+msgid "Database error"
+msgstr "Databasfel"
+
+#: contrib/admin/options.py:671
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" togs bort."
+
+#: contrib/admin/options.py:678
+msgid "Are you sure?"
+msgstr "Är du säker?"
+
+#: contrib/admin/options.py:705
+#, python-format
+msgid "Change history: %s"
+msgstr "Ändringshistorik: %s"
+
+#: contrib/admin/sites.py:18 contrib/admin/views/decorators.py:16
+#: contrib/auth/forms.py:72 contrib/comments/views/comments.py:56
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Var god ange ett korrekt användarnamn och lösenord. Tänk på att skilja "
+"mellan gemener och versaler."
+
+#: contrib/admin/sites.py:238 contrib/admin/views/decorators.py:68
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Du måste logga in igen eftersom din session har förfallit. Oroa dig inte: "
+"Din data har sparats."
+
+#: contrib/admin/sites.py:245 contrib/admin/views/decorators.py:75
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Det verkar som att din webläsare inte är konfigurerad att acceptera cookies. "
+"Aktivera cookies, ladda om denna sida och försök igen."
+
+#: contrib/admin/sites.py:259 contrib/admin/sites.py:265
+#: contrib/admin/views/decorators.py:92
+msgid "Usernames cannot contain the '@' character."
+msgstr "Användarnamn får inte innehålla '@'-tecknet."
+
+#: contrib/admin/sites.py:262 contrib/admin/views/decorators.py:88
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Din e-postadress är inte ditt användarnamn. Försök med '%s' istället."
+
+#: contrib/admin/sites.py:330
+msgid "Site administration"
+msgstr "Webbplatsadministration"
+
+#: contrib/admin/sites.py:352 contrib/admin/templates/admin/login.html:27
+#: contrib/admin/templates/registration/password_reset_complete.html:14
+#: contrib/admin/views/decorators.py:30
+msgid "Log in"
+msgstr "Logga in"
+
+#: contrib/admin/util.py:138
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Ett eller flera %(fieldname)s i %(name)s: %(obj)s"
+
+#: contrib/admin/util.py:143
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Ett eller flera %(fieldname)s i %(name)s:"
+
+#: contrib/admin/widgets.py:65
+msgid "Date:"
+msgstr "Datum:"
+
+#: contrib/admin/widgets.py:65
+msgid "Time:"
+msgstr "Tid:"
+
+#: contrib/admin/widgets.py:89
+msgid "Currently:"
+msgstr "Aktuell:"
+
+#: contrib/admin/widgets.py:89
+msgid "Change:"
+msgstr "Ändra:"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Sidan kunde inte hittas"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Vi beklagar men den begärda sidan hittades inte."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/change_form.html:17
+#: contrib/admin/templates/admin/change_list.html:8
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/auth/user/change_password.html:10
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Hem"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serverfel"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serverfel (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Serverfel <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Ett fel har uppstått. Administratören har meddelats via e-post och felet bör "
+"vara åtgärdat inom kort. Tack för visat tålamod."
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Välkommen,"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:13
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+msgid "Change password"
+msgstr "Ändra lösenord"
+
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Logga ut"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django webbplatsadministration"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django-administration"
+
+#: contrib/admin/templates/admin/change_form.html:19
+#: contrib/admin/templates/admin/index.html:29
+msgid "Add"
+msgstr "Lägg till"
+
+#: contrib/admin/templates/admin/change_form.html:26
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Historik"
+
+#: contrib/admin/templates/admin/change_form.html:27
+msgid "View on site"
+msgstr "Visa på webbplats"
+
+#: contrib/admin/templates/admin/change_form.html:37
+#: contrib/admin/templates/admin/auth/user/change_password.html:22
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Rätta till felet nedan."
+msgstr[1] "Rätta till felen nedan."
+
+#: contrib/admin/templates/admin/change_list.html:16
+#, python-format
+msgid "Add %(name)s"
+msgstr "Lägg till %(name)s"
+
+#: contrib/admin/templates/admin/change_list.html:26
+msgid "Filter"
+msgstr "Filter"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
+msgid "Delete"
+msgstr "Ta bort"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:15
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Att ta bort %(object_name)s '%(escaped_object)s' skulle innebära att "
+"relaterade objekt togs bort, men ditt konto har inte rättigheter att ta bort "
+"följande objekttyper:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:22
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Är du säker på att du vill ta bort %(object_name)s \"%(escaped_object)s\"? "
+"Följande relaterade objekt kommer att tas bort:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:27
+msgid "Yes, I'm sure"
+msgstr "Ja, jag är säker"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Av %(filter_title)s "
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modeller tillgängliga i applikationen %(name)s."
+
+#: contrib/admin/templates/admin/index.html:19
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:35
+msgid "Change"
+msgstr "Ändra"
+
+#: contrib/admin/templates/admin/index.html:45
+msgid "You don't have permission to edit anything."
+msgstr "Du har inte rättigheter att redigera något."
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "Recent Actions"
+msgstr "Senaste Händelser"
+
+#: contrib/admin/templates/admin/index.html:54
+msgid "My Actions"
+msgstr "Mina händelser"
+
+#: contrib/admin/templates/admin/index.html:58
+msgid "None available"
+msgstr "Inga tillgängliga"
+
+#: contrib/admin/templates/admin/invalid_setup.html:7
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Någonting är fel med din databasinstallation. Se till att de rätta "
+"databastabellerna har skapats och att databasen är läsbar av rätt användare."
+
+#: contrib/admin/templates/admin/login.html:19
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Användarnamn:"
+
+#: contrib/admin/templates/admin/login.html:22
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Lösenord:"
+
+#: contrib/admin/templates/admin/object_history.html:16
+msgid "Date/time"
+msgstr "Datum tid"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "User"
+msgstr "Användare"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Action"
+msgstr "Händelse"
+
+#: contrib/admin/templates/admin/object_history.html:24
+msgid "DATE_WITH_TIME_FULL"
+msgstr "Y-m-d H:i:s"
+
+#: contrib/admin/templates/admin/object_history.html:32
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Detta objekt har ingen ändringshistorik. Det lades antagligen inte till via "
+"denna administrationssida."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Visa alla"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Sök"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 resultat"
+msgstr[1] "%(counter)s resultat"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s totalt"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Spara som ny"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Spara och lägg till ny"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Spara och fortsätt redigera"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Spara"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Ange först ett användarnamn och ett lösenord. Efter det kommer du att få "
+"fler användaralternativ."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:13
+#: contrib/auth/forms.py:14 contrib/auth/forms.py:51
+msgid "Username"
+msgstr "Användarnamn"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:20
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:52 contrib/auth/forms.py:176
+msgid "Password"
+msgstr "Lösenord"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:26
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/auth/forms.py:177
+msgid "Password (again)"
+msgstr "Lösenord (igen)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:27
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "Fyll i samma lösenord som ovan för verifiering."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:26
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Ange nytt lösenord för användare <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Tack för att du spenderade lite kvalitetstid med webbplatsen idag."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Logga in igen"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Ändra lösenord"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Lösenordet ändrades"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Ditt lösenord har ändrats."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Var god fyll i ditt gamla lösenord för säkerhets skull och skriv sedan in "
+"ditt nya lösenord två gånger så vi kan kontrollera att du skrev det rätt."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Gammalt lösenord:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+#: contrib/admin/templates/registration/password_reset_confirm.html:18
+msgid "New password:"
+msgstr "Nytt lösenord:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+#: contrib/admin/templates/registration/password_reset_confirm.html:20
+msgid "Confirm password:"
+msgstr "Bekräfta lösenord:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_reset_confirm.html:21
+msgid "Change my password"
+msgstr "Ändra mitt lösenord"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:4
+#: contrib/admin/templates/registration/password_reset_confirm.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Nollställ lösenord"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:6
+#: contrib/admin/templates/registration/password_reset_complete.html:10
+msgid "Password reset complete"
+msgstr "Nollställning av lösenord klar"
+
+#: contrib/admin/templates/registration/password_reset_complete.html:12
+msgid "Your password has been set.  You may go ahead and log in now."
+msgstr "Ditt lösenord har ändrats.  Du kan nu logga in."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:4
+msgid "Password reset confirmation"
+msgstr "Bekräftelse av lösenordsnollställning"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:12
+msgid "Enter new password"
+msgstr "Fyll i lösenord"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:14
+msgid ""
+"Please enter your new password twice so we can verify you typed it in "
+"correctly."
+msgstr ""
+"Var god fyll i ditt nya lösenord två gånger så vi kan kontrollera att du "
+"skrev det rätt."
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:26
+msgid "Password reset unsuccessful"
+msgstr "Lösenordsnollställning misslyckad"
+
+#: contrib/admin/templates/registration/password_reset_confirm.html:28
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used.  Please request a new password reset."
+msgstr ""
+"Länken för lösenordsnollställning var felaktig, möjligen därför att den "
+"redan använts.  Var god skicka en ny nollställningsförfrågan."
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Lösenordsnollställning lyckades"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed you instructions for setting your password to the e-mail "
+"address you submitted. You should be receiving it shortly."
+msgstr ""
+"Vi har skickat ett e-postmeddelande med instruktioner för att ändra ditt "
+"lösenord till den e-postaddress du angivit. Det bör anlända inom kort."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"Du får detta e-postbrev eftersom du bad om att få lösenordet nollställt"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "för ditt användarkonto på %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Var god gå till följande sida och välj ett nytt lösenord:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:9
+msgid "Your username, in case you've forgotten:"
+msgstr "Ditt användarnamn (i fall du skulle ha glömt det):"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Thanks for using our site!"
+msgstr "Tack för att du använder vår webbplats!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s-teamet"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
+"instructions for setting a new one."
+msgstr ""
+"Glömt ditt lösenord? Fyll i din e-postadress nedan så skickar vi ett e-"
+"postmeddelande med instruktioner för hur du ställer in ett nytt."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-postadress:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Nollställ mitt lösenord"
+
+#: contrib/admin/templatetags/admin_list.py:284
+msgid "All dates"
+msgstr "Alla datum"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s"
+msgstr "Välj %s"
+
+#: contrib/admin/views/main.py:65
+#, python-format
+msgid "Select %s to change"
+msgstr "Välj %s att ändra"
+
+#: contrib/admin/views/template.py:36 contrib/sites/models.py:38
+msgid "site"
+msgstr "webbplats"
+
+#: contrib/admin/views/template.py:38
+msgid "template"
+msgstr "mall"
+
+#: contrib/admindocs/views.py:53 contrib/admindocs/views.py:55
+#: contrib/admindocs/views.py:57
+msgid "tag:"
+msgstr "tagg:"
+
+#: contrib/admindocs/views.py:87 contrib/admindocs/views.py:89
+#: contrib/admindocs/views.py:91
+msgid "filter:"
+msgstr "filter:"
+
+#: contrib/admindocs/views.py:153 contrib/admindocs/views.py:155
+#: contrib/admindocs/views.py:157
+msgid "view:"
+msgstr "vy:"
+
+#: contrib/admindocs/views.py:187
+#, python-format
+msgid "App %r not found"
+msgstr "Applikation %r hittades inte"
+
+#: contrib/admindocs/views.py:194
+#, python-format
+msgid "Model %(model_name)r not found in app %(app_label)r"
+msgstr "Modell %(model_name)r hittades inte i applikation %(app_label)r"
+
+#: contrib/admindocs/views.py:206
+#, python-format
+msgid "the related `%(app_label)s.%(data_type)s` object"
+msgstr "det relaterade `%(app_label)s.%(data_type)s`-objektet"
+
+#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+msgid "model:"
+msgstr "modell:"
+
+#: contrib/admindocs/views.py:237
+#, python-format
+msgid "related `%(app_label)s.%(object_name)s` objects"
+msgstr "relaterade `%(app_label)s.%(object_name)s`-objekt"
+
+#: contrib/admindocs/views.py:242
+#, python-format
+msgid "all %s"
+msgstr "alla %s"
+
+#: contrib/admindocs/views.py:247
+#, python-format
+msgid "number of %s"
+msgstr "antal %s"
+
+#: contrib/admindocs/views.py:253
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Fält på %s objekt"
+
+#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:328
+#: contrib/admindocs/views.py:330 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:337 contrib/admindocs/views.py:339
+msgid "Integer"
+msgstr "Heltal"
+
+#: contrib/admindocs/views.py:318
+msgid "Boolean (Either True or False)"
+msgstr "Boolesk (antingen True eller False)"
+
+#: contrib/admindocs/views.py:319 contrib/admindocs/views.py:338
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Sträng (upp till %(max_length)s)"
+
+#: contrib/admindocs/views.py:320
+msgid "Comma-separated integers"
+msgstr "Komma-separerade heltal"
+
+#: contrib/admindocs/views.py:321
+msgid "Date (without time)"
+msgstr "Datum (utan tid)"
+
+#: contrib/admindocs/views.py:322
+msgid "Date (with time)"
+msgstr "Datum (med tid)"
+
+#: contrib/admindocs/views.py:323
+msgid "Decimal number"
+msgstr "Decimaltal"
+
+#: contrib/admindocs/views.py:324
+msgid "E-mail address"
+msgstr "E-postadress"
+
+#: contrib/admindocs/views.py:325 contrib/admindocs/views.py:326
+#: contrib/admindocs/views.py:329
+msgid "File path"
+msgstr "Sökväg till fil"
+
+#: contrib/admindocs/views.py:327
+msgid "Floating point number"
+msgstr "Flyttal"
+
+#: contrib/admindocs/views.py:331 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP-adress"
+
+#: contrib/admindocs/views.py:333
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolesk (antingen True, False eller None)"
+
+#: contrib/admindocs/views.py:334
+msgid "Relation to parent model"
+msgstr "Relation till förälder-modell"
+
+#: contrib/admindocs/views.py:335
+msgid "Phone number"
+msgstr "Telefonnummer"
+
+#: contrib/admindocs/views.py:340
+msgid "Text"
+msgstr "Text"
+
+#: contrib/admindocs/views.py:341
+msgid "Time"
+msgstr "Tid"
+
+#: contrib/admindocs/views.py:342 contrib/flatpages/admin.py:8
+#: contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admindocs/views.py:343
+msgid "U.S. state (two uppercase letters)"
+msgstr "Delstat i USA (två versaler)"
+
+#: contrib/admindocs/views.py:344
+msgid "XML text"
+msgstr "XML-text"
+
+#: contrib/admindocs/views.py:370
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s verkar inte vara ett urlpattern-objekt"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Smarta bokmärken"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Smarta bokmärken för dokumentation"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">För att installera smarta bokmärken, dra länken till din\n"
+"verktygsrad med bokmärken, eller högerklicka på länken och lägg till den\n"
+"till dina bokmärken. Nu kan du välja det smarta bokmärket från alla sidor\n"
+"på webbplatsen. Observera att några av dessa smarta bokmärken kräver att du "
+"besöker\n"
+"sidan från en dator som är \"intern\" (kontakta din systemadministratör\n"
+"om du inte är säker på om din dator är \"intern\").</p>\n"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Dokumentation för denna sida"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"Förflyttar dig från valfri sida till dokumentationen för vyn som genererar "
+"den sidan."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Visa objektets ID"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Visa innehållstypen och det unika ID-numret för sidor som representerar ett "
+"enskilt objekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Redigera detta objekt (aktuellt fönster)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Hoppar till administrationssidan för sidor som representerar ett enskilt "
+"objekt."
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Redigera detta objekt (nytt fönster)"
+
+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Som ovan, men öppnar administrationssidan i ett nytt fönster."
+
+#: contrib/auth/admin.py:21
+msgid "Personal info"
+msgstr "Personlig information"
+
+#: contrib/auth/admin.py:22
+msgid "Permissions"
+msgstr "Rättigheter"
+
+#: contrib/auth/admin.py:23
+msgid "Important dates"
+msgstr "Viktiga datum"
+
+#: contrib/auth/admin.py:24
+msgid "Groups"
+msgstr "Grupper"
+
+#: contrib/auth/admin.py:60
+msgid "Add user"
+msgstr "Lägg till användare"
+
+#: contrib/auth/admin.py:85
+msgid "Password changed successfully."
+msgstr "Lösenordet ändrades."
+
+#: contrib/auth/admin.py:91
+#, python-format
+msgid "Change password: %s"
+msgstr "Ändra lösenord: %s"
+
+#: contrib/auth/forms.py:15 contrib/auth/models.py:137
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Obligatorisk. 30 tecken eller färre. Endast bokstäver, siffror eller "
+"understreck."
+
+#: contrib/auth/forms.py:16 core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Detta värde får endast innehålla bokstäver, siffror och understreck."
+
+#: contrib/auth/forms.py:18
+msgid "Password confirmation"
+msgstr "Lösenordsbekräftelse"
+
+#: contrib/auth/forms.py:30
+msgid "A user with that username already exists."
+msgstr "En användare med det användarnamnet finns redan."
+
+#: contrib/auth/forms.py:36 contrib/auth/forms.py:146
+#: contrib/auth/forms.py:188
+msgid "The two password fields didn't match."
+msgstr "De två lösenordsfälten stämde inte överens."
+
+#: contrib/auth/forms.py:74 contrib/comments/views/comments.py:58
+msgid "This account is inactive."
+msgstr "Detta konto är inaktivt."
+
+#: contrib/auth/forms.py:79 contrib/comments/views/comments.py:49
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Din webbläsare verkar inte tillåta cookies. Cookies behövs för att kunna "
+"logga in."
+
+#: contrib/auth/forms.py:92
+msgid "E-mail"
+msgstr "E-postadress"
+
+#: contrib/auth/forms.py:101
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Den e-postadressen är inte associerad med något användarkonto. Är du säker "
+"på att du har registrerat dig?"
+
+#: contrib/auth/forms.py:126
+#, python-format
+msgid "Password reset on %s"
+msgstr "Lösenord nollställt för %s"
+
+#: contrib/auth/forms.py:134
+msgid "New password"
+msgstr "Nytt lösenord"
+
+#: contrib/auth/forms.py:135
+msgid "New password confirmation"
+msgstr "Bekräfta nytt lösenord"
+
+#: contrib/auth/forms.py:160
+msgid "Old password"
+msgstr "Gammalt lösenord"
+
+#: contrib/auth/forms.py:168
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Ditt gamla lösenord var felaktigt ifyllt. Var vänlig fyll i det igen."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:96
+msgid "name"
+msgstr "namn"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "kodnamn"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "rättighet"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:97
+msgid "permissions"
+msgstr "rättigheter"
+
+#: contrib/auth/models.py:100
+msgid "group"
+msgstr "grupp"
+
+#: contrib/auth/models.py:101 contrib/auth/models.py:147
+msgid "groups"
+msgstr "grupper"
+
+#: contrib/auth/models.py:137
+msgid "username"
+msgstr "användarnamn"
+
+#: contrib/auth/models.py:138
+msgid "first name"
+msgstr "förnamn"
+
+#: contrib/auth/models.py:139
+msgid "last name"
+msgstr "efternamn"
+
+#: contrib/auth/models.py:140
+msgid "e-mail address"
+msgstr "e-postadress"
+
+#: contrib/auth/models.py:141
+msgid "password"
+msgstr "lösenord"
+
+#: contrib/auth/models.py:141
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"Använd '[algo]$[salt]$[hexdigest]' eller använd <a href=\"password/\">Ändra "
+"lösenord-formuläret</a>."
+
+#: contrib/auth/models.py:142
+msgid "staff status"
+msgstr "personalstatus"
+
+#: contrib/auth/models.py:142
+msgid "Designates whether the user can log into this admin site."
+msgstr "Avgör om användaren kan logga in på denna adminsida."
+
+#: contrib/auth/models.py:143
+msgid "active"
+msgstr "aktiv"
+
+#: contrib/auth/models.py:143
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Anger om användaren skall betraktas som aktiv. Avmarkera detta istället för "
+"att ta bort konton."
+
+#: contrib/auth/models.py:144
+msgid "superuser status"
+msgstr "superanvändare"
+
+#: contrib/auth/models.py:144
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Anger att denna användare har alla rättigheter utan att uttryckligen "
+"tilldela dem."
+
+#: contrib/auth/models.py:145
+msgid "last login"
+msgstr "senaste inloggning"
+
+#: contrib/auth/models.py:146
+msgid "date joined"
+msgstr "registreringsdatum"
+
+#: contrib/auth/models.py:148
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Förutom de rättigheterna som utdelas manuellt så kommer användaren dessutom "
+"få samma rättigheter som de grupper där han/hon är medlem."
+
+#: contrib/auth/models.py:149
+msgid "user permissions"
+msgstr "användarättigheter"
+
+#: contrib/auth/models.py:153
+msgid "user"
+msgstr "användare"
+
+#: contrib/auth/models.py:154
+msgid "users"
+msgstr "användare"
+
+#: contrib/auth/models.py:309
+msgid "message"
+msgstr "meddelande"
+
+#: contrib/auth/views.py:50
+msgid "Logged out"
+msgstr "Utloggad"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:164
+msgid "object ID"
+msgstr "objektets ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "rubrik"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:165
+msgid "comment"
+msgstr "kommentar"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "betyg #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "betyg #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "betyg #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "betyg #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "betyg #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "betyg #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "betyg #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "betyg #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "är ett giltigt betyg"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:167
+msgid "date/time submitted"
+msgstr "skickat datum/tid"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:168
+msgid "is public"
+msgstr "är offentlig"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "är borttaget"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Bocka för denna ruta om kommentaren är olämplig. Ett \"Denna kommentar har "
+"tagits bort\"-meddelande kommer visas istället."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "kommentarer"
+
+#: contrib/comments/models.py:128 contrib/comments/models.py:199
+msgid "Content object"
+msgstr "Innehållsobjekt"
+
+#: contrib/comments/models.py:156
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Inlagt av %(user)s %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:166
+msgid "person's name"
+msgstr "personens namn"
+
+#: contrib/comments/models.py:169
+msgid "ip address"
+msgstr "IP-adress"
+
+#: contrib/comments/models.py:171
+msgid "approved by staff"
+msgstr "godkänd av personal"
+
+#: contrib/comments/models.py:175
+msgid "free comment"
+msgstr "fri kommentar"
+
+#: contrib/comments/models.py:176
+msgid "free comments"
+msgstr "fria kommentarer"
+
+#: contrib/comments/models.py:227
+msgid "score"
+msgstr "poäng"
+
+#: contrib/comments/models.py:228
+msgid "score date"
+msgstr "poäng tilldelad"
+
+#: contrib/comments/models.py:232
+msgid "karma score"
+msgstr "karmapoäng"
+
+#: contrib/comments/models.py:233
+msgid "karma scores"
+msgstr "karmapoäng"
+
+#: contrib/comments/models.py:237
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "Betyg %(score)d av %(user)s"
+
+#: contrib/comments/models.py:254
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Denna kommentar flaggades av %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:262
+msgid "flag date"
+msgstr "flaggdatum"
+
+#: contrib/comments/models.py:266
+msgid "user flag"
+msgstr "användarflagga"
+
+#: contrib/comments/models.py:267
+msgid "user flags"
+msgstr "användarflaggor"
+
+#: contrib/comments/models.py:271
+#, python-format
+msgid "Flag by %r"
+msgstr "Flaggad av %r"
+
+#: contrib/comments/models.py:277
+msgid "deletion date"
+msgstr "borttagningsdatum"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "borttaget av moderator"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "borttagna av moderator"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Borttaget av moderator %r"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Glömt ditt lösenord?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Betyg"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Obligatorisk"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Valfri"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Lägg till foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Kommentar:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Förhandsgranska kommentar"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Ditt namn:"
+
+#: contrib/comments/views/comments.py:76
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Detta betyg krävs eftersom du har fyllt i minst ett annat betyg."
+
+#: contrib/comments/views/comments.py:160
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Denna kommentar postades av en användare som har postat färre än %(count)s "
+"kommentar:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Denna kommentar postades av en användare som har postat färre än %(count)s "
+"kommentarer:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:165
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Denna kommentar postades av en oseriös användare:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:238
+#: contrib/comments/views/comments.py:331
+msgid "Only POSTs are allowed"
+msgstr "Endast POST är tillåtet"
+
+#: contrib/comments/views/comments.py:242
+#: contrib/comments/views/comments.py:335
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Ett eller flera av de obligatoriska fälten skickades inte"
+
+#: contrib/comments/views/comments.py:246
+#: contrib/comments/views/comments.py:337
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Någon har manipulerat kommentarformuläret (säkerhetsintrång)"
+
+#: contrib/comments/views/comments.py:256
+#: contrib/comments/views/comments.py:343
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Kommentarformuläret hade en ogiltig 'target'-parameter -- objektets ID var "
+"ogiltigt"
+
+#: contrib/comments/views/comments.py:307
+#: contrib/comments/views/comments.py:372
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr ""
+"Kommentarformuläret tillhandahöll varken 'förhandsgranska' eller 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonyma användare får inte rösta"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Ogiltigt kommentar-ID"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Du får inte rösta på dig själv"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "python klassnamn för modell"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "innehålls typ"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "innehålls typer"
+
+#: contrib/flatpages/admin.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Exempel: '/om/kontakt/'. Se till att ha inledande och avslutande snedstreck."
+
+#: contrib/flatpages/admin.py:11 core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Detta värde får endast innehålla bokstäver, siffror, understreck, "
+"bindestreck eller snedstreck."
+
+#: contrib/flatpages/admin.py:22
+msgid "Advanced options"
+msgstr "Avancerade inställningar"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "titel"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "innehåll"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "aktivera kommentarer"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "mallnamn"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Exempel: 'sidor/kontaktsida.html'. Om detta inte fylls i kommer systemet att "
+"använda 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "registrering krävs"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Om detta bockas för kommer endast inloggade användare kunna se sidan."
+
+#: contrib/flatpages/models.py:19
+msgid "flat page"
+msgstr "statisk sida"
+
+#: contrib/flatpages/models.py:20
+msgid "flat pages"
+msgstr "statiska sidor"
+
+#: contrib/gis/forms/fields.py:10
+msgid "No geometry value provided."
+msgstr "Inget geometriskt värde angivet."
+
+#: contrib/gis/forms/fields.py:11
+msgid "Invalid Geometry value."
+msgstr "Ogiltigt Geometri-värde."
+
+#: contrib/gis/forms/fields.py:12
+msgid "Invalid Geometry type."
+msgstr "Ogiltig Geometri-typ"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr ":a"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr ":a"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr ":e"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr ":e"
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f miljon"
+msgstr[1] "%(value).1f miljoner"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value)1.f miljard"
+msgstr[1] "%(value)1.f miljarder"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value)1.f biljon"
+msgstr[1] "%(value)1.f biljoner"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "ett"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "två"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "tre"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "fyra"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "fem"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "sex"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "sju"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "åtta"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "nio"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "idag"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "imorgon"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "igår"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Fyll i ett postnummer med formatet NNNN eller ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Detta fält kräver enbart siffror."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Detta fält kräver 7 eller 8 sifrror."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Fyll i ett giltigt CUIT med formatet XX-XXXXXXXX-X eller XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Felaktigt CUIT."
+
+#: contrib/localflavor/at/at_states.py:5
+msgid "Burgenland"
+msgstr "Burgenland"
+
+#: contrib/localflavor/at/at_states.py:6
+msgid "Carinthia"
+msgstr "Kärnten"
+
+#: contrib/localflavor/at/at_states.py:7
+msgid "Lower Austria"
+msgstr "Niederösterreich"
+
+#: contrib/localflavor/at/at_states.py:8
+msgid "Upper Austria"
+msgstr "Oberösterreich"
+
+#: contrib/localflavor/at/at_states.py:9
+msgid "Salzburg"
+msgstr "Salzburg"
+
+#: contrib/localflavor/at/at_states.py:10
+msgid "Styria"
+msgstr "Steiermark"
+
+#: contrib/localflavor/at/at_states.py:11
+msgid "Tyrol"
+msgstr "Tyrolen"
+
+#: contrib/localflavor/at/at_states.py:12
+msgid "Vorarlberg"
+msgstr "Vorarlberg"
+
+#: contrib/localflavor/at/at_states.py:13
+msgid "Vienna"
+msgstr "Wien"
+
+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Fyll i postnummer med formatet XXXX."
+
+#: contrib/localflavor/at/forms.py:48
+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
+msgstr "Fyll i ett giltigt Österrikiskt personnummer i formatet XXXX XXXXXX."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Fyll i ett fyrsiffrigt postnummer."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Fyll i ett postnummer med formatet XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefonnummer måste vara i formatet XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+"Välj ett giltigt alternativ. Det valet finns inte bland tillgängliga "
+"alternativ."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Ogiltigt CPF-nummer."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Detta fält kräver högst 11 siffror eller 14 bokstäver."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Ogiltigt CNPJ-nummer."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Detta fält kräver minst 14 sifrror"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Fyll i ett postnummer med formatet XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"Fyll i ett giltigt Kanadensiskt \"social insurance number\" med formatet XXX-"
+"XXX-XXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Landschaft"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Bern"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Genève"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubünden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Luzern"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchâtel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "Sankt Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zürich"
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Fyll i ett giltigt Schweiziskt ID- eller passkortnummer med formatet "
+"X1234567<0 eller 1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Fyll i ett giltigt chilenskt RUT"
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Fyll i ett giltigt chilenskt RUT. Formatet är XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "Det chilenska RUT:et var inte giltigt."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Württemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bayern"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Vorpommern"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Nedre Sachsen"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Nordrhein-Westfalen"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhenlandet"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Sachsen"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Sachsen-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thüringen"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Fyll i ett postnummer med formatet XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Fyll i ett giltigt tyskt ID-kortnummer med formatet XXXXXXXXXXX-XXXXXXX-"
+"XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Arava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "AlmeriaAlmería"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Ávila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Illes Balears"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Cáceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cádiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castellón"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Córdoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruña"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "León"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Málaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturien"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Kantabrien"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Biscaya"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalusien"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragonien"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Asturien"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Balearerna"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Baskien"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Kanarieöarna"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Kastilien-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Kastilien och Leon"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Katalonien"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicien"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Murciaregionen"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valenciaregionen"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Fyll i ett giltigt postnummer i serien och med formatet 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Fyll i ett giltigt telefonnummer med ett av formaten: 6XXXXXXXX, 8XXXXXXXX "
+"eller 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Var god fyll i en giltig NIF, NIE, eller CIF."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Var god fyll i giltigt NIF eller NIE."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Ogiltig kontrollsumma för NIF."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Ogiltig kontrollsumma för NIE."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Ogiltig kontrollsumma för CIF."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+"Var god fyll i ett giltigt bankkontonummer i XXXX-XXXX-XX-XXXXXXXXXX-format."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Ogiltig kontrollsumma för bankkontonummer."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Fyll i ett giltigt finskt personnummer."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Fyll i ett postnummer med formatet XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Fyll i ett giltigt isländskt personnummer. Formatet är XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Det isländska personnumret är inte giltigt."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Fyll i ett giltigt postnummer."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Fyll i ett giltigt personnummer."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Fyll i ett giltigt VAT-nummer."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Fyll i ett postnummer med formatet XXXXXXX eller XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ischikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kuamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Mexikanska staten"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Fyll i ett giltigt postnummer."
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Fyll i ett giltigt telefonnummer."
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Fyll i ett giltigt SoFi-nummer."
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friesland"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningen"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburg"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Noord-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Noord-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Zuid-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Fyll i ett giltigt norskt personnummer."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Detta fält kräver 8 sifrror."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Detta fält kräver 11 sifrror."
+
+#: contrib/localflavor/pl/forms.py:38
+msgid "National Identification Number consists of 11 digits."
+msgstr "\"National Identification Number\" består av 11 siffror."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Fel kontrollsumma för \"National Identification Number\""
+
+#: contrib/localflavor/pl/forms.py:71
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+"Fyll i ett skattenummer (NIP) med formatet XXX-XXX-XX-XX eller XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Fel kontrollsumma för skattenumret (NIP)."
+
+#: contrib/localflavor/pl/forms.py:111
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+"\"National Business Register Number\" (REGON) består av 7 eller 9 siffror."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Fel kontrollsumma för \"National Business Register Number\" (REGON)."
+
+#: contrib/localflavor/pl/forms.py:155
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Fyll i ett postnummer med formatet XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Lower Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kuyavia-Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Lesser Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Subcarpatia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlasie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Greater Poland"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "West Pomerania"
+
+#: contrib/localflavor/ro/forms.py:19
+msgid "Enter a valid CIF."
+msgstr "Fyll i ett giltigt CIF."
+
+#: contrib/localflavor/ro/forms.py:56
+msgid "Enter a valid CNP."
+msgstr "Fyll i ett giltigt CNP."
+
+#: contrib/localflavor/ro/forms.py:141
+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
+msgstr "Fyll i ett giltigt IBAN med formatet ROXX-XXXX-XXXX-XXXX-XXXX-XXXX."
+
+#: contrib/localflavor/ro/forms.py:171
+msgid "Phone numbers must be in XXXX-XXXXXX format."
+msgstr "Telefonnummer måste vara i formatet XXXX-XXXXXX."
+
+#: contrib/localflavor/ro/forms.py:194
+msgid "Enter a valid postal code in the format XXXXXX"
+msgstr "Fyll i ett postnummer med formatet XXX XXX."
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Fyll i ett postnummer med formatet XXXXX eller XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banska Bystrica-regionen"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Bratislava-regionen"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Kosice-regionen"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Nitra-regionen"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Presov-regionen"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Trencin-regionen"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Trnava-regionen"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Zilina-regionen"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Fyll i ett giltigt postnummer."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall and Isles of Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Greater London"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Greater Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "South Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne and Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "West Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "West Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "County Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "County Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "West Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Borders"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Central Scotland"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetland Islands"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "England"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Nordirland"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Scotland"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Wales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Fyll i ett postnummer med formatet XXXXX eller XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Fyll i ett giltigt amerikanskt personnummer i formatet XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Fyll i ett giltigt Sydafrikanskt ID-nummer."
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Fyll i ett giltigt Afrikanskt postnummer."
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Eastern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Free State"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Northern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "North West"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Western Cape"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "omdirigera från"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Detta bör vara en absolut sökväg utan domännamnet. Exempel: '/handelser/"
+"sok/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "omdirigera till"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Detta kan vara antingen en absolut sökväg (som ovan) eller en fullständig "
+"URL som börjar med 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "omdirigera"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "omdirigeringar"
+
+#: contrib/sessions/models.py:45
+msgid "session key"
+msgstr "sessionsnyckel"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "sessionsdata"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "utgångsdatum"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "session"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sessioner"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "domännamn"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "visningsnamn"
+
+#: contrib/sites/models.py:39
+msgid "sites"
+msgstr "webbplatser"
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Detta värde får endast innehålla bokstäver, siffror, understreck eller "
+"bindestreck."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Versaler är inte tillåtna här."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Gemener är inte tillåtna här."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Fyll enbart i siffror separerade med kommatecken."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Fyll i giltiga e-postadresser separerade med kommatecken."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Var god fyll i en giltig IP-adress."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Tomma värden är inte tillåtna här."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Icke-numeriska tecken är inte tillåtna här."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Detta värde kan inte enbart bestå av siffror."
+
+#: core/validators.py:128 forms/fields.py:161
+msgid "Enter a whole number."
+msgstr "Fyll i ett heltal."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Endast bokstäver är tillåtna här."
+
+#: core/validators.py:147
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Ogiltigt datum: %s"
+
+#: core/validators.py:152 db/models/fields/__init__.py:546
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Fyll i ett giltigt datum med formatet ÅÅÅÅ-MM-DD."
+
+#: core/validators.py:157
+msgid "Enter a valid time in HH:MM format."
+msgstr "Fyll i ett giltigt klockslag med formatet TT:MM."
+
+#: core/validators.py:161
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Fyll i en giltig tidpunkt med formatet ÅÅÅÅ-MM-DD TT:MM."
+
+#: core/validators.py:166 forms/fields.py:422
+msgid "Enter a valid e-mail address."
+msgstr "Fyll i en giltig e-postadress."
+
+#: core/validators.py:178 core/validators.py:470 forms/fields.py:440
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ingen fil skickades. Kontrollera kodningnstypen i formuläret."
+
+#: core/validators.py:189 forms/fields.py:471
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Ladda upp en giltig bild. Filen du laddade upp var antingen ingen bild eller "
+"en korrupt bild."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL:en %s pekar inte på en giltig bild."
+
+#: core/validators.py:200
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Telefonnummer måste vara angivna med formatet XXX-XXX-XXXX. \"%s\" är "
+"ogiltigt."
+
+#: core/validators.py:208
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL:en %s pekar inte på en giltig QuickTime-video."
+
+#: core/validators.py:212
+msgid "A valid URL is required."
+msgstr "En giltig URL krävs."
+
+#: core/validators.py:226
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Giltig HTML krävs. Specifika fel är:\n"
+"%s"
+
+#: core/validators.py:233
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Felaktigt formaterad XML: %s"
+
+#: core/validators.py:250
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Felaktig URL: %s"
+
+#: core/validators.py:255 core/validators.py:257
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL:en %s är en trasig länk."
+
+#: core/validators.py:263
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Fyll i en giltig förkortning för en amerikansk delstat."
+
+#: core/validators.py:277
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Akta din tunga! Ordet %s är inte tillåtet här."
+msgstr[1] "Akta din tunga! Orden %s är inte tillåtna här."
+
+#: core/validators.py:284
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Detta fält måste matcha fältet '%s'."
+
+#: core/validators.py:303
+msgid "Please enter something for at least one field."
+msgstr "Var god fyll i minst ett fält."
+
+#: core/validators.py:312 core/validators.py:323
+msgid "Please enter both fields or leave them both empty."
+msgstr "Fyll antingen i båda fälten eller lämna båda tomma."
+
+#: core/validators.py:331
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Detta fält måste anges om %(field)s är %(value)s"
+
+#: core/validators.py:344
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Detta fält måste anges om %(field)s inte är %(value)s"
+
+#: core/validators.py:363
+msgid "Duplicate values are not allowed."
+msgstr "Dubbletter är inte tillåtna."
+
+#: core/validators.py:378
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Detta värde måste vara mellan %(lower)s och %(upper)s."
+
+#: core/validators.py:380
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Detta värde måste vara minst %s."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Detta värde får inte vara mer än %s."
+
+#: core/validators.py:423
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Detta värde måste vara en potens av %s."
+
+#: core/validators.py:433
+msgid "Please enter a valid decimal number."
+msgstr "Fyll i ett giltigt decimaltal."
+
+#: core/validators.py:440
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Fyll i ett giltigt decimaltal med som mest %s siffra totalt."
+msgstr[1] "Fyll i ett giltigt decimaltal med som mest %s siffror totalt."
+
+#: core/validators.py:443
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"Fyll i ett giltigt decimaltal med en heltalsdel med som mest %s siffra."
+msgstr[1] ""
+"Fyll i ett giltigt decimaltal med en heltalsdel med som mest %s siffror."
+
+#: core/validators.py:446
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Fyll i ett giltigt decimaltal med som mest %s decimal."
+msgstr[1] "Fyll i ett giltigt decimaltal med som mest %s decimaler."
+
+#: core/validators.py:454
+msgid "Please enter a valid floating point number."
+msgstr "Fyll i ett giltigt flyttal."
+
+#: core/validators.py:463
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Se till att filen du laddade upp är minst %s byte stor."
+
+#: core/validators.py:464
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Se till att filen du laddade upp är som mest %s byte stor."
+
+#: core/validators.py:481
+msgid "The format for this field is wrong."
+msgstr "Formatet för detta fält är fel."
+
+#: core/validators.py:496
+msgid "This field is invalid."
+msgstr "Detta fält är ogiltigt."
+
+#: core/validators.py:532
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Kunde inte hämta något från %s."
+
+#: core/validators.py:535
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"URL:en %(url)s returnerade den ogiltiga Content-Type headern '%(contenttype)"
+"s'."
+
+#: core/validators.py:568
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Var god avsluta den oavslutade taggen %(tag)s på rad %(line)s. (Raden börjar "
+"med \"%(start)s\".)"
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"En del text som börjar på rad %(line)s är inte tillåten i det sammanhanget. "
+"(Raden börjar med \"%(start)s\".)"
+
+#: core/validators.py:577
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" på rad %(line)s är ett ogiltigt attribut. (Raden börjar med \"%"
+"(start)s\".)"
+
+#: core/validators.py:582
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" på rad %(line)s är en ogiltig tagg. (Raden börjar med \"%"
+"(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"En tagg på rad %(line)s saknar en eller flera obligatoriska attribut. (Raden "
+"börjar med \"%(start)s\".)"
+
+#: core/validators.py:591
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Attributet \"%(attr)s\" på rad %(line)s har ett ogiltigt värde. (Raden "
+"börjar med \"%(start)s\".)"
+
+#: db/models/manipulators.py:304
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s med typen %(type)s finns redan för %(field)s."
+
+#: db/models/fields/__init__.py:46
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s med detta %(fieldname)s finns redan."
+
+#: db/models/fields/__init__.py:320 db/models/fields/files.py:168
+#: db/models/fields/files.py:179 forms/fields.py:52 oldforms/__init__.py:370
+msgid "This field is required."
+msgstr "Detta fält måste fyllas i."
+
+#: db/models/fields/__init__.py:434
+msgid "This value must be an integer."
+msgstr "Detta värde måste vara ett heltal."
+
+#: db/models/fields/__init__.py:480
+msgid "This value must be either True or False."
+msgstr "Detta värde måste vara antingen True eller False."
+
+#: db/models/fields/__init__.py:509
+msgid "This field cannot be null."
+msgstr "Detta fält får inte vara null."
+
+#: db/models/fields/__init__.py:611 db/models/fields/__init__.py:628
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
+msgstr "Fyll i en giltig tidpunkt med formatet ÅÅÅÅ-MM-DD TT:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/__init__.py:684
+msgid "This value must be a decimal number."
+msgstr "Detta värde måste vara ett decimaltal."
+
+#: db/models/fields/__init__.py:825
+msgid "This value must be either None, True or False."
+msgstr "Detta värde måste vara antingen None, True eller False."
+
+#: db/models/fields/__init__.py:937 db/models/fields/__init__.py:950
+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
+msgstr "Fyll i ett giltigt klockslag med formatet TT:MM[:ss[.uuuuuu]]."
+
+#: db/models/fields/files.py:188
+msgid "Enter a valid filename."
+msgstr "Fyll i ett giltigt filnamn."
+
+#: db/models/fields/related.py:92
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Var god fyll i giltig %s."
+
+#: db/models/fields/related.py:776
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Håll ner \"Control\" eller \"Command\" på en Mac för att välja fler än en."
+
+#: db/models/fields/related.py:856
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Var god och fyll giltiga %(self)s ID-nummer. Värdet %(value)r är ogiltigt."
+msgstr[1] ""
+"Var god och fyll giltiga %(self)s ID-nummer. Värdena %(value)r är ogiltiga."
+
+#: forms/fields.py:53
+msgid "Enter a valid value."
+msgstr "Fyll i ett giltigt värde."
+
+#: forms/fields.py:133
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Kontrollera att detta värde har högst %(max)d tecken (det har %(length)d)."
+
+#: forms/fields.py:134
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Kontrollera att detta värde har minst %(min)d tecken (det har %(length)d)."
+
+#: forms/fields.py:162 forms/fields.py:191 forms/fields.py:220
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Kontrollera att detta värde är mindre eller lika med %s."
+
+#: forms/fields.py:163 forms/fields.py:192 forms/fields.py:221
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Kontrollera att detta värde är mer eller lika med %s."
+
+#: forms/fields.py:190 forms/fields.py:219
+msgid "Enter a number."
+msgstr "Fyll i ett tal."
+
+#: forms/fields.py:222
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Kontrollera att det inte finns mer än totalt %s siffror."
+
+#: forms/fields.py:223
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Kontrollera att det inte finns mer än %s decimaler."
+
+#: forms/fields.py:224
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Kontrollera att det inte finns mer än %s siffror före decimaltecknet."
+
+#: forms/fields.py:282 forms/fields.py:803
+msgid "Enter a valid date."
+msgstr "Fyll i ett giltigt datum."
+
+#: forms/fields.py:315 forms/fields.py:804
+msgid "Enter a valid time."
+msgstr "Fyll i en giltig tid."
+
+#: forms/fields.py:354
+msgid "Enter a valid date/time."
+msgstr "Fyll i ett giltigt datum/tid."
+
+#: forms/fields.py:441
+msgid "No file was submitted."
+msgstr "Ingen fil skickades."
+
+#: forms/fields.py:442 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Den skickade filen är tom."
+
+#: forms/fields.py:532
+msgid "Enter a valid URL."
+msgstr "Fyll i en giltig URL."
+
+#: forms/fields.py:533
+msgid "This URL appears to be a broken link."
+msgstr "Denna URL verkar vara en trasig länk."
+
+#: forms/fields.py:601 forms/fields.py:652
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Välj ett giltigt alternativ. %(value)s finns inte bland tillgängliga "
+"alternativ."
+
+#: forms/fields.py:653 forms/fields.py:714 forms/models.py:528
+msgid "Enter a list of values."
+msgstr "Fyll i en lista med värden."
+
+#: forms/fields.py:832
+msgid "Enter a valid IPv4 address."
+msgstr "Fyll i en giltig IPv4 adress."
+
+#: forms/models.py:461
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Välj ett giltigt alternativ. Det valet finns inte bland tillgängliga "
+"alternativ."
+
+#: forms/models.py:529
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr ""
+"Välj ett giltigt alternativ. %s finns inte bland tillgängliga alternativ."
+
+#: oldforms/__init__.py:405
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Se till att din text är kortare än %s tecken."
+msgstr[1] "Se till att din text är kortare än %s tecken."
+
+#: oldforms/__init__.py:410
+msgid "Line breaks are not allowed here."
+msgstr "Radbrytningar är inte tillåtna här."
+
+#: oldforms/__init__.py:508 oldforms/__init__.py:582 oldforms/__init__.py:621
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Välj ett giltigt alternativ; '%(data)s' finns inte bland %(choices)s."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Fyll i ett heltal mellan -32768 och 32767."
+
+#: oldforms/__init__.py:760
+msgid "Enter a positive number."
+msgstr "Fyll i ett positivt tal."
+
+#: oldforms/__init__.py:770
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Fyll i ett heltal mellan 0 och 32767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "ja,nej,kanske"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d byte"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "e.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "f.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "FM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "EM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "midnatt"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "middag"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Måndag"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Tisdag"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Onsdag"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Torsdag"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Fredag"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Lördag"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Söndag"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Mån"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Tis"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Ons"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Tors"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Fre"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Lör"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Sön"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Januari"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Februari"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Mars"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "April"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Maj"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Juni"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Juli"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Augusti"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "September"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Oktober"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "November"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "December"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "maj"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "aug"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sep"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dec"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Jan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Aug."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dec."
+
+#: utils/text.py:128
+msgid "or"
+msgstr "eller"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "år"
+msgstr[1] "år"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "månad"
+msgstr[1] "månader"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "vecka"
+msgstr[1] "veckor"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dag"
+msgstr[1] "dagar"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "timme"
+msgstr[1] "timmar"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minut"
+msgstr[1] "minuter"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minuter"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:401
+msgid "DATE_FORMAT"
+msgstr "Y-m-d"
+
+#: utils/translation/trans_real.py:402
+msgid "DATETIME_FORMAT"
+msgstr "Y-m-d H:i"
+
+#: utils/translation/trans_real.py:403
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:419
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:420
+msgid "MONTH_DAY_FORMAT"
+msgstr "j F"
+
+#: views/generic/create_update.py:114
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s skapades."
+
+#: views/generic/create_update.py:156
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s uppdaterades."
+
+#: views/generic/create_update.py:198
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s togs bort."
+
+#~ msgid "Your new password is: %(new_password)s"
+#~ msgstr "Ditt nya lösenord är: %(new_password)s"
+
+#~ msgid "Feel free to change this password by going to this page:"
+#~ msgstr ""
+#~ "Du är välkommen att ändra detta lösenord genom att gå till denna sida:"
+
+#~ msgid "Ordering"
+#~ msgstr "Sortering"
+
+#~ msgid "Order:"
+#~ msgstr "Sortera:"
+
+#~ msgid "Added %s."
+#~ msgstr "Lade till %s."
+
+#~ msgid "Deleted %s."
+#~ msgstr "Tog bort %s."
+
+#~ msgid "The two 'new password' fields didn't match."
+#~ msgstr "De två 'nytt lösenord'-fälten stämde inte överens."
+
+#~ msgid "Year must be 1900 or later."
+#~ msgstr "Årtal måste vara 1900 eller senare."
+
+#~ msgid "Separate multiple IDs with commas."
+#~ msgstr "Separera flera ID-nummer med kommatecken."
+
+#~ msgid "Brazilian"
+#~ msgstr "Brasilianska"
+
+#~ msgid "Gaeilge"
+#~ msgstr "Gaeliska"
diff --git a/webapp/django/conf/locale/sv/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/sv/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..d931eb9
--- /dev/null
+++ b/webapp/django/conf/locale/sv/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/sv/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/sv/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..73ad0b5
--- /dev/null
+++ b/webapp/django/conf/locale/sv/LC_MESSAGES/djangojs.po
@@ -0,0 +1,121 @@
+# Swedish translation of Django
+# Copyright (C) 2005
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-08-19 01:28+0200\n"
+"PO-Revision-Date: 2008-02-01 15:32+0100\n"
+"Last-Translator: Ludvig Ericson <ludvig.ericson@gmail.com>\n"
+"Language-Team: Django I18N <Django-I18N@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Tillgängliga %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Markera alla"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Lägg till"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Ta bort"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Valda %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Gör dina val och klicka på "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Ta bort alla"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Januari Februari Mars April Maj Juni Juli Augusti September Oktober November "
+"December"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S M T O T F L"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Söndag Måndag Tisdag Onsdag Torsdag Fredag Lördag"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Visa"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Göm"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Nu"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Klocka"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Välj en tidpunkt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Midnatt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "06:00"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Middag"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "I dag"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalender"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "I går"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "I morgon"
diff --git a/webapp/django/conf/locale/ta/LC_MESSAGES/django.mo b/webapp/django/conf/locale/ta/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..ea0fab5
--- /dev/null
+++ b/webapp/django/conf/locale/ta/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ta/LC_MESSAGES/django.po b/webapp/django/conf/locale/ta/LC_MESSAGES/django.po
new file mode 100644
index 0000000..6833255
--- /dev/null
+++ b/webapp/django/conf/locale/ta/LC_MESSAGES/django.po
@@ -0,0 +1,2136 @@
+# translation of django-new.po to tamil
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# PONNUSAMY.A <ponnusamy.simpleman@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-25 15:43+0200\n"
+"PO-Revision-Date: 2007-03-15 16:48+0530\n"
+"Last-Translator: PONNUSAMY <ponnusamy.simpleman@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language-Team: tamil <tamilinix@yahoogroups.com>\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n>1;"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "அடையாளம்"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "தலையங்கம்"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "குறிப்பு"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "#1 தரவரிசை"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "#2 தரவரிசை"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "#3 தரவரிசை"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "#4 தரவரிசை"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "#5 தரவரிசை"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "#6 தரவரிசை"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "#7 தரவரிசை"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "#8 தரவரிசை"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "அங்கீகரிக்கப்பட்ட தரவரிசை"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "தேதி/நேரம் சமர்ப்பிக்கப்பட்டுள்ளது"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "பொதுவானது"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "IP விலாசம்"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "நீக்கபட்டது"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr "குறிப்பு சரியாக இல்லையென்றால் இந்த பெட்டியில் குறியிடவும். இதற்கு பதிலாக \"இந்த குறிப்பு நீக்கபட்டது\" காண்பிக்கபடும்."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "குறிப்பு"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "பொருள் அடக்க object"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"%(user)s ஆல் %(date)s இல் அளிக்கப்பட்டது \n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "நபரின் பெயர்"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ip விலாசம்"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "பணியாளர்களால் அனுமதிக்கப்பட்டது"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "சுதந்தரமான குறிப்பு"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "சுதந்தரமான குறிப்புகள்"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "மதிப்பீடு "
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "மதிப்பீட்டு தேதி"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "கர்மா மதிப்பீடு"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "கர்மா மதிப்பீடு"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(user)s ஈட்டய %(score)d "
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"இந்த குறிப்பு %(user)s ஆல் குறிக்கபட்டது:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "குறியின் தேதி"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "பயனாளர் குறி"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "பயனாளர் குறிகள்"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "%r ஆல் குறிக்கப்பட்டது"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "நீக்கப்பட்ட தேதி"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "மட்டொறுத்தால் நீக்கப்பட்டது"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "மட்டொறுத்தர்களால் நீக்கப்பட்டது"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "மட்டொறுத்தால் நீக்கப்பட்டது %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "அடையாளம் இல்லாத பயனாளறால் வாக்களிக்க முடியாது"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "செல்லாத குறிப்பு ID"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "உங்களை நீங்களே தேர்வு செய்து கொள்ள முடியாது"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "இந்த தரவரிசை தேவைப்படுகிறது ஏனெனில் மற்றொரு தரவரிசை அளிக்கப்பட்டு விட்டதால்"
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"இந்த குறிப்பானது குறைவாக அளித்த பயனாளரால் %(count)s "
+"அளிக்கப்பட்டது:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"இந்த குறிப்பானது குறைவாக அளித்த பயனாளர்களால் %(count)s"
+" அளிக்கப்பட்டது:\n"
+"\n"
+"%(text)s"
+
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"முழுமையான விவரங்களை அளிக்காத பயனாளரால் கொடுக்கப்பட்டது:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "POSTகளுக்கு மட்டும் அனுமதி உண்டு"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "ஒன்று அல்லது ஒன்றிற்கு மேற்ப்பட்ட புலங்கள் சமற்பிக்கப்படவில்லை"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "எவறோ குறிப்புறையைச்  சேதப்படுத்திவிட்டர்கள் (பாதுகாப்பு மீறல்)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr "குறிப்புறை படிவத்தில் முறையான இலக்கு அளவுருக்கவில்லை -- object ID முறையானதாக இல்லை"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "குறிப்பு படிவம் முன்னோட்டம் அல்லது பிற்பட்டதை வழங்குவது இல்லை"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "பயனர் பெயர்:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "வெளியேறு"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "கடவுச்சொல்:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "கடவுச்சொல்லை மறந்துவிட்டீரா?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "விகிதம்"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "தேவைப்படுகிறது"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "விருப்பத்தேர்வு"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "புகைப்படத்தை அனுப்பு"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "விவரம்:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "குறிப்பை முன்னேற்றமிடு"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "உங்கள் பெயர்:"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3> %s ஆல்:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "அனைத்தும்"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "எந்த தேதியும்"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "இன்று"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "கடந்த 7 நாட்களில்"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "இந்த மாதம்"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "இந்த வருடம்"
+
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "ஆம்"
+
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "இல்லை"
+
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "தெரியாத"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "செயல் நேரம்"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "பொருள் அடையாளம்"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "பொருள் உருவகித்தம்"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "செயர்குறி"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "செய்தியை மாற்று"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "புகுபதிவு உள்ளீடு"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "புகுபதிவு உள்ளீடுகள்"
+
+#: contrib/admin/templatetags/admin_list.py:230
+msgid "All dates"
+msgstr "அனைத்து தேதியும்"
+
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:59
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "தயவுசெய்து சரியான பயனர்ப்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிடவும். இரண்டும் எழுத்துவகையைச் சார்ந்தது."
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "உள்ளே போ"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr "தயவுசெய்து மறுபடியும் புகுபதிவு செய்க. ஏனென்றால் காலம் முடிவடைந்தது. கவலை படவேண்டாம்: உங்களுடைய அனுப்புதல் சேமிக்கப்பட்டுள்ளது."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr "உங்களுடைய உலாவி தற்கால நிரல்களை அமதிக்காதவாறு உள்ளமைக்கப் பட்டவாறு தெரிகிறது. தயவுசெய்து தற்காலிக நிரலை செயல்பட செய்து, பக்கத்தை மறுபடி உள் வாங்கவும். "
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "பயனர் பெயர் '@' குறியீட்டை கொண்டிருக்க முடியாது."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "உங்கள் மின் அஞ்சல் முகவரி உங்கள் பயனர் பெயராக இல்லை. '%s'யை முயற்சி செய்யவும்."
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "இணைய மேலான்மை"
+
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:17
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" வெற்றிகரமாகச் சேர்க்கப்பட்டது."
+
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:22
+msgid "You may edit it again below."
+msgstr "நீங்கள் மறுபடியும் தொகுக்க முடியும். "
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "நீங்கள் மற்ற %s யை கீழே சேர்க்க முடியும்."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "%s யை சேர்க்க"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "%s சேர்க்கப்பட்டுள்ளது."
+
+#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
+msgid "and"
+msgstr "மற்றும்"
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "%s மாற்றபட்டுள்ளது."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "%s அழிக்கப்பட்டது."
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "எந்த புலமும் மாறவில்லை."
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" வெற்றிகரமாக மாற்றப்பட்டது."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" வெற்றிகரமாக சேர்க்கப்பட்டுள்ளது. நீங்கள் கீழே தொகுக்க முடியும்."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "%s யை மாற்று"
+
+#: contrib/admin/views/main.py:473
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "%(name)s ல் உள்ள %(fieldname)s: %(obj)s"
+
+#: contrib/admin/views/main.py:478
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "%(name)s ல் உள்ள %(fieldname)s:"
+
+#: contrib/admin/views/main.py:511
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" வெற்றிகரமாக அழிக்கப்பட்டுள்ளது."
+
+#: contrib/admin/views/main.py:514
+msgid "Are you sure?"
+msgstr "உறுதியாக சொல்கிறீர்களா?"
+
+#: contrib/admin/views/main.py:536
+#, python-format
+msgid "Change history: %s"
+msgstr "வரலாற்றை மாற்று: %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s"
+msgstr "%s யை தேர்ந்தெடு"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s to change"
+msgstr "%s யை மாற்ற தேர்ந்தெடு"
+
+#: contrib/admin/views/main.py:758
+msgid "Database error"
+msgstr "தகவல்சேமிப்பு  பிழை"
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "ஒட்டு:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "வடிகட்டி:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "நோற்றமிடு:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "பக்கம் %r இல்லை"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr "மாதரி %r பக்கம் %rல் இல்லை "
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr "சம்மந்தப்பட்ட '%s.%s' பொருள்"
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "மாதிரி:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr "மாதரி %s பக்கம் %s ல் இல்லை"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "அனைத்து %s "
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "எண்ணிக்கை %s"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "புலத்தின் %s பொருள்"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "முழு எண்"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "பூலியன் (சரி அல்லது தவறு)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "உரை (%(maxlength)s வரைக்கும்)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "கமாவாள் பிரிக்கப்பட்ட முழு எண்"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "தேதி (நேரமில்லாமல்)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "தேதி (நேரமுடன்)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "மின் அஞ்சல்"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "கோப்புப் பாதை"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "தசம எண்கள்"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "இலக்கு முறை (சரி, தவறு அல்லது ஒன்றும் இல்லை)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "ஆதி மாதிரிக்கு தொடர்புடையது"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "தொலைபேசி எண்"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "உரை"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "நேரம்"
+
+#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "U.S. மாநிலம் (இரண்டு மேல் எழுத்துவகை எழுத்து"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML உரை"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s -ல் urlpattern தோன்றுவதில்லை"
+
+#: contrib/admin/views/auth.py:28
+msgid "Add user"
+msgstr "புதிய பயனர்"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "ஆவனமாக்கம்"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "கடவுச்சொல்லை மாற்று"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "வீடு"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:20
+msgid "History"
+msgstr "வரலாறு"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "தேதி/நேரம் "
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "பயனர்"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "செயல்"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "தேதியும் முழு நேரமும்"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"இந்த பொருள் மாற்று வரலாற்றில் இல்லை"
+"ஒரு வேளை நிர்வாகத்தளத்தின் மூலம் சேர்க்கப்படாமலிருக்கலாம்"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "டிஜாங்ஙோ தள நிர்வாகி"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "டிஜாங்ஙோ நிர்வாகம் "
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "சேவகன் பிழை"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "சேவையகம் தவறு(500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "சேவையகம் பிழை<em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"தவறு ஏற்பட்டுள்ளது"
+"வலைத்தள நிர்வாகிக்கு மின்னஞ்சல் அனுப்பப்பட்டுள்ளது. விரைவில் சரி செய்யப்படும். உங்களது பொறுமைக்கு நன்றி"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "பக்கத்தைக் காணவில்லை"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "நீங்கள் விரும்பிய பக்கத்தை காண இயலவில்லை,அதற்காக நாங்கள் வருந்துகிறோம்."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "செயலியில் கிடைக்கக் கூடிய  %(name)s  மாதிரிகள்"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "சேர்க்க"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "மாற்றுக"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "உங்களுக்கு மாற்றுவதற்குரிய உரிமையில்லை"
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "தற்போதைய செயல்கள்"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "எனது செயல்கள்"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "எதுவும் கிடைக்கவில்லை"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s சேர்க்க"
+
+#: contrib/admin/templates/admin/login.html:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr "நீங்கள் தங்களது கடவுச்சொல்லை  <a href=\"/password_reset/\"> மறந்து விட்டீர்களா?"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "நல்வரவு,"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "நீக்குக"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr "நீக்கும் '%(escaped_object)s' ஆனது %(object_name)s தொடர்புடைய மற்றவற்றையும் நீக்கும். ஆனால்  அதை நீக்குவதற்குரிய  உரிமை  உங்களுக்கு  இல்லை"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"நீங்கள் இந்த \"%(escaped_object)s\" %(object_name)s நீக்குவதில் நிச்சயமா?"
+"தொடர்புடைய மற்றவையும் நீக்கப்படும். "
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "ஆம், எனக்கு உறுதி"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr "%(filter_title)s ஆல்"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "செல்"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 விடை"
+msgstr[1] "%(counter)s விடைகள்"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s மொத்தம்"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "எல்லாவற்றையும் காட்டு"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "வடிகட்டி"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "தளத்தில் பார்"
+
+#: contrib/admin/templates/admin/change_form.html:30
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "கீழே உள்ள தவறுயைத் திருத்துக"
+msgstr[1] "கீழே உள்ள தவறுகளைத் திருத்துக"
+
+#: contrib/admin/templates/admin/change_form.html:48
+msgid "Ordering"
+msgstr "வரிசைப்படுத்துதல்"
+
+#: contrib/admin/templates/admin/change_form.html:51
+msgid "Order:"
+msgstr "வரிசைப்படுத்து:"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "புதியதாக சேமி"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "சேமித்து இன்னுமொன்றைச் சேர்"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "சேமித்து மாற்றத்தை தொடருக"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "சேமிக்க"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr "உங்களுடைய தகவல்சேமிப்பகத்தை  நிறுவுவதில் சில தவறுகள் உள்ளது. அதற்கு இணையான தகவல்சேமிப்பு அட்டவணையை" "தயாரிக்கவும். மேலும் பயனர் படிக்கும்  படியான தகவல்சேமிப்பகத்தை உருவாக்கவும்."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "முதலில்,பயனர்ப்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிடவும்.அதன் பிறகு தான் நீங்கள் உங்கள் பெயரின் விவரங்களை திருத்த முடியும்"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "பயனர்ப்பெயர்"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "கடவுச்சொல்"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "கடவுச்சொல்(மறுபடியும்)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "மேலே அதே கடவுச்சொல்லை உள்ளிடவும், சரிபார்ப்பதற்காக ."
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "கடவுச்சொல் மாற்று"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "வெற்றிகரமாக கடவுச்சொல் மாற்றபட்டது"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "உங்களுடைய கடவுச்சொல் மாற்றபட்டது"
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "கடவுச்சொல்லை மாற்றியமை"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"கடவுச்சொல்லை மறந்துவிட்டீரா? உங்களது மின்னஞ்சல்  முகவரியை உள்ளிடுக,அதன் பிறகு உங்கள் கடவுச்சொல்"
+" மாற்றியமைக்கப்பட்டு உங்களது மின்னஞ்சல்  முகவரிக்கு அனுப்பப்படும்"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "மின்அஞ்சல் முகவரி:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "எனது கடவுச்சொல்லை மாற்றியமை"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "வலைத்தளத்தில் உங்களது பொன்னான நேரத்தை செலவழித்தமைக்கு மிகுந்த நன்றி"
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "மீண்டும் உள்ளே பதிவு செய்யவும்"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "கடவுச்சொல் மாற்றியமைத்தல் வெற்றி"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"கடவுச்சொல்லை  மறந்து விட்டால் உங்களது மின்னஞ்சல்  முகவரியை உள்ளிடுக புதிய கடவுச்சொல்  "
+"உங்களது மின்னஞ்சல்  முகவரிக்கு அனுப்பப்பட்டுள்ளது. விரைவில் அது உங்களுக்கு கிடைக்கும்"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr "பாதுகாப்பு காரணங்களுக்காக , முதலில் உங்களது பழைய கடவுச்சொல்லை உள்ளிடுக. அதன் பிறகு புதிய கடவுச்சொல்லை இரு முறை உள்ளிடுக.  இது உங்களது உள்ளிடுதலை சரிபார்க்க உதவும். "
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "பழைய கடவுச்சொல் :"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "புதிய கடவுச்சொல்:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "கடவுச்சொலின் மாற்றத்தை உறுதிப்படுத்து:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "கடவுச் சொல்லை மாற்றவும்"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "கடவுச்சொல்லை மாற்றியமைக்க நீங்கள் கேட்டதனால் உங்களுக்கு இந்த மின்னஞ்சல் அனுப்பப்பட்டுள்ளது"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "%(site_name)s -இல் உள்ள உங்களது பயனாளர் கணக்கு"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "உங்களது  புதிய  கடவுச்சொல் : %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "கடவுச்சொல்லை மாற்றியமைக்க நீங்கள் இந்த பக்கத்திற்கு தாராளமாக போகலாம்."
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "உங்களது பயனாளர் பெயர், நீங்கள் மறந்திருந்தால்:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "எங்களது வலைத்தளத்தை பயன் படுத்தியதற்கு மிகுந்த நன்றி"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "இந்த %(site_name)s -இன்  குழு"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "புத்தகக்குறிகள்"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "ஆவணமாக்கக் குறியீடுகள்"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\"> புத்தக குறியீடுகளை நிறுவ இந்த இணைப்பினை புத்தகக்குறியீட்டுப் \n"
+"பட்டைக்கு இழுக்கவும். அல்லது வலது கிளிக் செய்து புத்தகக்குறியீடுகளில் சேர்க்கவும். \n"
+" இனி தளத்தில் எந்தப் பக்கத்தில் இருந்தும் புத்தகக்குறியீட்டினை தேர்வுசெய்ய முடியும். \n"
+" நீங்கள் இந்த தளத்தை  \"internal\" என  குறிக்கப்பட்ட கணிணியில் இருந்து மட்டுமே \n"
+" ஒருசில புத்தகக்குறிகளை செயல்படுத்தமுடியும்\n "
+" உங்களுக்கு, கணிணி  \"internal\" என உறுதி செய்ய கணிணிமேளாலரை அணுகவும்.</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "இந்த பக்கத்திற்கான ஆவணம்"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "எந்த ஒரு பக்கத்திலிருந்தும் ஆவணப்பக்கத்தை பார்வையிடுதல், அந்த பக்கத்தை உருவாக்குகிறது."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "object ID-ஐ காட்டு"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "ஒரே object-ஐ குறிக்கும் பக்கங்களின் பொருளடக்க வகை மற்றும் unique ID-ஐ   காட்டுகிறது."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "இதை திருத்துக (தற்போதைய சாளரம்)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "ஒரே object-ஐ குறிக்கும் பக்கங்களைக் காண மேலாளர் பக்கத்திற்கு செல்க."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "இதை திருத்துக. (புதிய சாளரம்)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "மேளாலர் பக்கத்தை முன்பு கண்டதுபோல், ஆனால் புதிய சாளரத்தில் திறக்கிறது."
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "தேதி:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "நேரம்:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "தற்போது:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "மாற்று:"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "லிருந்து திசைமாற்று"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"இது ஒரு முழுமையான பாதையாக இருக்கவேண்டும். "
+"இணையத்தளப்பெயராக இருக்கக்கூடாது. உதாரணம்:'/"
+"events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "திரும்ப அனுப்பு"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "இது முழுமையான பாதையாக (மேலே உள்ளது போல) அல்லது  \"http\"//\" என தொடங்கும் வலை  முகவரியாக இருக்கலாம்."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "திரும்ப அனுப்பு"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "திரும்ப அனுப்புகிறது. "
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "உதாரணம்: '/about/contact/'. முன்னும் பின்னும் '/' உள்ளதை உறுதி செய்க."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "தலைப்பு"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "பொருளடக்கம்"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "விமர்சனங்களை செயலாக்கு"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "வார்ப்புரு பெயர்"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr "உதாரணம்  'flatpages/contact_page'. இது இல்லையெனில் 'flatpages/default' என்பதே பயன்படுத்தப்படும்.ப்படும்."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "முன்பதிவு தேவை"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "இது தெரிவு செய்யப்பட்டிருந்தால், உள்நுழைந்த பயனர்கள் மட்டுமே இந்தப் பக்கத்தை பார்க்க முடியும்."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "எளிய பக்கம்"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "எளிய பக்கங்கள்"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "வெளியே வந்துவீட்டீர்"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "பெயர்"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "குறிமுறை பெயர்"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "அனுமதி"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "அனுமதிகள்"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "குழு"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "குழுக்கள்"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "பயனர் பெயர்"
+
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "தேவை. 30 எழுத்துகள் அல்லது கொஞ்சம். அகர வரிசை எழுத்துக்கள் மட்டுமே ( எழுத்துகள்,எண்கள்,அன்டர்ஸ்கோர்). "
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "முதல் பெயர்"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "கடைசி பெயர்"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "மின்னஞ்சல் முகவரி"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "கடவுச்சொல்"
+
+#: contrib/auth/models.py:94
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr "பயன்படுத்து '[algo]$[salt]$[hexdigest]'"
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "பணியாளர் நிலை"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "பயனர், 'மேலாளலர்' பக்கத்தில் நுழைவதை முடிவு செய்கிறது"
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "செயல்படும்"
+
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"பயனர்,டிஜாங்ஙோ 'மேலாளலர்' பக்கத்தில் நுழைவதை முடிவு செய்கிறது . இதை தேர்வு செய்யப்படாத கணக்கு உடனடியாக"
+"அழிக்கப்படும்"
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "மேலாளர் இருப்பு நிலை"
+
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "இந்த பயனருக்கு எல்லா அங்கீகாரங்களும் வழங்கப்படவில்லை."
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "கடைசி உள்நுழைவு"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "சேர்ந்த தேதி"
+
+#: contrib/auth/models.py:101
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr "பயனர் தனது அனுமதிகளோடு ,தான் உள்ள குழுவினது அனுமதிகளையும் பெறுவார்."
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "பயனர் அனுமதிகள்"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "பயனர்"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "பயனர்கள்"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "தனிப்பட்ட விவரம்"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "அனுமதிகள்"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "முக்கியமான தேதிகள்"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "குழுக்கள்"
+
+#: contrib/auth/models.py:256
+msgid "message"
+msgstr "செய்தி"
+
+#: contrib/auth/forms.py:52
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr " உங்கள் இணைய உலாவியில்  குக்கிகள்  செயலாக்கம் பெறவில்லை. உள்நுழைவதற்கு குக்கிகள் அவசியம்."
+
+#: contrib/auth/forms.py:61
+msgid "This account is inactive."
+msgstr "இந்த கணக்கு செயல்பட துவங்கவில்லை"
+
+#: contrib/contenttypes/models.py:20
+msgid "python model class name"
+msgstr "python model class name"
+
+#: contrib/contenttypes/models.py:23
+msgid "content type"
+msgstr "பொருளடக்க வகை"
+
+#: contrib/contenttypes/models.py:24
+msgid "content types"
+msgstr "பொருளடக்க வகைகள்"
+
+#: contrib/sessions/models.py:51
+msgid "session key"
+msgstr "அமர்வு குறியீ"
+
+#: contrib/sessions/models.py:52
+msgid "session data"
+msgstr "அமர்வு தகவல்"
+
+#: contrib/sessions/models.py:53
+msgid "expire date"
+msgstr "காலாவதியாகும் தேதி"
+
+#: contrib/sessions/models.py:57
+msgid "session"
+msgstr "அமர்வு"
+
+#: contrib/sessions/models.py:58
+msgid "sessions"
+msgstr "அமர்வுகள்"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "களப் பெயர்"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "காட்டும்  பெயர்"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "வலைத்தளம்"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "வலைத்தளங்கள்"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "திங்கள்"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "செவ்வாய்"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "புதன்"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "வியாழன்"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "வெள்ளி"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "சனி"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "ஞாயிறு"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "ஜனவரி"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "பிப்ரவரி"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "மார்ச்"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "ஏப்ரல்"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "மே"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "ஜூன்"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "ஜூலை"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "ஆகஸ்டு"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "செப்டம்பர்"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "அக்டோபர்"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "நவம்பர்"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "டிசம்பர்"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "ஜன"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "பிப்"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "மார்"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "ஏப்"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "மே"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "ஜூன்"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "ஜூலை"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "ஆக"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "செப்"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "அக்"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "நவ"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "டிச"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "ஜன."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "பிப்."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "ஆக."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "செப்."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "அக்."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "நவ."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "டிச."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "வருடம்"
+msgstr[1] "வருடங்கள்"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "மாதம்"
+msgstr[1] "மாதங்கள்"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "வாரம்"
+msgstr[1] "வாரங்கள்"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "நாள்"
+msgstr[1] "நாட்கள்"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "மணி"
+msgstr[1] "மணி"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "நிமிடம்"
+msgstr[1] "நிமிடங்கள்"
+
+#: utils/translation/trans_real.py:362
+msgid "DATE_FORMAT"
+msgstr "தேதி_முறை"
+
+#: utils/translation/trans_real.py:363
+msgid "DATETIME_FORMAT"
+msgstr "தேதிநேரம்_முறை"
+
+#: utils/translation/trans_real.py:364
+msgid "TIME_FORMAT"
+msgstr "நேரம்_முறை"
+
+#: utils/translation/trans_real.py:380
+msgid "YEAR_MONTH_FORMAT"
+msgstr "வருடம்_மாதம்_முறை"
+
+#: utils/translation/trans_real.py:381
+msgid "MONTH_DAY_FORMAT"
+msgstr "மாதம்_நாள்_முறை"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "அரபிக்"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "பெங்காலி"
+
+#: conf/global_settings.py:41
+msgid "Czech"
+msgstr "செக்"
+
+#: conf/global_settings.py:42
+msgid "Welsh"
+msgstr "வெல்ஸ்"
+
+#: conf/global_settings.py:43
+msgid "Danish"
+msgstr "டேனிஷ்"
+
+#: conf/global_settings.py:44
+msgid "German"
+msgstr "ஜெர்மன்"
+
+#: conf/global_settings.py:45
+msgid "Greek"
+msgstr "கிரேக்கம்"
+
+#: conf/global_settings.py:46
+msgid "English"
+msgstr "ஆங்கிலம்"
+
+#: conf/global_settings.py:47
+msgid "Spanish"
+msgstr "ஸ்பானிஷ்"
+
+#: conf/global_settings.py:48
+msgid "Argentinean Spanish"
+msgstr "அர்ஜெண்டியன் ஸ்பானிஷ் "
+
+#: conf/global_settings.py:49
+msgid "Finnish"
+msgstr "பீனீஷ்"
+
+#: conf/global_settings.py:50
+msgid "French"
+msgstr "ப்ரென்சு"
+
+#: conf/global_settings.py:51
+msgid "Galician"
+msgstr "கலீஷீயன்"
+
+#: conf/global_settings.py:52
+msgid "Hungarian"
+msgstr "ஹங்கேரியன்"
+
+#: conf/global_settings.py:53
+msgid "Hebrew"
+msgstr "ஹீப்ரு"
+
+#: conf/global_settings.py:54
+msgid "Icelandic"
+msgstr "ஐஸ்லான்டிக்"
+
+#: conf/global_settings.py:55
+msgid "Italian"
+msgstr "இத்தாலியன்"
+
+#: conf/global_settings.py:56
+msgid "Japanese"
+msgstr "ஜப்பானிய"
+
+#: conf/global_settings.py:57
+msgid "Dutch"
+msgstr "டச்சு"
+
+#: conf/global_settings.py:58
+msgid "Norwegian"
+msgstr "நார்வீசியன்"
+
+#: conf/global_settings.py:59
+msgid "Brazilian"
+msgstr "பிரேசிலியன்"
+
+#: conf/global_settings.py:60
+msgid "Romanian"
+msgstr "ரோமானியன்"
+
+#: conf/global_settings.py:61
+msgid "Russian"
+msgstr "ரஷ்யன்"
+
+#: conf/global_settings.py:62
+msgid "Slovak"
+msgstr "சுலோவாக்"
+
+#: conf/global_settings.py:63
+msgid "Slovenian"
+msgstr "ஸ்லோவேனியன்"
+
+#: conf/global_settings.py:64
+msgid "Serbian"
+msgstr "செர்பியன்"
+
+#: conf/global_settings.py:65
+msgid "Swedish"
+msgstr "சுவிடிஷ்"
+
+#: conf/global_settings.py:66
+msgid "Tamil"
+msgstr "தமிழ்"
+
+#: conf/global_settings.py:67
+msgid "Turkish"
+msgstr "துருக்கிஷ்"
+
+#: conf/global_settings.py:68
+msgid "Ukrainian"
+msgstr "உக்ரேனியன்"
+
+#: conf/global_settings.py:69
+msgid "Simplified Chinese"
+msgstr "எளிய சீன மொழி"
+
+#: conf/global_settings.py:70
+msgid "Traditional Chinese"
+msgstr "மரபு சீன மொழி"
+
+#: core/validators.py:63
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "இந்த மதிப்பு எழுத்துகள், எண்கள் மேலும் அன்டர்ஸ்கோர் உள்ளடக்க வேண்டும். "
+
+#: core/validators.py:67
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "இந்த மதிப்பு எழுத்துகள், எண்கள், அன்டர்ஸ்கோர், டஷ் அல்லது சலஷ் மற்றும் உள்ளடக்க வேண்டும்"
+
+#: core/validators.py:71
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "இந்த மதிப்பு எழுத்துகள், எண்கள், அன்டர்ஸ்கோர் டஷ் அல்லது கைப்பன் மற்றும் உள்ளடக்க வேண்டும்"
+
+#: core/validators.py:75
+msgid "Uppercase letters are not allowed here."
+msgstr "பெரிய எழுத்துகளுக்கு இங்கு அனுமதி இல்லை"
+
+#: core/validators.py:79
+msgid "Lowercase letters are not allowed here."
+msgstr "சிறிய எழுத்துகளுக்கு இங்கு அனுமதி இல்லை"
+
+#: core/validators.py:86
+msgid "Enter only digits separated by commas."
+msgstr "இங்கு எண்களை மட்டுமே எழுதவும் காமவாள் தனிமைபடுத்தவும் "
+
+#: core/validators.py:98
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "காற்புள்ளிகளால் தனிமைப்படுத்திய முறையான e முகவரிகள் மட்டும் எழுதவும்"
+
+#: core/validators.py:102
+msgid "Please enter a valid IP address."
+msgstr "தயவு செய்து முறையான ஐ.பி முகவரி மட்டும் எழுதவும்"
+
+#: core/validators.py:106
+msgid "Empty values are not allowed here."
+msgstr "காலியான மதிப்புக்கள் அனுமதி இல்லை"
+
+#: core/validators.py:110
+msgid "Non-numeric characters aren't allowed here."
+msgstr "எண் வடிவமில்லாத எழுத்துக்கள் அனுமதி இல்லை"
+
+#: core/validators.py:114
+msgid "This value can't be comprised solely of digits."
+msgstr "இந்த மதிப்பு இலக்கங்கள் மட்டுமே கொண்டதாக இருக்க கூடாது"
+
+#: core/validators.py:119
+msgid "Enter a whole number."
+msgstr "முழு எண் மட்டுமே எழுதவும்"
+
+#: core/validators.py:123
+msgid "Only alphabetical characters are allowed here."
+msgstr "அகர வரிசை எழுத்துக்கள் மட்டுமே அனுமதி உன்டு"
+
+#: core/validators.py:138
+msgid "Year must be 1900 or later."
+msgstr "வருடம் கண்டிப்பாக 1900 அல்லது அதற்கு மேல்"
+
+#: core/validators.py:142
+#, python-format
+msgid "Invalid date: %s."
+msgstr "முறையல்லாத தேதி: %s"
+
+#: core/validators.py:146 db/models/fields/__init__.py:415
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "வவவவ-மாமா-நாநா என்ற அமைப்பில் உள்ள முறையான தேதி மட்டுமே எழுதவும்"
+
+#: core/validators.py:151
+msgid "Enter a valid time in HH:MM format."
+msgstr "மம-நிநி என்ற அமைப்பில் உள்ள முறையான நேரம் மட்டுமே எழுதவும்"
+
+#: core/validators.py:155 db/models/fields/__init__.py:477
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "வவவவ-மாமா-நாநா மம-நிநி என்ற அமைப்பில் உள்ள முறையான தேதி/நேரம் மட்டுமே எழுதவும்"
+
+#: core/validators.py:160
+msgid "Enter a valid e-mail address."
+msgstr "முறையான e முகவரிகள் மட்டும் எழுதவும்"
+
+#: core/validators.py:172 core/validators.py:401 forms/__init__.py:661
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "அந்த பக்கத்தின் encoding வகையைப் பரிசோதிக்க.கோப்பு சமர்பிக்கப் பட்டவில்லை "
+
+#: core/validators.py:176
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "முறையான படம் மட்டுமே பதிவேற்றம் செய்யவும். நீங்கள் பதிவேற்றம் செய்த கோப்பு படம் அள்ளாத அல்லது கெட்டுப்போன கோப்பாகும்"
+
+#: core/validators.py:183
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "%s என்ற இணையதள முகவரி சரியான படத்தைச் சுட்டவில்லை"
+
+#: core/validators.py:187
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "தொலைபேசி எண்கள் XXX-XXX-XXXX என்ற அமைப்பில் இருக்க வேண்டும். \"%s\" என்பது முறையள்ள"
+
+#: core/validators.py:195
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "%s என்ற இணையதள முகவரி முறையான குயிக் டைம் படக்காட்சியைச் சுட்டவில்லை"
+
+#: core/validators.py:199
+msgid "A valid URL is required."
+msgstr "முறையான இணையதள முகவரி தேவை"
+
+#: core/validators.py:213
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"முறையான இணையதள முகவரி தேவை. குறிப்பிடத்தக்கத் தவறுகளாவன:\n"
+"%s"
+
+#: core/validators.py:220
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "முறைப்படுத்தப்படாத XML: %s"
+
+#: core/validators.py:230
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "முறைப்படுத்தப்படாத இணையதள முகவறி: %s"
+
+#: core/validators.py:234 core/validators.py:236
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "%s என்ற இணையதள முகவரி உடைந்துள்ளது"
+
+#: core/validators.py:242
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "முறையான U.S மாநில பெயர் சுருக்கம் எழுதவும்"
+
+#: core/validators.py:256
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "வார்த்தைகளை அளன்து பேசுங்கள்! %s என்ற வார்த்தை இங்கு அனுமதி இல்லை"
+msgstr[1] "வார்த்தைகளை அளந்து பேசுங்கள்! %s என்ற வார்த்தைகள் இங்கு அனுமதி இல்லை"
+
+#: core/validators.py:263
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "இந்த புலம் %s என்ற புலத்துடன் ஒத்திறுக்க வேண்டும்"
+
+#: core/validators.py:282
+msgid "Please enter something for at least one field."
+msgstr "தயவு செய்து ஒரு புலத்திலாவது ஏதாவது எழுதவும்"
+
+#: core/validators.py:291 core/validators.py:302
+msgid "Please enter both fields or leave them both empty."
+msgstr "தயவு செய்து இரு புலங்கலையும் நிரப்பவும் அல்லது இரண்டையும் காலியாக விடவும்"
+
+#: core/validators.py:309
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "%(field)s, %(value)s ஆக இருந்தால் இந்த புலம் இருக்க வேண்டும்"
+
+#: core/validators.py:321
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "%(field)s, %(value)s ஆக இல்லை என்றால் இந்த புலம் இருக்க வேண்டும்"
+
+#: core/validators.py:340
+msgid "Duplicate values are not allowed."
+msgstr "போலியான மதிப்புகள் அனுமதி இல்லை"
+
+#: core/validators.py:363
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "இந்த மதிப்பு %s இன் அடுக்காக இருக்க வேன்டும்"
+
+#: core/validators.py:374
+msgid "Please enter a valid decimal number."
+msgstr "தயவுசெய்து முறையான பதின்ம எண்ணை நுழைக்கவும்"
+
+#: core/validators.py:378
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "தயவுசெய்து முறையான பதின்ம எண்களுடன் %s மொத்த இலக்கத்தை நுழைக்கவும்"
+msgstr[1] "தயவுசெய்து முறையான பதின்ம எண்களுடன் %s மொத்த இலக்கங்களையும் நுழைக்கவும்"
+
+#: core/validators.py:381
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "அதிகபட்சம் %s எண்ணை உள்ள பதின்ம எண்ணை நுழை."
+msgstr[1] "அதிகபட்சம் %s எண்கள் உள்ள பதின்ம எண்ணை நுழை."
+
+#: core/validators.py:384
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "அதிகபட்சம் %s புள்ளி இடம் உள்ள பதின்ம எண்ணை  நுழை"
+msgstr[1] "அதிகபட்சம் %s புள்ளி இடங்கள் உள்ள பதின்ம எண்ணை  நுழை"
+
+#: core/validators.py:394
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "மேல்ஏற்று செய்யப்பட்ட கோப்பு குறைந்தபட்சம்  %s  பைட்டுகள் உள்ளனவா என சரி பார்க்கவும்"
+
+#: core/validators.py:395
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "மேல்ஏற்று செய்யப்பட்ட கோப்பு அதிகபட்சம்  %s  பைட்டுகள் உள்ளனவா என சரி பார்க்கவும்."
+
+#: core/validators.py:412
+msgid "The format for this field is wrong."
+msgstr "புலனுடைய அமைப்பு தவறு"
+
+#: core/validators.py:427
+msgid "This field is invalid."
+msgstr "இந்த புலம் செல்லாது.ள"
+
+#: core/validators.py:463
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "%s இருந்து எதுவும் எடுக்க முடியவில்லை"
+
+#: core/validators.py:466
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "வலைமனை %(url)s என்பது செல்லாத உள்ளடக்க-வகை தலைப்பான  '%(contenttype)s' ஐ திருப்பி தந்துள்ளது."
+
+#: core/validators.py:499
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr "%(line)s கோடு லிருந்து மூடாத %(tag)s டாகை மூடு. ( வரி,\"%(start)s\"வுடன் துவங்குகின்றது)"
+
+#: core/validators.py:503
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr "வரி %(line)s இல் உள்ள  சில உரைகள் இருப்பதற்கு அனுமதி இல்லை.( வரி,\"%(start)s\"வுடன் துவங்குகின்றது)"
+
+#: core/validators.py:508
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr "வரி %(line)s இல் உள்ள  \"%(attr)s\" என்பது தவறான பண்பாகும.( வரி,\"%(start)s\"வுடன் துவங்குகின்றது)"
+
+#: core/validators.py:513
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr "வரி %(line)s இல் உள்ள \"<%(tag)s>\" என்பது தவறான ஒட்டாகும் .( வரி,\"%(start)s\"வுடன் துவங்குகின்றது)"
+
+#: core/validators.py:517
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr "வரி %(line)s இல் உள்ள ஒட்டு இன பண்புகள்  தேவைப்படுகின்றன.(வரி,\"%(start)s\" வுடன் துவங்குகின்றது)"
+
+#: core/validators.py:522
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr "வரி %(line)s இல் உள்ள \"%(attr)s\"  பண்பின் மதிப்பு தவறானது.(வரி \"%(start)s\" இருந்து ஆரம்பம்)"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s வெற்றிகரமாக சேர்க்கப்பட்டு விட்டது"
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s வெற்றிகரமாக மாற்றபட்டு விட்டது"
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s நீக்கப்பட்டுள்ளது"
+
+#: db/models/manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(type)s உடன் உள்ள %(object)s ஏற்கனவே %(field)s கொடுக்கப்பட்டு  உள்ளது"
+
+#: db/models/fields/__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(fieldname)s உடன் உள்ள %(optname)s ஏற்கனவே உள்ளது"
+
+#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:551 db/models/fields/__init__.py:562
+#: forms/__init__.py:346
+msgid "This field is required."
+msgstr "இந்த  புலத்தில் மதிப்பு தேவை"
+
+#: db/models/fields/__init__.py:340
+msgid "This value must be an integer."
+msgstr "இந்த மதிப்பு முழுவெண்ணாக இருக்க வேண்டும"
+
+#: db/models/fields/__init__.py:372
+msgid "This value must be either True or False."
+msgstr "இந்த மதிப்பு சரி அல்லது தவறாக இருக்க வேண்டும்"
+
+#: db/models/fields/__init__.py:388
+msgid "This field cannot be null."
+msgstr "இந்த புலம் காலியாக இருக்கக் கூடாது"
+
+#: db/models/fields/__init__.py:571
+msgid "Enter a valid filename."
+msgstr "முறையான கோப்புப் பெயரை எழுதவும்"
+
+#: db/models/fields/related.py:51
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "தயவு செய்து முறையான %s எழுதவும்"
+
+#: db/models/fields/related.py:618
+msgid "Separate multiple IDs with commas."
+msgstr "பன்மையிலுள்ள அடையாளங்களை காற்புள்ளிகளால் பிரிக்கவும்"
+
+#: db/models/fields/related.py:620
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Mac இல், ஒன்றுக்கு மேற்பட்டவற்றை தேர்வு செய்ய \"Control\" அல்லது \"Command\" ஐ அழுத்தவும்"
+
+#: db/models/fields/related.py:664
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "தயவு செய்து முறையான %(self)s அடையாளங்களை எழுதவும். %(value)r என்ற மதிப்பு முறையானதல்ல."
+msgstr[1] "தயவு செய்து முறையான %(self)s அடையாளங்களை எழுதவும். %(value)r என்ற மதிப்புகள் முறையானதல்ல."
+
+#: forms/__init__.py:381
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "உங்கள் உரை %s ஐ விட குறைவான எழுத்து உடையது என்று உறுதி செய்து கொள்ளுங்கள்"
+msgstr[1] "உங்கள் உரை %s ஐ விட குறைவான எழுத்துகள் உடையது என்று உறுதி செய்து கொள்ளுங்கள்"
+
+#: forms/__init__.py:386
+msgid "Line breaks are not allowed here."
+msgstr "வரி உடைவுகள் அனுமதி இல்லை"
+
+#: forms/__init__.py:487 forms/__init__.py:560 forms/__init__.py:599
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "முறையான விருப்பத்தைத் தேர்வு செய்யவும்; '%(data)s என்பது %(choices)s இல் இல்லை"
+
+#: forms/__init__.py:663
+msgid "The submitted file is empty."
+msgstr "சமர்பிக்கப் பட்ட கோப்புக் காலியாக உள்ளது"
+
+#: forms/__init__.py:719
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "-32,768 மற்றும் 32,767 க்கு நடுவில் ஒரு முழு எண்ணை எழுதவும்"
+
+#: forms/__init__.py:729
+msgid "Enter a positive number."
+msgstr "ஒரு நேர்க்குறி எண்ணை எழுதவும்"
+
+#: forms/__init__.py:739
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "0 மற்றும் 32,767 க்கு நடுவில் ஒரு முழு எண்ணை எழுதவும்"
+
+#: template/defaultfilters.py:401
+msgid "yes,no,maybe"
+msgstr "ஆம், இல்லை, இருக்கலாம்"
+
diff --git a/webapp/django/conf/locale/ta/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/ta/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..b78b610
--- /dev/null
+++ b/webapp/django/conf/locale/ta/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/ta/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/ta/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..f60e945
--- /dev/null
+++ b/webapp/django/conf/locale/ta/LC_MESSAGES/djangojs.po
@@ -0,0 +1,112 @@
+# translation of djangojs.po to tamil
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# PONNUSAMY.A <ponnusamy.simpleman@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-12-09 11:51+0100\n"
+"PO-Revision-Date: 2007-03-14 16:40+0530\n"
+"Last-Translator: PONNUSAMY <ponnusamy.simpleman@gmail.com>\n"
+"Language-Team: tamil <tamilinix@yahoogroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s இருக்கிறதா "
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "எல்லாவற்றையும் தேர்ந்த்தெடுக்க"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "சேர்க்க"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "அழிக்க"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s தேர்ந்த்தெடுக்கப்பட்ட"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "தேவையானவற்றை தேர்ந்த்தெடுத்து கிளிக் செய்க"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "எல்லாவற்றையும் அழிக்க "
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"ஜனவரி பிப்ரவரி மார்ச் ஏப்ரல் மே ஜூன் ஜூலை ஆகஸ்டு செப்டம்பர் அக்டோபர் நவம்பர் "
+"டிசம்பர்"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "ஞாயிறு திங்கள் செவ்வாய் புதன்  வியாழன் வெள்ளி சனி "
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "ஞா தி செ பு வி வெ ச"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "இப்பொழுது "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "கடிகாரம் "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "ஒரு நேரத்தை தேர்ந்த்தெடுக்க  "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "நடு இரவு "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "காலை 6 மணி  "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "மதியம் "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "வேண்டாம் "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "இன்று "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "நாள்காட்டி  "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "நேற்று "
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "நாளை"
+
diff --git a/webapp/django/conf/locale/te/LC_MESSAGES/django.mo b/webapp/django/conf/locale/te/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..1541b23
--- /dev/null
+++ b/webapp/django/conf/locale/te/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/te/LC_MESSAGES/django.po b/webapp/django/conf/locale/te/LC_MESSAGES/django.po
new file mode 100644
index 0000000..f0bb7a6
--- /dev/null
+++ b/webapp/django/conf/locale/te/LC_MESSAGES/django.po
@@ -0,0 +1,2109 @@
+# translation of django.po to Telugu
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-25 15:43+0200\n"
+"PO-Revision-Date: 2007-05-19 12:44+0530\n"
+"Last-Translator: pavithran <pavithran.s@gmail.com>\n"
+"Language-Team: Telugu <indlinux-telugu@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n>1;"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "వస్తువు ఐడి"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "ముఖ్య అంశం"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "వ్యాఖ్యానము"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "రేటింగ్ #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "రేటింగ్ #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "రేటింగ్ #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "రేటింగ్ #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "రేటింగ్ #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "రేటింగ్ #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "రేటింగ్ #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "రేటింగ్ #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "సరైన  రేటింగ్"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "తేది /వేళ సమర్పించినది"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "బహిరంగమయినది"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "ఐపి అడ్రస్"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "తీసివేయబడినది"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr " ఈ వ్యాఖ్యానము సరిగ్గా లేదని తోచినచో ఈ  డబ్బా ని చెక్ చేయండి "
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "వ్యాఖ్యానములు"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "వస్తువు లోనిది"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "వ్యక్తి పేరు"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ఐపి అడ్రస్"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr " అధికారుల చేత ఆమోదించబడినది"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "నిరాటంకమైన వ్యాఖ్యానము"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "నిరాటంకము గావ్యాఖ్యానములు"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "స్కొర్"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "స్కొర్  తేది"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "కర్మ  స్కొర్"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "కర్మ  స్కొరులు"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d కి     %(user)s  రేటింగ్"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"%(user)s చేత చేయబడ్డ  వ్యాఖ్యానములు:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "ఫ్లాగ్ తేది "
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "యూజర్ ఫ్లాగ్"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "యూజర్ ఫ్లాగులు"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "%r యొక్క ఫ్లాగ్"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "తీసివేసిన  తారీఖు"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "మొదరేటర్  చేత తీసివేయబడినది "
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "మొదరేటర్  చేత తీసివేయబడినవి"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "మొదరేటర్ తీసివేసిన %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "అపరిచిత  యూజర్లు వోటు వేయలేరు"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "సరికాని  వ్యాఖ్యానము ఐడి"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "మీకు వోటు హక్కు లేదు"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "ఈ రేటింగ్ అవసరం  ఎం దుకంటే మీరు ఒక్కసారైన రేటింగ్ ఇచ్చారు"
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"ఈ  వ్యాఖ్యానము చేసిన యూజర్  %(count)s లు కన్న తక్కువ  సమర్పించాడు  "
+"వ్యాఖ్యానము:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"ఈ  వ్యాఖ్యానము చేసిన యూజర్  %(count)s లు కన్న తక్కువ  సమర్పించాడు"
+"వ్యాఖ్యానములు:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"ఈ  వ్యాఖ్యానము స్కెచి  యూజర్ చేసాడు  :\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "ఇక్కడ సమర్పణలు మాత్రమే అంగీకరిస్తాము"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "ఒకటి కాని ,అంత కన్నఎక్కువ ఫీల్డస్  సమర్పించలేదు"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "ఎవరో వ్యాఖ్యానము ఫార్మ్ ని గెలికారు (భద్రత కి భంగం) "
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"వ్యాఖ్యానము ఫార్మ్ లో  చెల్లని  'టార్గెట్ ' పారామీటర్ , ఆ వస్తువు ఐడి "
+"చెల్లదు"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "వ్యాఖ్యానము ఫార్మ్ లో 'ప్రివ్యీవ్'  కాని 'పోస్ట్'  ఇవ్వలేదు "
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "యూజర్ పేరు"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "లాగ్ ఔట్"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "పాస్ వర్డ్"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "పాస్ వర్డ్ మర్చిపోయారా?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "రేటింగులు"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "అవసరము"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "మీ ఇష్టం"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "ఫొటొ  పెట్టండి"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "వ్యాఖ్యానము"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "వ్యాఖ్యానము ని ప్రివ్యీవ్ చేయండి"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "మీ పేరు"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3> %s తో:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "అన్నీ"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "ఏ రోజైన"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "ఈ రోజు"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "గత  7 రోజుల గా"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "ఈ నెల"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "ఈ  సంవత్సరము"
+
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "అవును"
+
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "కాదు"
+
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "తెలియనది"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "పని సమయము "
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "వస్తువు"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "వస్తువు"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "పని ఫ్లాగ్"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "సందేశము ని మార్చంది"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "లాగ్ ఎంట్రీ"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "లాగ్ ఎంట్రీలు"
+
+#: contrib/admin/templatetags/admin_list.py:230
+msgid "All dates"
+msgstr "అన్నీ  రోజులు"
+
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:59
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "దయచేసి సరైన  యూజర్ పేరు పాస్ వర్డ్ ఇవ్వండి"
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "లాగ్ ఇన్"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr "దయచేసి మళ్ళీ  లాగ్ ఇన్ అవ్వండి ఎందుకంటే మీ సేస్సన్  ముగిసింది . బాధపడకండి మీ సమర్పన దాచిపెట్టాము"
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr "మీ  బ్రౌజర్ పై కుకీస్ అంగీకరించేటట్లు చేయలేదు . దయ చేసి  కుకీస్ ఎనేబల్ చేసి ,మళ్ళీ ట్రై చేయండి"
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "యూజర్ పేరు లో  '@' అక్షరము ఉందకూడడు"
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "మీ ఈ మెయిల్ అడ్రస్   మీ యూజర్ పేరు కాదు . '%s' ఇచ్చి చూడండి "
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "సైట్ నిర్వాహన"
+
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:17
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\"జయప్రదంగా కలపబడ్డడి"
+
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:22
+msgid "You may edit it again below."
+msgstr "మీరు  మళ్ళీ దీనినీ  క్రింద మార్చవచ్చు"
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "మీరు ఇంకొక   %s ని  క్రింద జత చేయొచ్చు"
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "%s ని జత చేయండి "
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "%s కలపబడ్డడి"
+
+#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
+msgid "and"
+msgstr "ఇంకా"
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr " %s మార్చబడిండి"
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "%s తీసివేయబడ్డడి"
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "ఫీల్డ్స్  ఏమి మార్చబడలేదు"
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" జయప్రదంగా మార్చబడిండి"
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" జయప్రదంగా కలపబడ్డడి  .మీరు  మళ్ళీ దీనినీ  క్రింద మార్చవచ్చు"
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "%s ని మార్చంది"
+
+#: contrib/admin/views/main.py:473
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "ఒకటి కాని ,అంత కన్నఎక్కువ  %(name)s లో  %(fieldname)s  : %(obj)s "
+
+#: contrib/admin/views/main.py:478
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "ఒకటి కాని ,అంత కన్నఎక్కువ   %(name)s లో  %(fieldname)s"
+
+#: contrib/admin/views/main.py:511
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\"జయప్రదంగా తీసివేయబడ్డడి"
+
+#: contrib/admin/views/main.py:514
+msgid "Are you sure?"
+msgstr "మీరు కచ్చితంగా ఉన్నారా?"
+
+#: contrib/admin/views/main.py:536
+#, python-format
+msgid "Change history: %s"
+msgstr "మార్చబడిన పురాణము: %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s"
+msgstr "%s ని ఎన్నుకోండి"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s to change"
+msgstr "%s ని మార్చటానికి  ఎన్నుకోండి"
+
+#: contrib/admin/views/main.py:758
+msgid "Database error"
+msgstr "డాటాబేస్ ఎర్రర్ "
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "టాగ్"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "ఫిల్టర్"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "చూడు:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "%rఎప్ప్ దొరకలేడు"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr "%r ఎప్ప్  లో %r మొడల్ దొరకలేడు"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr "సంబంధించిన `%s.%s` వస్తువు "
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "మొడల్:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr "సంబంధించిన  `%s.%s` వస్తువులు"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "ఆన్నీ  %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr ""
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s వస్తువులలో ఫీల్డ్స్   "
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "అంకె"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "కామా  తో విడడీసిన  సంఖ్య"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "తేది (సమయం లేకుండా)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "తేది (సమయం తో)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "ఈ మెయిల్  అడ్రస్  "
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "ఫైల్   పాత్"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr ""
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "పేరంట్ మొడల్ యొక్క రిలేషన్ "
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "ఫోన్ నంబరు"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "టెక్స్ట"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "వేళ"
+
+#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr ""
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "అమెరికా రాజ్యము"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "ఎక్స్  ఎమ్   ఎల్"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr ""
+
+#: contrib/admin/views/auth.py:28
+msgid "Add user"
+msgstr "యూజర్ ని జత చేయండి"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "పాస్ వర్డ్ మార్చుకోండి"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "ఇల్లు"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:20
+msgid "History"
+msgstr "పురాణము"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "తేది/వేళ"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "యూజర్"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "పని"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "డ్జాంగొ యొక్క నిర్వాహనదారులు"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "డ్జాంగొ నిర్వాహన"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "సర్వర్ తప్పు"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "సర్వర్ తప్పు (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "సర్వర్ తప్పు <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr "తప్పు  జరిగిండి .  దానిని  నిర్వాహనాధికారులు కి ఈ మెయిల్  చేయబడ్డడి,మీ ఓపిక కి ధన్యవాదములు"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "పేజి  దొరకలేదు"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "క్షమించండి మీరు కోరిన పేజి దొరకలేడు"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "మొడల్ లు %(name)s లో  దొరికే అప్ప్లికేషన్"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "జత చేయి"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "మార్చు"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "మీకు ఏది మార్చటానికి అధికారము లేదు"
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "ఈ మధ్య చేసిన పనులు"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "నా పనులు"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "ఏమి  దొరకలేదు"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s జత చేయు"
+
+#: contrib/admin/templates/admin/login.html:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr "మీరు<a href=\"/password_reset/\">పాస్ వర్డ మర్చిపోయారా? "
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "సుస్వాగతం"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "తీసివేయి"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "అవును "
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr ""
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "వెళ్లు"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr ""
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "అన్నీ చూడండి"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "సైట్ లో చూడండి"
+
+#: contrib/admin/templates/admin/change_form.html:30
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "క్రింద ఉన్న తప్పు  సరిదిద్దుకోండి"
+msgstr[1] "క్రింద ఉన్న తప్పులు  సరిదిద్దుకోండి"
+
+#: contrib/admin/templates/admin/change_form.html:48
+msgid "Ordering"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:51
+msgid "Order:"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "కొత్త దాని లా దాచు"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "దాచి కొత్త దానిని కలపండి"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "దాచి  మార్చుటా ఉందండి"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "దాచు"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "యూజర్ పేరు"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "పాస్ వర్డ్"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "పాస్ వర్డ్ (మళ్ళీ)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "ఇందాక పాస్ వర్డ్ మళ్ళీ ఇవ్వండి పరిశీలన కోసము"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "పాస్ వర్డ్ మార్పు"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "పాస్ వర్డ్ మార్పు జయప్రదమైండి "
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "మీ    పాస్ వర్డ్  మార్చబడిండి"
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "పాస్ వర్డ్ రీసెట్"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr "పాస్ వర్డ్ మర్చిపోయారా? మీ ఈ మెయిల్ అడ్రస్ ఇవ్వండి , మీ  పాస్ వర్డ్ రీసెట్ చేసి మీకు  కొత్తది ఈ మెయిల్ చేస్తాము "
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "ఈ మెయిల్ అడ్రస్"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "నా పాస్ వర్డ్ రీసెట్ చేయండి"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr ""
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "మళ్ళీ లాగ్ ఇన్ అవ్వండి"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "పాస్ వర్డ్ రీసెట్  జయప్రదమైండి"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr "మీరు ఇచ్చిన ఈ మెయిల్ అడ్రస్  కి  కొత్త  పాస్ వర్డ్ ఈ మెయిల్ చేసాము.మీరు తొందర లో దానిని అందుకుంటారు ."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr "దయచేసి  రక్షన కోసము, మీ పాత  పాస్ వర్డ్  ఇవ్వండి  ,  కొత్త పాస్ వర్డ్  రెండు సార్లు ఇవ్వండి , ఎం దుకంటే మీరు తప్పు ఇస్తే  సరిచేయటానికి "
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "పాత  పాస్ వర్డ్ "
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "కొత్త పాస్ వర్డ్"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "పాస్ వర్డ్ పక్కా చేయండి"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "నా పాస్ వర్డ్ మార్చండి"
+
+#: contrib/admin/templates/registration/password_reset_.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "మీరు ఈ ఈ మెయిల్ అందుకున్నారు,   ఎందుకంటే పాస్ వర్డ్ రీసెట్ కోసము కోరారు"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr ""
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "మీ  కొత్త పాస్ వర్డ్ : %(new_password)s "
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "నిస్సందేహము గా ఈ పేజి క్ కి వెళ్ళి పాస్ వర్డ్  మార్చుకోండి "
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "మీ యూజర్ పేరు, ఒక వేళ మర్చిపోయి ఉంటే "
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "మా సైట్  వాడినందుకు ధన్యవాదములు!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "వస్తువు ఇడి చూడండి"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "వస్తువు ని మార్చండి (ప్రస్తుత విండొ)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "వస్తువు ని మార్చండి(కొత్త విండొ) "
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr ""
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "తారీఖు"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "వేళ:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "ఇప్పుడు"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "మార్చు"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr ""
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr ""
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr ""
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr ""
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "పట్టము"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr ""
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr ""
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr ""
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr "Example: 'flatpages/contact_page.html'.ఇది ఇవ్వకపోతే సిస్టం " " 'flatpages/default.html' ని వాడుకుంటడి"
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "నమొదు చేయటము అవసరం"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "ఇది చెక్ చేసి ఉంటే కేవలం లాగ్గడ్ ఇన్ యూజర్లు పేజి చూడలేస్తారు"
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr ""
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr ""
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "లాగ్గడ్ ఔట్"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "పేరు"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr ""
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "అనుమతి"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "అనుమతులు"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "గుంపు"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "గుంపులు"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "యూజర్ పేరు"
+
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "పేరు"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "ఇంటి పేరు"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "ఈ మెయిల్  అడ్రస్"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "పాస్ వర్డ్"
+
+#: contrib/auth/models.py:94
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr ""
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "ఉద్యోగస్తుల  స్థితి"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "చురుకు గా"
+
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr ""
+
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "గత లాగిన్"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "చేరిన తారీఖు"
+
+#: contrib/auth/models.py:101
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "యూజర్  అనుమతులు"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "యూజర్"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "యూజర్లు"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "పర్సనల్ సమాచారం  "
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "అనుమతులు"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "ముఖ్యమైన తారీఖులు"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "గుంపులు"
+
+#: contrib/auth/models.py:256
+msgid "message"
+msgstr "సమాచారం"
+
+#: contrib/auth/forms.py:52
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+
+#: contrib/auth/forms.py:61
+msgid "This account is inactive."
+msgstr ""
+
+#: contrib/contenttypes/models.py:20
+msgid "python model class name"
+msgstr "పైతాన్ మొడల్ క్లాస్  పేరు"
+
+#: contrib/contenttypes/models.py:23
+msgid "content type"
+msgstr ""
+
+#: contrib/contenttypes/models.py:24
+msgid "content types"
+msgstr ""
+
+#: contrib/sessions/models.py:51
+msgid "session key"
+msgstr ""
+
+#: contrib/sessions/models.py:52
+msgid "session data"
+msgstr ""
+
+#: contrib/sessions/models.py:53
+msgid "expire date"
+msgstr ""
+
+#: contrib/sessions/models.py:57
+msgid "session"
+msgstr ""
+
+#: contrib/sessions/models.py:58
+msgid "sessions"
+msgstr ""
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr ""
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "కనిపిచ్చే పేరు"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "సైట్"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "సైట్లు"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "సోమవారము"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "మంగళవారము"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "బుధవారము"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "గురువారము"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "శుక్రవారము"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "శనివారము"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "ఆదివారము"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "జాన్వరి "
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "ఫిబ్రవరి"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "మార్చి"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "ఎప్రిల్"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "మే"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "జూను"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "జులై"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "ఆగష్టు"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "సెప్టెంబర్"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "అక్టోబర్"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "నవంబర్"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "డిసెంబర్"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "జాన్"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "ఫిబ్"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "మార్"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "ఎప్ర్"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "మే"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "జూన్"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "జుల్"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "ఆగ్"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "సెప్"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "అక్ట్"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "నవ్"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "డిస్"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "జాన్"
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "ఫిబ్"
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "ఆగ్"
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "సెప్"
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "అక్ట్"
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "నవ్"
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "డిస్"
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "సంవత్సరం"
+msgstr[1] "సంవత్సరాలు"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "నెల"
+msgstr[1] "నెలలు"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "వారం"
+msgstr[1] "వారాలు"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "రోజు"
+msgstr[1] "రోజులు"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "గంటలు"
+msgstr[1] "గంట"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "నిముషం"
+msgstr[1] "నిముషాలు"
+
+#: utils/translation/trans_real.py:362
+msgid "DATE_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:363
+msgid "DATETIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:364
+msgid "TIME_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:380
+msgid "YEAR_MONTH_FORMAT"
+msgstr ""
+
+#: utils/translation/trans_real.py:381
+msgid "MONTH_DAY_FORMAT"
+msgstr ""
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "ఆరబిక్"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "బెంగాలి"
+
+#: conf/global_settings.py:41
+msgid "Czech"
+msgstr "క్జెఖ్"
+
+#: conf/global_settings.py:42
+msgid "Welsh"
+msgstr "వెల్శ్"
+
+#: conf/global_settings.py:43
+msgid "Danish"
+msgstr "డానిశ్"
+
+#: conf/global_settings.py:44
+msgid "German"
+msgstr "జెర్మన్"
+
+#: conf/global_settings.py:45
+msgid "Greek"
+msgstr "గ్రీక్"
+
+#: conf/global_settings.py:46
+msgid "English"
+msgstr "ఆంగ్లము"
+
+#: conf/global_settings.py:47
+msgid "Spanish"
+msgstr "స్పానిష్"
+
+#: conf/global_settings.py:48
+msgid "Argentinean Spanish"
+msgstr "అర్జంటీనా స్పానిష్"
+
+#: conf/global_settings.py:49
+msgid "Finnish"
+msgstr "ఫీన్నిష్"
+
+#: conf/global_settings.py:50
+msgid "French"
+msgstr "ఫ్రెంచ్"
+
+#: conf/global_settings.py:51
+msgid "Galician"
+msgstr "గలిసియన్"
+
+#: conf/global_settings.py:52
+msgid "Hungarian"
+msgstr "హంగారియన్"
+
+#: conf/global_settings.py:53
+msgid "Hebrew"
+msgstr "హెబ్రివ్"
+
+#: conf/global_settings.py:54
+msgid "Icelandic"
+msgstr "ఐస్ లాండిక్"
+
+#: conf/global_settings.py:55
+msgid "Italian"
+msgstr "ఇటాలియవ్"
+
+#: conf/global_settings.py:56
+msgid "Japanese"
+msgstr "జపనీస్"
+
+#: conf/global_settings.py:57
+msgid "Dutch"
+msgstr "డట్చ్"
+
+#: conf/global_settings.py:58
+msgid "Norwegian"
+msgstr "నార్వీజియన్"
+
+#: conf/global_settings.py:59
+msgid "Brazilian"
+msgstr "బ్రజీలియన్"
+
+#: conf/global_settings.py:60
+msgid "Romanian"
+msgstr "రొమానియన్"
+
+#: conf/global_settings.py:61
+msgid "Russian"
+msgstr "రస్సెన్"
+
+#: conf/global_settings.py:62
+msgid "Slovak"
+msgstr "స్లొవాక్"
+
+#: conf/global_settings.py:63
+msgid "Slovenian"
+msgstr "స్లొవానియన్"
+
+#: conf/global_settings.py:64
+msgid "Serbian"
+msgstr "సెర్బియన్"
+
+#: conf/global_settings.py:65
+msgid "Swedish"
+msgstr "స్వీడిష్"
+
+#: conf/global_settings.py:66
+msgid "Tamil"
+msgstr "తమిళ్"
+
+#: conf/global_settings.py:67
+msgid "Turkish"
+msgstr "టర్కిశ్"
+
+#: conf/global_settings.py:68
+msgid "Ukrainian"
+msgstr "యుక్రానియన్"
+
+#: conf/global_settings.py:69
+msgid "Simplified Chinese"
+msgstr "వాడుక చైనీస్"
+
+#: conf/global_settings.py:70
+msgid "Traditional Chinese"
+msgstr "గ్రాంధిక  చైనీస్"
+
+#: core/validators.py:63
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "ఈ విలువ   లో అక్షరాలు, అంకెలు ఇంకా అండర్ స్కోర్లు ఉందాలి"
+
+#: core/validators.py:67
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "ఈ విలువ   లో అక్షరాలు, అంకెలు , అండర్ స్కోర్లు ,డాష్ లు లేక స్లాష్ లు ఉందాలి"
+
+#: core/validators.py:71
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "ఈ విలువ   లో అక్షరాలు, అంకెలు , అండర్ స్కోర్లు  లేక హైఫన్లు  ఉందాలి"
+
+#: core/validators.py:75
+msgid "Uppercase letters are not allowed here."
+msgstr ""
+
+#: core/validators.py:79
+msgid "Lowercase letters are not allowed here."
+msgstr ""
+
+#: core/validators.py:86
+msgid "Enter only digits separated by commas."
+msgstr "కామాల తో అంకెలు విడడీసి ఇవ్వండి "
+
+#: core/validators.py:98
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "కామాల తో విడతీసి  సరైన ఈ మెయిల్  అడ్రస్ ఇవ్వండి"
+
+#: core/validators.py:102
+msgid "Please enter a valid IP address."
+msgstr "దయచేసి సరైన ఐపి అడ్రస్ ఇవ్వండి "
+
+#: core/validators.py:106
+msgid "Empty values are not allowed here."
+msgstr "ఇక్కడ కాళీ విలువలు అనుమతించబడవు "
+
+#: core/validators.py:110
+msgid "Non-numeric characters aren't allowed here."
+msgstr "అంకెలు కాని చిహ్నాలు అనుమతించబడవు"
+
+#: core/validators.py:114
+msgid "This value can't be comprised solely of digits."
+msgstr "ఈ విలువ లో ఉట్టి మాత్రమే ఉందకూడడు"
+
+#: core/validators.py:119
+msgid "Enter a whole number."
+msgstr "పూర్ణ సంఖ్య ఇవ్వండి"
+
+#: core/validators.py:123
+msgid "Only alphabetical characters are allowed here."
+msgstr "అక్షరాలు  అయిన చిహ్నాలు మాత్రమే  అనుమతించబడతాయి "
+
+#: core/validators.py:138
+msgid "Year must be 1900 or later."
+msgstr "సంవత్సరము 1900 లేక దాని తరువాత అయ్యి ఉందాలి "
+
+#: core/validators.py:142
+#, python-format
+msgid "Invalid date: %s."
+msgstr "సరికాని తారీఖు : %s."
+
+#: core/validators.py:146 db/models/fields/__init__.py:415
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr ""
+
+#: core/validators.py:151
+msgid "Enter a valid time in HH:MM format."
+msgstr ""
+
+#: core/validators.py:155 db/models/fields/__init__.py:477
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr ""
+
+#: core/validators.py:160
+msgid "Enter a valid e-mail address."
+msgstr "సరైన ఈ మెయిల్  అడ్రస్ ఇవ్వండి"
+
+#: core/validators.py:172 core/validators.py:401 forms/__init__.py:661
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+
+#: core/validators.py:176
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+
+#: core/validators.py:183
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr ""
+
+#: core/validators.py:187
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+
+#: core/validators.py:195
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr ""
+
+#: core/validators.py:199
+msgid "A valid URL is required."
+msgstr "సరైన  URL కావాలి"
+
+#: core/validators.py:213
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"సరైన  HTML ఇవ్వండి .ప్రత్యేకమైన తప్పులు :\n"
+"%s"
+
+#: core/validators.py:220
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr ""
+
+#: core/validators.py:230
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "సరికాని  URL: %s"
+
+#: core/validators.py:234 core/validators.py:236
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr ""
+
+#: core/validators.py:242
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "దయచేసి  సరైన అగ్ర రాజ్య  సంక్షేపము చేసిన  రాష్ట్రము పేరు ఇవ్వండి"
+
+#: core/validators.py:256
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:263
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "ఈ ఫీల్డ్  '%s' ఫీల్డ్ కి సరి తూగాలి"
+
+#: core/validators.py:282
+msgid "Please enter something for at least one field."
+msgstr "దయచేసి ఏదో  ఒకటి  ఏదో ఒక ఫీల్డ్ కి ఇవ్వండి "
+
+#: core/validators.py:291 core/validators.py:302
+msgid "Please enter both fields or leave them both empty."
+msgstr "దయచేసి రెండు ఫీల్డ్లలు ఇవ్వండి  లేకపోతే రెండు కాళీ గా వదిలేయండి   "
+
+#: core/validators.py:309
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "%(field)s %(value)s ఐతే ఈ ఫీల్డ్  ఇవ్వాలి  "
+
+#: core/validators.py:321
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "%(field)s %(value)s అవ్వకపోతే ఈ ఫీల్డ్  ఇవ్వాలి "
+
+#: core/validators.py:340
+msgid "Duplicate values are not allowed."
+msgstr "నకలీ విలువలు ఇక్కడ అనుమతించబడవు"
+
+#: core/validators.py:363
+#, python-format
+msgid "This value must be a power of %s."
+msgstr ""
+
+#: core/validators.py:374
+msgid "Please enter a valid decimal number."
+msgstr ""
+
+#: core/validators.py:378
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:381
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:384
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:394
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+
+#: core/validators.py:395
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+
+#: core/validators.py:412
+msgid "The format for this field is wrong."
+msgstr "ఈ ఫీల్డ్  ఫోర్మాట్ తప్పు"
+
+#: core/validators.py:427
+msgid "This field is invalid."
+msgstr "ఈ ఫీల్డ్ సరి కానిది"
+
+#: core/validators.py:463
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "%s నించి  ఏమి  రాబట్టలేము"
+
+#: core/validators.py:466
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+
+#: core/validators.py:499
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:503
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:508
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:513
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:517
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:522
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s జయప్రదంగా తయారయింది"
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s జయప్రదంగా  @@"
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s తీసివేయబడినది"
+
+#: db/models/manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(field)s లో %(object)s తో  %(type)s  ఉన్నాయి"
+
+#: db/models/fields/__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s తో %(fieldname)s ముందే ఉన్నాయి ."
+
+#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:551 db/models/fields/__init__.py:562
+#: forms/__init__.py:346
+msgid "This field is required."
+msgstr "ఈ ఫీల్డ్ అవసరము"
+
+#: db/models/fields/__init__.py:340
+msgid "This value must be an integer."
+msgstr "ఈ  విలువ  లో  ఉందాలి"
+
+#: db/models/fields/__init__.py:372
+msgid "This value must be either True or False."
+msgstr "ఈ  విలువ  తప్పైన ఒప్పైన  ఉందాలి"
+
+#: db/models/fields/__init__.py:388
+msgid "This field cannot be null."
+msgstr "ఈ ఫీల్డ్ కాళీగా ఉందకూడడు      "
+
+#: db/models/fields/__init__.py:571
+msgid "Enter a valid filename."
+msgstr "దయచేసి సరైన దస్త్రం పేరు ఇవ్వండి."
+
+#: db/models/fields/related.py:51
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "దయచేసి సరైన %sఇవ్వండి."
+
+#: db/models/fields/related.py:618
+msgid "Separate multiple IDs with commas."
+msgstr "గుంపు    గా ఉన్న ఐడిల ను కామా తో విడడీయంది"
+
+#: db/models/fields/related.py:620
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "\"Control\" కాని  \"Command\" మాక్ లో  నొక్కి ఉంచండి  , ఒకటి కన్న ఎక్కువ ఎన్నుకోవటానికి"
+
+#: db/models/fields/related.py:664
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "దయచేసి సరైన  %(self)s ఐడిలు ఇవ్వండి.  "
+msgstr[1] ""
+
+#: forms/__init__.py:381
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "మీరు  ఇచ్చిన టెక్స్ట %s ఆక్షరము కన్న తక్కువ ఉందాలి"
+msgstr[1] "మీరు  ఇచ్చిన టెక్స్ట %s ఆక్షరములు కన్న తక్కువ ఉందాలి"
+
+#: forms/__init__.py:386
+msgid "Line breaks are not allowed here."
+msgstr "లైన్  బ్రేక్స్  కి ఇక్కడ  ఆనుమతి లేదు"
+
+#: forms/__init__.py:487 forms/__init__.py:560 forms/__init__.py:599
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "సరైనది ఎంచుకోండి;  %(choices)s లో  '%(data)s' లేవు  "
+
+#: forms/__init__.py:663
+msgid "The submitted file is empty."
+msgstr "మీరు సమర్పించిన  ఫైల్ కాళీగా ఉంది "
+
+#: forms/__init__.py:719
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr " -32,768 ఇంకా  32,767 మధ్యలో  ఒక    ఆంకె ఇవ్వండి"
+
+#: forms/__init__.py:729
+msgid "Enter a positive number."
+msgstr "ఒక    ధన సంఖ్య ఇవ్వండి"
+
+#: forms/__init__.py:739
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "0 ఇంకా  32,767 మధ్యలో  ఒక    పూర్ ఇవ్వండి"
+
+#: template/defaultfilters.py:401
+msgid "yes,no,maybe"
+msgstr "అవును, కాదు , ఏమొ"
+
diff --git a/webapp/django/conf/locale/te/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/te/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..b8df70d
--- /dev/null
+++ b/webapp/django/conf/locale/te/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/te/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/te/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..16f5f9f
--- /dev/null
+++ b/webapp/django/conf/locale/te/LC_MESSAGES/djangojs.po
@@ -0,0 +1,110 @@
+# translation of djangojs.po to Telugu
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# pavithran <pavithran.s@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"PO-Revision-Date: 2007-03-06 16:08+0530\n"
+"Last-Translator: pavithran <pavithran.s@gmail.com>\n"
+"Language-Team: Telugu <indlinux-telugu@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "ఆందుబాతులోఉన్న %s "
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "అన్నీ ఎన్నుకోండి"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "ఙత చేయి"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "తీసివేయండి"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "ఎన్నుకున్న %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "మీ ఇష్టాలు ఎన్నుకోండి"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "అన్ని తీసివేయు"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "ఙాన్వరి ఫిబ్రవరి మార్చి ఎప్రిల్ మే ఙూను ఙులై ఆగష్టు సెప్టెంబర్ అక్టోబర్ నవంబర్ డిసెంబర్"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "ఆదివారము సోమవారము మంగళవారము బుధవారము గురువారము శుక్రవారము శనివారము"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "ఆ సో మం భు గు శు శ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "ఇప్పుడు"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "గడియారము"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "ఒక సమయము ఎన్నుకోండి"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "ఆర్ధరాత్రి"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "6"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "మధ్యాహ్నము"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "రద్దు చేయు"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "ఈనాడు"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "కాలెండర్"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "నిన్న"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "రేపు"
+
diff --git a/webapp/django/conf/locale/tr/LC_MESSAGES/django.mo b/webapp/django/conf/locale/tr/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..bb3b1af
--- /dev/null
+++ b/webapp/django/conf/locale/tr/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/tr/LC_MESSAGES/django.po b/webapp/django/conf/locale/tr/LC_MESSAGES/django.po
new file mode 100644
index 0000000..224cc7f
--- /dev/null
+++ b/webapp/django/conf/locale/tr/LC_MESSAGES/django.po
@@ -0,0 +1,2473 @@
+# translation of django.po to Turkish
+# This file is distributed under the same license as the Django package.
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-03-14 01:38+0200\n"
+"PO-Revision-Date: 2008-07-02 23:37+0200\n"
+"Last-Translator: Can Burak Çilingir <canburak@cs.bilgi.edu.tr>\n"
+"Language-Team: Turkish <bahadir@pardus.org.tr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: oldforms/__init__.py:357 db/models/fields/__init__.py:116
+#: db/models/fields/__init__.py:273 db/models/fields/__init__.py:609
+#: db/models/fields/__init__.py:620 newforms/models.py:177
+#: newforms/fields.py:78 newforms/fields.py:374 newforms/fields.py:450
+#: newforms/fields.py:461
+msgid "This field is required."
+msgstr "Bu alan gerekli."
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Metnin %s karakterden az olmasına dikkat edin."
+msgstr[1] "Metnin %s karakterden az olmasına dikkat edin."
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "Burada birden fazla satır olamaz."
+
+#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr ""
+"Geçerli bir seçimde bulunun; %(choices)s değerleri içinde '%(data)s' yok."
+
+#: oldforms/__init__.py:577 newforms/widgets.py:170
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "Bilinmiyor"
+
+#: oldforms/__init__.py:577 newforms/widgets.py:170
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "Evet"
+
+#: oldforms/__init__.py:577 newforms/widgets.py:170
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "Hayır"
+
+#: oldforms/__init__.py:672 core/validators.py:174 core/validators.py:445
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Dosya gönderilmedi. Formdaki kodlama türünü kontrol edin."
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "Gönderilen dosya boş."
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "-32,768 ve 32,767 arası bir sayı girin."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "Pozitif tamsayı girin."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "0 ve 32,767 arası bir sayı girin."
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(type)s ve %(field)s değerine sahip %(object)s kaydı zaten var."
+
+#: db/models/manipulators.py:308 contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339
+msgid "and"
+msgstr "ve"
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(fieldname)s için %(optname)s değeri zaten seçilmiş."
+
+#: db/models/fields/__init__.py:366
+msgid "This value must be an integer."
+msgstr "Bu değer tamsayı olmalı."
+
+#: db/models/fields/__init__.py:401
+msgid "This value must be either True or False."
+msgstr "Bu değer True ya da False olabilir."
+
+#: db/models/fields/__init__.py:422
+msgid "This field cannot be null."
+msgstr "Bu alan boş bırakılamaz."
+
+#: db/models/fields/__init__.py:456 core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "YYYY-AA-GG formatında tarih girin."
+
+#: db/models/fields/__init__.py:525 core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "YYYY-AA-GG SS:DD formatında tarih girin."
+
+#: db/models/fields/__init__.py:629
+msgid "Enter a valid filename."
+msgstr "Geçerli bir dosya adı girin."
+
+#: db/models/fields/__init__.py:750
+msgid "This value must be either None, True or False."
+msgstr "Bu değer None, True ya da False olabilir."
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Lütfen geçerli bir %s girin."
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Birden fazla numarayı virgül ile ayırın."
+
+#: db/models/fields/related.py:644
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"\"Ctrl\" ve Mac'de \"Command\" tuşunu basılı tutarak birden fazla seçimde "
+"bulunabilirsiniz."
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Lütfen geçerli bir %(self)s numarası girin. %(value)r değeri geçersiz."
+msgstr[1] ""
+"Lütfen geçerli %(self)s numaraları girin. %(value)r değerleri geçersiz."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arapça"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengali Dili"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "Katalanca"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "Çekçe"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "Galce"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "Danca"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "Almanca"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "Yunanca"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "İngilizce"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "İspanyolca"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "Arjantin İspanyolcası"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "Fince"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "Fransızca"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "Galler Dili"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "Macarca"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "İbranice"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "İzlanda dili"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "İtalyanca"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "Japonca"
+
+#: conf/global_settings.py:58
+msgid "Kannada"
+msgstr "Kannada Dili"
+
+#: conf/global_settings.py:59
+msgid "Latvian"
+msgstr "Leton Dili"
+
+#: conf/global_settings.py:60
+msgid "Macedonian"
+msgstr "Makedonca"
+
+#: conf/global_settings.py:61
+msgid "Dutch"
+msgstr "Flamanca"
+
+#: conf/global_settings.py:62
+msgid "Norwegian"
+msgstr "Norveç Dili"
+
+#: conf/global_settings.py:63
+msgid "Polish"
+msgstr "Lehçe"
+
+#: conf/global_settings.py:64
+msgid "Brazilian"
+msgstr "Brezilya Dili"
+
+#: conf/global_settings.py:65
+msgid "Romanian"
+msgstr "Romence"
+
+#: conf/global_settings.py:66
+msgid "Russian"
+msgstr "Rusça"
+
+#: conf/global_settings.py:67
+msgid "Slovak"
+msgstr "Slovakça"
+
+#: conf/global_settings.py:68
+msgid "Slovenian"
+msgstr "Slovence"
+
+#: conf/global_settings.py:69
+msgid "Serbian"
+msgstr "Sırpça"
+
+#: conf/global_settings.py:70
+msgid "Swedish"
+msgstr "İsveççe"
+
+#: conf/global_settings.py:71
+msgid "Tamil"
+msgstr "Tamilce"
+
+#: conf/global_settings.py:72
+msgid "Telugu"
+msgstr "Telugu Dili"
+
+#: conf/global_settings.py:73
+msgid "Turkish"
+msgstr "Türkçe"
+
+#: conf/global_settings.py:74
+msgid "Ukrainian"
+msgstr "Ukraynaca"
+
+#: conf/global_settings.py:75
+msgid "Simplified Chinese"
+msgstr "Basiteştirilmiş Çince"
+
+#: conf/global_settings.py:76
+msgid "Traditional Chinese"
+msgstr "Gelenelsek Çince"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Bu değer sadece karakter, rakam ve altçizgiden oluşabilir."
+
+#: core/validators.py:68
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Bu değer sadece harf, rakam, altçizgi, bölü ve ters bölüden oluşabilir."
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Bu değer sadece harf, rakam, altçizgi veya çizgiden oluşabilir."
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "Burada büyük harf kullanılamaz."
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "Burada küçük harf kullanılamaz."
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "Sadece virgülle ayrılmış sayılar girin."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Virgülle ayrılmış geçerli e-posta adresleri girin."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "Lütfen geçerli bir IP adresi girin."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "Burada boş değer kullanılamaz."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Burada numerik olmayan karakterler kullanılamaz."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "Bu alanda sadece rakam kullanılamaz."
+
+#: core/validators.py:120 newforms/fields.py:126
+msgid "Enter a whole number."
+msgstr "Sayı girin."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "Burada sadece alfabetik karakterler kullanılabilir."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr "Yıl 1900 ya da sonrası olabilir."
+
+#: core/validators.py:143
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Geçersiz tarih: %s"
+
+#: core/validators.py:153
+msgid "Enter a valid time in HH:MM format."
+msgstr "SS:DD formatında geçerli bir saat girin."
+
+#: core/validators.py:162 newforms/fields.py:269
+msgid "Enter a valid e-mail address."
+msgstr "Geçerli bir e-posta adresi girin."
+
+#: core/validators.py:178
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Geçerli bir resim girin. Gönderdiğiniz dosya resim değil, ya da bozuk bir "
+"dosya."
+
+#: core/validators.py:185
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "%s adresi geçerli bir resme işaret etmiyor."
+
+#: core/validators.py:189
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefon numarası XXX-XXX-XXXX formatında olmalı. \"%s\" geçersiz."
+
+#: core/validators.py:197
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "%s adresi geçerli bir QuickTime dosyasına işaret etmiyor."
+
+#: core/validators.py:201
+msgid "A valid URL is required."
+msgstr "Geçerli bir URL gerekli."
+
+#: core/validators.py:215
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Metnin geçerli bir HTML kodu olması gerekir. Hatalar:\n"
+"%s"
+
+#: core/validators.py:222
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Geçersiz XML kodu: %s"
+
+#: core/validators.py:239
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Geçersiz adres: %s"
+
+#: core/validators.py:244 core/validators.py:246
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "%s kırık bir link."
+
+#: core/validators.py:252
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Geçerli bir şehir kodu girin."
+
+#: core/validators.py:266
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Söylediğinize dikkat edin! %s kelimesi burada kullanılamaz."
+msgstr[1] "Söylediğinize dikkat edin! %s kelimeleri burada kullanılamaz."
+
+#: core/validators.py:273
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Bu alan '%s' ile alanı ile uyuşmalı."
+
+#: core/validators.py:292
+msgid "Please enter something for at least one field."
+msgstr "Lütfen en az bir alana giriş yapın."
+
+#: core/validators.py:301 core/validators.py:312
+msgid "Please enter both fields or leave them both empty."
+msgstr "Lütfen tüm alanları doldurun ya da hepsini boş bırakın."
+
+#: core/validators.py:320
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Bu alan %(field)s alanı %(value)s değerine sahipse doldurulmalı."
+
+#: core/validators.py:333
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Bu alan %(field)s alanı %(value)s değerine sahip değilse doldurulmalı."
+
+#: core/validators.py:352
+msgid "Duplicate values are not allowed."
+msgstr "Tekrarlanan değerler kabul edilmez."
+
+#: core/validators.py:367
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Bu değer %(lower)s ve %(upper)s arasında olabilir."
+
+#: core/validators.py:369
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Bu değer en az %s olabilir."
+
+#: core/validators.py:371
+#, python-format
+msgid "This value must be no more than %s."
+msgstr ""
+
+#: core/validators.py:407
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Bu değer %s ya da kuvvetleri olabilir."
+
+#: core/validators.py:418
+msgid "Please enter a valid decimal number."
+msgstr "Lütfen geçerli bir ondalık sayı girin."
+
+#: core/validators.py:422
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Lütfen en fazla %s basamaklı bir ondalık sayı girin."
+msgstr[1] "Lütfen en fazla %s basamaklı bir ondalık sayı girin."
+
+#: core/validators.py:425
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Lütfen tamsayı kısmı en fazla %s basamaklı bir ondalık sayı girin."
+msgstr[1] "Lütfen tamsayı kısmı en fazla %s basamaklı bir ondalık sayı girin."
+
+#: core/validators.py:428
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Lütfen ondalıklı kısmı en fazla %s basamaklı bir ondalık sayı girin."
+msgstr[1] ""
+"Lütfen ondalıklı kısmı en fazla %s basamaklı bir ondalık sayı girin."
+
+#: core/validators.py:438
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Gönderdiğiniz dosyanın en az %s byte uzunlukta olduğundan emin olun."
+
+#: core/validators.py:439
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Gönderdiğiniz dosyanın en fazl %s byte uzunlukta olduğundan emin olun."
+
+#: core/validators.py:456
+msgid "The format for this field is wrong."
+msgstr "Bu alandaki veri formatı hatalı."
+
+#: core/validators.py:471
+msgid "This field is invalid."
+msgstr "Alan geçersiz."
+
+#: core/validators.py:507
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "%s içinden hiçbirşey aktarılamıyor."
+
+#: core/validators.py:510
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "%(url)s adresi geçersiz içerik türü (%(contenttype)s) gönderdi."
+
+#: core/validators.py:543
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Lütfen %(line)s. satırdaki kapatılmayan %(tag)s etiketini kapatın. (Satır, "
+"\"%(start)s\" ile başlıyor.)"
+
+#: core/validators.py:547
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"%(line)s. satırda başlayan bazı kelimeler içerik olarak kabul edilmiyor. "
+"(Satır, \"%(start)s\" ile başlıyor.)"
+
+#: core/validators.py:552
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"%(line)s. satırdaki \"%(attr)s\" özelliği geçersiz. (Satır, \"%(start)s\" "
+"ile başlıyor.)"
+
+#: core/validators.py:557
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"%(line)s. satırdaki \"<%(tag)s>\" etiketi geçersiz. (Satır, \"%(start)s\" "
+"ile başlıyor.)"
+
+#: core/validators.py:561
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"%(line)s. satırdaki bir etiket eksik ya da eklenmesi gereken özellikleri "
+"var. (Satır, \"%(start)s\" ile başlıyor.)"
+
+#: core/validators.py:566
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"%(line)s. satırdaki \"%(attr)s\" özelliği geçersiz bir değere sahip. (Satır, "
+"\"%(start)s\" ile başlıyor.)"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s başarıyla yaratıldı."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s başarıyla güncellendi."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s silindi."
+
+#: newforms/models.py:164 newforms/fields.py:360
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Geçerli bir seçimde bulunun; seçiminiz mevcut değerlerden birisi değil."
+
+#: newforms/models.py:181 newforms/fields.py:378 newforms/fields.py:454
+msgid "Enter a list of values."
+msgstr "Değer listesi giriniz."
+
+#: newforms/models.py:187 newforms/fields.py:387
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Geçerli bir seçimde bulunun; %s mevcut değerlerden biri değil."
+
+#: newforms/fields.py:101 newforms/fields.py:254
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "Bu değer en fazla %d karakter olabilir."
+
+#: newforms/fields.py:103 newforms/fields.py:256
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "Bu değer en az %d arakter olabilir."
+
+#: newforms/fields.py:128
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:163
+msgid "Enter a valid date."
+msgstr "Geçerli bir tarih girin."
+
+#: newforms/fields.py:190
+msgid "Enter a valid time."
+msgstr "Geçerli bir zaman giriniz."
+
+#: newforms/fields.py:226
+msgid "Enter a valid date/time."
+msgstr "Geçerli bir tarih/zaman giriniz."
+
+#: newforms/fields.py:240
+msgid "Enter a valid value."
+msgstr "Geçerli bir değer girin."
+
+#: newforms/fields.py:287 newforms/fields.py:309
+msgid "Enter a valid URL."
+msgstr "Geçerli bir URL girin."
+
+#: newforms/fields.py:311
+msgid "This URL appears to be a broken link."
+msgstr "Bu URL kırık bir link gibi duruyor."
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "nd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milyon"
+msgstr[1] "%(value).1f milyon"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f milyar"
+msgstr[1] "%(value).1f milyar"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f trilyon"
+msgstr[1] "%(value).1f trilyon"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "bir"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "iki"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "üç"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "dört"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "beş"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "altı"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "yedi"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "sekiz"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "dokuz"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "eski adres"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Buraya tam dosya yolu, alan adı kullanılmadan yazılmalı. Örnek: '/events/"
+"search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "yeni adres"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Buraya tam dosya yolu (yukarıdaki gibi), ya da 'http://' ile başlayan tam "
+"adres yazılmalı."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "yönlendirme"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "yönlendirmeler"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "nesne no"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "başlık"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "yorum"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "reyting 1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "reyting 2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "reyting 3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "reyting 4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "reyting 5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "reyting 6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "reyting 7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "reyting 8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "geçerli reyting"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "gönderim tarihi/saati"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "görünürlük"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "IP adresi"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "silinmiş"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Yorum uygunsuz ise bu işareti kaldırın. \"Yorum silindi\" uyarısı "
+"görüntülenecek."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "yorumlar"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "İçerik nesnesi"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"%(date)s tarihinde %(user)s göndermiş:\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "isim"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ip adresi"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "yönetici onayı"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "serbest yorum"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "serbest yorumlar"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "puan"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "puan tarihi"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "karma puanı"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "karma puanları"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(user)s tarafından %(score)d puan"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Bu yorum %(user)s tarafından işaretlenmiş:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "işaretleme tarihi"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "kullanıcı işareti"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "kullanıcı işaretleri"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "%r tarafından işaret"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "silme tarihi"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "yönetici tarafından silinme"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "yönetici tarafından silinme"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "%s tarafından silme işlemi"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Kayıtsız kullanıcılar oy veremez"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "Geçersiz yorum numarası"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Kendinize oy veremezsiniz"
+
+#: contrib/comments/views/comments.py:27
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Reyting gerekli, çünkü en az bir reyting tanımladınız."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Bu yorum, %(count)s yorumdan daha az gönderide bulunmuş bir kullanıcıya "
+"ait:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Bu yorum, %(count)s yorumdan daha az gönderide bulunmuş bir kullanıcıya "
+"ait:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Bu yorum kusurlu bir kullanıcı tarafından gönderildi:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Sadece POST yapılabilir"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Bir ya da daha fazla gerekli alan doldurulmadı"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"Birisi yorum gönderme formunu kötüye kullanmaya çalıştı (güvenlik ihlali)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Bu yorumun geçersiz bir 'hedef' parametresi var -- nesne narası geçersiz"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Yorum görüntülememe mi yoksa gönderme amaçlı mı belirsiz"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Kullanıcı:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Log out"
+msgstr "Çık"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Parola:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Parolanızı mı unuttunuz?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Reytingler"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Gerekli"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opsiyonel"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Resim gönder"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Yorum:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Yorumu görüntüle"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "İsminiz:"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "alan adı"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "görülen isim"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "site"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "siteler"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>%s nesnesine göre:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Tümü"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Herhangi bir tarih"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Bugün"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "7 gün içinde"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Bu ay"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Bu yıl"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "işlem zamanı"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "nesne no"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "nesne kodu"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "işlem adı"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "mesajı değiştir"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "girişi kaydet"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "girişleri kaydet"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "Tüm tarihler"
+
+#: contrib/admin/views/auth.py:19 contrib/admin/views/main.py:257
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "\"%(obj)s\" isimli %(name)s eklendi."
+
+#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:261
+#: contrib/admin/views/main.py:347
+msgid "You may edit it again below."
+msgstr "Tekrar düzenleyebilirsiniz."
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "Kullanıcı ekle"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "Parola başarı ile değiştirildi."
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "Parola değiştir: %s"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Site yönetimi"
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Yeni bir %s ekleyebilirsiniz."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "%s ekle"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "%s eklendi."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "%s değiştirildi."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "%s silindi."
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Hiçbir alan değiştirilmedi."
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "\"%(obj)s\" isimli %(name)s değiştirildi."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"\"%(obj)s\" isimli %(name)s eklendi. Aşağıda tekrar düzenleyebilirsiniz."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "%s değiştir"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "%(name)s içinde bir ya da daha fazla %(fieldname)s: %(obj)s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "%(name)s içinde bir ya da daha fazla %(fieldname)s:"
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "\"%(obj)s\" isimli %(name)s silindi."
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "Emin misiniz?"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "%s için değişiklik geçmişi:"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "%s seç"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s to change"
+msgstr "Değiştirilecek %s nesnesini seçin"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "Veritabanı hatası"
+
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Lütfen geçerli bir kullanıcı adı ve parola girin. Tüm alanlar büyük/küçük "
+"harf duyarlıdır."
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Giriş yap"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Oturumunuzun süresi geçti. Lütfen tekrar giriş yapın. Endişe etmeyin, "
+"gönderiniz kayıt edildi."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Görünüşe göre tarayıcınız çerezleri kabul etmiyor. Çerez kullanımını aktif "
+"hale getirin ve sayfayı yeniden yükleyin."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Kullanıcı isminde '@' karakteri bulunamaz."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "E-posta adresiniz kullanıcı adınız değil. '%s' kullanın."
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "etiket:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "filtre:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "view:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "%r uygulaması bulunamadı"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "%(name)r modeli %(label)r uygulamasında bulunamadı"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "ilgili `%(label)s.%(type)s` nesnesi"
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "model:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "ilgili `%(label)s.%(name)s` nesneleri"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "tüm %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "%s sayısı"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s nesnesindeki alanlar"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "Tamsayı"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Mantıksal (True ya da False)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Karakter disizi (en fazla %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Virgülle ayrılmış tamsayılar"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Tarih (saat yok)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Tarih (saat var)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "E-posta adresi"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Dosya yolu"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "Ondalık sayı:"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Mantıksal (True, False, ya da None)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "Ana modelle ilişki"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Telefon numarası"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Metin"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Saat"
+
+#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "Şehir Kodu (iki karakter)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML metni"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s geçerli vir adres kalıbı değil"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Şimdiki:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Değiştir:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Tarih:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Saat:"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokümantasyon"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Change password"
+msgstr "Parola değiştir"
+
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Anasayfa"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s Ekle"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " %(filter_title)s nesnesine göre "
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "Geçmiş"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Tarih/saat"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Kullanıcı"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "İşlem"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "DATE_WITH_TIME_FULL"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Bu nesnenin işlem geçmişi yok. Muhtemelen yönetici sayfası dışında bir "
+"yerden eklendi."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Git"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 sonuç"
+msgstr[1] "%(counter)s sonuç"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "toplam %(full_result_count)s"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Tümünü göster"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django site yöneticisi"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django yönetimi"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Sunucu hatası"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Sunucu hatası (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Sunucu Hatası <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Bir hata oluştu. Hata, e-psota ile site yöneticisine bildirildi ve kısa süre "
+"içinde çözülecktir. Sabrınız için teşekkürler."
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"Veritabanı kurulumu ile ilgili bir problem var. İlgili veritabanı "
+"tablolarının kurulu olduğundan ve veritabanının ilgili kullanıcı tarafından "
+"okunabilir olduğundan emin olun."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "%(name)s uygulamasındaki modeller."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Ekle"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Değiştir"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "İşlem yapmaya yetkiniz yok."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Geçmiş İşlemler"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "İşlemlerim"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Hiç yok"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Sayfa bulunamadı"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Üzgünüm, aradığınız sayfa bulunamadı."
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtrele"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Sitede görüntüle"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Lütfen aşağıdaki hatayı düzeltin."
+msgstr[1] "Lütfen aşağıdaki hataları düzeltin."
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Sıralama:"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Sıra:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Sil"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"'%(escaped_object)s' isimli %(object_name)s nesnesini silmek, bağlantılı "
+"nesnelerin silinmesini gerektiriyor, ancak aşağıdaki nesneleri silme "
+"yetkiniz yok."
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"\"%(escaped_object)s\" isimli %(object_name)s nesnesini silmek "
+"istediğinizdenemin misiniz? Aşağıdaki bağlantılı öğeler silinecek:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Evet, eminim"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Hoşgeldin,"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Yeni olarak kaydet"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Kaydet ve yeni bir tane ekle"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Kaydet ve düzenlemeye devam et"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Kaydet"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "<strong>%(username)s</strong> için yeni parola girin."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "Parola"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "Parola (tekrar)"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "Onaylamak için, yukarıdaki parolanın aynısını girin."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Önce bir kullanıcı adı ve parola girin. Daha sonra daha fazla bilgi "
+"girebilirsiniz."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Kullanıcı"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Parola değişimi"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Parola değişimi başarılı"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Parolanız değiştirildi."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Parolayı sıfırla"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Parolanızı mı unuttunuz? E-posta adresinizi aşağıya girin, parolanızı "
+"sıfırlayalım ve e-posta adresinize gönderelim."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-posta adresi:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Parolamı sıfırla"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Web sitesinde zaman geçirdiğiniz için teşekkür ederiz."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Tekrar giriş yap"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Parola sıfırlandı."
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Yeni şifreniz, e-posta adresinize gönderildi, kısa süre içinde size "
+"ulaşacaktır."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Güvenliğiniz için, lütfen eski parolanızı girin, sonra da yeni şifrenizi iki "
+"kere girin ve böylece doğru yazdığınızdan emin olun."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Eski parola:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Yeni parola:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Parolayı onayla:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Parolamı değiştir"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Bu e-postayı aldınız çünkü "
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr ""
+"%(site_name)s adresindeki kullanıcı hesabınız için parola sıfırlama "
+"talebinde bulundunuz."
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Yeni parolanız: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Parolanızı değiştirmek için bu adrese gidebilirsiniz:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Unutma ihtimaline karşı, kullanıcı adınız:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Teşekkürler!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s Ekibi"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Kısayollar"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Doküman kısayolları"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Kısayolları kullanabilmek için, bağlantıyı tarayıcınızdaki "
+"araç çubuğuna sürükleyin, ya da sağ tıklayıp sık kullanılan adresler "
+"listenize ekleyin. Bazı kısayollar, uygulamayı çalıştıran sunucu ile aynı "
+"adreste bulunan istemciler tarafından kullanılabilir.</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Bu sayfa için dokümantasyon"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "Sizi, bu sayfayı üreten betiğin dokümantasyonuna yönlendirir."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Nesne numarasını göster"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Tek bir nesneyi temsil eden sayfaların içerik türünü ve numarasını gösterir."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Nesneyi düzenle (aynı pencerede)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Tek bir nesneyi temsil eden sayfaların yönetim sayfasını gösterir."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Nesneyi düzenle (yeni pencerede)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Yukarıdaki gibi, ancak yönetim sayfasını yeni bir pencerede açar."
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "python model sınıfı"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "içerik türü"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "içerik türleri"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "Çıkış yapıldı"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "isim"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "takma ad"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "izin"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "izinler"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "grup"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "gruplar"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "kullanıcı adı"
+
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Gerekli. 30 karakter ya da da az olmalı. Alfanumerik (harf, rakam ve alt "
+"çizgi) karakterler kullanılabilir."
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "isim"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "soyisim"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "e-posta adresi"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "parola"
+
+#: contrib/auth/models.py:94
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"'[algo]$[salt]$[hexdigest]' yazın ya da <a href=\"password/\">parola\n"
+"değiştir formunu kullanın</a>."
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "yönetici modu"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "Kullanıcının yönetici sayfasına girip giremeyeceğini belirler."
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "aktif"
+
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Kullanıcının Django yönetim sayfasına girip giremeyeceğini belirler. "
+"Kullanıcı hesabı silmek yerine işareti kaldırın."
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "süper kullanıcı modu"
+
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Kullanıcının tek tek hak atamasına gerek kalmadan tüm haklara sahip olup "
+"olamayacağını belirler."
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "son ziyaret"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "kayıt tarihi"
+
+#: contrib/auth/models.py:101
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Özel olarak atanmış hakların yanı sıra, kullanıcının üyesi olduğu grupların "
+"hakları alır."
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "kullanıcı izinleri"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "kullanıcı"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "kullanıcılar"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "Kişisel bilgiler"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "İzinler"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "Önemli tarihler"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "Gruplar"
+
+#: contrib/auth/models.py:258
+msgid "message"
+msgstr "mesaj"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "İki parola alanı uyuşmuyor."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Bu isimde bir kullanıcı zaten var."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Web tarayıcınızın çerezleri desteklemediği görülüyor. Çerezler giriş için "
+"gerekli."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Bu hesap aktif değil."
+
+#: contrib/auth/forms.py:85
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Bu e-posta hesabıyla ilişkili kullanıcı bulunmuyor. Kayıtlı olduğunuzdan "
+"emin misiniz?"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "İki parola alanı uyuşmuyor."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Eski parolanız hatalı. Lütfen tekrar girin."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "Posta kodu girin. Posta kodunun iki kısmı arasında bir boşluk bırakın."
+
+#: contrib/localflavor/usa/forms.py:17
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "XXXXX ya da XXXXX-XXXX biçiminde bir posta kodu yazın."
+
+#: contrib/sessions/models.py:51
+msgid "session key"
+msgstr "oturum anahtarı"
+
+#: contrib/sessions/models.py:52
+msgid "session data"
+msgstr "oturum bilgisi"
+
+#: contrib/sessions/models.py:53
+msgid "expire date"
+msgstr "bitiş tarihi"
+
+#: contrib/sessions/models.py:57
+msgid "session"
+msgstr "oturum"
+
+#: contrib/sessions/models.py:58
+msgid "sessions"
+msgstr "oturumlar"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Örnek: '/about/contact/'. Başında ve sonunda bölü işareti olduğundan emin "
+"olun."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "başlık"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "içerik"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "yorumlara izin ver"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "şablon adı"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Örnek: 'flatpages/contact_page.html'. Eğer birşey yazılmazsa, sistem "
+"otomatik olarak 'flatpages/default.html' kullanacak."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "kayıt gerekli"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Bu seçili ise, sadece kayıtlı kullanıcılar sayfayı görüntüleyebilir."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "düz sayfa"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "düz sayfalar"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Pazartesi"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Salı"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Çarşamba"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Perşembe"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Cuma"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Cumartesi"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Pazar"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Ocak"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Şubat"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "Mart"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "Nisan"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "Mayıs"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "Haziran"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "Temmuz"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Ağustos"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Eylül"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Ekim"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Kasım"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Aralık"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "oca"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "şub"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "nis"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "may"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "haz"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "tem"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "ağu"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "eyl"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "eki"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "kas"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "ara"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "Oca."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "Şub."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "Ağu."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Eyl."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "Eki."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "Kas."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "Ara."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "yıl"
+msgstr[1] "yıl"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "ay"
+msgstr[1] "ay"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "hafta"
+msgstr[1] "hafta"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "gün"
+msgstr[1] "gün"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "saat"
+msgstr[1] "saat"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "dakika"
+msgstr[1] "dakika"
+
+#: utils/dateformat.py:40
+msgid "p.m."
+msgstr "ö.s."
+
+#: utils/dateformat.py:41
+msgid "a.m."
+msgstr "ö.ö."
+
+#: utils/dateformat.py:46
+msgid "PM"
+msgstr "ÖS"
+
+#: utils/dateformat.py:47
+msgid "AM"
+msgstr "ÖÖ"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "gece yarısı"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "öğlen"
+
+#: utils/translation/trans_real.py:362
+msgid "DATE_FORMAT"
+msgstr "DATE_FORMAT"
+
+#: utils/translation/trans_real.py:363
+msgid "DATETIME_FORMAT"
+msgstr "DATETIME_FORMAT"
+
+#: utils/translation/trans_real.py:364
+msgid "TIME_FORMAT"
+msgstr "TIME_FORMAT"
+
+#: utils/translation/trans_real.py:380
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:381
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "evet,hayır,olabilir"
+
+#~ msgid ""
+#~ "Please enter a different %s. The one you entered is already being used "
+#~ "for %s."
+#~ msgstr ""
+#~ "Lütfen farklı bir %s girin. Girdiğiniz, %s tarihinde bir kez kullanılmış."
+
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "'[algo]$[salt]$[hexdigest]' formatında"
+
+#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+#~ msgstr "<a href=\"/password_reset/\">Şifrenizi mi unuttunuz?</a>"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "%s sitesindeki hesabınızın parolasının sıfırlanması"
diff --git a/webapp/django/conf/locale/tr/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/tr/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..1748dfa
--- /dev/null
+++ b/webapp/django/conf/locale/tr/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/tr/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/tr/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..cae1933
--- /dev/null
+++ b/webapp/django/conf/locale/tr/LC_MESSAGES/djangojs.po
@@ -0,0 +1,112 @@
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-30 01:31+0300\n"
+"PO-Revision-Date: 2006-09-30 01:31+0300\n"
+"Last-Translator: Bahadır Kandemir <bahadir@pardus.org.tr>\n"
+"Language-Team: Bahadır Kandemir <bahadir@pardus.org.tr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Mevcut %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Hepsini seç"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Ekle"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Kaldır"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Seçilen %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Seçiminizi yapın ve tıklayın "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Hepsini temizle"
+
+#: contrib/admin/media/js/dateparse.js:26
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım "
+"Aralık"
+
+#: contrib/admin/media/js/dateparse.js:27
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "P P S Ç P C C"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "Şimdi"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "Saat"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "Saat seçin"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "Geceyarısı"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "Sabah 6"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "Öğle"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "İptal"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "Bugün"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "Takvim"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "Dün"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "Yarın"
+
+msgid "Show"
+msgstr "Göster"
+
+msgid "Hide"
+msgstr "Gizle"
diff --git a/webapp/django/conf/locale/uk/LC_MESSAGES/django.mo b/webapp/django/conf/locale/uk/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..b6b4962
--- /dev/null
+++ b/webapp/django/conf/locale/uk/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/uk/LC_MESSAGES/django.po b/webapp/django/conf/locale/uk/LC_MESSAGES/django.po
new file mode 100644
index 0000000..3b24145
--- /dev/null
+++ b/webapp/django/conf/locale/uk/LC_MESSAGES/django.po
@@ -0,0 +1,1970 @@
+# Django, ukrainian translation.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Denis Kuzmichyov <kuzmichyov@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-05-16 10:13+0200\n"
+"PO-Revision-Date: 2006-03-20 21:18+0300\n"
+"Last-Translator: Denis Kuzmichyov <kuzmichyov@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr ""
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr ""
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "коментар"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "рейтінг #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "рейтінг #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "рейтінг #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "рейтінг #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "рейтінг #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "рейтінг #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "рейтінг #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "рейтінг #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr ""
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "дата/час додання"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "публічний"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
+msgid "IP address"
+msgstr "IP адреса"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "видалений"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+
+#: contrib/comments/models.py:91
+#, fuzzy
+msgid "comments"
+msgstr "коментар"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr ""
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Додав %(user)s %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "Ім'я людини"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ip адреса"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "схвалено адміністрацією"
+
+#: contrib/comments/models.py:176
+#, fuzzy
+msgid "free comment"
+msgstr "Вільний коментар"
+
+#: contrib/comments/models.py:177
+#, fuzzy
+msgid "free comments"
+msgstr "Вільні коментарі"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "рахунок"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr ""
+
+#: contrib/comments/models.py:237
+#, fuzzy
+msgid "karma score"
+msgstr "рахунок"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr ""
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr ""
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr ""
+
+#: contrib/comments/models.py:268
+#, fuzzy
+msgid "user flag"
+msgstr "Ознака користувача"
+
+#: contrib/comments/models.py:269
+#, fuzzy
+msgid "user flags"
+msgstr "Ознаки користувача"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr ""
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "Дата видалення"
+
+#: contrib/comments/models.py:280
+#, fuzzy
+msgid "moderator deletion"
+msgstr "Видалено модератором"
+
+#: contrib/comments/models.py:281
+#, fuzzy
+msgid "moderator deletions"
+msgstr "Видалено модератором"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr ""
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Анонімний користувач не може голосувати"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "Невірний ID коментарю"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Не можна голосувати за себе"
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Цей коментар доданий користувачем, який додав меньше ніж %(count)s коментаря"
+msgstr[1] ""
+"Цей коментар доданий користувачем, який додав меньше ніж %(count)s коментарів"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+
+#: contrib/comments/views/comments.py:189
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Тільки POST'и дозволені"
+
+#: contrib/comments/views/comments.py:193
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Одне або більше обов'язкових полів не було заповнено"
+
+#: contrib/comments/views/comments.py:197
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+
+#: contrib/comments/views/comments.py:207
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Форма для коментарів мала невірний параметр 'target' -- ID об'єкту був "
+"невірний"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Форма для коментарів не надавала ані 'переглянути', ні 'додати'"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Ім'я:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Пароль:"
+
+#: contrib/comments/templates/comments/form.html:6
+#, fuzzy
+msgid "Forgotten your password?"
+msgstr "Змінити мій пароль"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Log out"
+msgstr "Вийти"
+
+#: contrib/comments/templates/comments/form.html:12
+#, fuzzy
+msgid "Ratings"
+msgstr "рейтінг #1"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:27
+#: contrib/comments/templates/comments/freeform.html:5
+#, fuzzy
+msgid "Comment:"
+msgstr "Коментар"
+
+#: contrib/comments/templates/comments/form.html:32
+#: contrib/comments/templates/comments/freeform.html:9
+#, fuzzy
+msgid "Preview comment"
+msgstr "Вільний коментар"
+
+#: contrib/comments/templates/comments/freeform.html:4
+#, fuzzy
+msgid "Your name:"
+msgstr "Ім'я користувача"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143
+msgid "All"
+msgstr "Всі"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Будь-яка дата"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Сьогодні"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Останні 7 днів"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Цього місяця"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Цього року"
+
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "Так"
+
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "Ні"
+
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr ""
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "час дії"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "id об'єкту"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr ""
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "прапор дії"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "змінити повідомлення"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr ""
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr ""
+
+#: contrib/admin/templatetags/admin_list.py:228
+msgid "All dates"
+msgstr "Всі дати"
+
+#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
+#: contrib/auth/forms.py:41
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+
+#: contrib/admin/views/decorators.py:23
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Увійти"
+
+#: contrib/admin/views/decorators.py:61
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Будь ласка, ввійдіть знову, ваша сесія скінчилася. Не хвилюйтеся: все що ви "
+"додавали збережено."
+
+#: contrib/admin/views/decorators.py:68
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Здається ваш броузер не сконфігурований приймати cookies. Будьласка "
+"увімкнить cookies, перезавантажте цю старінку і спробуйте знову"
+
+#: contrib/admin/views/decorators.py:82
+msgid "Usernames cannot contain the '@' character."
+msgstr "Ім'я не може містити '@' символ"
+
+#: contrib/admin/views/decorators.py:84
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Ваша e-mail адреса не є вашим ім'ям користувача. Замість спробуйте '%s'"
+
+#: contrib/admin/views/main.py:226
+msgid "Site administration"
+msgstr "Адміністрування сайта"
+
+#: contrib/admin/views/main.py:260
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" було додано успішно."
+
+#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
+msgid "You may edit it again below."
+msgstr "Ви можете редагувати це знову внизу."
+
+#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
+#, python-format
+msgid "You may add another %s below."
+msgstr "Ви можете додати інший %s внизу."
+
+#: contrib/admin/views/main.py:290
+#, python-format
+msgid "Add %s"
+msgstr "Додати %s"
+
+#: contrib/admin/views/main.py:336
+#, python-format
+msgid "Added %s."
+msgstr "Додано %s."
+
+#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
+#: contrib/admin/views/main.py:340
+msgid "and"
+msgstr "та"
+
+#: contrib/admin/views/main.py:338
+#, python-format
+msgid "Changed %s."
+msgstr "Змінено %s."
+
+#: contrib/admin/views/main.py:340
+#, python-format
+msgid "Deleted %s."
+msgstr "Видалено %s."
+
+#: contrib/admin/views/main.py:343
+msgid "No fields changed."
+msgstr "Поля не змінені."
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" був успішно змінений."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"%(name)s \"%(obj)s\"  був успішно доданий. Ви модете редагувати його знову "
+"внизу."
+
+#: contrib/admin/views/main.py:392
+#, python-format
+msgid "Change %s"
+msgstr "Змінити %s"
+
+#: contrib/admin/views/main.py:470
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Одне або більше %(fieldname)s у %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:475
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Одне або більше %(fieldname)s у %(name)s:"
+
+#: contrib/admin/views/main.py:508
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" був видалений успышно."
+
+#: contrib/admin/views/main.py:511
+msgid "Are you sure?"
+msgstr "Ви упевнені?"
+
+#: contrib/admin/views/main.py:533
+#, python-format
+msgid "Change history: %s"
+msgstr "Історія змін: %s"
+
+#: contrib/admin/views/main.py:565
+#, python-format
+msgid "Select %s"
+msgstr "Вибрати %s"
+
+#: contrib/admin/views/main.py:565
+#, python-format
+msgid "Select %s to change"
+msgstr "Виберіть %s щоб змінити"
+
+#: contrib/admin/views/doc.py:277 contrib/admin/views/doc.py:286
+#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
+msgid "Integer"
+msgstr "Ціле"
+
+#: contrib/admin/views/doc.py:278
+msgid "Boolean (Either True or False)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Рядок (до %(maxlength)s символів)"
+
+#: contrib/admin/views/doc.py:280
+msgid "Comma-separated integers"
+msgstr "Цілі розділені комою"
+
+#: contrib/admin/views/doc.py:281
+msgid "Date (without time)"
+msgstr "Дата (без часу)"
+
+#: contrib/admin/views/doc.py:282
+msgid "Date (with time)"
+msgstr "Дата (з часом)"
+
+#: contrib/admin/views/doc.py:283
+msgid "E-mail address"
+msgstr "E-mail адреса"
+
+#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
+msgid "File path"
+msgstr ""
+
+#: contrib/admin/views/doc.py:285
+msgid "Decimal number"
+msgstr "Десяткове число"
+
+#: contrib/admin/views/doc.py:291
+msgid "Boolean (Either True, False or None)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:292
+msgid "Relation to parent model"
+msgstr "Відношення до батьківської моделі"
+
+#: contrib/admin/views/doc.py:293
+msgid "Phone number"
+msgstr "Телефонний номер"
+
+#: contrib/admin/views/doc.py:298
+msgid "Text"
+msgstr "Текст"
+
+#: contrib/admin/views/doc.py:299
+msgid "Time"
+msgstr "Час"
+
+#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr ""
+
+#: contrib/admin/views/doc.py:301
+msgid "U.S. state (two uppercase letters)"
+msgstr ""
+
+#: contrib/admin/views/doc.py:302
+msgid "XML text"
+msgstr "текст XML"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Документація"
+
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+msgid "Change password"
+msgstr "Змінити пароль"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Домівка"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:20
+msgid "History"
+msgstr "Історія"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Дата/час"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Користувач"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Дія"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Цей об'єкт немає історії змін. Напевно він був доданий не через сайт "
+"адміністрування."
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django сайт адміністрування"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django адміністрування"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Помилка сервера"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Помилка сервера (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Помилка сервера <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Відбулася помилка. Її було повідомлено адміністраторам сайту e-mail'ом і "
+"вона повинна бути незабаром виправлена. Дякуємо за ваше терпіння."
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Сторінка не знайдена"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Ми шкодуємо, але сторінка яку ви запросили не знайдена."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Додати"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Змінити"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "У вас немає дозволу редагувати будь-що"
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Недавні дії"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Мої дії"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Додати %(name)s"
+
+#: contrib/admin/templates/admin/login.html:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr "<a href=\"/password_reset/\">Забули ваш пароль</a>?"
+
+#: contrib/admin/templates/admin/base.html:23
+msgid "Welcome,"
+msgstr "Вітаємо,"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Видалити"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(object)s' would result in deleting related "
+"objects, but your account doesn't have permission to delete the following "
+"types of objects:"
+msgstr ""
+"Видалення %(object_name)s '%(object)s' призводить до видалення пов'язаних "
+"об'єктів, але ваш рахунок не має дозволу видаляти наступні типи об'єктів:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
+"the following related items will be deleted:"
+msgstr ""
+"Ви впевнені що хочете видалити %(object_name)s \"%(object)s\"? Всі наступні "
+"пов'язані записи будуть видалені:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Так, я впевнений"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(title)s "
+msgstr "За %(title)s"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Уперед"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Дивитися на сайті"
+
+#: contrib/admin/templates/admin/change_form.html:30
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Будь ласка, виправте помилку, що зазначена нижче"
+msgstr[1] "Будь ласка, виправте помилки, що зазначені нижче"
+
+#: contrib/admin/templates/admin/change_form.html:48
+msgid "Ordering"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_form.html:51
+msgid "Order:"
+msgstr ""
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Зберегти як нове"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Зберегти і додати інше"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Зберегти і продовжити редагування"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Зберегти"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Зміна пароля"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Зміна паролю успішна"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Ваш пароль було змінено."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Пароль перевстановлено"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Забули свій пароль? Введить свою e-mail адресу і ми перевстановимо ваш "
+"пароль і надішлемо вам новий поштою."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mail адреса:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Перевстановіть мій пароль"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Дякуємо за проведений вами час із сайтом сьогодні."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Увійти знову"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Пароль перевстановлено успішно"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Ми надіслали новий пароль поштою на адресу, яку ви вказали. Незабаром ви "
+"повинні його отримати."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Будь ласка введить ваш старий пароль, задля беспекі, та потім введить ваш "
+"новий пароль двічі, щоб ми могли перевірити що ви ввели його коректно"
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Старий пароль:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Новий пароль:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Підтвердіть пароль:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Змінити мій пароль"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Ви отримали цього листа, тому що запросили перевстановлення паролю"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "для вашого рахунку користувача на сайті %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Ваш новий пароль: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Ви можете вільно змінити цей пароль, перейшовши до цієї сторінки:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "У разі, якщо ви забули, ваше им'я:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Дякуємо за користування нашим сайтом."
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "команда %(site_name)s "
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Документіця для цієї сторінки"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Показати ID об'єкту"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Показує content-type та унікальний ID для сторінок, які являють собою єдиний "
+"об'єкт"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Редагувати цей об'єкт (поточне вікно)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Редагувати цей об'єкт (нове вікно)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Як і вище, але відкриває сторінку адміністрування у новому вікні."
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Дата:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Час:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Зараз:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr ""
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Це повинно бути абсолютний шлях, виключаючи ім'я домену. Приклад: '/events/"
+"search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr ""
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Це може бути або абсолютний шлях (як вище), або повний URL, який починається "
+"з 'http://'."
+
+#: contrib/redirects/models.py:12
+msgid "redirect"
+msgstr ""
+
+#: contrib/redirects/models.py:13
+msgid "redirects"
+msgstr ""
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Приклад: '/about/contact/'. Переконайтеся у наявності слешу на початку та у "
+"кінці."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "заголовок"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "зміст"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "ввімкнути коментарі"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "ім'я шаблона"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
+"use 'flatpages/default'."
+msgstr ""
+"Приклад: 'flatpages/contact_page'. Якщо це не надано, система буда "
+"використовувати 'flatpages/default'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "потрібна регістрація"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Якщо тут відзначено, тільки користувачи, що увійшли будуть мати змогу "
+"переглядати цю сторінку."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr ""
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "прості сторінки"
+
+#: contrib/auth/models.py:13 contrib/auth/models.py:26
+msgid "name"
+msgstr "ім'я"
+
+#: contrib/auth/models.py:15
+msgid "codename"
+msgstr ""
+
+#: contrib/auth/models.py:17
+#, fuzzy
+msgid "permission"
+msgstr "Дозвіл"
+
+#: contrib/auth/models.py:18 contrib/auth/models.py:27
+#, fuzzy
+msgid "permissions"
+msgstr "Дозвіл"
+
+#: contrib/auth/models.py:29
+#, fuzzy
+msgid "group"
+msgstr "Група"
+
+#: contrib/auth/models.py:30 contrib/auth/models.py:65
+#, fuzzy
+msgid "groups"
+msgstr "Групи"
+
+#: contrib/auth/models.py:55
+msgid "username"
+msgstr "Ім'я користувача"
+
+#: contrib/auth/models.py:56
+msgid "first name"
+msgstr "ім'я"
+
+#: contrib/auth/models.py:57
+msgid "last name"
+msgstr "прізвище"
+
+#: contrib/auth/models.py:58
+msgid "e-mail address"
+msgstr "e-mail адреса"
+
+#: contrib/auth/models.py:59
+msgid "password"
+msgstr "пароль"
+
+#: contrib/auth/models.py:59
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr ""
+
+#: contrib/auth/models.py:60
+msgid "staff status"
+msgstr "статус персоналу"
+
+#: contrib/auth/models.py:60
+msgid "Designates whether the user can log into this admin site."
+msgstr "Визначає, чи може користувач увійти до цього сайту адміністрування."
+
+#: contrib/auth/models.py:61
+msgid "active"
+msgstr "активний"
+
+#: contrib/auth/models.py:62
+msgid "superuser status"
+msgstr "статус суперкористувача"
+
+#: contrib/auth/models.py:63
+msgid "last login"
+msgstr "Останній вхід"
+
+#: contrib/auth/models.py:64
+msgid "date joined"
+msgstr "дата приєднання"
+
+#: contrib/auth/models.py:66
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"На додаток до прав які призначені вручну, цей користувач також отримує усі "
+"права, які має група в якій він є."
+
+#: contrib/auth/models.py:67
+#, fuzzy
+msgid "user permissions"
+msgstr "Дозвіл"
+
+#: contrib/auth/models.py:70
+#, fuzzy
+msgid "user"
+msgstr "Користувач"
+
+#: contrib/auth/models.py:71
+#, fuzzy
+msgid "users"
+msgstr "Користувачі"
+
+#: contrib/auth/models.py:76
+msgid "Personal info"
+msgstr "Персональна інформація"
+
+#: contrib/auth/models.py:77
+msgid "Permissions"
+msgstr "Дозвіл"
+
+#: contrib/auth/models.py:78
+msgid "Important dates"
+msgstr "Важливі дати"
+
+#: contrib/auth/models.py:79
+msgid "Groups"
+msgstr "Групи"
+
+#: contrib/auth/models.py:219
+#, fuzzy
+msgid "message"
+msgstr "Повідомлення"
+
+#: contrib/auth/forms.py:30
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+
+#: contrib/contenttypes/models.py:25
+msgid "python model class name"
+msgstr ""
+
+#: contrib/contenttypes/models.py:28
+msgid "content type"
+msgstr ""
+
+#: contrib/contenttypes/models.py:29
+msgid "content types"
+msgstr ""
+
+#: contrib/sessions/models.py:35
+msgid "session key"
+msgstr ""
+
+#: contrib/sessions/models.py:36
+msgid "session data"
+msgstr ""
+
+#: contrib/sessions/models.py:37
+msgid "expire date"
+msgstr ""
+
+#: contrib/sessions/models.py:41
+msgid "session"
+msgstr "сесія"
+
+#: contrib/sessions/models.py:42
+msgid "sessions"
+msgstr "сесії"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "доменне ім'я"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr ""
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "сайт"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "сайти"
+
+#: utils/translation.py:360
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation.py:361
+msgid "DATETIME_FORMAT"
+msgstr "N j, Y, P"
+
+#: utils/translation.py:362
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Понеділок"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Вівторок"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Середа"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Четвер"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "П'ятниця"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Субота"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Неділя"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Січень"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Лютий"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "Березень"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "Квітень"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "Травень"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "Червень"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "Липень"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Серпень"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Вересень"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Жовтень"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Листопад"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Грудень"
+
+#: utils/dates.py:19
+#, fuzzy
+msgid "jan"
+msgstr "та"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr ""
+
+#: utils/dates.py:19
+#, fuzzy
+msgid "may"
+msgstr "день"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr ""
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "Січ."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "Лют."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "Сер."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Вер."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "Жов."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "Лис."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "Груд."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "рік"
+msgstr[1] "рокі(в)"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "місяць"
+msgstr[1] "місяці(в)"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "день"
+msgstr[1] "дні(в)"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "година"
+msgstr[1] "годин(и)"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "хвилина"
+msgstr[1] "хвилин(и)"
+
+#: conf/global_settings.py:37
+msgid "Bengali"
+msgstr "Бенгалська"
+
+#: conf/global_settings.py:38
+msgid "Czech"
+msgstr "Чеська"
+
+#: conf/global_settings.py:39
+msgid "Welsh"
+msgstr "Валлійська"
+
+#: conf/global_settings.py:40
+msgid "Danish"
+msgstr "Датська"
+
+#: conf/global_settings.py:41
+msgid "German"
+msgstr "Німецька"
+
+#: conf/global_settings.py:42
+msgid "Greek"
+msgstr ""
+
+#: conf/global_settings.py:43
+msgid "English"
+msgstr "Англійська"
+
+#: conf/global_settings.py:44
+msgid "Spanish"
+msgstr "Іспанська"
+
+#: conf/global_settings.py:45
+msgid "French"
+msgstr "Французька"
+
+#: conf/global_settings.py:46
+msgid "Galician"
+msgstr ""
+
+#: conf/global_settings.py:47
+msgid "Hungarian"
+msgstr ""
+
+#: conf/global_settings.py:48
+msgid "Hebrew"
+msgstr ""
+
+#: conf/global_settings.py:49
+msgid "Icelandic"
+msgstr "Ісландська"
+
+#: conf/global_settings.py:50
+msgid "Italian"
+msgstr "Італійська"
+
+#: conf/global_settings.py:51
+msgid "Japanese"
+msgstr "Японська"
+
+#: conf/global_settings.py:52
+msgid "Dutch"
+msgstr ""
+
+#: conf/global_settings.py:53
+msgid "Norwegian"
+msgstr "Норвезька"
+
+#: conf/global_settings.py:54
+msgid "Brazilian"
+msgstr "Бразильска"
+
+#: conf/global_settings.py:55
+msgid "Romanian"
+msgstr "Румунська"
+
+#: conf/global_settings.py:56
+msgid "Russian"
+msgstr "Російська"
+
+#: conf/global_settings.py:57
+msgid "Slovak"
+msgstr "Словацька"
+
+#: conf/global_settings.py:58
+#, fuzzy
+msgid "Slovenian"
+msgstr "Словацька"
+
+#: conf/global_settings.py:59
+msgid "Serbian"
+msgstr "Сербська"
+
+#: conf/global_settings.py:60
+msgid "Swedish"
+msgstr "Шведська"
+
+#: conf/global_settings.py:61
+#, fuzzy
+msgid "Ukrainian"
+msgstr "Бразильска"
+
+#: conf/global_settings.py:62
+msgid "Simplified Chinese"
+msgstr "Китайська спрощена"
+
+#: conf/global_settings.py:63
+msgid "Traditional Chinese"
+msgstr "Китайська традиційна"
+
+#: core/validators.py:60
+msgid "This value must contain only letters, numbers and underscores."
+msgstr ""
+"Це значення може містити тільки літери, числа та символи підкреслювання"
+
+#: core/validators.py:64
+#, fuzzy
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Це значення може містити тільки літери, числа, символи підкреслювання та "
+"слеші."
+
+#: core/validators.py:72
+msgid "Uppercase letters are not allowed here."
+msgstr "Літери у верхньому регістрі тут неприпустимі."
+
+#: core/validators.py:76
+msgid "Lowercase letters are not allowed here."
+msgstr "Літери у нижньому регістрі тут неприпустимі."
+
+#: core/validators.py:83
+msgid "Enter only digits separated by commas."
+msgstr "Уведіть тільки цифри розділені комами."
+
+#: core/validators.py:95
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Уведіть коректні e-mail адреси, розділені комами."
+
+#: core/validators.py:99
+msgid "Please enter a valid IP address."
+msgstr "Будь ласка уведіть коректу IP адресу."
+
+#: core/validators.py:103
+msgid "Empty values are not allowed here."
+msgstr "Порожні значенні тут не дозволені."
+
+#: core/validators.py:107
+msgid "Non-numeric characters aren't allowed here."
+msgstr ""
+
+#: core/validators.py:111
+msgid "This value can't be comprised solely of digits."
+msgstr ""
+
+#: core/validators.py:116
+msgid "Enter a whole number."
+msgstr "Уведіть ціле число."
+
+#: core/validators.py:120
+msgid "Only alphabetical characters are allowed here."
+msgstr "Тільки алфавітні символи дозволені тут."
+
+#: core/validators.py:124
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Уведіть коректну дату у форматі РРРР-ММ-ДД."
+
+#: core/validators.py:128
+msgid "Enter a valid time in HH:MM format."
+msgstr "Уведіть коректий час у форматі ГГ:ХХ."
+
+#: core/validators.py:132 db/models/fields/__init__.py:468
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr ""
+
+#: core/validators.py:136
+msgid "Enter a valid e-mail address."
+msgstr "Уведіть коректну e-mail адресу."
+
+#: core/validators.py:148
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Завантажте коректний малюнок. Файл який ви завантажили був або не малюнок, "
+"або малюнок, який є зіпсованим."
+
+#: core/validators.py:155
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s не вказує на коректний малюнок."
+
+#: core/validators.py:159
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Телефонні номери мають бути у форматі XXX-XXX-XXXX. \"%s\" не є коректним."
+
+#: core/validators.py:167
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s не вказує на коректне відео у форматі QuickTime."
+
+#: core/validators.py:171
+msgid "A valid URL is required."
+msgstr ""
+
+#: core/validators.py:185
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+
+#: core/validators.py:192
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Погано сформований XML: %s"
+
+#: core/validators.py:202
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Невірний URL: %s"
+
+#: core/validators.py:206 core/validators.py:208
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s є пошкодженим посиланням."
+
+#: core/validators.py:214
+msgid "Enter a valid U.S. state abbreviation."
+msgstr ""
+
+#: core/validators.py:229
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:236
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr ""
+
+#: core/validators.py:255
+msgid "Please enter something for at least one field."
+msgstr ""
+
+#: core/validators.py:264 core/validators.py:275
+msgid "Please enter both fields or leave them both empty."
+msgstr ""
+
+#: core/validators.py:282
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr ""
+
+#: core/validators.py:294
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr ""
+
+#: core/validators.py:313
+msgid "Duplicate values are not allowed."
+msgstr ""
+
+#: core/validators.py:336
+#, python-format
+msgid "This value must be a power of %s."
+msgstr ""
+
+#: core/validators.py:347
+msgid "Please enter a valid decimal number."
+msgstr ""
+
+#: core/validators.py:349
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:352
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:362
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+
+#: core/validators.py:363
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+
+#: core/validators.py:376
+msgid "The format for this field is wrong."
+msgstr ""
+
+#: core/validators.py:391
+msgid "This field is invalid."
+msgstr ""
+
+#: core/validators.py:426
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr ""
+
+#: core/validators.py:429
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+
+#: core/validators.py:462
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:466
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:471
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:476
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:480
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:485
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: db/models/manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+
+#: db/models/fields/__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
+#: forms/__init__.py:346
+msgid "This field is required."
+msgstr "Це поле обов'язкове."
+
+#: db/models/fields/__init__.py:337
+msgid "This value must be an integer."
+msgstr ""
+
+#: db/models/fields/__init__.py:369
+msgid "This value must be either True or False."
+msgstr ""
+
+#: db/models/fields/__init__.py:385
+#, fuzzy
+msgid "This field cannot be null."
+msgstr "Це поле обов'язкове."
+
+#: db/models/fields/__init__.py:562
+msgid "Enter a valid filename."
+msgstr ""
+
+#: db/models/fields/related.py:43
+#, python-format
+msgid "Please enter a valid %s."
+msgstr ""
+
+#: db/models/fields/related.py:579
+msgid "Separate multiple IDs with commas."
+msgstr ""
+
+#: db/models/fields/related.py:581
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+
+#: db/models/fields/related.py:625
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+msgstr[1] ""
+
+#: forms/__init__.py:380
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Переконайтеся, що ваш текст меньше, ніж %s символ"
+msgstr[1] "Переконайтеся, що ваш текст меньше, ніж %s символів"
+
+#: forms/__init__.py:385
+msgid "Line breaks are not allowed here."
+msgstr "Символи нового рядку не дозволені тут."
+
+#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Зробить коректний вибір; '%(data)s' немає у %(choices)s."
+
+#: forms/__init__.py:645
+msgid "The submitted file is empty."
+msgstr "Переданий файл порожній."
+
+#: forms/__init__.py:699
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Уведіть ціле число між -32,768 та 32,768."
+
+#: forms/__init__.py:708
+msgid "Enter a positive number."
+msgstr "Уведіть позитивне число."
+
+#: forms/__init__.py:717
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Уведіть ціле число між 0 та 32,767."
+
+#: template/defaultfilters.py:379
+msgid "yes,no,maybe"
+msgstr "так,ні,можливо"
+
+#~ msgid "Comments"
+#~ msgstr "Коментарі"
+
+#~ msgid "String (up to 50)"
+#~ msgstr "Рядок (до 50 символів)"
+
+#~ msgid "label"
+#~ msgstr "мітка"
+
+#~ msgid "package"
+#~ msgstr "пакунок"
+
+#~ msgid "packages"
+#~ msgstr "пакунки"
diff --git a/webapp/django/conf/locale/uk/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/uk/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..fae1fdc
--- /dev/null
+++ b/webapp/django/conf/locale/uk/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/uk/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/uk/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..120d08d
--- /dev/null
+++ b/webapp/django/conf/locale/uk/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-06-28 17:36+1000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr ""
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr ""
diff --git a/webapp/django/conf/locale/zh_CN/LC_MESSAGES/django.mo b/webapp/django/conf/locale/zh_CN/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..55e77f8
--- /dev/null
+++ b/webapp/django/conf/locale/zh_CN/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/zh_CN/LC_MESSAGES/django.po b/webapp/django/conf/locale/zh_CN/LC_MESSAGES/django.po
new file mode 100644
index 0000000..fda4954
--- /dev/null
+++ b/webapp/django/conf/locale/zh_CN/LC_MESSAGES/django.po
@@ -0,0 +1,2636 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-05-16 10:10+0200\n"
+"PO-Revision-Date: 2008-04-10 11:57+0800\n"
+"Last-Translator: hutuworm <hutuworm@gmail.com>\n"
+"Language-Team: Simplified Chinese <limodou@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: CHINA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "带有这个 %(type)s 的 %(object)s 对于给定的 %(field)s 已经存在了。"
+
+#: db/models/manipulators.py:308
+#: contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
+msgid "and"
+msgstr "和"
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "请输入一个有效的 %s 。"
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "用逗号分隔多个ID。"
+
+#: db/models/fields/related.py:644
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "按下 \"Control\"，或者在Mac上按 \"Command\" 来选择多个值。"
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "请输入有效的 %(self)s ID。值 %(value)r 无效。"
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s 带有 %(fieldname)s 已经存在。"
+
+#: db/models/fields/__init__.py:117
+#: db/models/fields/__init__.py:274
+#: db/models/fields/__init__.py:610
+#: db/models/fields/__init__.py:621
+#: oldforms/__init__.py:357
+#: newforms/fields.py:80
+#: newforms/fields.py:376
+#: newforms/fields.py:452
+#: newforms/fields.py:463
+#: newforms/models.py:178
+msgid "This field is required."
+msgstr "这个字段是必填项。"
+
+#: db/models/fields/__init__.py:367
+msgid "This value must be an integer."
+msgstr "这个值必须是一个整数。"
+
+#: db/models/fields/__init__.py:402
+msgid "This value must be either True or False."
+msgstr "这个值必须是 True 或 False。"
+
+#: db/models/fields/__init__.py:423
+msgid "This field cannot be null."
+msgstr "这个值不能为 null。"
+
+#: db/models/fields/__init__.py:457
+#: core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "输入一个 YYYY-MM-DD 格式的有效日期。"
+
+#: db/models/fields/__init__.py:526
+#: core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "输入一个 YYYY-MM-DD HH:MM 格式的有效日期/时间。"
+
+#: db/models/fields/__init__.py:630
+msgid "Enter a valid filename."
+msgstr "输入一个有效的文件名。"
+
+#: db/models/fields/__init__.py:751
+msgid "This value must be either None, True or False."
+msgstr "这个值必须是 None, True 或 False。"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "阿拉伯语"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "孟加拉语"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "加泰罗尼亚语"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "捷克语"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "威尔士语"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "丹麦语"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "德语"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "希腊语"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "英语"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "西班牙语"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "阿根廷的西班牙语"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "芬兰语"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "法语"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "加利西亚语"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "匈牙利语"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "希伯来语"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "冰岛语"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "意大利语"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "日语"
+
+#: conf/global_settings.py:58
+msgid "Kannada"
+msgstr "埃纳德语"
+
+#: conf/global_settings.py:59
+msgid "Latvian"
+msgstr "拉脱维亚语"
+
+#: conf/global_settings.py:60
+msgid "Macedonian"
+msgstr "马其顿语"
+
+#: conf/global_settings.py:61
+msgid "Dutch"
+msgstr "荷兰语"
+
+#: conf/global_settings.py:62
+msgid "Norwegian"
+msgstr "挪威语"
+
+#: conf/global_settings.py:63
+msgid "Polish"
+msgstr "波兰语"
+
+#: conf/global_settings.py:64
+msgid "Portugese"
+msgstr "葡萄牙语"
+
+#: conf/global_settings.py:65
+msgid "Brazilian"
+msgstr "巴西语"
+
+#: conf/global_settings.py:66
+msgid "Romanian"
+msgstr "罗马尼亚语"
+
+#: conf/global_settings.py:67
+msgid "Russian"
+msgstr "俄语"
+
+#: conf/global_settings.py:68
+msgid "Slovak"
+msgstr "斯洛伐克语"
+
+#: conf/global_settings.py:69
+msgid "Slovenian"
+msgstr "斯洛文尼亚语"
+
+#: conf/global_settings.py:70
+msgid "Serbian"
+msgstr "塞尔维亚语"
+
+#: conf/global_settings.py:71
+msgid "Swedish"
+msgstr "瑞典语"
+
+#: conf/global_settings.py:72
+msgid "Tamil"
+msgstr "泰米尔语"
+
+#: conf/global_settings.py:73
+msgid "Telugu"
+msgstr "泰卢固语"
+
+#: conf/global_settings.py:74
+msgid "Turkish"
+msgstr "土耳其语"
+
+#: conf/global_settings.py:75
+msgid "Ukrainian"
+msgstr "乌克兰语"
+
+#: conf/global_settings.py:76
+msgid "Simplified Chinese"
+msgstr "简体中文"
+
+#: conf/global_settings.py:77
+msgid "Traditional Chinese"
+msgstr "正体中文"
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "年"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "月"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "周"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "天"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "小时"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "分钟"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "星期一"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "星期二"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "星期三"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "星期四"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "星期五"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "星期六"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "星期日"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "一月"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "二月"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "March"
+msgstr "三月"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "April"
+msgstr "四月"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "May"
+msgstr "五月"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "June"
+msgstr "六月"
+
+#: utils/dates.py:15
+#: utils/dates.py:27
+msgid "July"
+msgstr "七月"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "八月"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "九月"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "十月"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "十一月"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "十二月"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "一月"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "二月"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "三月"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "四月"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "五月"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "六月"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "七月"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "八月"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "九月"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "十月"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "十一月"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "十二月"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "一月"
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "二月"
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "八月"
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "九月"
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "十月"
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "十一月"
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "十二月"
+
+#: utils/dateformat.py:40
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:41
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:46
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:47
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "午夜"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "中午"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "DATE_FORMAT"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "DATETIME_FORMAT"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "TIME_FORMAT"
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "确保你输入的文本少于 %s 个字符。"
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "这里不允许换行符。"
+
+#: oldforms/__init__.py:498
+#: oldforms/__init__.py:571
+#: oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "选择一个有效的选项： '%(data)s' 不在 %(choices)s 中。"
+
+#: oldforms/__init__.py:577
+#: contrib/admin/filterspecs.py:150
+#: newforms/widgets.py:174
+msgid "Unknown"
+msgstr "未知"
+
+#: oldforms/__init__.py:577
+#: contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:174
+msgid "Yes"
+msgstr "是"
+
+#: oldforms/__init__.py:577
+#: contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:174
+msgid "No"
+msgstr "否"
+
+#: oldforms/__init__.py:672
+#: core/validators.py:174
+#: core/validators.py:445
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "未提交文件。请检查表单的编码类型。"
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "所提交的是空文件。"
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "输入在 -32,768 与 32,767 之间的一个整数。"
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "输入正整数。"
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "输入在 0 到 32,767 之间的一个整数。"
+
+#: contrib/localflavor/no/forms.py:15
+msgid "Enter a zip code in the format XXXX."
+msgstr "以 XXXX 的格式输入一个邮政编码。"
+
+#: contrib/localflavor/no/forms.py:36
+msgid "Enter a valid Norwegian social security number."
+msgstr "请输入一个有效的挪威社会保障号码。"
+
+#: contrib/localflavor/it/forms.py:14
+#: contrib/localflavor/fr/forms.py:17
+#: contrib/localflavor/fi/forms.py:14
+#: contrib/localflavor/de/forms.py:16
+msgid "Enter a zip code in the format XXXXX."
+msgstr "以 XXXXX 的格式输入一个邮政编码。"
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "以 XXXXXXX 或 XXX-XXXX 的格式输入一个邮政编码。"
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "北海道"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "青森"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "岩手"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "宫城"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "秋田"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "山形"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "福岛"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "茨城"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "枥木"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "群马"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "埼玉"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "千叶"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "东京"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "神奈川"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "山梨"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "长野"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "新舄"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "富山"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "石川"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "福井"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "岐阜"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "静冈"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "爱知"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "三重"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "滋贺"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "京都"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "大坂"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "兵库"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "奈良"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "和歌山"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "鸟取"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "岛根"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "冈山"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "广岛"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "山口"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "德岛"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "香川"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "爱媛"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "高知"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "福冈"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "佐贺"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "长崎"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "熊本"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "大分"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "宫崎"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "鹿儿岛"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "冲绳岛"
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "以 XXXXX-XXX 的格式输入一个邮政编码。"
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "电话号码必须为 XXX-XXX-XXXX 格式。"
+
+#: contrib/localflavor/fi/forms.py:40
+#: contrib/localflavor/fi/forms.py:46
+msgid "Enter a valid Finnish social security number."
+msgstr "输入一个有效的芬兰社会保障号码。"
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "输入一个邮政编码。前后两个部分之间必须有一个空格。"
+
+#: contrib/localflavor/de/forms.py:63
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format"
+msgstr "以 XXXXXXXXXXX-XXXXXXX-XXXXXXX-X 的格式输入一个有效的德国身份证号码。"
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "巴登符腾堡州"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "巴伐利亚"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "柏林"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "勃兰登堡"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "不来梅"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "汉堡"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "黑森州"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "梅克伦堡-西部米拉尼亚"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "下萨克森"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "北莱茵-威斯特法伦州"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "莱茵河法耳茨地区"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "萨尔州"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "萨克森"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "萨克森-安哈尔特"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "石勒苏益格-荷尔斯泰因"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "图林根州"
+
+#: contrib/localflavor/usa/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "以 XXXXX 或 XXXXX-XXX 的格式输入一个邮政编码。"
+
+#: contrib/localflavor/usa/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "以 XXX-XX-XXXX 的格式输入一个有效的美国社会保障号码。"
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "会话密钥"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "会话数据"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "过期时间"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "会话"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "会话"
+
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "两个口令字段不一致。"
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "已存在一位使用该名字的用户。"
+
+#: contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "你的浏览器好象不允许使用cookie。登录需要使用cookie。"
+
+#: contrib/auth/forms.py:60
+#: contrib/admin/views/decorators.py:10
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "请输入正确的用户名和口令。请注意两者都是大小写敏感的。"
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "该帐号未激活。"
+
+#: contrib/auth/forms.py:85
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "该电子邮件地址没有关联任何用户帐号。你确定已经注册过了？"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "两个'新口令'字段不一致。"
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "你的旧口令不正确。请重新输入。"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "退出登录"
+
+#: contrib/auth/models.py:38
+#: contrib/auth/models.py:57
+msgid "name"
+msgstr "名称"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "代码名称"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "权限"
+
+#: contrib/auth/models.py:43
+#: contrib/auth/models.py:58
+msgid "permissions"
+msgstr "权限"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "组"
+
+#: contrib/auth/models.py:61
+#: contrib/auth/models.py:100
+msgid "groups"
+msgstr "组"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "用户名"
+
+#: contrib/auth/models.py:90
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "必填。不多于30个字符。只能用字母数字（字母、数字和下横线）"
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "名字"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "姓氏"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "e-mail 地址"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "口令"
+
+#: contrib/auth/models.py:94
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "使用 '[algo]$[salt]$[hexdigest]' 或使用 <a href=\"password/\">修改密码表单</a>"
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "职员状态"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "指明用户是否可以登录到这个管理站点。"
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "有效"
+
+#: contrib/auth/models.py:96
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "指明用户是否可以登录到这个管理站点。以反选代替删除帐号。"
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "超级用户状态"
+
+#: contrib/auth/models.py:97
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "指明用户是否可以登录到这个管理站点。"
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "上次登录"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "加入日期"
+
+#: contrib/auth/models.py:101
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "除了手工设置权限以外，用户也会从其所在组获得赋予该组的所有权限。"
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "用户权限"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "用户"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "用户"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "个人信息"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "权限"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "重要日期"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "组"
+
+#: contrib/auth/models.py:258
+msgid "message"
+msgstr "消息"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "st"
+msgstr "st"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "nd"
+msgstr "nd"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f 百万"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f 十亿"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f 万亿"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "一"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "二"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "三"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "四"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "五"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "六"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "七"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "八"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "九"
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "python 模型类名"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "内容类型"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "内容类型"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "重定向自"
+
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "应该是一个绝对路径，不包括域名。例如：'/events/search/'。"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "重定向到"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "可以是绝对路径（同上）或以'http://'起始的全URL。"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "重定向"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "重定向"
+
+#: contrib/flatpages/models.py:7
+#: contrib/admin/views/doc.py:315
+msgid "URL"
+msgstr "URL"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "例如：'/about/contact/'。请确保前导和结尾的斜杠。"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "标题"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "内容"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "允许评论"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "模板名称"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "例如：'flatpages/contact_page.html'。若未提供，系统将使用'flatpages/default.html'。"
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "请先注册"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "如果被选中，仅登录用户才可以查看此页。"
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "简单页面"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "简单页面"
+
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:166
+msgid "object ID"
+msgstr "对象ID"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "大字标题"
+
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "评论"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "等级 #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "等级 #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "等级 #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "等级 #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "等级 #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "等级 #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "等级 #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "等级 #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "是有效等级"
+
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "日期/时间已提交"
+
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:170
+msgid "is public"
+msgstr "公开"
+
+#: contrib/comments/models.py:85
+#: contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "IP 地址"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "已删除"
+
+#: contrib/comments/models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "若评论内容不妥，则选中这个检查框。该评论将被一条\"此评论已经被删除\"的消息所替换。"
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "评论"
+
+#: contrib/comments/models.py:131
+#: contrib/comments/models.py:207
+msgid "Content object"
+msgstr "内容对象"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"由 %(user)s 在 %(date)s 张贴\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "人名"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "IP 地址"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "由团队批准"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "自由评论"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "自由评论"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "得分"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "得分日期"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "Karma 得分"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "Karma 得分"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "被 %(user)s 评为 %(score)d"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"此评论由 %(user)s 标记:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "标记日期"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "用户标志"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "用户标志"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "由 %r 标记"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "删除日期"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "管理员删除"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "管理员删除"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "被管理员 %r 删除"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "用户名："
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Log out"
+msgstr "注销"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "口令："
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "忘记了你的口令？"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "等级"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "必须的"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "可选的"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "上传一张照片"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "评论："
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "预览评论"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "你的名字："
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "匿名用户不能投票"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "无效评论ID"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "不能给自已投票"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "该等级必填，因为你已经输入了至少一个等级。"
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"此评论由一个发表过少于 %(count)s 条评论的用户张贴:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"此评论由一个粗率的用户张贴：\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "只允许 POST"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "一个或多个必填字段没有提交"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "有人通过评论表单篡改（安全侵害）"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "评论表单有一个无效的 'target' 参数 -- 对象 ID 无效"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "评论表单无法提供 '预览' 或 '张贴' 功能"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "域名"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "显示名称"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "站点"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "站点"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>以 %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70
+#: contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143
+#: contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "全部"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "任意日期"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "今天"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "前7天"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "本月"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "今年"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "动作时间"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "对象id"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "对象表示"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "动作标志"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "修改消息"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "日志记录"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "日志记录"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "所有日期"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "首页"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Documentation"
+msgstr "文档"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "书签"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Change password"
+msgstr "修改口令"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "文档书签"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">为了安装书签，将链接拖到你的书签工具条，\n"
+"或者鼠标右击链接，添加到你的书签中。现在你可以从这个站\n"
+"点的任何页面选择书签。注意，其中某些书签要求你在一台\n"
+"被指定为\"内部\"的计算机上查看（如果不确定你的计算机\n"
+"是否为\"内部\"的，不妨跟你的系统管理员沟通一下）。</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "关于本页面的文档"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "从任何页面跳转到生成该页面的view文档。"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "显示对象 ID"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "为那些展现单个对象的页面，显示 content-type 和唯一ID。"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "编辑该对象(当前窗口)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "跳转到用于展现单个对象的页面的管理页。"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "编辑该对象(新窗口)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "同上，但在新窗口中打开管理页面。"
+
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+msgid "Delete"
+msgstr "删除"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "保存为新的"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "保存并增加另一个"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "保存并继续编辑"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "保存"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "服务器错误"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "服务器错误(500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "服务器错误 <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "发生了一个错误。它已经通过电子邮件报告给站点管理员了，而且应该很快会得到解决。感谢您的耐心。"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " 以 %(filter_title)s"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "过滤器"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "你的数据库安装有误。确保已经创建了相应的数据库表，并确保数据库可被相关的用户读取。"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "执行"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 条结果"
+msgstr[1] "%(counter)s 条结果"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "总共 %(full_result_count)s"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "历史"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "日期/时间"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "用户"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "动作"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "DATE_WITH_TIME_FULL"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "该对象没有变更历史记录。可能从未通过这个管理站点添加。"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "删除 %(object_name)s  '%(escaped_object)s' 会导致删除相关的对象，但你的帐号无权删除下列类型的对象："
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "你确认想要删除 %(object_name)s \"%(escaped_object)s\"？ 下列所有相关的项目都将被删除："
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "是的，我确定"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "显示全部"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "增加 %(name)s"
+
+#: contrib/admin/templates/admin/change_form.html:15
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "增加"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "在站点上查看"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "请修正下面的错误。"
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "排序中"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "排序："
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "欢迎，"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "页面没有找到"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "很报歉，请求页面无法找到。"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "登录"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "模型在 %(name)s 应用中可用。"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "修改"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "你无权修改任何东西。"
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "最近动作"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "我的动作"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "无可用的"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django 站点管理员"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django 管理"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "首先，输入一个用户名和口令。然后，你就可以编辑更多的用户选项。"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "用户名"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+msgid "Password"
+msgstr "口令"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Password (again)"
+msgstr "口令(重复)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr "为了校验，输入与上面相同的口令。"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "为用户<strong>%(username)s</strong>输入一个新的口令。"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "当前："
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "改动："
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "日期："
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "时间："
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "感谢您今天在本站花费了一些宝贵时间。"
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "重新登录"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "之所以收到这封邮件，是因为你请求了口令重设"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "在 %(site_name)s 你的用户帐号"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "你的新口令是： %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "到这个页面可以自由地修改口令："
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "你的用户名，如果已忘记的话："
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "感谢使用我们的站点！"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s 团队"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "口令重设"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "口令重设成功"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "我们已经按你所提交的邮箱地址发送了一个新的口令。你应该很快就能收到这封邮件。"
+
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:4
+msgid "Password change"
+msgstr "口令修改"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "请输入你的旧口令，为了安全起见，接着要输入两遍新口令，以便我们校验你输入的是否正确。"
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "旧口令："
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "新口令："
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "确认口令："
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "修改我的口令"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "口令修改成功"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "你的口令已修改。"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "忘记了你的口令？请在下面输入你的 e-mail 地址，我们将重设你的口令并将新口令通过邮件发送给你。"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mail 地址："
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "重设我的口令"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "站点管理"
+
+#: contrib/admin/views/main.py:257
+#: contrib/admin/views/auth.py:19
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" 添加成功。"
+
+#: contrib/admin/views/main.py:261
+#: contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:24
+msgid "You may edit it again below."
+msgstr "你可以在下面再次编辑它。"
+
+#: contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "你可以在下面增加另一个 %s 。"
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "增加 %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "%s 已增加。"
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "已修改 %s 。"
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "%s 已删除。"
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "没有字段被修改。"
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" 修改成功。"
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" 添加成功。你可以在下面再次编辑它。"
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "修改 %s"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "一个或多个 %(fieldname)s 在 %(name)s 中: %(obj)s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "一个或多个 %(fieldname)s 在 %(name)s 中:"
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" 删除成功。"
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "你确认吗？"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "变更历史： %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "选择 %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s to change"
+msgstr "选择 %s 来修改"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "数据库错误"
+
+#: contrib/admin/views/decorators.py:62
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "请重新登录，因为你的会话已经过期。不用担心：你的提交已保存。"
+
+#: contrib/admin/views/decorators.py:69
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "似乎你的浏览器没有配置为接受 cookie 。请允许 cookie，重新装入本页面，再试一次。"
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "用户名不能包含 '@' 字符。"
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "你的 e-mail 地址不是你的用户名。换 '%s' 试试。"
+
+#: contrib/admin/views/doc.py:46
+#: contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "标签："
+
+#: contrib/admin/views/doc.py:77
+#: contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "过滤器："
+
+#: contrib/admin/views/doc.py:135
+#: contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "视图："
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "应用 %r 没有找到"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "在应用 %(label)r 里找不到模型 %(name)r"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "相关的 `%(label)s.%(type)s` 对象"
+
+#: contrib/admin/views/doc.py:183
+#: contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219
+#: contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "模型："
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "相关的 `%(label)s.%(name)s` 对象"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "所有 %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "%s 的数量"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s 对象的字段"
+
+#: contrib/admin/views/doc.py:291
+#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303
+#: contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310
+#: contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "整数"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "布尔(True或False)"
+
+#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "字符串(最长 %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "逗号分隔的整数"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "日期(无时间)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "日期(带时间)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "E-mail 地址"
+
+#: contrib/admin/views/doc.py:298
+#: contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "文件路径"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "小数"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "布尔值(True, False或None)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "与父模型的关系"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "电话号码"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "文本"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "时间"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "美国州名(两个大写字母)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML 文本"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s 似乎不是一个 urlpattern 对象"
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "新增用户"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "口令修改成功。"
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "修改口令：%s"
+
+#: newforms/fields.py:103
+#: newforms/fields.py:256
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "确保你输入的文本至多 %d 个字符。"
+
+#: newforms/fields.py:105
+#: newforms/fields.py:258
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "确保你输入的文本至少 %d 个字符。"
+
+#: newforms/fields.py:128
+#: core/validators.py:120
+msgid "Enter a whole number."
+msgstr "输入整数。"
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "这个值必须小于或等于 %s。"
+
+#: newforms/fields.py:132
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "这个值必须小于或等于 %s。"
+
+#: newforms/fields.py:165
+msgid "Enter a valid date."
+msgstr "输入一个有效的日期。"
+
+#: newforms/fields.py:192
+msgid "Enter a valid time."
+msgstr "输入一个有效的时间。"
+
+#: newforms/fields.py:228
+msgid "Enter a valid date/time."
+msgstr "输入一个有效的日期/时间。"
+
+#: newforms/fields.py:242
+msgid "Enter a valid value."
+msgstr "输入一个有效的值。"
+
+#: newforms/fields.py:271
+#: core/validators.py:162
+msgid "Enter a valid e-mail address."
+msgstr "输入一个有效的 e-mail 地址。"
+
+#: newforms/fields.py:289
+#: newforms/fields.py:311
+msgid "Enter a valid URL."
+msgstr "输入一个有效的 URL。"
+
+#: newforms/fields.py:313
+msgid "This URL appears to be a broken link."
+msgstr "URL %s 似乎是一个已损坏的链接。"
+
+#: newforms/fields.py:362
+#: newforms/models.py:165
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "选择一个有效的选项： 该选择不在可用的选项中。"
+
+#: newforms/fields.py:380
+#: newforms/fields.py:456
+#: newforms/models.py:182
+msgid "Enter a list of values."
+msgstr "输入一系列值。"
+
+#: newforms/fields.py:389
+#: newforms/models.py:188
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "选择一个有效的选项： '%s' 不在可用的选项中。"
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "是、否、也许"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s 创建成功。"
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s 更新成功。"
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s 已被删除。"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "该值只能包含字母、数字和下划线。"
+
+#: core/validators.py:68
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "该值只能包含字母、数字、下划线、反斜线和斜线。"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "该值只能包含字母、数字和下划线。"
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "这里不允许大写字母。"
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "这里不允许小写字母。"
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "只能输入用逗号分隔的数字。"
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "输入用逗号分隔的有效 e-mail 地址。"
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "请输入一个有效的 IP 地址。"
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "这里不允许输入空值。"
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "这里不允许非数字字符。"
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "该值不能全部由数字组成。"
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "这里只允许字母。"
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr "年份必须为1900之后。"
+
+#: core/validators.py:143
+#, python-format
+msgid "Invalid date: %s"
+msgstr "无效日期: %s"
+
+#: core/validators.py:153
+msgid "Enter a valid time in HH:MM format."
+msgstr "输入一个 HH:MM 格式的有效时间。"
+
+#: core/validators.py:178
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "请上传一张有效的图片。您所上传的文件不是图片或者是已损坏的图片。"
+
+#: core/validators.py:185
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s 所指向的并非有效图片。"
+
+#: core/validators.py:189
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "电话号码必须为 XXX-XXX-XXXX 格式。\"%s\"是无效的。"
+
+#: core/validators.py:197
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s 所指向的并非有效 QuickTime 视频。"
+
+#: core/validators.py:201
+msgid "A valid URL is required."
+msgstr "需要一个有效的 URL。"
+
+#: core/validators.py:215
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"需要有效的 HTML。详细的错误是：\n"
+"%s"
+
+#: core/validators.py:222
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "格式错误的 XML: %s"
+
+#: core/validators.py:239
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "无效 URL: %s"
+
+#: core/validators.py:244
+#: core/validators.py:246
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s 是一个损坏的链接。"
+
+#: core/validators.py:252
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "输入一个有效的美国州名缩写。"
+
+#: core/validators.py:266
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "注意言论！%s 不允许在这里出现。"
+
+#: core/validators.py:273
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "这个字段必须与 '%s' 字段相匹配。"
+
+#: core/validators.py:292
+msgid "Please enter something for at least one field."
+msgstr "请至少在一个字段上输入些什么。"
+
+#: core/validators.py:301
+#: core/validators.py:312
+msgid "Please enter both fields or leave them both empty."
+msgstr "请输入两个字段或者两个字段都空着。"
+
+#: core/validators.py:320
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "如果 %(field)s 是 %(value)s 时这个字段必须给出"
+
+#: core/validators.py:333
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "如果 %(field)s 不是 %(value)s 时这个字段必须给出"
+
+#: core/validators.py:352
+msgid "Duplicate values are not allowed."
+msgstr "不允许重复值。"
+
+#: core/validators.py:367
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "这个值必须介于 %(lower)s 和 %(upper)s 之间。"
+
+#: core/validators.py:369
+#, python-format
+msgid "This value must be at least %s."
+msgstr "这个值必须至少为 %s"
+
+#: core/validators.py:371
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "这个值不能大于 %s 。"
+
+#: core/validators.py:407
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "这个值必须是 %s 的乘方。"
+
+#: core/validators.py:418
+msgid "Please enter a valid decimal number."
+msgstr "请输入一个有效的小数。"
+
+#: core/validators.py:422
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "请输入一个有效的小数，最多 %s 个数字。 "
+
+#: core/validators.py:425
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "请输入一个有效的小数，最多 %s 个数字。"
+
+#: core/validators.py:428
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "请输入一个有效的小数，最多 %s 个小数位。 "
+
+#: core/validators.py:438
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "请确保你上传的文件至少 %s 字节大。"
+
+#: core/validators.py:439
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "请确保你上传的文件至多 %s 字节大。"
+
+#: core/validators.py:456
+msgid "The format for this field is wrong."
+msgstr "该字段的格式不正确。"
+
+#: core/validators.py:471
+msgid "This field is invalid."
+msgstr "该字段无效。"
+
+#: core/validators.py:507
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "不能从 %s 得到任何东西。"
+
+#: core/validators.py:510
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s 返回了无效的 Content-Type 头 '%(contenttype)s'。"
+
+#: core/validators.py:543
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "请关闭还处于打开状态的 %(tag)s 标签从第 %(line)s 行。(行开始于 \"%(start)s\"。)"
+
+#: core/validators.py:547
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "从 %(line)s 行开始的一些文本，不允许出现在上下文中。(行开始于 \"%(start)s\"。)"
+
+#: core/validators.py:552
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "在 %(line)s 行的\"%(attr)s\"是无效的属性。(行开始于 \"%(start)s\"。)"
+
+#: core/validators.py:557
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "在 %(line)s 行的\"<%(tag)s>\"是无效的标签。(行开始于 \"%(start)s\"。)"
+
+#: core/validators.py:561
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "在行 %(line)s 的标签少了一个或多个必填的属性。(行开始于 \"%(start)s\"。)"
+
+#: core/validators.py:566
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "在行 %(line)s 的\"%(attr)s\"属性有一个无效的值。(行开始于 \"%(start)s\"。)"
+
diff --git a/webapp/django/conf/locale/zh_CN/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/zh_CN/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..6d1bcc1
--- /dev/null
+++ b/webapp/django/conf/locale/zh_CN/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/zh_CN/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/zh_CN/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..46b3ed4
--- /dev/null
+++ b/webapp/django/conf/locale/zh_CN/LC_MESSAGES/djangojs.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-03-21 18:43+0800\n"
+"PO-Revision-Date: 2006-09-25 08:35+0800\n"
+"Last-Translator: limodou <limodou@gmail.com>\n"
+"Language-Team: limodou <limodou@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+msgid "Available %s"
+msgstr "可用 %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "全选"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "增加"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "删除"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+msgid "Chosen %s"
+msgstr "选中的 %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "选择并点击 "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "清除全部"
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid "January February March April May June July August September October November December"
+msgstr "一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "星期日 星期一 星期二 星期三 星期四 星期五 星期六"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "日 一 二 三 四 五 六"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+msgid "Now"
+msgstr "现在"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+msgid "Clock"
+msgstr "时钟"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+msgid "Choose a time"
+msgstr "选择一个时间"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Midnight"
+msgstr "午夜"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "6 a.m."
+msgstr "上午6点"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "Noon"
+msgstr "正午"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+msgid "Cancel"
+msgstr "取消"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+msgid "Today"
+msgstr "今天"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+msgid "Calendar"
+msgstr "日历"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+msgid "Yesterday"
+msgstr "昨天"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+msgid "Tomorrow"
+msgstr "明天"
+
diff --git a/webapp/django/conf/locale/zh_TW/LC_MESSAGES/django.mo b/webapp/django/conf/locale/zh_TW/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..e3dfa52
--- /dev/null
+++ b/webapp/django/conf/locale/zh_TW/LC_MESSAGES/django.mo
Binary files differ
diff --git a/webapp/django/conf/locale/zh_TW/LC_MESSAGES/django.po b/webapp/django/conf/locale/zh_TW/LC_MESSAGES/django.po
new file mode 100644
index 0000000..1109545
--- /dev/null
+++ b/webapp/django/conf/locale/zh_TW/LC_MESSAGES/django.po
@@ -0,0 +1,2690 @@
+# zh_TW translation for Django.
+# Copyright (C) 2005-2007
+# This file is distributed under the same license as the Django package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-05-16 10:13+0200\n"
+"PO-Revision-Date: 2007-04-05 01:32+1000\n"
+"Last-Translator: terryh <terryh.tp@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "含有 %(type)s 的 %(object)s 對給予的 %(field)s 已經存在了。"
+
+#: db/models/manipulators.py:308 contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339
+msgid "and"
+msgstr "和"
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "請輸入正確的 %s。"
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "用逗點分隔IDs"
+
+#: db/models/fields/related.py:644
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "按住 \"Control\", 或者在 Mac 上按 \"Command\", 以選取更多值"
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "請輸入有效的 %(self)s ID。輸入值 %(value)r 是錯誤的。"
+msgstr[1] ""
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s 有 %(fieldname)s 已經存在。"
+
+#: db/models/fields/__init__.py:117 db/models/fields/__init__.py:274
+#: db/models/fields/__init__.py:610 db/models/fields/__init__.py:621
+#: oldforms/__init__.py:357 newforms/fields.py:80 newforms/fields.py:376
+#: newforms/fields.py:452 newforms/fields.py:463 newforms/models.py:178
+msgid "This field is required."
+msgstr "這個欄位是必須的。"
+
+#: db/models/fields/__init__.py:367
+msgid "This value must be an integer."
+msgstr "這個值必須是整數。"
+
+#: db/models/fields/__init__.py:402
+msgid "This value must be either True or False."
+msgstr "這個值必須是 True 或 False。"
+
+#: db/models/fields/__init__.py:423
+msgid "This field cannot be null."
+msgstr "這個值不能是 null。"
+
+#: db/models/fields/__init__.py:457 core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "輸入一個 YYYY-MM-DD 格式的有效日期。"
+
+#: db/models/fields/__init__.py:526 core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "輸入一個 YYYY-MM-DD HH:MM 格式的有效日期/時間。"
+
+#: db/models/fields/__init__.py:630
+msgid "Enter a valid filename."
+msgstr "輸入一個有效的檔名。"
+
+#: db/models/fields/__init__.py:751
+msgid "This value must be either None, True or False."
+msgstr "這個值必須是 None, True 或 False。"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "阿拉伯語"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "孟加拉語"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "嘉泰羅尼亞語"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "捷克語"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "威爾斯語"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "丹麥語"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "德語"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "希臘語"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "英語"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "西班牙語"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "阿根廷的西班牙語"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "芬蘭語"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "法語"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "加里西亞語"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "匈牙利語"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "希伯來語"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "冰島語"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "義大利語"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "日語"
+
+#: conf/global_settings.py:58
+msgid "Kannada"
+msgstr "坎那達語"
+
+#: conf/global_settings.py:59
+msgid "Latvian"
+msgstr "拉脫維亞語"
+
+#: conf/global_settings.py:60
+msgid "Macedonian"
+msgstr "馬其頓語"
+
+#: conf/global_settings.py:61
+msgid "Dutch"
+msgstr "荷蘭語"
+
+#: conf/global_settings.py:62
+msgid "Norwegian"
+msgstr "挪威語"
+
+#: conf/global_settings.py:63
+msgid "Polish"
+msgstr "波蘭嶼"
+
+#: conf/global_settings.py:64
+msgid "Portugese"
+msgstr "葡萄牙語"
+
+#: conf/global_settings.py:65
+msgid "Brazilian"
+msgstr "巴西語"
+
+#: conf/global_settings.py:66
+msgid "Romanian"
+msgstr "羅馬尼亞語"
+
+#: conf/global_settings.py:67
+msgid "Russian"
+msgstr "俄語"
+
+#: conf/global_settings.py:68
+msgid "Slovak"
+msgstr "斯洛伐克語"
+
+#: conf/global_settings.py:69
+msgid "Slovenian"
+msgstr "斯洛維尼亞語"
+
+#: conf/global_settings.py:70
+msgid "Serbian"
+msgstr "塞爾維亞語"
+
+#: conf/global_settings.py:71
+msgid "Swedish"
+msgstr "瑞典語"
+
+#: conf/global_settings.py:72
+msgid "Tamil"
+msgstr "坦米爾語"
+
+#: conf/global_settings.py:73
+msgid "Telugu"
+msgstr "泰盧固語"
+
+#: conf/global_settings.py:74
+msgid "Turkish"
+msgstr "土耳其語"
+
+#: conf/global_settings.py:75
+msgid "Ukrainian"
+msgstr "烏克蘭語"
+
+#: conf/global_settings.py:76
+msgid "Simplified Chinese"
+msgstr "簡體中文"
+
+#: conf/global_settings.py:77
+msgid "Traditional Chinese"
+msgstr "繁體中文"
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "年"
+msgstr[1] ""
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "月"
+msgstr[1] ""
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "週"
+msgstr[1] ""
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "天"
+msgstr[1] ""
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "小時"
+msgstr[1] ""
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "分鐘"
+msgstr[1] ""
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "星期一"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "星期二"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "星期三"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "星期四"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "星期五"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "星期六"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "星期日"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "一月"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "二月"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "三月"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "四月"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "五月"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "六月"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "七月"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "八月"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "九月"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "十月"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "十一月"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "十二月"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "一月"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "二月"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "三月"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "四月"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "五月"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "六月"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "七月"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "八月"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "九月"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "十月"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "十一月"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "十二月"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "一月"
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "二月"
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "八月"
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "九月"
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "十月"
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "十一月"
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "十二月"
+
+#: utils/dateformat.py:40
+msgid "p.m."
+msgstr ""
+
+#: utils/dateformat.py:41
+msgid "a.m."
+msgstr ""
+
+#: utils/dateformat.py:46
+msgid "PM"
+msgstr ""
+
+
+#: utils/dateformat.py:47
+msgid "AM"
+msgstr ""
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "午夜"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "中午"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "N j, Y, P"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "P"
+
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+
+msgstr "F j"
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "確定你輸入的文字少於 %s 個字。"
+msgstr[1] ""
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "這裡不允許斷行"
+
+#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "選擇一個有效的選項: '%(data)s' 不在 %(choices)s 中。"
+
+#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:150
+#: newforms/widgets.py:174
+msgid "Unknown"
+msgstr "未知"
+
+#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:174
+msgid "Yes"
+msgstr "是"
+
+#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:174
+msgid "No"
+msgstr "否"
+
+#: oldforms/__init__.py:672 core/validators.py:174 core/validators.py:445
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "没有檔案被提交。請檢查表單的編碼類型。"
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "提交的檔案是空的。"
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "輸入 -32,768 到 32,768 之間的一個整數。"
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "輸入正整數。"
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "輸入 0 到 32,768 之間的一個整數。"
+
+#: contrib/localflavor/no/forms.py:15
+msgid "Enter a zip code in the format XXXX."
+msgstr "用 XXXX 的格式輸入郵遞區號。"
+
+#: contrib/localflavor/no/forms.py:36
+msgid "Enter a valid Norwegian social security number."
+msgstr "請輸入一個有效的挪威身份證號碼。"
+
+#: contrib/localflavor/it/forms.py:14 contrib/localflavor/fr/forms.py:17
+#: contrib/localflavor/fi/forms.py:14 contrib/localflavor/de/forms.py:16
+msgid "Enter a zip code in the format XXXXX."
+msgstr "用 XXXXX 的格式輸入郵遞區號。"
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "用 XXXXXXX 或 XXX-XXXX 的格式輸入郵遞區號。"
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "北海道"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "青森"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "岩手"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "宮城縣"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "秋田"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "山形"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "福島"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "茨城"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "櫪木"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "群馬"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "埼玉"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "千葉"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "東京"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "神奈川"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "山梨"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "長野"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "新瀉"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "富山"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "石川"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "福井"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "岐阜"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "靜岡"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "愛知"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "三重"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "滋賀"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "京都"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "大阪"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "兵庫"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "奈良"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "和歌山"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "鳥取"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "島根"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "岡山"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "廣島"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "山口"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "德島"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "香川"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "愛媛縣"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "高知"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "福岡"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "左賀"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "長崎"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "熊本"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "大分"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "宫崎"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "鹿兒島"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "琉球"
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "用 XXXXX-XXX 的格式輸入郵遞區號。"
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "電話號碼必須是 XX-XXXX-XXXX 格式。"
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:46
+msgid "Enter a valid Finnish social security number."
+msgstr "請輸入一個有效的芬蘭身份證號碼。"
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "輸入郵政區號。兩組的必須要有空格"
+
+#: contrib/localflavor/de/forms.py:63
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format"
+msgstr ""
+"以 XXXXXXXXXXX-XXXXXXX-XXXXXXX-X 的格式輸入一個有效的德國身份證號碼。"
+
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "巴登符騰堡"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "巴伐利亞"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "柏林"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "勃蘭登堡"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "布萊梅"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "漢堡"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "黑森"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "梅克倫堡-前波莫瑞"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "下薩克森"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "北萊茵-威斯特法倫"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "萊茵蘭-普法爾茨"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "薩爾蘭"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "薩克森"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "薩克森-安哈爾特"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "石勒蘇益格-荷爾斯泰因"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "圖林根"
+
+#: contrib/localflavor/usa/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "以 XXXXX 或 XXXXX-XXX 的格式輸入一個郵遞區號。"
+
+#: contrib/localflavor/usa/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "以 XXX-XX-XXXX 的格式輸入一有效的美国身份證字號。"
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "session 鍵值"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "session 資料"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "到期日期"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "session"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "sessions"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "兩個密碼欄位不同。"
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "一個相同名稱的使用者已經存在。"
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "你的Web瀏覽器好象不允許使用cookie。登入時需要使用cookie。"
+
+#: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "請輸入有效的使用者名稱與密碼。請注意兩個欄位都有分大小寫"
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "這個帳戶未啟用"
+
+#: contrib/auth/forms.py:85
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr "這個電子郵件地址没有和任何用户帳號有關聯。你確定你已經註冊了？"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "兩個'新密碼'欄位不一致"
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "你的舊密碼不正確。請重新輸入。"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "登出"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "名稱"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "代碼"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "權限"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "權限"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "群組"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "群組"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "使用者名稱"
+
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "必須。不超過30。只能用能字母數字與底線(字母、數字和底線)。"
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "名字"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "姓氏"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "電子郵件地址"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "密碼"
+
+#: contrib/auth/models.py:94
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr "使用 '[algo]$[salt]$[hexdigest]' 或是 <a href=\"password/\">修改密碼表單</a>."
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "工作人員狀態"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "指定是否使用者可以登入此管理網站。"
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "活動中"
+
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "指定是否使用者可以登入此管理網站。用取消選擇來取代刪除帳號。"
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "超級使用者狀態"
+
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "指定是否使用者可以登入到這個管理網站"
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "上次登入"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "加入日期"
+
+#: contrib/auth/models.py:101
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr "除了手動指定的權限之外，這個使用者也會得到其群組擁有的所有權限。"
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "使用者權限"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "使用者"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "使用者"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "個人資訊"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "權限"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "重要日期"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "群組"
+
+#: contrib/auth/models.py:258
+msgid "message"
+msgstr "訊息"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "st"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "nd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f 百萬"
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f 十億"
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f 兆"
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "一"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "二"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "三"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "四"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "五"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "六"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "七"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "八"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "九"
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "python模組名稱"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "內容類型"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "內容類型"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "重導向自"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr "應該是一個絕對路徑，不包括網域。例如：'/events/search/'。"
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "重導向到"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "此可為一絕對路徑 (如上) 或一個以 'http://' 開頭的完整 URL。"
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "重導向"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "重導向"
+
+#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:315
+msgid "URL"
+msgstr "URL"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "例如： '/about/contact/'。開頭與結束都一定要有斜線。"
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "標題"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "內容"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "啟用評論"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "模板名稱"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr "例如： 'flatpages/contact_page'。如果沒有提供它，系統會使用 'flatpages/default.html'。"
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "需要註冊"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "如果此項被選取，則只有登入的使用者可以檢視頁面。"
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "簡平頁面"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "簡平頁面"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "物件 ID"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "頭條"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "評論"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "等級 #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "等級 #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "等級 #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "等級 #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "等級 #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "等級 #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "等級 #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "等級 #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "是有效的等級"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "日期/時間已發送"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "是公開的"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
+msgid "IP address"
+msgstr "IP 位址"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "已移除"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr "如果此評論不恰當則選取這個方塊，其將以 \"此評論已被移除\" 訊息取代。"
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "評論"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "內容物件"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"由 %(user)s 在 %(date)s 張貼\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "人名"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ip 位址"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "由工作人員核准"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "自由評論"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "自由評論"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "分數"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "分數日期"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "Karma 分數"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "Karma 分數"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "被 %(user)s 定級為 %(score)d "
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"此評論被 %(user)s 標識:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "標識日期"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "使用者旗標"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "使用者旗標"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "被 %r 標識"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "刪除日期"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "仲裁刪除"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "仲裁刪除"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "由 %r 仲裁刪除"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr ""
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Log out"
+msgstr "登出"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "密碼"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "忘記密碼"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "等級"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "必須的"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "可選的"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "上傳一張照片"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "評論:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "評論預覽"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "你的名字:"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "匿名使用者不可投票"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "無效的評論 ID"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "不能投票給你自己"
+
+#: contrib/comments/views/comments.py:27
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "此等級被要求是因為你至少輸入了一個其它的等級。"
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"此評論由一個發表數少於 %(count)s 則評論的使用者張貼:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"此評論由一個膚淺的使用者張貼：\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "只允許張貼"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "一個或多個所需的欄位沒有送出"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "有人篡改了評論表單 (違反保全)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr "此評論表單有一個無效的 'target' 參數 -- 物件 ID 是無效的"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "評論表格無法提供 '預覽' 或 '張貼' 功能"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "網域名稱"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "顯示名稱"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "網站"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "網站"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>由 %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "全部"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "任何日期"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "今天"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "過去 7 天"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "本月"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "今年"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "動作時間"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "物件 id"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "物件 repr"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "動作旗標"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "變更訊息"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "紀錄項目"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "紀錄項目"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "所有日期"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "首頁"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Documentation"
+msgstr "文件"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "書籤"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Change password"
+msgstr "變更密碼"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "文件 bookmarklets"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site.  Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">要安裝 bookmarklet，把連結拖進你的書籤工具列，或右擊該連結"
+"後新增到你的書籤裡。現在你可以從網站的任何頁面來選擇 bookmarklet。注意其中某"
+"些 bookmarklet 要求你必須是從被稱為 \"內部\" 的電腦來檢視網站的 (如果你不確定"
+"你的電腦是否在 \"內部\"，那就和你的系統管理員談談)。</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "本頁面的文件"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "讓你跳到用來產生該頁面之檢視的任何一頁文件。"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "顯示物件 ID"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "顯示用來表示單一物件的頁面 content-type 與唯一 ID。"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "編輯此物件 (目前視窗)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "跳到用來表示單一物件的管理頁面。"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "編輯此物件 (新視窗)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "如上，但在新視窗裡開啟管理頁面。"
+
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+msgid "Delete"
+msgstr "刪除"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "儲存為新的"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "儲存並新增另一個"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "儲存並繼續編輯"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "儲存"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "伺服器錯誤"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "伺服器錯誤 (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "伺服器錯誤 <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr "存在一個錯誤。它已經透過電子郵件回報給網站管理員了，並且應該很快被改正。謝謝你的關心。"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " 由 %(filter_title)s"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "過濾器"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr "你的資料庫安裝有錯誤。確定資料庫表格已經建立，並確定資料庫可被合適的使用者讀取。"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "去"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 則结果"
+msgstr[1] "%(counter)s 則结果"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "總共 %(full_result_count)s"
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+
+msgid "History"
+msgstr "歷史"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "日期/時間"
+
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "使用者"
+
+#: contrib/admin/templates/admin/object_history.html:20
+
+msgid "Action"
+msgstr "動作"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr "這個物件沒有變更的歷史。它可能不是透過這個管理網站新增的。"
+
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+
+"following types of objects:"
+msgstr ""
+"刪除 %(object_name)s '%(escaped_object)s' 會把相關的物件也刪除，不過你的帳號並沒有刪"
+"除以下型態物件的權限:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid ""
+
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"你確定想要刪除 %(object_name)s \"%(escaped_object)s\"？以下所有的相關項目都會被刪除:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "是的，我確定"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "顯示全部"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "新增 %(name)s"
+
+#: contrib/admin/templates/admin/change_form.html:15
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "新增"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "在網站上檢視"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "请更正下面的錯誤。"
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "排序中"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "排序："
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "歡迎"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "頁面沒有找到"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "很抱歉，請求的頁面無法找到。"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "登入"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "在 %(name)s 應用中模形可用。"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "變更"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "你沒有編輯任何東西的權限。"
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "最近的動作"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "我的動作"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "沒有可用的"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django 網站管理"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django 管理"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "首先，輸入一個使用者名稱和密碼。然後你可以編輯更多使用者選項。"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "使用者名稱"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+msgid "Password"
+msgstr "密碼"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Password (again)"
+msgstr "密碼(重複)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr ""
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "目前"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "修改"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "日期"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "時間"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "感謝你今天花了重要的時間留在本網站。"
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "再次登入"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "因為你要求重設密碼，所以收到了這封電子郵件"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "你在 %(site_name)s 裡的使用者帳號"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "你的新密碼是: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "放心地到此頁面變更密碼:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "你的使用者名稱，萬一你已經忘記的話:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "感謝使用本網站！"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s 團隊"
+
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "密碼重設"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "密碼成功地重設"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr "我們已經把新的密碼寄到你送出的電子郵件地址。你應該不久就能收到。"
+
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:4
+msgid "Password change"
+msgstr "密碼變更"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr "為了安全上的考慮，請輸入你的舊密碼，再輸入新密碼兩次，讓我們核驗你已正確地輸入。"
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "舊密碼"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "新密碼"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "確認密碼"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "變更我的密碼"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "密碼成功地變更"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "你的密碼已變更。"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr "忘記你的密碼了？在下面輸入你的電子郵件地址，我們就會重設你的密碼並把新的用電"
+"子郵件寄給你。"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "電子郵件地址:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "重設我的密碼"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "網站管理"
+
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:19
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" 已成功變更。"
+
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:24
+msgid "You may edit it again below."
+msgstr "你可以在下面再編輯一次。"
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "你可以在下面新增另一個 %s。"
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "新增 %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "%s 已新增。"
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "%s 已變更。"
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "%s 已删除。"
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "沒有欄位被變更。"
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr ""
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" 已成功變更。"
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "變更 %s"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "在 %(name)s: 裡的一個或多個 %(fieldname)s %(obj)s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "在 %(name)s 裡的一個或多個 %(fieldname)s:"
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" 已成功刪除。"
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "你確定？"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "變更歷史: %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "選擇 %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s to change"
+msgstr "選擇 %s 來變更"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "資料庫錯誤"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr "請再登入一次，因為你的 session 已經到期。不必擔心: 你的提交已被儲存。"
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr "看起來你的瀏覽器沒有設定成允許 cookie。請啟用 cookie、重新載入此頁，然後再試一次"
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "使用者名稱不能包含 '@' 字元。"
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "你的電子郵件地址不是你的使用者名稱。試著改用 '%s'。"
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "標籤："
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "過濾器："
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "視圖："
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "應用程式 %r 没有找到"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "在應用程式 %(label)r 裡找不到模型 %(name)r"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "相關的 `%(label)s.%(type)s` 物件"
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "模型："
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "相關的 `%(label)s.%(name)s` 物件"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "所有 %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "%s 的数量"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s 物件的欄位"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "整數"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "布林值 (True 或 False)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "字串(最長 %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "逗號分隔的整數"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "日期 (不包括時間)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "日期 (包括時間)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "電子郵件地址"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "檔案路徑"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "小數"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "布林值 (True, False 或 None)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "與父模型的關係"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "電話號碼"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "文字"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "時間"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "美國州名 (兩個大寫字母)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML 文件"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s 似乎不是一個 urlpattern 物件"
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "增加使用者"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr ""
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "密碼變更: %s"
+
+#: newforms/fields.py:103 newforms/fields.py:256
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "確定你輸入的值最多有 %d 字。"
+
+#: newforms/fields.py:105 newforms/fields.py:258
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "確定你輸入的值最少有 %d 字。"
+
+#: newforms/fields.py:128 core/validators.py:120
+msgid "Enter a whole number."
+msgstr "輸入整數"
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "這個值必须小於或等於 %s。"
+
+#: newforms/fields.py:132
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "這個值必须大於或等於 %s。"
+
+#: newforms/fields.py:165
+msgid "Enter a valid date."
+msgstr "輸入有效的日期"
+
+#: newforms/fields.py:192
+msgid "Enter a valid time."
+msgstr "輸入有效的時間"
+
+#: newforms/fields.py:228
+msgid "Enter a valid date/time."
+msgstr "輸入有效的日期/時間"
+
+#: newforms/fields.py:242
+msgid "Enter a valid value."
+msgstr "輸入有效的值"
+
+#: newforms/fields.py:271 core/validators.py:162
+msgid "Enter a valid e-mail address."
+msgstr "輸入有效的電子郵件地址。"
+
+#: newforms/fields.py:289 newforms/fields.py:311
+msgid "Enter a valid URL."
+msgstr "輸入有效的URL"
+
+#: newforms/fields.py:313
+msgid "This URL appears to be a broken link."
+msgstr "URL似乎是是斷掉的連結。"
+
+#: newforms/fields.py:362 newforms/models.py:165
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "選擇有效的選項： 此選擇不在可用的选项中。"
+
+#: newforms/fields.py:380 newforms/fields.py:456 newforms/models.py:182
+msgid "Enter a list of values."
+msgstr "輸入一個列表的值"
+
+#: newforms/fields.py:389 newforms/models.py:188
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "選擇一個有效的選項： '%s' 不在可用的選項中。"
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "是、否、也許"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s 新增成功。"
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s 變更成功。"
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s 已被删除。"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "此值僅能包含字母、數字與底線。"
+
+#: core/validators.py:68
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "此值僅能包含字母、數字、底線與斜線。"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "此值僅能包含字母、數字、底線與連字號"
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "此處不允許大寫字母。"
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "此處不允許小寫字母。"
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "輸入以逗號分隔的數字。"
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "輸入以逗號分隔的有效電子郵件地址。"
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "請輸入有效的 IP 位址。"
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "此處不允許空值。"
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "此處不允許非數字字元。"
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "此值不能只以數字組成。"
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "此處只允許字母。"
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr "年份必須是1900或之後"
+
+#: core/validators.py:143
+#, python-format
+msgid "Invalid date: %s"
+msgstr ""
+
+#: core/validators.py:153
+msgid "Enter a valid time in HH:MM format."
+
+msgstr "輸入 HH:MM 有效的時間格式。"
+
+#: core/validators.py:178
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "上傳一個有效的影像。你上傳的檔案不是影像，否則就是壞掉的圖。"
+
+#: core/validators.py:185
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s 不是指向一個有效的圖片。"
+
+#: core/validators.py:189
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "電話號碼必須是 XXX-XXX-XXXX 格式。\"%s\" 無效。"
+
+#: core/validators.py:197
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+
+msgstr "URL %s 未指向有效的 QuickTime 視像。"
+
+#: core/validators.py:201
+msgid "A valid URL is required."
+msgstr "必須是有效的 URL。"
+
+
+#: core/validators.py:215
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"必須是有效的 HTML。具體的錯誤是:\n"
+"%s"
+
+#: core/validators.py:222
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "排列錯誤的 XML: %s"
+
+#: core/validators.py:239
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "無效的 URL: %s"
+
+#: core/validators.py:244 core/validators.py:246
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s 是斷掉的連結。"
+
+#: core/validators.py:252
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "輸入有效的 U.S. 州名簡稱。"
+
+#: core/validators.py:266
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "看住你的嘴！此處不允許 %s 這樣的字眼。"
+msgstr[1] ""
+
+#: core/validators.py:273
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "此欄位必須符合 '%s' 欄位。"
+
+#: core/validators.py:292
+msgid "Please enter something for at least one field."
+msgstr "請在至少一個欄位裡進行輸入。"
+
+#: core/validators.py:301 core/validators.py:312
+msgid "Please enter both fields or leave them both empty."
+msgstr "請輸入兩個欄位或全部留空。"
+
+#: core/validators.py:320
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "如果 %(field)s 是 %(value)s 則此欄位必須給定。"
+
+#: core/validators.py:333
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "如果 %(field)s 不是 %(value)s 則此欄位必須給定。"
+
+#: core/validators.py:352
+msgid "Duplicate values are not allowed."
+msgstr "不允許重複值。"
+
+#: core/validators.py:367
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "這個值必須介於 %(lower)s 和 %(upper)s 之間。"
+
+#: core/validators.py:369
+#, python-format
+msgid "This value must be at least %s."
+msgstr "這個值需要至少為 %s 。"
+
+#: core/validators.py:371
+#, python-format
+
+msgid "This value must be no more than %s."
+msgstr "這個值不能大於 %s 。"
+
+#: core/validators.py:407
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "此值必須是 %s 的乘方。"
+
+#: core/validators.py:418
+msgid "Please enter a valid decimal number."
+msgstr "請輸入有效的小數。"
+
+#: core/validators.py:422
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "請輸入最長 %s 位的有效小數。"
+msgstr[1] "請輸入最長 %s 位的有效小數。"
+
+#: core/validators.py:425
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "請輸入最長 %s 位的有效小數。"
+msgstr[1] "請輸入最長 %s 位的有效小數。"
+
+
+#: core/validators.py:428
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "請輸入小數最長 %s 位的有效小數。"
+msgstr[1] "請輸入小數最長 %s 位的有效小數。"
+
+#: core/validators.py:438
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "確定你上傳的檔案至少有 %s 位元組。"
+
+#: core/validators.py:439
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "確定你上傳的檔案最多是 %s 位元組。"
+
+#: core/validators.py:456
+msgid "The format for this field is wrong."
+msgstr "此欄位的格式錯誤。"
+
+#: core/validators.py:471
+msgid "This field is invalid."
+msgstr "此欄位錯誤"
+
+#: core/validators.py:507
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "無法從 %s 取得任何東西。"
+
+#: core/validators.py:510
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s 傳回了無效的 Content-Type 標頭 '%(contenttype)s'。"
+
+#: core/validators.py:543
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"請將第 %(line)s 行開始未封閉的 %(tag)s 標籤封閉起來 (行開始於 \"%(start)s"
+"\")。"
+
+#: core/validators.py:547
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr "該內容不允許某些從第 %(line)s 開始的文字 (行開始於 \"%(start)s\")。"
+
+#: core/validators.py:552
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"第 \"%(line)s\" 的 \"%(attr)s\" 是無效的屬性 (行開始於 \"%(start)s\")。"
+
+#: core/validators.py:557
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr "第 %(line)s 行的 \"<%(tag)s>\" 是無效的標籤 (行開始於 \"%(start)s\")。"
+
+#: core/validators.py:561
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"第 %(line)s 有一個標籤缺少了一個或更多必需的屬性 (行開始於 \"%(start)s\")。"
+
+#: core/validators.py:566
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr "第 \"%(line)s\" 的 \"%(attr)s\" 屬性是無效的值 (行開始於 \"%(start)s\")。"
diff --git a/webapp/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo b/webapp/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000..fae1fdc
--- /dev/null
+++ b/webapp/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/webapp/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po b/webapp/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000..120d08d
--- /dev/null
+++ b/webapp/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-06-28 17:36+1000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr ""
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr ""
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr ""
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr ""
diff --git a/webapp/django/conf/project_template/__init__.py b/webapp/django/conf/project_template/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/conf/project_template/__init__.py
diff --git a/webapp/django/conf/project_template/manage.py b/webapp/django/conf/project_template/manage.py
new file mode 100755
index 0000000..5e78ea9
--- /dev/null
+++ b/webapp/django/conf/project_template/manage.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+from django.core.management import execute_manager
+try:
+    import settings # Assumed to be in the same directory.
+except ImportError:
+    import sys
+    sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
+    sys.exit(1)
+
+if __name__ == "__main__":
+    execute_manager(settings)
diff --git a/webapp/django/conf/project_template/settings.py b/webapp/django/conf/project_template/settings.py
new file mode 100644
index 0000000..bbf005d
--- /dev/null
+++ b/webapp/django/conf/project_template/settings.py
@@ -0,0 +1,79 @@
+# Django settings for {{ project_name }} project.
+
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+    # ('Your Name', 'your_email@domain.com'),
+)
+
+MANAGERS = ADMINS
+
+DATABASE_ENGINE = ''           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+DATABASE_NAME = ''             # Or path to database file if using sqlite3.
+DATABASE_USER = ''             # Not used with sqlite3.
+DATABASE_PASSWORD = ''         # Not used with sqlite3.
+DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
+DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'America/Chicago'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'en-us'
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = ''
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash if there is a path component (optional in other cases).
+# Examples: "http://media.lawrence.com", "http://example.com/media/"
+MEDIA_URL = ''
+
+# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
+# trailing slash.
+# Examples: "http://foo.com/media/", "/media/".
+ADMIN_MEDIA_PREFIX = '/media/'
+
+# Make this unique, and don't share it with anybody.
+SECRET_KEY = ''
+
+# List of callables that know how to import templates from various sources.
+TEMPLATE_LOADERS = (
+    'django.template.loaders.filesystem.load_template_source',
+    'django.template.loaders.app_directories.load_template_source',
+#     'django.template.loaders.eggs.load_template_source',
+)
+
+MIDDLEWARE_CLASSES = (
+    'django.middleware.common.CommonMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+)
+
+ROOT_URLCONF = '{{ project_name }}.urls'
+
+TEMPLATE_DIRS = (
+    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
+    # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
+)
+
+INSTALLED_APPS = (
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.sites',
+)
diff --git a/webapp/django/conf/project_template/urls.py b/webapp/django/conf/project_template/urls.py
new file mode 100644
index 0000000..7c9fab9
--- /dev/null
+++ b/webapp/django/conf/project_template/urls.py
@@ -0,0 +1,16 @@
+from django.conf.urls.defaults import *
+
+# Uncomment the next two lines to enable the admin:
+# from django.contrib import admin
+# admin.autodiscover()
+
+urlpatterns = patterns('',
+    # Example:
+    # (r'^{{ project_name }}/', include('{{ project_name }}.foo.urls')),
+
+    # Uncomment the next line to enable admin documentation:
+    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
+
+    # Uncomment the next line to enable the admin:
+    # (r'^admin/(.*)', admin.site.root),
+)
diff --git a/webapp/django/conf/urls/__init__.py b/webapp/django/conf/urls/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/conf/urls/__init__.py
diff --git a/webapp/django/conf/urls/defaults.py b/webapp/django/conf/urls/defaults.py
new file mode 100644
index 0000000..26cdd3e
--- /dev/null
+++ b/webapp/django/conf/urls/defaults.py
@@ -0,0 +1,32 @@
+from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
+from django.core.exceptions import ImproperlyConfigured
+
+__all__ = ['handler404', 'handler500', 'include', 'patterns', 'url']
+
+handler404 = 'django.views.defaults.page_not_found'
+handler500 = 'django.views.defaults.server_error'
+
+include = lambda urlconf_module: [urlconf_module]
+
+def patterns(prefix, *args):
+    pattern_list = []
+    for t in args:
+        if isinstance(t, (list, tuple)):
+            t = url(prefix=prefix, *t)
+        elif isinstance(t, RegexURLPattern):
+            t.add_prefix(prefix)
+        pattern_list.append(t)
+    return pattern_list
+
+def url(regex, view, kwargs=None, name=None, prefix=''):
+    if type(view) == list:
+        # For include(...) processing.
+        return RegexURLResolver(regex, view[0], kwargs)
+    else:
+        if isinstance(view, basestring):
+            if not view:
+                raise ImproperlyConfigured('Empty URL pattern view name not permitted (for pattern %r)' % regex)
+            if prefix:
+                view = prefix + '.' + view
+        return RegexURLPattern(regex, view, kwargs, name)
+
diff --git a/webapp/django/conf/urls/i18n.py b/webapp/django/conf/urls/i18n.py
new file mode 100644
index 0000000..00e2d60
--- /dev/null
+++ b/webapp/django/conf/urls/i18n.py
@@ -0,0 +1,5 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('',
+    (r'^setlang/$', 'django.views.i18n.set_language'),
+)
diff --git a/webapp/django/conf/urls/shortcut.py b/webapp/django/conf/urls/shortcut.py
new file mode 100644
index 0000000..135f3be
--- /dev/null
+++ b/webapp/django/conf/urls/shortcut.py
@@ -0,0 +1,5 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('django.views',
+    (r'^(?P<content_type_id>\d+)/(?P<object_id>.*)/$', 'defaults.shortcut'),
+)
diff --git a/webapp/django/contrib/__init__.py b/webapp/django/contrib/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/__init__.py
diff --git a/webapp/django/contrib/admin/__init__.py b/webapp/django/contrib/admin/__init__.py
new file mode 100644
index 0000000..704dc58
--- /dev/null
+++ b/webapp/django/contrib/admin/__init__.py
@@ -0,0 +1,19 @@
+from django.contrib.admin.options import ModelAdmin, HORIZONTAL, VERTICAL
+from django.contrib.admin.options import StackedInline, TabularInline
+from django.contrib.admin.sites import AdminSite, site
+
+def autodiscover():
+    """
+    Auto-discover INSTALLED_APPS admin.py modules and fail silently when 
+    not present. This forces an import on them to register any admin bits they
+    may want.
+    """
+    import imp
+    from django.conf import settings
+    for app in settings.INSTALLED_APPS:
+        try:
+            imp.find_module("admin", __import__(app, {}, {}, [app.split(".")[-1]]).__path__)
+        except ImportError:
+            # there is no app admin.py, skip it
+            continue
+        __import__("%s.admin" % app)
diff --git a/webapp/django/contrib/admin/filterspecs.py b/webapp/django/contrib/admin/filterspecs.py
new file mode 100644
index 0000000..d6a4a0b
--- /dev/null
+++ b/webapp/django/contrib/admin/filterspecs.py
@@ -0,0 +1,179 @@
+"""
+FilterSpec encapsulates the logic for displaying filters in the Django admin.
+Filters are specified in models with the "list_filter" option.
+
+Each filter subclass knows how to display a filter for a field that passes a
+certain test -- e.g. being a DateField or ForeignKey.
+"""
+
+from django.db import models
+from django.utils.encoding import smart_unicode, iri_to_uri
+from django.utils.translation import ugettext as _
+from django.utils.html import escape
+from django.utils.safestring import mark_safe
+import datetime
+
+class FilterSpec(object):
+    filter_specs = []
+    def __init__(self, f, request, params, model, model_admin):
+        self.field = f
+        self.params = params
+
+    def register(cls, test, factory):
+        cls.filter_specs.append((test, factory))
+    register = classmethod(register)
+
+    def create(cls, f, request, params, model, model_admin):
+        for test, factory in cls.filter_specs:
+            if test(f):
+                return factory(f, request, params, model, model_admin)
+    create = classmethod(create)
+
+    def has_output(self):
+        return True
+
+    def choices(self, cl):
+        raise NotImplementedError()
+
+    def title(self):
+        return self.field.verbose_name
+
+    def output(self, cl):
+        t = []
+        if self.has_output():
+            t.append(_(u'<h3>By %s:</h3>\n<ul>\n') % escape(self.title()))
+
+            for choice in self.choices(cl):
+                t.append(u'<li%s><a href="%s">%s</a></li>\n' % \
+                    ((choice['selected'] and ' class="selected"' or ''),
+                     iri_to_uri(choice['query_string']),
+                     choice['display']))
+            t.append('</ul>\n\n')
+        return mark_safe("".join(t))
+
+class RelatedFilterSpec(FilterSpec):
+    def __init__(self, f, request, params, model, model_admin):
+        super(RelatedFilterSpec, self).__init__(f, request, params, model, model_admin)
+        if isinstance(f, models.ManyToManyField):
+            self.lookup_title = f.rel.to._meta.verbose_name
+        else:
+            self.lookup_title = f.verbose_name
+        self.lookup_kwarg = '%s__%s__exact' % (f.name, f.rel.to._meta.pk.name)
+        self.lookup_val = request.GET.get(self.lookup_kwarg, None)
+        self.lookup_choices = f.rel.to._default_manager.all()
+
+    def has_output(self):
+        return len(self.lookup_choices) > 1
+
+    def title(self):
+        return self.lookup_title
+
+    def choices(self, cl):
+        yield {'selected': self.lookup_val is None,
+               'query_string': cl.get_query_string({}, [self.lookup_kwarg]),
+               'display': _('All')}
+        for val in self.lookup_choices:
+            pk_val = getattr(val, self.field.rel.to._meta.pk.attname)
+            yield {'selected': self.lookup_val == smart_unicode(pk_val),
+                   'query_string': cl.get_query_string({self.lookup_kwarg: pk_val}),
+                   'display': val}
+
+FilterSpec.register(lambda f: bool(f.rel), RelatedFilterSpec)
+
+class ChoicesFilterSpec(FilterSpec):
+    def __init__(self, f, request, params, model, model_admin):
+        super(ChoicesFilterSpec, self).__init__(f, request, params, model, model_admin)
+        self.lookup_kwarg = '%s__exact' % f.name
+        self.lookup_val = request.GET.get(self.lookup_kwarg, None)
+
+    def choices(self, cl):
+        yield {'selected': self.lookup_val is None,
+               'query_string': cl.get_query_string({}, [self.lookup_kwarg]),
+               'display': _('All')}
+        for k, v in self.field.choices:
+            yield {'selected': smart_unicode(k) == self.lookup_val,
+                    'query_string': cl.get_query_string({self.lookup_kwarg: k}),
+                    'display': v}
+
+FilterSpec.register(lambda f: bool(f.choices), ChoicesFilterSpec)
+
+class DateFieldFilterSpec(FilterSpec):
+    def __init__(self, f, request, params, model, model_admin):
+        super(DateFieldFilterSpec, self).__init__(f, request, params, model, model_admin)
+
+        self.field_generic = '%s__' % self.field.name
+
+        self.date_params = dict([(k, v) for k, v in params.items() if k.startswith(self.field_generic)])
+
+        today = datetime.date.today()
+        one_week_ago = today - datetime.timedelta(days=7)
+        today_str = isinstance(self.field, models.DateTimeField) and today.strftime('%Y-%m-%d 23:59:59') or today.strftime('%Y-%m-%d')
+
+        self.links = (
+            (_('Any date'), {}),
+            (_('Today'), {'%s__year' % self.field.name: str(today.year),
+                       '%s__month' % self.field.name: str(today.month),
+                       '%s__day' % self.field.name: str(today.day)}),
+            (_('Past 7 days'), {'%s__gte' % self.field.name: one_week_ago.strftime('%Y-%m-%d'),
+                             '%s__lte' % f.name: today_str}),
+            (_('This month'), {'%s__year' % self.field.name: str(today.year),
+                             '%s__month' % f.name: str(today.month)}),
+            (_('This year'), {'%s__year' % self.field.name: str(today.year)})
+        )
+
+    def title(self):
+        return self.field.verbose_name
+
+    def choices(self, cl):
+        for title, param_dict in self.links:
+            yield {'selected': self.date_params == param_dict,
+                   'query_string': cl.get_query_string(param_dict, [self.field_generic]),
+                   'display': title}
+
+FilterSpec.register(lambda f: isinstance(f, models.DateField), DateFieldFilterSpec)
+
+class BooleanFieldFilterSpec(FilterSpec):
+    def __init__(self, f, request, params, model, model_admin):
+        super(BooleanFieldFilterSpec, self).__init__(f, request, params, model, model_admin)
+        self.lookup_kwarg = '%s__exact' % f.name
+        self.lookup_kwarg2 = '%s__isnull' % f.name
+        self.lookup_val = request.GET.get(self.lookup_kwarg, None)
+        self.lookup_val2 = request.GET.get(self.lookup_kwarg2, None)
+
+    def title(self):
+        return self.field.verbose_name
+
+    def choices(self, cl):
+        for k, v in ((_('All'), None), (_('Yes'), '1'), (_('No'), '0')):
+            yield {'selected': self.lookup_val == v and not self.lookup_val2,
+                   'query_string': cl.get_query_string({self.lookup_kwarg: v}, [self.lookup_kwarg2]),
+                   'display': k}
+        if isinstance(self.field, models.NullBooleanField):
+            yield {'selected': self.lookup_val2 == 'True',
+                   'query_string': cl.get_query_string({self.lookup_kwarg2: 'True'}, [self.lookup_kwarg]),
+                   'display': _('Unknown')}
+
+FilterSpec.register(lambda f: isinstance(f, models.BooleanField) or isinstance(f, models.NullBooleanField), BooleanFieldFilterSpec)
+
+# This should be registered last, because it's a last resort. For example,
+# if a field is eligible to use the BooleanFieldFilterSpec, that'd be much
+# more appropriate, and the AllValuesFilterSpec won't get used for it.
+class AllValuesFilterSpec(FilterSpec):
+    def __init__(self, f, request, params, model, model_admin):
+        super(AllValuesFilterSpec, self).__init__(f, request, params, model, model_admin)
+        self.lookup_val = request.GET.get(f.name, None)
+        self.lookup_choices = model_admin.queryset(request).distinct().order_by(f.name).values(f.name)
+
+    def title(self):
+        return self.field.verbose_name
+
+    def choices(self, cl):
+        yield {'selected': self.lookup_val is None,
+               'query_string': cl.get_query_string({}, [self.field.name]),
+               'display': _('All')}
+        for val in self.lookup_choices:
+            val = smart_unicode(val[self.field.name])
+            yield {'selected': self.lookup_val == val,
+                   'query_string': cl.get_query_string({self.field.name: val}),
+                   'display': val}
+FilterSpec.register(lambda f: True, AllValuesFilterSpec)
diff --git a/webapp/django/contrib/admin/helpers.py b/webapp/django/contrib/admin/helpers.py
new file mode 100644
index 0000000..ba49f8b
--- /dev/null
+++ b/webapp/django/contrib/admin/helpers.py
@@ -0,0 +1,141 @@
+
+from django import forms
+from django.conf import settings
+from django.utils.html import escape
+from django.utils.safestring import mark_safe
+from django.utils.encoding import force_unicode
+from django.contrib.admin.util import flatten_fieldsets
+
+class AdminForm(object):
+    def __init__(self, form, fieldsets, prepopulated_fields):
+        self.form, self.fieldsets = form, fieldsets
+        self.prepopulated_fields = [{
+            'field': form[field_name],
+            'dependencies': [form[f] for f in dependencies]
+        } for field_name, dependencies in prepopulated_fields.items()]
+
+    def __iter__(self):
+        for name, options in self.fieldsets:
+            yield Fieldset(self.form, name, **options)
+
+    def first_field(self):
+        for bf in self.form:
+            return bf
+
+    def _media(self):
+        media = self.form.media
+        for fs in self:
+            media = media + fs.media
+        return media
+    media = property(_media)
+
+class Fieldset(object):
+    def __init__(self, form, name=None, fields=(), classes=(), description=None):
+        self.form = form
+        self.name, self.fields = name, fields
+        self.classes = u' '.join(classes)
+        self.description = description
+
+    def _media(self):
+        if 'collapse' in self.classes:
+            return forms.Media(js=['%sjs/admin/CollapsedFieldsets.js' % settings.ADMIN_MEDIA_PREFIX])
+        return forms.Media()
+    media = property(_media)
+
+    def __iter__(self):
+        for field in self.fields:
+            yield Fieldline(self.form, field)
+
+class Fieldline(object):
+    def __init__(self, form, field):
+        self.form = form # A django.forms.Form instance
+        if isinstance(field, basestring):
+            self.fields = [field]
+        else:
+            self.fields = field
+
+    def __iter__(self):
+        for i, field in enumerate(self.fields):
+            yield AdminField(self.form, field, is_first=(i == 0))
+
+    def errors(self):
+        return mark_safe(u'\n'.join([self.form[f].errors.as_ul() for f in self.fields]).strip('\n'))
+
+class AdminField(object):
+    def __init__(self, form, field, is_first):
+        self.field = form[field] # A django.forms.BoundField instance
+        self.is_first = is_first # Whether this field is first on the line
+        self.is_checkbox = isinstance(self.field.field.widget, forms.CheckboxInput)
+
+    def label_tag(self):
+        classes = []
+        if self.is_checkbox:
+            classes.append(u'vCheckboxLabel')
+            contents = force_unicode(escape(self.field.label))
+        else:
+            contents = force_unicode(escape(self.field.label)) + u':'
+        if self.field.field.required:
+            classes.append(u'required')
+        if not self.is_first:
+            classes.append(u'inline')
+        attrs = classes and {'class': u' '.join(classes)} or {}
+        return self.field.label_tag(contents=contents, attrs=attrs)
+
+class InlineAdminFormSet(object):
+    """
+    A wrapper around an inline formset for use in the admin system.
+    """
+    def __init__(self, inline, formset, fieldsets):
+        self.opts = inline
+        self.formset = formset
+        self.fieldsets = fieldsets
+
+    def __iter__(self):
+        for form, original in zip(self.formset.initial_forms, self.formset.get_queryset()):
+            yield InlineAdminForm(self.formset, form, self.fieldsets, self.opts.prepopulated_fields, original)
+        for form in self.formset.extra_forms:
+            yield InlineAdminForm(self.formset, form, self.fieldsets, self.opts.prepopulated_fields, None)
+
+    def fields(self):
+        for field_name in flatten_fieldsets(self.fieldsets):
+            yield self.formset.form.base_fields[field_name]
+
+    def _media(self):
+        media = self.opts.media + self.formset.media
+        for fs in self:
+            media = media + fs.media
+        return media
+    media = property(_media)
+
+class InlineAdminForm(AdminForm):
+    """
+    A wrapper around an inline form for use in the admin system.
+    """
+    def __init__(self, formset, form, fieldsets, prepopulated_fields, original):
+        self.formset = formset
+        self.original = original
+        self.show_url = original and hasattr(original, 'get_absolute_url')
+        super(InlineAdminForm, self).__init__(form, fieldsets, prepopulated_fields)
+
+    def pk_field(self):
+        return AdminField(self.form, self.formset._pk_field_name, False)
+
+    def deletion_field(self):
+        from django.forms.formsets import DELETION_FIELD_NAME
+        return AdminField(self.form, DELETION_FIELD_NAME, False)
+
+    def ordering_field(self):
+        from django.forms.formsets import ORDERING_FIELD_NAME
+        return AdminField(self.form, ORDERING_FIELD_NAME, False)
+
+class AdminErrorList(forms.util.ErrorList):
+    """
+    Stores all errors for the form/formsets in an add/change stage view.
+    """
+    def __init__(self, form, inline_formsets):
+        if form.is_bound:
+            self.extend(form.errors.values())
+            for inline_formset in inline_formsets:
+                self.extend(inline_formset.non_form_errors())
+                for errors_in_inline_form in inline_formset.errors:
+                    self.extend(errors_in_inline_form.values())
diff --git a/webapp/django/contrib/admin/media/css/base.css b/webapp/django/contrib/admin/media/css/base.css
new file mode 100644
index 0000000..9760d67
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/base.css
@@ -0,0 +1,14 @@
+/*
+    DJANGO Admin
+    by Wilson Miner wilson@lawrence.com
+*/
+
+/* Block IE 5 */
+@import "null.css?\"\{";
+
+/* Import other styles */
+@import url('global.css');
+@import url('layout.css');
+
+/* Import patch for IE 6 Windows */
+/*\*/ @import "patch-iewin.css"; /**/
diff --git a/webapp/django/contrib/admin/media/css/changelists.css b/webapp/django/contrib/admin/media/css/changelists.css
new file mode 100644
index 0000000..4834be4
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/changelists.css
@@ -0,0 +1,50 @@
+@import url('base.css');
+
+/* CHANGELISTS */
+#changelist { position:relative; width:100%; }
+#changelist table { width:100%; }
+.change-list .filtered table { border-right:1px solid #ddd;  }
+.change-list .filtered { min-height:400px; }
+.change-list .filtered { background:white url(../img/admin/changelist-bg.gif) top right repeat-y !important; }
+.change-list .filtered table, .change-list .filtered .paginator, .filtered #toolbar, .filtered div.xfull { margin-right:160px !important; width:auto !important; }
+.change-list .filtered table tbody th { padding-right:1em; }
+#changelist .toplinks { border-bottom:1px solid #ccc !important; }
+#changelist .paginator { color:#666; border-top:1px solid #eee; border-bottom:1px solid #eee; background:white url(../img/admin/nav-bg.gif) 0 180% repeat-x; overflow:hidden; }
+.change-list .filtered .paginator { border-right:1px solid #ddd; }
+
+/*  CHANGELIST TABLES  */
+#changelist table thead th { white-space:nowrap; }
+#changelist table tbody td { border-left: 1px solid #ddd; }
+#changelist table tfoot { color: #666; }
+
+/*  TOOLBAR  */
+#changelist #toolbar { padding:3px; border-bottom:1px solid #ddd; background:#e1e1e1 url(../img/admin/nav-bg.gif) top left repeat-x; color:#666; }
+#changelist #toolbar form input { font-size:11px; padding:1px 2px; }
+#changelist #toolbar form #searchbar { padding:2px; }
+#changelist #changelist-search img { vertical-align:middle; }
+
+/*  FILTER COLUMN  */
+#changelist-filter { position:absolute; top:0; right:0; z-index:1000; width:160px; border-left:1px solid #ddd; background:#efefef; margin:0; }
+#changelist-filter h2 { font-size:11px; padding:2px 5px; border-bottom:1px solid #ddd; }
+#changelist-filter h3 { font-size:12px; margin-bottom:0; }
+#changelist-filter ul { padding-left:0;margin-left:10px; }
+#changelist-filter li { list-style-type:none; margin-left:0; padding-left:0; }
+#changelist-filter a { color:#999; }
+#changelist-filter a:hover { color:#036; }
+#changelist-filter li.selected { border-left:5px solid #ccc; padding-left:5px;margin-left:-10px; }
+#changelist-filter li.selected a { color:#5b80b2 !important; }
+
+/*  DATE DRILLDOWN  */
+.change-list ul.toplinks { display:block; background:white url(../img/admin/nav-bg-reverse.gif) 0 -10px repeat-x; border-top:1px solid white; float:left;  padding:0 !important;  margin:0 !important; width:100%; }
+.change-list ul.toplinks li { float: left; width: 9em; padding:3px 6px; font-weight: bold; list-style-type:none; }
+.change-list ul.toplinks .date-back a { color:#999; }
+.change-list ul.toplinks .date-back a:hover { color:#036; }
+
+/* PAGINATOR */
+.paginator { font-size:11px; padding-top:10px; padding-bottom:10px; line-height:22px; margin:0; border-top:1px solid #ddd; }
+.paginator a:link, .paginator a:visited { padding:2px 6px; border:solid 1px #ccc; background:white; text-decoration:none; }
+.paginator a.showall { padding:0 !important; border:none !important; }
+.paginator a.showall:hover { color:#036 !important; background:transparent !important; }
+.paginator .end { border-width:2px !important; margin-right:6px; }
+.paginator .this-page { padding:2px 6px; font-weight:bold; font-size:13px; vertical-align:top; }
+.paginator a:hover { color:white; background:#5b80b2; border-color:#036; }
diff --git a/webapp/django/contrib/admin/media/css/dashboard.css b/webapp/django/contrib/admin/media/css/dashboard.css
new file mode 100644
index 0000000..d277973
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/dashboard.css
@@ -0,0 +1,10 @@
+@import url('base.css');
+
+/* DASHBOARD */
+.dashboard .module table th { width:100%; }
+.dashboard .module table td { white-space:nowrap; }
+.dashboard .module table td a { display:block; padding-right:.6em; }
+
+/*  RECENT ACTIONS MODULE  */
+.module ul.actionlist { margin-left:0; }
+ul.actionlist li { list-style-type:none; }
\ No newline at end of file
diff --git a/webapp/django/contrib/admin/media/css/forms.css b/webapp/django/contrib/admin/media/css/forms.css
new file mode 100644
index 0000000..234a21b
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/forms.css
@@ -0,0 +1,83 @@
+@import url('base.css');
+@import url('widgets.css');
+
+/* FORM ROWS */
+.form-row { overflow:hidden; padding:8px 12px; font-size:11px; border-bottom:1px solid #eee; }
+.form-row img, .form-row input { vertical-align:middle; }
+form .form-row p { padding-left:0; font-size:11px; }
+
+/* FORM LABELS */
+form h4 { margin:0 !important; padding:0 !important; border:none !important; }
+label { font-weight:normal !important; color:#666; font-size:12px; }
+label.inline { margin-left:20px; }
+.required label, label.required { font-weight:bold !important; color:#333 !important; }
+
+/* RADIO BUTTONS */
+form ul.radiolist li { list-style-type:none; }
+form ul.radiolist label { float:none; display:inline; }
+form ul.inline { margin-left:0; padding:0; }
+form ul.inline li { float:left; padding-right:7px; }
+
+/* ALIGNED FIELDSETS */
+.aligned label { display:block; padding:0 1em 3px 0; float:left; width:8em; }
+.aligned label.inline { display:inline; float:none; }
+.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { width:350px; }
+form .aligned p, form .aligned ul { margin-left:7em; padding-left:30px; }
+form .aligned table p { margin-left:0; padding-left:0; }
+form .aligned p.help { padding-left:38px; }
+.aligned .vCheckboxLabel { float:none !important; display:inline; padding-left:4px; }
+.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField { width:610px; }
+.checkbox-row p.help { margin-left:0; padding-left:0 !important; }
+
+/* WIDE FIELDSETS */
+.wide label { width:15em !important; }
+form .wide p { margin-left:15em; }
+form .wide p.help { padding-left:38px; }
+.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField { width:450px; }
+
+/* COLLAPSED FIELDSETS */
+fieldset.collapsed * { display:none; }
+fieldset.collapsed h2, fieldset.collapsed { display:block !important; }
+fieldset.collapsed h2 { background-image:url(../img/admin/nav-bg.gif); background-position:bottom left; color:#999; }
+fieldset.collapsed .collapse-toggle { padding:3px 5px !important; background:transparent; display:inline !important;}
+
+/* MONOSPACE TEXTAREAS */
+fieldset.monospace textarea { font-family:"Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace; }
+
+/* SUBMIT ROW */
+.submit-row { padding:5px 7px; text-align:right; background:white url(../img/admin/nav-bg.gif) 0 100% repeat-x; border:1px solid #ccc; margin:5px 0; }
+.submit-row input { margin:0 0 0 5px; }
+.submit-row p { margin-top:0.3em; }
+.submit-row .deletelink { background:url(../img/admin/icon_deletelink.gif) 0 50% no-repeat; padding-left:14px; }
+
+/* CUSTOM FORM FIELDS */
+.vSelectMultipleField { vertical-align:top !important; }
+.vCheckboxField { border:none; }
+.vDateField, .vTimeField { margin-right:2px; }
+.vURLField { width:30em; }
+.vLargeTextField, .vXMLLargeTextField { width:48em; }
+.flatpages-flatpage #id_content { height:40.2em; }
+.module table .vPositiveSmallIntegerField { width:2.2em; }
+.vTextField { width:20em; }
+.vIntegerField { width:5em; }
+
+/* x unsorted */
+.inline-group {padding:0; border:1px solid #ccc; margin:10px 0;}
+.inline-group .aligned label { width: 7em; }
+
+.inline-related {position:relative;}
+.inline-related h3 {margin: 0; color:#666; padding:3px 5px; font-size:11px; background:#e1e1e1 url(../img/admin/nav-bg.gif) top left repeat-x; border-bottom:1px solid #ddd;}
+.inline-related h3 span.delete {padding-left:20px; position:absolute; top:2px; right:10px;}
+.inline-related h3 span.delete label {margin-left:2px; font-size: 11px;}
+.inline-related fieldset {margin: 0; background:#fff; border: none; }
+.inline-related fieldset.module h3 { margin:0; padding:2px 5px 3px 5px; font-size:11px; text-align:left; font-weight:bold; background:#bcd; color:#fff; }
+.inline-related.tabular fieldset.module table {width:100%;}
+.last-related fieldset {border: none;}
+
+.inline-group .tabular tr.has_original td {padding-top:2em;}
+.inline-group .tabular tr td.original { padding:2px 0 0 0; width:0; _position:relative; }
+.inline-group .tabular th.original {width:0px; padding:0;}
+.inline-group .tabular td.original p {position:absolute; left:0; height:1.1em; padding:2px 7px; overflow:hidden; font-size:9px; font-weight:bold; color:#666; _width:700px;     }
+.inline-group ul.tools {padding:0; margin: 0; list-style:none;}
+.inline-group ul.tools li {display:inline; padding:0 5px;}
+.inline-group ul.tools a.add {background:url(../img/admin/icon_addlink.gif) 0 50% no-repeat; padding-left:14px;}
\ No newline at end of file
diff --git a/webapp/django/contrib/admin/media/css/global.css b/webapp/django/contrib/admin/media/css/global.css
new file mode 100644
index 0000000..fc2ab73
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/global.css
@@ -0,0 +1,142 @@
+body { margin:0; padding:0; font-size:12px; font-family:"Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif; color:#333; background:#fff; }
+
+/* LINKS */
+a:link, a:visited { color: #5b80b2; text-decoration:none; }
+a:hover { color: #036; }
+a img { border:none; }
+a.section:link, a.section:visited { color: white; text-decoration:none; }
+
+/* GLOBAL DEFAULTS */
+p, ol, ul, dl { margin:.2em 0 .8em 0; }
+p { padding:0; line-height:140%; }
+
+h1,h2,h3,h4,h5 { font-weight:bold; }
+h1 { font-size:18px; color:#666; padding:0 6px 0 0; margin:0 0 .2em 0; }
+h2 { font-size:16px; margin:1em 0 .5em 0; }
+h2.subhead { font-weight:normal;margin-top:0; }
+h3 { font-size:14px; margin:.8em 0 .3em 0; color:#666; font-weight:bold; }
+h4 { font-size:12px; margin:1em 0 .8em 0; padding-bottom:3px; }
+h5 { font-size:10px; margin:1.5em 0 .5em 0; color:#666; text-transform:uppercase; letter-spacing:1px; }
+
+ul li { list-style-type:square; padding:1px 0; }
+ul.plainlist { margin-left:0 !important; }
+ul.plainlist li { list-style-type:none; }
+li ul { margin-bottom:0; }
+li, dt, dd { font-size:11px; line-height:14px; }
+dt { font-weight:bold; margin-top:4px; }
+dd { margin-left:0; }
+
+form { margin:0; padding:0; }
+fieldset { margin:0; padding:0; }
+
+blockquote { font-size:11px; color:#777; margin-left:2px; padding-left:10px; border-left:5px solid #ddd; }
+code, pre { font-family:"Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; background:inherit; color:#666; font-size:11px; }
+pre.literal-block { margin:10px; background:#eee; padding:6px 8px; }
+code strong { color:#930; }
+hr { clear:both; color:#eee; background-color:#eee; height:1px; border:none; margin:0; padding:0; font-size:1px; line-height:1px; }
+
+/* TEXT STYLES & MODIFIERS */
+.small { font-size:11px; }
+.tiny { font-size:10px; }
+p.tiny { margin-top:-2px; }
+.mini { font-size:9px; }
+p.mini { margin-top:-3px; }
+.help, p.help { font-size:10px !important; color:#999; }
+p img, h1 img, h2 img, h3 img, h4 img, td img { vertical-align:middle; }
+.quiet, a.quiet:link, a.quiet:visited { color:#999 !important;font-weight:normal !important; }
+.quiet strong { font-weight:bold !important; }
+.float-right { float:right; }
+.float-left { float:left; }
+.clear { clear:both; }
+.align-left { text-align:left; }
+.align-right { text-align:right; }
+.example { margin:10px 0; padding:5px 10px; background:#efefef; }
+.nowrap { white-space:nowrap; }
+
+/* TABLES */
+table { border-collapse:collapse; border-color:#ccc; }
+td, th { font-size:11px; line-height:13px; border-bottom:1px solid #eee; vertical-align:top; padding:5px; font-family:"Lucida Grande", Verdana, Arial, sans-serif; }
+th { text-align:left; font-size:12px; font-weight:bold; }
+thead th, 
+tfoot td { color:#666; padding:2px 5px; font-size:11px; background:#e1e1e1 url(../img/admin/nav-bg.gif) top left repeat-x; border-left:1px solid #ddd; border-bottom:1px solid #ddd; }
+tfoot td { border-bottom:none; border-top:1px solid #ddd; }
+thead th:first-child, 
+tfoot td:first-child { border-left:none !important; }
+thead th.optional { font-weight:normal !important; }
+fieldset table { border-right:1px solid #eee; }
+tr.row-label td { font-size:9px; padding-top:2px; padding-bottom:0; border-bottom:none; color:#666; margin-top:-1px; }
+tr.alt { background:#f6f6f6; }
+.row1 { background:#EDF3FE; }
+.row2 { background:white; }
+
+/* SORTABLE TABLES */
+thead th a:link, thead th a:visited { color:#666; display:block; }
+table thead th.sorted { background-position:bottom left !important; }
+table thead th.sorted a { padding-right:13px; }
+table thead th.ascending a { background:url(../img/admin/arrow-down.gif) right .4em no-repeat; }
+table thead th.descending a { background:url(../img/admin/arrow-up.gif) right .4em no-repeat; }
+
+/* ORDERABLE TABLES */
+table.orderable tbody tr td:hover { cursor:move; }
+table.orderable tbody tr td:first-child { padding-left:14px; background-image:url(../img/admin/nav-bg-grabber.gif); background-repeat:repeat-y; }
+table.orderable-initalized .order-cell, body>tr>td.order-cell { display:none; }
+
+/* FORM DEFAULTS */
+input, textarea, select { margin:2px 0; padding:2px 3px; vertical-align:middle; font-family:"Lucida Grande", Verdana, Arial, sans-serif; font-weight:normal; font-size:11px; }
+textarea { vertical-align:top !important; }
+input[type=text], input[type=password], textarea, select, .vTextField { border:1px solid #ccc; }
+
+/*  FORM BUTTONS  */
+input[type=submit], input[type=button], .submit-row input { background:white url(../img/admin/nav-bg.gif) bottom repeat-x; padding:3px; color:black; border:1px solid #bbb; border-color:#ddd #aaa #aaa #ddd; }
+input[type=submit]:active, input[type=button]:active { background-image:url(../img/admin/nav-bg-reverse.gif); background-position:top; }
+input[type=submit].default, .submit-row input.default { border:2px solid #5b80b2; background:#7CA0C7 url(../img/admin/default-bg.gif) bottom repeat-x; font-weight:bold; color:white; float:right; }
+input[type=submit].default:active { background-image:url(../img/admin/default-bg-reverse.gif); background-position:top; }
+
+/* MODULES */
+.module { border:1px solid #ccc; margin-bottom:5px; background:white; }
+.module p, .module ul, .module h3, .module h4, .module dl, .module pre { padding-left:10px; padding-right:10px; }
+.module blockquote { margin-left:12px; }
+.module ul, .module ol { margin-left:1.5em; }
+.module h3 { margin-top:.6em; }
+.module h2, .module caption, .inline-group h2 { margin:0; padding:2px 5px 3px 5px; font-size:11px; text-align:left; font-weight:bold; background:#7CA0C7 url(../img/admin/default-bg.gif) top left repeat-x; color:white; }
+.module table { border-collapse: collapse; }
+
+/* MESSAGES & ERRORS */
+ul.messagelist { padding:0 0 5px 0; margin:0; }
+ul.messagelist li { font-size:12px; display:block; padding:4px 5px 4px 25px; margin:0 0 3px 0; border-bottom:1px solid #ddd; color:#666; background:#ffc url(../img/admin/icon_success.gif) 5px .3em no-repeat; }
+.errornote { font-size:12px !important; display:block; padding:4px 5px 4px 25px; margin:0 0 3px 0; border:1px solid red; color:red;background:#ffc url(../img/admin/icon_error.gif) 5px .3em no-repeat; }
+ul.errorlist { margin:0 !important; padding:0 !important; }
+.errorlist li { font-size:12px !important; display:block; padding:4px 5px 4px 25px; margin:0 0 3px 0; border:1px solid red; color:white; background:red url(../img/admin/icon_alert.gif) 5px .3em no-repeat; }
+td ul.errorlist { margin:0 !important; padding:0 !important; }
+td ul.errorlist li { margin:0 !important; }
+.error { background:#ffc; }
+.error input, .error select { border:1px solid red; }
+div.system-message { background: #ffc; margin: 10px; padding: 6px 8px; font-size: .8em; }
+div.system-message p.system-message-title { padding:4px 5px 4px 25px; margin:0; color:red; background:#ffc url(../img/admin/icon_error.gif) 5px .3em no-repeat; }
+.description { font-size:12px; padding:5px 0 0 12px; }
+
+/* BREADCRUMBS */
+div.breadcrumbs { background:white url(../img/admin/nav-bg-reverse.gif) 0 -10px repeat-x; padding:2px 8px 3px 8px; font-size:11px;  color:#999;  border-top:1px solid white; border-bottom:1px solid #ccc; text-align:left; }
+
+/* ACTION ICONS */
+.addlink { padding-left:12px; background:url(../img/admin/icon_addlink.gif) 0 .2em no-repeat; }
+.changelink { padding-left:12px; background:url(../img/admin/icon_changelink.gif) 0 .2em no-repeat; }
+.deletelink { padding-left:12px; background:url(../img/admin/icon_deletelink.gif) 0 .25em no-repeat; }
+a.deletelink:link, a.deletelink:visited { color:#CC3434; }
+a.deletelink:hover { color:#993333; }
+
+/* OBJECT TOOLS */
+.object-tools { font-size:10px; font-weight:bold; font-family:Arial,Helvetica,sans-serif; padding-left:0; float:right; position:relative; margin-top:-2.4em; margin-bottom:-2em; }
+.form-row .object-tools { margin-top:5px; margin-bottom:5px; float:none; height:2em; padding-left:3.5em; }
+.object-tools li { display:block; float:left; background:url(../img/admin/tool-left.gif) 0 0 no-repeat; padding:0 0 0 8px; margin-left:2px; height:16px; }
+.object-tools li:hover { background:url(../img/admin/tool-left_over.gif) 0 0 no-repeat; }
+.object-tools a:link, .object-tools a:visited { display:block; float:left; color:white; padding:.1em 14px .1em 8px; height:14px; background:#999 url(../img/admin/tool-right.gif) 100% 0 no-repeat; }
+.object-tools a:hover, .object-tools li:hover a { background:#5b80b2 url(../img/admin/tool-right_over.gif) 100% 0 no-repeat; }
+.object-tools a.viewsitelink, .object-tools a.golink { background:#999 url(../img/admin/tooltag-arrowright.gif) top right no-repeat; padding-right:28px; }
+.object-tools a.viewsitelink:hover, .object-tools a.golink:hover { background:#5b80b2 url(../img/admin/tooltag-arrowright_over.gif) top right no-repeat; }
+.object-tools a.addlink { background:#999 url(../img/admin/tooltag-add.gif) top right no-repeat; padding-right:28px; }
+.object-tools a.addlink:hover { background:#5b80b2 url(../img/admin/tooltag-add_over.gif) top right no-repeat; }
+
+/* OBJECT HISTORY */
+table#change-history { width:100%; }
+table#change-history tbody th { width:16em; }
diff --git a/webapp/django/contrib/admin/media/css/layout.css b/webapp/django/contrib/admin/media/css/layout.css
new file mode 100644
index 0000000..17c5286
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/layout.css
@@ -0,0 +1,29 @@
+/* PAGE STRUCTURE */
+#container { position:relative; width:100%; min-width:760px; padding:0; }
+#content { margin:10px 15px; }
+#header { width:100%; }
+#content-main { float:left; width:100%; }
+#content-related { float:right; width:18em; position:relative; margin-right:-19em; }
+#footer { clear:both; padding:10px; }
+
+/*  COLUMN TYPES  */
+.colMS { margin-right:20em !important; }
+.colSM { margin-left:20em !important; }
+.colSM #content-related { float:left; margin-right:0; margin-left:-19em; }
+.colSM #content-main { float:right; }
+.popup .colM { width:95%; }
+.subcol { float:left; width:46%; margin-right:15px; }
+.dashboard #content { width:500px; }
+
+/*  HEADER  */
+#header { background:#417690; color:#ffc; overflow:hidden; }
+#header a:link, #header a:visited { color:white; }
+#header a:hover { text-decoration:underline; }
+#branding h1 { padding:0 10px; font-size:18px; margin:8px 0; font-weight:normal; color:#f4f379; }
+#branding h2 { padding:0 10px; font-size:14px; margin:-8px 0 8px 0; font-weight:normal; color:#ffc; }
+#user-tools { position:absolute; top:0; right:0; padding:1.2em 10px; font-size:11px; text-align:right; }
+
+/* SIDEBAR */
+#content-related h3 { font-size:12px; color:#666; margin-bottom:3px; }
+#content-related h4 { font-size:11px; }
+#content-related .module h2 { background:#eee url(../img/admin/nav-bg.gif) bottom left repeat-x; color:#666; }
\ No newline at end of file
diff --git a/webapp/django/contrib/admin/media/css/login.css b/webapp/django/contrib/admin/media/css/login.css
new file mode 100644
index 0000000..f904957
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/login.css
@@ -0,0 +1,13 @@
+@import url('base.css');
+@import url('layout.css');
+
+/* LOGIN FORM */
+body.login { background:#eee; }
+.login #container { background:white; border:1px solid #ccc; width:28em; min-width:300px; margin-left:auto; margin-right:auto; margin-top:100px; }
+.login #content-main { width:100%; }
+.login form { margin-top:1em; }
+.login .form-row { padding:4px 0; float:left; width:100%; }
+.login .form-row label { float:left; width:9em; padding-right:0.5em; line-height:2em; text-align:right; font-size:1em; color:#333; }
+.login .form-row #id_username, .login .form-row #id_password { width:14em; }
+.login span.help { font-size:10px; display:block; }
+.login .submit-row { clear:both; padding:1em 0 0 9.4em; }
\ No newline at end of file
diff --git a/webapp/django/contrib/admin/media/css/null.css b/webapp/django/contrib/admin/media/css/null.css
new file mode 100644
index 0000000..1a93f22
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/null.css
@@ -0,0 +1 @@
+/* Nothing to see here. Dummy file to feed to the high pass filter which hides CSS from IE5/win. Details: http://tantek.com/CSS/Examples/highpass.html */
\ No newline at end of file
diff --git a/webapp/django/contrib/admin/media/css/patch-iewin.css b/webapp/django/contrib/admin/media/css/patch-iewin.css
new file mode 100644
index 0000000..2de1305
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/patch-iewin.css
@@ -0,0 +1,8 @@
+* html #container { position:static; } /* keep header from flowing off the page */
+* html .colMS #content-related { margin-right:0; margin-left:10px; position:static; } /* put the right sidebars back on the page */
+* html .colSM #content-related { margin-right:10px; margin-left:-115px; position:static; } /* put the left sidebars back on the page */
+* html .form-row { height:1%; }
+* html .dashboard #content { width:768px; } /* proper fixed width for dashboard in IE6 */
+* html .dashboard #content-main { width:535px; } /* proper fixed width for dashboard in IE6 */
+* html #changelist-filter ul { margin-right:-10px; } /* fix right margin for changelist filters in IE6 */
+* html .change-list .filtered { height:400px; } /* IE ignores min-height, but treats height as if it were min-height */
\ No newline at end of file
diff --git a/webapp/django/contrib/admin/media/css/rtl.css b/webapp/django/contrib/admin/media/css/rtl.css
new file mode 100644
index 0000000..900ddbd
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/rtl.css
@@ -0,0 +1,51 @@
+body { direction: rtl; }
+
+/* login styles */
+
+.login .form-row { float:right; }
+.login .form-row label { float:right; padding-left:0.5em; padding-right:0; text-align:left;}
+.login .submit-row { clear:both; padding:1em 9.4em 0 0; }
+
+
+/* global styles */
+th { text-align: right; }
+.module h2, .module caption { text-align: right; }
+.addlink, .changelink { padding-left:0px; padding-right:12px; background-position:100% 0.2em; }
+.deletelink { padding-left:0px; padding-right:12px; background-position:100% 0.25em; }
+.object-tools { float:left; }
+
+
+/* layout styles */
+#user-tools { right:auto; left:0; text-align:left; }
+div.breadcrumbs { text-align:right; }
+#content-main { float:right;}
+#content-related { float:left; margin-left:-19em; margin-right:auto;}
+.colMS { margin-left:20em !important; margin-right:10px !important;}
+
+/* dashboard styles */
+.dashboard .module table td a { padding-left:.6em; padding-right:12px; }
+
+/* changelists styles */
+.change-list .filtered { background:white url(../img/admin/changelist-bg_rtl.gif) top left repeat-y !important; }
+.change-list .filtered table { border-left:1px solid #ddd; border-right:0px none; }
+#changelist-filter { right:auto; left:0; border-left:0px none; border-right:1px solid #ddd;}
+.change-list .filtered table, .change-list .filtered .paginator, .filtered #toolbar, .filtered div.xfull { margin-right:0px !important; margin-left:160px !important; }
+#changelist-filter li.selected { border-left:0px none; padding-left:0px; margin-left:0; border-right:5px solid #ccc; padding-right:5px;margin-right:-10px; }
+
+/* form styles */
+.aligned label { padding:0 0 3px 1em;  float:right; }
+.submit-row { text-align: left }
+.vDateField, .vTimeField { margin-left:2px; }
+form ul.inline li { float:right; padding-right:0; padding-left:7px; }
+input[type=submit].default, .submit-row input.default { float:left; }
+
+/* widget styles */
+.calendarnav-previous { top:0; left:auto; right:0; }
+.calendarnav-next { top:0; right:auto; left:0;}
+.calendar caption, .calendarbox h2 { text-align:center; }
+
+.selector { float: right;}
+.selector .selector-filter { text-align: right;}
+
+/* x unsorted */
+.inline-related h2 { text-align:right }
diff --git a/webapp/django/contrib/admin/media/css/widgets.css b/webapp/django/contrib/admin/media/css/widgets.css
new file mode 100644
index 0000000..67d9662
--- /dev/null
+++ b/webapp/django/contrib/admin/media/css/widgets.css
@@ -0,0 +1,101 @@
+/* SELECTOR (FILTER INTERFACE) */
+.selector { width:580px; float:left; }
+.selector select { width:270px; height:17.2em; }
+.selector-available, .selector-chosen { float:left; width:270px; text-align:center; margin-bottom:5px; }
+.selector-available h2, .selector-chosen h2 { border:1px solid #ccc; }
+.selector .selector-available h2 { background:white url(../img/admin/nav-bg.gif) bottom left repeat-x; color:#666; }
+.selector .selector-filter { background:white; border:1px solid #ccc; border-width:0 1px; padding:3px; color:#999; font-size:10px; margin:0; text-align:left; }
+.selector .selector-chosen .selector-filter { padding:4px 5px; }
+.selector .selector-available input { width:230px; }
+.selector ul.selector-chooser { float:left; width:22px; height:50px; background:url(../img/admin/chooser-bg.gif) top center no-repeat; margin:8em 3px 0 3px; padding:0; }
+.selector-chooser li { margin:0; padding:3px; list-style-type:none; }
+.selector select { margin-bottom:5px; margin-top:0; }
+.selector-add, .selector-remove { width:16px; height:16px; display:block; text-indent:-3000px; }
+.selector-add { background:url(../img/admin/selector-add.gif) top center no-repeat; margin-bottom:2px; }
+.selector-remove { background:url(../img/admin/selector-remove.gif) top center no-repeat; }
+a.selector-chooseall, a.selector-clearall { display:block; width:6em; text-align:left; margin-left:auto; margin-right:auto; font-weight:bold; color:#666;  padding:3px 0 3px 18px; }
+a.selector-chooseall:hover, a.selector-clearall:hover { color:#036; }
+a.selector-chooseall { width:7em; background:url(../img/admin/selector-addall.gif) left center no-repeat; }
+a.selector-clearall { background:url(../img/admin/selector-removeall.gif) left center no-repeat; }
+
+/* STACKED SELECTORS */
+.stacked { float:left; width:500px; }
+.stacked select { width:480px; height:10.1em; }
+.stacked .selector-available, .stacked .selector-chosen { width:480px; }
+.stacked .selector-available { margin-bottom:0; }
+.stacked .selector-available input { width:442px; }
+.stacked ul.selector-chooser { height:22px; width:50px; margin:0 0 3px 40%; background:url(../img/admin/chooser_stacked-bg.gif) top center no-repeat; }
+.stacked .selector-chooser li { float:left; padding:3px 3px 3px 5px; }
+.stacked .selector-chooseall, .stacked .selector-clearall { display:none; }
+.stacked .selector-add { background-image:url(../img/admin/selector_stacked-add.gif); }
+.stacked .selector-remove { background-image:url(../img/admin/selector_stacked-remove.gif); }
+
+/* DATE AND TIME */
+p.datetime { line-height:20px; margin:0; padding:0; color:#666; font-size:11px; font-weight:bold; }
+.datetime span { font-size:11px; color:#ccc; font-weight:normal; white-space:nowrap; }
+.vDateField { margin-left:4px; }
+table p.datetime { font-size:10px; margin-left:0; padding-left:0; }
+
+/* FILE UPLOADS */
+p.file-upload { line-height:20px; margin:0; padding:0; color:#666; font-size:11px; font-weight:bold; }
+.file-upload a { font-weight:normal; }
+.file-upload .deletelink { margin-left:5px; }
+
+/* CALENDARS & CLOCKS */
+.calendarbox, .clockbox { margin:5px auto; font-size:11px; width:16em; text-align:center; background:white; position:relative; }
+.clockbox { width:auto; }
+.calendar { margin:0; padding: 0; }
+.calendar table { margin:0; padding:0; border-collapse:collapse; background:white; width:99%; }
+.calendar caption, .calendarbox h2 { margin: 0; font-size:11px; text-align:center; border-top:none; }
+.calendar th { font-size:10px; color:#666; padding:2px 3px; text-align:center; background:#e1e1e1 url(../img/admin/nav-bg.gif) 0 50% repeat-x; border-bottom:1px solid #ddd; }
+.calendar td { font-size:11px; text-align: center; padding: 0; border-top:1px solid #eee; border-bottom:none; }
+.calendar td.selected a { background: #C9DBED; }
+.calendar td.nonday { background:#efefef; }
+.calendar td.today a { background:#ffc; }
+.calendar td a, .timelist a { display: block; font-weight:bold; padding:4px; text-decoration: none; color:#444; }
+.calendar td a:hover, .timelist a:hover { background: #5b80b2; color:white; }
+.calendar td a:active, .timelist a:active { background: #036; color:white; }
+.calendarnav { font-size:10px; text-align: center; color:#ccc; margin:0; padding:1px 3px; }
+.calendarnav a:link, #calendarnav a:visited, #calendarnav a:hover { color: #999; }
+.calendar-shortcuts { background:white; font-size:10px; line-height:11px; border-top:1px solid #eee; padding:3px 0 4px; color:#ccc; }
+.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { display:block; position:absolute; font-weight:bold; font-size:12px; background:#C9DBED url(../img/admin/default-bg.gif) bottom left repeat-x; padding:1px 4px 2px 4px; color:white; }
+.calendarnav-previous:hover, .calendarnav-next:hover { background:#036; }
+.calendarnav-previous { top:0; left:0; }
+.calendarnav-next { top:0; right:0; }
+.calendar-cancel { margin:0 !important; padding:0; font-size:10px; background:#e1e1e1 url(../img/admin/nav-bg.gif) 0 50% repeat-x;  border-top:1px solid #ddd; }
+.calendar-cancel a { padding:2px; color:#999; }
+ul.timelist, .timelist li { list-style-type:none; margin:0; padding:0; }
+.timelist a { padding:2px; }
+
+/* INLINE ORDERER */
+ul.orderer {  position:relative; padding:0 !important; margin:0 !important; list-style-type:none; }
+ul.orderer li { list-style-type:none; display:block; padding:0; margin:0; border:1px solid #bbb; border-width:0 1px 1px 0; white-space:nowrap; overflow:hidden; background:#e2e2e2 url(../img/admin/nav-bg-grabber.gif) repeat-y; }
+ul.orderer li:hover { cursor:move; background-color:#ddd; }
+ul.orderer li a.selector { margin-left:12px; overflow:hidden; width:83%; font-size:10px !important; padding:0.6em 0; }
+ul.orderer li a:link, ul.orderer li a:visited { color:#333; }
+ul.orderer li .inline-deletelink { position:absolute; right:4px; margin-top:0.6em; }
+ul.orderer li.selected { background-color:#f8f8f8; border-right-color:#f8f8f8; }
+ul.orderer li.deleted { background:#bbb url(../img/admin/deleted-overlay.gif); }
+ul.orderer li.deleted a:link, ul.orderer li.deleted a:visited { color:#888; }
+ul.orderer li.deleted .inline-deletelink { background-image:url(../img/admin/inline-restore.png);  }
+ul.orderer li.deleted:hover, ul.orderer li.deleted a.selector:hover { cursor:default; }
+
+/* EDIT INLINE */
+.inline-deletelink { display:block; text-indent:-9999px; background:transparent url(../img/admin/inline-delete.png) no-repeat; width:15px; height:15px; margin:0.4em 0; border: 0px none; }
+.inline-deletelink:hover { background-position:-15px 0; cursor:pointer; }
+.editinline button.addlink { border: 0px none; color: #5b80b2; font-size: 100%; cursor: pointer; }
+.editinline button.addlink:hover { color: #036; cursor: pointer; }
+.editinline table .help { text-align:right; float:right; padding-left:2em; }
+.editinline tfoot .addlink { white-space:nowrap; }
+.editinline table thead th:last-child { border-left:none; }
+.editinline tr.deleted { background:#ddd url(../img/admin/deleted-overlay.gif); }
+.editinline tr.deleted .inline-deletelink { background-image:url(../img/admin/inline-restore.png); }
+.editinline tr.deleted td:hover { cursor:default; }
+.editinline tr.deleted td:first-child { background-image:none !important; }
+
+/* EDIT INLINE - STACKED */
+.editinline-stacked { min-width:758px; }
+.editinline-stacked .inline-object { margin-left:210px; background:white; }
+.editinline-stacked .inline-source { float:left; width:200px; background:#f8f8f8;  }
+.editinline-stacked .inline-splitter { float:left; width:9px; background:#f8f8f8 url(../img/admin/inline-splitter-bg.gif) 50% 50% no-repeat; border-right:1px solid #ccc; }
+.editinline-stacked .controls { clear:both; background:#e1e1e1 url(../img/admin/nav-bg.gif) top left repeat-x; padding:3px 4px; font-size:11px; border-top:1px solid #ddd; }
\ No newline at end of file
diff --git a/webapp/django/contrib/admin/media/img/admin/arrow-down.gif b/webapp/django/contrib/admin/media/img/admin/arrow-down.gif
new file mode 100644
index 0000000..a967b9f
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/arrow-down.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/arrow-up.gif b/webapp/django/contrib/admin/media/img/admin/arrow-up.gif
new file mode 100644
index 0000000..3fe4851
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/arrow-up.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/changelist-bg.gif b/webapp/django/contrib/admin/media/img/admin/changelist-bg.gif
new file mode 100644
index 0000000..7f46994
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/changelist-bg.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/changelist-bg_rtl.gif b/webapp/django/contrib/admin/media/img/admin/changelist-bg_rtl.gif
new file mode 100644
index 0000000..2379712
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/changelist-bg_rtl.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/chooser-bg.gif b/webapp/django/contrib/admin/media/img/admin/chooser-bg.gif
new file mode 100644
index 0000000..30e83c2
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/chooser-bg.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/chooser_stacked-bg.gif b/webapp/django/contrib/admin/media/img/admin/chooser_stacked-bg.gif
new file mode 100644
index 0000000..5d104b6
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/chooser_stacked-bg.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/default-bg-reverse.gif b/webapp/django/contrib/admin/media/img/admin/default-bg-reverse.gif
new file mode 100644
index 0000000..0873281
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/default-bg-reverse.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/default-bg.gif b/webapp/django/contrib/admin/media/img/admin/default-bg.gif
new file mode 100644
index 0000000..003aeca
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/default-bg.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/deleted-overlay.gif b/webapp/django/contrib/admin/media/img/admin/deleted-overlay.gif
new file mode 100644
index 0000000..dc3828f
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/deleted-overlay.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon-no.gif b/webapp/django/contrib/admin/media/img/admin/icon-no.gif
new file mode 100644
index 0000000..1b4ee58
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon-no.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon-unknown.gif b/webapp/django/contrib/admin/media/img/admin/icon-unknown.gif
new file mode 100644
index 0000000..cfd2b02
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon-unknown.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon-yes.gif b/webapp/django/contrib/admin/media/img/admin/icon-yes.gif
new file mode 100644
index 0000000..7399282
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon-yes.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon_addlink.gif b/webapp/django/contrib/admin/media/img/admin/icon_addlink.gif
new file mode 100644
index 0000000..ee70e1a
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon_addlink.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon_alert.gif b/webapp/django/contrib/admin/media/img/admin/icon_alert.gif
new file mode 100644
index 0000000..a1dde26
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon_alert.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon_calendar.gif b/webapp/django/contrib/admin/media/img/admin/icon_calendar.gif
new file mode 100644
index 0000000..7587b30
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon_calendar.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon_changelink.gif b/webapp/django/contrib/admin/media/img/admin/icon_changelink.gif
new file mode 100644
index 0000000..e1b9afd
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon_changelink.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon_clock.gif b/webapp/django/contrib/admin/media/img/admin/icon_clock.gif
new file mode 100644
index 0000000..ff2d57e
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon_clock.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon_deletelink.gif b/webapp/django/contrib/admin/media/img/admin/icon_deletelink.gif
new file mode 100644
index 0000000..72523e3
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon_deletelink.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon_error.gif b/webapp/django/contrib/admin/media/img/admin/icon_error.gif
new file mode 100644
index 0000000..3730a00
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon_error.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon_searchbox.png b/webapp/django/contrib/admin/media/img/admin/icon_searchbox.png
new file mode 100644
index 0000000..8ab579e
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon_searchbox.png
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/icon_success.gif b/webapp/django/contrib/admin/media/img/admin/icon_success.gif
new file mode 100644
index 0000000..5cf90a1
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/icon_success.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/inline-delete-8bit.png b/webapp/django/contrib/admin/media/img/admin/inline-delete-8bit.png
new file mode 100644
index 0000000..95caf59
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/inline-delete-8bit.png
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/inline-delete.png b/webapp/django/contrib/admin/media/img/admin/inline-delete.png
new file mode 100644
index 0000000..d59bcd2
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/inline-delete.png
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/inline-restore-8bit.png b/webapp/django/contrib/admin/media/img/admin/inline-restore-8bit.png
new file mode 100644
index 0000000..e087c8e
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/inline-restore-8bit.png
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/inline-restore.png b/webapp/django/contrib/admin/media/img/admin/inline-restore.png
new file mode 100644
index 0000000..efdd92a
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/inline-restore.png
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/inline-splitter-bg.gif b/webapp/django/contrib/admin/media/img/admin/inline-splitter-bg.gif
new file mode 100644
index 0000000..32ac5b3
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/inline-splitter-bg.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/nav-bg-grabber.gif b/webapp/django/contrib/admin/media/img/admin/nav-bg-grabber.gif
new file mode 100644
index 0000000..0a784fa
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/nav-bg-grabber.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/nav-bg-reverse.gif b/webapp/django/contrib/admin/media/img/admin/nav-bg-reverse.gif
new file mode 100644
index 0000000..f11029f
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/nav-bg-reverse.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/nav-bg.gif b/webapp/django/contrib/admin/media/img/admin/nav-bg.gif
new file mode 100644
index 0000000..f8402b8
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/nav-bg.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/selector-add.gif b/webapp/django/contrib/admin/media/img/admin/selector-add.gif
new file mode 100644
index 0000000..50132d1
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/selector-add.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/selector-addall.gif b/webapp/django/contrib/admin/media/img/admin/selector-addall.gif
new file mode 100644
index 0000000..d6e7c63
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/selector-addall.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/selector-remove.gif b/webapp/django/contrib/admin/media/img/admin/selector-remove.gif
new file mode 100644
index 0000000..2b9b0a2
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/selector-remove.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/selector-removeall.gif b/webapp/django/contrib/admin/media/img/admin/selector-removeall.gif
new file mode 100644
index 0000000..5a44219
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/selector-removeall.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/selector-search.gif b/webapp/django/contrib/admin/media/img/admin/selector-search.gif
new file mode 100644
index 0000000..6d5f4c7
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/selector-search.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/selector_stacked-add.gif b/webapp/django/contrib/admin/media/img/admin/selector_stacked-add.gif
new file mode 100644
index 0000000..7426169
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/selector_stacked-add.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/selector_stacked-remove.gif b/webapp/django/contrib/admin/media/img/admin/selector_stacked-remove.gif
new file mode 100644
index 0000000..60412ce
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/selector_stacked-remove.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/tool-left.gif b/webapp/django/contrib/admin/media/img/admin/tool-left.gif
new file mode 100644
index 0000000..011490f
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/tool-left.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/tool-left_over.gif b/webapp/django/contrib/admin/media/img/admin/tool-left_over.gif
new file mode 100644
index 0000000..937e07b
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/tool-left_over.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/tool-right.gif b/webapp/django/contrib/admin/media/img/admin/tool-right.gif
new file mode 100644
index 0000000..cdc140c
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/tool-right.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/tool-right_over.gif b/webapp/django/contrib/admin/media/img/admin/tool-right_over.gif
new file mode 100644
index 0000000..4db977e
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/tool-right_over.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/tooltag-add.gif b/webapp/django/contrib/admin/media/img/admin/tooltag-add.gif
new file mode 100644
index 0000000..8b53d49
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/tooltag-add.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/tooltag-add_over.gif b/webapp/django/contrib/admin/media/img/admin/tooltag-add_over.gif
new file mode 100644
index 0000000..bfc52f1
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/tooltag-add_over.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/tooltag-arrowright.gif b/webapp/django/contrib/admin/media/img/admin/tooltag-arrowright.gif
new file mode 100644
index 0000000..cdaaae7
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/tooltag-arrowright.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/admin/tooltag-arrowright_over.gif b/webapp/django/contrib/admin/media/img/admin/tooltag-arrowright_over.gif
new file mode 100644
index 0000000..7163189
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/admin/tooltag-arrowright_over.gif
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/gis/move_vertex_off.png b/webapp/django/contrib/admin/media/img/gis/move_vertex_off.png
new file mode 100644
index 0000000..296b2e2
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/gis/move_vertex_off.png
Binary files differ
diff --git a/webapp/django/contrib/admin/media/img/gis/move_vertex_on.png b/webapp/django/contrib/admin/media/img/gis/move_vertex_on.png
new file mode 100644
index 0000000..21f4758
--- /dev/null
+++ b/webapp/django/contrib/admin/media/img/gis/move_vertex_on.png
Binary files differ
diff --git a/webapp/django/contrib/admin/media/js/SelectBox.js b/webapp/django/contrib/admin/media/js/SelectBox.js
new file mode 100644
index 0000000..f28c861
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/SelectBox.js
@@ -0,0 +1,111 @@
+var SelectBox = {
+    cache: new Object(),
+    init: function(id) {
+        var box = document.getElementById(id);
+        var node;
+        SelectBox.cache[id] = new Array();
+        var cache = SelectBox.cache[id];
+        for (var i = 0; (node = box.options[i]); i++) {
+            cache.push({value: node.value, text: node.text, displayed: 1});
+        }
+    },
+    redisplay: function(id) {
+        // Repopulate HTML select box from cache
+        var box = document.getElementById(id);
+        box.options.length = 0; // clear all options
+        for (var i = 0, j = SelectBox.cache[id].length; i < j; i++) {
+            var node = SelectBox.cache[id][i];
+            if (node.displayed) {
+                box.options[box.options.length] = new Option(node.text, node.value, false, false);
+            }
+        }
+    },
+    filter: function(id, text) {
+        // Redisplay the HTML select box, displaying only the choices containing ALL
+        // the words in text. (It's an AND search.)
+        var tokens = text.toLowerCase().split(/\s+/);
+        var node, token;
+        for (var i = 0; (node = SelectBox.cache[id][i]); i++) {
+            node.displayed = 1;
+            for (var j = 0; (token = tokens[j]); j++) {
+                if (node.text.toLowerCase().indexOf(token) == -1) {
+                    node.displayed = 0;
+                }
+            }
+        }
+        SelectBox.redisplay(id);
+    },
+    delete_from_cache: function(id, value) {
+        var node, delete_index = null;
+        for (var i = 0; (node = SelectBox.cache[id][i]); i++) {
+            if (node.value == value) {
+                delete_index = i;
+                break;
+            }
+        }
+        var j = SelectBox.cache[id].length - 1;
+        for (var i = delete_index; i < j; i++) {
+            SelectBox.cache[id][i] = SelectBox.cache[id][i+1];
+        }
+        SelectBox.cache[id].length--;
+    },
+    add_to_cache: function(id, option) {
+        SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1});
+    },
+    cache_contains: function(id, value) {
+        // Check if an item is contained in the cache
+        var node;
+        for (var i = 0; (node = SelectBox.cache[id][i]); i++) {
+            if (node.value == value) {
+                return true;
+            }
+        }
+        return false;
+    },
+    move: function(from, to) {
+        var from_box = document.getElementById(from);
+        var to_box = document.getElementById(to);
+        var option;
+        for (var i = 0; (option = from_box.options[i]); i++) {
+            if (option.selected && SelectBox.cache_contains(from, option.value)) {
+                SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1});
+                SelectBox.delete_from_cache(from, option.value);
+            }
+        }
+        SelectBox.redisplay(from);
+        SelectBox.redisplay(to);
+    },
+    move_all: function(from, to) {
+        var from_box = document.getElementById(from);
+        var to_box = document.getElementById(to);
+        var option;
+        for (var i = 0; (option = from_box.options[i]); i++) {
+            if (SelectBox.cache_contains(from, option.value)) {
+                SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1});
+                SelectBox.delete_from_cache(from, option.value);
+            }
+        }
+        SelectBox.redisplay(from);
+        SelectBox.redisplay(to);
+    },
+    sort: function(id) {
+        SelectBox.cache[id].sort( function(a, b) {
+            a = a.text.toLowerCase();
+            b = b.text.toLowerCase();
+            try {
+                if (a > b) return 1;
+                if (a < b) return -1;
+            }
+            catch (e) {
+                // silently fail on IE 'unknown' exception
+            }
+            return 0;
+        } );
+    },
+    select_all: function(id) {
+        var box = document.getElementById(id);
+        for (var i = 0; i < box.options.length; i++) {
+            box.options[i].selected = 'selected';
+        }
+    }
+}
diff --git a/webapp/django/contrib/admin/media/js/SelectFilter2.js b/webapp/django/contrib/admin/media/js/SelectFilter2.js
new file mode 100644
index 0000000..db946a6
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/SelectFilter2.js
@@ -0,0 +1,113 @@
+/*
+SelectFilter2 - Turns a multiple-select box into a filter interface.
+
+Different than SelectFilter because this is coupled to the admin framework.
+
+Requires core.js, SelectBox.js and addevent.js.
+*/
+
+function findForm(node) {
+    // returns the node of the form containing the given node
+    if (node.tagName.toLowerCase() != 'form') {
+        return findForm(node.parentNode);
+    }
+    return node;
+}
+
+var SelectFilter = {
+    init: function(field_id, field_name, is_stacked, admin_media_prefix) {
+        var from_box = document.getElementById(field_id);
+        from_box.id += '_from'; // change its ID
+        from_box.className = 'filtered';
+
+        // Remove <p class="info">, because it just gets in the way.
+        var ps = from_box.parentNode.getElementsByTagName('p');
+        for (var i=0; i<ps.length; i++) {
+            from_box.parentNode.removeChild(ps[i]);
+        }
+
+        // <div class="selector"> or <div class="selector stacked">
+        var selector_div = quickElement('div', from_box.parentNode);
+        selector_div.className = is_stacked ? 'selector stacked' : 'selector';
+
+        // <div class="selector-available">
+        var selector_available = quickElement('div', selector_div, '');
+        selector_available.className = 'selector-available';
+        quickElement('h2', selector_available, interpolate(gettext('Available %s'), [field_name]));
+        var filter_p = quickElement('p', selector_available, '');
+        filter_p.className = 'selector-filter';
+        quickElement('img', filter_p, '', 'src', admin_media_prefix + 'img/admin/selector-search.gif');
+        filter_p.appendChild(document.createTextNode(' '));
+        var filter_input = quickElement('input', filter_p, '', 'type', 'text');
+        filter_input.id = field_id + '_input';
+        selector_available.appendChild(from_box);
+        var choose_all = quickElement('a', selector_available, gettext('Choose all'), 'href', 'javascript: (function(){ SelectBox.move_all("' + field_id + '_from", "' + field_id + '_to"); })()');
+        choose_all.className = 'selector-chooseall';
+
+        // <ul class="selector-chooser">
+        var selector_chooser = quickElement('ul', selector_div, '');
+        selector_chooser.className = 'selector-chooser';
+        var add_link = quickElement('a', quickElement('li', selector_chooser, ''), gettext('Add'), 'href', 'javascript: (function(){ SelectBox.move("' + field_id + '_from","' + field_id + '_to");})()');
+        add_link.className = 'selector-add';
+        var remove_link = quickElement('a', quickElement('li', selector_chooser, ''), gettext('Remove'), 'href', 'javascript: (function(){ SelectBox.move("' + field_id + '_to","' + field_id + '_from");})()');
+        remove_link.className = 'selector-remove';
+
+        // <div class="selector-chosen">
+        var selector_chosen = quickElement('div', selector_div, '');
+        selector_chosen.className = 'selector-chosen';
+        quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s'), [field_name]));
+        var selector_filter = quickElement('p', selector_chosen, gettext('Select your choice(s) and click '));
+        selector_filter.className = 'selector-filter';
+        quickElement('img', selector_filter, '', 'src', admin_media_prefix + (is_stacked ? 'img/admin/selector_stacked-add.gif':'img/admin/selector-add.gif'), 'alt', 'Add');
+        var to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', 'multiple', 'size', from_box.size, 'name', from_box.getAttribute('name'));
+        to_box.className = 'filtered';
+        var clear_all = quickElement('a', selector_chosen, gettext('Clear all'), 'href', 'javascript: (function() { SelectBox.move_all("' + field_id + '_to", "' + field_id + '_from");})()');
+        clear_all.className = 'selector-clearall';
+
+        from_box.setAttribute('name', from_box.getAttribute('name') + '_old');
+
+        // Set up the JavaScript event handlers for the select box filter interface
+        addEvent(filter_input, 'keyup', function(e) { SelectFilter.filter_key_up(e, field_id); });
+        addEvent(filter_input, 'keydown', function(e) { SelectFilter.filter_key_down(e, field_id); });
+        addEvent(from_box, 'dblclick', function() { SelectBox.move(field_id + '_from', field_id + '_to'); });
+        addEvent(to_box, 'dblclick', function() { SelectBox.move(field_id + '_to', field_id + '_from'); });
+        addEvent(findForm(from_box), 'submit', function() { SelectBox.select_all(field_id + '_to'); });
+        SelectBox.init(field_id + '_from');
+        SelectBox.init(field_id + '_to');
+        // Move selected from_box options to to_box
+        SelectBox.move(field_id + '_from', field_id + '_to');
+    },
+    filter_key_up: function(event, field_id) {
+        from = document.getElementById(field_id + '_from');
+        // don't submit form if user pressed Enter
+        if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {
+            from.selectedIndex = 0;
+            SelectBox.move(field_id + '_from', field_id + '_to');
+            from.selectedIndex = 0;
+            return false;
+        }
+        var temp = from.selectedIndex;
+        SelectBox.filter(field_id + '_from', document.getElementById(field_id + '_input').value);
+        from.selectedIndex = temp;
+        return true;
+    },
+    filter_key_down: function(event, field_id) {
+        from = document.getElementById(field_id + '_from');
+        // right arrow -- move across
+        if ((event.which && event.which == 39) || (event.keyCode && event.keyCode == 39)) {
+            var old_index = from.selectedIndex;
+            SelectBox.move(field_id + '_from', field_id + '_to');
+            from.selectedIndex = (old_index == from.length) ? from.length - 1 : old_index;
+            return false;
+        }
+        // down arrow -- wrap around
+        if ((event.which && event.which == 40) || (event.keyCode && event.keyCode == 40)) {
+            from.selectedIndex = (from.length == from.selectedIndex + 1) ? 0 : from.selectedIndex + 1;
+        }
+        // up arrow -- wrap around
+        if ((event.which && event.which == 38) || (event.keyCode && event.keyCode == 38)) {
+            from.selectedIndex = (from.selectedIndex == 0) ? from.length - 1 : from.selectedIndex - 1;
+        }
+        return true;
+    }
+}
diff --git a/webapp/django/contrib/admin/media/js/admin/CollapsedFieldsets.js b/webapp/django/contrib/admin/media/js/admin/CollapsedFieldsets.js
new file mode 100644
index 0000000..d66bec0
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/admin/CollapsedFieldsets.js
@@ -0,0 +1,85 @@
+// Finds all fieldsets with class="collapse", collapses them, and gives each
+// one a "Show" link that uncollapses it. The "Show" link becomes a "Hide"
+// link when the fieldset is visible.
+
+function findForm(node) {
+    // returns the node of the form containing the given node
+    if (node.tagName.toLowerCase() != 'form') {
+        return findForm(node.parentNode);
+    }
+    return node;
+}
+
+var CollapsedFieldsets = {
+    collapse_re: /\bcollapse\b/,   // Class of fieldsets that should be dealt with.
+    collapsed_re: /\bcollapsed\b/, // Class that fieldsets get when they're hidden.
+    collapsed_class: 'collapsed',
+    init: function() {
+        var fieldsets = document.getElementsByTagName('fieldset');
+        var collapsed_seen = false;
+        for (var i = 0, fs; fs = fieldsets[i]; i++) {
+            // Collapse this fieldset if it has the correct class, and if it
+            // doesn't have any errors. (Collapsing shouldn't apply in the case
+            // of error messages.)
+            if (fs.className.match(CollapsedFieldsets.collapse_re) && !CollapsedFieldsets.fieldset_has_errors(fs)) {
+                collapsed_seen = true;
+                // Give it an additional class, used by CSS to hide it.
+                fs.className += ' ' + CollapsedFieldsets.collapsed_class;
+                // (<a id="fieldsetcollapser3" class="collapse-toggle" href="#">Show</a>)
+                var collapse_link = document.createElement('a');
+                collapse_link.className = 'collapse-toggle';
+                collapse_link.id = 'fieldsetcollapser' + i;
+                collapse_link.onclick = new Function('CollapsedFieldsets.show('+i+'); return false;');
+                collapse_link.href = '#';
+                collapse_link.innerHTML = gettext('Show');
+                var h2 = fs.getElementsByTagName('h2')[0];
+                h2.appendChild(document.createTextNode(' ('));
+                h2.appendChild(collapse_link);
+                h2.appendChild(document.createTextNode(')'));
+            }
+        }
+        if (collapsed_seen) {
+            // Expand all collapsed fieldsets when form is submitted.
+            addEvent(findForm(document.getElementsByTagName('fieldset')[0]), 'submit', function() { CollapsedFieldsets.uncollapse_all(); });
+        }
+    },
+    fieldset_has_errors: function(fs) {
+        // Returns true if any fields in the fieldset have validation errors.
+        var divs = fs.getElementsByTagName('div');
+        for (var i=0; i<divs.length; i++) {
+            if (divs[i].className.match(/\berrors\b/)) {
+                return true;
+            }
+        }
+        return false;
+    },
+    show: function(fieldset_index) {
+        var fs = document.getElementsByTagName('fieldset')[fieldset_index];
+        // Remove the class name that causes the "display: none".
+        fs.className = fs.className.replace(CollapsedFieldsets.collapsed_re, '');
+        // Toggle the "Show" link to a "Hide" link
+        var collapse_link = document.getElementById('fieldsetcollapser' + fieldset_index);
+        collapse_link.onclick = new Function('CollapsedFieldsets.hide('+fieldset_index+'); return false;');
+        collapse_link.innerHTML = gettext('Hide');
+    },
+    hide: function(fieldset_index) {
+        var fs = document.getElementsByTagName('fieldset')[fieldset_index];
+        // Add the class name that causes the "display: none".
+        fs.className += ' ' + CollapsedFieldsets.collapsed_class;
+        // Toggle the "Hide" link to a "Show" link
+        var collapse_link = document.getElementById('fieldsetcollapser' + fieldset_index);
+        collapse_link.onclick = new Function('CollapsedFieldsets.show('+fieldset_index+'); return false;');
+        collapse_link.innerHTML = gettext('Show');
+    },
+
+    uncollapse_all: function() {
+        var fieldsets = document.getElementsByTagName('fieldset');
+        for (var i=0; i<fieldsets.length; i++) {
+            if (fieldsets[i].className.match(CollapsedFieldsets.collapsed_re)) {
+                CollapsedFieldsets.show(i);
+            }
+        }
+    }
+}
+
+addEvent(window, 'load', CollapsedFieldsets.init);
diff --git a/webapp/django/contrib/admin/media/js/admin/DateTimeShortcuts.js b/webapp/django/contrib/admin/media/js/admin/DateTimeShortcuts.js
new file mode 100644
index 0000000..f57f97e
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/admin/DateTimeShortcuts.js
@@ -0,0 +1,254 @@
+// Inserts shortcut buttons after all of the following:
+//     <input type="text" class="vDateField">
+//     <input type="text" class="vTimeField">
+
+var DateTimeShortcuts = {
+    calendars: [],
+    calendarInputs: [],
+    clockInputs: [],
+    calendarDivName1: 'calendarbox', // name of calendar <div> that gets toggled
+    calendarDivName2: 'calendarin',  // name of <div> that contains calendar
+    calendarLinkName: 'calendarlink',// name of the link that is used to toggle
+    clockDivName: 'clockbox',        // name of clock <div> that gets toggled
+    clockLinkName: 'clocklink',      // name of the link that is used to toggle
+    admin_media_prefix: '',
+    init: function() {
+        // Deduce admin_media_prefix by looking at the <script>s in the
+        // current document and finding the URL of *this* module.
+        var scripts = document.getElementsByTagName('script');
+        for (var i=0; i<scripts.length; i++) {
+            if (scripts[i].src.match(/DateTimeShortcuts/)) {
+                var idx = scripts[i].src.indexOf('js/admin/DateTimeShortcuts');
+                DateTimeShortcuts.admin_media_prefix = scripts[i].src.substring(0, idx);
+                break;
+            }
+        }
+
+        var inputs = document.getElementsByTagName('input');
+        for (i=0; i<inputs.length; i++) {
+            var inp = inputs[i];
+            if (inp.getAttribute('type') == 'text' && inp.className.match(/vTimeField/)) {
+                DateTimeShortcuts.addClock(inp);
+            }
+            else if (inp.getAttribute('type') == 'text' && inp.className.match(/vDateField/)) {
+                DateTimeShortcuts.addCalendar(inp);
+            }
+        }
+    },
+    // Add clock widget to a given field
+    addClock: function(inp) {
+        var num = DateTimeShortcuts.clockInputs.length;
+        DateTimeShortcuts.clockInputs[num] = inp;
+
+        // Shortcut links (clock icon and "Now" link)
+        var shortcuts_span = document.createElement('span');
+        inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling);
+        var now_link = document.createElement('a');
+        now_link.setAttribute('href', "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date().getHourMinuteSecond());");
+        now_link.appendChild(document.createTextNode(gettext('Now')));
+        var clock_link = document.createElement('a');
+        clock_link.setAttribute('href', 'javascript:DateTimeShortcuts.openClock(' + num + ');');
+        clock_link.id = DateTimeShortcuts.clockLinkName + num;
+        quickElement('img', clock_link, '', 'src', DateTimeShortcuts.admin_media_prefix + 'img/admin/icon_clock.gif', 'alt', gettext('Clock'));
+        shortcuts_span.appendChild(document.createTextNode('\240'));
+        shortcuts_span.appendChild(now_link);
+        shortcuts_span.appendChild(document.createTextNode('\240|\240'));
+        shortcuts_span.appendChild(clock_link);
+
+        // Create clock link div
+        //
+        // Markup looks like:
+        // <div id="clockbox1" class="clockbox module">
+        //     <h2>Choose a time</h2>
+        //     <ul class="timelist">
+        //         <li><a href="#">Now</a></li>
+        //         <li><a href="#">Midnight</a></li>
+        //         <li><a href="#">6 a.m.</a></li>
+        //         <li><a href="#">Noon</a></li>
+        //     </ul>
+        //     <p class="calendar-cancel"><a href="#">Cancel</a></p>
+        // </div>
+
+        var clock_box = document.createElement('div');
+        clock_box.style.display = 'none';
+        clock_box.style.position = 'absolute';
+        clock_box.className = 'clockbox module';
+        clock_box.setAttribute('id', DateTimeShortcuts.clockDivName + num);
+        document.body.appendChild(clock_box);
+        addEvent(clock_box, 'click', DateTimeShortcuts.cancelEventPropagation);
+
+        quickElement('h2', clock_box, gettext('Choose a time'));
+        time_list = quickElement('ul', clock_box, '');
+        time_list.className = 'timelist';
+        quickElement("a", quickElement("li", time_list, ""), gettext("Now"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date().getHourMinuteSecond());")
+        quickElement("a", quickElement("li", time_list, ""), gettext("Midnight"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", '00:00:00');")
+        quickElement("a", quickElement("li", time_list, ""), gettext("6 a.m."), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", '06:00:00');")
+        quickElement("a", quickElement("li", time_list, ""), gettext("Noon"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", '12:00:00');")
+
+        cancel_p = quickElement('p', clock_box, '');
+        cancel_p.className = 'calendar-cancel';
+        quickElement('a', cancel_p, gettext('Cancel'), 'href', 'javascript:DateTimeShortcuts.dismissClock(' + num + ');');
+    },
+    openClock: function(num) {
+        var clock_box = document.getElementById(DateTimeShortcuts.clockDivName+num)
+        var clock_link = document.getElementById(DateTimeShortcuts.clockLinkName+num)
+    
+        // Recalculate the clockbox position
+        // is it left-to-right or right-to-left layout ?
+        if (getStyle(document.body,'direction')!='rtl') {
+            clock_box.style.left = findPosX(clock_link) + 17 + 'px';
+        }
+        else {
+            // since style's width is in em, it'd be tough to calculate
+            // px value of it. let's use an estimated px for now
+            // TODO: IE returns wrong value for findPosX when in rtl mode
+            //       (it returns as it was left aligned), needs to be fixed.
+            clock_box.style.left = findPosX(clock_link) - 110 + 'px';
+        }
+        clock_box.style.top = findPosY(clock_link) - 30 + 'px';
+    
+        // Show the clock box
+        clock_box.style.display = 'block';
+        addEvent(window, 'click', function() { DateTimeShortcuts.dismissClock(num); return true; });
+    },
+    dismissClock: function(num) {
+       document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'none';
+       window.onclick = null;
+    },
+    handleClockQuicklink: function(num, val) {
+       DateTimeShortcuts.clockInputs[num].value = val;
+       DateTimeShortcuts.dismissClock(num);
+    },
+    // Add calendar widget to a given field.
+    addCalendar: function(inp) {
+        var num = DateTimeShortcuts.calendars.length;
+
+        DateTimeShortcuts.calendarInputs[num] = inp;
+
+        // Shortcut links (calendar icon and "Today" link)
+        var shortcuts_span = document.createElement('span');
+        inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling);
+        var today_link = document.createElement('a');
+        today_link.setAttribute('href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', 0);');
+        today_link.appendChild(document.createTextNode(gettext('Today')));
+        var cal_link = document.createElement('a');
+        cal_link.setAttribute('href', 'javascript:DateTimeShortcuts.openCalendar(' + num + ');');
+        cal_link.id = DateTimeShortcuts.calendarLinkName + num;
+        quickElement('img', cal_link, '', 'src', DateTimeShortcuts.admin_media_prefix + 'img/admin/icon_calendar.gif', 'alt', gettext('Calendar'));
+        shortcuts_span.appendChild(document.createTextNode('\240'));
+        shortcuts_span.appendChild(today_link);
+        shortcuts_span.appendChild(document.createTextNode('\240|\240'));
+        shortcuts_span.appendChild(cal_link);
+
+        // Create calendarbox div.
+        //
+        // Markup looks like:
+        //
+        // <div id="calendarbox3" class="calendarbox module">
+        //     <h2>
+        //           <a href="#" class="link-previous">&lsaquo;</a>
+        //           <a href="#" class="link-next">&rsaquo;</a> February 2003
+        //     </h2>
+        //     <div class="calendar" id="calendarin3">
+        //         <!-- (cal) -->
+        //     </div>
+        //     <div class="calendar-shortcuts">
+        //          <a href="#">Yesterday</a> | <a href="#">Today</a> | <a href="#">Tomorrow</a>
+        //     </div>
+        //     <p class="calendar-cancel"><a href="#">Cancel</a></p>
+        // </div>
+        var cal_box = document.createElement('div');
+        cal_box.style.display = 'none';
+        cal_box.style.position = 'absolute';
+        cal_box.className = 'calendarbox module';
+        cal_box.setAttribute('id', DateTimeShortcuts.calendarDivName1 + num);
+        document.body.appendChild(cal_box);
+        addEvent(cal_box, 'click', DateTimeShortcuts.cancelEventPropagation);
+
+        // next-prev links
+        var cal_nav = quickElement('div', cal_box, '');
+        var cal_nav_prev = quickElement('a', cal_nav, '<', 'href', 'javascript:DateTimeShortcuts.drawPrev('+num+');');
+        cal_nav_prev.className = 'calendarnav-previous';
+        var cal_nav_next = quickElement('a', cal_nav, '>', 'href', 'javascript:DateTimeShortcuts.drawNext('+num+');');
+        cal_nav_next.className = 'calendarnav-next';
+
+        // main box
+        var cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num);
+        cal_main.className = 'calendar';
+        DateTimeShortcuts.calendars[num] = new Calendar(DateTimeShortcuts.calendarDivName2 + num, DateTimeShortcuts.handleCalendarCallback(num));
+        DateTimeShortcuts.calendars[num].drawCurrent();
+
+        // calendar shortcuts
+        var shortcuts = quickElement('div', cal_box, '');
+        shortcuts.className = 'calendar-shortcuts';
+        quickElement('a', shortcuts, gettext('Yesterday'), 'href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', -1);');
+        shortcuts.appendChild(document.createTextNode('\240|\240'));
+        quickElement('a', shortcuts, gettext('Today'), 'href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', 0);');
+        shortcuts.appendChild(document.createTextNode('\240|\240'));
+        quickElement('a', shortcuts, gettext('Tomorrow'), 'href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', +1);');
+
+        // cancel bar
+        var cancel_p = quickElement('p', cal_box, '');
+        cancel_p.className = 'calendar-cancel';
+        quickElement('a', cancel_p, gettext('Cancel'), 'href', 'javascript:DateTimeShortcuts.dismissCalendar(' + num + ');');
+    },
+    openCalendar: function(num) {
+        var cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1+num)
+        var cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName+num)
+	var inp = DateTimeShortcuts.calendarInputs[num];
+
+	// Determine if the current value in the input has a valid date.
+	// If so, draw the calendar with that date's year and month.
+	if (inp.value) {
+	    var date_parts = inp.value.split('-');
+	    var year = date_parts[0];
+	    var month = parseFloat(date_parts[1]);
+	    if (year.match(/\d\d\d\d/) && month >= 1 && month <= 12) {
+		DateTimeShortcuts.calendars[num].drawDate(month, year);
+	    }
+	}
+
+    
+        // Recalculate the clockbox position
+        // is it left-to-right or right-to-left layout ?
+        if (getStyle(document.body,'direction')!='rtl') {
+            cal_box.style.left = findPosX(cal_link) + 17 + 'px';
+        }
+        else {
+            // since style's width is in em, it'd be tough to calculate
+            // px value of it. let's use an estimated px for now
+            // TODO: IE returns wrong value for findPosX when in rtl mode
+            //       (it returns as it was left aligned), needs to be fixed.
+            cal_box.style.left = findPosX(cal_link) - 180 + 'px';
+        }
+        cal_box.style.top = findPosY(cal_link) - 75 + 'px';
+    
+        cal_box.style.display = 'block';
+        addEvent(window, 'click', function() { DateTimeShortcuts.dismissCalendar(num); return true; });
+    },
+    dismissCalendar: function(num) {
+        document.getElementById(DateTimeShortcuts.calendarDivName1+num).style.display = 'none';
+    },
+    drawPrev: function(num) {
+        DateTimeShortcuts.calendars[num].drawPreviousMonth();
+    },
+    drawNext: function(num) {
+        DateTimeShortcuts.calendars[num].drawNextMonth();
+    },
+    handleCalendarCallback: function(num) {
+        return "function(y, m, d) { DateTimeShortcuts.calendarInputs["+num+"].value = y+'-'+(m<10?'0':'')+m+'-'+(d<10?'0':'')+d; document.getElementById(DateTimeShortcuts.calendarDivName1+"+num+").style.display='none';}";
+    },
+    handleCalendarQuickLink: function(num, offset) {
+       var d = new Date();
+       d.setDate(d.getDate() + offset)
+       DateTimeShortcuts.calendarInputs[num].value = d.getISODate();
+       DateTimeShortcuts.dismissCalendar(num);
+    },
+    cancelEventPropagation: function(e) {
+        if (!e) e = window.event;
+        e.cancelBubble = true;
+        if (e.stopPropagation) e.stopPropagation();
+    }
+}
+
+addEvent(window, 'load', DateTimeShortcuts.init);
diff --git a/webapp/django/contrib/admin/media/js/admin/RelatedObjectLookups.js b/webapp/django/contrib/admin/media/js/admin/RelatedObjectLookups.js
new file mode 100644
index 0000000..ca578cc
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/admin/RelatedObjectLookups.js
@@ -0,0 +1,77 @@
+// Handles related-objects functionality: lookup link for raw_id_fields
+// and Add Another links.
+
+function html_unescape(text) {
+    // Unescape a string that was escaped using django.utils.html.escape.
+    text = text.replace(/&lt;/g, '<');
+    text = text.replace(/&gt;/g, '>');
+    text = text.replace(/&quot;/g, '"');
+    text = text.replace(/&#39;/g, "'");
+    text = text.replace(/&amp;/g, '&');
+    return text;
+}
+
+function showRelatedObjectLookupPopup(triggeringLink) {
+    var name = triggeringLink.id.replace(/^lookup_/, '');
+    // IE doesn't like periods in the window name, so convert temporarily.
+    name = name.replace(/\./g, '___');
+    var href;
+    if (triggeringLink.href.search(/\?/) >= 0) {
+        href = triggeringLink.href + '&pop=1';
+    } else {
+        href = triggeringLink.href + '?pop=1';
+    }
+    var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes');
+    win.focus();
+    return false;
+}
+
+function dismissRelatedLookupPopup(win, chosenId) {
+    var name = win.name.replace(/___/g, '.');
+    var elem = document.getElementById(name);
+    if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) {
+        elem.value += ',' + chosenId;
+    } else {
+        document.getElementById(name).value = chosenId;
+    }
+    win.close();
+}
+
+function showAddAnotherPopup(triggeringLink) {
+    var name = triggeringLink.id.replace(/^add_/, '');
+    name = name.replace(/\./g, '___');
+    href = triggeringLink.href
+    if (href.indexOf('?') == -1) {
+        href += '?_popup=1';
+    } else {
+        href  += '&_popup=1';
+    }
+    var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes');
+    win.focus();
+    return false;
+}
+
+function dismissAddAnotherPopup(win, newId, newRepr) {
+    // newId and newRepr are expected to have previously been escaped by
+    // django.utils.html.escape.
+    newId = html_unescape(newId);
+    newRepr = html_unescape(newRepr);
+    var name = win.name.replace(/___/g, '.');
+    var elem = document.getElementById(name);
+    if (elem) {
+        if (elem.nodeName == 'SELECT') {
+            var o = new Option(newRepr, newId);
+            elem.options[elem.options.length] = o;
+            o.selected = true;
+        } else if (elem.nodeName == 'INPUT') {
+            elem.value = newId;
+        }
+    } else {
+        var toId = name + "_to";
+        elem = document.getElementById(toId);
+        var o = new Option(newRepr, newId);
+        SelectBox.add_to_cache(toId, o);
+        SelectBox.redisplay(toId);
+    }
+    win.close();
+}
diff --git a/webapp/django/contrib/admin/media/js/admin/ordering.js b/webapp/django/contrib/admin/media/js/admin/ordering.js
new file mode 100644
index 0000000..53c42f3
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/admin/ordering.js
@@ -0,0 +1,137 @@
+addEvent(window, 'load', reorder_init);
+
+var lis;
+var top = 0;
+var left = 0;
+var height = 30;
+
+function reorder_init() {
+    lis = document.getElementsBySelector('ul#orderthese li');
+    var input = document.getElementsBySelector('input[name=order_]')[0];
+    setOrder(input.value.split(','));
+    input.disabled = true;
+    draw();
+    // Now initialise the dragging behaviour
+    var limit = (lis.length - 1) * height;
+    for (var i = 0; i < lis.length; i++) {
+        var li = lis[i];
+        var img = document.getElementById('handle'+li.id);
+        li.style.zIndex = 1;
+        Drag.init(img, li, left + 10, left + 10, top + 10, top + 10 + limit);
+        li.onDragStart = startDrag;
+        li.onDragEnd = endDrag;
+        img.style.cursor = 'move';
+    }
+}
+
+function submitOrderForm() {
+    var inputOrder = document.getElementsBySelector('input[name=order_]')[0];
+    inputOrder.value = getOrder();
+    inputOrder.disabled=false;
+}
+
+function startDrag() {
+    this.style.zIndex = '10';
+    this.className = 'dragging';
+}
+
+function endDrag(x, y) {
+    this.style.zIndex = '1';
+    this.className = '';
+    // Work out how far along it has been dropped, using x co-ordinate
+    var oldIndex = this.index;
+    var newIndex = Math.round((y - 10 - top) / height);
+    // 'Snap' to the correct position
+    this.style.top = (10 + top + newIndex * height) + 'px';
+    this.index = newIndex;
+    moveItem(oldIndex, newIndex);
+}
+
+function moveItem(oldIndex, newIndex) {
+    // Swaps two items, adjusts the index and left co-ord for all others
+    if (oldIndex == newIndex) {
+        return; // Nothing to swap;
+    }
+    var direction, lo, hi;
+    if (newIndex > oldIndex) {
+        lo = oldIndex;
+        hi = newIndex;
+        direction = -1;
+    } else {
+        direction = 1;
+        hi = oldIndex;
+        lo = newIndex;
+    }
+    var lis2 = new Array(); // We will build the new order in this array
+    for (var i = 0; i < lis.length; i++) {
+        if (i < lo || i > hi) {
+            // Position of items not between the indexes is unaffected
+            lis2[i] = lis[i];
+            continue;
+        } else if (i == newIndex) {
+            lis2[i] = lis[oldIndex];
+            continue;
+        } else {
+            // Item is between the two indexes - move it along 1
+            lis2[i] = lis[i - direction];
+        }
+    }
+    // Re-index everything
+    reIndex(lis2);
+    lis = lis2;
+    draw();
+//    document.getElementById('hiddenOrder').value = getOrder();
+    document.getElementsBySelector('input[name=order_]')[0].value = getOrder();
+}
+
+function reIndex(lis) {
+    for (var i = 0; i < lis.length; i++) {
+        lis[i].index = i;
+    }
+}
+
+function draw() {
+    for (var i = 0; i < lis.length; i++) {
+        var li = lis[i];
+        li.index = i;
+        li.style.position = 'absolute';
+        li.style.left = (10 + left) + 'px';
+        li.style.top = (10 + top + (i * height)) + 'px';
+    }
+}
+
+function getOrder() {
+    var order = new Array(lis.length);
+    for (var i = 0; i < lis.length; i++) {
+        order[i] = lis[i].id.substring(1, 100);
+    }
+    return order.join(',');
+}
+
+function setOrder(id_list) {
+    /* Set the current order to match the lsit of IDs */
+    var temp_lis = new Array();
+    for (var i = 0; i < id_list.length; i++) {
+        var id = 'p' + id_list[i];
+        temp_lis[temp_lis.length] = document.getElementById(id);
+    }
+    reIndex(temp_lis);
+    lis = temp_lis;
+    draw();
+}
+
+function addEvent(elm, evType, fn, useCapture)
+// addEvent and removeEvent
+// cross-browser event handling for IE5+,  NS6 and Mozilla
+// By Scott Andrew
+{
+  if (elm.addEventListener){
+    elm.addEventListener(evType, fn, useCapture);
+    return true;
+  } else if (elm.attachEvent){
+    var r = elm.attachEvent("on"+evType, fn);
+    return r;
+  } else {
+    elm['on'+evType] = fn;
+  }
+}
diff --git a/webapp/django/contrib/admin/media/js/calendar.js b/webapp/django/contrib/admin/media/js/calendar.js
new file mode 100644
index 0000000..9035176
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/calendar.js
@@ -0,0 +1,143 @@
+/*
+calendar.js - Calendar functions by Adrian Holovaty
+*/
+
+function removeChildren(a) { // "a" is reference to an object
+    while (a.hasChildNodes()) a.removeChild(a.lastChild);
+}
+
+// quickElement(tagType, parentReference, textInChildNode, [, attribute, attributeValue ...]);
+function quickElement() {
+    var obj = document.createElement(arguments[0]);
+    if (arguments[2] != '' && arguments[2] != null) {
+        var textNode = document.createTextNode(arguments[2]);
+        obj.appendChild(textNode);
+    }
+    var len = arguments.length;
+    for (var i = 3; i < len; i += 2) {
+        obj.setAttribute(arguments[i], arguments[i+1]);
+    }
+    arguments[1].appendChild(obj);
+    return obj;
+}
+
+// CalendarNamespace -- Provides a collection of HTML calendar-related helper functions
+var CalendarNamespace = {
+    monthsOfYear: gettext('January February March April May June July August September October November December').split(' '),
+    daysOfWeek: gettext('S M T W T F S').split(' '),
+    isLeapYear: function(year) {
+        return (((year % 4)==0) && ((year % 100)!=0) || ((year % 400)==0));
+    },
+    getDaysInMonth: function(month,year) {
+        var days;
+        if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) {
+            days = 31;
+        }
+        else if (month==4 || month==6 || month==9 || month==11) {
+            days = 30;
+        }
+        else if (month==2 && CalendarNamespace.isLeapYear(year)) {
+            days = 29;
+        }
+        else {
+            days = 28;
+        }
+        return days;
+    },
+    draw: function(month, year, div_id, callback) { // month = 1-12, year = 1-9999
+        month = parseInt(month);
+        year = parseInt(year);
+        var calDiv = document.getElementById(div_id);
+        removeChildren(calDiv);
+        var calTable = document.createElement('table');
+        quickElement('caption', calTable, CalendarNamespace.monthsOfYear[month-1] + ' ' + year);
+        var tableBody = quickElement('tbody', calTable);
+
+        // Draw days-of-week header
+        var tableRow = quickElement('tr', tableBody);
+        for (var i = 0; i < 7; i++) {
+            quickElement('th', tableRow, CalendarNamespace.daysOfWeek[i]);
+        }
+
+        var startingPos = new Date(year, month-1, 1).getDay();
+        var days = CalendarNamespace.getDaysInMonth(month, year);
+
+        // Draw blanks before first of month
+        tableRow = quickElement('tr', tableBody);
+        for (var i = 0; i < startingPos; i++) {
+            var _cell = quickElement('td', tableRow, ' ');
+            _cell.style.backgroundColor = '#f3f3f3';
+        }
+
+        // Draw days of month
+        var currentDay = 1;
+        for (var i = startingPos; currentDay <= days; i++) {
+            if (i%7 == 0 && currentDay != 1) {
+                tableRow = quickElement('tr', tableBody);
+            }
+            var cell = quickElement('td', tableRow, '');
+            quickElement('a', cell, currentDay, 'href', 'javascript:void(' + callback + '('+year+','+month+','+currentDay+'));');
+            currentDay++;
+        }
+
+        // Draw blanks after end of month (optional, but makes for valid code)
+        while (tableRow.childNodes.length < 7) {
+            var _cell = quickElement('td', tableRow, ' ');
+            _cell.style.backgroundColor = '#f3f3f3';
+        }
+
+        calDiv.appendChild(calTable);
+    }
+}
+
+// Calendar -- A calendar instance
+function Calendar(div_id, callback) {
+    // div_id (string) is the ID of the element in which the calendar will
+    //     be displayed
+    // callback (string) is the name of a JavaScript function that will be
+    //     called with the parameters (year, month, day) when a day in the
+    //     calendar is clicked
+    this.div_id = div_id;
+    this.callback = callback;
+    this.today = new Date();
+    this.currentMonth = this.today.getMonth() + 1;
+    this.currentYear = this.today.getFullYear();
+}
+Calendar.prototype = {
+    drawCurrent: function() {
+        CalendarNamespace.draw(this.currentMonth, this.currentYear, this.div_id, this.callback);
+    },
+    drawDate: function(month, year) {
+        this.currentMonth = month;
+        this.currentYear = year;
+        this.drawCurrent();
+    },
+    drawPreviousMonth: function() {
+        if (this.currentMonth == 1) {
+            this.currentMonth = 12;
+            this.currentYear--;
+        }
+        else {
+            this.currentMonth--;
+        }
+        this.drawCurrent();
+    },
+    drawNextMonth: function() {
+        if (this.currentMonth == 12) {
+            this.currentMonth = 1;
+            this.currentYear++;
+        }
+        else {
+            this.currentMonth++;
+        }
+        this.drawCurrent();
+    },
+    drawPreviousYear: function() {
+        this.currentYear--;
+        this.drawCurrent();
+    },
+    drawNextYear: function() {
+        this.currentYear++;
+        this.drawCurrent();
+    }
+}
diff --git a/webapp/django/contrib/admin/media/js/core.js b/webapp/django/contrib/admin/media/js/core.js
new file mode 100644
index 0000000..c8d0db6
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/core.js
@@ -0,0 +1,176 @@
+// Core javascript helper functions
+
+// basic browser identification & version
+var isOpera = (navigator.userAgent.indexOf("Opera")>=0) && parseFloat(navigator.appVersion);
+var isIE = ((document.all) && (!isOpera)) && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]);
+
+// Cross-browser event handlers.
+function addEvent(obj, evType, fn) {
+    if (obj.addEventListener) {
+        obj.addEventListener(evType, fn, false);
+        return true;
+    } else if (obj.attachEvent) {
+        var r = obj.attachEvent("on" + evType, fn);
+        return r;
+    } else {
+        return false;
+    }
+}
+
+function removeEvent(obj, evType, fn) {
+    if (obj.removeEventListener) {
+        obj.removeEventListener(evType, fn, false);
+        return true;
+    } else if (obj.detachEvent) {
+        obj.detachEvent("on" + evType, fn);
+        return true;
+    } else {
+        return false;
+    }
+}
+
+// quickElement(tagType, parentReference, textInChildNode, [, attribute, attributeValue ...]);
+function quickElement() {
+    var obj = document.createElement(arguments[0]);
+    if (arguments[2] != '' && arguments[2] != null) {
+        var textNode = document.createTextNode(arguments[2]);
+        obj.appendChild(textNode);
+    }
+    var len = arguments.length;
+    for (var i = 3; i < len; i += 2) {
+        obj.setAttribute(arguments[i], arguments[i+1]);
+    }
+    arguments[1].appendChild(obj);
+    return obj;
+}
+
+// ----------------------------------------------------------------------------
+// Cross-browser xmlhttp object
+// from http://jibbering.com/2002/4/httprequest.html
+// ----------------------------------------------------------------------------
+var xmlhttp;
+/*@cc_on @*/
+/*@if (@_jscript_version >= 5)
+    try {
+        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+    } catch (e) {
+        try {
+            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+        } catch (E) {
+            xmlhttp = false;
+        }
+    }
+@else
+    xmlhttp = false;
+@end @*/
+if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
+  xmlhttp = new XMLHttpRequest();
+}
+
+// ----------------------------------------------------------------------------
+// Find-position functions by PPK
+// See http://www.quirksmode.org/js/findpos.html
+// ----------------------------------------------------------------------------
+function findPosX(obj) {
+    var curleft = 0;
+    if (obj.offsetParent) {
+        while (obj.offsetParent) {
+            curleft += obj.offsetLeft - ((isOpera) ? 0 : obj.scrollLeft);
+            obj = obj.offsetParent;
+        }
+        // IE offsetParent does not include the top-level 
+        if (isIE && obj.parentElement){
+            curleft += obj.offsetLeft - obj.scrollLeft;
+        }
+    } else if (obj.x) {
+        curleft += obj.x;
+    }
+    return curleft;
+}
+
+function findPosY(obj) {
+    var curtop = 0;
+    if (obj.offsetParent) {
+        while (obj.offsetParent) {
+            curtop += obj.offsetTop - ((isOpera) ? 0 : obj.scrollTop);
+            obj = obj.offsetParent;
+        }
+        // IE offsetParent does not include the top-level 
+        if (isIE && obj.parentElement){
+            curtop += obj.offsetTop - obj.scrollTop;
+        }
+    } else if (obj.y) {
+        curtop += obj.y;
+    }
+    return curtop;
+}
+
+//-----------------------------------------------------------------------------
+// Date object extensions
+// ----------------------------------------------------------------------------
+Date.prototype.getCorrectYear = function() {
+    // Date.getYear() is unreliable --
+    // see http://www.quirksmode.org/js/introdate.html#year
+    var y = this.getYear() % 100;
+    return (y < 38) ? y + 2000 : y + 1900;
+}
+
+Date.prototype.getTwoDigitMonth = function() {
+    return (this.getMonth() < 9) ? '0' + (this.getMonth()+1) : (this.getMonth()+1);
+}
+
+Date.prototype.getTwoDigitDate = function() {
+    return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate();
+}
+
+Date.prototype.getTwoDigitHour = function() {
+    return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours();
+}
+
+Date.prototype.getTwoDigitMinute = function() {
+    return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes();
+}
+
+Date.prototype.getTwoDigitSecond = function() {
+    return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds();
+}
+
+Date.prototype.getISODate = function() {
+    return this.getCorrectYear() + '-' + this.getTwoDigitMonth() + '-' + this.getTwoDigitDate();
+}
+
+Date.prototype.getHourMinute = function() {
+    return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute();
+}
+
+Date.prototype.getHourMinuteSecond = function() {
+    return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute() + ':' + this.getTwoDigitSecond();
+}
+
+// ----------------------------------------------------------------------------
+// String object extensions
+// ----------------------------------------------------------------------------
+String.prototype.pad_left = function(pad_length, pad_string) {
+    var new_string = this;
+    for (var i = 0; new_string.length < pad_length; i++) {
+        new_string = pad_string + new_string;
+    }
+    return new_string;
+}
+
+// ----------------------------------------------------------------------------
+// Get the computed style for and element
+// ----------------------------------------------------------------------------
+function getStyle(oElm, strCssRule){
+    var strValue = "";
+    if(document.defaultView && document.defaultView.getComputedStyle){
+        strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
+    }
+    else if(oElm.currentStyle){
+        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
+            return p1.toUpperCase();
+        });
+        strValue = oElm.currentStyle[strCssRule];
+    }
+    return strValue;
+}
diff --git a/webapp/django/contrib/admin/media/js/dateparse.js b/webapp/django/contrib/admin/media/js/dateparse.js
new file mode 100644
index 0000000..e1c870e
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/dateparse.js
@@ -0,0 +1,233 @@
+/* 'Magic' date parsing, by Simon Willison (6th October 2003)
+   http://simon.incutio.com/archive/2003/10/06/betterDateInput
+   Adapted for 6newslawrence.com, 28th January 2004
+*/
+
+/* Finds the index of the first occurence of item in the array, or -1 if not found */
+if (typeof Array.prototype.indexOf == 'undefined') {
+    Array.prototype.indexOf = function(item) {
+        var len = this.length;
+        for (var i = 0; i < len; i++) {
+            if (this[i] == item) {
+                return i;
+            }
+        }
+        return -1;
+    };
+}
+/* Returns an array of items judged 'true' by the passed in test function */
+if (typeof Array.prototype.filter == 'undefined') {
+    Array.prototype.filter = function(test) {
+        var matches = [];
+        var len = this.length;
+        for (var i = 0; i < len; i++) {
+            if (test(this[i])) {
+                matches[matches.length] = this[i];
+            }
+        }
+        return matches;
+    };
+}
+
+var monthNames = gettext("January February March April May June July August September October November December").split(" ");
+var weekdayNames = gettext("Sunday Monday Tuesday Wednesday Thursday Friday Saturday").split(" ");
+
+/* Takes a string, returns the index of the month matching that string, throws
+   an error if 0 or more than 1 matches
+*/
+function parseMonth(month) {
+    var matches = monthNames.filter(function(item) { 
+        return new RegExp("^" + month, "i").test(item);
+    });
+    if (matches.length == 0) {
+        throw new Error("Invalid month string");
+    }
+    if (matches.length > 1) {
+        throw new Error("Ambiguous month");
+    }
+    return monthNames.indexOf(matches[0]);
+}
+/* Same as parseMonth but for days of the week */
+function parseWeekday(weekday) {
+    var matches = weekdayNames.filter(function(item) {
+        return new RegExp("^" + weekday, "i").test(item);
+    });
+    if (matches.length == 0) {
+        throw new Error("Invalid day string");
+    }
+    if (matches.length > 1) {
+        throw new Error("Ambiguous weekday");
+    }
+    return weekdayNames.indexOf(matches[0]);
+}
+
+/* Array of objects, each has 're', a regular expression and 'handler', a 
+   function for creating a date from something that matches the regular 
+   expression. Handlers may throw errors if string is unparseable. 
+*/
+var dateParsePatterns = [
+    // Today
+    {   re: /^tod/i,
+        handler: function() { 
+            return new Date();
+        } 
+    },
+    // Tomorrow
+    {   re: /^tom/i,
+        handler: function() {
+            var d = new Date(); 
+            d.setDate(d.getDate() + 1); 
+            return d;
+        }
+    },
+    // Yesterday
+    {   re: /^yes/i,
+        handler: function() {
+            var d = new Date();
+            d.setDate(d.getDate() - 1);
+            return d;
+        }
+    },
+    // 4th
+    {   re: /^(\d{1,2})(st|nd|rd|th)?$/i, 
+        handler: function(bits) {
+            var d = new Date();
+            d.setDate(parseInt(bits[1], 10));
+            return d;
+        }
+    },
+    // 4th Jan
+    {   re: /^(\d{1,2})(?:st|nd|rd|th)? (\w+)$/i, 
+        handler: function(bits) {
+            var d = new Date();
+            d.setDate(parseInt(bits[1], 10));
+            d.setMonth(parseMonth(bits[2]));
+            return d;
+        }
+    },
+    // 4th Jan 2003
+    {   re: /^(\d{1,2})(?:st|nd|rd|th)? (\w+),? (\d{4})$/i,
+        handler: function(bits) {
+            var d = new Date();
+            d.setDate(parseInt(bits[1], 10));
+            d.setMonth(parseMonth(bits[2]));
+            d.setYear(bits[3]);
+            return d;
+        }
+    },
+    // Jan 4th
+    {   re: /^(\w+) (\d{1,2})(?:st|nd|rd|th)?$/i, 
+        handler: function(bits) {
+            var d = new Date();
+            d.setDate(parseInt(bits[2], 10));
+            d.setMonth(parseMonth(bits[1]));
+            return d;
+        }
+    },
+    // Jan 4th 2003
+    {   re: /^(\w+) (\d{1,2})(?:st|nd|rd|th)?,? (\d{4})$/i,
+        handler: function(bits) {
+            var d = new Date();
+            d.setDate(parseInt(bits[2], 10));
+            d.setMonth(parseMonth(bits[1]));
+            d.setYear(bits[3]);
+            return d;
+        }
+    },
+    // next Tuesday - this is suspect due to weird meaning of "next"
+    {   re: /^next (\w+)$/i,
+        handler: function(bits) {
+            var d = new Date();
+            var day = d.getDay();
+            var newDay = parseWeekday(bits[1]);
+            var addDays = newDay - day;
+            if (newDay <= day) {
+                addDays += 7;
+            }
+            d.setDate(d.getDate() + addDays);
+            return d;
+        }
+    },
+    // last Tuesday
+    {   re: /^last (\w+)$/i,
+        handler: function(bits) {
+            throw new Error("Not yet implemented");
+        }
+    },
+    // mm/dd/yyyy (American style)
+    {   re: /(\d{1,2})\/(\d{1,2})\/(\d{4})/,
+        handler: function(bits) {
+            var d = new Date();
+            d.setYear(bits[3]);
+            d.setDate(parseInt(bits[2], 10));
+            d.setMonth(parseInt(bits[1], 10) - 1); // Because months indexed from 0
+            return d;
+        }
+    },
+    // yyyy-mm-dd (ISO style)
+    {   re: /(\d{4})-(\d{1,2})-(\d{1,2})/,
+        handler: function(bits) {
+            var d = new Date();
+            d.setYear(parseInt(bits[1]));
+            d.setMonth(parseInt(bits[2], 10) - 1);
+            d.setDate(parseInt(bits[3], 10));
+            return d;
+        }
+    },
+];
+
+function parseDateString(s) {
+    for (var i = 0; i < dateParsePatterns.length; i++) {
+        var re = dateParsePatterns[i].re;
+        var handler = dateParsePatterns[i].handler;
+        var bits = re.exec(s);
+        if (bits) {
+            return handler(bits);
+        }
+    }
+    throw new Error("Invalid date string");
+}
+
+function fmt00(x) {
+    // fmt00: Tags leading zero onto numbers 0 - 9.
+    // Particularly useful for displaying results from Date methods.
+    //
+    if (Math.abs(parseInt(x)) < 10){
+        x = "0"+ Math.abs(x);
+    }
+    return x;
+}
+
+function parseDateStringISO(s) {
+    try {
+        var d = parseDateString(s);
+        return d.getFullYear() + '-' + (fmt00(d.getMonth() + 1)) + '-' + fmt00(d.getDate())
+    }
+    catch (e) { return s; }
+}
+function magicDate(input) {
+    var messagespan = input.id + 'Msg';
+    try {
+        var d = parseDateString(input.value);
+        input.value = d.getFullYear() + '-' + (fmt00(d.getMonth() + 1)) + '-' + 
+            fmt00(d.getDate());
+        input.className = '';
+        // Human readable date
+        if (document.getElementById(messagespan)) {
+            document.getElementById(messagespan).firstChild.nodeValue = d.toDateString();
+            document.getElementById(messagespan).className = 'normal';
+        }
+    }
+    catch (e) {
+        input.className = 'error';
+        var message = e.message;
+        // Fix for IE6 bug
+        if (message.indexOf('is null or not an object') > -1) {
+            message = 'Invalid date string';
+        }
+        if (document.getElementById(messagespan)) {
+            document.getElementById(messagespan).firstChild.nodeValue = message;
+            document.getElementById(messagespan).className = 'error';
+        }
+    }
+}
diff --git a/webapp/django/contrib/admin/media/js/getElementsBySelector.js b/webapp/django/contrib/admin/media/js/getElementsBySelector.js
new file mode 100644
index 0000000..ae6d387
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/getElementsBySelector.js
@@ -0,0 +1,167 @@
+/* document.getElementsBySelector(selector)
+   - returns an array of element objects from the current document
+     matching the CSS selector. Selectors can contain element names, 
+     class names and ids and can be nested. For example:
+     
+       elements = document.getElementsBySelect('div#main p a.external')
+     
+     Will return an array of all 'a' elements with 'external' in their 
+     class attribute that are contained inside 'p' elements that are 
+     contained inside the 'div' element which has id="main"
+
+   New in version 0.4: Support for CSS2 and CSS3 attribute selectors:
+   See http://www.w3.org/TR/css3-selectors/#attribute-selectors
+
+   Version 0.4 - Simon Willison, March 25th 2003
+   -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows
+   -- Opera 7 fails 
+*/
+
+function getAllChildren(e) {
+  // Returns all children of element. Workaround required for IE5/Windows. Ugh.
+  return e.all ? e.all : e.getElementsByTagName('*');
+}
+
+document.getElementsBySelector = function(selector) {
+  // Attempt to fail gracefully in lesser browsers
+  if (!document.getElementsByTagName) {
+    return new Array();
+  }
+  // Split selector in to tokens
+  var tokens = selector.split(' ');
+  var currentContext = new Array(document);
+  for (var i = 0; i < tokens.length; i++) {
+    token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');;
+    if (token.indexOf('#') > -1) {
+      // Token is an ID selector
+      var bits = token.split('#');
+      var tagName = bits[0];
+      var id = bits[1];
+      var element = document.getElementById(id);
+      if (tagName && element.nodeName.toLowerCase() != tagName) {
+        // tag with that ID not found, return false
+        return new Array();
+      }
+      // Set currentContext to contain just this element
+      currentContext = new Array(element);
+      continue; // Skip to next token
+    }
+    if (token.indexOf('.') > -1) {
+      // Token contains a class selector
+      var bits = token.split('.');
+      var tagName = bits[0];
+      var className = bits[1];
+      if (!tagName) {
+        tagName = '*';
+      }
+      // Get elements matching tag, filter them for class selector
+      var found = new Array;
+      var foundCount = 0;
+      for (var h = 0; h < currentContext.length; h++) {
+        var elements;
+        if (tagName == '*') {
+            elements = getAllChildren(currentContext[h]);
+        } else {
+            try {
+                elements = currentContext[h].getElementsByTagName(tagName);
+            }
+            catch(e) {
+                elements = [];
+            }
+        }
+        for (var j = 0; j < elements.length; j++) {
+          found[foundCount++] = elements[j];
+        }
+      }
+      currentContext = new Array;
+      var currentContextIndex = 0;
+      for (var k = 0; k < found.length; k++) {
+        if (found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b'))) {
+          currentContext[currentContextIndex++] = found[k];
+        }
+      }
+      continue; // Skip to next token
+    }
+    // Code to deal with attribute selectors
+    if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) {
+      var tagName = RegExp.$1;
+      var attrName = RegExp.$2;
+      var attrOperator = RegExp.$3;
+      var attrValue = RegExp.$4;
+      if (!tagName) {
+        tagName = '*';
+      }
+      // Grab all of the tagName elements within current context
+      var found = new Array;
+      var foundCount = 0;
+      for (var h = 0; h < currentContext.length; h++) {
+        var elements;
+        if (tagName == '*') {
+            elements = getAllChildren(currentContext[h]);
+        } else {
+            elements = currentContext[h].getElementsByTagName(tagName);
+        }
+        for (var j = 0; j < elements.length; j++) {
+          found[foundCount++] = elements[j];
+        }
+      }
+      currentContext = new Array;
+      var currentContextIndex = 0;
+      var checkFunction; // This function will be used to filter the elements
+      switch (attrOperator) {
+        case '=': // Equality
+          checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
+          break;
+        case '~': // Match one of space seperated words 
+          checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); };
+          break;
+        case '|': // Match start with value followed by optional hyphen
+          checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
+          break;
+        case '^': // Match starts with value
+          checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
+          break;
+        case '$': // Match ends with value - fails with "Warning" in Opera 7
+          checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
+          break;
+        case '*': // Match ends with value
+          checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
+          break;
+        default :
+          // Just test for existence of attribute
+          checkFunction = function(e) { return e.getAttribute(attrName); };
+      }
+      currentContext = new Array;
+      var currentContextIndex = 0;
+      for (var k = 0; k < found.length; k++) {
+        if (checkFunction(found[k])) {
+          currentContext[currentContextIndex++] = found[k];
+        }
+      }
+      // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue);
+      continue; // Skip to next token
+    }
+    // If we get here, token is JUST an element (not a class or ID selector)
+    tagName = token;
+    var found = new Array;
+    var foundCount = 0;
+    for (var h = 0; h < currentContext.length; h++) {
+      var elements = currentContext[h].getElementsByTagName(tagName);
+      for (var j = 0; j < elements.length; j++) {
+        found[foundCount++] = elements[j];
+      }
+    }
+    currentContext = found;
+  }
+  return currentContext;
+}
+
+/* That revolting regular expression explained 
+/^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/
+  \---/  \---/\-------------/    \-------/
+    |      |         |               |
+    |      |         |           The value
+    |      |    ~,|,^,$,* or =
+    |   Attribute 
+   Tag
+*/
diff --git a/webapp/django/contrib/admin/media/js/timeparse.js b/webapp/django/contrib/admin/media/js/timeparse.js
new file mode 100644
index 0000000..882f41d
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/timeparse.js
@@ -0,0 +1,94 @@
+var timeParsePatterns = [
+    // 9
+    {   re: /^\d{1,2}$/i,
+        handler: function(bits) {
+            if (bits[0].length == 1) {
+                return '0' + bits[0] + ':00';
+            } else {
+                return bits[0] + ':00';
+            }
+        }
+    },
+    // 13:00
+    {   re: /^\d{2}[:.]\d{2}$/i,
+        handler: function(bits) {
+            return bits[0].replace('.', ':');
+        }
+    },
+    // 9:00
+    {   re: /^\d[:.]\d{2}$/i,
+        handler: function(bits) {
+            return '0' + bits[0].replace('.', ':');
+        }
+    },
+    // 3 am / 3 a.m. / 3am
+    {   re: /^(\d+)\s*([ap])(?:.?m.?)?$/i,
+        handler: function(bits) {
+            var hour = parseInt(bits[1]);
+            if (hour == 12) {
+                hour = 0;
+            }
+            if (bits[2].toLowerCase() == 'p') {
+                if (hour == 12) {
+                    hour = 0;
+                }
+                return (hour + 12) + ':00';
+            } else {
+                if (hour < 10) {
+                    return '0' + hour + ':00';
+                } else {
+                    return hour + ':00';
+                }
+            }
+        }
+    },
+    // 3.30 am / 3:15 a.m. / 3.00am
+    {   re: /^(\d+)[.:](\d{2})\s*([ap]).?m.?$/i,
+        handler: function(bits) {
+            var hour = parseInt(bits[1]);
+            var mins = parseInt(bits[2]);
+            if (mins < 10) {
+                mins = '0' + mins;
+            }
+            if (hour == 12) {
+                hour = 0;
+            }
+            if (bits[3].toLowerCase() == 'p') {
+                if (hour == 12) {
+                    hour = 0;
+                }
+                return (hour + 12) + ':' + mins;
+            } else {
+                if (hour < 10) {
+                    return '0' + hour + ':' + mins;
+                } else {
+                    return hour + ':' + mins;
+                }
+            }
+        }
+    },
+    // noon
+    {   re: /^no/i,
+        handler: function(bits) {
+            return '12:00';
+        }
+    },
+    // midnight
+    {   re: /^mid/i,
+        handler: function(bits) {
+            return '00:00';
+        }
+    }
+];
+
+function parseTimeString(s) {
+    for (var i = 0; i < timeParsePatterns.length; i++) {
+        var re = timeParsePatterns[i].re;
+        var handler = timeParsePatterns[i].handler;
+        var bits = re.exec(s);
+        if (bits) {
+            return handler(bits);
+        }
+    }
+    return s;
+}
diff --git a/webapp/django/contrib/admin/media/js/urlify.js b/webapp/django/contrib/admin/media/js/urlify.js
new file mode 100644
index 0000000..d8f2549
--- /dev/null
+++ b/webapp/django/contrib/admin/media/js/urlify.js
@@ -0,0 +1,140 @@
+var LATIN_MAP = {
+    'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', 'Ç':
+    'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', 'Î': 'I',
+    'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ö':
+    'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', 'Ű': 'U',
+    'Ý': 'Y', 'Þ': 'TH', 'ß': 'ss', 'à':'a', 'á':'a', 'â': 'a', 'ã': 'a', 'ä':
+    'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e',
+    'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó':
+    'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u',
+    'û': 'u', 'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y'
+}
+var LATIN_SYMBOLS_MAP = {
+    '©':'(c)'
+}
+var GREEK_MAP = {
+    'α':'a', 'β':'b', 'γ':'g', 'δ':'d', 'ε':'e', 'ζ':'z', 'η':'h', 'θ':'8',
+    'ι':'i', 'κ':'k', 'λ':'l', 'μ':'m', 'ν':'n', 'ξ':'3', 'ο':'o', 'π':'p',
+    'ρ':'r', 'σ':'s', 'τ':'t', 'υ':'y', 'φ':'f', 'χ':'x', 'ψ':'ps', 'ω':'w',
+    'ά':'a', 'έ':'e', 'ί':'i', 'ό':'o', 'ύ':'y', 'ή':'h', 'ώ':'w', 'ς':'s',
+    'ϊ':'i', 'ΰ':'y', 'ϋ':'y', 'ΐ':'i',
+    'Α':'A', 'Β':'B', 'Γ':'G', 'Δ':'D', 'Ε':'E', 'Ζ':'Z', 'Η':'H', 'Θ':'8',
+    'Ι':'I', 'Κ':'K', 'Λ':'L', 'Μ':'M', 'Ν':'N', 'Ξ':'3', 'Ο':'O', 'Π':'P',
+    'Ρ':'R', 'Σ':'S', 'Τ':'T', 'Υ':'Y', 'Φ':'F', 'Χ':'X', 'Ψ':'PS', 'Ω':'W',
+    'Ά':'A', 'Έ':'E', 'Ί':'I', 'Ό':'O', 'Ύ':'Y', 'Ή':'H', 'Ώ':'W', 'Ϊ':'I',
+    'Ϋ':'Y'
+}
+var TURKISH_MAP = {
+    'ş':'s', 'Ş':'S', 'ı':'i', 'İ':'I', 'ç':'c', 'Ç':'C', 'ü':'u', 'Ü':'U',
+    'ö':'o', 'Ö':'O', 'ğ':'g', 'Ğ':'G'
+}
+var RUSSIAN_MAP = {
+    'а':'a', 'б':'b', 'в':'v', 'г':'g', 'д':'d', 'е':'e', 'ё':'yo', 'ж':'zh',
+    'з':'z', 'и':'i', 'й':'j', 'к':'k', 'л':'l', 'м':'m', 'н':'n', 'о':'o',
+    'п':'p', 'р':'r', 'с':'s', 'т':'t', 'у':'u', 'ф':'f', 'х':'h', 'ц':'c',
+    'ч':'ch', 'ш':'sh', 'щ':'sh', 'ъ':'', 'ы':'y', 'ь':'', 'э':'e', 'ю':'yu',
+    'я':'ya',
+    'А':'A', 'Б':'B', 'В':'V', 'Г':'G', 'Д':'D', 'Е':'E', 'Ё':'Yo', 'Ж':'Zh',
+    'З':'Z', 'И':'I', 'Й':'J', 'К':'K', 'Л':'L', 'М':'M', 'Н':'N', 'О':'O',
+    'П':'P', 'Р':'R', 'С':'S', 'Т':'T', 'У':'U', 'Ф':'F', 'Х':'H', 'Ц':'C',
+    'Ч':'Ch', 'Ш':'Sh', 'Щ':'Sh', 'Ъ':'', 'Ы':'Y', 'Ь':'', 'Э':'E', 'Ю':'Yu',
+    'Я':'Ya'
+}
+var UKRAINIAN_MAP = {
+    'Є':'Ye', 'І':'I', 'Ї':'Yi', 'Ґ':'G', 'є':'ye', 'і':'i', 'ї':'yi', 'ґ':'g'
+}
+var CZECH_MAP = {
+    'č':'c', 'ď':'d', 'ě':'e', 'ň': 'n', 'ř':'r', 'š':'s', 'ť':'t', 'ů':'u',
+    'ž':'z', 'Č':'C', 'Ď':'D', 'Ě':'E', 'Ň': 'N', 'Ř':'R', 'Š':'S', 'Ť':'T',
+    'Ů':'U', 'Ž':'Z'
+}
+
+var POLISH_MAP = {
+    'ą':'a', 'ć':'c', 'ę':'e', 'ł':'l', 'ń':'n', 'ó':'o', 'ś':'s', 'ź':'z',
+    'ż':'z', 'Ą':'A', 'Ć':'C', 'Ę':'e', 'Ł':'L', 'Ń':'N', 'Ó':'o', 'Ś':'S',
+    'Ź':'Z', 'Ż':'Z'
+}
+
+var LATVIAN_MAP = {
+    'ā':'a', 'č':'c', 'ē':'e', 'ģ':'g', 'ī':'i', 'ķ':'k', 'ļ':'l', 'ņ':'n',
+    'š':'s', 'ū':'u', 'ž':'z', 'Ā':'A', 'Č':'C', 'Ē':'E', 'Ģ':'G', 'Ī':'i',
+    'Ķ':'k', 'Ļ':'L', 'Ņ':'N', 'Š':'S', 'Ū':'u', 'Ž':'Z'
+}
+
+var ALL_DOWNCODE_MAPS=new Array()
+ALL_DOWNCODE_MAPS[0]=LATIN_MAP
+ALL_DOWNCODE_MAPS[1]=LATIN_SYMBOLS_MAP
+ALL_DOWNCODE_MAPS[2]=GREEK_MAP
+ALL_DOWNCODE_MAPS[3]=TURKISH_MAP
+ALL_DOWNCODE_MAPS[4]=RUSSIAN_MAP
+ALL_DOWNCODE_MAPS[5]=UKRAINIAN_MAP
+ALL_DOWNCODE_MAPS[6]=CZECH_MAP
+ALL_DOWNCODE_MAPS[7]=POLISH_MAP
+ALL_DOWNCODE_MAPS[8]=LATVIAN_MAP
+
+var Downcoder = new Object();
+Downcoder.Initialize = function()
+{
+    if (Downcoder.map) // already made
+        return ;
+    Downcoder.map ={}
+    Downcoder.chars = '' ;
+    for(var i in ALL_DOWNCODE_MAPS)
+    {
+        var lookup = ALL_DOWNCODE_MAPS[i]
+        for (var c in lookup)
+        {
+            Downcoder.map[c] = lookup[c] ;
+            Downcoder.chars += c ;
+        }
+     }
+    Downcoder.regex = new RegExp('[' + Downcoder.chars + ']|[^' + Downcoder.chars + ']+','g') ;
+}
+
+downcode= function( slug )
+{
+    Downcoder.Initialize() ;
+    var downcoded =""
+    var pieces = slug.match(Downcoder.regex);
+    if(pieces)
+    {
+        for (var i = 0 ; i < pieces.length ; i++)
+        {
+            if (pieces[i].length == 1)
+            {
+                var mapped = Downcoder.map[pieces[i]] ;
+                if (mapped != null)
+                {
+                    downcoded+=mapped;
+                    continue ;
+                }
+            }
+            downcoded+=pieces[i];
+        }
+    }
+    else
+    {
+        downcoded = slug;
+    }
+    return downcoded;
+}
+
+
+function URLify(s, num_chars) {
+    // changes, e.g., "Petty theft" to "petty_theft"
+    // remove all these words from the string before urlifying
+    s = downcode(s);
+    removelist = ["a", "an", "as", "at", "before", "but", "by", "for", "from",
+                  "is", "in", "into", "like", "of", "off", "on", "onto", "per",
+                  "since", "than", "the", "this", "that", "to", "up", "via",
+                  "with"];
+    r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi');
+    s = s.replace(r, '');
+    // if downcode doesn't hit, the char will be stripped here
+    s = s.replace(/[^-\w\s]/g, '');  // remove unneeded chars
+    s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
+    s = s.replace(/[-\s]+/g, '-');   // convert spaces to hyphens
+    s = s.toLowerCase();             // convert to lowercase
+    return s.substring(0, num_chars);// trim to first num_chars chars
+}
+
diff --git a/webapp/django/contrib/admin/models.py b/webapp/django/contrib/admin/models.py
new file mode 100644
index 0000000..259884f
--- /dev/null
+++ b/webapp/django/contrib/admin/models.py
@@ -0,0 +1,54 @@
+from django.db import models
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.auth.models import User
+from django.contrib.admin.util import quote
+from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import smart_unicode
+from django.utils.safestring import mark_safe
+
+ADDITION = 1
+CHANGE = 2
+DELETION = 3
+
+class LogEntryManager(models.Manager):
+    def log_action(self, user_id, content_type_id, object_id, object_repr, action_flag, change_message=''):
+        e = self.model(None, None, user_id, content_type_id, smart_unicode(object_id), object_repr[:200], action_flag, change_message)
+        e.save()
+
+class LogEntry(models.Model):
+    action_time = models.DateTimeField(_('action time'), auto_now=True)
+    user = models.ForeignKey(User)
+    content_type = models.ForeignKey(ContentType, blank=True, null=True)
+    object_id = models.TextField(_('object id'), blank=True, null=True)
+    object_repr = models.CharField(_('object repr'), max_length=200)
+    action_flag = models.PositiveSmallIntegerField(_('action flag'))
+    change_message = models.TextField(_('change message'), blank=True)
+    objects = LogEntryManager()
+    class Meta:
+        verbose_name = _('log entry')
+        verbose_name_plural = _('log entries')
+        db_table = 'django_admin_log'
+        ordering = ('-action_time',)
+
+    def __repr__(self):
+        return smart_unicode(self.action_time)
+
+    def is_addition(self):
+        return self.action_flag == ADDITION
+
+    def is_change(self):
+        return self.action_flag == CHANGE
+
+    def is_deletion(self):
+        return self.action_flag == DELETION
+
+    def get_edited_object(self):
+        "Returns the edited object represented by this log entry"
+        return self.content_type.get_object_for_this_type(pk=self.object_id)
+
+    def get_admin_url(self):
+        """
+        Returns the admin URL to edit the object represented by this log entry.
+        This is relative to the Django admin index page.
+        """
+        return mark_safe(u"%s/%s/%s/" % (self.content_type.app_label, self.content_type.model, quote(self.object_id)))
diff --git a/webapp/django/contrib/admin/options.py b/webapp/django/contrib/admin/options.py
new file mode 100644
index 0000000..1d00683
--- /dev/null
+++ b/webapp/django/contrib/admin/options.py
@@ -0,0 +1,790 @@
+from django import forms, template
+from django.forms.formsets import all_valid
+from django.forms.models import modelform_factory, inlineformset_factory
+from django.forms.models import BaseInlineFormSet
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.admin import widgets
+from django.contrib.admin import helpers
+from django.contrib.admin.util import quote, unquote, flatten_fieldsets, get_deleted_objects
+from django.core.exceptions import PermissionDenied
+from django.db import models, transaction
+from django.http import Http404, HttpResponse, HttpResponseRedirect
+from django.shortcuts import get_object_or_404, render_to_response
+from django.utils.html import escape
+from django.utils.safestring import mark_safe
+from django.utils.text import capfirst, get_text_list
+from django.utils.translation import ugettext as _
+from django.utils.encoding import force_unicode
+try:
+    set
+except NameError:
+    from sets import Set as set     # Python 2.3 fallback
+
+HORIZONTAL, VERTICAL = 1, 2
+# returns the <ul> class for a given radio_admin field
+get_ul_class = lambda x: 'radiolist%s' % ((x == HORIZONTAL) and ' inline' or '')
+
+class IncorrectLookupParameters(Exception):
+    pass
+
+class BaseModelAdmin(object):
+    """Functionality common to both ModelAdmin and InlineAdmin."""
+    raw_id_fields = ()
+    fields = None
+    fieldsets = None
+    form = forms.ModelForm
+    filter_vertical = ()
+    filter_horizontal = ()
+    radio_fields = {}
+    prepopulated_fields = {}
+
+    def formfield_for_dbfield(self, db_field, **kwargs):
+        """
+        Hook for specifying the form Field instance for a given database Field
+        instance.
+
+        If kwargs are given, they're passed to the form Field's constructor.
+        """
+        
+        # If the field specifies choices, we don't need to look for special
+        # admin widgets - we just need to use a select widget of some kind.
+        if db_field.choices:
+            if db_field.name in self.radio_fields:
+                # If the field is named as a radio_field, use a RadioSelect
+                kwargs['widget'] = widgets.AdminRadioSelect(
+                    choices=db_field.get_choices(include_blank=db_field.blank,
+                        blank_choice=[('', _('None'))]),
+                    attrs={
+                        'class': get_ul_class(self.radio_fields[db_field.name]),
+                    }
+                )
+                return db_field.formfield(**kwargs)
+            else:
+                # Otherwise, use the default select widget.
+                return db_field.formfield(**kwargs)
+
+        # For DateTimeFields, use a special field and widget.
+        if isinstance(db_field, models.DateTimeField):
+            kwargs['form_class'] = forms.SplitDateTimeField
+            kwargs['widget'] = widgets.AdminSplitDateTime()
+            return db_field.formfield(**kwargs)
+
+        # For DateFields, add a custom CSS class.
+        if isinstance(db_field, models.DateField):
+            kwargs['widget'] = widgets.AdminDateWidget
+            return db_field.formfield(**kwargs)
+
+        # For TimeFields, add a custom CSS class.
+        if isinstance(db_field, models.TimeField):
+            kwargs['widget'] = widgets.AdminTimeWidget
+            return db_field.formfield(**kwargs)
+        
+        # For TextFields, add a custom CSS class.
+        if isinstance(db_field, models.TextField):
+            kwargs['widget'] = widgets.AdminTextareaWidget
+            return db_field.formfield(**kwargs)
+        
+        # For URLFields, add a custom CSS class.
+        if isinstance(db_field, models.URLField):
+            kwargs['widget'] = widgets.AdminURLFieldWidget
+            return db_field.formfield(**kwargs)
+        
+        # For IntegerFields, add a custom CSS class.
+        if isinstance(db_field, models.IntegerField):
+            kwargs['widget'] = widgets.AdminIntegerFieldWidget
+            return db_field.formfield(**kwargs)
+
+        # For TextInputs, add a custom CSS class.
+        if isinstance(db_field, models.CharField):
+            kwargs['widget'] = widgets.AdminTextInputWidget
+            return db_field.formfield(**kwargs)
+    
+        # For FileFields and ImageFields add a link to the current file.
+        if isinstance(db_field, models.ImageField) or isinstance(db_field, models.FileField):
+            kwargs['widget'] = widgets.AdminFileWidget
+            return db_field.formfield(**kwargs)
+
+        # For ForeignKey or ManyToManyFields, use a special widget.
+        if isinstance(db_field, (models.ForeignKey, models.ManyToManyField)):
+            if isinstance(db_field, models.ForeignKey) and db_field.name in self.raw_id_fields:
+                kwargs['widget'] = widgets.ForeignKeyRawIdWidget(db_field.rel)
+            elif isinstance(db_field, models.ForeignKey) and db_field.name in self.radio_fields:
+                kwargs['widget'] = widgets.AdminRadioSelect(attrs={
+                    'class': get_ul_class(self.radio_fields[db_field.name]),
+                })
+                kwargs['empty_label'] = db_field.blank and _('None') or None
+            else:
+                if isinstance(db_field, models.ManyToManyField):
+                    # If it uses an intermediary model, don't show field in admin.
+                    if db_field.rel.through is not None:
+                        return None
+                    elif db_field.name in self.raw_id_fields:
+                        kwargs['widget'] = widgets.ManyToManyRawIdWidget(db_field.rel)
+                        kwargs['help_text'] = ''
+                    elif db_field.name in (list(self.filter_vertical) + list(self.filter_horizontal)):
+                        kwargs['widget'] = widgets.FilteredSelectMultiple(db_field.verbose_name, (db_field.name in self.filter_vertical))
+            # Wrap the widget's render() method with a method that adds
+            # extra HTML to the end of the rendered output.
+            formfield = db_field.formfield(**kwargs)
+            # Don't wrap raw_id fields. Their add function is in the popup window.
+            if not db_field.name in self.raw_id_fields:
+                # formfield can be None if it came from a OneToOneField with
+                # parent_link=True
+                if formfield is not None:
+                    formfield.widget = widgets.RelatedFieldWidgetWrapper(formfield.widget, db_field.rel, self.admin_site)
+            return formfield
+
+        # For any other type of field, just call its formfield() method.
+        return db_field.formfield(**kwargs)
+
+    def _declared_fieldsets(self):
+        if self.fieldsets:
+            return self.fieldsets
+        elif self.fields:
+            return [(None, {'fields': self.fields})]
+        return None
+    declared_fieldsets = property(_declared_fieldsets)
+
+class ModelAdmin(BaseModelAdmin):
+    "Encapsulates all admin options and functionality for a given model."
+    __metaclass__ = forms.MediaDefiningClass
+
+    list_display = ('__str__',)
+    list_display_links = ()
+    list_filter = ()
+    list_select_related = False
+    list_per_page = 100
+    search_fields = ()
+    date_hierarchy = None
+    save_as = False
+    save_on_top = False
+    ordering = None
+    inlines = []
+
+    # Custom templates (designed to be over-ridden in subclasses)
+    change_form_template = None
+    change_list_template = None
+    delete_confirmation_template = None
+    object_history_template = None
+
+    def __init__(self, model, admin_site):
+        self.model = model
+        self.opts = model._meta
+        self.admin_site = admin_site
+        self.inline_instances = []
+        for inline_class in self.inlines:
+            inline_instance = inline_class(self.model, self.admin_site)
+            self.inline_instances.append(inline_instance)
+        super(ModelAdmin, self).__init__()
+
+    def __call__(self, request, url):
+        # Delegate to the appropriate method, based on the URL.
+        if url is None:
+            return self.changelist_view(request)
+        elif url.endswith('add'):
+            return self.add_view(request)
+        elif url.endswith('history'):
+            return self.history_view(request, unquote(url[:-8]))
+        elif url.endswith('delete'):
+            return self.delete_view(request, unquote(url[:-7]))
+        else:
+            return self.change_view(request, unquote(url))
+
+    def _media(self):
+        from django.conf import settings
+
+        js = ['js/core.js', 'js/admin/RelatedObjectLookups.js']
+        if self.prepopulated_fields:
+            js.append('js/urlify.js')
+        if self.opts.get_ordered_objects():
+            js.extend(['js/getElementsBySelector.js', 'js/dom-drag.js' , 'js/admin/ordering.js'])
+        if self.filter_vertical or self.filter_horizontal:
+            js.extend(['js/SelectBox.js' , 'js/SelectFilter2.js'])
+
+        return forms.Media(js=['%s%s' % (settings.ADMIN_MEDIA_PREFIX, url) for url in js])
+    media = property(_media)
+
+    def has_add_permission(self, request):
+        "Returns True if the given request has permission to add an object."
+        opts = self.opts
+        return request.user.has_perm(opts.app_label + '.' + opts.get_add_permission())
+
+    def has_change_permission(self, request, obj=None):
+        """
+        Returns True if the given request has permission to change the given
+        Django model instance.
+
+        If `obj` is None, this should return True if the given request has
+        permission to change *any* object of the given type.
+        """
+        opts = self.opts
+        return request.user.has_perm(opts.app_label + '.' + opts.get_change_permission())
+
+    def has_delete_permission(self, request, obj=None):
+        """
+        Returns True if the given request has permission to change the given
+        Django model instance.
+
+        If `obj` is None, this should return True if the given request has
+        permission to delete *any* object of the given type.
+        """
+        opts = self.opts
+        return request.user.has_perm(opts.app_label + '.' + opts.get_delete_permission())
+
+    def queryset(self, request):
+        """
+        Returns a QuerySet of all model instances that can be edited by the
+        admin site. This is used by changelist_view.
+        """
+        qs = self.model._default_manager.get_query_set()
+        # TODO: this should be handled by some parameter to the ChangeList.
+        ordering = self.ordering or () # otherwise we might try to *None, which is bad ;)
+        if ordering:
+            qs = qs.order_by(*ordering)
+        return qs
+
+    def get_fieldsets(self, request, obj=None):
+        "Hook for specifying fieldsets for the add form."
+        if self.declared_fieldsets:
+            return self.declared_fieldsets
+        form = self.get_form(request, obj)
+        return [(None, {'fields': form.base_fields.keys()})]
+
+    def get_form(self, request, obj=None, **kwargs):
+        """
+        Returns a Form class for use in the admin add view. This is used by
+        add_view and change_view.
+        """
+        if self.declared_fieldsets:
+            fields = flatten_fieldsets(self.declared_fieldsets)
+        else:
+            fields = None
+        defaults = {
+            "form": self.form,
+            "fields": fields,
+            "formfield_callback": self.formfield_for_dbfield,
+        }
+        defaults.update(kwargs)
+        return modelform_factory(self.model, **defaults)
+
+    def get_formsets(self, request, obj=None):
+        for inline in self.inline_instances:
+            yield inline.get_formset(request, obj)
+            
+    def log_addition(self, request, object):
+        """
+        Log that an object has been successfully added. 
+        
+        The default implementation creates an admin LogEntry object.
+        """
+        from django.contrib.admin.models import LogEntry, ADDITION
+        LogEntry.objects.log_action(
+            user_id         = request.user.pk, 
+            content_type_id = ContentType.objects.get_for_model(object).pk,
+            object_id       = object.pk,
+            object_repr     = force_unicode(object), 
+            action_flag     = ADDITION
+        )
+        
+    def log_change(self, request, object, message):
+        """
+        Log that an object has been successfully changed. 
+        
+        The default implementation creates an admin LogEntry object.
+        """
+        from django.contrib.admin.models import LogEntry, CHANGE
+        LogEntry.objects.log_action(
+            user_id         = request.user.pk, 
+            content_type_id = ContentType.objects.get_for_model(object).pk, 
+            object_id       = object.pk, 
+            object_repr     = force_unicode(object), 
+            action_flag     = CHANGE, 
+            change_message  = message
+        )
+        
+    def log_deletion(self, request, object, object_repr):
+        """
+        Log that an object has been successfully deleted. Note that since the
+        object is deleted, it might no longer be safe to call *any* methods
+        on the object, hence this method getting object_repr.
+        
+        The default implementation creates an admin LogEntry object.
+        """
+        from django.contrib.admin.models import LogEntry, DELETION
+        LogEntry.objects.log_action(
+            user_id         = request.user.id, 
+            content_type_id = ContentType.objects.get_for_model(self.model).pk, 
+            object_id       = object.pk, 
+            object_repr     = object_repr,
+            action_flag     = DELETION
+        )
+        
+    
+    def construct_change_message(self, request, form, formsets):
+        """
+        Construct a change message from a changed object.
+        """
+        change_message = []
+        if form.changed_data:
+            change_message.append(_('Changed %s.') % get_text_list(form.changed_data, _('and')))
+
+        if formsets:
+            for formset in formsets:
+                for added_object in formset.new_objects:
+                    change_message.append(_('Added %(name)s "%(object)s".')
+                                          % {'name': added_object._meta.verbose_name,
+                                             'object': added_object})
+                for changed_object, changed_fields in formset.changed_objects:
+                    change_message.append(_('Changed %(list)s for %(name)s "%(object)s".')
+                                          % {'list': get_text_list(changed_fields, _('and')),
+                                             'name': changed_object._meta.verbose_name,
+                                             'object': changed_object})
+                for deleted_object in formset.deleted_objects:
+                    change_message.append(_('Deleted %(name)s "%(object)s".')
+                                          % {'name': deleted_object._meta.verbose_name,
+                                             'object': deleted_object})
+        change_message = ' '.join(change_message)
+        return change_message or _('No fields changed.')
+    
+    def message_user(self, request, message):
+        """
+        Send a message to the user. The default implementation 
+        posts a message using the auth Message object.
+        """
+        request.user.message_set.create(message=message)
+
+    def save_form(self, request, form, change):
+        """
+        Given a ModelForm return an unsaved instance. ``change`` is True if
+        the object is being changed, and False if it's being added.
+        """
+        return form.save(commit=False)
+    
+    def save_model(self, request, obj, form, change):
+        """
+        Given a model instance save it to the database.
+        """
+        obj.save()
+
+    def save_formset(self, request, form, formset, change):
+        """
+        Given an inline formset save it to the database.
+        """
+        formset.save()
+
+    def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None):
+        opts = self.model._meta
+        app_label = opts.app_label
+        ordered_objects = opts.get_ordered_objects()
+        context.update({
+            'add': add,
+            'change': change,
+            'has_add_permission': self.has_add_permission(request),
+            'has_change_permission': self.has_change_permission(request, obj),
+            'has_delete_permission': self.has_delete_permission(request, obj),
+            'has_file_field': True, # FIXME - this should check if form or formsets have a FileField,
+            'has_absolute_url': hasattr(self.model, 'get_absolute_url'),
+            'ordered_objects': ordered_objects,
+            'form_url': mark_safe(form_url),
+            'opts': opts,
+            'content_type_id': ContentType.objects.get_for_model(self.model).id,
+            'save_as': self.save_as,
+            'save_on_top': self.save_on_top,
+            'root_path': self.admin_site.root_path,
+        })
+        return render_to_response(self.change_form_template or [
+            "admin/%s/%s/change_form.html" % (app_label, opts.object_name.lower()),
+            "admin/%s/change_form.html" % app_label,
+            "admin/change_form.html"
+        ], context, context_instance=template.RequestContext(request))
+    
+    def response_add(self, request, obj, post_url_continue='../%s/'):
+        """
+        Determines the HttpResponse for the add_view stage.
+        """
+        opts = obj._meta
+        pk_value = obj._get_pk_val()
+        
+        msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': force_unicode(obj)}
+        # Here, we distinguish between different save types by checking for
+        # the presence of keys in request.POST.
+        if request.POST.has_key("_continue"):
+            self.message_user(request, msg + ' ' + _("You may edit it again below."))
+            if request.POST.has_key("_popup"):
+                post_url_continue += "?_popup=1"
+            return HttpResponseRedirect(post_url_continue % pk_value)
+        
+        if request.POST.has_key("_popup"):
+            return HttpResponse('<script type="text/javascript">opener.dismissAddAnotherPopup(window, "%s", "%s");</script>' % \
+                # escape() calls force_unicode.
+                (escape(pk_value), escape(obj)))
+        elif request.POST.has_key("_addanother"):
+            self.message_user(request, msg + ' ' + (_("You may add another %s below.") % force_unicode(opts.verbose_name)))
+            return HttpResponseRedirect(request.path)
+        else:
+            self.message_user(request, msg)
+
+            # Figure out where to redirect. If the user has change permission,
+            # redirect to the change-list page for this object. Otherwise,
+            # redirect to the admin index.
+            if self.has_change_permission(request, None):
+                post_url = '../'
+            else:
+                post_url = '../../../'
+            return HttpResponseRedirect(post_url)
+    
+    def response_change(self, request, obj):
+        """
+        Determines the HttpResponse for the change_view stage.
+        """
+        opts = obj._meta
+        pk_value = obj._get_pk_val()
+        
+        msg = _('The %(name)s "%(obj)s" was changed successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': force_unicode(obj)}
+        if request.POST.has_key("_continue"):
+            self.message_user(request, msg + ' ' + _("You may edit it again below."))
+            if request.REQUEST.has_key('_popup'):
+                return HttpResponseRedirect(request.path + "?_popup=1")
+            else:
+                return HttpResponseRedirect(request.path)
+        elif request.POST.has_key("_saveasnew"):
+            msg = _('The %(name)s "%(obj)s" was added successfully. You may edit it again below.') % {'name': force_unicode(opts.verbose_name), 'obj': obj}
+            self.message_user(request, msg)
+            return HttpResponseRedirect("../%s/" % pk_value)
+        elif request.POST.has_key("_addanother"):
+            self.message_user(request, msg + ' ' + (_("You may add another %s below.") % force_unicode(opts.verbose_name)))
+            return HttpResponseRedirect("../add/")
+        else:
+            self.message_user(request, msg)
+            return HttpResponseRedirect("../")
+
+    def add_view(self, request, form_url='', extra_context=None):
+        "The 'add' admin view for this model."
+        model = self.model
+        opts = model._meta
+        app_label = opts.app_label
+
+        if not self.has_add_permission(request):
+            raise PermissionDenied
+
+        if self.has_change_permission(request, None):
+            # redirect to list view
+            post_url = '../'
+        else:
+            # Object list will give 'Permission Denied', so go back to admin home
+            post_url = '../../../'
+
+        ModelForm = self.get_form(request)
+        formsets = []
+        if request.method == 'POST':
+            form = ModelForm(request.POST, request.FILES)
+            if form.is_valid():
+                form_validated = True
+                new_object = self.save_form(request, form, change=False)
+            else:
+                form_validated = False
+                new_object = self.model()
+            for FormSet in self.get_formsets(request):
+                formset = FormSet(data=request.POST, files=request.FILES,
+                                  instance=new_object,
+                                  save_as_new=request.POST.has_key("_saveasnew"))
+                formsets.append(formset)
+            if all_valid(formsets) and form_validated:
+                self.save_model(request, new_object, form, change=False)
+                form.save_m2m()
+                for formset in formsets:
+                    self.save_formset(request, form, formset, change=False)
+                
+                self.log_addition(request, new_object)
+                return self.response_add(request, new_object)
+        else:
+            form = ModelForm(initial=dict(request.GET.items()))
+            for FormSet in self.get_formsets(request):
+                formset = FormSet(instance=self.model())
+                formsets.append(formset)
+
+        adminForm = helpers.AdminForm(form, list(self.get_fieldsets(request)), self.prepopulated_fields)
+        media = self.media + adminForm.media
+
+        inline_admin_formsets = []
+        for inline, formset in zip(self.inline_instances, formsets):
+            fieldsets = list(inline.get_fieldsets(request))
+            inline_admin_formset = helpers.InlineAdminFormSet(inline, formset, fieldsets)
+            inline_admin_formsets.append(inline_admin_formset)
+            media = media + inline_admin_formset.media
+
+        context = {
+            'title': _('Add %s') % force_unicode(opts.verbose_name),
+            'adminform': adminForm,
+            'is_popup': request.REQUEST.has_key('_popup'),
+            'show_delete': False,
+            'media': mark_safe(media),
+            'inline_admin_formsets': inline_admin_formsets,
+            'errors': helpers.AdminErrorList(form, formsets),
+            'root_path': self.admin_site.root_path,
+            'app_label': app_label,
+        }
+        context.update(extra_context or {})
+        return self.render_change_form(request, context, add=True)
+    add_view = transaction.commit_on_success(add_view)
+
+    def change_view(self, request, object_id, extra_context=None):
+        "The 'change' admin view for this model."
+        model = self.model
+        opts = model._meta
+        app_label = opts.app_label
+
+        try:
+            obj = model._default_manager.get(pk=object_id)
+        except model.DoesNotExist:
+            # Don't raise Http404 just yet, because we haven't checked
+            # permissions yet. We don't want an unauthenticated user to be able
+            # to determine whether a given object exists.
+            obj = None
+
+        if not self.has_change_permission(request, obj):
+            raise PermissionDenied
+
+        if obj is None:
+            raise Http404('%s object with primary key %r does not exist.' % (force_unicode(opts.verbose_name), escape(object_id)))
+
+        if request.POST and request.POST.has_key("_saveasnew"):
+            return self.add_view(request, form_url='../../add/')
+
+        ModelForm = self.get_form(request, obj)
+        formsets = []
+        if request.method == 'POST':
+            form = ModelForm(request.POST, request.FILES, instance=obj)
+            if form.is_valid():
+                form_validated = True
+                new_object = self.save_form(request, form, change=True)
+            else:
+                form_validated = False
+                new_object = obj
+            for FormSet in self.get_formsets(request, new_object):
+                formset = FormSet(request.POST, request.FILES,
+                                  instance=new_object)
+                formsets.append(formset)
+
+            if all_valid(formsets) and form_validated:
+                self.save_model(request, new_object, form, change=True)
+                form.save_m2m()
+                for formset in formsets:
+                    self.save_formset(request, form, formset, change=True)
+                
+                change_message = self.construct_change_message(request, form, formsets)
+                self.log_change(request, new_object, change_message)
+                return self.response_change(request, new_object)
+        else:
+            form = ModelForm(instance=obj)
+            for FormSet in self.get_formsets(request, obj):
+                formset = FormSet(instance=obj)
+                formsets.append(formset)
+
+        adminForm = helpers.AdminForm(form, self.get_fieldsets(request, obj), self.prepopulated_fields)
+        media = self.media + adminForm.media
+
+        inline_admin_formsets = []
+        for inline, formset in zip(self.inline_instances, formsets):
+            fieldsets = list(inline.get_fieldsets(request, obj))
+            inline_admin_formset = helpers.InlineAdminFormSet(inline, formset, fieldsets)
+            inline_admin_formsets.append(inline_admin_formset)
+            media = media + inline_admin_formset.media
+
+        context = {
+            'title': _('Change %s') % force_unicode(opts.verbose_name),
+            'adminform': adminForm,
+            'object_id': object_id,
+            'original': obj,
+            'is_popup': request.REQUEST.has_key('_popup'),
+            'media': mark_safe(media),
+            'inline_admin_formsets': inline_admin_formsets,
+            'errors': helpers.AdminErrorList(form, formsets),
+            'root_path': self.admin_site.root_path,
+            'app_label': app_label,
+        }
+        context.update(extra_context or {})
+        return self.render_change_form(request, context, change=True, obj=obj)
+    change_view = transaction.commit_on_success(change_view)
+
+    def changelist_view(self, request, extra_context=None):
+        "The 'change list' admin view for this model."
+        from django.contrib.admin.views.main import ChangeList, ERROR_FLAG
+        opts = self.model._meta
+        app_label = opts.app_label
+        if not self.has_change_permission(request, None):
+            raise PermissionDenied
+        try:
+            cl = ChangeList(request, self.model, self.list_display, self.list_display_links, self.list_filter,
+                self.date_hierarchy, self.search_fields, self.list_select_related, self.list_per_page, self)
+        except IncorrectLookupParameters:
+            # Wacky lookup parameters were given, so redirect to the main
+            # changelist page, without parameters, and pass an 'invalid=1'
+            # parameter via the query string. If wacky parameters were given and
+            # the 'invalid=1' parameter was already in the query string, something
+            # is screwed up with the database, so display an error page.
+            if ERROR_FLAG in request.GET.keys():
+                return render_to_response('admin/invalid_setup.html', {'title': _('Database error')})
+            return HttpResponseRedirect(request.path + '?' + ERROR_FLAG + '=1')
+
+        context = {
+            'title': cl.title,
+            'is_popup': cl.is_popup,
+            'cl': cl,
+            'has_add_permission': self.has_add_permission(request),
+            'root_path': self.admin_site.root_path,
+            'app_label': app_label,
+        }
+        context.update(extra_context or {})
+        return render_to_response(self.change_list_template or [
+            'admin/%s/%s/change_list.html' % (app_label, opts.object_name.lower()),
+            'admin/%s/change_list.html' % app_label,
+            'admin/change_list.html'
+        ], context, context_instance=template.RequestContext(request))
+
+    def delete_view(self, request, object_id, extra_context=None):
+        "The 'delete' admin view for this model."
+        opts = self.model._meta
+        app_label = opts.app_label
+
+        try:
+            obj = self.model._default_manager.get(pk=object_id)
+        except self.model.DoesNotExist:
+            # Don't raise Http404 just yet, because we haven't checked
+            # permissions yet. We don't want an unauthenticated user to be able
+            # to determine whether a given object exists.
+            obj = None
+
+        if not self.has_delete_permission(request, obj):
+            raise PermissionDenied
+
+        if obj is None:
+            raise Http404('%s object with primary key %r does not exist.' % (force_unicode(opts.verbose_name), escape(object_id)))
+
+        # Populate deleted_objects, a data structure of all related objects that
+        # will also be deleted.
+        deleted_objects = [mark_safe(u'%s: <a href="../../%s/">%s</a>' % (escape(force_unicode(capfirst(opts.verbose_name))), quote(object_id), escape(obj))), []]
+        perms_needed = set()
+        get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1, self.admin_site)
+
+        if request.POST: # The user has already confirmed the deletion.
+            if perms_needed:
+                raise PermissionDenied
+            obj_display = str(obj)
+            obj.delete()
+            
+            self.log_deletion(request, obj, obj_display)
+            self.message_user(request, _('The %(name)s "%(obj)s" was deleted successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': force_unicode(obj_display)})
+            
+            if not self.has_change_permission(request, None):
+                return HttpResponseRedirect("../../../../")
+            return HttpResponseRedirect("../../")
+
+        context = {
+            "title": _("Are you sure?"),
+            "object_name": force_unicode(opts.verbose_name),
+            "object": obj,
+            "deleted_objects": deleted_objects,
+            "perms_lacking": perms_needed,
+            "opts": opts,
+            "root_path": self.admin_site.root_path,
+            "app_label": app_label,
+        }
+        context.update(extra_context or {})
+        return render_to_response(self.delete_confirmation_template or [
+            "admin/%s/%s/delete_confirmation.html" % (app_label, opts.object_name.lower()),
+            "admin/%s/delete_confirmation.html" % app_label,
+            "admin/delete_confirmation.html"
+        ], context, context_instance=template.RequestContext(request))
+
+    def history_view(self, request, object_id, extra_context=None):
+        "The 'history' admin view for this model."
+        from django.contrib.admin.models import LogEntry
+        model = self.model
+        opts = model._meta
+        action_list = LogEntry.objects.filter(
+            object_id = object_id,
+            content_type__id__exact = ContentType.objects.get_for_model(model).id
+        ).select_related().order_by('action_time')
+        # If no history was found, see whether this object even exists.
+        obj = get_object_or_404(model, pk=object_id)
+        context = {
+            'title': _('Change history: %s') % force_unicode(obj),
+            'action_list': action_list,
+            'module_name': capfirst(force_unicode(opts.verbose_name_plural)),
+            'object': obj,
+            'root_path': self.admin_site.root_path,
+        }
+        context.update(extra_context or {})
+        return render_to_response(self.object_history_template or [
+            "admin/%s/%s/object_history.html" % (opts.app_label, opts.object_name.lower()),
+            "admin/%s/object_history.html" % opts.app_label,
+            "admin/object_history.html"
+        ], context, context_instance=template.RequestContext(request))
+
+class InlineModelAdmin(BaseModelAdmin):
+    """
+    Options for inline editing of ``model`` instances.
+
+    Provide ``name`` to specify the attribute name of the ``ForeignKey`` from
+    ``model`` to its parent. This is required if ``model`` has more than one
+    ``ForeignKey`` to its parent.
+    """
+    model = None
+    fk_name = None
+    formset = BaseInlineFormSet
+    extra = 3
+    max_num = 0
+    template = None
+    verbose_name = None
+    verbose_name_plural = None
+
+    def __init__(self, parent_model, admin_site):
+        self.admin_site = admin_site
+        self.parent_model = parent_model
+        self.opts = self.model._meta
+        super(InlineModelAdmin, self).__init__()
+        if self.verbose_name is None:
+            self.verbose_name = self.model._meta.verbose_name
+        if self.verbose_name_plural is None:
+            self.verbose_name_plural = self.model._meta.verbose_name_plural
+    
+    def _media(self):
+        from django.conf import settings
+        js = []
+        if self.prepopulated_fields:
+            js.append('js/urlify.js')
+        if self.filter_vertical or self.filter_horizontal:
+            js.extend(['js/SelectBox.js' , 'js/SelectFilter2.js'])
+        return forms.Media(js=['%s%s' % (settings.ADMIN_MEDIA_PREFIX, url) for url in js])
+    media = property(_media)
+
+    def get_formset(self, request, obj=None, **kwargs):
+        """Returns a BaseInlineFormSet class for use in admin add/change views."""
+        if self.declared_fieldsets:
+            fields = flatten_fieldsets(self.declared_fieldsets)
+        else:
+            fields = None
+        defaults = {
+            "form": self.form,
+            "formset": self.formset,
+            "fk_name": self.fk_name,
+            "fields": fields,
+            "formfield_callback": self.formfield_for_dbfield,
+            "extra": self.extra,
+            "max_num": self.max_num,
+        }
+        defaults.update(kwargs)
+        return inlineformset_factory(self.parent_model, self.model, **defaults)
+
+    def get_fieldsets(self, request, obj=None):
+        if self.declared_fieldsets:
+            return self.declared_fieldsets
+        form = self.get_formset(request).form
+        return [(None, {'fields': form.base_fields.keys()})]
+
+class StackedInline(InlineModelAdmin):
+    template = 'admin/edit_inline/stacked.html'
+
+class TabularInline(InlineModelAdmin):
+    template = 'admin/edit_inline/tabular.html'
diff --git a/webapp/django/contrib/admin/sites.py b/webapp/django/contrib/admin/sites.py
new file mode 100644
index 0000000..25ce375
--- /dev/null
+++ b/webapp/django/contrib/admin/sites.py
@@ -0,0 +1,413 @@
+import base64
+import cPickle as pickle
+import re
+
+from django import http, template
+from django.contrib.admin import ModelAdmin
+from django.contrib.auth import authenticate, login
+from django.db.models.base import ModelBase
+from django.core.exceptions import ImproperlyConfigured
+from django.shortcuts import render_to_response
+from django.utils.safestring import mark_safe
+from django.utils.text import capfirst
+from django.utils.translation import ugettext_lazy, ugettext as _
+from django.views.decorators.cache import never_cache
+from django.conf import settings
+from django.utils.hashcompat import md5_constructor
+
+ERROR_MESSAGE = ugettext_lazy("Please enter a correct username and password. Note that both fields are case-sensitive.")
+LOGIN_FORM_KEY = 'this_is_the_login_form'
+
+class AlreadyRegistered(Exception):
+    pass
+
+class NotRegistered(Exception):
+    pass
+
+def _encode_post_data(post_data):
+    pickled = pickle.dumps(post_data)
+    pickled_md5 = md5_constructor(pickled + settings.SECRET_KEY).hexdigest()
+    return base64.encodestring(pickled + pickled_md5)
+
+def _decode_post_data(encoded_data):
+    encoded_data = base64.decodestring(encoded_data)
+    pickled, tamper_check = encoded_data[:-32], encoded_data[-32:]
+    if md5_constructor(pickled + settings.SECRET_KEY).hexdigest() != tamper_check:
+        from django.core.exceptions import SuspiciousOperation
+        raise SuspiciousOperation, "User may have tampered with session cookie."
+    return pickle.loads(pickled)
+
+class AdminSite(object):
+    """
+    An AdminSite object encapsulates an instance of the Django admin application, ready
+    to be hooked in to your URLConf. Models are registered with the AdminSite using the
+    register() method, and the root() method can then be used as a Django view function
+    that presents a full admin interface for the collection of registered models.
+    """
+
+    index_template = None
+    login_template = None
+    app_index_template = None
+
+    def __init__(self):
+        self._registry = {} # model_class class -> admin_class instance
+
+    def register(self, model_or_iterable, admin_class=None, **options):
+        """
+        Registers the given model(s) with the given admin class.
+
+        The model(s) should be Model classes, not instances.
+
+        If an admin class isn't given, it will use ModelAdmin (the default
+        admin options). If keyword arguments are given -- e.g., list_display --
+        they'll be applied as options to the admin class.
+
+        If a model is already registered, this will raise AlreadyRegistered.
+        """
+        # Don't import the humongous validation code unless required
+        if admin_class and settings.DEBUG:
+            from django.contrib.admin.validation import validate
+        else:
+            validate = lambda model, adminclass: None
+
+        if not admin_class:
+            admin_class = ModelAdmin
+        if isinstance(model_or_iterable, ModelBase):
+            model_or_iterable = [model_or_iterable]
+        for model in model_or_iterable:
+            if model in self._registry:
+                raise AlreadyRegistered('The model %s is already registered' % model.__name__)
+
+            # If we got **options then dynamically construct a subclass of
+            # admin_class with those **options.
+            if options:
+                # For reasons I don't quite understand, without a __module__
+                # the created class appears to "live" in the wrong place,
+                # which causes issues later on.
+                options['__module__'] = __name__
+                admin_class = type("%sAdmin" % model.__name__, (admin_class,), options)
+
+            # Validate (which might be a no-op)
+            validate(admin_class, model)
+
+            # Instantiate the admin class to save in the registry
+            self._registry[model] = admin_class(model, self)
+
+    def unregister(self, model_or_iterable):
+        """
+        Unregisters the given model(s).
+
+        If a model isn't already registered, this will raise NotRegistered.
+        """
+        if isinstance(model_or_iterable, ModelBase):
+            model_or_iterable = [model_or_iterable]
+        for model in model_or_iterable:
+            if model not in self._registry:
+                raise NotRegistered('The model %s is not registered' % model.__name__)
+            del self._registry[model]
+
+    def has_permission(self, request):
+        """
+        Returns True if the given HttpRequest has permission to view
+        *at least one* page in the admin site.
+        """
+        return request.user.is_authenticated() and request.user.is_staff
+    
+    def check_dependencies(self):
+        """
+        Check that all things needed to run the admin have been correctly installed.
+
+        The default implementation checks that LogEntry, ContentType and the
+        auth context processor are installed.
+        """
+        from django.conf import settings
+        from django.contrib.admin.models import LogEntry
+        from django.contrib.contenttypes.models import ContentType
+
+        if not LogEntry._meta.installed:
+            raise ImproperlyConfigured("Put 'django.contrib.admin' in your INSTALLED_APPS setting in order to use the admin application.")
+        if not ContentType._meta.installed:
+            raise ImproperlyConfigured("Put 'django.contrib.contenttypes' in your INSTALLED_APPS setting in order to use the admin application.")
+        if 'django.core.context_processors.auth' not in settings.TEMPLATE_CONTEXT_PROCESSORS:
+            raise ImproperlyConfigured("Put 'django.core.context_processors.auth' in your TEMPLATE_CONTEXT_PROCESSORS setting in order to use the admin application.")
+
+    def root(self, request, url):
+        """
+        Handles main URL routing for the admin app.
+
+        `url` is the remainder of the URL -- e.g. 'comments/comment/'.
+        """
+        if request.method == 'GET' and not request.path.endswith('/'):
+            return http.HttpResponseRedirect(request.path + '/')
+        
+        if settings.DEBUG:
+            self.check_dependencies()
+
+        # Figure out the admin base URL path and stash it for later use
+        self.root_path = re.sub(re.escape(url) + '$', '', request.path)
+
+        url = url.rstrip('/') # Trim trailing slash, if it exists.
+
+        # The 'logout' view doesn't require that the person is logged in.
+        if url == 'logout':
+            return self.logout(request)
+
+        # Check permission to continue or display login form.
+        if not self.has_permission(request):
+            return self.login(request)
+
+        if url == '':
+            return self.index(request)
+        elif url == 'password_change':
+            return self.password_change(request)
+        elif url == 'password_change/done':
+            return self.password_change_done(request)
+        elif url == 'jsi18n':
+            return self.i18n_javascript(request)
+        # urls starting with 'r/' are for the "show in web" links
+        elif url.startswith('r/'):
+            from django.views.defaults import shortcut
+            return shortcut(request, *url.split('/')[1:])
+        else:
+            if '/' in url:
+                return self.model_page(request, *url.split('/', 2))
+            else:
+                return self.app_index(request, url)
+
+        raise http.Http404('The requested admin page does not exist.')
+
+    def model_page(self, request, app_label, model_name, rest_of_url=None):
+        """
+        Handles the model-specific functionality of the admin site, delegating
+        to the appropriate ModelAdmin class.
+        """
+        from django.db import models
+        model = models.get_model(app_label, model_name)
+        if model is None:
+            raise http.Http404("App %r, model %r, not found." % (app_label, model_name))
+        try:
+            admin_obj = self._registry[model]
+        except KeyError:
+            raise http.Http404("This model exists but has not been registered with the admin site.")
+        return admin_obj(request, rest_of_url)
+    model_page = never_cache(model_page)
+
+    def password_change(self, request):
+        """
+        Handles the "change password" task -- both form display and validation.
+        """
+        from django.contrib.auth.views import password_change
+        return password_change(request,
+            post_change_redirect='%spassword_change/done/' % self.root_path)
+
+    def password_change_done(self, request):
+        """
+        Displays the "success" page after a password change.
+        """
+        from django.contrib.auth.views import password_change_done
+        return password_change_done(request)
+
+    def i18n_javascript(self, request):
+        """
+        Displays the i18n JavaScript that the Django admin requires.
+
+        This takes into account the USE_I18N setting. If it's set to False, the
+        generated JavaScript will be leaner and faster.
+        """
+        if settings.USE_I18N:
+            from django.views.i18n import javascript_catalog
+        else:
+            from django.views.i18n import null_javascript_catalog as javascript_catalog
+        return javascript_catalog(request, packages='django.conf')
+
+    def logout(self, request):
+        """
+        Logs out the user for the given HttpRequest.
+
+        This should *not* assume the user is already logged in.
+        """
+        from django.contrib.auth.views import logout
+        return logout(request)
+    logout = never_cache(logout)
+
+    def login(self, request):
+        """
+        Displays the login form for the given HttpRequest.
+        """
+        from django.contrib.auth.models import User
+
+        # If this isn't already the login page, display it.
+        if not request.POST.has_key(LOGIN_FORM_KEY):
+            if request.POST:
+                message = _("Please log in again, because your session has expired. Don't worry: Your submission has been saved.")
+            else:
+                message = ""
+            return self.display_login_form(request, message)
+
+        # Check that the user accepts cookies.
+        if not request.session.test_cookie_worked():
+            message = _("Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again.")
+            return self.display_login_form(request, message)
+        else:
+            request.session.delete_test_cookie()
+
+        # Check the password.
+        username = request.POST.get('username', None)
+        password = request.POST.get('password', None)
+        user = authenticate(username=username, password=password)
+        if user is None:
+            message = ERROR_MESSAGE
+            if u'@' in username:
+                # Mistakenly entered e-mail address instead of username? Look it up.
+                try:
+                    user = User.objects.get(email=username)
+                except (User.DoesNotExist, User.MultipleObjectsReturned):
+                    message = _("Usernames cannot contain the '@' character.")
+                else:
+                    if user.check_password(password):
+                        message = _("Your e-mail address is not your username."
+                                    " Try '%s' instead.") % user.username
+                    else:
+                        message = _("Usernames cannot contain the '@' character.")
+            return self.display_login_form(request, message)
+
+        # The user data is correct; log in the user in and continue.
+        else:
+            if user.is_active and user.is_staff:
+                login(request, user)
+                if request.POST.has_key('post_data'):
+                    post_data = _decode_post_data(request.POST['post_data'])
+                    if post_data and not post_data.has_key(LOGIN_FORM_KEY):
+                        # overwrite request.POST with the saved post_data, and continue
+                        request.POST = post_data
+                        request.user = user
+                        return self.root(request, request.path.split(self.root_path)[-1])
+                    else:
+                        return http.HttpResponseRedirect(request.get_full_path())
+            else:
+                return self.display_login_form(request, ERROR_MESSAGE)
+    login = never_cache(login)
+
+    def index(self, request, extra_context=None):
+        """
+        Displays the main admin index page, which lists all of the installed
+        apps that have been registered in this site.
+        """
+        app_dict = {}
+        user = request.user
+        for model, model_admin in self._registry.items():
+            app_label = model._meta.app_label
+            has_module_perms = user.has_module_perms(app_label)
+
+            if has_module_perms:
+                perms = {
+                    'add': model_admin.has_add_permission(request),
+                    'change': model_admin.has_change_permission(request),
+                    'delete': model_admin.has_delete_permission(request),
+                }
+
+                # Check whether user has any perm for this module.
+                # If so, add the module to the model_list.
+                if True in perms.values():
+                    model_dict = {
+                        'name': capfirst(model._meta.verbose_name_plural),
+                        'admin_url': mark_safe('%s/%s/' % (app_label, model.__name__.lower())),
+                        'perms': perms,
+                    }
+                    if app_label in app_dict:
+                        app_dict[app_label]['models'].append(model_dict)
+                    else:
+                        app_dict[app_label] = {
+                            'name': app_label.title(),
+                            'app_url': app_label,
+                            'has_module_perms': has_module_perms,
+                            'models': [model_dict],
+                        }
+
+        # Sort the apps alphabetically.
+        app_list = app_dict.values()
+        app_list.sort(lambda x, y: cmp(x['name'], y['name']))
+
+        # Sort the models alphabetically within each app.
+        for app in app_list:
+            app['models'].sort(lambda x, y: cmp(x['name'], y['name']))
+
+        context = {
+            'title': _('Site administration'),
+            'app_list': app_list,
+            'root_path': self.root_path,
+        }
+        context.update(extra_context or {})
+        return render_to_response(self.index_template or 'admin/index.html', context,
+            context_instance=template.RequestContext(request)
+        )
+    index = never_cache(index)
+
+    def display_login_form(self, request, error_message='', extra_context=None):
+        request.session.set_test_cookie()
+        if request.POST and request.POST.has_key('post_data'):
+            # User has failed login BUT has previously saved post data.
+            post_data = request.POST['post_data']
+        elif request.POST:
+            # User's session must have expired; save their post data.
+            post_data = _encode_post_data(request.POST)
+        else:
+            post_data = _encode_post_data({})
+
+        context = {
+            'title': _('Log in'),
+            'app_path': request.get_full_path(),
+            'post_data': post_data,
+            'error_message': error_message,
+            'root_path': self.root_path,
+        }
+        context.update(extra_context or {})
+        return render_to_response(self.login_template or 'admin/login.html', context,
+            context_instance=template.RequestContext(request)
+        )
+        
+    def app_index(self, request, app_label, extra_context=None):
+        user = request.user
+        has_module_perms = user.has_module_perms(app_label)
+        app_dict = {}
+        for model, model_admin in self._registry.items():
+            if app_label == model._meta.app_label:
+                if has_module_perms:
+                    perms = {
+                        'add': user.has_perm("%s.%s" % (app_label, model._meta.get_add_permission())),
+                        'change': user.has_perm("%s.%s" % (app_label, model._meta.get_change_permission())),
+                        'delete': user.has_perm("%s.%s" % (app_label, model._meta.get_delete_permission())),
+                    }
+                    # Check whether user has any perm for this module.
+                    # If so, add the module to the model_list.
+                    if True in perms.values():
+                        model_dict = {
+                            'name': capfirst(model._meta.verbose_name_plural),
+                            'admin_url': '%s/' % model.__name__.lower(),
+                            'perms': perms,
+                        }
+                    if app_dict:
+                        app_dict['models'].append(model_dict),
+                    else:
+                        app_dict = {
+                            'name': app_label.title(),
+                            'app_url': '',
+                            'has_module_perms': has_module_perms,
+                            'models': [model_dict],
+                        }
+                    if not app_dict:
+                        raise http.Http404('The requested admin page does not exist.')
+        # Sort the models alphabetically within each app.
+        app_dict['models'].sort(lambda x, y: cmp(x['name'], y['name']))
+        context = {
+            'title': _('%s administration' % capfirst(app_label)),
+            'app_list': [app_dict]
+        }
+        context.update(extra_context or {})
+        return render_to_response(self.app_index_template or 'admin/app_index.html', context,
+            context_instance=template.RequestContext(request)
+        )
+
+# This global object represents the default admin site, for the common case.
+# You can instantiate AdminSite in your own code to create a custom admin site.
+site = AdminSite()
diff --git a/webapp/django/contrib/admin/templates/admin/404.html b/webapp/django/contrib/admin/templates/admin/404.html
new file mode 100644
index 0000000..9bf4293
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/404.html
@@ -0,0 +1,12 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block title %}{% trans 'Page not found' %}{% endblock %}
+
+{% block content %}
+
+<h2>{% trans 'Page not found' %}</h2>
+
+<p>{% trans "We're sorry, but the requested page could not be found." %}</p>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/500.html b/webapp/django/contrib/admin/templates/admin/500.html
new file mode 100644
index 0000000..b30e431
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/500.html
@@ -0,0 +1,12 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="/">{% trans "Home" %}</a> &rsaquo; {% trans "Server error" %}</div>{% endblock %}
+
+{% block title %}{% trans 'Server error (500)' %}{% endblock %}
+
+{% block content %}
+<h1>{% trans 'Server Error <em>(500)</em>' %}</h1>
+<p>{% trans "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." %}</p>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/app_index.html b/webapp/django/contrib/admin/templates/admin/app_index.html
new file mode 100644
index 0000000..120433d
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/app_index.html
@@ -0,0 +1,15 @@
+{% extends "admin/index.html" %} 
+{% load i18n %} 
+
+{% if not is_popup %}
+
+{% block breadcrumbs %}
+<div class="breadcrumbs"><a href="../">
+{% trans "Home" %}</a> &rsaquo; 
+{% for app in app_list %}
+{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}
+{% endfor %}</div>{% endblock %}
+
+{% endif %} 
+
+{% block sidebar %}{% endblock %}
\ No newline at end of file
diff --git a/webapp/django/contrib/admin/templates/admin/auth/user/add_form.html b/webapp/django/contrib/admin/templates/admin/auth/user/add_form.html
new file mode 100644
index 0000000..65824a6
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/auth/user/add_form.html
@@ -0,0 +1,33 @@
+{% extends "admin/change_form.html" %}
+{% load i18n %}
+
+{% block after_field_sets %}
+
+<p>{% trans "First, enter a username and password. Then, you'll be able to edit more user options." %}</p>
+
+<fieldset class="module aligned">
+
+<div class="form-row">
+  {{ form.username.errors }}
+  {# TODO: get required class on label_tag #}
+  <label for="id_username" class="required">{% trans 'Username' %}:</label> {{ form.username }}
+  <p class="help">{{ form.username.help_text }}</p>
+</div>
+
+<div class="form-row">
+  {{ form.password1.errors }}
+  {# TODO: get required class on label_tag #}
+  <label for="id_password1" class="required">{% trans 'Password' %}:</label> {{ form.password1 }}
+</div>
+
+<div class="form-row">
+  {{ form.password2.errors }}
+  {# TODO: get required class on label_tag #}
+  <label for="id_password2" class="required">{% trans 'Password (again)' %}:</label> {{ form.password2 }}
+  <p class="help">{% trans 'Enter the same password as above, for verification.' %}</p>
+</div>
+
+<script type="text/javascript">document.getElementById("id_username").focus();</script>
+
+</fieldset>
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/auth/user/change_password.html b/webapp/django/contrib/admin/templates/admin/auth/user/change_password.html
new file mode 100644
index 0000000..f1c4a8d
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/auth/user/change_password.html
@@ -0,0 +1,52 @@
+{% extends "admin/base_site.html" %}
+{% load i18n admin_modify adminmedia %}
+{% block extrahead %}{{ block.super }}
+<script type="text/javascript" src="../../../../jsi18n/"></script>
+{% endblock %}
+{% block stylesheet %}{% admin_media_prefix %}css/forms.css{% endblock %}
+{% block bodyclass %}{{ opts.app_label }}-{{ opts.object_name.lower }} change-form{% endblock %}
+{% block breadcrumbs %}{% if not is_popup %}
+<div class="breadcrumbs">
+     <a href="../../../../">{% trans "Home" %}</a> &rsaquo;
+     <a href="../../">{{ opts.verbose_name_plural|capfirst|escape }}</a> &rsaquo;
+     <a href="../">{{ original|truncatewords:"18"|escape }}</a> &rsaquo;
+     {% trans 'Change password' %}
+</div>
+{% endif %}{% endblock %}
+{% block content %}<div id="content-main">
+<form action="{{ form_url }}" method="post" id="{{ opts.module_name }}_form">{% block form_top %}{% endblock %}
+<div>
+{% if is_popup %}<input type="hidden" name="_popup" value="1" />{% endif %}
+{% if form.errors %}
+    <p class="errornote">
+    {% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
+    </p>
+{% endif %}
+
+<p>{% blocktrans with original.username|escape as username %}Enter a new password for the user <strong>{{ username }}</strong>.{% endblocktrans %}</p>
+
+<fieldset class="module aligned">
+
+<div class="form-row">
+  {{ form.password1.errors }}
+  {# TODO: get required class on label_tag #}
+  <label for="id_password1" class="required">{% trans 'Password' %}:</label> {{ form.password1 }}
+</div>
+
+<div class="form-row">
+  {{ form.password2.errors }}
+  {# TODO: get required class on label_tag #}
+  <label for="id_password2" class="required">{% trans 'Password (again)' %}:</label> {{ form.password2 }}
+  <p class="help">{% trans 'Enter the same password as above, for verification.' %}</p>
+</div>
+
+</fieldset>
+
+<div class="submit-row">
+<input type="submit" value="{% trans 'Change password' %}" class="default" />
+</div>
+
+<script type="text/javascript">document.getElementById("id_password1").focus();</script>
+</div>
+</form></div>
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/base.html b/webapp/django/contrib/admin/templates/admin/base.html
new file mode 100644
index 0000000..479e18b
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/base.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
+<head>
+<title>{% block title %}{% endblock %}</title>
+<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% load adminmedia %}{% admin_media_prefix %}css/base.css{% endblock %}" />
+{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% admin_media_prefix %}css/rtl.css{% endblock %}" />{% endif %}
+{% block extrastyle %}{% endblock %}
+{% block extrahead %}{% endblock %}
+{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
+</head>
+{% load i18n %}
+
+<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">
+
+<!-- Container -->
+<div id="container">
+
+    {% if not is_popup %}
+    <!-- Header -->
+    <div id="header">
+        <div id="branding">
+        {% block branding %}{% endblock %}
+        </div>
+        {% if user.is_authenticated and user.is_staff %}
+        <div id="user-tools">{% trans 'Welcome,' %} <strong>{% if user.first_name %}{{ user.first_name|escape }}{% else %}{{ user.username }}{% endif %}</strong>. {% block userlinks %}<a href="{{ root_path }}doc/">{% trans 'Documentation' %}</a> / <a href="{{ root_path }}password_change/">{% trans 'Change password' %}</a> / <a href="{{ root_path }}logout/">{% trans 'Log out' %}</a>{% endblock %}</div>
+        {% endif %}
+        {% block nav-global %}{% endblock %}
+    </div>
+    <!-- END Header -->
+    {% block breadcrumbs %}<div class="breadcrumbs"><a href="/">{% trans 'Home' %}</a>{% if title %} &rsaquo; {{ title|escape }}{% endif %}</div>{% endblock %}
+    {% endif %}
+
+        {% if messages %}
+        <ul class="messagelist">{% for message in messages %}<li>{{ message|escape }}</li>{% endfor %}</ul>
+        {% endif %}
+
+    <!-- Content -->
+    <div id="content" class="{% block coltype %}colM{% endblock %}">
+        {% block pretitle %}{% endblock %}
+        {% block content_title %}{% if title %}<h1>{{ title|escape }}</h1>{% endif %}{% endblock %}
+        {% block content %}
+        {% block object-tools %}{% endblock %}
+        {{ content }}
+        {% endblock %}
+        {% block sidebar %}{% endblock %}
+        <br class="clear" />
+    </div>
+    <!-- END Content -->
+
+    {% block footer %}<div id="footer"></div>{% endblock %}
+</div>
+<!-- END Container -->
+
+</body>
+</html>
diff --git a/webapp/django/contrib/admin/templates/admin/base_site.html b/webapp/django/contrib/admin/templates/admin/base_site.html
new file mode 100644
index 0000000..b867bd2
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/base_site.html
@@ -0,0 +1,10 @@
+{% extends "admin/base.html" %}
+{% load i18n %}
+
+{% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %}
+
+{% block branding %}
+<h1 id="site-name">{% trans 'Django administration' %}</h1>
+{% endblock %}
+
+{% block nav-global %}{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/change_form.html b/webapp/django/contrib/admin/templates/admin/change_form.html
new file mode 100644
index 0000000..f367973
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/change_form.html
@@ -0,0 +1,66 @@
+{% extends "admin/base_site.html" %}
+{% load i18n admin_modify adminmedia %}
+
+{% block extrahead %}{{ block.super }}
+<script type="text/javascript" src="../../../jsi18n/"></script>
+{{ media }}
+{% endblock %}
+
+{% block stylesheet %}{% admin_media_prefix %}css/forms.css{% endblock %}
+
+{% block coltype %}{% if ordered_objects %}colMS{% else %}colM{% endif %}{% endblock %}
+
+{% block bodyclass %}{{ opts.app_label }}-{{ opts.object_name.lower }} change-form{% endblock %}
+
+{% block breadcrumbs %}{% if not is_popup %}
+<div class="breadcrumbs">
+     <a href="../../../">{% trans "Home" %}</a> &rsaquo;
+     <a href="../../">{{ app_label|capfirst|escape }}</a> &rsaquo; 
+     <a href="../">{{ opts.verbose_name_plural|capfirst }}</a> &rsaquo;
+     {% if add %}{% trans "Add" %} {{ opts.verbose_name }}{% else %}{{ original|truncatewords:"18" }}{% endif %}
+</div>
+{% endif %}{% endblock %}
+
+{% block content %}<div id="content-main">
+{% block object-tools %}
+{% if change %}{% if not is_popup %}
+  <ul class="object-tools"><li><a href="history/" class="historylink">{% trans "History" %}</a></li>
+  {% if has_absolute_url %}<li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="viewsitelink">{% trans "View on site" %}</a></li>{% endif%}
+  </ul>
+{% endif %}{% endif %}
+{% endblock %}
+<form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post" id="{{ opts.module_name }}_form">{% block form_top %}{% endblock %}
+<div>
+{% if is_popup %}<input type="hidden" name="_popup" value="1" />{% endif %}
+{% if save_on_top %}{% submit_row %}{% endif %}
+{% if errors %}
+    <p class="errornote">
+    {% blocktrans count errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
+    </p>
+    <ul class="errorlist">{% for error in adminform.form.non_field_errors %}<li>{{ error }}</li>{% endfor %}</ul>
+{% endif %}
+
+{% for fieldset in adminform %}
+  {% include "admin/includes/fieldset.html" %}
+{% endfor %}
+
+{% block after_field_sets %}{% endblock %}
+
+{% for inline_admin_formset in inline_admin_formsets %}
+    {% include inline_admin_formset.opts.template %}
+{% endfor %}
+
+{% block after_related_objects %}{% endblock %}
+
+{% submit_row %}
+
+{% if add %}
+   <script type="text/javascript">document.getElementById("{{ adminform.first_field.auto_id }}").focus();</script>
+{% endif %}
+
+{# JavaScript for prepopulated fields #}
+{% prepopulated_fields_js %}
+
+</div>
+</form></div>
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/change_list.html b/webapp/django/contrib/admin/templates/admin/change_list.html
new file mode 100644
index 0000000..b66f67e
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/change_list.html
@@ -0,0 +1,38 @@
+{% extends "admin/base_site.html" %}
+{% load adminmedia admin_list i18n %}
+
+{% block stylesheet %}{% admin_media_prefix %}css/changelists.css{% endblock %}
+
+{% block bodyclass %}change-list{% endblock %}
+
+{% if not is_popup %}{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">{% trans "Home" %}</a> &rsaquo; <a href="../">{{ app_label|capfirst|escape }}</a> &rsaquo; {{ cl.opts.verbose_name_plural|capfirst|escape }}</div>{% endblock %}{% endif %}
+
+{% block coltype %}flex{% endblock %}
+
+{% block content %}
+<div id="content-main">
+{% block object-tools %}
+{% if has_add_permission %}
+<ul class="object-tools"><li><a href="add/{% if is_popup %}?_popup=1{% endif %}" class="addlink">{% blocktrans with cl.opts.verbose_name|escape as name %}Add {{ name }}{% endblocktrans %}</a></li></ul>
+{% endif %}
+{% endblock %}
+<div class="module{% if cl.has_filters %} filtered{% endif %}" id="changelist">
+{% block search %}{% search_form cl %}{% endblock %}
+{% block date_hierarchy %}{% date_hierarchy cl %}{% endblock %}
+
+{% block filters %}
+{% if cl.has_filters %}
+<div id="changelist-filter">
+<h2>{% trans 'Filter' %}</h2>
+{% for spec in cl.filter_specs %}
+   {% admin_list_filter cl spec %}
+{% endfor %}
+</div>
+{% endif %}
+{% endblock %}
+
+{% block result_list %}{% result_list cl %}{% endblock %}
+{% block pagination %}{% pagination cl %}{% endblock %}
+</div>
+</div>
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/change_list_results.html b/webapp/django/contrib/admin/templates/admin/change_list_results.html
new file mode 100644
index 0000000..381dcb5
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/change_list_results.html
@@ -0,0 +1,17 @@
+{% if results %}
+<table cellspacing="0">
+<thead>
+<tr>
+{% for header in result_headers %}<th{{ header.class_attrib }}>
+{% if header.sortable %}<a href="{{ header.url }}">{% endif %}
+{{ header.text|capfirst }}
+{% if header.sortable %}</a>{% endif %}</th>{% endfor %}
+</tr>
+</thead>
+<tbody>
+{% for result in results %}
+<tr class="{% cycle 'row1' 'row2' %}">{% for item in result %}{{ item }}{% endfor %}</tr>
+{% endfor %}
+</tbody>
+</table>
+{% endif %}
diff --git a/webapp/django/contrib/admin/templates/admin/date_hierarchy.html b/webapp/django/contrib/admin/templates/admin/date_hierarchy.html
new file mode 100644
index 0000000..0058510
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/date_hierarchy.html
@@ -0,0 +1,10 @@
+{% if show %}
+<div class="xfull">
+<ul class="toplinks">
+{% if back %}<li class="date-back"><a href="{{ back.link }}">&lsaquo; {{ back.title }}</a></li>{% endif %}
+{% for choice in choices %}
+<li> {% if choice.link %}<a href="{{ choice.link }}">{% endif %}{{ choice.title }}{% if choice.link %}</a>{% endif %}</li>
+{% endfor %}
+</ul><br class="clear" />
+</div>
+{% endif %}
diff --git a/webapp/django/contrib/admin/templates/admin/delete_confirmation.html b/webapp/django/contrib/admin/templates/admin/delete_confirmation.html
new file mode 100644
index 0000000..2a6c4b4
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/delete_confirmation.html
@@ -0,0 +1,32 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}
+<div class="breadcrumbs">
+     <a href="../../../../">{% trans "Home" %}</a> &rsaquo;
+     <a href="../../../">{{ app_label|capfirst|escape }}</a> &rsaquo; 
+     <a href="../../">{{ opts.verbose_name_plural|capfirst }}</a> &rsaquo;
+     <a href="../">{{ object|escape|truncatewords:"18" }}</a> &rsaquo;
+     {% trans 'Delete' %}
+</div>
+{% endblock %}
+
+{% block content %}
+{% if perms_lacking %}
+    <p>{% blocktrans with object|escape as escaped_object %}Deleting the {{ object_name }} '{{ escaped_object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}</p>
+    <ul>
+    {% for obj in perms_lacking %}
+        <li>{{ obj }}</li>
+    {% endfor %}
+    </ul>
+{% else %}
+    <p>{% blocktrans with object|escape as escaped_object %}Are you sure you want to delete the {{ object_name }} "{{ escaped_object }}"? All of the following related items will be deleted:{% endblocktrans %}</p>
+    <ul>{{ deleted_objects|unordered_list }}</ul>
+    <form action="" method="post">
+    <div>
+    <input type="hidden" name="post" value="yes" />
+    <input type="submit" value="{% trans "Yes, I'm sure" %}" />
+    </div>
+    </form>
+{% endif %}
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/edit_inline/stacked.html b/webapp/django/contrib/admin/templates/admin/edit_inline/stacked.html
new file mode 100644
index 0000000..217791f
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/edit_inline/stacked.html
@@ -0,0 +1,26 @@
+{% load i18n %}
+<div class="inline-group">
+  <h2>{{ inline_admin_formset.opts.verbose_name_plural|title }}</h2>
+{{ inline_admin_formset.formset.management_form }}
+{{ inline_admin_formset.formset.non_form_errors }}
+
+{% for inline_admin_form in inline_admin_formset %}
+<div class="inline-related {% if forloop.last %}last-related{% endif %}">
+  <h3><b>{{ inline_admin_formset.opts.verbose_name|title }}:</b>&nbsp;{% if inline_admin_form.original %}{{ inline_admin_form.original }}{% else %} #{{ forloop.counter }}{% endif %}
+    {% if inline_admin_formset.formset.can_delete and inline_admin_form.original %}<span class="delete">{{ inline_admin_form.deletion_field.field }} {{ inline_admin_form.deletion_field.label_tag }}</span>{% endif %}
+  </h3>
+  {% if inline_admin_form.show_url %}
+  <p><a href="/r/{{ inline_admin_form.original.content_type_id }}/{{ inline_admin_form.original.id }}/">View on site</a></p>
+  {% endif %}
+
+  {% for fieldset in inline_admin_form %}
+    {% include "admin/includes/fieldset.html" %}
+  {% endfor %}
+  {{ inline_admin_form.pk_field.field }}
+</div>
+{% endfor %}
+
+{# <ul class="tools"> #}
+{#   <li><a class="add" href="">Add another {{ inline_admin_formset.opts.verbose_name|title }}</a></li> #}
+{# </ul> #}
+</div>
diff --git a/webapp/django/contrib/admin/templates/admin/edit_inline/tabular.html b/webapp/django/contrib/admin/templates/admin/edit_inline/tabular.html
new file mode 100644
index 0000000..f3fe378
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/edit_inline/tabular.html
@@ -0,0 +1,67 @@
+{% load i18n %}
+<div class="inline-group">
+  <div class="tabular inline-related {% if forloop.last %}last-related{% endif %}">
+{{ inline_admin_formset.formset.management_form }}
+<fieldset class="module">
+   <h2>{{ inline_admin_formset.opts.verbose_name_plural|capfirst|escape }}</h2>
+   {{ inline_admin_formset.formset.non_form_errors }}
+   <table>
+     <thead><tr>
+     {% for field in inline_admin_formset.fields %}
+       {% if not field.is_hidden %}
+         <th {% if forloop.first %}colspan="2"{% endif %}>{{ field.label|capfirst|escape }}</th>
+        {% endif %}
+     {% endfor %}
+     {% if inline_admin_formset.formset.can_delete %}<th>{% trans "Delete" %}?</th>{% endif %}
+     </tr></thead>
+   
+     {% for inline_admin_form in inline_admin_formset %}
+                   
+        <tr class="{% cycle row1,row2 %} {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}">
+
+        <td class="original">
+          {% if inline_admin_form.original or inline_admin_form.show_url %}<p>
+          {% if inline_admin_form.original %} {{ inline_admin_form.original }}{% endif %}
+          {% if inline_admin_form.show_url %}<a href="/r/{{ inline_admin_form.original.content_type_id }}/{{ inline_admin_form.original.id }}/">View on site</a>{% endif %}
+            </p>{% endif %}
+          {{ inline_admin_form.pk_field.field }}
+          {% spaceless %}
+          {% for fieldset in inline_admin_form %}
+            {% for line in fieldset %}
+              {% for field in line %}
+                {% if field.is_hidden %} {{ field.field }} {% endif %}
+              {% endfor %}
+            {% endfor %}
+          {% endfor %}
+          {% endspaceless %}
+        </td>
+
+        {% for fieldset in inline_admin_form %}
+          {% for line in fieldset %}
+            {% for field in line %}
+              <td class="{{ field.field.name }}">
+              {{ field.field.errors.as_ul }}
+              {{ field.field }}
+              </td>
+            {% endfor %}
+          {% endfor %}
+        {% endfor %}
+                
+        {% if inline_admin_formset.formset.can_delete %}
+          <td class="delete">{% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %}</td>
+        {% endif %}
+        
+        </tr>
+
+     {% endfor %}
+   
+   </table>
+   
+</fieldset>
+  </div>
+  
+  {# <ul class="tools"> #}
+  {#   <li><a class="add" href="">Add another {{ inline_admin_formset.opts.verbose_name|title }}</a></li> #}
+  {# </ul> #}
+  
+</div>
diff --git a/webapp/django/contrib/admin/templates/admin/filter.html b/webapp/django/contrib/admin/templates/admin/filter.html
new file mode 100644
index 0000000..bcc64ac
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/filter.html
@@ -0,0 +1,8 @@
+{% load i18n %}
+<h3>{% blocktrans with title|escape as filter_title %} By {{ filter_title }} {% endblocktrans %}</h3>
+<ul>
+{% for choice in choices %}
+    <li{% if choice.selected %} class="selected"{% endif %}>
+    <a href="{{ choice.query_string|iriencode }}">{{ choice.display|escape }}</a></li>
+{% endfor %}
+</ul>
diff --git a/webapp/django/contrib/admin/templates/admin/includes/fieldset.html b/webapp/django/contrib/admin/templates/admin/includes/fieldset.html
new file mode 100644
index 0000000..27e54c7
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/includes/fieldset.html
@@ -0,0 +1,17 @@
+<fieldset class="module aligned {{ fieldset.classes }}">
+  {% if fieldset.name %}<h2>{{ fieldset.name }}</h2>{% endif %}
+  {% if fieldset.description %}<div class="description">{{ fieldset.description|safe }}</div>{% endif %}
+  {% for line in fieldset %}
+      <div class="form-row{% if line.errors %} errors{% endif %} {% for field in line %}{{ field.field.name }} {% endfor %} ">
+      {{ line.errors }}
+      {% for field in line %}
+          {% if field.is_checkbox %}
+              {{ field.field }}{{ field.label_tag }}
+          {% else %}
+              {{ field.label_tag }}{{ field.field }}
+          {% endif %}
+          {% if field.field.field.help_text %}<p class="help">{{ field.field.field.help_text|safe }}</p>{% endif %}
+      {% endfor %}
+      </div>
+  {% endfor %}
+</fieldset>
diff --git a/webapp/django/contrib/admin/templates/admin/index.html b/webapp/django/contrib/admin/templates/admin/index.html
new file mode 100644
index 0000000..ba0c381
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/index.html
@@ -0,0 +1,68 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block stylesheet %}{% load adminmedia %}{% admin_media_prefix %}css/dashboard.css{% endblock %}
+
+{% block coltype %}colMS{% endblock %}
+
+{% block bodyclass %}dashboard{% endblock %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block content %}
+<div id="content-main">
+
+{% if app_list %}
+    {% for app in app_list %}
+        <div class="module">
+        <table summary="{% blocktrans with app.name as name %}Models available in the {{ name }} application.{% endblocktrans %}">
+        <caption><a href="{{ app.app_url }}" class="section">{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}</a></caption>
+        {% for model in app.models %}
+            <tr>
+            {% if model.perms.change %}
+                <th scope="row"><a href="{{ model.admin_url }}">{{ model.name }}</a></th>
+            {% else %}
+                <th scope="row">{{ model.name }}</th>
+            {% endif %}
+
+            {% if model.perms.add %}
+                <td><a href="{{ model.admin_url }}add/" class="addlink">{% trans 'Add' %}</a></td>
+            {% else %}
+                <td>&nbsp;</td>
+            {% endif %}
+
+            {% if model.perms.change %}
+                <td><a href="{{ model.admin_url }}" class="changelink">{% trans 'Change' %}</a></td>
+            {% else %}
+                <td>&nbsp;</td>
+            {% endif %}
+            </tr>
+        {% endfor %}
+        </table>
+        </div>
+    {% endfor %}
+{% else %}
+    <p>{% trans "You don't have permission to edit anything." %}</p>
+{% endif %}
+</div>
+{% endblock %}
+
+{% block sidebar %}
+<div id="content-related">
+    <div class="module" id="recent-actions-module">
+        <h2>{% trans 'Recent Actions' %}</h2>
+        <h3>{% trans 'My Actions' %}</h3>
+            {% load log %}
+            {% get_admin_log 10 as admin_log for_user user %}
+            {% if not admin_log %}
+            <p>{% trans 'None available' %}</p>
+            {% else %}
+            <ul class="actionlist">
+            {% for entry in admin_log %}
+            <li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">{% if not entry.is_deletion %}<a href="{{ entry.get_admin_url }}">{% endif %}{{ entry.object_repr|escape }}{% if not entry.is_deletion %}</a>{% endif %}<br /><span class="mini quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}</span></li>
+            {% endfor %}
+            </ul>
+            {% endif %}
+    </div>
+</div>
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/invalid_setup.html b/webapp/django/contrib/admin/templates/admin/invalid_setup.html
new file mode 100644
index 0000000..f09b316
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/invalid_setup.html
@@ -0,0 +1,8 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">{% trans 'Home' %}</a> &rsaquo; {{ title }}</div>{% endblock %}
+
+{% block content %}
+<p>{% trans "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user." %}</p>
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/login.html b/webapp/django/contrib/admin/templates/admin/login.html
new file mode 100644
index 0000000..5dd953b
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/login.html
@@ -0,0 +1,35 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block stylesheet %}{% load adminmedia %}{% admin_media_prefix %}css/login.css{% endblock %}
+
+{% block bodyclass %}login{% endblock %}
+
+{% block content_title %}{% endblock %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block content %}
+{% if error_message %}
+<p class="errornote">{{ error_message }}</p>
+{% endif %}
+<div id="content-main">
+<form action="{{ app_path }}" method="post" id="login-form">
+  <div class="form-row">
+    <label for="id_username">{% trans 'Username:' %}</label> <input type="text" name="username" id="id_username" />
+  </div>
+  <div class="form-row">
+    <label for="id_password">{% trans 'Password:' %}</label> <input type="password" name="password" id="id_password" />
+    <input type="hidden" name="this_is_the_login_form" value="1" />
+    <input type="hidden" name="post_data" value="{{ post_data }}" /> {#<span class="help">{% trans 'Have you <a href="/password_reset/">forgotten your password</a>?' %}</span>#}
+  </div>
+  <div class="submit-row">
+    <label>&nbsp;</label><input type="submit" value="{% trans 'Log in' %}" />
+  </div>
+</form>
+
+<script type="text/javascript">
+document.getElementById('id_username').focus()
+</script>
+</div>
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/object_history.html b/webapp/django/contrib/admin/templates/admin/object_history.html
new file mode 100644
index 0000000..c37012b
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/object_history.html
@@ -0,0 +1,36 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}
+<div class="breadcrumbs"><a href="../../../../">{% trans 'Home' %}</a> &rsaquo; <a href="../../">{{ module_name }}</a> &rsaquo; <a href="../">{{ object|truncatewords:"18" }}</a> &rsaquo; {% trans 'History' %}</div>
+{% endblock %}
+
+{% block content %}
+<div id="content-main">
+<div class="module">
+
+{% if action_list %}
+    <table id="change-history">
+        <thead>
+        <tr>
+            <th scope="col">{% trans 'Date/time' %}</th>
+            <th scope="col">{% trans 'User' %}</th>
+            <th scope="col">{% trans 'Action' %}</th>
+        </tr>
+        </thead>
+        <tbody>
+        {% for action in action_list %}
+        <tr>
+            <th scope="row">{{ action.action_time|date:_("DATETIME_FORMAT") }}</th>
+            <td>{{ action.user.username }}{% if action.user.first_name %} ({{ action.user.first_name }} {{ action.user.last_name }}){% endif %}</td>
+            <td>{{ action.change_message }}</td>
+        </tr>
+        {% endfor %}
+        </tbody>
+    </table>
+{% else %}
+    <p>{% trans "This object doesn't have a change history. It probably wasn't added via this admin site." %}</p>
+{% endif %}
+</div>
+</div>
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/admin/pagination.html b/webapp/django/contrib/admin/templates/admin/pagination.html
new file mode 100644
index 0000000..0640a46
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/pagination.html
@@ -0,0 +1,11 @@
+{% load admin_list %}
+{% load i18n %}
+<p class="paginator">
+{% if pagination_required %}
+{% for i in page_range %}
+    {% paginator_number cl i %}
+{% endfor %}
+{% endif %}
+{{ cl.result_count }} {% ifequal cl.result_count 1 %}{{ cl.opts.verbose_name|escape }}{% else %}{{ cl.opts.verbose_name_plural }}{% endifequal %}
+{% if show_all_url %}&nbsp;&nbsp;<a href="{{ show_all_url }}" class="showall">{% trans 'Show all' %}</a>{% endif %}
+</p>
diff --git a/webapp/django/contrib/admin/templates/admin/prepopulated_fields_js.html b/webapp/django/contrib/admin/templates/admin/prepopulated_fields_js.html
new file mode 100644
index 0000000..e1cdb96
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/prepopulated_fields_js.html
@@ -0,0 +1,11 @@
+<script type="text/javascript">
+{% for field in prepopulated_fields %}
+    document.getElementById("{{ field.field.auto_id }}").onchange = function() { this._changed = true; };
+    {% for dependency in field.dependencies %}
+    document.getElementById("{{ dependency.auto_id }}").onkeyup = function() {
+        var e = document.getElementById("{{ field.field.auto_id }}");
+        if (!e._changed) { e.value = URLify({% for innerdep in field.dependencies %}document.getElementById("{{ innerdep.auto_id }}").value{% if not forloop.last %} + ' ' + {% endif %}{% endfor %}, {{ field.field.field.max_length|default_if_none:"50" }}); }
+    }
+    {% endfor %}
+{% endfor %}
+</script>
diff --git a/webapp/django/contrib/admin/templates/admin/search_form.html b/webapp/django/contrib/admin/templates/admin/search_form.html
new file mode 100644
index 0000000..b232aa9
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/search_form.html
@@ -0,0 +1,18 @@
+{% load adminmedia %}
+{% load i18n %}
+{% if cl.search_fields %}
+<div id="toolbar"><form id="changelist-search" action="" method="get">
+<div><!-- DIV needed for valid HTML -->
+<label for="searchbar"><img src="{% admin_media_prefix %}img/admin/icon_searchbox.png" alt="Search" /></label>
+<input type="text" size="40" name="{{ search_var }}" value="{{ cl.query|escape }}" id="searchbar" />
+<input type="submit" value="{% trans 'Go' %}" />
+{% if show_result_count %}
+    <span class="small quiet">{% blocktrans count cl.result_count as counter %}1 result{% plural %}{{ counter }} results{% endblocktrans %} (<a href="?{% if cl.is_popup %}pop=1{% endif %}">{% blocktrans with cl.full_result_count as full_result_count %}{{ full_result_count }} total{% endblocktrans %}</a>)</span>
+{% endif %}
+{% for pair in cl.params.items %}
+    {% ifnotequal pair.0 search_var %}<input type="hidden" name="{{ pair.0|escape }}" value="{{ pair.1|escape }}"/>{% endifnotequal %}
+{% endfor %}
+</div>
+</form></div>
+<script type="text/javascript">document.getElementById("searchbar").focus();</script>
+{% endif %}
diff --git a/webapp/django/contrib/admin/templates/admin/submit_line.html b/webapp/django/contrib/admin/templates/admin/submit_line.html
new file mode 100644
index 0000000..6eccbce
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/submit_line.html
@@ -0,0 +1,8 @@
+{% load i18n %}
+<div class="submit-row">
+{% if show_save %}<input type="submit" value="{% trans 'Save' %}" class="default" name="_save" {{ onclick_attrib }}/>{% endif %}
+{% if show_delete_link %}<p class="float-left"><a href="delete/" class="deletelink">{% trans "Delete" %}</a></p>{% endif %}
+{% if show_save_as_new %}<input type="submit" value="{% trans 'Save as new' %}" name="_saveasnew" {{ onclick_attrib }}/>{%endif%}
+{% if show_save_and_add_another %}<input type="submit" value="{% trans 'Save and add another' %}" name="_addanother" {{ onclick_attrib }} />{% endif %}
+{% if show_save_and_continue %}<input type="submit" value="{% trans 'Save and continue editing' %}" name="_continue" {{ onclick_attrib }}/>{% endif %}
+</div>
diff --git a/webapp/django/contrib/admin/templates/admin/template_validator.html b/webapp/django/contrib/admin/templates/admin/template_validator.html
new file mode 100644
index 0000000..5106143
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/admin/template_validator.html
@@ -0,0 +1,31 @@
+{% extends "admin/base_site.html" %}
+
+{% block content %}
+
+<div id="content-main">
+
+<form action="" method="post">
+
+{% if form.errors %}
+<p class="errornote">Your template had {{ form.errors|length }} error{{ form.errors|pluralize }}:</p>
+{% endif %}
+
+<fieldset class="module aligned">
+<div class="form-row{% if form.errors.site %} error{% endif %} required">
+    {% if form.errors.site %}{{ form.errors.site }}{% endif %}
+    <h4><label for="id_site">{{ form.site.label }}:</label> {{ form.site }}</h4>
+</div>
+<div class="form-row{% if form.errors.template %} error{% endif %} required">
+    {% if form.errors.template %}{{ form.errors.template }}{% endif %}
+    <h4><label for="id_template">{{ form.template.label }}:</label> {{ form.template }}</h4>
+</div>
+</fieldset>
+
+<div class="submit-row">
+    <input type="submit" value="Check for errors" class="default" />
+</div>
+
+</form>
+</div>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/registration/logged_out.html b/webapp/django/contrib/admin/templates/registration/logged_out.html
new file mode 100644
index 0000000..d339ef0
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/registration/logged_out.html
@@ -0,0 +1,12 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a></div>{% endblock %}
+
+{% block content %}
+
+<p>{% trans "Thanks for spending some quality time with the Web site today." %}</p>
+
+<p><a href="../">{% trans 'Log in again' %}</a></p>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/registration/password_change_done.html b/webapp/django/contrib/admin/templates/registration/password_change_done.html
new file mode 100644
index 0000000..2525720
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/registration/password_change_done.html
@@ -0,0 +1,14 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block userlinks %}<a href="../../doc/">{% trans 'Documentation' %}</a> / {% trans 'Change password' %} / <a href="../../logout/">{% trans 'Log out' %}</a>{% endblock %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">{% trans 'Home' %}</a> &rsaquo; {% trans 'Password change' %}</div>{% endblock %}
+
+{% block title %}{% trans 'Password change successful' %}{% endblock %}
+
+{% block content %}
+
+<h1>{% trans 'Password change successful' %}</h1>
+
+<p>{% trans 'Your password was changed.' %}</p>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/registration/password_change_form.html b/webapp/django/contrib/admin/templates/registration/password_change_form.html
new file mode 100644
index 0000000..4facc0e
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/registration/password_change_form.html
@@ -0,0 +1,26 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block userlinks %}<a href="../doc/">{% trans 'Documentation' %}</a> / {% trans 'Change password' %} / <a href="../logout/">{% trans 'Log out' %}</a>{% endblock %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> &rsaquo; {% trans 'Password change' %}</div>{% endblock %}
+
+{% block title %}{% trans 'Password change' %}{% endblock %}
+
+{% block content %}
+
+<h1>{% trans 'Password change' %}</h1>
+
+<p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p>
+
+<form action="" method="post">
+
+{% if form.old_password.errors %}{{ form.old_password.errors }}{% endif %}
+<p class="aligned wide"><label for="id_old_password">{% trans 'Old password:' %}</label>{{ form.old_password }}</p>
+{% if form.new_password1.errors %}{{ form.new_password1.errors }}{% endif %}
+<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
+{% if form.new_password2.errors %}{{ form.new_password2.errors }}{% endif %}
+<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
+
+<p><input type="submit" value="{% trans 'Change my password' %}" /></p>
+</form>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/registration/password_reset_complete.html b/webapp/django/contrib/admin/templates/registration/password_reset_complete.html
new file mode 100644
index 0000000..fceb167
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/registration/password_reset_complete.html
@@ -0,0 +1,16 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">{% trans 'Home' %}</a> &rsaquo; {% trans 'Password reset' %}</div>{% endblock %}
+
+{% block title %}{% trans 'Password reset complete' %}{% endblock %}
+
+{% block content %}
+
+<h1>{% trans 'Password reset complete' %}</h1>
+
+<p>{% trans "Your password has been set.  You may go ahead and log in now." %}</p>
+
+<p><a href="{{ login_url }}">{% trans 'Log in' %}</a></p>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/registration/password_reset_confirm.html b/webapp/django/contrib/admin/templates/registration/password_reset_confirm.html
new file mode 100644
index 0000000..9ba0e5a
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/registration/password_reset_confirm.html
@@ -0,0 +1,32 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> &rsaquo; {% trans 'Password reset confirmation' %}</div>{% endblock %}
+
+{% block title %}{% trans 'Password reset' %}{% endblock %}
+
+{% block content %}
+
+{% if validlink %}
+
+<h1>{% trans 'Enter new password' %}</h1>
+
+<p>{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}</p>
+
+<form action="" method="post">
+{% if form.new_password1.errors %}{{ form.new_password1.errors }}{% endif %}
+<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
+{% if form.new_password2.errors %}{{ form.new_password2.errors }}{% endif %}
+<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
+<p><input type="submit" value="{% trans 'Change my password' %}" /></p>
+</form>
+
+{% else %}
+
+<h1>{% trans 'Password reset unsuccessful' %}</h1>
+
+<p>{% trans "The password reset link was invalid, possibly because it has already been used.  Please request a new password reset." %}
+
+{% endif %}
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/registration/password_reset_done.html b/webapp/django/contrib/admin/templates/registration/password_reset_done.html
new file mode 100644
index 0000000..e223bdb
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/registration/password_reset_done.html
@@ -0,0 +1,14 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> &rsaquo; {% trans 'Password reset' %}</div>{% endblock %}
+
+{% block title %}{% trans 'Password reset successful' %}{% endblock %}
+
+{% block content %}
+
+<h1>{% trans 'Password reset successful' %}</h1>
+
+<p>{% trans "We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly." %}</p>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templates/registration/password_reset_email.html b/webapp/django/contrib/admin/templates/registration/password_reset_email.html
new file mode 100644
index 0000000..4e4bd6d
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/registration/password_reset_email.html
@@ -0,0 +1,15 @@
+{% load i18n %}{% autoescape off %}
+{% trans "You're receiving this e-mail because you requested a password reset" %}
+{% blocktrans %}for your user account at {{ site_name }}{% endblocktrans %}.
+
+{% trans "Please go to the following page and choose a new password:" %}
+{% block reset_link %}
+{{ protocol }}://{{ domain }}{% url django.contrib.auth.views.password_reset_confirm uidb36=uid, token=token %}
+{% endblock %}
+{% trans "Your username, in case you've forgotten:" %} {{ user.username }}
+
+{% trans "Thanks for using our site!" %}
+
+{% blocktrans %}The {{ site_name }} team{% endblocktrans %}
+
+{% endautoescape %}
diff --git a/webapp/django/contrib/admin/templates/registration/password_reset_form.html b/webapp/django/contrib/admin/templates/registration/password_reset_form.html
new file mode 100644
index 0000000..4ecebc7
--- /dev/null
+++ b/webapp/django/contrib/admin/templates/registration/password_reset_form.html
@@ -0,0 +1,19 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> &rsaquo; {% trans 'Password reset' %}</div>{% endblock %}
+
+{% block title %}{% trans "Password reset" %}{% endblock %}
+
+{% block content %}
+
+<h1>{% trans "Password reset" %}</h1>
+
+<p>{% trans "Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one." %}</p>
+
+<form action="" method="post">
+{% if form.email.errors %}{{ form.email.errors }}{% endif %}
+<p><label for="id_email">{% trans 'E-mail address:' %}</label> {{ form.email }} <input type="submit" value="{% trans 'Reset my password' %}" /></p>
+</form>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admin/templatetags/__init__.py b/webapp/django/contrib/admin/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/admin/templatetags/__init__.py
diff --git a/webapp/django/contrib/admin/templatetags/admin_list.py b/webapp/django/contrib/admin/templatetags/admin_list.py
new file mode 100644
index 0000000..cae33cc
--- /dev/null
+++ b/webapp/django/contrib/admin/templatetags/admin_list.py
@@ -0,0 +1,312 @@
+from django.conf import settings
+from django.contrib.admin.views.main import ALL_VAR, EMPTY_CHANGELIST_VALUE
+from django.contrib.admin.views.main import ORDER_VAR, ORDER_TYPE_VAR, PAGE_VAR, SEARCH_VAR
+from django.core.exceptions import ObjectDoesNotExist
+from django.db import models
+from django.utils import dateformat
+from django.utils.html import escape, conditional_escape
+from django.utils.text import capfirst
+from django.utils.safestring import mark_safe
+from django.utils.translation import get_date_formats, get_partial_date_formats, ugettext as _
+from django.utils.encoding import smart_unicode, smart_str, force_unicode
+from django.template import Library
+import datetime
+
+register = Library()
+
+DOT = '.'
+
+def paginator_number(cl,i):
+    if i == DOT:
+        return u'... '
+    elif i == cl.page_num:
+        return mark_safe(u'<span class="this-page">%d</span> ' % (i+1))
+    else:
+        return mark_safe(u'<a href="%s"%s>%d</a> ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.num_pages-1 and ' class="end"' or ''), i+1))
+paginator_number = register.simple_tag(paginator_number)
+
+def pagination(cl):
+    paginator, page_num = cl.paginator, cl.page_num
+
+    pagination_required = (not cl.show_all or not cl.can_show_all) and cl.multi_page
+    if not pagination_required:
+        page_range = []
+    else:
+        ON_EACH_SIDE = 3
+        ON_ENDS = 2
+
+        # If there are 10 or fewer pages, display links to every page.
+        # Otherwise, do some fancy
+        if paginator.num_pages <= 10:
+            page_range = range(paginator.num_pages)
+        else:
+            # Insert "smart" pagination links, so that there are always ON_ENDS
+            # links at either end of the list of pages, and there are always
+            # ON_EACH_SIDE links at either end of the "current page" link.
+            page_range = []
+            if page_num > (ON_EACH_SIDE + ON_ENDS):
+                page_range.extend(range(0, ON_EACH_SIDE - 1))
+                page_range.append(DOT)
+                page_range.extend(range(page_num - ON_EACH_SIDE, page_num + 1))
+            else:
+                page_range.extend(range(0, page_num + 1))
+            if page_num < (paginator.num_pages - ON_EACH_SIDE - ON_ENDS - 1):
+                page_range.extend(range(page_num + 1, page_num + ON_EACH_SIDE + 1))
+                page_range.append(DOT)
+                page_range.extend(range(paginator.num_pages - ON_ENDS, paginator.num_pages))
+            else:
+                page_range.extend(range(page_num + 1, paginator.num_pages))
+
+    need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page
+    return {
+        'cl': cl,
+        'pagination_required': pagination_required,
+        'show_all_url': need_show_all_link and cl.get_query_string({ALL_VAR: ''}),
+        'page_range': page_range,
+        'ALL_VAR': ALL_VAR,
+        '1': 1,
+    }
+pagination = register.inclusion_tag('admin/pagination.html')(pagination)
+
+def result_headers(cl):
+    lookup_opts = cl.lookup_opts
+    
+    for i, field_name in enumerate(cl.list_display):
+        attr = None
+        try:
+            f = lookup_opts.get_field(field_name)
+            admin_order_field = None
+        except models.FieldDoesNotExist:
+            # For non-field list_display values, check for the function
+            # attribute "short_description". If that doesn't exist, fall back
+            # to the method name. And __str__ and __unicode__ are special-cases.
+            if field_name == '__unicode__':
+                header = force_unicode(lookup_opts.verbose_name)
+            elif field_name == '__str__':
+                header = smart_str(lookup_opts.verbose_name)
+            else:
+                if callable(field_name):
+                    attr = field_name # field_name can be a callable
+                else:
+                    try:
+                        attr = getattr(cl.model_admin, field_name)
+                    except AttributeError:
+                        try:
+                            attr = getattr(cl.model, field_name)
+                        except AttributeError:
+                            raise AttributeError, \
+                                "'%s' model or '%s' objects have no attribute '%s'" % \
+                                    (lookup_opts.object_name, cl.model_admin.__class__, field_name)
+                
+                try:
+                    header = attr.short_description
+                except AttributeError:
+                    if callable(field_name):
+                        header = field_name.__name__
+                    else:
+                        header = field_name
+                    header = header.replace('_', ' ')
+
+            # It is a non-field, but perhaps one that is sortable
+            admin_order_field = getattr(attr, "admin_order_field", None)
+            if not admin_order_field:
+                yield {"text": header}
+                continue
+
+            # So this _is_ a sortable non-field.  Go to the yield
+            # after the else clause.
+        else:
+            if isinstance(f.rel, models.ManyToOneRel) and f.null:
+                yield {"text": f.verbose_name}
+                continue
+            else:
+                header = f.verbose_name
+
+        th_classes = []
+        new_order_type = 'asc'
+        if field_name == cl.order_field or admin_order_field == cl.order_field:
+            th_classes.append('sorted %sending' % cl.order_type.lower())
+            new_order_type = {'asc': 'desc', 'desc': 'asc'}[cl.order_type.lower()]
+
+        yield {"text": header,
+               "sortable": True,
+               "url": cl.get_query_string({ORDER_VAR: i, ORDER_TYPE_VAR: new_order_type}),
+               "class_attrib": mark_safe(th_classes and ' class="%s"' % ' '.join(th_classes) or '')}
+
+def _boolean_icon(field_val):
+    BOOLEAN_MAPPING = {True: 'yes', False: 'no', None: 'unknown'}
+    return mark_safe(u'<img src="%simg/admin/icon-%s.gif" alt="%s" />' % (settings.ADMIN_MEDIA_PREFIX, BOOLEAN_MAPPING[field_val], field_val))
+
+def items_for_result(cl, result):
+    first = True
+    pk = cl.lookup_opts.pk.attname
+    for field_name in cl.list_display:
+        row_class = ''
+        try:
+            f = cl.lookup_opts.get_field(field_name)
+        except models.FieldDoesNotExist:
+            # For non-field list_display values, the value is either a method,
+            # property or returned via a callable.
+            try:
+                if callable(field_name):
+                    attr = field_name
+                    value = attr(result)
+                elif hasattr(cl.model_admin, field_name) and \
+                   not field_name == '__str__' and not field_name == '__unicode__':
+                    attr = getattr(cl.model_admin, field_name)
+                    value = attr(result)
+                else:
+                    attr = getattr(result, field_name)
+                    if callable(attr):
+                        value = attr()
+                    else:
+                        value = attr
+                allow_tags = getattr(attr, 'allow_tags', False)
+                boolean = getattr(attr, 'boolean', False)
+                if boolean:
+                    allow_tags = True
+                    result_repr = _boolean_icon(value)
+                else:
+                    result_repr = smart_unicode(value)
+            except (AttributeError, ObjectDoesNotExist):
+                result_repr = EMPTY_CHANGELIST_VALUE
+            else:
+                # Strip HTML tags in the resulting text, except if the
+                # function has an "allow_tags" attribute set to True.
+                if not allow_tags:
+                    result_repr = escape(result_repr)
+                else:
+                    result_repr = mark_safe(result_repr)
+        else:
+            field_val = getattr(result, f.attname)
+
+            if isinstance(f.rel, models.ManyToOneRel):
+                if field_val is not None:
+                    result_repr = escape(getattr(result, f.name))
+                else:
+                    result_repr = EMPTY_CHANGELIST_VALUE
+            # Dates and times are special: They're formatted in a certain way.
+            elif isinstance(f, models.DateField) or isinstance(f, models.TimeField):
+                if field_val:
+                    (date_format, datetime_format, time_format) = get_date_formats()
+                    if isinstance(f, models.DateTimeField):
+                        result_repr = capfirst(dateformat.format(field_val, datetime_format))
+                    elif isinstance(f, models.TimeField):
+                        result_repr = capfirst(dateformat.time_format(field_val, time_format))
+                    else:
+                        result_repr = capfirst(dateformat.format(field_val, date_format))
+                else:
+                    result_repr = EMPTY_CHANGELIST_VALUE
+                row_class = ' class="nowrap"'
+            # Booleans are special: We use images.
+            elif isinstance(f, models.BooleanField) or isinstance(f, models.NullBooleanField):
+                result_repr = _boolean_icon(field_val)
+            # DecimalFields are special: Zero-pad the decimals.
+            elif isinstance(f, models.DecimalField):
+                if field_val is not None:
+                    result_repr = ('%%.%sf' % f.decimal_places) % field_val
+                else:
+                    result_repr = EMPTY_CHANGELIST_VALUE
+            # Fields with choices are special: Use the representation
+            # of the choice.
+            elif f.choices:
+                result_repr = dict(f.choices).get(field_val, EMPTY_CHANGELIST_VALUE)
+            else:
+                result_repr = escape(field_val)
+        if force_unicode(result_repr) == '':
+            result_repr = mark_safe('&nbsp;')
+        # If list_display_links not defined, add the link tag to the first field
+        if (first and not cl.list_display_links) or field_name in cl.list_display_links:
+            table_tag = {True:'th', False:'td'}[first]
+            first = False
+            url = cl.url_for_result(result)
+            # Convert the pk to something that can be used in Javascript.
+            # Problem cases are long ints (23L) and non-ASCII strings.
+            result_id = repr(force_unicode(getattr(result, pk)))[1:]
+            yield mark_safe(u'<%s%s><a href="%s"%s>%s</a></%s>' % \
+                (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s); return false;"' % result_id or ''), conditional_escape(result_repr), table_tag))
+        else:
+            yield mark_safe(u'<td%s>%s</td>' % (row_class, conditional_escape(result_repr)))
+
+def results(cl):
+    for res in cl.result_list:
+        yield list(items_for_result(cl,res))
+
+def result_list(cl):
+    return {'cl': cl,
+            'result_headers': list(result_headers(cl)),
+            'results': list(results(cl))}
+result_list = register.inclusion_tag("admin/change_list_results.html")(result_list)
+
+def date_hierarchy(cl):
+    if cl.date_hierarchy:
+        field_name = cl.date_hierarchy
+        year_field = '%s__year' % field_name
+        month_field = '%s__month' % field_name
+        day_field = '%s__day' % field_name
+        field_generic = '%s__' % field_name
+        year_lookup = cl.params.get(year_field)
+        month_lookup = cl.params.get(month_field)
+        day_lookup = cl.params.get(day_field)
+        year_month_format, month_day_format = get_partial_date_formats()
+
+        link = lambda d: mark_safe(cl.get_query_string(d, [field_generic]))
+
+        if year_lookup and month_lookup and day_lookup:
+            day = datetime.date(int(year_lookup), int(month_lookup), int(day_lookup))
+            return {
+                'show': True,
+                'back': {
+                    'link': link({year_field: year_lookup, month_field: month_lookup}),
+                    'title': dateformat.format(day, year_month_format)
+                },
+                'choices': [{'title': dateformat.format(day, month_day_format)}]
+            }
+        elif year_lookup and month_lookup:
+            days = cl.query_set.filter(**{year_field: year_lookup, month_field: month_lookup}).dates(field_name, 'day')
+            return {
+                'show': True,
+                'back': {
+                    'link': link({year_field: year_lookup}),
+                    'title': year_lookup
+                },
+                'choices': [{
+                    'link': link({year_field: year_lookup, month_field: month_lookup, day_field: day.day}),
+                    'title': dateformat.format(day, month_day_format)
+                } for day in days]
+            }
+        elif year_lookup:
+            months = cl.query_set.filter(**{year_field: year_lookup}).dates(field_name, 'month')
+            return {
+                'show' : True,
+                'back': {
+                    'link' : link({}),
+                    'title': _('All dates')
+                },
+                'choices': [{
+                    'link': link({year_field: year_lookup, month_field: month.month}),
+                    'title': dateformat.format(month, year_month_format)
+                } for month in months]
+            }
+        else:
+            years = cl.query_set.dates(field_name, 'year')
+            return {
+                'show': True,
+                'choices': [{
+                    'link': link({year_field: year.year}),
+                    'title': year.year
+                } for year in years]
+            }
+date_hierarchy = register.inclusion_tag('admin/date_hierarchy.html')(date_hierarchy)
+
+def search_form(cl):
+    return {
+        'cl': cl,
+        'show_result_count': cl.result_count != cl.full_result_count,
+        'search_var': SEARCH_VAR
+    }
+search_form = register.inclusion_tag('admin/search_form.html')(search_form)
+
+def admin_list_filter(cl, spec):
+    return {'title': spec.title(), 'choices' : list(spec.choices(cl))}
+admin_list_filter = register.inclusion_tag('admin/filter.html')(admin_list_filter)
diff --git a/webapp/django/contrib/admin/templatetags/admin_modify.py b/webapp/django/contrib/admin/templatetags/admin_modify.py
new file mode 100644
index 0000000..850127c
--- /dev/null
+++ b/webapp/django/contrib/admin/templatetags/admin_modify.py
@@ -0,0 +1,38 @@
+from django import template
+
+register = template.Library()
+
+def prepopulated_fields_js(context):
+    """
+    Creates a list of prepopulated_fields that should render Javascript for
+    the prepopulated fields for both the admin form and inlines.
+    """
+    prepopulated_fields = []
+    if context['add'] and 'adminform' in context:
+        prepopulated_fields.extend(context['adminform'].prepopulated_fields)
+    if 'inline_admin_formsets' in context:
+        for inline_admin_formset in context['inline_admin_formsets']:
+            for inline_admin_form in inline_admin_formset:
+                if inline_admin_form.original is None:
+                    prepopulated_fields.extend(inline_admin_form.prepopulated_fields)
+    context.update({'prepopulated_fields': prepopulated_fields})
+    return context
+prepopulated_fields_js = register.inclusion_tag('admin/prepopulated_fields_js.html', takes_context=True)(prepopulated_fields_js)
+
+def submit_row(context):
+    opts = context['opts']
+    change = context['change']
+    is_popup = context['is_popup']
+    save_as = context['save_as']
+    return {
+        'onclick_attrib': (opts.get_ordered_objects() and change
+                            and 'onclick="submitOrderForm();"' or ''),
+        'show_delete_link': (not is_popup and context['has_delete_permission']
+                              and (change or context['show_delete'])),
+        'show_save_as_new': not is_popup and change and save_as,
+        'show_save_and_add_another': context['has_add_permission'] and 
+                            not is_popup and (not save_as or context['add']),
+        'show_save_and_continue': not is_popup and context['has_change_permission'],
+        'show_save': True
+    }
+submit_row = register.inclusion_tag('admin/submit_line.html', takes_context=True)(submit_row)
diff --git a/webapp/django/contrib/admin/templatetags/adminmedia.py b/webapp/django/contrib/admin/templatetags/adminmedia.py
new file mode 100644
index 0000000..7786343
--- /dev/null
+++ b/webapp/django/contrib/admin/templatetags/adminmedia.py
@@ -0,0 +1,14 @@
+from django.template import Library
+
+register = Library()
+
+def admin_media_prefix():
+    """
+    Returns the string contained in the setting ADMIN_MEDIA_PREFIX.
+    """
+    try:
+        from django.conf import settings
+    except ImportError:
+        return ''
+    return settings.ADMIN_MEDIA_PREFIX
+admin_media_prefix = register.simple_tag(admin_media_prefix)
diff --git a/webapp/django/contrib/admin/templatetags/log.py b/webapp/django/contrib/admin/templatetags/log.py
new file mode 100644
index 0000000..8d52d2e
--- /dev/null
+++ b/webapp/django/contrib/admin/templatetags/log.py
@@ -0,0 +1,56 @@
+from django import template
+from django.contrib.admin.models import LogEntry
+
+register = template.Library()
+
+class AdminLogNode(template.Node):
+    def __init__(self, limit, varname, user):
+        self.limit, self.varname, self.user = limit, varname, user
+
+    def __repr__(self):
+        return "<GetAdminLog Node>"
+
+    def render(self, context):
+        if self.user is None:
+            context[self.varname] = LogEntry.objects.all().select_related()[:self.limit]
+        else:
+            if not self.user.isdigit():
+                self.user = context[self.user].id
+            context[self.varname] = LogEntry.objects.filter(user__id__exact=self.user).select_related()[:self.limit]
+        return ''
+
+class DoGetAdminLog:
+    """
+    Populates a template variable with the admin log for the given criteria.
+
+    Usage::
+
+        {% get_admin_log [limit] as [varname] for_user [context_var_containing_user_obj] %}
+
+    Examples::
+
+        {% get_admin_log 10 as admin_log for_user 23 %}
+        {% get_admin_log 10 as admin_log for_user user %}
+        {% get_admin_log 10 as admin_log %}
+
+    Note that ``context_var_containing_user_obj`` can be a hard-coded integer
+    (user ID) or the name of a template context variable containing the user
+    object whose ID you want.
+    """
+    def __init__(self, tag_name):
+        self.tag_name = tag_name
+
+    def __call__(self, parser, token):
+        tokens = token.contents.split()
+        if len(tokens) < 4:
+            raise template.TemplateSyntaxError, "'%s' statements require two arguments" % self.tag_name
+        if not tokens[1].isdigit():
+            raise template.TemplateSyntaxError, "First argument in '%s' must be an integer" % self.tag_name
+        if tokens[2] != 'as':
+            raise template.TemplateSyntaxError, "Second argument in '%s' must be 'as'" % self.tag_name
+        if len(tokens) > 4:
+            if tokens[4] != 'for_user':
+                raise template.TemplateSyntaxError, "Fourth argument in '%s' must be 'for_user'" % self.tag_name
+        return AdminLogNode(limit=tokens[1], varname=tokens[3], user=(len(tokens) > 5 and tokens[5] or None))
+
+register.tag('get_admin_log', DoGetAdminLog('get_admin_log'))
diff --git a/webapp/django/contrib/admin/util.py b/webapp/django/contrib/admin/util.py
new file mode 100644
index 0000000..c3f567d
--- /dev/null
+++ b/webapp/django/contrib/admin/util.py
@@ -0,0 +1,151 @@
+from django.core.exceptions import ObjectDoesNotExist
+from django.db import models
+from django.utils.html import escape
+from django.utils.safestring import mark_safe
+from django.utils.text import capfirst
+from django.utils.encoding import force_unicode
+from django.utils.translation import ugettext as _
+
+
+def quote(s):
+    """
+    Ensure that primary key values do not confuse the admin URLs by escaping
+    any '/', '_' and ':' characters. Similar to urllib.quote, except that the
+    quoting is slightly different so that it doesn't get automatically
+    unquoted by the Web browser.
+    """
+    if not isinstance(s, basestring):
+        return s
+    res = list(s)
+    for i in range(len(res)):
+        c = res[i]
+        if c in """:/_#?;@&=+$,"<>%\\""":
+            res[i] = '_%02X' % ord(c)
+    return ''.join(res)
+
+def unquote(s):
+    """
+    Undo the effects of quote(). Based heavily on urllib.unquote().
+    """
+    mychr = chr
+    myatoi = int
+    list = s.split('_')
+    res = [list[0]]
+    myappend = res.append
+    del list[0]
+    for item in list:
+        if item[1:2]:
+            try:
+                myappend(mychr(myatoi(item[:2], 16)) + item[2:])
+            except ValueError:
+                myappend('_' + item)
+        else:
+            myappend('_' + item)
+    return "".join(res)
+
+def flatten_fieldsets(fieldsets):
+    """Returns a list of field names from an admin fieldsets structure."""
+    field_names = []
+    for name, opts in fieldsets:
+        for field in opts['fields']:
+            # type checking feels dirty, but it seems like the best way here
+            if type(field) == tuple:
+                field_names.extend(field)
+            else:
+                field_names.append(field)
+    return field_names
+
+def _nest_help(obj, depth, val):
+    current = obj
+    for i in range(depth):
+        current = current[-1]
+    current.append(val)
+
+def get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current_depth, admin_site):
+    "Helper function that recursively populates deleted_objects."
+    nh = _nest_help # Bind to local variable for performance
+    if current_depth > 16:
+        return # Avoid recursing too deep.
+    opts_seen = []
+    for related in opts.get_all_related_objects():
+        has_admin = related.model in admin_site._registry
+        if related.opts in opts_seen:
+            continue
+        opts_seen.append(related.opts)
+        rel_opts_name = related.get_accessor_name()
+        if isinstance(related.field.rel, models.OneToOneRel):
+            try:
+                sub_obj = getattr(obj, rel_opts_name)
+            except ObjectDoesNotExist:
+                pass
+            else:
+                if has_admin:
+                    p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission())
+                    if not user.has_perm(p):
+                        perms_needed.add(related.opts.verbose_name)
+                        # We don't care about populating deleted_objects now.
+                        continue
+                if related.field.rel.edit_inline or not has_admin:
+                    # Don't display link to edit, because it either has no
+                    # admin or is edited inline.
+                    nh(deleted_objects, current_depth, [mark_safe(u'%s: %s' % (force_unicode(capfirst(related.opts.verbose_name)), sub_obj)), []])
+                else:
+                    # Display a link to the admin page.
+                    nh(deleted_objects, current_depth, [mark_safe(u'%s: <a href="../../../../%s/%s/%s/">%s</a>' %
+                        (escape(force_unicode(capfirst(related.opts.verbose_name))),
+                            related.opts.app_label,
+                            related.opts.object_name.lower(),
+                            sub_obj._get_pk_val(), sub_obj)), []])
+                get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2, admin_site)
+        else:
+            has_related_objs = False
+            for sub_obj in getattr(obj, rel_opts_name).all():
+                has_related_objs = True
+                if related.field.rel.edit_inline or not has_admin:
+                    # Don't display link to edit, because it either has no
+                    # admin or is edited inline.
+                    nh(deleted_objects, current_depth, [u'%s: %s' % (force_unicode(capfirst(related.opts.verbose_name)), escape(sub_obj)), []])
+                else:
+                    # Display a link to the admin page.
+                    nh(deleted_objects, current_depth, [mark_safe(u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \
+                        (escape(force_unicode(capfirst(related.opts.verbose_name))), related.opts.app_label, related.opts.object_name.lower(), sub_obj._get_pk_val(), escape(sub_obj))), []])
+                get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2, admin_site)
+            # If there were related objects, and the user doesn't have
+            # permission to delete them, add the missing perm to perms_needed.
+            if has_admin and has_related_objs:
+                p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission())
+                if not user.has_perm(p):
+                    perms_needed.add(related.opts.verbose_name)
+    for related in opts.get_all_related_many_to_many_objects():
+        has_admin = related.model in admin_site._registry
+        if related.opts in opts_seen:
+            continue
+        opts_seen.append(related.opts)
+        rel_opts_name = related.get_accessor_name()
+        has_related_objs = False
+
+        # related.get_accessor_name() could return None for symmetrical relationships
+        if rel_opts_name:
+            rel_objs = getattr(obj, rel_opts_name, None)
+            if rel_objs:
+                has_related_objs = True
+
+        if has_related_objs:
+            for sub_obj in rel_objs.all():
+                if related.field.rel.edit_inline or not has_admin:
+                    # Don't display link to edit, because it either has no
+                    # admin or is edited inline.
+                    nh(deleted_objects, current_depth, [_('One or more %(fieldname)s in %(name)s: %(obj)s') % \
+                        {'fieldname': force_unicode(related.field.verbose_name), 'name': force_unicode(related.opts.verbose_name), 'obj': escape(sub_obj)}, []])
+                else:
+                    # Display a link to the admin page.
+                    nh(deleted_objects, current_depth, [
+                        mark_safe((_('One or more %(fieldname)s in %(name)s:') % {'fieldname': escape(force_unicode(related.field.verbose_name)), 'name': escape(force_unicode(related.opts.verbose_name))}) + \
+                        (u' <a href="../../../../%s/%s/%s/">%s</a>' % \
+                            (related.opts.app_label, related.opts.module_name, sub_obj._get_pk_val(), escape(sub_obj)))), []])
+        # If there were related objects, and the user doesn't have
+        # permission to change them, add the missing perm to perms_needed.
+        if has_admin and has_related_objs:
+            p = u'%s.%s' % (related.opts.app_label, related.opts.get_change_permission())
+            if not user.has_perm(p):
+                perms_needed.add(related.opts.verbose_name)
diff --git a/webapp/django/contrib/admin/validation.py b/webapp/django/contrib/admin/validation.py
new file mode 100644
index 0000000..9b9cefa
--- /dev/null
+++ b/webapp/django/contrib/admin/validation.py
@@ -0,0 +1,298 @@
+try:
+    set
+except NameError:
+    from sets import Set as set   # Python 2.3 fallback
+
+from django.core.exceptions import ImproperlyConfigured
+from django.db import models
+from django.forms.models import BaseModelForm, BaseModelFormSet, fields_for_model
+from django.contrib.admin.options import flatten_fieldsets, BaseModelAdmin
+from django.contrib.admin.options import HORIZONTAL, VERTICAL
+
+def validate(cls, model):
+    """
+    Does basic ModelAdmin option validation. Calls custom validation
+    classmethod in the end if it is provided in cls. The signature of the
+    custom validation classmethod should be: def validate(cls, model).
+    """
+    opts = model._meta
+    _validate_base(cls, model)
+
+    # currying is expensive, use wrappers instead
+    def _check_istuplew(label, obj):
+        _check_istuple(cls, label, obj)
+
+    def _check_isdictw(label, obj):
+        _check_isdict(cls, label, obj)
+
+    def _check_field_existsw(label, field):
+        return _check_field_exists(cls, model, opts, label, field)
+
+    def _check_attr_existsw(label, field):
+        return _check_attr_exists(cls, model, opts, label, field)
+
+    # list_display
+    if hasattr(cls, 'list_display'):
+        _check_istuplew('list_display', cls.list_display)
+        for idx, field in enumerate(cls.list_display):
+            if not callable(field):
+                if not hasattr(cls, field):
+                    if not hasattr(model, field):
+                        try:
+                            opts.get_field(field)
+                        except models.FieldDoesNotExist:
+                            raise ImproperlyConfigured("%s.list_display[%d], %r is "
+                                "not a callable or an attribute of %r or found in the model %r."
+                                % (cls.__name__, idx, field, cls.__name__, model._meta.object_name))
+                        f = _check_attr_existsw("list_display[%d]" % idx, field)
+                        if isinstance(f, models.ManyToManyField):
+                            raise ImproperlyConfigured("`%s.list_display[%d]`, `%s` is a "
+                                "ManyToManyField which is not supported."
+                                % (cls.__name__, idx, field))
+
+    # list_display_links
+    if hasattr(cls, 'list_display_links'):
+        _check_istuplew('list_display_links', cls.list_display_links)
+        for idx, field in enumerate(cls.list_display_links):
+            _check_attr_existsw('list_display_links[%d]' % idx, field)
+            if field not in cls.list_display:
+                raise ImproperlyConfigured("`%s.list_display_links[%d]`"
+                        "refers to `%s` which is not defined in `list_display`."
+                        % (cls.__name__, idx, field))
+
+    # list_filter
+    if hasattr(cls, 'list_filter'):
+        _check_istuplew('list_filter', cls.list_filter)
+        for idx, field in enumerate(cls.list_filter):
+            _check_field_existsw('list_filter[%d]' % idx, field)
+
+    # list_per_page = 100
+    if hasattr(cls, 'list_per_page') and not isinstance(cls.list_per_page, int):
+        raise ImproperlyConfigured("`%s.list_per_page` should be a integer."
+                % cls.__name__)
+
+    # search_fields = ()
+    if hasattr(cls, 'search_fields'):
+        _check_istuplew('search_fields', cls.search_fields)
+        
+    # date_hierarchy = None
+    if cls.date_hierarchy:
+        f = _check_field_existsw('date_hierarchy', cls.date_hierarchy)
+        if not isinstance(f, (models.DateField, models.DateTimeField)):
+            raise ImproperlyConfigured("`%s.date_hierarchy is "
+                    "neither an instance of DateField nor DateTimeField."
+                    % cls.__name__)
+
+    # ordering = None
+    if cls.ordering:
+        _check_istuplew('ordering', cls.ordering)
+        for idx, field in enumerate(cls.ordering):
+            if field == '?' and len(cls.ordering) != 1:
+                raise ImproperlyConfigured("`%s.ordering` has the random "
+                        "ordering marker `?`, but contains other fields as "
+                        "well. Please either remove `?` or the other fields."
+                        % cls.__name__)
+            if field == '?':
+                continue
+            if field.startswith('-'):
+                field = field[1:]
+            # Skip ordering in the format field1__field2 (FIXME: checking
+            # this format would be nice, but it's a little fiddly).
+            if '__' in field:
+                continue
+            _check_field_existsw('ordering[%d]' % idx, field)
+
+    # list_select_related = False
+    # save_as = False
+    # save_on_top = False
+    for attr in ('list_select_related', 'save_as', 'save_on_top'):
+        if not isinstance(getattr(cls, attr), bool):
+            raise ImproperlyConfigured("`%s.%s` should be a boolean."
+                    % (cls.__name__, attr))
+
+    # inlines = []
+    if hasattr(cls, 'inlines'):
+        _check_istuplew('inlines', cls.inlines)
+        for idx, inline in enumerate(cls.inlines):
+            if not issubclass(inline, BaseModelAdmin):
+                raise ImproperlyConfigured("`%s.inlines[%d]` does not inherit "
+                        "from BaseModelAdmin." % (cls.__name__, idx))
+            if not inline.model:
+                raise ImproperlyConfigured("`model` is a required attribute "
+                        "of `%s.inlines[%d]`." % (cls.__name__, idx))
+            if not issubclass(inline.model, models.Model):
+                raise ImproperlyConfigured("`%s.inlines[%d].model` does not "
+                        "inherit from models.Model." % (cls.__name__, idx))
+            _validate_base(inline, inline.model)
+            _validate_inline(inline)
+            
+def _validate_inline(cls):
+    # model is already verified to exist and be a Model
+    if cls.fk_name: # default value is None
+        f = _check_field_exists(cls, cls.model, cls.model._meta,
+                'fk_name', cls.fk_name)
+        if not isinstance(f, models.ForeignKey):
+            raise ImproperlyConfigured("`%s.fk_name is not an instance of "
+                    "models.ForeignKey." % cls.__name__)
+    # extra = 3
+    # max_num = 0
+    for attr in ('extra', 'max_num'):
+        if not isinstance(getattr(cls, attr), int):
+            raise ImproperlyConfigured("`%s.%s` should be a integer."
+                    % (cls.__name__, attr))
+
+    # formset
+    if hasattr(cls, 'formset') and not issubclass(cls.formset, BaseModelFormSet):
+        raise ImproperlyConfigured("`%s.formset` does not inherit from "
+                "BaseModelFormSet." % cls.__name__)
+
+def _validate_base(cls, model):
+    opts = model._meta
+    # currying is expensive, use wrappers instead
+    def _check_istuplew(label, obj):
+        _check_istuple(cls, label, obj)
+
+    def _check_isdictw(label, obj):
+        _check_isdict(cls, label, obj)
+
+    def _check_field_existsw(label, field):
+        return _check_field_exists(cls, model, opts, label, field)
+    
+    def _check_form_field_existsw(label, field):
+        return _check_form_field_exists(cls, model, opts, label, field)
+
+    # raw_id_fields
+    if hasattr(cls, 'raw_id_fields'):
+        _check_istuplew('raw_id_fields', cls.raw_id_fields)
+        for idx, field in enumerate(cls.raw_id_fields):
+            f = _check_field_existsw('raw_id_fields', field)
+            if not isinstance(f, (models.ForeignKey, models.ManyToManyField)):
+                raise ImproperlyConfigured("`%s.raw_id_fields[%d]`, `%s` must "
+                        "be either a ForeignKey or ManyToManyField."
+                        % (cls.__name__, idx, field))
+
+    # fields
+    if cls.fields: # default value is None
+        _check_istuplew('fields', cls.fields)
+        for field in cls.fields:
+            _check_form_field_existsw('fields', field)
+        if cls.fieldsets:
+            raise ImproperlyConfigured('Both fieldsets and fields are specified in %s.' % cls.__name__)
+        if len(cls.fields) > len(set(cls.fields)):
+            raise ImproperlyConfigured('There are duplicate field(s) in %s.fields' % cls.__name__)
+
+    # fieldsets
+    if cls.fieldsets: # default value is None
+        _check_istuplew('fieldsets', cls.fieldsets)
+        for idx, fieldset in enumerate(cls.fieldsets):
+            _check_istuplew('fieldsets[%d]' % idx, fieldset)
+            if len(fieldset) != 2:
+                raise ImproperlyConfigured("`%s.fieldsets[%d]` does not "
+                        "have exactly two elements." % (cls.__name__, idx))
+            _check_isdictw('fieldsets[%d][1]' % idx, fieldset[1])
+            if 'fields' not in fieldset[1]:
+                raise ImproperlyConfigured("`fields` key is required in "
+                        "%s.fieldsets[%d][1] field options dict."
+                        % (cls.__name__, idx))
+        flattened_fieldsets = flatten_fieldsets(cls.fieldsets)
+        if len(flattened_fieldsets) > len(set(flattened_fieldsets)):
+            raise ImproperlyConfigured('There are duplicate field(s) in %s.fieldsets' % cls.__name__)
+        for field in flattened_fieldsets:
+            _check_form_field_existsw("fieldsets[%d][1]['fields']" % idx, field)
+
+    # form
+    if hasattr(cls, 'form') and not issubclass(cls.form, BaseModelForm):
+        raise ImproperlyConfigured("%s.form does not inherit from "
+                "BaseModelForm." % cls.__name__)
+
+    # filter_vertical
+    if hasattr(cls, 'filter_vertical'):
+        _check_istuplew('filter_vertical', cls.filter_vertical)
+        for idx, field in enumerate(cls.filter_vertical):
+            f = _check_field_existsw('filter_vertical', field)
+            if not isinstance(f, models.ManyToManyField):
+                raise ImproperlyConfigured("`%s.filter_vertical[%d]` must be "
+                    "a ManyToManyField." % (cls.__name__, idx))
+
+    # filter_horizontal
+    if hasattr(cls, 'filter_horizontal'):
+        _check_istuplew('filter_horizontal', cls.filter_horizontal)
+        for idx, field in enumerate(cls.filter_horizontal):
+            f = _check_field_existsw('filter_horizontal', field)
+            if not isinstance(f, models.ManyToManyField):
+                raise ImproperlyConfigured("`%s.filter_horizontal[%d]` must be "
+                    "a ManyToManyField." % (cls.__name__, idx))
+
+    # radio_fields
+    if hasattr(cls, 'radio_fields'):
+        _check_isdictw('radio_fields', cls.radio_fields)
+        for field, val in cls.radio_fields.items():
+            f = _check_field_existsw('radio_fields', field)
+            if not (isinstance(f, models.ForeignKey) or f.choices):
+                raise ImproperlyConfigured("`%s.radio_fields['%s']` "
+                        "is neither an instance of ForeignKey nor does "
+                        "have choices set." % (cls.__name__, field))
+            if not val in (HORIZONTAL, VERTICAL):
+                raise ImproperlyConfigured("`%s.radio_fields['%s']` "
+                        "is neither admin.HORIZONTAL nor admin.VERTICAL."
+                        % (cls.__name__, field))
+
+    # prepopulated_fields
+    if hasattr(cls, 'prepopulated_fields'):
+        _check_isdictw('prepopulated_fields', cls.prepopulated_fields)
+        for field, val in cls.prepopulated_fields.items():
+            f = _check_field_existsw('prepopulated_fields', field)
+            if isinstance(f, (models.DateTimeField, models.ForeignKey,
+                models.ManyToManyField)):
+                raise ImproperlyConfigured("`%s.prepopulated_fields['%s']` "
+                        "is either a DateTimeField, ForeignKey or "
+                        "ManyToManyField. This isn't allowed."
+                        % (cls.__name__, field))
+            _check_istuplew("prepopulated_fields['%s']" % field, val)
+            for idx, f in enumerate(val):
+                _check_field_existsw("prepopulated_fields['%s'][%d]"
+                        % (f, idx), f)
+
+def _check_istuple(cls, label, obj):
+    if not isinstance(obj, (list, tuple)):
+        raise ImproperlyConfigured("`%s.%s` must be a "
+                "list or tuple." % (cls.__name__, label))
+
+def _check_isdict(cls, label, obj):
+    if not isinstance(obj, dict):
+        raise ImproperlyConfigured("`%s.%s` must be a dictionary."
+                % (cls.__name__, label))
+
+def _check_field_exists(cls, model, opts, label, field):
+    try:
+        return opts.get_field(field)
+    except models.FieldDoesNotExist:
+        raise ImproperlyConfigured("`%s.%s` refers to "
+                "field `%s` that is missing from model `%s`."
+                % (cls.__name__, label, field, model.__name__))
+
+def _check_form_field_exists(cls, model, opts, label, field):
+    if hasattr(cls.form, 'base_fields'):
+        try:
+            cls.form.base_fields[field]
+        except KeyError:
+            raise ImproperlyConfigured("`%s.%s` refers to field `%s` that "
+                "is missing from the form." % (cls.__name__, label, field))
+    else:
+        fields = fields_for_model(model)
+        try:
+            fields[field]
+        except KeyError:
+            raise ImproperlyConfigured("`%s.%s` refers to field `%s` that "
+                "is missing from the form." % (cls.__name__, label, field))
+
+def _check_attr_exists(cls, model, opts, label, field):
+    try:
+        return opts.get_field(field)
+    except models.FieldDoesNotExist:
+        if not hasattr(model, field):
+            raise ImproperlyConfigured("`%s.%s` refers to "
+                    "`%s` that is neither a field, method or property "
+                    "of model `%s`."
+                    % (cls.__name__, label, field, model.__name__))
+        return getattr(model, field)
diff --git a/webapp/django/contrib/admin/views/__init__.py b/webapp/django/contrib/admin/views/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/admin/views/__init__.py
diff --git a/webapp/django/contrib/admin/views/decorators.py b/webapp/django/contrib/admin/views/decorators.py
new file mode 100644
index 0000000..f3c63ff
--- /dev/null
+++ b/webapp/django/contrib/admin/views/decorators.py
@@ -0,0 +1,114 @@
+import base64
+import cPickle as pickle
+try:
+    from functools import wraps
+except ImportError:
+    from django.utils.functional import wraps  # Python 2.3, 2.4 fallback.
+
+from django import http, template
+from django.conf import settings
+from django.contrib.auth.models import User
+from django.contrib.auth import authenticate, login
+from django.shortcuts import render_to_response
+from django.utils.translation import ugettext_lazy, ugettext as _
+from django.utils.hashcompat import md5_constructor
+
+ERROR_MESSAGE = ugettext_lazy("Please enter a correct username and password. Note that both fields are case-sensitive.")
+LOGIN_FORM_KEY = 'this_is_the_login_form'
+
+def _display_login_form(request, error_message=''):
+    request.session.set_test_cookie()
+    if request.POST and 'post_data' in request.POST:
+        # User has failed login BUT has previously saved post data.
+        post_data = request.POST['post_data']
+    elif request.POST:
+        # User's session must have expired; save their post data.
+        post_data = _encode_post_data(request.POST)
+    else:
+        post_data = _encode_post_data({})
+    return render_to_response('admin/login.html', {
+        'title': _('Log in'),
+        'app_path': request.get_full_path(),
+        'post_data': post_data,
+        'error_message': error_message
+    }, context_instance=template.RequestContext(request))
+
+def _encode_post_data(post_data):
+    pickled = pickle.dumps(post_data)
+    pickled_md5 = md5_constructor(pickled + settings.SECRET_KEY).hexdigest()
+    return base64.encodestring(pickled + pickled_md5)
+
+def _decode_post_data(encoded_data):
+    encoded_data = base64.decodestring(encoded_data)
+    pickled, tamper_check = encoded_data[:-32], encoded_data[-32:]
+    if md5_constructor(pickled + settings.SECRET_KEY).hexdigest() != tamper_check:
+        from django.core.exceptions import SuspiciousOperation
+        raise SuspiciousOperation, "User may have tampered with session cookie."
+    return pickle.loads(pickled)
+
+def staff_member_required(view_func):
+    """
+    Decorator for views that checks that the user is logged in and is a staff
+    member, displaying the login page if necessary.
+    """
+    def _checklogin(request, *args, **kwargs):
+        if request.user.is_authenticated() and request.user.is_staff:
+            # The user is valid. Continue to the admin page.
+            if 'post_data' in request.POST:
+                # User must have re-authenticated through a different window
+                # or tab.
+                request.POST = _decode_post_data(request.POST['post_data'])
+            return view_func(request, *args, **kwargs)
+
+        assert hasattr(request, 'session'), "The Django admin requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'."
+
+        # If this isn't already the login page, display it.
+        if LOGIN_FORM_KEY not in request.POST:
+            if request.POST:
+                message = _("Please log in again, because your session has expired. Don't worry: Your submission has been saved.")
+            else:
+                message = ""
+            return _display_login_form(request, message)
+
+        # Check that the user accepts cookies.
+        if not request.session.test_cookie_worked():
+            message = _("Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again.")
+            return _display_login_form(request, message)
+        else:
+            request.session.delete_test_cookie()
+
+        # Check the password.
+        username = request.POST.get('username', None)
+        password = request.POST.get('password', None)
+        user = authenticate(username=username, password=password)
+        if user is None:
+            message = ERROR_MESSAGE
+            if '@' in username:
+                # Mistakenly entered e-mail address instead of username? Look it up.
+                users = list(User.objects.filter(email=username))
+                if len(users) == 1 and users[0].check_password(password):
+                    message = _("Your e-mail address is not your username. Try '%s' instead.") % users[0].username
+                else:
+                    # Either we cannot find the user, or if more than 1
+                    # we cannot guess which user is the correct one.
+                    message = _("Usernames cannot contain the '@' character.")
+            return _display_login_form(request, message)
+
+        # The user data is correct; log in the user in and continue.
+        else:
+            if user.is_active and user.is_staff:
+                login(request, user)
+                # TODO: set last_login with an event.
+                if 'post_data' in request.POST:
+                    post_data = _decode_post_data(request.POST['post_data'])
+                    if post_data and LOGIN_FORM_KEY not in post_data:
+                        # overwrite request.POST with the saved post_data, and continue
+                        request.POST = post_data
+                        request.user = user
+                        return view_func(request, *args, **kwargs)
+                    else:
+                        return http.HttpResponseRedirect(request.get_full_path())
+            else:
+                return _display_login_form(request, ERROR_MESSAGE)
+
+    return wraps(view_func)(_checklogin)
diff --git a/webapp/django/contrib/admin/views/main.py b/webapp/django/contrib/admin/views/main.py
new file mode 100644
index 0000000..50b0153
--- /dev/null
+++ b/webapp/django/contrib/admin/views/main.py
@@ -0,0 +1,233 @@
+from django.contrib.admin.filterspecs import FilterSpec
+from django.contrib.admin.options import IncorrectLookupParameters
+from django.contrib.admin.util import quote
+from django.core.paginator import Paginator, InvalidPage
+from django.db import models
+from django.db.models.query import QuerySet
+from django.utils.encoding import force_unicode, smart_str
+from django.utils.translation import ugettext
+from django.utils.http import urlencode
+import operator
+
+try:
+    set
+except NameError:
+    from sets import Set as set   # Python 2.3 fallback
+
+# The system will display a "Show all" link on the change list only if the
+# total result count is less than or equal to this setting.
+MAX_SHOW_ALL_ALLOWED = 200
+
+# Changelist settings
+ALL_VAR = 'all'
+ORDER_VAR = 'o'
+ORDER_TYPE_VAR = 'ot'
+PAGE_VAR = 'p'
+SEARCH_VAR = 'q'
+IS_POPUP_VAR = 'pop'
+ERROR_FLAG = 'e'
+
+# Text to display within change-list table cells if the value is blank.
+EMPTY_CHANGELIST_VALUE = '(None)'
+
+class ChangeList(object):
+    def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy, search_fields, list_select_related, list_per_page, model_admin):
+        self.model = model
+        self.opts = model._meta
+        self.lookup_opts = self.opts
+        self.root_query_set = model_admin.queryset(request)
+        self.list_display = list_display
+        self.list_display_links = list_display_links
+        self.list_filter = list_filter
+        self.date_hierarchy = date_hierarchy
+        self.search_fields = search_fields
+        self.list_select_related = list_select_related
+        self.list_per_page = list_per_page
+        self.model_admin = model_admin
+
+        # Get search parameters from the query string.
+        try:
+            self.page_num = int(request.GET.get(PAGE_VAR, 0))
+        except ValueError:
+            self.page_num = 0
+        self.show_all = ALL_VAR in request.GET
+        self.is_popup = IS_POPUP_VAR in request.GET
+        self.params = dict(request.GET.items())
+        if PAGE_VAR in self.params:
+            del self.params[PAGE_VAR]
+        if ERROR_FLAG in self.params:
+            del self.params[ERROR_FLAG]
+
+        self.order_field, self.order_type = self.get_ordering()
+        self.query = request.GET.get(SEARCH_VAR, '')
+        self.query_set = self.get_query_set()
+        self.get_results(request)
+        self.title = (self.is_popup and ugettext('Select %s') % force_unicode(self.opts.verbose_name) or ugettext('Select %s to change') % force_unicode(self.opts.verbose_name))
+        self.filter_specs, self.has_filters = self.get_filters(request)
+        self.pk_attname = self.lookup_opts.pk.attname
+
+    def get_filters(self, request):
+        filter_specs = []
+        if self.list_filter:
+            filter_fields = [self.lookup_opts.get_field(field_name) for field_name in self.list_filter]
+            for f in filter_fields:
+                spec = FilterSpec.create(f, request, self.params, self.model, self.model_admin)
+                if spec and spec.has_output():
+                    filter_specs.append(spec)
+        return filter_specs, bool(filter_specs)
+
+    def get_query_string(self, new_params=None, remove=None):
+        if new_params is None: new_params = {}
+        if remove is None: remove = []
+        p = self.params.copy()
+        for r in remove:
+            for k in p.keys():
+                if k.startswith(r):
+                    del p[k]
+        for k, v in new_params.items():
+            if v is None:
+                if k in p:
+                    del p[k]
+            else:
+                p[k] = v
+        return '?%s' % urlencode(p)
+
+    def get_results(self, request):
+        paginator = Paginator(self.query_set, self.list_per_page)
+        # Get the number of objects, with admin filters applied.
+        try:
+            result_count = paginator.count
+        # Naked except! Because we don't have any other way of validating
+        # "params". They might be invalid if the keyword arguments are
+        # incorrect, or if the values are not in the correct type (which would
+        # result in a database error).
+        except:
+            raise IncorrectLookupParameters
+
+        # Get the total number of objects, with no admin filters applied.
+        # Perform a slight optimization: Check to see whether any filters were
+        # given. If not, use paginator.hits to calculate the number of objects,
+        # because we've already done paginator.hits and the value is cached.
+        if not self.query_set.query.where:
+            full_result_count = result_count
+        else:
+            full_result_count = self.root_query_set.count()
+
+        can_show_all = result_count <= MAX_SHOW_ALL_ALLOWED
+        multi_page = result_count > self.list_per_page
+
+        # Get the list of objects to display on this page.
+        if (self.show_all and can_show_all) or not multi_page:
+            result_list = list(self.query_set)
+        else:
+            try:
+                result_list = paginator.page(self.page_num+1).object_list
+            except InvalidPage:
+                result_list = ()
+
+        self.result_count = result_count
+        self.full_result_count = full_result_count
+        self.result_list = result_list
+        self.can_show_all = can_show_all
+        self.multi_page = multi_page
+        self.paginator = paginator
+
+    def get_ordering(self):
+        lookup_opts, params = self.lookup_opts, self.params
+        # For ordering, first check the "ordering" parameter in the admin
+        # options, then check the object's default ordering. If neither of
+        # those exist, order descending by ID by default. Finally, look for
+        # manually-specified ordering from the query string.
+        ordering = self.model_admin.ordering or lookup_opts.ordering or ['-' + lookup_opts.pk.name]
+
+        if ordering[0].startswith('-'):
+            order_field, order_type = ordering[0][1:], 'desc'
+        else:
+            order_field, order_type = ordering[0], 'asc'
+        if ORDER_VAR in params:
+            try:
+                field_name = self.list_display[int(params[ORDER_VAR])]
+                try:
+                    f = lookup_opts.get_field(field_name)
+                except models.FieldDoesNotExist:
+                    # See whether field_name is a name of a non-field
+                    # that allows sorting.
+                    try:
+                        attr = getattr(self.model, field_name)
+                        order_field = attr.admin_order_field
+                    except AttributeError:
+                        pass
+                else:
+                    if not isinstance(f.rel, models.ManyToOneRel) or not f.null:
+                        order_field = f.name
+            except (IndexError, ValueError):
+                pass # Invalid ordering specified. Just use the default.
+        if ORDER_TYPE_VAR in params and params[ORDER_TYPE_VAR] in ('asc', 'desc'):
+            order_type = params[ORDER_TYPE_VAR]
+        return order_field, order_type
+
+    def get_query_set(self):
+        qs = self.root_query_set
+        lookup_params = self.params.copy() # a dictionary of the query string
+        for i in (ALL_VAR, ORDER_VAR, ORDER_TYPE_VAR, SEARCH_VAR, IS_POPUP_VAR):
+            if i in lookup_params:
+                del lookup_params[i]
+        for key, value in lookup_params.items():
+            if not isinstance(key, str):
+                # 'key' will be used as a keyword argument later, so Python
+                # requires it to be a string.
+                del lookup_params[key]
+                lookup_params[smart_str(key)] = value
+
+        # Apply lookup parameters from the query string.
+        qs = qs.filter(**lookup_params)
+
+        # Use select_related() if one of the list_display options is a field
+        # with a relationship.
+        if self.list_select_related:
+            qs = qs.select_related()
+        else:
+            for field_name in self.list_display:
+                try:
+                    f = self.lookup_opts.get_field(field_name)
+                except models.FieldDoesNotExist:
+                    pass
+                else:
+                    if isinstance(f.rel, models.ManyToOneRel):
+                        qs = qs.select_related()
+                        break
+
+        # Set ordering.
+        if self.order_field:
+            qs = qs.order_by('%s%s' % ((self.order_type == 'desc' and '-' or ''), self.order_field))
+
+        # Apply keyword searches.
+        def construct_search(field_name):
+            if field_name.startswith('^'):
+                return "%s__istartswith" % field_name[1:]
+            elif field_name.startswith('='):
+                return "%s__iexact" % field_name[1:]
+            elif field_name.startswith('@'):
+                return "%s__search" % field_name[1:]
+            else:
+                return "%s__icontains" % field_name
+
+        if self.search_fields and self.query:
+            for bit in self.query.split():
+                or_queries = [models.Q(**{construct_search(field_name): bit}) for field_name in self.search_fields]
+                other_qs = QuerySet(self.model)
+                other_qs.dup_select_related(qs)
+                other_qs = other_qs.filter(reduce(operator.or_, or_queries))
+                qs = qs & other_qs
+            for field_name in self.search_fields:
+                if '__' in field_name:
+                    qs = qs.distinct()
+                    break
+
+        if self.opts.one_to_one_field:
+            qs = qs.complex_filter(self.opts.one_to_one_field.rel.limit_choices_to)
+
+        return qs
+
+    def url_for_result(self, result):
+        return "%s/" % quote(getattr(result, self.pk_attname))
diff --git a/webapp/django/contrib/admin/views/template.py b/webapp/django/contrib/admin/views/template.py
new file mode 100644
index 0000000..de9320b
--- /dev/null
+++ b/webapp/django/contrib/admin/views/template.py
@@ -0,0 +1,77 @@
+from django import template, forms
+from django.contrib.admin.views.decorators import staff_member_required
+from django.template import loader
+from django.shortcuts import render_to_response
+from django.contrib.sites.models import Site
+from django.conf import settings
+from django.utils.translation import ugettext_lazy as _
+
+
+def template_validator(request):
+    """
+    Displays the template validator form, which finds and displays template
+    syntax errors.
+    """
+    # get a dict of {site_id : settings_module} for the validator
+    settings_modules = {}
+    for mod in settings.ADMIN_FOR:
+        settings_module = __import__(mod, {}, {}, [''])
+        settings_modules[settings_module.SITE_ID] = settings_module
+    site_list = Site.objects.in_bulk(settings_modules.keys()).values()
+    if request.POST:
+        form = TemplateValidatorForm(settings_modules, site_list,
+                                     data=request.POST)
+        if form.is_valid():
+            request.user.message_set.create(message='The template is valid.')
+    else:
+        form = TemplateValidatorForm(settings_modules, site_list)
+    return render_to_response('admin/template_validator.html', {
+        'title': 'Template validator',
+        'form': form,
+    }, context_instance=template.RequestContext(request))
+template_validator = staff_member_required(template_validator)
+
+
+class TemplateValidatorForm(forms.Form):
+    site = forms.ChoiceField(_('site'))
+    template = forms.CharField(
+        _('template'), widget=forms.Textarea({'rows': 25, 'cols': 80}))
+
+    def __init__(self, settings_modules, site_list, *args, **kwargs):
+        self.settings_modules = settings_modules
+        super(TemplateValidatorForm, self).__init__(*args, **kwargs)
+        self.fields['site'].choices = [(s.id, s.name) for s in site_list]
+
+    def clean_template(self):
+        # Get the settings module. If the site isn't set, we don't raise an
+        # error since the site field will.
+        try:
+            site_id = int(self.cleaned_data.get('site', None))
+        except (ValueError, TypeError):
+            return
+        settings_module = self.settings_modules.get(site_id, None)
+        if settings_module is None:
+            return
+
+        # So that inheritance works in the site's context, register a new
+        # function for "extends" that uses the site's TEMPLATE_DIRS instead.
+        def new_do_extends(parser, token):
+            node = loader.do_extends(parser, token)
+            node.template_dirs = settings_module.TEMPLATE_DIRS
+            return node
+        register = template.Library()
+        register.tag('extends', new_do_extends)
+        template.builtins.append(register)
+
+        # Now validate the template using the new TEMPLATE_DIRS, making sure to
+        # reset the extends function in any case.
+        error = None
+        template_string = self.cleaned_data['template']
+        try:
+            tmpl = loader.get_template_from_string(template_string)
+            tmpl.render(template.Context({}))
+        except template.TemplateSyntaxError, e:
+            error = e
+        template.builtins.remove(register)
+        if error:
+            raise forms.ValidationError, e.args
diff --git a/webapp/django/contrib/admin/widgets.py b/webapp/django/contrib/admin/widgets.py
new file mode 100644
index 0000000..2bfbc97
--- /dev/null
+++ b/webapp/django/contrib/admin/widgets.py
@@ -0,0 +1,238 @@
+"""
+Form Widget classes specific to the Django admin site.
+"""
+
+import copy
+
+from django import forms
+from django.forms.widgets import RadioFieldRenderer
+from django.forms.util import flatatt
+from django.utils.text import truncate_words
+from django.utils.translation import ugettext as _
+from django.utils.safestring import mark_safe
+from django.utils.encoding import force_unicode
+from django.conf import settings
+
+class FilteredSelectMultiple(forms.SelectMultiple):
+    """
+    A SelectMultiple with a JavaScript filter interface.
+
+    Note that the resulting JavaScript assumes that the SelectFilter2.js
+    library and its dependencies have been loaded in the HTML page.
+    """
+    def __init__(self, verbose_name, is_stacked, attrs=None, choices=()):
+        self.verbose_name = verbose_name
+        self.is_stacked = is_stacked
+        super(FilteredSelectMultiple, self).__init__(attrs, choices)
+
+    def render(self, name, value, attrs=None, choices=()):
+        output = [super(FilteredSelectMultiple, self).render(name, value, attrs, choices)]
+        output.append(u'<script type="text/javascript">addEvent(window, "load", function(e) {')
+        # TODO: "id_" is hard-coded here. This should instead use the correct
+        # API to determine the ID dynamically.
+        output.append(u'SelectFilter.init("id_%s", "%s", %s, "%s"); });</script>\n' % \
+            (name, self.verbose_name.replace('"', '\\"'), int(self.is_stacked), settings.ADMIN_MEDIA_PREFIX))
+        return mark_safe(u''.join(output))
+
+class AdminDateWidget(forms.TextInput):
+    class Media:
+        js = (settings.ADMIN_MEDIA_PREFIX + "js/calendar.js", 
+              settings.ADMIN_MEDIA_PREFIX + "js/admin/DateTimeShortcuts.js")
+        
+    def __init__(self, attrs={}):
+        super(AdminDateWidget, self).__init__(attrs={'class': 'vDateField', 'size': '10'})
+
+class AdminTimeWidget(forms.TextInput):
+    class Media:
+        js = (settings.ADMIN_MEDIA_PREFIX + "js/calendar.js", 
+              settings.ADMIN_MEDIA_PREFIX + "js/admin/DateTimeShortcuts.js")
+
+    def __init__(self, attrs={}):
+        super(AdminTimeWidget, self).__init__(attrs={'class': 'vTimeField', 'size': '8'})
+    
+class AdminSplitDateTime(forms.SplitDateTimeWidget):
+    """
+    A SplitDateTime Widget that has some admin-specific styling.
+    """
+    def __init__(self, attrs=None):
+        widgets = [AdminDateWidget, AdminTimeWidget]
+        # Note that we're calling MultiWidget, not SplitDateTimeWidget, because
+        # we want to define widgets.
+        forms.MultiWidget.__init__(self, widgets, attrs)
+
+    def format_output(self, rendered_widgets):
+        return mark_safe(u'<p class="datetime">%s %s<br />%s %s</p>' % \
+            (_('Date:'), rendered_widgets[0], _('Time:'), rendered_widgets[1]))
+
+class AdminRadioFieldRenderer(RadioFieldRenderer):
+    def render(self):
+        """Outputs a <ul> for this set of radio fields."""
+        return mark_safe(u'<ul%s>\n%s\n</ul>' % (
+            flatatt(self.attrs),
+            u'\n'.join([u'<li>%s</li>' % force_unicode(w) for w in self]))
+        )
+
+class AdminRadioSelect(forms.RadioSelect):
+    renderer = AdminRadioFieldRenderer
+
+class AdminFileWidget(forms.FileInput):
+    """
+    A FileField Widget that shows its current value if it has one.
+    """
+    def __init__(self, attrs={}):
+        super(AdminFileWidget, self).__init__(attrs)
+        
+    def render(self, name, value, attrs=None):
+        output = []
+        if value and hasattr(value, "url"):
+            output.append('%s <a target="_blank" href="%s">%s</a> <br />%s ' % \
+                (_('Currently:'), value.url, value, _('Change:')))
+        output.append(super(AdminFileWidget, self).render(name, value, attrs))
+        return mark_safe(u''.join(output))
+
+class ForeignKeyRawIdWidget(forms.TextInput):
+    """
+    A Widget for displaying ForeignKeys in the "raw_id" interface rather than
+    in a <select> box.
+    """
+    def __init__(self, rel, attrs=None):
+        self.rel = rel
+        super(ForeignKeyRawIdWidget, self).__init__(attrs)
+
+    def render(self, name, value, attrs=None):
+        related_url = '../../../%s/%s/' % (self.rel.to._meta.app_label, self.rel.to._meta.object_name.lower())
+        if self.rel.limit_choices_to:
+            url = '?' + '&amp;'.join(['%s=%s' % (k, v) for k, v in self.rel.limit_choices_to.items()])
+        else:
+            url = ''
+        if not attrs.has_key('class'):
+          attrs['class'] = 'vForeignKeyRawIdAdminField' # The JavaScript looks for this hook.
+        output = [super(ForeignKeyRawIdWidget, self).render(name, value, attrs)]
+        # TODO: "id_" is hard-coded here. This should instead use the correct
+        # API to determine the ID dynamically.
+        output.append('<a href="%s%s" class="related-lookup" id="lookup_id_%s" onclick="return showRelatedObjectLookupPopup(this);"> ' % \
+            (related_url, url, name))
+        output.append('<img src="%simg/admin/selector-search.gif" width="16" height="16" alt="Lookup" /></a>' % settings.ADMIN_MEDIA_PREFIX)
+        if value:
+            output.append(self.label_for_value(value))
+        return mark_safe(u''.join(output))
+    
+    def label_for_value(self, value):
+        return '&nbsp;<strong>%s</strong>' % \
+            truncate_words(self.rel.to.objects.get(pk=value), 14)
+            
+class ManyToManyRawIdWidget(ForeignKeyRawIdWidget):
+    """
+    A Widget for displaying ManyToMany ids in the "raw_id" interface rather than
+    in a <select multiple> box.
+    """
+    def __init__(self, rel, attrs=None):
+        super(ManyToManyRawIdWidget, self).__init__(rel, attrs)
+    
+    def render(self, name, value, attrs=None):
+        attrs['class'] = 'vManyToManyRawIdAdminField'
+        if value:
+            value = ','.join([str(v) for v in value])
+        else:
+            value = ''
+        return super(ManyToManyRawIdWidget, self).render(name, value, attrs)
+    
+    def label_for_value(self, value):
+        return ''
+
+    def value_from_datadict(self, data, files, name):
+        value = data.get(name, None)
+        if value and ',' in value:
+            return data[name].split(',')
+        if value:
+            return [value]
+        return None
+    
+    def _has_changed(self, initial, data):
+        if initial is None:
+            initial = []
+        if data is None:
+            data = []
+        if len(initial) != len(data):
+            return True
+        for pk1, pk2 in zip(initial, data):
+            if force_unicode(pk1) != force_unicode(pk2):
+                return True
+        return False
+
+class RelatedFieldWidgetWrapper(forms.Widget):
+    """
+    This class is a wrapper to a given widget to add the add icon for the
+    admin interface.
+    """
+    def __init__(self, widget, rel, admin_site):
+        self.is_hidden = widget.is_hidden
+        self.needs_multipart_form = widget.needs_multipart_form
+        self.attrs = widget.attrs
+        self.choices = widget.choices
+        self.widget = widget
+        self.rel = rel
+        # so we can check if the related object is registered with this AdminSite
+        self.admin_site = admin_site
+
+    def __deepcopy__(self, memo):
+        obj = copy.copy(self)
+        obj.widget = copy.deepcopy(self.widget, memo)
+        obj.attrs = self.widget.attrs
+        memo[id(self)] = obj
+        return obj
+
+    def render(self, name, value, *args, **kwargs):
+        rel_to = self.rel.to
+        related_url = '../../../%s/%s/' % (rel_to._meta.app_label, rel_to._meta.object_name.lower())
+        self.widget.choices = self.choices
+        output = [self.widget.render(name, value, *args, **kwargs)]
+        if rel_to in self.admin_site._registry: # If the related object has an admin interface:
+            # TODO: "id_" is hard-coded here. This should instead use the correct
+            # API to determine the ID dynamically.
+            output.append(u'<a href="%sadd/" class="add-another" id="add_id_%s" onclick="return showAddAnotherPopup(this);"> ' % \
+                (related_url, name))
+            output.append(u'<img src="%simg/admin/icon_addlink.gif" width="10" height="10" alt="Add Another"/></a>' % settings.ADMIN_MEDIA_PREFIX)
+        return mark_safe(u''.join(output))
+
+    def build_attrs(self, extra_attrs=None, **kwargs):
+        "Helper function for building an attribute dictionary."
+        self.attrs = self.widget.build_attrs(extra_attrs=None, **kwargs)
+        return self.attrs
+
+    def value_from_datadict(self, data, files, name):
+        return self.widget.value_from_datadict(data, files, name)
+
+    def _has_changed(self, initial, data):
+        return self.widget._has_changed(initial, data)
+
+    def id_for_label(self, id_):
+        return self.widget.id_for_label(id_)
+
+class AdminTextareaWidget(forms.Textarea):
+    def __init__(self, attrs=None):
+        final_attrs = {'class': 'vLargeTextField'}
+        if attrs is not None:
+            final_attrs.update(attrs)
+        super(AdminTextareaWidget, self).__init__(attrs=final_attrs)
+
+class AdminTextInputWidget(forms.TextInput):
+    def __init__(self, attrs=None):
+        final_attrs = {'class': 'vTextField'}
+        if attrs is not None:
+            final_attrs.update(attrs)
+        super(AdminTextInputWidget, self).__init__(attrs=final_attrs)
+
+class AdminURLFieldWidget(forms.TextInput):
+    def __init__(self, attrs=None):
+        final_attrs = {'class': 'vURLField'}
+        if attrs is not None:
+            final_attrs.update(attrs)
+        super(AdminURLFieldWidget, self).__init__(attrs=final_attrs)
+
+class AdminIntegerFieldWidget(forms.TextInput):
+    def __init__(self, attrs=None):
+        final_attrs = {'class': 'vIntegerField'}
+        if attrs is not None:
+            final_attrs.update(attrs)
+        super(AdminIntegerFieldWidget, self).__init__(attrs=final_attrs)
diff --git a/webapp/django/contrib/admindocs/__init__.py b/webapp/django/contrib/admindocs/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/admindocs/__init__.py
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/bookmarklets.html b/webapp/django/contrib/admindocs/templates/admin_doc/bookmarklets.html
new file mode 100644
index 0000000..6447529
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/bookmarklets.html
@@ -0,0 +1,31 @@
+{% extends "admin/base_site.html" %}
+
+{% block breadcrumbs %}{% load i18n %}<div class="breadcrumbs"><a href="../../">{% trans "Home" %}</a> &rsaquo; <a href="../">{% trans "Documentation" %}</a> &rsaquo; {% trans "Bookmarklets" %}</div>{% endblock %}
+{% block title %}{% trans "Documentation bookmarklets" %}{% endblock %}
+
+{% block content %}
+
+{% blocktrans %}
+<p class="help">To install bookmarklets, drag the link to your bookmarks
+toolbar, or right-click the link and add it to your bookmarks. Now you can
+select the bookmarklet from any page in the site.  Note that some of these
+bookmarklets require you to be viewing the site from a computer designated
+as "internal" (talk to your system administrator if you aren't sure if
+your computer is "internal").</p>
+{% endblocktrans %}
+
+<div id="content-main">
+    <h3><a href="javascript:(function(){if(typeof ActiveXObject!='undefined'){x=new ActiveXObject('Microsoft.XMLHTTP')}else if(typeof XMLHttpRequest!='undefined'){x=new XMLHttpRequest()}else{return;}x.open('HEAD',location.href,false);x.send(null);try{view=x.getResponseHeader('x-view');}catch(e){alert('No view found for this page');return;}if(view=='undefined'){alert('No view found for this page');}document.location='{{ admin_url }}doc/views/'+view+'/';})()">{% trans "Documentation for this page" %}</a></h3>
+    <p>{% trans "Jumps you from any page to the documentation for the view that generates that page." %}</p>
+
+    <h3><a href="javascript:(function(){if(typeof ActiveXObject!='undefined'){x=new ActiveXObject('Microsoft.XMLHTTP')}else if(typeof XMLHttpRequest!='undefined'){x=new XMLHttpRequest()}else{return;}x.open('GET',location.href,false);x.send(null);try{type=x.getResponseHeader('x-object-type');id=x.getResponseHeader('x-object-id');}catch(e){type='(none)';id='(none)';}d=document;b=d.body;e=d.createElement('div');e.id='xxxhhh';s=e.style;s.position='absolute';s.left='10px';s.top='10px';s.font='10px monospace';s.border='1px black solid';s.padding='4px';s.backgroundColor='#eee';e.appendChild(d.createTextNode('Type: '+type));e.appendChild(d.createElement('br'));e.appendChild(d.createTextNode('ID: '+id));e.appendChild(d.createElement('br'));l=d.createElement('a');l.href='#';l.onclick=function(){b.removeChild(e);};l.appendChild(d.createTextNode('[close]'));l.style.textDecoration='none';e.appendChild(l);b.appendChild(e);})();">{% trans "Show object ID" %}</a></h3>
+    <p>{% trans "Shows the content-type and unique ID for pages that represent a single object." %}</p>
+
+    <h3><a href="javascript:(function(){if(typeof ActiveXObject!='undefined'){var x=new ActiveXObject('Microsoft.XMLHTTP')}else if(typeof XMLHttpRequest!='undefined'){var x=new XMLHttpRequest()}else{return;}x.open('GET',location.href,false);x.send(null);try{var type=x.getResponseHeader('x-object-type');var id=x.getResponseHeader('x-object-id');}catch(e){return;}document.location='{{ admin_url }}'+type.split('.').join('/')+'/'+id+'/';})()">{% trans "Edit this object (current window)" %}</a></h3>
+    <p>{% trans "Jumps to the admin page for pages that represent a single object." %}</p>
+
+    <h3><a href="javascript:(function(){if(typeof ActiveXObject!='undefined'){var x=new ActiveXObject('Microsoft.XMLHTTP')}else if(typeof XMLHttpRequest!='undefined'){var x=new XMLHttpRequest()}else{return;}x.open('GET',location.href,false);x.send(null);try{var type=x.getResponseHeader('x-object-type');var id=x.getResponseHeader('x-object-id');}catch(e){return;}window.open('{{ admin_url }}'+type.split('.').join('/')+'/'+id+'/');})()">{% trans "Edit this object (new window)" %}</a></h3>
+    <p>{% trans "As above, but opens the admin page in a new window." %}</p>
+</div>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/index.html b/webapp/django/contrib/admindocs/templates/admin_doc/index.html
new file mode 100644
index 0000000..242fc73
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/index.html
@@ -0,0 +1,28 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">Home</a> &rsaquo; Documentation</div>{% endblock %}
+{% block title %}Documentation{% endblock %}
+
+{% block content %}
+
+<h1>Documentation</h1>
+
+<div id="content-main">
+  <h3><a href="tags/">Tags</a></h3>
+  <p>List of all the template tags and their functions.</p>
+
+  <h3><a href="filters/">Filters</a></h3>
+  <p>Filters are actions which can be applied to variables in a template to alter the output.</p>
+
+  <h3><a href="models/">Models</a></h3>
+  <p>Models are descriptions of all the objects in the system and their associated fields. Each model has a list of fields which can be accessed as template variables.</p>
+
+  <h3><a href="views/">Views</a></h3>
+  <p>Each page on the public site is generated by a view. The view defines which template is used to generate the page and which objects are available to that template.</p>
+
+    <h3><a href="bookmarklets/">Bookmarklets</a></h3>
+    <p>Tools for your browser to quickly access admin functionality.</p>
+</div>
+
+{% endblock %}
+
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/missing_docutils.html b/webapp/django/contrib/admindocs/templates/admin_doc/missing_docutils.html
new file mode 100644
index 0000000..97c9d47
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/missing_docutils.html
@@ -0,0 +1,16 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">Home</a> &rsaquo; Documentation</div>{% endblock %}
+{% block title %}Please install docutils{% endblock %}
+
+{% block content %}
+
+<h1>Documentation</h1>
+
+<div id="content-main">
+  <h3>The admin documentation system requires Python's <a href="http://docutils.sf.net/">docutils</a> library.</h3>
+
+  <p>Please ask your administrators to install <a href="http://docutils.sf.net/">docutils</a>.</p>
+</div>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/model_detail.html b/webapp/django/contrib/admindocs/templates/admin_doc/model_detail.html
new file mode 100644
index 0000000..414397f
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/model_detail.html
@@ -0,0 +1,46 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block extrahead %}
+{{ block.super }}
+<style type="text/css">
+.module table { width:100%; }
+.module table p { padding: 0; margin: 0; }
+</style>
+{% endblock %}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../../">Home</a> &rsaquo; <a href="../../">Documentation</a> &rsaquo; <a href="../">Models</a> &rsaquo; {{ name }}</div>{% endblock %}
+
+{% block title %}Model: {{ name }}{% endblock %}
+
+{% block content %}
+<div id="content-main">
+<h1>{{ summary }}</h1>
+
+{% if description %}
+  <p>{% filter linebreaksbr %}{% trans description %}{% endfilter %}</p>
+{% endif %}
+
+<div class="module">
+<table class="model">
+<thead>
+<tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Description</th>
+</tr>
+</thead>
+<tbody>
+{% for field in fields|dictsort:"name" %}
+<tr>
+    <td>{{ field.name }}</td>
+    <td>{{ field.data_type }}</td>
+    <td>{% if field.verbose %}{{ field.verbose }}{% endif %}{% if field.help_text %} - {{ field.help_text|safe }}{% endif %}</td>
+</tr>
+{% endfor %}
+</tbody>
+</table>
+</div>
+
+<p class="small"><a href="../">&lsaquo; Back to Models Documentation</a></p>
+</div>
+{% endblock %}
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/model_index.html b/webapp/django/contrib/admindocs/templates/admin_doc/model_index.html
new file mode 100644
index 0000000..702fdff
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/model_index.html
@@ -0,0 +1,44 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block coltype %}colSM{% endblock %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">Home</a> &rsaquo; <a href="../">Documentation</a> &rsaquo; Models</div>{% endblock %}
+
+{% block title %}Models{% endblock %}
+
+{% block content %}
+
+<h1>Model documentation</h1>
+
+{% regroup models by app_label as grouped_models %}
+
+<div id="content-main">
+{% for group in grouped_models %}
+<div class="module">
+<h2 id="{{ group.grouper }}">{{ group.grouper|capfirst }}</h2>
+
+<table class="xfull">
+{% for model in group.list %}
+<tr>
+<th><a href="{{ model.app_label }}.{{ model.object_name.lower }}/">{{ model.object_name }}</a></th>
+</tr>
+{% endfor %}
+</table>
+</div>
+{% endfor %}
+
+</div>
+{% endblock %}
+
+{% block sidebar %}
+<div id="content-related" class="sidebar">
+<div class="module">
+<h2>Model groups</h2>
+<ul>
+{% regroup models by app_label as grouped_models %}
+{% for group in grouped_models %}
+    <li><a href="#{{ group.grouper }}">{{ group.grouper|capfirst }}</a></li>
+{% endfor %}
+</ul>
+</div>
+</div>
+{% endblock %}
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/template_detail.html b/webapp/django/contrib/admindocs/templates/admin_doc/template_detail.html
new file mode 100644
index 0000000..a8b02bd
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/template_detail.html
@@ -0,0 +1,21 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../../">Home</a> &rsaquo; <a href="../../">Documentation</a> &rsaquo; Templates &rsaquo; {{ name|escape }}</div>{% endblock %}
+
+{% block title %}Template: {{ name|escape }}{% endblock %}
+
+{% block content %}
+<h1>Template: "{{ name|escape }}"</h1>
+
+{% regroup templates|dictsort:"site_id" by site as templates_by_site %}
+{% for group in templates_by_site %}
+    <h2>Search path for template "{{ name|escape }}" on {{ group.grouper }}:</h2>
+    <ol>
+    {% for template in group.list|dictsort:"order" %}
+        <li><code>{{ template.file|escape }}</code>{% if not template.exists %} <em>(does not exist)</em>{% endif %}</li>
+    {% endfor %}
+    </ol>
+{% endfor %}
+
+<p class="small"><a href="../../">&lsaquo; Back to Documentation</a></p>
+{% endblock %}
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/template_filter_index.html b/webapp/django/contrib/admindocs/templates/admin_doc/template_filter_index.html
new file mode 100644
index 0000000..902396d
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/template_filter_index.html
@@ -0,0 +1,47 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block coltype %}colSM{% endblock %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">Home</a> &rsaquo; <a href="../">Documentation</a> &rsaquo; filters</div>{% endblock %}
+{% block title %}Template filters{% endblock %}
+
+{% block content %}
+
+<h1>Template filter documentation</h1>
+
+<div id="content-main">
+{% regroup filters|dictsort:"library" by library as filter_libraries %}
+{% for library in filter_libraries %}
+<div class="module">
+    <h2>{% if library.grouper %}{{ library.grouper }}{% else %}Built-in filters{% endif %}</h2>
+    {% if library.grouper %}<p class="small quiet">To use these filters, put <code>{% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %}</code> in your template before using the filter.</p><hr />{% endif %}
+    {% for filter in library.list|dictsort:"name" %}
+    <h3 id="{{ filter.name }}">{{ filter.name }}</h3>
+    <p>{{ filter.title }}</p>
+    <p>{{ filter.body }}</p>
+    {% if not forloop.last %}<hr />{% endif %}
+    {% endfor %}
+</div>
+{% endfor %}
+</div>
+
+{% endblock %}
+
+{% block sidebar %}
+
+<div id="content-related">
+
+{% regroup filters|dictsort:"library" by library as filter_libraries %}
+{% for library in filter_libraries %}
+<div class="module">
+    <h2>{% if library.grouper %}{{ library.grouper }}{% else %}Built-in filters{% endif %}</h2>
+    <ul>
+    {% for filter in library.list|dictsort:"name" %}
+        <li><a href="#{{ filter.name }}">{{ filter.name }}</a></li>
+    {% endfor %}
+    </ul>
+</div>
+{% endfor %}
+
+</div>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/template_tag_index.html b/webapp/django/contrib/admindocs/templates/admin_doc/template_tag_index.html
new file mode 100644
index 0000000..ea49529
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/template_tag_index.html
@@ -0,0 +1,47 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block coltype %}colSM{% endblock %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">Home</a> &rsaquo; <a href="../">Documentation</a> &rsaquo; Tags</div>{% endblock %}
+{% block title %}Template tags{% endblock %}
+
+{% block content %}
+
+<h1>Template tag documentation</h1>
+
+<div id="content-main">
+{% regroup tags|dictsort:"library" by library as tag_libraries %}
+{% for library in tag_libraries %}
+<div class="module">
+    <h2>{% if library.grouper %}{{ library.grouper }}{% else %}Built-in tags{% endif %}</h2>
+    {% if library.grouper %}<p class="small quiet">To use these tags, put <code>{% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %}</code> in your template before using the tag.</p><hr />{% endif %}
+    {% for tag in library.list|dictsort:"name" %}
+    <h3 id="{{ tag.name }}">{{ tag.name }}</h3>
+    <h4>{{ tag.title }}</h4>
+    <p>{{ tag.body }}</p>
+    {% if not forloop.last %}<hr />{% endif %}
+    {% endfor %}
+</div>
+{% endfor %}
+</div>
+
+{% endblock %}
+
+{% block sidebar %}
+
+<div id="content-related">
+
+{% regroup tags|dictsort:"library" by library as tag_libraries %}
+{% for library in tag_libraries %}
+<div class="module">
+    <h2>{% if library.grouper %}{{ library.grouper }}{% else %}Built-in tags{% endif %}</h2>
+    <ul>
+    {% for tag in library.list|dictsort:"name" %}
+        <li><a href="#{{ tag.name }}">{{ tag.name }}</a></li>
+    {% endfor %}
+    </ul>
+</div>
+{% endfor %}
+
+</div>
+
+{% endblock %}
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/view_detail.html b/webapp/django/contrib/admindocs/templates/admin_doc/view_detail.html
new file mode 100644
index 0000000..d7415ab
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/view_detail.html
@@ -0,0 +1,25 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../../">Home</a> &rsaquo; <a href="../../">Documentation</a> &rsaquo; <a href="../">Views</a> &rsaquo; {{ name }}</div>{% endblock %}
+{% block title %}View: {{ name }}{% endblock %}
+
+{% block content %}
+
+<h1>{{ name }}</h1>
+
+<h2 class="subhead">{{ summary }}</h2>
+
+<p>{{ body }}</p>
+
+{% if meta.Context %}
+<h3>Context:</h3>
+<p>{{ meta.Context }}</p>
+{% endif %}
+
+{% if meta.Templates %}
+<h3>Templates:</h3>
+<p>{{ meta.Templates }}</p>
+{% endif %}
+
+<p class="small"><a href="../">&lsaquo; Back to Views Documentation</a></p>
+{% endblock %}
diff --git a/webapp/django/contrib/admindocs/templates/admin_doc/view_index.html b/webapp/django/contrib/admindocs/templates/admin_doc/view_index.html
new file mode 100644
index 0000000..4099005
--- /dev/null
+++ b/webapp/django/contrib/admindocs/templates/admin_doc/view_index.html
@@ -0,0 +1,43 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+{% block coltype %}colSM{% endblock %}
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">Home</a> &rsaquo; <a href="../">Documentation</a> &rsaquo; Views</div>{% endblock %}
+{% block title %}Views{% endblock %}
+
+{% block content %}
+
+<h1>View documentation</h1>
+
+{% regroup views|dictsort:"site_id" by site as views_by_site %}
+
+<div id="content-related" class="sidebar">
+<div class="module">
+<h2>Jump to site</h2>
+<ul>
+    {% for site_views in views_by_site %}
+    <li><a href="#site{{ site_views.grouper.id }}">{{ site_views.grouper.name }}</a></li>
+    {% endfor %}
+</ul>
+</div>
+</div>
+
+<div id="content-main">
+
+{% for site_views in views_by_site %}
+<div class="module">
+<h2 id="site{{ site_views.grouper.id }}">Views by URL on {{ site_views.grouper.name }}</h2>
+
+{% for view in site_views.list|dictsort:"url" %}
+{% ifchanged %}
+<h3><a href="{{ view.module }}.{{ view.name }}/">{{ view.url|escape }}</a></h3>
+<p class="small quiet">View function: {{ view.module }}.{{ view.name }}</p>
+<p>{{ view.title }}</p>
+<hr />
+{% endifchanged %}
+{% endfor %}
+</div>
+{% endfor %}
+</div>
+{% endblock %}
+
+
diff --git a/webapp/django/contrib/admindocs/urls.py b/webapp/django/contrib/admindocs/urls.py
new file mode 100644
index 0000000..e7baa76
--- /dev/null
+++ b/webapp/django/contrib/admindocs/urls.py
@@ -0,0 +1,15 @@
+from django.conf.urls.defaults import *
+from django.contrib.admindocs import views
+
+urlpatterns = patterns('',
+    ('^$', views.doc_index),
+    ('^bookmarklets/$', views.bookmarklets),
+    ('^tags/$', views.template_tag_index),
+    ('^filters/$', views.template_filter_index),
+    ('^views/$', views.view_index),
+    ('^views/(?P<view>[^/]+)/$', views.view_detail),
+    ('^models/$', views.model_index),
+    ('^models/(?P<app_label>[^\.]+)\.(?P<model_name>[^/]+)/$', views.model_detail),
+#    ('^templates/$', views.template_index),
+    ('^templates/(?P<template>.*)/$', views.template_detail),
+)
diff --git a/webapp/django/contrib/admindocs/utils.py b/webapp/django/contrib/admindocs/utils.py
new file mode 100644
index 0000000..4a45a62
--- /dev/null
+++ b/webapp/django/contrib/admindocs/utils.py
@@ -0,0 +1,103 @@
+"Misc. utility functions/classes for admin documentation generator."
+
+import re
+from email.Parser import HeaderParser
+from email.Errors import HeaderParseError
+from django.utils.safestring import mark_safe
+try:
+    import docutils.core
+    import docutils.nodes
+    import docutils.parsers.rst.roles
+except ImportError:
+    docutils_is_available = False
+else:
+    docutils_is_available = True
+
+def trim_docstring(docstring):
+    """
+    Uniformly trims leading/trailing whitespace from docstrings.
+
+    Based on http://www.python.org/peps/pep-0257.html#handling-docstring-indentation
+    """
+    if not docstring or not docstring.strip():
+        return ''
+    # Convert tabs to spaces and split into lines
+    lines = docstring.expandtabs().splitlines()
+    indent = min([len(line) - len(line.lstrip()) for line in lines if line.lstrip()])
+    trimmed = [lines[0].lstrip()] + [line[indent:].rstrip() for line in lines[1:]]
+    return "\n".join(trimmed).strip()
+
+def parse_docstring(docstring):
+    """
+    Parse out the parts of a docstring.  Returns (title, body, metadata).
+    """
+    docstring = trim_docstring(docstring)
+    parts = re.split(r'\n{2,}', docstring)
+    title = parts[0]
+    if len(parts) == 1:
+        body = ''
+        metadata = {}
+    else:
+        parser = HeaderParser()
+        try:
+            metadata = parser.parsestr(parts[-1])
+        except HeaderParseError:
+            metadata = {}
+            body = "\n\n".join(parts[1:])
+        else:
+            metadata = dict(metadata.items())
+            if metadata:
+                body = "\n\n".join(parts[1:-1])
+            else:
+                body = "\n\n".join(parts[1:])
+    return title, body, metadata
+
+def parse_rst(text, default_reference_context, thing_being_parsed=None, link_base='../..'):
+    """
+    Convert the string from reST to an XHTML fragment.
+    """
+    overrides = {
+        'doctitle_xform' : True,
+        'inital_header_level' : 3,
+        "default_reference_context" : default_reference_context,
+        "link_base" : link_base,
+    }
+    if thing_being_parsed:
+        thing_being_parsed = "<%s>" % thing_being_parsed
+    parts = docutils.core.publish_parts(text, source_path=thing_being_parsed,
+                destination_path=None, writer_name='html',
+                settings_overrides=overrides)
+    return mark_safe(parts['fragment'])
+
+#
+# reST roles
+#
+ROLES = {
+    'model'    : '%s/models/%s/',
+    'view'     : '%s/views/%s/',
+    'template' : '%s/templates/%s/',
+    'filter'   : '%s/filters/#%s',
+    'tag'      : '%s/tags/#%s',
+}
+
+def create_reference_role(rolename, urlbase):
+    def _role(name, rawtext, text, lineno, inliner, options=None, content=None):
+        if options is None: options = {}
+        if content is None: content = []
+        node = docutils.nodes.reference(rawtext, text, refuri=(urlbase % (inliner.document.settings.link_base, text.lower())), **options)
+        return [node], []
+    docutils.parsers.rst.roles.register_canonical_role(rolename, _role)
+
+def default_reference_role(name, rawtext, text, lineno, inliner, options=None, content=None):
+    if options is None: options = {}
+    if content is None: content = []
+    context = inliner.document.settings.default_reference_context
+    node = docutils.nodes.reference(rawtext, text, refuri=(ROLES[context] % (inliner.document.settings.link_base, text.lower())), **options)
+    return [node], []
+
+if docutils_is_available:
+    docutils.parsers.rst.roles.register_canonical_role('cmsreference', default_reference_role)
+    docutils.parsers.rst.roles.DEFAULT_INTERPRETED_ROLE = 'cmsreference'
+
+    for name, urlbase in ROLES.items():
+        create_reference_role(name, urlbase)
diff --git a/webapp/django/contrib/admindocs/views.py b/webapp/django/contrib/admindocs/views.py
new file mode 100644
index 0000000..d6d263c
--- /dev/null
+++ b/webapp/django/contrib/admindocs/views.py
@@ -0,0 +1,392 @@
+from django import template, templatetags
+from django.template import RequestContext
+from django.conf import settings
+from django.contrib.admin.views.decorators import staff_member_required
+from django.db import models
+from django.shortcuts import render_to_response
+from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist
+from django.http import Http404
+from django.core import urlresolvers
+from django.contrib.admindocs import utils
+from django.contrib.sites.models import Site
+from django.utils.translation import ugettext as _
+from django.utils.safestring import mark_safe
+import inspect, os, re
+
+# Exclude methods starting with these strings from documentation
+MODEL_METHODS_EXCLUDE = ('_', 'add_', 'delete', 'save', 'set_')
+
+class GenericSite(object):
+    domain = 'example.com'
+    name = 'my site'
+
+def doc_index(request):
+    if not utils.docutils_is_available:
+        return missing_docutils_page(request)
+    root_path = re.sub(re.escape('doc/') + '$', '', request.path)
+    return render_to_response('admin_doc/index.html', {
+        'root_path': root_path,
+    }, context_instance=RequestContext(request))
+doc_index = staff_member_required(doc_index)
+
+def bookmarklets(request):
+    # Hack! This couples this view to the URL it lives at.
+    admin_root = request.path[:-len('doc/bookmarklets/')]
+    root_path = re.sub(re.escape('doc/bookmarklets/') + '$', '', request.path)
+    return render_to_response('admin_doc/bookmarklets.html', {
+        'root_path': root_path,
+        'admin_url': mark_safe("%s://%s%s" % (request.is_secure() and 'https' or 'http', request.get_host(), admin_root)),
+    }, context_instance=RequestContext(request))
+bookmarklets = staff_member_required(bookmarklets)
+
+def template_tag_index(request):
+    if not utils.docutils_is_available:
+        return missing_docutils_page(request)
+
+    load_all_installed_template_libraries()
+
+    tags = []
+    for module_name, library in template.libraries.items():
+        for tag_name, tag_func in library.tags.items():
+            title, body, metadata = utils.parse_docstring(tag_func.__doc__)
+            if title:
+                title = utils.parse_rst(title, 'tag', _('tag:') + tag_name)
+            if body:
+                body = utils.parse_rst(body, 'tag', _('tag:') + tag_name)
+            for key in metadata:
+                metadata[key] = utils.parse_rst(metadata[key], 'tag', _('tag:') + tag_name)
+            if library in template.builtins:
+                tag_library = None
+            else:
+                tag_library = module_name.split('.')[-1]
+            tags.append({
+                'name': tag_name,
+                'title': title,
+                'body': body,
+                'meta': metadata,
+                'library': tag_library,
+            })
+    root_path = re.sub(re.escape('doc/tags/') + '$', '', request.path)
+    return render_to_response('admin_doc/template_tag_index.html', {
+        'root_path': root_path,
+        'tags': tags
+    }, context_instance=RequestContext(request))
+template_tag_index = staff_member_required(template_tag_index)
+
+def template_filter_index(request):
+    if not utils.docutils_is_available:
+        return missing_docutils_page(request)
+
+    load_all_installed_template_libraries()
+
+    filters = []
+    for module_name, library in template.libraries.items():
+        for filter_name, filter_func in library.filters.items():
+            title, body, metadata = utils.parse_docstring(filter_func.__doc__)
+            if title:
+                title = utils.parse_rst(title, 'filter', _('filter:') + filter_name)
+            if body:
+                body = utils.parse_rst(body, 'filter', _('filter:') + filter_name)
+            for key in metadata:
+                metadata[key] = utils.parse_rst(metadata[key], 'filter', _('filter:') + filter_name)
+            if library in template.builtins:
+                tag_library = None
+            else:
+                tag_library = module_name.split('.')[-1]
+            filters.append({
+                'name': filter_name,
+                'title': title,
+                'body': body,
+                'meta': metadata,
+                'library': tag_library,
+            })
+    root_path = re.sub(re.escape('doc/filters/') + '$', '', request.path)
+    return render_to_response('admin_doc/template_filter_index.html', {
+        'root_path': root_path,
+        'filters': filters
+    }, context_instance=RequestContext(request))
+template_filter_index = staff_member_required(template_filter_index)
+
+def view_index(request):
+    if not utils.docutils_is_available:
+        return missing_docutils_page(request)
+
+    if settings.ADMIN_FOR:
+        settings_modules = [__import__(m, {}, {}, ['']) for m in settings.ADMIN_FOR]
+    else:
+        settings_modules = [settings]
+
+    views = []
+    for settings_mod in settings_modules:
+        urlconf = __import__(settings_mod.ROOT_URLCONF, {}, {}, [''])
+        view_functions = extract_views_from_urlpatterns(urlconf.urlpatterns)
+        if Site._meta.installed:
+            site_obj = Site.objects.get(pk=settings_mod.SITE_ID)
+        else:
+            site_obj = GenericSite()
+        for (func, regex) in view_functions:
+            views.append({
+                'name': func.__name__,
+                'module': func.__module__,
+                'site_id': settings_mod.SITE_ID,
+                'site': site_obj,
+                'url': simplify_regex(regex),
+            })
+    root_path = re.sub(re.escape('doc/views/') + '$', '', request.path)
+    return render_to_response('admin_doc/view_index.html', {
+        'root_path': root_path,
+        'views': views
+    }, context_instance=RequestContext(request))
+view_index = staff_member_required(view_index)
+
+def view_detail(request, view):
+    if not utils.docutils_is_available:
+        return missing_docutils_page(request)
+
+    mod, func = urlresolvers.get_mod_func(view)
+    try:
+        view_func = getattr(__import__(mod, {}, {}, ['']), func)
+    except (ImportError, AttributeError):
+        raise Http404
+    title, body, metadata = utils.parse_docstring(view_func.__doc__)
+    if title:
+        title = utils.parse_rst(title, 'view', _('view:') + view)
+    if body:
+        body = utils.parse_rst(body, 'view', _('view:') + view)
+    for key in metadata:
+        metadata[key] = utils.parse_rst(metadata[key], 'model', _('view:') + view)
+    root_path = re.sub(re.escape('doc/views/%s/' % view) + '$', '', request.path)
+    return render_to_response('admin_doc/view_detail.html', {
+        'root_path': root_path,
+        'name': view,
+        'summary': title,
+        'body': body,
+        'meta': metadata,
+    }, context_instance=RequestContext(request))
+view_detail = staff_member_required(view_detail)
+
+def model_index(request):
+    if not utils.docutils_is_available:
+        return missing_docutils_page(request)
+    m_list = [m._meta for m in models.get_models()]
+    root_path = re.sub(re.escape('doc/models/') + '$', '', request.path)
+    return render_to_response('admin_doc/model_index.html', {
+        'root_path': root_path,
+        'models': m_list
+    }, context_instance=RequestContext(request))
+model_index = staff_member_required(model_index)
+
+def model_detail(request, app_label, model_name):
+    if not utils.docutils_is_available:
+        return missing_docutils_page(request)
+        
+    # Get the model class.
+    try:
+        app_mod = models.get_app(app_label)
+    except ImproperlyConfigured:
+        raise Http404, _("App %r not found") % app_label
+    model = None
+    for m in models.get_models(app_mod):
+        if m._meta.object_name.lower() == model_name:
+            model = m
+            break
+    if model is None:
+        raise Http404, _("Model %(model_name)r not found in app %(app_label)r") % {'model_name': model_name, 'app_label': app_label}
+
+    opts = model._meta
+
+    # Gather fields/field descriptions.
+    fields = []
+    for field in opts.fields:
+        # ForeignKey is a special case since the field will actually be a
+        # descriptor that returns the other object
+        if isinstance(field, models.ForeignKey):
+            data_type = related_object_name = field.rel.to.__name__
+            app_label = field.rel.to._meta.app_label
+            verbose = utils.parse_rst((_("the related `%(app_label)s.%(data_type)s` object")  % {'app_label': app_label, 'data_type': data_type}), 'model', _('model:') + data_type)
+        else:
+            data_type = get_readable_field_data_type(field)
+            verbose = field.verbose_name
+        fields.append({
+            'name': field.name,
+            'data_type': data_type,
+            'verbose': verbose,
+            'help_text': field.help_text,
+        })
+
+    # Gather model methods.
+    for func_name, func in model.__dict__.items():
+        if (inspect.isfunction(func) and len(inspect.getargspec(func)[0]) == 1):
+            try:
+                for exclude in MODEL_METHODS_EXCLUDE:
+                    if func_name.startswith(exclude):
+                        raise StopIteration
+            except StopIteration:
+                continue
+            verbose = func.__doc__
+            if verbose:
+                verbose = utils.parse_rst(utils.trim_docstring(verbose), 'model', _('model:') + opts.module_name)
+            fields.append({
+                'name': func_name,
+                'data_type': get_return_data_type(func_name),
+                'verbose': verbose,
+            })
+
+    # Gather related objects
+    for rel in opts.get_all_related_objects():
+        verbose = _("related `%(app_label)s.%(object_name)s` objects") % {'app_label': rel.opts.app_label, 'object_name': rel.opts.object_name}
+        accessor = rel.get_accessor_name()
+        fields.append({
+            'name'      : "%s.all" % accessor,
+            'data_type' : 'List',
+            'verbose'   : utils.parse_rst(_("all %s") % verbose , 'model', _('model:') + opts.module_name),
+        })
+        fields.append({
+            'name'      : "%s.count" % accessor,
+            'data_type' : 'Integer',
+            'verbose'   : utils.parse_rst(_("number of %s") % verbose , 'model', _('model:') + opts.module_name),
+        })
+    root_path = re.sub(re.escape('doc/models/%s.%s/' % (app_label, model_name)) + '$', '', request.path)
+    return render_to_response('admin_doc/model_detail.html', {
+        'root_path': root_path,
+        'name': '%s.%s' % (opts.app_label, opts.object_name),
+        'summary': _("Fields on %s objects") % opts.object_name,
+        'description': model.__doc__,
+        'fields': fields,
+    }, context_instance=RequestContext(request))
+model_detail = staff_member_required(model_detail)
+
+def template_detail(request, template):
+    templates = []
+    for site_settings_module in settings.ADMIN_FOR:
+        settings_mod = __import__(site_settings_module, {}, {}, [''])
+        if Site._meta.installed:
+            site_obj = Site.objects.get(pk=settings_mod.SITE_ID)
+        else:
+            site_obj = GenericSite()
+        for dir in settings_mod.TEMPLATE_DIRS:
+            template_file = os.path.join(dir, "%s.html" % template)
+            templates.append({
+                'file': template_file,
+                'exists': os.path.exists(template_file),
+                'contents': lambda: os.path.exists(template_file) and open(template_file).read() or '',
+                'site_id': settings_mod.SITE_ID,
+                'site': site_obj,
+                'order': list(settings_mod.TEMPLATE_DIRS).index(dir),
+            })
+    root_path = re.sub(re.escape('doc/templates/%s/' % template) + '$', '', request.path)
+    return render_to_response('admin_doc/template_detail.html', {
+        'root_path': root_path,
+        'name': template,
+        'templates': templates,
+    }, context_instance=RequestContext(request))
+template_detail = staff_member_required(template_detail)
+
+####################
+# Helper functions #
+####################
+
+def missing_docutils_page(request):
+    """Display an error message for people without docutils"""
+    return render_to_response('admin_doc/missing_docutils.html')
+
+def load_all_installed_template_libraries():
+    # Load/register all template tag libraries from installed apps.
+    for e in templatetags.__path__:
+        libraries = [os.path.splitext(p)[0] for p in os.listdir(e) if p.endswith('.py') and p[0].isalpha()]
+        for library_name in libraries:
+            try:
+                lib = template.get_library("django.templatetags.%s" % library_name.split('.')[-1])
+            except template.InvalidTemplateLibrary:
+                pass
+
+def get_return_data_type(func_name):
+    """Return a somewhat-helpful data type given a function name"""
+    if func_name.startswith('get_'):
+        if func_name.endswith('_list'):
+            return 'List'
+        elif func_name.endswith('_count'):
+            return 'Integer'
+    return ''
+
+# Maps Field objects to their human-readable data types, as strings.
+# Column-type strings can contain format strings; they'll be interpolated
+# against the values of Field.__dict__ before being output.
+# If a column type is set to None, it won't be included in the output.
+DATA_TYPE_MAPPING = {
+    'AutoField'                 : _('Integer'),
+    'BooleanField'              : _('Boolean (Either True or False)'),
+    'CharField'                 : _('String (up to %(max_length)s)'),
+    'CommaSeparatedIntegerField': _('Comma-separated integers'),
+    'DateField'                 : _('Date (without time)'),
+    'DateTimeField'             : _('Date (with time)'),
+    'DecimalField'              : _('Decimal number'),
+    'EmailField'                : _('E-mail address'),
+    'FileField'                 : _('File path'),
+    'FilePathField'             : _('File path'),
+    'FloatField'                : _('Floating point number'),
+    'ForeignKey'                : _('Integer'),
+    'ImageField'                : _('File path'),
+    'IntegerField'              : _('Integer'),
+    'IPAddressField'            : _('IP address'),
+    'ManyToManyField'           : '',
+    'NullBooleanField'          : _('Boolean (Either True, False or None)'),
+    'OneToOneField'             : _('Relation to parent model'),
+    'PhoneNumberField'          : _('Phone number'),
+    'PositiveIntegerField'      : _('Integer'),
+    'PositiveSmallIntegerField' : _('Integer'),
+    'SlugField'                 : _('String (up to %(max_length)s)'),
+    'SmallIntegerField'         : _('Integer'),
+    'TextField'                 : _('Text'),
+    'TimeField'                 : _('Time'),
+    'URLField'                  : _('URL'),
+    'USStateField'              : _('U.S. state (two uppercase letters)'),
+    'XMLField'                  : _('XML text'),
+}
+
+def get_readable_field_data_type(field):
+    return DATA_TYPE_MAPPING[field.get_internal_type()] % field.__dict__
+
+def extract_views_from_urlpatterns(urlpatterns, base=''):
+    """
+    Return a list of views from a list of urlpatterns.
+
+    Each object in the returned list is a two-tuple: (view_func, regex)
+    """
+    views = []
+    for p in urlpatterns:
+        if hasattr(p, '_get_callback'):
+            try:
+                views.append((p._get_callback(), base + p.regex.pattern))
+            except ViewDoesNotExist:
+                continue
+        elif hasattr(p, '_get_url_patterns'):
+            try:
+                patterns = p.url_patterns
+            except ImportError:
+                continue
+            views.extend(extract_views_from_urlpatterns(patterns, base + p.regex.pattern))
+        else:
+            raise TypeError, _("%s does not appear to be a urlpattern object") % p
+    return views
+
+named_group_matcher = re.compile(r'\(\?P(<\w+>).+?\)')
+non_named_group_matcher = re.compile(r'\(.*?\)')
+
+def simplify_regex(pattern):
+    """
+    Clean up urlpattern regexes into something somewhat readable by Mere Humans:
+    turns something like "^(?P<sport_slug>\w+)/athletes/(?P<athlete_slug>\w+)/$"
+    into "<sport_slug>/athletes/<athlete_slug>/"
+    """
+    # handle named groups first
+    pattern = named_group_matcher.sub(lambda m: m.group(1), pattern)
+
+    # handle non-named groups
+    pattern = non_named_group_matcher.sub("<var>", pattern)
+
+    # clean up any outstanding regex-y characters.
+    pattern = pattern.replace('^', '').replace('$', '').replace('?', '').replace('//', '/').replace('\\', '')
+    if not pattern.startswith('/'):
+        pattern = '/' + pattern
+    return pattern
diff --git a/webapp/django/contrib/auth/__init__.py b/webapp/django/contrib/auth/__init__.py
new file mode 100644
index 0000000..87c2bc1
--- /dev/null
+++ b/webapp/django/contrib/auth/__init__.py
@@ -0,0 +1,89 @@
+import datetime
+from django.core.exceptions import ImproperlyConfigured
+
+SESSION_KEY = '_auth_user_id'
+BACKEND_SESSION_KEY = '_auth_user_backend'
+REDIRECT_FIELD_NAME = 'next'
+
+def load_backend(path):
+    i = path.rfind('.')
+    module, attr = path[:i], path[i+1:]
+    try:
+        mod = __import__(module, {}, {}, [attr])
+    except ImportError, e:
+        raise ImproperlyConfigured, 'Error importing authentication backend %s: "%s"' % (module, e)
+    except ValueError, e:
+        raise ImproperlyConfigured, 'Error importing authentication backends. Is AUTHENTICATION_BACKENDS a correctly defined list or tuple?'
+    try:
+        cls = getattr(mod, attr)
+    except AttributeError:
+        raise ImproperlyConfigured, 'Module "%s" does not define a "%s" authentication backend' % (module, attr)
+    return cls()
+
+def get_backends():
+    from django.conf import settings
+    backends = []
+    for backend_path in settings.AUTHENTICATION_BACKENDS:
+        backends.append(load_backend(backend_path))
+    return backends
+
+def authenticate(**credentials):
+    """
+    If the given credentials are valid, return a User object.
+    """
+    for backend in get_backends():
+        try:
+            user = backend.authenticate(**credentials)
+        except TypeError:
+            # This backend doesn't accept these credentials as arguments. Try the next one.
+            continue
+        if user is None:
+            continue
+        # Annotate the user object with the path of the backend.
+        user.backend = "%s.%s" % (backend.__module__, backend.__class__.__name__)
+        return user
+
+def login(request, user):
+    """
+    Persist a user id and a backend in the request. This way a user doesn't
+    have to reauthenticate on every request.
+    """
+    if user is None:
+        user = request.user
+    # TODO: It would be nice to support different login methods, like signed cookies.
+    user.last_login = datetime.datetime.now()
+    user.save()
+
+    if SESSION_KEY in request.session:
+        if request.session[SESSION_KEY] != user.id:
+            # To avoid reusing another user's session, create a new, empty
+            # session if the existing session corresponds to a different
+            # authenticated user.
+            request.session.flush()
+    else:
+        request.session.cycle_key()
+    request.session[SESSION_KEY] = user.id
+    request.session[BACKEND_SESSION_KEY] = user.backend
+    if hasattr(request, 'user'):
+        request.user = user
+
+def logout(request):
+    """
+    Removes the authenticated user's ID from the request and flushes their
+    session data.
+    """
+    request.session.flush()
+    if hasattr(request, 'user'):
+        from django.contrib.auth.models import AnonymousUser
+        request.user = AnonymousUser()
+
+def get_user(request):
+    from django.contrib.auth.models import AnonymousUser
+    try:
+        user_id = request.session[SESSION_KEY]
+        backend_path = request.session[BACKEND_SESSION_KEY]
+        backend = load_backend(backend_path)
+        user = backend.get_user(user_id) or AnonymousUser()
+    except KeyError:
+        user = AnonymousUser()
+    return user
diff --git a/webapp/django/contrib/auth/admin.py b/webapp/django/contrib/auth/admin.py
new file mode 100644
index 0000000..873d29f
--- /dev/null
+++ b/webapp/django/contrib/auth/admin.py
@@ -0,0 +1,111 @@
+
+from django.contrib.auth.models import User, Group
+from django.core.exceptions import PermissionDenied
+from django import template
+from django.shortcuts import render_to_response, get_object_or_404
+from django.template import RequestContext
+from django.utils.html import escape
+from django.http import HttpResponseRedirect
+from django.utils.translation import ugettext, ugettext_lazy as _
+from django.contrib.auth.forms import UserCreationForm, AdminPasswordChangeForm
+from django.contrib import admin
+
+class GroupAdmin(admin.ModelAdmin):
+    search_fields = ('name',)
+    ordering = ('name',)
+    filter_horizontal = ('permissions',)
+
+class UserAdmin(admin.ModelAdmin):
+    fieldsets = (
+        (None, {'fields': ('username', 'password')}),
+        (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
+        (_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}),
+        (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
+        (_('Groups'), {'fields': ('groups',)}),
+    )
+    add_form = UserCreationForm
+    change_password_form = AdminPasswordChangeForm
+    list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff')
+    list_filter = ('is_staff', 'is_superuser')
+    search_fields = ('username', 'first_name', 'last_name', 'email')
+    ordering = ('username',)
+    filter_horizontal = ('user_permissions',)
+
+    def __call__(self, request, url):
+        # this should not be here, but must be due to the way __call__ routes
+        # in ModelAdmin.
+        if url is None:
+            return self.changelist_view(request)
+        if url.endswith('password'):
+            return self.user_change_password(request, url.split('/')[0])
+        return super(UserAdmin, self).__call__(request, url)
+
+    def add_view(self, request):
+        if not self.has_change_permission(request):
+            raise PermissionDenied
+        if request.method == 'POST':
+            form = self.add_form(request.POST)
+            if form.is_valid():
+                new_user = form.save()
+                msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': 'user', 'obj': new_user}
+                self.log_addition(request, new_user)
+                if "_addanother" in request.POST:
+                    request.user.message_set.create(message=msg)
+                    return HttpResponseRedirect(request.path)
+                else:
+                    request.user.message_set.create(message=msg + ' ' + ugettext("You may edit it again below."))
+                    return HttpResponseRedirect('../%s/' % new_user.id)
+        else:
+            form = self.add_form()
+        return render_to_response('admin/auth/user/add_form.html', {
+            'title': _('Add user'),
+            'form': form,
+            'is_popup': '_popup' in request.REQUEST,
+            'add': True,
+            'change': False,
+            'has_add_permission': True,
+            'has_delete_permission': False,
+            'has_change_permission': True,
+            'has_file_field': False,
+            'has_absolute_url': False,
+            'auto_populated_fields': (),
+            'opts': self.model._meta,
+            'save_as': False,
+            'username_help_text': self.model._meta.get_field('username').help_text,
+            'root_path': self.admin_site.root_path,
+            'app_label': self.model._meta.app_label,            
+        }, context_instance=template.RequestContext(request))
+
+    def user_change_password(self, request, id):
+        if not request.user.has_perm('auth.change_user'):
+            raise PermissionDenied
+        user = get_object_or_404(self.model, pk=id)
+        if request.method == 'POST':
+            form = self.change_password_form(user, request.POST)
+            if form.is_valid():
+                new_user = form.save()
+                msg = ugettext('Password changed successfully.')
+                request.user.message_set.create(message=msg)
+                return HttpResponseRedirect('..')
+        else:
+            form = self.change_password_form(user)
+        return render_to_response('admin/auth/user/change_password.html', {
+            'title': _('Change password: %s') % escape(user.username),
+            'form': form,
+            'is_popup': '_popup' in request.REQUEST,
+            'add': True,
+            'change': False,
+            'has_delete_permission': False,
+            'has_change_permission': True,
+            'has_absolute_url': False,
+            'opts': self.model._meta,
+            'original': user,
+            'save_as': False,
+            'show_save': True,
+            'root_path': self.admin_site.root_path,
+        }, context_instance=RequestContext(request))
+
+
+admin.site.register(Group, GroupAdmin)
+admin.site.register(User, UserAdmin)
+
diff --git a/webapp/django/contrib/auth/backends.py b/webapp/django/contrib/auth/backends.py
new file mode 100644
index 0000000..bba883b
--- /dev/null
+++ b/webapp/django/contrib/auth/backends.py
@@ -0,0 +1,80 @@
+try:
+    set
+except NameError:
+    from sets import Set as set # Python 2.3 fallback
+
+from django.db import connection
+from django.contrib.auth.models import User
+
+
+class ModelBackend(object):
+    """
+    Authenticates against django.contrib.auth.models.User.
+    """
+    # TODO: Model, login attribute name and password attribute name should be
+    # configurable.
+    def authenticate(self, username=None, password=None):
+        try:
+            user = User.objects.get(username=username)
+            if user.check_password(password):
+                return user
+        except User.DoesNotExist:
+            return None
+
+    def get_group_permissions(self, user_obj):
+        """
+        Returns a set of permission strings that this user has through his/her
+        groups.
+        """
+        if not hasattr(user_obj, '_group_perm_cache'):
+            cursor = connection.cursor()
+            # The SQL below works out to the following, after DB quoting:
+            # cursor.execute("""
+            #     SELECT ct."app_label", p."codename"
+            #     FROM "auth_permission" p, "auth_group_permissions" gp, "auth_user_groups" ug, "django_content_type" ct
+            #     WHERE p."id" = gp."permission_id"
+            #         AND gp."group_id" = ug."group_id"
+            #         AND ct."id" = p."content_type_id"
+            #         AND ug."user_id" = %s, [self.id])
+            qn = connection.ops.quote_name
+            sql = """
+                SELECT ct.%s, p.%s
+                FROM %s p, %s gp, %s ug, %s ct
+                WHERE p.%s = gp.%s
+                    AND gp.%s = ug.%s
+                    AND ct.%s = p.%s
+                    AND ug.%s = %%s""" % (
+                qn('app_label'), qn('codename'),
+                qn('auth_permission'), qn('auth_group_permissions'),
+                qn('auth_user_groups'), qn('django_content_type'),
+                qn('id'), qn('permission_id'),
+                qn('group_id'), qn('group_id'),
+                qn('id'), qn('content_type_id'),
+                qn('user_id'),)
+            cursor.execute(sql, [user_obj.id])
+            user_obj._group_perm_cache = set(["%s.%s" % (row[0], row[1]) for row in cursor.fetchall()])
+        return user_obj._group_perm_cache
+
+    def get_all_permissions(self, user_obj):
+        if not hasattr(user_obj, '_perm_cache'):
+            user_obj._perm_cache = set([u"%s.%s" % (p.content_type.app_label, p.codename) for p in user_obj.user_permissions.select_related()])
+            user_obj._perm_cache.update(self.get_group_permissions(user_obj))
+        return user_obj._perm_cache
+
+    def has_perm(self, user_obj, perm):
+        return perm in self.get_all_permissions(user_obj)
+
+    def has_module_perms(self, user_obj, app_label):
+        """
+        Returns True if user_obj has any permissions in the given app_label.
+        """
+        for perm in self.get_all_permissions(user_obj):
+            if perm[:perm.index('.')] == app_label:
+                return True
+        return False
+
+    def get_user(self, user_id):
+        try:
+            return User.objects.get(pk=user_id)
+        except User.DoesNotExist:
+            return None
diff --git a/webapp/django/contrib/auth/create_superuser.py b/webapp/django/contrib/auth/create_superuser.py
new file mode 100644
index 0000000..7b58678
--- /dev/null
+++ b/webapp/django/contrib/auth/create_superuser.py
@@ -0,0 +1,8 @@
+"""
+Create a superuser from the command line. Deprecated; use manage.py
+createsuperuser instead.
+"""
+
+if __name__ == "__main__":
+    from django.core.management import call_command
+    call_command("createsuperuser")
diff --git a/webapp/django/contrib/auth/decorators.py b/webapp/django/contrib/auth/decorators.py
new file mode 100644
index 0000000..1371c62
--- /dev/null
+++ b/webapp/django/contrib/auth/decorators.py
@@ -0,0 +1,70 @@
+try:
+    from functools import update_wrapper
+except ImportError:
+    from django.utils.functional import update_wrapper  # Python 2.3, 2.4 fallback.
+
+from django.contrib.auth import REDIRECT_FIELD_NAME
+from django.http import HttpResponseRedirect
+from django.utils.http import urlquote
+
+def user_passes_test(test_func, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME):
+    """
+    Decorator for views that checks that the user passes the given test,
+    redirecting to the log-in page if necessary. The test should be a callable
+    that takes the user object and returns True if the user passes.
+    """
+    def decorate(view_func):
+        return _CheckLogin(view_func, test_func, login_url, redirect_field_name)
+    return decorate
+
+def login_required(function=None, redirect_field_name=REDIRECT_FIELD_NAME):
+    """
+    Decorator for views that checks that the user is logged in, redirecting
+    to the log-in page if necessary.
+    """
+    actual_decorator = user_passes_test(
+        lambda u: u.is_authenticated(),
+        redirect_field_name=redirect_field_name
+    )
+    if function:
+        return actual_decorator(function)
+    return actual_decorator
+
+def permission_required(perm, login_url=None):
+    """
+    Decorator for views that checks whether a user has a particular permission
+    enabled, redirecting to the log-in page if necessary.
+    """
+    return user_passes_test(lambda u: u.has_perm(perm), login_url=login_url)
+
+class _CheckLogin(object):
+    """
+    Class that checks that the user passes the given test, redirecting to
+    the log-in page if necessary. If the test is passed, the view function
+    is invoked. The test should be a callable that takes the user object
+    and returns True if the user passes.
+
+    We use a class here so that we can define __get__. This way, when a
+    _CheckLogin object is used as a method decorator, the view function
+    is properly bound to its instance.
+    """
+    def __init__(self, view_func, test_func, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME):
+        if not login_url:
+            from django.conf import settings
+            login_url = settings.LOGIN_URL
+        self.view_func = view_func
+        self.test_func = test_func
+        self.login_url = login_url
+        self.redirect_field_name = redirect_field_name
+        update_wrapper(self, view_func)
+        
+    def __get__(self, obj, cls=None):
+        view_func = self.view_func.__get__(obj, cls)
+        return _CheckLogin(view_func, self.test_func, self.login_url, self.redirect_field_name)
+    
+    def __call__(self, request, *args, **kwargs):
+        if self.test_func(request.user):
+            return self.view_func(request, *args, **kwargs)
+        path = urlquote(request.get_full_path())
+        tup = self.login_url, self.redirect_field_name, path
+        return HttpResponseRedirect('%s?%s=%s' % tup)
diff --git a/webapp/django/contrib/auth/fixtures/authtestdata.json b/webapp/django/contrib/auth/fixtures/authtestdata.json
new file mode 100644
index 0000000..e0bdc24
--- /dev/null
+++ b/webapp/django/contrib/auth/fixtures/authtestdata.json
@@ -0,0 +1,56 @@
+[
+    {
+        "pk": "1", 
+        "model": "auth.user", 
+        "fields": {
+            "username": "testclient", 
+            "first_name": "Test", 
+            "last_name": "Client", 
+            "is_active": true, 
+            "is_superuser": false, 
+            "is_staff": false, 
+            "last_login": "2006-12-17 07:03:31", 
+            "groups": [], 
+            "user_permissions": [], 
+            "password": "sha1$6efc0$f93efe9fd7542f25a7be94871ea45aa95de57161", 
+            "email": "testclient@example.com", 
+            "date_joined": "2006-12-17 07:03:31"
+        }
+    },
+    {
+        "pk": "2", 
+        "model": "auth.user", 
+        "fields": {
+            "username": "inactive", 
+            "first_name": "Inactive", 
+            "last_name": "User", 
+            "is_active": false, 
+            "is_superuser": false, 
+            "is_staff": false, 
+            "last_login": "2006-12-17 07:03:31", 
+            "groups": [], 
+            "user_permissions": [], 
+            "password": "sha1$6efc0$f93efe9fd7542f25a7be94871ea45aa95de57161", 
+            "email": "testclient@example.com", 
+            "date_joined": "2006-12-17 07:03:31"
+        }
+    },
+    {
+        "pk": "3", 
+        "model": "auth.user", 
+        "fields": {
+            "username": "staff", 
+            "first_name": "Staff", 
+            "last_name": "Member", 
+            "is_active": true, 
+            "is_superuser": false, 
+            "is_staff": true, 
+            "last_login": "2006-12-17 07:03:31", 
+            "groups": [], 
+            "user_permissions": [], 
+            "password": "sha1$6efc0$f93efe9fd7542f25a7be94871ea45aa95de57161", 
+            "email": "staffmember@example.com", 
+            "date_joined": "2006-12-17 07:03:31"
+        }
+    }
+]
diff --git a/webapp/django/contrib/auth/forms.py b/webapp/django/contrib/auth/forms.py
new file mode 100644
index 0000000..1364786
--- /dev/null
+++ b/webapp/django/contrib/auth/forms.py
@@ -0,0 +1,198 @@
+from django.contrib.auth.models import User
+from django.contrib.auth import authenticate
+from django.contrib.auth.tokens import default_token_generator
+from django.contrib.sites.models import Site
+from django.template import Context, loader
+from django import forms
+from django.utils.translation import ugettext_lazy as _
+from django.utils.http import int_to_base36
+
+class UserCreationForm(forms.ModelForm):
+    """
+    A form that creates a user, with no privileges, from the given username and password.
+    """
+    username = forms.RegexField(label=_("Username"), max_length=30, regex=r'^\w+$',
+        help_text = _("Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."),
+        error_message = _("This value must contain only letters, numbers and underscores."))
+    password1 = forms.CharField(label=_("Password"), widget=forms.PasswordInput)
+    password2 = forms.CharField(label=_("Password confirmation"), widget=forms.PasswordInput)
+
+    class Meta:
+        model = User
+        fields = ("username",)
+
+    def clean_username(self):
+        username = self.cleaned_data["username"]
+        try:
+            User.objects.get(username=username)
+        except User.DoesNotExist:
+            return username
+        raise forms.ValidationError(_("A user with that username already exists."))
+
+    def clean_password2(self):
+        password1 = self.cleaned_data["password1"]
+        password2 = self.cleaned_data["password2"]
+        if password1 != password2:
+            raise forms.ValidationError(_("The two password fields didn't match."))
+        return password2
+
+    def save(self, commit=True):
+        user = super(UserCreationForm, self).save(commit=False)
+        user.set_password(self.cleaned_data["password1"])
+        if commit:
+            user.save()
+        return user
+
+class AuthenticationForm(forms.Form):
+    """
+    Base class for authenticating users. Extend this to get a form that accepts
+    username/password logins.
+    """
+    username = forms.CharField(label=_("Username"), max_length=30)
+    password = forms.CharField(label=_("Password"), widget=forms.PasswordInput)
+
+    def __init__(self, request=None, *args, **kwargs):
+        """
+        If request is passed in, the form will validate that cookies are
+        enabled. Note that the request (a HttpRequest object) must have set a
+        cookie with the key TEST_COOKIE_NAME and value TEST_COOKIE_VALUE before
+        running this validation.
+        """
+        self.request = request
+        self.user_cache = None
+        super(AuthenticationForm, self).__init__(*args, **kwargs)
+
+    def clean(self):
+        username = self.cleaned_data.get('username')
+        password = self.cleaned_data.get('password')
+
+        if username and password:
+            self.user_cache = authenticate(username=username, password=password)
+            if self.user_cache is None:
+                raise forms.ValidationError(_("Please enter a correct username and password. Note that both fields are case-sensitive."))
+            elif not self.user_cache.is_active:
+                raise forms.ValidationError(_("This account is inactive."))
+
+        # TODO: determine whether this should move to its own method.
+        if self.request:
+            if not self.request.session.test_cookie_worked():
+                raise forms.ValidationError(_("Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."))
+
+        return self.cleaned_data
+
+    def get_user_id(self):
+        if self.user_cache:
+            return self.user_cache.id
+        return None
+
+    def get_user(self):
+        return self.user_cache
+
+class PasswordResetForm(forms.Form):
+    email = forms.EmailField(label=_("E-mail"), max_length=75)
+
+    def clean_email(self):
+        """
+        Validates that a user exists with the given e-mail address.
+        """
+        email = self.cleaned_data["email"]
+        self.users_cache = User.objects.filter(email__iexact=email)
+        if len(self.users_cache) == 0:
+            raise forms.ValidationError(_("That e-mail address doesn't have an associated user account. Are you sure you've registered?"))
+
+    def save(self, domain_override=None, email_template_name='registration/password_reset_email.html',
+             use_https=False, token_generator=default_token_generator):
+        """
+        Generates a one-use only link for resetting password and sends to the user
+        """
+        from django.core.mail import send_mail
+        for user in self.users_cache:
+            if not domain_override:
+                current_site = Site.objects.get_current()
+                site_name = current_site.name
+                domain = current_site.domain
+            else:
+                site_name = domain = domain_override
+            t = loader.get_template(email_template_name)
+            c = {
+                'email': user.email,
+                'domain': domain,
+                'site_name': site_name,
+                'uid': int_to_base36(user.id),
+                'user': user,
+                'token': token_generator.make_token(user),
+                'protocol': use_https and 'https' or 'http',
+            }
+            send_mail(_("Password reset on %s") % site_name,
+                t.render(Context(c)), None, [user.email])
+
+class SetPasswordForm(forms.Form):
+    """
+    A form that lets a user change set his/her password without
+    entering the old password
+    """
+    new_password1 = forms.CharField(label=_("New password"), widget=forms.PasswordInput)
+    new_password2 = forms.CharField(label=_("New password confirmation"), widget=forms.PasswordInput)
+
+    def __init__(self, user, *args, **kwargs):
+        self.user = user
+        super(SetPasswordForm, self).__init__(*args, **kwargs)
+
+    def clean_new_password2(self):
+        password1 = self.cleaned_data.get('new_password1')
+        password2 = self.cleaned_data.get('new_password2')
+        if password1 and password2:
+            if password1 != password2:
+                raise forms.ValidationError(_("The two password fields didn't match."))
+        return password2
+
+    def save(self, commit=True):
+        self.user.set_password(self.cleaned_data['new_password1'])
+        if commit:
+            self.user.save()
+        return self.user
+
+class PasswordChangeForm(SetPasswordForm):
+    """
+    A form that lets a user change his/her password by entering
+    their old password.
+    """
+    old_password = forms.CharField(label=_("Old password"), widget=forms.PasswordInput)
+
+    def clean_old_password(self):
+        """
+        Validates that the old_password field is correct.
+        """
+        old_password = self.cleaned_data["old_password"]
+        if not self.user.check_password(old_password):
+            raise forms.ValidationError(_("Your old password was entered incorrectly. Please enter it again."))
+        return old_password
+PasswordChangeForm.base_fields.keyOrder = ['old_password', 'new_password1', 'new_password2']
+
+class AdminPasswordChangeForm(forms.Form):
+    """
+    A form used to change the password of a user in the admin interface.
+    """
+    password1 = forms.CharField(label=_("Password"), widget=forms.PasswordInput)
+    password2 = forms.CharField(label=_("Password (again)"), widget=forms.PasswordInput)
+
+    def __init__(self, user, *args, **kwargs):
+        self.user = user
+        super(AdminPasswordChangeForm, self).__init__(*args, **kwargs)
+
+    def clean_password2(self):
+        password1 = self.cleaned_data.get('password1')
+        password2 = self.cleaned_data.get('password2')
+        if password1 and password2:
+            if password1 != password2:
+                raise forms.ValidationError(_("The two password fields didn't match."))
+        return password2
+
+    def save(self, commit=True):
+        """
+        Saves the new password.
+        """
+        self.user.set_password(self.cleaned_data["password1"])
+        if commit:
+            self.user.save()
+        return self.user
diff --git a/webapp/django/contrib/auth/handlers/__init__.py b/webapp/django/contrib/auth/handlers/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/auth/handlers/__init__.py
diff --git a/webapp/django/contrib/auth/handlers/modpython.py b/webapp/django/contrib/auth/handlers/modpython.py
new file mode 100644
index 0000000..de961fa
--- /dev/null
+++ b/webapp/django/contrib/auth/handlers/modpython.py
@@ -0,0 +1,56 @@
+from mod_python import apache
+import os
+
+def authenhandler(req, **kwargs):
+    """
+    Authentication handler that checks against Django's auth database.
+    """
+
+    # mod_python fakes the environ, and thus doesn't process SetEnv.  This fixes
+    # that so that the following import works
+    os.environ.update(req.subprocess_env)
+
+    # apache 2.2 requires a call to req.get_basic_auth_pw() before 
+    # req.user and friends are available.
+    req.get_basic_auth_pw()
+
+    # check for PythonOptions
+    _str_to_bool = lambda s: s.lower() in ('1', 'true', 'on', 'yes')
+
+    options = req.get_options()
+    permission_name = options.get('DjangoPermissionName', None)
+    staff_only = _str_to_bool(options.get('DjangoRequireStaffStatus', "on"))
+    superuser_only = _str_to_bool(options.get('DjangoRequireSuperuserStatus', "off"))
+    settings_module = options.get('DJANGO_SETTINGS_MODULE', None)
+    if settings_module:
+        os.environ['DJANGO_SETTINGS_MODULE'] = settings_module
+
+    from django.contrib.auth.models import User
+    from django import db
+    db.reset_queries()
+
+    # check that the username is valid
+    kwargs = {'username': req.user, 'is_active': True}
+    if staff_only:
+        kwargs['is_staff'] = True
+    if superuser_only:
+        kwargs['is_superuser'] = True
+    try:
+        try:
+            user = User.objects.get(**kwargs)
+        except User.DoesNotExist:
+            return apache.HTTP_UNAUTHORIZED
+    
+        # check the password and any permission given
+        if user.check_password(req.get_basic_auth_pw()):
+            if permission_name:
+                if user.has_perm(permission_name):
+                    return apache.OK
+                else:
+                    return apache.HTTP_UNAUTHORIZED
+            else:
+                return apache.OK
+        else:
+            return apache.HTTP_UNAUTHORIZED
+    finally:
+        db.connection.close()
diff --git a/webapp/django/contrib/auth/management/__init__.py b/webapp/django/contrib/auth/management/__init__.py
new file mode 100644
index 0000000..01fa524
--- /dev/null
+++ b/webapp/django/contrib/auth/management/__init__.py
@@ -0,0 +1,50 @@
+"""
+Creates permissions for all installed apps that need permissions.
+"""
+
+from django.db.models import get_models, signals
+from django.contrib.auth import models as auth_app
+
+def _get_permission_codename(action, opts):
+    return u'%s_%s' % (action, opts.object_name.lower())
+
+def _get_all_permissions(opts):
+    "Returns (codename, name) for all permissions in the given opts."
+    perms = []
+    for action in ('add', 'change', 'delete'):
+        perms.append((_get_permission_codename(action, opts), u'Can %s %s' % (action, opts.verbose_name_raw)))
+    return perms + list(opts.permissions)
+
+def create_permissions(app, created_models, verbosity, **kwargs):
+    from django.contrib.contenttypes.models import ContentType
+    from django.contrib.auth.models import Permission
+    app_models = get_models(app)
+    if not app_models:
+        return
+    for klass in app_models:
+        ctype = ContentType.objects.get_for_model(klass)
+        for codename, name in _get_all_permissions(klass._meta):
+            p, created = Permission.objects.get_or_create(codename=codename, content_type__pk=ctype.id,
+                defaults={'name': name, 'content_type': ctype})
+            if created and verbosity >= 2:
+                print "Adding permission '%s'" % p
+
+def create_superuser(app, created_models, verbosity, **kwargs):
+    from django.contrib.auth.models import User
+    from django.core.management import call_command
+    if User in created_models and kwargs.get('interactive', True):
+        msg = "\nYou just installed Django's auth system, which means you don't have " \
+                "any superusers defined.\nWould you like to create one now? (yes/no): "
+        confirm = raw_input(msg)
+        while 1:
+            if confirm not in ('yes', 'no'):
+                confirm = raw_input('Please enter either "yes" or "no": ')
+                continue
+            if confirm == 'yes':
+                call_command("createsuperuser", interactive=True)
+            break
+
+signals.post_syncdb.connect(create_permissions,
+    dispatch_uid = "django.contrib.auth.management.create_permissions")
+signals.post_syncdb.connect(create_superuser,
+    sender=auth_app, dispatch_uid = "django.contrib.auth.management.create_superuser")
diff --git a/webapp/django/contrib/auth/management/commands/__init__.py b/webapp/django/contrib/auth/management/commands/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/auth/management/commands/__init__.py
diff --git a/webapp/django/contrib/auth/management/commands/createsuperuser.py b/webapp/django/contrib/auth/management/commands/createsuperuser.py
new file mode 100644
index 0000000..91e39f7
--- /dev/null
+++ b/webapp/django/contrib/auth/management/commands/createsuperuser.py
@@ -0,0 +1,123 @@
+"""
+Management utility to create superusers.
+"""
+
+import getpass
+import os
+import re
+import sys
+from optparse import make_option
+from django.contrib.auth.models import User
+from django.core import validators
+from django.core.management.base import BaseCommand, CommandError
+
+RE_VALID_USERNAME = re.compile('\w+$')
+
+class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--username', dest='username', default=None,
+            help='Specifies the username for the superuser.'),
+        make_option('--email', dest='email', default=None,
+            help='Specifies the email address for the superuser.'),
+        make_option('--noinput', action='store_false', dest='interactive', default=True,
+            help='Tells Django to NOT prompt the user for input of any kind. '    \
+                 'You must use --username and --email with --noinput, and '      \
+                 'superusers created with --noinput will not be able to log in '  \
+                 'until they\'re given a valid password.'),
+    )
+    help = 'Used to create a superuser.'
+
+    def handle(self, *args, **options):
+        username = options.get('username', None)
+        email = options.get('email', None)
+        interactive = options.get('interactive')
+        
+        # Do quick and dirty validation if --noinput
+        if not interactive:
+            if not username or not email:
+                raise CommandError("You must use --username and --email with --noinput.")
+            if not RE_VALID_USERNAME.match(username):
+                raise CommandError("Invalid username. Use only letters, digits, and underscores")
+            try:
+                validators.isValidEmail(email, None)
+            except validators.ValidationError:
+                raise CommandError("Invalid email address.")
+
+        password = ''
+
+        # Try to determine the current system user's username to use as a default.
+        try:
+            import pwd
+        except ImportError:
+            default_username = ''
+        else:
+            default_username = pwd.getpwuid(os.getuid())[0].replace(' ', '').lower()
+
+        # Determine whether the default username is taken, so we don't display
+        # it as an option.
+        if default_username:
+            try:
+                User.objects.get(username=default_username)
+            except User.DoesNotExist:
+                pass
+            else:
+                default_username = ''
+
+        # Prompt for username/email/password. Enclose this whole thing in a
+        # try/except to trap for a keyboard interrupt and exit gracefully.
+        if interactive:
+            try:
+            
+                # Get a username
+                while 1:
+                    if not username:
+                        input_msg = 'Username'
+                        if default_username:
+                            input_msg += ' (Leave blank to use %r)' % default_username
+                        username = raw_input(input_msg + ': ')
+                    if default_username and username == '':
+                        username = default_username
+                    if not RE_VALID_USERNAME.match(username):
+                        sys.stderr.write("Error: That username is invalid. Use only letters, digits and underscores.\n")
+                        username = None
+                        continue
+                    try:
+                        User.objects.get(username=username)
+                    except User.DoesNotExist:
+                        break
+                    else:
+                        sys.stderr.write("Error: That username is already taken.\n")
+                        username = None
+            
+                # Get an email
+                while 1:
+                    if not email:
+                        email = raw_input('E-mail address: ')
+                    try:
+                        validators.isValidEmail(email, None)
+                    except validators.ValidationError:
+                        sys.stderr.write("Error: That e-mail address is invalid.\n")
+                        email = None
+                    else:
+                        break
+            
+                # Get a password
+                while 1:
+                    if not password:
+                        password = getpass.getpass()
+                        password2 = getpass.getpass('Password (again): ')
+                        if password != password2:
+                            sys.stderr.write("Error: Your passwords didn't match.\n")
+                            password = None
+                            continue
+                    if password.strip() == '':
+                        sys.stderr.write("Error: Blank passwords aren't allowed.\n")
+                        password = None
+                        continue
+                    break
+            except KeyboardInterrupt:
+                sys.stderr.write("\nOperation cancelled.\n")
+                sys.exit(1)
+        
+        User.objects.create_superuser(username, email, password)
+        print "Superuser created successfully."
diff --git a/webapp/django/contrib/auth/middleware.py b/webapp/django/contrib/auth/middleware.py
new file mode 100644
index 0000000..42dc15a
--- /dev/null
+++ b/webapp/django/contrib/auth/middleware.py
@@ -0,0 +1,12 @@
+class LazyUser(object):
+    def __get__(self, request, obj_type=None):
+        if not hasattr(request, '_cached_user'):
+            from django.contrib.auth import get_user
+            request._cached_user = get_user(request)
+        return request._cached_user
+
+class AuthenticationMiddleware(object):
+    def process_request(self, request):
+        assert hasattr(request, 'session'), "The Django authentication middleware requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'."
+        request.__class__.user = LazyUser()
+        return None
diff --git a/webapp/django/contrib/auth/models.py b/webapp/django/contrib/auth/models.py
new file mode 100644
index 0000000..1f0a038
--- /dev/null
+++ b/webapp/django/contrib/auth/models.py
@@ -0,0 +1,377 @@
+from django.contrib import auth
+from django.core import validators
+from django.core.exceptions import ImproperlyConfigured
+from django.db import models
+from django.db.models.manager import EmptyManager
+from django.contrib.contenttypes.models import ContentType
+from django.utils.encoding import smart_str
+from django.utils.translation import ugettext_lazy as _
+import datetime
+import urllib
+
+UNUSABLE_PASSWORD = '!' # This will never be a valid hash
+
+try:
+    set
+except NameError:
+    from sets import Set as set   # Python 2.3 fallback
+
+def get_hexdigest(algorithm, salt, raw_password):
+    """
+    Returns a string of the hexdigest of the given plaintext password and salt
+    using the given algorithm ('md5', 'sha1' or 'crypt').
+    """
+    raw_password, salt = smart_str(raw_password), smart_str(salt)
+    if algorithm == 'crypt':
+        try:
+            import crypt
+        except ImportError:
+            raise ValueError('"crypt" password algorithm not supported in this environment')
+        return crypt.crypt(raw_password, salt)
+    # The rest of the supported algorithms are supported by hashlib, but
+    # hashlib is only available in Python 2.5.
+    try:
+        import hashlib
+    except ImportError:
+        if algorithm == 'md5':
+            import md5
+            return md5.new(salt + raw_password).hexdigest()
+        elif algorithm == 'sha1':
+            import sha
+            return sha.new(salt + raw_password).hexdigest()
+    else:
+        if algorithm == 'md5':
+            return hashlib.md5(salt + raw_password).hexdigest()
+        elif algorithm == 'sha1':
+            return hashlib.sha1(salt + raw_password).hexdigest()
+    raise ValueError("Got unknown password algorithm type in password.")
+
+def check_password(raw_password, enc_password):
+    """
+    Returns a boolean of whether the raw_password was correct. Handles
+    encryption formats behind the scenes.
+    """
+    algo, salt, hsh = enc_password.split('$')
+    return hsh == get_hexdigest(algo, salt, raw_password)
+
+class SiteProfileNotAvailable(Exception):
+    pass
+
+class Permission(models.Model):
+    """The permissions system provides a way to assign permissions to specific users and groups of users.
+
+    The permission system is used by the Django admin site, but may also be useful in your own code. The Django admin site uses permissions as follows:
+
+        - The "add" permission limits the user's ability to view the "add" form and add an object.
+        - The "change" permission limits a user's ability to view the change list, view the "change" form and change an object.
+        - The "delete" permission limits the ability to delete an object.
+
+    Permissions are set globally per type of object, not per specific object instance. It is possible to say "Mary may change news stories," but it's not currently possible to say "Mary may change news stories, but only the ones she created herself" or "Mary may only change news stories that have a certain status or publication date."
+
+    Three basic permissions -- add, change and delete -- are automatically created for each Django model.
+    """
+    name = models.CharField(_('name'), max_length=50)
+    content_type = models.ForeignKey(ContentType)
+    codename = models.CharField(_('codename'), max_length=100)
+
+    class Meta:
+        verbose_name = _('permission')
+        verbose_name_plural = _('permissions')
+        unique_together = (('content_type', 'codename'),)
+        ordering = ('content_type__app_label', 'codename')
+
+    def __unicode__(self):
+        return u"%s | %s | %s" % (
+            unicode(self.content_type.app_label),
+            unicode(self.content_type),
+            unicode(self.name))
+
+class Group(models.Model):
+    """Groups are a generic way of categorizing users to apply permissions, or some other label, to those users. A user can belong to any number of groups.
+
+    A user in a group automatically has all the permissions granted to that group. For example, if the group Site editors has the permission can_edit_home_page, any user in that group will have that permission.
+
+    Beyond permissions, groups are a convenient way to categorize users to apply some label, or extended functionality, to them. For example, you could create a group 'Special users', and you could write code that would do special things to those users -- such as giving them access to a members-only portion of your site, or sending them members-only e-mail messages.
+    """
+    name = models.CharField(_('name'), max_length=80, unique=True)
+    permissions = models.ManyToManyField(Permission, verbose_name=_('permissions'), blank=True)
+
+    class Meta:
+        verbose_name = _('group')
+        verbose_name_plural = _('groups')
+
+    def __unicode__(self):
+        return self.name
+
+class UserManager(models.Manager):
+    def create_user(self, username, email, password=None):
+        "Creates and saves a User with the given username, e-mail and password."
+        now = datetime.datetime.now()
+        user = self.model(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now)
+        if password:
+            user.set_password(password)
+        else:
+            user.set_unusable_password()
+        user.save()
+        return user
+
+    def create_superuser(self, username, email, password):
+        u = self.create_user(username, email, password)
+        u.is_staff = True
+        u.is_active = True
+        u.is_superuser = True
+        u.save()
+
+    def make_random_password(self, length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'):
+        "Generates a random password with the given length and given allowed_chars"
+        # Note that default value of allowed_chars does not have "I" or letters
+        # that look like it -- just to avoid confusion.
+        from random import choice
+        return ''.join([choice(allowed_chars) for i in range(length)])
+
+class User(models.Model):
+    """Users within the Django authentication system are represented by this model.
+
+    Username and password are required. Other fields are optional.
+    """
+    username = models.CharField(_('username'), max_length=30, unique=True, help_text=_("Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."))
+    first_name = models.CharField(_('first name'), max_length=30, blank=True)
+    last_name = models.CharField(_('last name'), max_length=30, blank=True)
+    email = models.EmailField(_('e-mail address'), blank=True)
+    password = models.CharField(_('password'), max_length=128, help_text=_("Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."))
+    is_staff = models.BooleanField(_('staff status'), default=False, help_text=_("Designates whether the user can log into this admin site."))
+    is_active = models.BooleanField(_('active'), default=True, help_text=_("Designates whether this user should be treated as active. Unselect this instead of deleting accounts."))
+    is_superuser = models.BooleanField(_('superuser status'), default=False, help_text=_("Designates that this user has all permissions without explicitly assigning them."))
+    last_login = models.DateTimeField(_('last login'), default=datetime.datetime.now)
+    date_joined = models.DateTimeField(_('date joined'), default=datetime.datetime.now)
+    groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True,
+        help_text=_("In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."))
+    user_permissions = models.ManyToManyField(Permission, verbose_name=_('user permissions'), blank=True)
+    objects = UserManager()
+
+    class Meta:
+        verbose_name = _('user')
+        verbose_name_plural = _('users')
+
+    def __unicode__(self):
+        return self.username
+
+    def get_absolute_url(self):
+        return "/users/%s/" % urllib.quote(smart_str(self.username))
+
+    def is_anonymous(self):
+        "Always returns False. This is a way of comparing User objects to anonymous users."
+        return False
+
+    def is_authenticated(self):
+        """Always return True. This is a way to tell if the user has been authenticated in templates.
+        """
+        return True
+
+    def get_full_name(self):
+        "Returns the first_name plus the last_name, with a space in between."
+        full_name = u'%s %s' % (self.first_name, self.last_name)
+        return full_name.strip()
+
+    def set_password(self, raw_password):
+        import random
+        algo = 'sha1'
+        salt = get_hexdigest(algo, str(random.random()), str(random.random()))[:5]
+        hsh = get_hexdigest(algo, salt, raw_password)
+        self.password = '%s$%s$%s' % (algo, salt, hsh)
+
+    def check_password(self, raw_password):
+        """
+        Returns a boolean of whether the raw_password was correct. Handles
+        encryption formats behind the scenes.
+        """
+        # Backwards-compatibility check. Older passwords won't include the
+        # algorithm or salt.
+        if '$' not in self.password:
+            is_correct = (self.password == get_hexdigest('md5', '', raw_password))
+            if is_correct:
+                # Convert the password to the new, more secure format.
+                self.set_password(raw_password)
+                self.save()
+            return is_correct
+        return check_password(raw_password, self.password)
+
+    def set_unusable_password(self):
+        # Sets a value that will never be a valid hash
+        self.password = UNUSABLE_PASSWORD
+
+    def has_usable_password(self):
+        return self.password != UNUSABLE_PASSWORD
+
+    def get_group_permissions(self):
+        """
+        Returns a list of permission strings that this user has through
+        his/her groups. This method queries all available auth backends.
+        """
+        permissions = set()
+        for backend in auth.get_backends():
+            if hasattr(backend, "get_group_permissions"):
+                permissions.update(backend.get_group_permissions(self))
+        return permissions
+
+    def get_all_permissions(self):
+        permissions = set()
+        for backend in auth.get_backends():
+            if hasattr(backend, "get_all_permissions"):
+                permissions.update(backend.get_all_permissions(self))
+        return permissions
+
+    def has_perm(self, perm):
+        """
+        Returns True if the user has the specified permission. This method
+        queries all available auth backends, but returns immediately if any
+        backend returns True. Thus, a user who has permission from a single
+        auth backend is assumed to have permission in general.
+        """
+        # Inactive users have no permissions.
+        if not self.is_active:
+            return False
+
+        # Superusers have all permissions.
+        if self.is_superuser:
+            return True
+
+        # Otherwise we need to check the backends.
+        for backend in auth.get_backends():
+            if hasattr(backend, "has_perm"):
+                if backend.has_perm(self, perm):
+                    return True
+        return False
+
+    def has_perms(self, perm_list):
+        """Returns True if the user has each of the specified permissions."""
+        for perm in perm_list:
+            if not self.has_perm(perm):
+                return False
+        return True
+
+    def has_module_perms(self, app_label):
+        """
+        Returns True if the user has any permissions in the given app
+        label. Uses pretty much the same logic as has_perm, above.
+        """
+        if not self.is_active:
+            return False
+
+        if self.is_superuser:
+            return True
+
+        for backend in auth.get_backends():
+            if hasattr(backend, "has_module_perms"):
+                if backend.has_module_perms(self, app_label):
+                    return True
+        return False
+
+    def get_and_delete_messages(self):
+        messages = []
+        for m in self.message_set.all():
+            messages.append(m.message)
+            m.delete()
+        return messages
+
+    def email_user(self, subject, message, from_email=None):
+        "Sends an e-mail to this User."
+        from django.core.mail import send_mail
+        send_mail(subject, message, from_email, [self.email])
+
+    def get_profile(self):
+        """
+        Returns site-specific profile for this user. Raises
+        SiteProfileNotAvailable if this site does not allow profiles.
+        """
+        if not hasattr(self, '_profile_cache'):
+            from django.conf import settings
+            if not settings.AUTH_PROFILE_MODULE:
+                raise SiteProfileNotAvailable
+            try:
+                app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.')
+                model = models.get_model(app_label, model_name)
+                self._profile_cache = model._default_manager.get(user__id__exact=self.id)
+            except (ImportError, ImproperlyConfigured):
+                raise SiteProfileNotAvailable
+        return self._profile_cache
+
+class Message(models.Model):
+    """
+    The message system is a lightweight way to queue messages for given
+    users. A message is associated with a User instance (so it is only
+    applicable for registered users). There's no concept of expiration or
+    timestamps. Messages are created by the Django admin after successful
+    actions. For example, "The poll Foo was created successfully." is a
+    message.
+    """
+    user = models.ForeignKey(User)
+    message = models.TextField(_('message'))
+
+    def __unicode__(self):
+        return self.message
+
+class AnonymousUser(object):
+    id = None
+    username = ''
+    is_staff = False
+    is_active = False
+    is_superuser = False
+    _groups = EmptyManager()
+    _user_permissions = EmptyManager()
+
+    def __init__(self):
+        pass
+
+    def __unicode__(self):
+        return 'AnonymousUser'
+
+    def __str__(self):
+        return unicode(self).encode('utf-8')
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__)
+
+    def __ne__(self, other):
+        return not self.__eq__(other)
+
+    def __hash__(self):
+        return 1 # instances always return the same hash value
+
+    def save(self):
+        raise NotImplementedError
+
+    def delete(self):
+        raise NotImplementedError
+
+    def set_password(self, raw_password):
+        raise NotImplementedError
+
+    def check_password(self, raw_password):
+        raise NotImplementedError
+
+    def _get_groups(self):
+        return self._groups
+    groups = property(_get_groups)
+
+    def _get_user_permissions(self):
+        return self._user_permissions
+    user_permissions = property(_get_user_permissions)
+
+    def has_perm(self, perm):
+        return False
+
+    def has_perms(self, perm_list):
+        return False
+
+    def has_module_perms(self, module):
+        return False
+
+    def get_and_delete_messages(self):
+        return []
+
+    def is_anonymous(self):
+        return True
+
+    def is_authenticated(self):
+        return False
diff --git a/webapp/django/contrib/auth/tests/__init__.py b/webapp/django/contrib/auth/tests/__init__.py
new file mode 100644
index 0000000..23cfbaf
--- /dev/null
+++ b/webapp/django/contrib/auth/tests/__init__.py
@@ -0,0 +1,14 @@
+from django.contrib.auth.tests.basic import BASIC_TESTS
+from django.contrib.auth.tests.views import PasswordResetTest, ChangePasswordTest
+from django.contrib.auth.tests.forms import FORM_TESTS
+from django.contrib.auth.tests.tokens import TOKEN_GENERATOR_TESTS
+
+# The password for the fixture data users is 'password'
+
+__test__ = {
+    'BASIC_TESTS': BASIC_TESTS,
+    'PASSWORDRESET_TESTS': PasswordResetTest,
+    'FORM_TESTS': FORM_TESTS,
+    'TOKEN_GENERATOR_TESTS': TOKEN_GENERATOR_TESTS,
+    'CHANGEPASSWORD_TESTS': ChangePasswordTest,
+}
diff --git a/webapp/django/contrib/auth/tests/basic.py b/webapp/django/contrib/auth/tests/basic.py
new file mode 100644
index 0000000..2071710
--- /dev/null
+++ b/webapp/django/contrib/auth/tests/basic.py
@@ -0,0 +1,56 @@
+
+BASIC_TESTS = """
+>>> from django.contrib.auth.models import User, AnonymousUser
+>>> u = User.objects.create_user('testuser', 'test@example.com', 'testpw')
+>>> u.has_usable_password()
+True
+>>> u.check_password('bad')
+False
+>>> u.check_password('testpw')
+True
+>>> u.set_unusable_password()
+>>> u.save()
+>>> u.check_password('testpw')
+False
+>>> u.has_usable_password()
+False
+>>> u2 = User.objects.create_user('testuser2', 'test2@example.com')
+>>> u2.has_usable_password()
+False
+
+>>> u.is_authenticated()
+True
+>>> u.is_staff
+False
+>>> u.is_active
+True
+
+>>> a = AnonymousUser()
+>>> a.is_authenticated()
+False
+>>> a.is_staff
+False
+>>> a.is_active
+False
+>>> a.groups.all()
+[]
+>>> a.user_permissions.all()
+[]
+
+#
+# Tests for createsuperuser management command.
+# It's nearly impossible to test the interactive mode -- a command test helper
+# would be needed (and *awesome*) -- so just test the non-interactive mode.
+# This covers most of the important validation, but not all.
+#
+>>> from django.core.management import call_command
+
+>>> call_command("createsuperuser", noinput=True, username="joe", email="joe@somewhere.org")
+Superuser created successfully.
+
+>>> u = User.objects.get(username="joe")
+>>> u.email
+u'joe@somewhere.org'
+>>> u.password
+u'!'
+"""
diff --git a/webapp/django/contrib/auth/tests/forms.py b/webapp/django/contrib/auth/tests/forms.py
new file mode 100644
index 0000000..01f4995
--- /dev/null
+++ b/webapp/django/contrib/auth/tests/forms.py
@@ -0,0 +1,166 @@
+
+FORM_TESTS = """
+>>> from django.contrib.auth.models import User
+>>> from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
+>>> from django.contrib.auth.forms import PasswordChangeForm, SetPasswordForm
+
+The user already exists.
+
+>>> user = User.objects.create_user("jsmith", "jsmith@example.com", "test123")
+>>> data = {
+...     'username': 'jsmith',
+...     'password1': 'test123',
+...     'password2': 'test123',
+... }
+>>> form = UserCreationForm(data)
+>>> form.is_valid()
+False
+>>> form["username"].errors
+[u'A user with that username already exists.']
+
+The username contains invalid data.
+
+>>> data = {
+...     'username': 'jsmith@example.com',
+...     'password1': 'test123',
+...     'password2': 'test123',
+... }
+>>> form = UserCreationForm(data)
+>>> form.is_valid()
+False
+>>> form["username"].errors
+[u'This value must contain only letters, numbers and underscores.']
+
+The verification password is incorrect.
+
+>>> data = {
+...     'username': 'jsmith2',
+...     'password1': 'test123',
+...     'password2': 'test',
+... }
+>>> form = UserCreationForm(data)
+>>> form.is_valid()
+False
+>>> form["password2"].errors
+[u"The two password fields didn't match."]
+
+The success case.
+
+>>> data = {
+...     'username': 'jsmith2',
+...     'password1': 'test123',
+...     'password2': 'test123',
+... }
+>>> form = UserCreationForm(data)
+>>> form.is_valid()
+True
+>>> form.save()
+<User: jsmith2>
+
+The user submits an invalid username.
+
+>>> data = {
+...     'username': 'jsmith_does_not_exist',
+...     'password': 'test123',
+... }
+
+>>> form = AuthenticationForm(None, data)
+>>> form.is_valid()
+False
+>>> form.non_field_errors()
+[u'Please enter a correct username and password. Note that both fields are case-sensitive.']
+
+The user is inactive.
+
+>>> data = {
+...     'username': 'jsmith',
+...     'password': 'test123',
+... }
+>>> user.is_active = False
+>>> user.save()
+>>> form = AuthenticationForm(None, data)
+>>> form.is_valid()
+False
+>>> form.non_field_errors()
+[u'This account is inactive.']
+
+>>> user.is_active = True
+>>> user.save()
+
+The success case
+
+>>> form = AuthenticationForm(None, data)
+>>> form.is_valid()
+True
+>>> form.non_field_errors()
+[]
+
+SetPasswordForm:
+
+The two new passwords do not match.
+
+>>> data = {
+...     'new_password1': 'abc123',
+...     'new_password2': 'abc',
+... }
+>>> form = SetPasswordForm(user, data)
+>>> form.is_valid()
+False
+>>> form["new_password2"].errors
+[u"The two password fields didn't match."]
+
+The success case.
+
+>>> data = {
+...     'new_password1': 'abc123',
+...     'new_password2': 'abc123',
+... }
+>>> form = SetPasswordForm(user, data)
+>>> form.is_valid()
+True
+
+PasswordChangeForm:
+
+The old password is incorrect.
+
+>>> data = {
+...     'old_password': 'test',
+...     'new_password1': 'abc123',
+...     'new_password2': 'abc123',
+... }
+>>> form = PasswordChangeForm(user, data)
+>>> form.is_valid()
+False
+>>> form["old_password"].errors
+[u'Your old password was entered incorrectly. Please enter it again.']
+
+The two new passwords do not match.
+
+>>> data = {
+...     'old_password': 'test123',
+...     'new_password1': 'abc123',
+...     'new_password2': 'abc',
+... }
+>>> form = PasswordChangeForm(user, data)
+>>> form.is_valid()
+False
+>>> form["new_password2"].errors
+[u"The two password fields didn't match."]
+
+The success case.
+
+>>> data = {
+...     'old_password': 'test123',
+...     'new_password1': 'abc123',
+...     'new_password2': 'abc123',
+... }
+>>> form = PasswordChangeForm(user, data)
+>>> form.is_valid()
+True
+
+Regression test - check the order of fields:
+
+>>> PasswordChangeForm(user, {}).fields.keys()
+['old_password', 'new_password1', 'new_password2']
+
+"""
diff --git a/webapp/django/contrib/auth/tests/templates/registration/login.html b/webapp/django/contrib/auth/tests/templates/registration/login.html
new file mode 100644
index 0000000..027da71
--- /dev/null
+++ b/webapp/django/contrib/auth/tests/templates/registration/login.html
@@ -0,0 +1 @@
+{{ form.as_ul }}
\ No newline at end of file
diff --git a/webapp/django/contrib/auth/tests/tokens.py b/webapp/django/contrib/auth/tests/tokens.py
new file mode 100644
index 0000000..6d3a964
--- /dev/null
+++ b/webapp/django/contrib/auth/tests/tokens.py
@@ -0,0 +1,29 @@
+TOKEN_GENERATOR_TESTS = """
+>>> from django.contrib.auth.models import User, AnonymousUser
+>>> from django.contrib.auth.tokens import PasswordResetTokenGenerator
+>>> from django.conf import settings
+>>> u = User.objects.create_user('tokentestuser', 'test2@example.com', 'testpw')
+>>> p0 = PasswordResetTokenGenerator()
+>>> tk1 = p0.make_token(u)
+>>> p0.check_token(u, tk1)
+True
+
+Tests to ensure we can use the token after n days, but no greater.
+Use a mocked version of PasswordResetTokenGenerator so we can change
+the value of 'today'
+
+>>> class Mocked(PasswordResetTokenGenerator):
+...     def __init__(self, today):
+...         self._today_val = today
+...     def _today(self):
+...         return self._today_val
+
+>>> from datetime import date, timedelta
+>>> p1 = Mocked(date.today() + timedelta(settings.PASSWORD_RESET_TIMEOUT_DAYS))
+>>> p1.check_token(u, tk1)
+True
+>>> p2 = Mocked(date.today() + timedelta(settings.PASSWORD_RESET_TIMEOUT_DAYS + 1))
+>>> p2.check_token(u, tk1)
+False
+
+"""
diff --git a/webapp/django/contrib/auth/tests/views.py b/webapp/django/contrib/auth/tests/views.py
new file mode 100644
index 0000000..acd0336
--- /dev/null
+++ b/webapp/django/contrib/auth/tests/views.py
@@ -0,0 +1,164 @@
+
+import os
+import re
+
+from django.conf import settings
+from django.contrib.auth.models import User
+from django.test import TestCase
+from django.core import mail
+
+class PasswordResetTest(TestCase):
+    fixtures = ['authtestdata.json']
+    urls = 'django.contrib.auth.urls'
+
+    def test_email_not_found(self):
+        "Error is raised if the provided email address isn't currently registered"
+        response = self.client.get('/password_reset/')
+        self.assertEquals(response.status_code, 200)
+        response = self.client.post('/password_reset/', {'email': 'not_a_real_email@email.com'})
+        self.assertContains(response, "That e-mail address doesn't have an associated user account")
+        self.assertEquals(len(mail.outbox), 0)
+
+    def test_email_found(self):
+        "Email is sent if a valid email address is provided for password reset"
+        response = self.client.post('/password_reset/', {'email': 'staffmember@example.com'})
+        self.assertEquals(response.status_code, 302)
+        self.assertEquals(len(mail.outbox), 1)
+        self.assert_("http://" in mail.outbox[0].body)
+
+    def _test_confirm_start(self):
+        # Start by creating the email
+        response = self.client.post('/password_reset/', {'email': 'staffmember@example.com'})
+        self.assertEquals(response.status_code, 302)
+        self.assertEquals(len(mail.outbox), 1)
+        return self._read_signup_email(mail.outbox[0])
+
+    def _read_signup_email(self, email):
+        urlmatch = re.search(r"https?://[^/]*(/.*reset/\S*)", email.body)
+        self.assert_(urlmatch is not None, "No URL found in sent email")
+        return urlmatch.group(), urlmatch.groups()[0]
+
+    def test_confirm_valid(self):
+        url, path = self._test_confirm_start()
+        response = self.client.get(path)
+        # redirect to a 'complete' page:
+        self.assertEquals(response.status_code, 200)
+        self.assert_("Please enter your new password" in response.content)
+
+    def test_confirm_invalid(self):
+        url, path = self._test_confirm_start()
+        # Lets munge the token in the path, but keep the same length,
+        # in case the URL conf will reject a different length
+        path = path[:-5] + ("0"*4) + path[-1]
+
+        response = self.client.get(path)
+        self.assertEquals(response.status_code, 200)
+        self.assert_("The password reset link was invalid" in response.content)
+
+    def test_confirm_invalid_post(self):
+        # Same as test_confirm_invalid, but trying
+        # to do a POST instead.
+        url, path = self._test_confirm_start()
+        path = path[:-5] + ("0"*4) + path[-1]
+
+        response = self.client.post(path, {'new_password1': 'anewpassword',
+                                           'new_password2':' anewpassword'})
+        # Check the password has not been changed
+        u = User.objects.get(email='staffmember@example.com')
+        self.assert_(not u.check_password("anewpassword"))
+
+    def test_confirm_complete(self):
+        url, path = self._test_confirm_start()
+        response = self.client.post(path, {'new_password1': 'anewpassword',
+                                           'new_password2': 'anewpassword'})
+        # It redirects us to a 'complete' page:
+        self.assertEquals(response.status_code, 302)
+        # Check the password has been changed
+        u = User.objects.get(email='staffmember@example.com')
+        self.assert_(u.check_password("anewpassword"))
+
+        # Check we can't use the link again
+        response = self.client.get(path)
+        self.assertEquals(response.status_code, 200)
+        self.assert_("The password reset link was invalid" in response.content)
+
+    def test_confirm_different_passwords(self):
+        url, path = self._test_confirm_start()
+        response = self.client.post(path, {'new_password1': 'anewpassword',
+                                           'new_password2':' x'})
+        self.assertEquals(response.status_code, 200)
+        self.assert_("The two password fields didn't match" in response.content)
+
+
+class ChangePasswordTest(TestCase):
+    fixtures = ['authtestdata.json']
+    urls = 'django.contrib.auth.urls'
+
+    def setUp(self):
+        self.old_TEMPLATE_DIRS = settings.TEMPLATE_DIRS
+        settings.TEMPLATE_DIRS = (
+            os.path.join(
+                os.path.dirname(__file__),
+                'templates'
+            )
+        ,)
+
+    def tearDown(self):
+        settings.TEMPLATE_DIRS = self.old_TEMPLATE_DIRS
+
+    def login(self, password='password'):
+        response = self.client.post('/login/', {
+            'username': 'testclient',
+            'password': password
+            }
+        )
+        self.assertEquals(response.status_code, 302)
+        self.assert_(response['Location'].endswith('/accounts/profile/'))
+
+    def fail_login(self, password='password'):
+        response = self.client.post('/login/', {
+            'username': 'testclient',
+            'password': password
+            }
+        )
+        self.assertEquals(response.status_code, 200)
+        self.assert_("Please enter a correct username and password. Note that both fields are case-sensitive." in response.content)
+
+    def logout(self):
+        response = self.client.get('/logout/')
+
+    def test_password_change_fails_with_invalid_old_password(self):
+        self.login()
+        response = self.client.post('/password_change/', {
+            'old_password': 'donuts',
+            'new_password1': 'password1',
+            'new_password2': 'password1',
+            }
+        )
+        self.assertEquals(response.status_code, 200)
+        self.assert_("Your old password was entered incorrectly. Please enter it again." in response.content)
+
+    def test_password_change_fails_with_mismatched_passwords(self):
+        self.login()
+        response = self.client.post('/password_change/', {
+            'old_password': 'password',
+            'new_password1': 'password1',
+            'new_password2': 'donuts',
+            }
+        )
+        self.assertEquals(response.status_code, 200)
+        self.assert_("The two password fields didn't match." in response.content)
+
+    def test_password_change_succeeds(self):
+        self.login()
+        response = self.client.post('/password_change/', {
+            'old_password': 'password',
+            'new_password1': 'password1',
+            'new_password2': 'password1',
+            }
+        )
+        self.assertEquals(response.status_code, 302)
+        self.assert_(response['Location'].endswith('/password_change/done/'))
+        self.fail_login()
+        self.login(password='password1')
+
diff --git a/webapp/django/contrib/auth/tokens.py b/webapp/django/contrib/auth/tokens.py
new file mode 100644
index 0000000..c9b3535
--- /dev/null
+++ b/webapp/django/contrib/auth/tokens.py
@@ -0,0 +1,66 @@
+from datetime import date
+from django.conf import settings
+from django.utils.http import int_to_base36, base36_to_int
+
+class PasswordResetTokenGenerator(object):
+    """
+    Stratgy object used to generate and check tokens for the password
+    reset mechanism.
+    """
+    def make_token(self, user):
+        """
+        Returns a token that can be used once to do a password reset
+        for the given user.
+        """
+        return self._make_token_with_timestamp(user, self._num_days(self._today()))
+
+    def check_token(self, user, token):
+        """
+        Check that a password reset token is correct for a given user.
+        """
+        # Parse the tokem
+        try:
+            ts_b36, hash = token.split("-")
+        except ValueError:
+            return False
+
+        try:
+            ts = base36_to_int(ts_b36)
+        except ValueError:
+            return False
+
+        # Check that the timestamp/uid has not been tampered with
+        if self._make_token_with_timestamp(user, ts) != token:
+            return False
+
+        # Check the timestamp is within limit
+        if (self._num_days(self._today()) - ts) > settings.PASSWORD_RESET_TIMEOUT_DAYS:
+            return False
+
+        return True
+
+    def _make_token_with_timestamp(self, user, timestamp):
+        # timestamp is number of days since 2001-1-1.  Converted to
+        # base 36, this gives us a 3 digit string until about 2121
+        ts_b36 = int_to_base36(timestamp)
+
+        # By hashing on the internal state of the user and using state
+        # that is sure to change (the password salt will change as soon as
+        # the password is set, at least for current Django auth, and
+        # last_login will also change), we produce a hash that will be
+        # invalid as soon as it is used.
+        # We limit the hash to 20 chars to keep URL short
+        from django.utils.hashcompat import sha_constructor
+        hash = sha_constructor(settings.SECRET_KEY + unicode(user.id) +
+                               user.password + unicode(user.last_login) +
+                               unicode(timestamp)).hexdigest()[::2]
+        return "%s-%s" % (ts_b36, hash)
+
+    def _num_days(self, dt):
+        return (dt - date(2001,1,1)).days
+
+    def _today(self):
+        # Used for mocking in tests
+        return date.today()
+
+default_token_generator = PasswordResetTokenGenerator()
diff --git a/webapp/django/contrib/auth/urls.py b/webapp/django/contrib/auth/urls.py
new file mode 100644
index 0000000..4f8a102
--- /dev/null
+++ b/webapp/django/contrib/auth/urls.py
@@ -0,0 +1,17 @@
+# These URLs are normally mapped to /admin/urls.py. This URLs file is 
+# provided as a convenience to those who want to deploy these URLs elsewhere.
+# This file is also used to provide a reliable view deployment for test purposes.
+
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('',
+    (r'^login/$', 'django.contrib.auth.views.login'),
+    (r'^logout/$', 'django.contrib.auth.views.logout'),
+    (r'^password_change/$', 'django.contrib.auth.views.password_change'),
+    (r'^password_change/done/$', 'django.contrib.auth.views.password_change_done'),
+    (r'^password_reset/$', 'django.contrib.auth.views.password_reset'),
+    (r'^password_reset/done/$', 'django.contrib.auth.views.password_reset_done'),
+    (r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm'),
+    (r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete'),
+)
+
diff --git a/webapp/django/contrib/auth/views.py b/webapp/django/contrib/auth/views.py
new file mode 100644
index 0000000..e1f0d43
--- /dev/null
+++ b/webapp/django/contrib/auth/views.py
@@ -0,0 +1,157 @@
+from django.conf import settings
+from django.contrib.auth import REDIRECT_FIELD_NAME
+from django.contrib.auth.decorators import login_required
+from django.contrib.auth.forms import AuthenticationForm
+from django.contrib.auth.forms import PasswordResetForm, SetPasswordForm, PasswordChangeForm
+from django.contrib.auth.tokens import default_token_generator
+from django.core.urlresolvers import reverse
+from django.shortcuts import render_to_response, get_object_or_404
+from django.contrib.sites.models import Site, RequestSite
+from django.http import HttpResponseRedirect, Http404
+from django.template import RequestContext
+from django.utils.http import urlquote, base36_to_int
+from django.utils.translation import ugettext as _
+from django.contrib.auth.models import User
+from django.views.decorators.cache import never_cache
+
+def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_FIELD_NAME):
+    "Displays the login form and handles the login action."
+    redirect_to = request.REQUEST.get(redirect_field_name, '')
+    if request.method == "POST":
+        form = AuthenticationForm(data=request.POST)
+        if form.is_valid():
+            # Light security check -- make sure redirect_to isn't garbage.
+            if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
+                redirect_to = settings.LOGIN_REDIRECT_URL
+            from django.contrib.auth import login
+            login(request, form.get_user())
+            if request.session.test_cookie_worked():
+                request.session.delete_test_cookie()
+            return HttpResponseRedirect(redirect_to)
+    else:
+        form = AuthenticationForm(request)
+    request.session.set_test_cookie()
+    if Site._meta.installed:
+        current_site = Site.objects.get_current()
+    else:
+        current_site = RequestSite(request)
+    return render_to_response(template_name, {
+        'form': form,
+        redirect_field_name: redirect_to,
+        'site_name': current_site.name,
+    }, context_instance=RequestContext(request))
+login = never_cache(login)
+
+def logout(request, next_page=None, template_name='registration/logged_out.html'):
+    "Logs out the user and displays 'You are logged out' message."
+    from django.contrib.auth import logout
+    logout(request)
+    if next_page is None:
+        return render_to_response(template_name, {'title': _('Logged out')}, context_instance=RequestContext(request))
+    else:
+        # Redirect to this page until the session has been cleared.
+        return HttpResponseRedirect(next_page or request.path)
+
+def logout_then_login(request, login_url=None):
+    "Logs out the user if he is logged in. Then redirects to the log-in page."
+    if not login_url:
+        login_url = settings.LOGIN_URL
+    return logout(request, login_url)
+
+def redirect_to_login(next, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME):
+    "Redirects the user to the login page, passing the given 'next' page"
+    if not login_url:
+        login_url = settings.LOGIN_URL
+    return HttpResponseRedirect('%s?%s=%s' % (login_url, urlquote(redirect_field_name), urlquote(next)))
+
+# 4 views for password reset:
+# - password_reset sends the mail
+# - password_reset_done shows a success message for the above
+# - password_reset_confirm checks the link the user clicked and 
+#   prompts for a new password
+# - password_reset_complete shows a success message for the above
+
+def password_reset(request, is_admin_site=False, template_name='registration/password_reset_form.html',
+        email_template_name='registration/password_reset_email.html',
+        password_reset_form=PasswordResetForm, token_generator=default_token_generator,
+        post_reset_redirect=None):
+    if post_reset_redirect is None:
+        post_reset_redirect = reverse('django.contrib.auth.views.password_reset_done')
+    if request.method == "POST":
+        form = password_reset_form(request.POST)
+        if form.is_valid():
+            opts = {}
+            opts['use_https'] = request.is_secure()
+            opts['token_generator'] = token_generator
+            if is_admin_site:
+                opts['domain_override'] = request.META['HTTP_HOST']
+            else:
+                opts['email_template_name'] = email_template_name
+                if not Site._meta.installed:
+                    opts['domain_override'] = RequestSite(request).domain
+            form.save(**opts)
+            return HttpResponseRedirect(post_reset_redirect)
+    else:
+        form = password_reset_form()
+    return render_to_response(template_name, {
+        'form': form,
+    }, context_instance=RequestContext(request))
+
+def password_reset_done(request, template_name='registration/password_reset_done.html'):
+    return render_to_response(template_name, context_instance=RequestContext(request))
+
+def password_reset_confirm(request, uidb36=None, token=None, template_name='registration/password_reset_confirm.html',
+                           token_generator=default_token_generator, set_password_form=SetPasswordForm,
+                           post_reset_redirect=None):
+    """
+    View that checks the hash in a password reset link and presents a
+    form for entering a new password.
+    """
+    assert uidb36 is not None and token is not None # checked by URLconf
+    if post_reset_redirect is None:
+        post_reset_redirect = reverse('django.contrib.auth.views.password_reset_complete')
+    try:
+        uid_int = base36_to_int(uidb36)
+    except ValueError:
+        raise Http404
+
+    user = get_object_or_404(User, id=uid_int)
+    context_instance = RequestContext(request)
+
+    if token_generator.check_token(user, token):
+        context_instance['validlink'] = True
+        if request.method == 'POST':
+            form = set_password_form(user, request.POST)
+            if form.is_valid():
+                form.save()
+                return HttpResponseRedirect(post_reset_redirect)
+        else:
+            form = set_password_form(None)
+    else:
+        context_instance['validlink'] = False
+        form = None
+    context_instance['form'] = form    
+    return render_to_response(template_name, context_instance=context_instance)
+
+def password_reset_complete(request, template_name='registration/password_reset_complete.html'):
+    return render_to_response(template_name, context_instance=RequestContext(request,
+                                                                             {'login_url': settings.LOGIN_URL}))
+
+def password_change(request, template_name='registration/password_change_form.html',
+                    post_change_redirect=None):
+    if post_change_redirect is None:
+        post_change_redirect = reverse('django.contrib.auth.views.password_change_done')
+    if request.method == "POST":
+        form = PasswordChangeForm(request.user, request.POST)
+        if form.is_valid():
+            form.save()
+            return HttpResponseRedirect(post_change_redirect)
+    else:
+        form = PasswordChangeForm(request.user)
+    return render_to_response(template_name, {
+        'form': form,
+    }, context_instance=RequestContext(request))
+password_change = login_required(password_change)
+
+def password_change_done(request, template_name='registration/password_change_done.html'):
+    return render_to_response(template_name, context_instance=RequestContext(request))
diff --git a/webapp/django/contrib/comments/__init__.py b/webapp/django/contrib/comments/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/comments/__init__.py
diff --git a/webapp/django/contrib/comments/admin.py b/webapp/django/contrib/comments/admin.py
new file mode 100644
index 0000000..81ecc69
--- /dev/null
+++ b/webapp/django/contrib/comments/admin.py
@@ -0,0 +1,30 @@
+from django.contrib import admin
+from django.contrib.comments.models import Comment, FreeComment
+
+
+class CommentAdmin(admin.ModelAdmin):
+    fieldsets = (
+        (None, {'fields': ('content_type', 'object_id', 'site')}),
+        ('Content', {'fields': ('user', 'headline', 'comment')}),
+        ('Ratings', {'fields': ('rating1', 'rating2', 'rating3', 'rating4', 'rating5', 'rating6', 'rating7', 'rating8', 'valid_rating')}),
+        ('Meta', {'fields': ('is_public', 'is_removed', 'ip_address')}),
+    )
+    list_display = ('user', 'submit_date', 'content_type', 'get_content_object')
+    list_filter = ('submit_date',)
+    date_hierarchy = 'submit_date'
+    search_fields = ('comment', 'user__username')
+    raw_id_fields = ('user',)
+
+class FreeCommentAdmin(admin.ModelAdmin):
+    fieldsets = (
+        (None, {'fields': ('content_type', 'object_id', 'site')}),
+        ('Content', {'fields': ('person_name', 'comment')}),
+        ('Meta', {'fields': ('is_public', 'ip_address', 'approved')}),
+    )
+    list_display = ('person_name', 'submit_date', 'content_type', 'get_content_object')
+    list_filter = ('submit_date',)
+    date_hierarchy = 'submit_date'
+    search_fields = ('comment', 'person_name')
+
+admin.site.register(Comment, CommentAdmin)
+admin.site.register(FreeComment, FreeCommentAdmin)
\ No newline at end of file
diff --git a/webapp/django/contrib/comments/feeds.py b/webapp/django/contrib/comments/feeds.py
new file mode 100644
index 0000000..901254f
--- /dev/null
+++ b/webapp/django/contrib/comments/feeds.py
@@ -0,0 +1,44 @@
+from django.conf import settings
+from django.contrib.comments.models import Comment, FreeComment
+from django.contrib.syndication.feeds import Feed
+from django.contrib.sites.models import Site
+
+class LatestFreeCommentsFeed(Feed):
+    """Feed of latest free comments on the current site."""
+
+    comments_class = FreeComment
+
+    def title(self):
+        if not hasattr(self, '_site'):
+            self._site = Site.objects.get_current()
+        return u"%s comments" % self._site.name
+
+    def link(self):
+        if not hasattr(self, '_site'):
+            self._site = Site.objects.get_current()
+        return "http://%s/" % (self._site.domain)
+
+    def description(self):
+        if not hasattr(self, '_site'):
+            self._site = Site.objects.get_current()
+        return u"Latest comments on %s" % self._site.name
+
+    def get_query_set(self):
+        return self.comments_class.objects.filter(site__pk=settings.SITE_ID, is_public=True)
+
+    def items(self):
+        return self.get_query_set()[:40]
+
+class LatestCommentsFeed(LatestFreeCommentsFeed):
+    """Feed of latest comments on the current site."""
+
+    comments_class = Comment
+
+    def get_query_set(self):
+        qs = super(LatestCommentsFeed, self).get_query_set()
+        qs = qs.filter(is_removed=False)
+        if settings.COMMENTS_BANNED_USERS_GROUP:
+            where = ['user_id NOT IN (SELECT user_id FROM auth_users_group WHERE group_id = %s)']
+            params = [settings.COMMENTS_BANNED_USERS_GROUP]
+            qs = qs.extra(where=where, params=params)
+        return qs
diff --git a/webapp/django/contrib/comments/models.py b/webapp/django/contrib/comments/models.py
new file mode 100644
index 0000000..fdf34c8
--- /dev/null
+++ b/webapp/django/contrib/comments/models.py
@@ -0,0 +1,286 @@
+import datetime
+
+from django.db import models
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.sites.models import Site
+from django.contrib.auth.models import User
+from django.utils.translation import ugettext_lazy as _
+from django.conf import settings
+
+MIN_PHOTO_DIMENSION = 5
+MAX_PHOTO_DIMENSION = 1000
+
+# Option codes for comment-form hidden fields.
+PHOTOS_REQUIRED = 'pr'
+PHOTOS_OPTIONAL = 'pa'
+RATINGS_REQUIRED = 'rr'
+RATINGS_OPTIONAL = 'ra'
+IS_PUBLIC = 'ip'
+
+# What users get if they don't have any karma.
+DEFAULT_KARMA = 5
+KARMA_NEEDED_BEFORE_DISPLAYED = 3
+
+
+class CommentManager(models.Manager):
+    def get_security_hash(self, options, photo_options, rating_options, target):
+        """
+        Returns the MD5 hash of the given options (a comma-separated string such as
+        'pa,ra') and target (something like 'lcom.eventtimes:5157'). Used to
+        validate that submitted form options have not been tampered-with.
+        """
+        from django.utils.hashcompat import md5_constructor
+        return md5_constructor(options + photo_options + rating_options + target + settings.SECRET_KEY).hexdigest()
+
+    def get_rating_options(self, rating_string):
+        """
+        Given a rating_string, this returns a tuple of (rating_range, options).
+        >>> s = "scale:1-10|First_category|Second_category"
+        >>> Comment.objects.get_rating_options(s)
+        ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ['First category', 'Second category'])
+        """
+        rating_range, options = rating_string.split('|', 1)
+        rating_range = range(int(rating_range[6:].split('-')[0]), int(rating_range[6:].split('-')[1])+1)
+        choices = [c.replace('_', ' ') for c in options.split('|')]
+        return rating_range, choices
+
+    def get_list_with_karma(self, **kwargs):
+        """
+        Returns a list of Comment objects matching the given lookup terms, with
+        _karma_total_good and _karma_total_bad filled.
+        """
+        extra_kwargs = {}
+        extra_kwargs.setdefault('select', {})
+        extra_kwargs['select']['_karma_total_good'] = 'SELECT COUNT(*) FROM comments_karmascore, comments_comment WHERE comments_karmascore.comment_id=comments_comment.id AND score=1'
+        extra_kwargs['select']['_karma_total_bad'] = 'SELECT COUNT(*) FROM comments_karmascore, comments_comment WHERE comments_karmascore.comment_id=comments_comment.id AND score=-1'
+        return self.filter(**kwargs).extra(**extra_kwargs)
+
+    def user_is_moderator(self, user):
+        if user.is_superuser:
+            return True
+        for g in user.groups.all():
+            if g.id == settings.COMMENTS_MODERATORS_GROUP:
+                return True
+        return False
+
+
+class Comment(models.Model):
+    """A comment by a registered user."""
+    user = models.ForeignKey(User)
+    content_type = models.ForeignKey(ContentType)
+    object_id = models.IntegerField(_('object ID'))
+    headline = models.CharField(_('headline'), max_length=255, blank=True)
+    comment = models.TextField(_('comment'), max_length=3000)
+    rating1 = models.PositiveSmallIntegerField(_('rating #1'), blank=True, null=True)
+    rating2 = models.PositiveSmallIntegerField(_('rating #2'), blank=True, null=True)
+    rating3 = models.PositiveSmallIntegerField(_('rating #3'), blank=True, null=True)
+    rating4 = models.PositiveSmallIntegerField(_('rating #4'), blank=True, null=True)
+    rating5 = models.PositiveSmallIntegerField(_('rating #5'), blank=True, null=True)
+    rating6 = models.PositiveSmallIntegerField(_('rating #6'), blank=True, null=True)
+    rating7 = models.PositiveSmallIntegerField(_('rating #7'), blank=True, null=True)
+    rating8 = models.PositiveSmallIntegerField(_('rating #8'), blank=True, null=True)
+    # This field designates whether to use this row's ratings in aggregate
+    # functions (summaries). We need this because people are allowed to post
+    # multiple reviews on the same thing, but the system will only use the
+    # latest one (with valid_rating=True) in tallying the reviews.
+    valid_rating = models.BooleanField(_('is valid rating'))
+    submit_date = models.DateTimeField(_('date/time submitted'), auto_now_add=True)
+    is_public = models.BooleanField(_('is public'))
+    ip_address = models.IPAddressField(_('IP address'), blank=True, null=True)
+    is_removed = models.BooleanField(_('is removed'), help_text=_('Check this box if the comment is inappropriate. A "This comment has been removed" message will be displayed instead.'))
+    site = models.ForeignKey(Site)
+    objects = CommentManager()
+
+    class Meta:
+        verbose_name = _('comment')
+        verbose_name_plural = _('comments')
+        ordering = ('-submit_date',)
+
+    def __unicode__(self):
+        return "%s: %s..." % (self.user.username, self.comment[:100])
+
+    def get_absolute_url(self):
+        try:
+            return self.get_content_object().get_absolute_url() + "#c" + str(self.id)
+        except AttributeError:
+            return ""
+
+    def get_crossdomain_url(self):
+        return "/r/%d/%d/" % (self.content_type_id, self.object_id)
+
+    def get_flag_url(self):
+        return "/comments/flag/%s/" % self.id
+
+    def get_deletion_url(self):
+        return "/comments/delete/%s/" % self.id
+
+    def get_content_object(self):
+        """
+        Returns the object that this comment is a comment on. Returns None if
+        the object no longer exists.
+        """
+        from django.core.exceptions import ObjectDoesNotExist
+        try:
+            return self.content_type.get_object_for_this_type(pk=self.object_id)
+        except ObjectDoesNotExist:
+            return None
+
+    get_content_object.short_description = _('Content object')
+
+    def _fill_karma_cache(self):
+        """Helper function that populates good/bad karma caches."""
+        good, bad = 0, 0
+        for k in self.karmascore_set:
+            if k.score == -1:
+                bad +=1
+            elif k.score == 1:
+                good +=1
+        self._karma_total_good, self._karma_total_bad = good, bad
+
+    def get_good_karma_total(self):
+        if not hasattr(self, "_karma_total_good"):
+            self._fill_karma_cache()
+        return self._karma_total_good
+
+    def get_bad_karma_total(self):
+        if not hasattr(self, "_karma_total_bad"):
+            self._fill_karma_cache()
+        return self._karma_total_bad
+
+    def get_karma_total(self):
+        if not hasattr(self, "_karma_total_good") or not hasattr(self, "_karma_total_bad"):
+            self._fill_karma_cache()
+        return self._karma_total_good + self._karma_total_bad
+
+    def get_as_text(self):
+        return _('Posted by %(user)s at %(date)s\n\n%(comment)s\n\nhttp://%(domain)s%(url)s') % \
+            {'user': self.user.username, 'date': self.submit_date,
+            'comment': self.comment, 'domain': self.site.domain, 'url': self.get_absolute_url()}
+
+
+class FreeComment(models.Model):
+    """A comment by a non-registered user."""
+    content_type = models.ForeignKey(ContentType)
+    object_id = models.IntegerField(_('object ID'))
+    comment = models.TextField(_('comment'), max_length=3000)
+    person_name = models.CharField(_("person's name"), max_length=50)
+    submit_date = models.DateTimeField(_('date/time submitted'), auto_now_add=True)
+    is_public = models.BooleanField(_('is public'))
+    ip_address = models.IPAddressField(_('ip address'))
+    # TODO: Change this to is_removed, like Comment
+    approved = models.BooleanField(_('approved by staff'))
+    site = models.ForeignKey(Site)
+
+    class Meta:
+        verbose_name = _('free comment')
+        verbose_name_plural = _('free comments')
+        ordering = ('-submit_date',)
+
+    def __unicode__(self):
+        return "%s: %s..." % (self.person_name, self.comment[:100])
+
+    def get_absolute_url(self):
+        try:
+            return self.get_content_object().get_absolute_url() + "#c" + str(self.id)
+        except AttributeError:
+            return ""
+
+    def get_content_object(self):
+        """
+        Returns the object that this comment is a comment on. Returns None if
+        the object no longer exists.
+        """
+        from django.core.exceptions import ObjectDoesNotExist
+        try:
+            return self.content_type.get_object_for_this_type(pk=self.object_id)
+        except ObjectDoesNotExist:
+            return None
+
+    get_content_object.short_description = _('Content object')
+
+
+class KarmaScoreManager(models.Manager):
+    def vote(self, user_id, comment_id, score):
+        try:
+            karma = self.get(comment__pk=comment_id, user__pk=user_id)
+        except self.model.DoesNotExist:
+            karma = self.model(None, user_id=user_id, comment_id=comment_id, score=score, scored_date=datetime.datetime.now())
+            karma.save()
+        else:
+            karma.score = score
+            karma.scored_date = datetime.datetime.now()
+            karma.save()
+
+    def get_pretty_score(self, score):
+        """
+        Given a score between -1 and 1 (inclusive), returns the same score on a
+        scale between 1 and 10 (inclusive), as an integer.
+        """
+        if score is None:
+            return DEFAULT_KARMA
+        return int(round((4.5 * score) + 5.5))
+
+
+class KarmaScore(models.Model):
+    user = models.ForeignKey(User)
+    comment = models.ForeignKey(Comment)
+    score = models.SmallIntegerField(_('score'), db_index=True)
+    scored_date = models.DateTimeField(_('score date'), auto_now=True)
+    objects = KarmaScoreManager()
+
+    class Meta:
+        verbose_name = _('karma score')
+        verbose_name_plural = _('karma scores')
+        unique_together = (('user', 'comment'),)
+
+    def __unicode__(self):
+        return _("%(score)d rating by %(user)s") % {'score': self.score, 'user': self.user}
+
+
+class UserFlagManager(models.Manager):
+    def flag(self, comment, user):
+        """
+        Flags the given comment by the given user. If the comment has already
+        been flagged by the user, or it was a comment posted by the user,
+        nothing happens.
+        """
+        if int(comment.user_id) == int(user.id):
+            return # A user can't flag his own comment. Fail silently.
+        try:
+            f = self.get(user__pk=user.id, comment__pk=comment.id)
+        except self.model.DoesNotExist:
+            from django.core.mail import mail_managers
+            f = self.model(None, user.id, comment.id, None)
+            message = _('This comment was flagged by %(user)s:\n\n%(text)s') % {'user': user.username, 'text': comment.get_as_text()}
+            mail_managers('Comment flagged', message, fail_silently=True)
+            f.save()
+
+
+class UserFlag(models.Model):
+    user = models.ForeignKey(User)
+    comment = models.ForeignKey(Comment)
+    flag_date = models.DateTimeField(_('flag date'), auto_now_add=True)
+    objects = UserFlagManager()
+
+    class Meta:
+        verbose_name = _('user flag')
+        verbose_name_plural = _('user flags')
+        unique_together = (('user', 'comment'),)
+
+    def __unicode__(self):
+        return _("Flag by %r") % self.user
+
+
+class ModeratorDeletion(models.Model):
+    user = models.ForeignKey(User, verbose_name='moderator')
+    comment = models.ForeignKey(Comment)
+    deletion_date = models.DateTimeField(_('deletion date'), auto_now_add=True)
+
+    class Meta:
+        verbose_name = _('moderator deletion')
+        verbose_name_plural = _('moderator deletions')
+        unique_together = (('user', 'comment'),)
+
+    def __unicode__(self):
+        return _("Moderator deletion by %r") % self.user
+        
\ No newline at end of file
diff --git a/webapp/django/contrib/comments/templates/comments/form.html b/webapp/django/contrib/comments/templates/comments/form.html
new file mode 100644
index 0000000..11eaa8d
--- /dev/null
+++ b/webapp/django/contrib/comments/templates/comments/form.html
@@ -0,0 +1,38 @@
+{% load i18n %}
+{% if display_form %}
+<form {% if photos_optional or photos_required %}enctype="multipart/form-data" {% endif %}action="/comments/post/" method="post">
+
+{% if user.is_authenticated %}
+<p>{% trans "Username:" %} <strong>{{ user.username }}</strong> (<a href="{{ logout_url }}">{% trans "Log out" %}</a>)</p>
+{% else %}
+<p><label for="id_username">{% trans "Username:" %}</label> <input type="text" name="username" id="id_username" /><br />{% trans "Password:" %} <input type="password" name="password" id="id_password" /> (<a href="/accounts/password_reset/">{% trans "Forgotten your password?" %}</a>)</p>
+{% endif %}
+
+{% if ratings_optional or ratings_required %}
+<p>{% trans "Ratings" %} ({% if ratings_required %}{% trans "Required" %}{% else %}{% trans "Optional" %}{% endif %}):</p>
+<table>
+<tr><th>&nbsp;</th>{% for value in rating_range %}<th>{{ value }}</th>{% endfor %}</tr>
+{% for rating in rating_choices %}
+<tr><th>{{ rating }}</th>{% for value in rating_range %}<th><input type="radio" name="rating{{ forloop.parentloop.counter }}" value="{{ value }}" /></th>{% endfor %}</tr>
+{% endfor %}
+</table>
+<input type="hidden" name="rating_options" value="{{ rating_options }}" />
+{% endif %}
+
+{% if photos_optional or photos_required %}
+<p><label for="id_photo">{% trans "Post a photo" %}</label> ({% if photos_required %}{% trans "Required" %}{% else %}{% trans "Optional" %}{% endif %}):
+<input type="file" name="photo" id="id_photo" /></p>
+<input type="hidden" name="photo_options" value="{{ photo_options }}" />
+{% endif %}
+
+<p><label for="id_comment">{% trans "Comment:" %}</label><br />
+<textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
+
+<p>
+<input type="hidden" name="options" value="{{ options }}" />
+<input type="hidden" name="target" value="{{ target }}" />
+<input type="hidden" name="gonzo" value="{{ hash }}" />
+<input type="submit" name="preview" value="{% trans "Preview comment" %}" />
+</p>
+</form>
+{% endif %}
diff --git a/webapp/django/contrib/comments/templates/comments/freeform.html b/webapp/django/contrib/comments/templates/comments/freeform.html
new file mode 100644
index 0000000..f0d00b9
--- /dev/null
+++ b/webapp/django/contrib/comments/templates/comments/freeform.html
@@ -0,0 +1,13 @@
+{% load i18n %}
+{% if display_form %}
+<form action="/comments/postfree/" method="post">
+<p><label for="id_person_name">{% trans "Your name:" %}</label> <input type="text" id="id_person_name" name="person_name" /></p>
+<p><label for="id_comment">{% trans "Comment:" %}</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
+<p>
+<input type="hidden" name="options" value="{{ options }}" />
+<input type="hidden" name="target" value="{{ target }}" />
+<input type="hidden" name="gonzo" value="{{ hash }}" />
+<input type="submit" name="preview" value="{% trans "Preview comment" %}" />
+</p>
+</form>
+{% endif %}
diff --git a/webapp/django/contrib/comments/templatetags/__init__.py b/webapp/django/contrib/comments/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/comments/templatetags/__init__.py
diff --git a/webapp/django/contrib/comments/templatetags/comments.py b/webapp/django/contrib/comments/templatetags/comments.py
new file mode 100644
index 0000000..959cec4
--- /dev/null
+++ b/webapp/django/contrib/comments/templatetags/comments.py
@@ -0,0 +1,332 @@
+from django.contrib.comments.models import Comment, FreeComment
+from django.contrib.comments.models import PHOTOS_REQUIRED, PHOTOS_OPTIONAL, RATINGS_REQUIRED, RATINGS_OPTIONAL, IS_PUBLIC
+from django.contrib.comments.models import MIN_PHOTO_DIMENSION, MAX_PHOTO_DIMENSION
+from django import template
+from django.template import loader
+from django.core.exceptions import ObjectDoesNotExist
+from django.contrib.contenttypes.models import ContentType
+from django.utils.encoding import smart_str
+import re
+
+register = template.Library()
+
+COMMENT_FORM = 'comments/form.html'
+FREE_COMMENT_FORM = 'comments/freeform.html'
+
+class CommentFormNode(template.Node):
+    def __init__(self, content_type, obj_id_lookup_var, obj_id, free,
+        photos_optional=False, photos_required=False, photo_options='',
+        ratings_optional=False, ratings_required=False, rating_options='',
+        is_public=True):
+        self.content_type = content_type
+        if obj_id_lookup_var is not None:
+            obj_id_lookup_var = template.Variable(obj_id_lookup_var)
+        self.obj_id_lookup_var, self.obj_id, self.free = obj_id_lookup_var, obj_id, free
+        self.photos_optional, self.photos_required = photos_optional, photos_required
+        self.ratings_optional, self.ratings_required = ratings_optional, ratings_required
+        self.photo_options, self.rating_options = photo_options, rating_options
+        self.is_public = is_public
+
+    def render(self, context):
+        from django.conf import settings
+        from django.utils.text import normalize_newlines
+        import base64
+        context.push()
+        if self.obj_id_lookup_var is not None:
+            try:
+                self.obj_id = self.obj_id_lookup_var.resolve(context)
+            except template.VariableDoesNotExist:
+                return ''
+            # Validate that this object ID is valid for this content-type.
+            # We only have to do this validation if obj_id_lookup_var is provided,
+            # because do_comment_form() validates hard-coded object IDs.
+            try:
+                self.content_type.get_object_for_this_type(pk=self.obj_id)
+            except ObjectDoesNotExist:
+                context['display_form'] = False
+            else:
+                context['display_form'] = True
+        else:
+            context['display_form'] = True
+        context['target'] = '%s:%s' % (self.content_type.id, self.obj_id)
+        options = []
+        for var, abbr in (('photos_required', PHOTOS_REQUIRED),
+                          ('photos_optional', PHOTOS_OPTIONAL),
+                          ('ratings_required', RATINGS_REQUIRED),
+                          ('ratings_optional', RATINGS_OPTIONAL),
+                          ('is_public', IS_PUBLIC)):
+            context[var] = getattr(self, var)
+            if getattr(self, var):
+                options.append(abbr)
+        context['options'] = ','.join(options)
+        if self.free:
+            context['hash'] = Comment.objects.get_security_hash(context['options'], '', '', context['target'])
+            default_form = loader.get_template(FREE_COMMENT_FORM)
+        else:
+            context['photo_options'] = self.photo_options
+            context['rating_options'] = normalize_newlines(base64.encodestring(self.rating_options).strip())
+            if self.rating_options:
+                context['rating_range'], context['rating_choices'] = Comment.objects.get_rating_options(self.rating_options)
+            context['hash'] = Comment.objects.get_security_hash(context['options'], context['photo_options'], context['rating_options'], context['target'])
+            context['logout_url'] = settings.LOGOUT_URL
+            default_form = loader.get_template(COMMENT_FORM)
+        output = default_form.render(context)
+        context.pop()
+        return output
+
+class CommentCountNode(template.Node):
+    def __init__(self, package, module, context_var_name, obj_id, var_name, free):
+        self.package, self.module = package, module
+        if context_var_name is not None:
+            context_var_name = template.Variable(context_var_name)
+        self.context_var_name, self.obj_id = context_var_name, obj_id
+        self.var_name, self.free = var_name, free
+
+    def render(self, context):
+        from django.conf import settings
+        manager = self.free and FreeComment.objects or Comment.objects
+        if self.context_var_name is not None:
+            self.obj_id = self.context_var_name.resolve(context)
+        comment_count = manager.filter(object_id__exact=self.obj_id,
+            content_type__app_label__exact=self.package,
+            content_type__model__exact=self.module, site__id__exact=settings.SITE_ID).count()
+        context[self.var_name] = comment_count
+        return ''
+
+class CommentListNode(template.Node):
+    def __init__(self, package, module, context_var_name, obj_id, var_name, free, ordering, extra_kwargs=None):
+        self.package, self.module = package, module
+        if context_var_name is not None:
+            context_var_name = template.Variable(context_var_name)
+        self.context_var_name, self.obj_id = context_var_name, obj_id
+        self.var_name, self.free = var_name, free
+        self.ordering = ordering
+        self.extra_kwargs = extra_kwargs or {}
+
+    def render(self, context):
+        from django.conf import settings
+        get_list_function = self.free and FreeComment.objects.filter or Comment.objects.get_list_with_karma
+        if self.context_var_name is not None:
+            try:
+                self.obj_id = self.context_var_name.resolve(context)
+            except template.VariableDoesNotExist:
+                return ''
+        kwargs = {
+            'object_id__exact': self.obj_id,
+            'content_type__app_label__exact': self.package,
+            'content_type__model__exact': self.module,
+            'site__id__exact': settings.SITE_ID,
+        }
+        kwargs.update(self.extra_kwargs)
+        comment_list = get_list_function(**kwargs).order_by(self.ordering + 'submit_date').select_related()
+        if not self.free and settings.COMMENTS_BANNED_USERS_GROUP:
+            comment_list = comment_list.extra(select={'is_hidden': 'user_id IN (SELECT user_id FROM auth_user_groups WHERE group_id = %s)' % settings.COMMENTS_BANNED_USERS_GROUP})
+
+        if not self.free:
+            if 'user' in context and context['user'].is_authenticated():
+                user_id = context['user'].id
+                context['user_can_moderate_comments'] = Comment.objects.user_is_moderator(context['user'])
+            else:
+                user_id = None
+                context['user_can_moderate_comments'] = False
+            # Only display comments by banned users to those users themselves.
+            if settings.COMMENTS_BANNED_USERS_GROUP:
+                comment_list = [c for c in comment_list if not c.is_hidden or (user_id == c.user_id)]
+
+        context[self.var_name] = comment_list
+        return ''
+
+class DoCommentForm:
+    """
+    Displays a comment form for the given params.
+
+    Syntax::
+
+        {% comment_form for [pkg].[py_module_name] [context_var_containing_obj_id] with [list of options] %}
+
+    Example usage::
+
+        {% comment_form for lcom.eventtimes event.id with is_public yes photos_optional thumbs,200,400 ratings_optional scale:1-5|first_option|second_option %}
+
+    ``[context_var_containing_obj_id]`` can be a hard-coded integer or a variable containing the ID.
+    """
+    def __init__(self, free):
+        self.free = free
+
+    def __call__(self, parser, token):
+        tokens = token.contents.split()
+        if len(tokens) < 4:
+            raise template.TemplateSyntaxError, "%r tag requires at least 3 arguments" % tokens[0]
+        if tokens[1] != 'for':
+            raise template.TemplateSyntaxError, "Second argument in %r tag must be 'for'" % tokens[0]
+        try:
+            package, module = tokens[2].split('.')
+        except ValueError: # unpack list of wrong size
+            raise template.TemplateSyntaxError, "Third argument in %r tag must be in the format 'package.module'" % tokens[0]
+        try:
+            content_type = ContentType.objects.get(app_label__exact=package, model__exact=module)
+        except ContentType.DoesNotExist:
+            raise template.TemplateSyntaxError, "%r tag has invalid content-type '%s.%s'" % (tokens[0], package, module)
+        obj_id_lookup_var, obj_id = None, None
+        if tokens[3].isdigit():
+            obj_id = tokens[3]
+            try: # ensure the object ID is valid
+                content_type.get_object_for_this_type(pk=obj_id)
+            except ObjectDoesNotExist:
+                raise template.TemplateSyntaxError, "%r tag refers to %s object with ID %s, which doesn't exist" % (tokens[0], content_type.name, obj_id)
+        else:
+            obj_id_lookup_var = tokens[3]
+        kwargs = {}
+        if len(tokens) > 4:
+            if tokens[4] != 'with':
+                raise template.TemplateSyntaxError, "Fourth argument in %r tag must be 'with'" % tokens[0]
+            for option, args in zip(tokens[5::2], tokens[6::2]):
+                option = smart_str(option)
+                if option in ('photos_optional', 'photos_required') and not self.free:
+                    # VALIDATION ##############################################
+                    option_list = args.split(',')
+                    if len(option_list) % 3 != 0:
+                        raise template.TemplateSyntaxError, "Incorrect number of comma-separated arguments to %r tag" % tokens[0]
+                    for opt in option_list[::3]:
+                        if not opt.isalnum():
+                            raise template.TemplateSyntaxError, "Invalid photo directory name in %r tag: '%s'" % (tokens[0], opt)
+                    for opt in option_list[1::3] + option_list[2::3]:
+                        if not opt.isdigit() or not (MIN_PHOTO_DIMENSION <= int(opt) <= MAX_PHOTO_DIMENSION):
+                            raise template.TemplateSyntaxError, "Invalid photo dimension in %r tag: '%s'. Only values between %s and %s are allowed." % (tokens[0], opt, MIN_PHOTO_DIMENSION, MAX_PHOTO_DIMENSION)
+                    # VALIDATION ENDS #########################################
+                    kwargs[option] = True
+                    kwargs['photo_options'] = args
+                elif option in ('ratings_optional', 'ratings_required') and not self.free:
+                    # VALIDATION ##############################################
+                    if 2 < len(args.split('|')) > 9:
+                        raise template.TemplateSyntaxError, "Incorrect number of '%s' options in %r tag. Use between 2 and 8." % (option, tokens[0])
+                    if re.match('^scale:\d+\-\d+\:$', args.split('|')[0]):
+                        raise template.TemplateSyntaxError, "Invalid 'scale' in %r tag's '%s' options" % (tokens[0], option)
+                    # VALIDATION ENDS #########################################
+                    kwargs[option] = True
+                    kwargs['rating_options'] = args
+                elif option in ('is_public'):
+                    kwargs[option] = (args == 'true')
+                else:
+                    raise template.TemplateSyntaxError, "%r tag got invalid parameter '%s'" % (tokens[0], option)
+        return CommentFormNode(content_type, obj_id_lookup_var, obj_id, self.free, **kwargs)
+
+class DoCommentCount:
+    """
+    Gets comment count for the given params and populates the template context
+    with a variable containing that value, whose name is defined by the 'as'
+    clause.
+
+    Syntax::
+
+        {% get_comment_count for [pkg].[py_module_name] [context_var_containing_obj_id] as [varname]  %}
+
+    Example usage::
+
+        {% get_comment_count for lcom.eventtimes event.id as comment_count %}
+
+    Note: ``[context_var_containing_obj_id]`` can also be a hard-coded integer, like this::
+
+        {% get_comment_count for lcom.eventtimes 23 as comment_count %}
+    """
+    def __init__(self, free):
+        self.free = free
+
+    def __call__(self, parser, token):
+        tokens = token.contents.split()
+        # Now tokens is a list like this:
+        # ['get_comment_list', 'for', 'lcom.eventtimes', 'event.id', 'as', 'comment_list']
+        if len(tokens) != 6:
+            raise template.TemplateSyntaxError, "%r tag requires 5 arguments" % tokens[0]
+        if tokens[1] != 'for':
+            raise template.TemplateSyntaxError, "Second argument in %r tag must be 'for'" % tokens[0]
+        try:
+            package, module = tokens[2].split('.')
+        except ValueError: # unpack list of wrong size
+            raise template.TemplateSyntaxError, "Third argument in %r tag must be in the format 'package.module'" % tokens[0]
+        try:
+            content_type = ContentType.objects.get(app_label__exact=package, model__exact=module)
+        except ContentType.DoesNotExist:
+            raise template.TemplateSyntaxError, "%r tag has invalid content-type '%s.%s'" % (tokens[0], package, module)
+        var_name, obj_id = None, None
+        if tokens[3].isdigit():
+            obj_id = tokens[3]
+            try: # ensure the object ID is valid
+                content_type.get_object_for_this_type(pk=obj_id)
+            except ObjectDoesNotExist:
+                raise template.TemplateSyntaxError, "%r tag refers to %s object with ID %s, which doesn't exist" % (tokens[0], content_type.name, obj_id)
+        else:
+            var_name = tokens[3]
+        if tokens[4] != 'as':
+            raise template.TemplateSyntaxError, "Fourth argument in %r must be 'as'" % tokens[0]
+        return CommentCountNode(package, module, var_name, obj_id, tokens[5], self.free)
+
+class DoGetCommentList:
+    """
+    Gets comments for the given params and populates the template context with a
+    special comment_package variable, whose name is defined by the ``as``
+    clause.
+
+    Syntax::
+
+        {% get_comment_list for [pkg].[py_module_name] [context_var_containing_obj_id] as [varname] (reversed) %}
+
+    Example usage::
+
+        {% get_comment_list for lcom.eventtimes event.id as comment_list %}
+
+    Note: ``[context_var_containing_obj_id]`` can also be a hard-coded integer, like this::
+
+        {% get_comment_list for lcom.eventtimes 23 as comment_list %}
+
+    To get a list of comments in reverse order -- that is, most recent first --
+    pass ``reversed`` as the last param::
+
+        {% get_comment_list for lcom.eventtimes event.id as comment_list reversed %}
+    """
+    def __init__(self, free):
+        self.free = free
+
+    def __call__(self, parser, token):
+        tokens = token.contents.split()
+        # Now tokens is a list like this:
+        # ['get_comment_list', 'for', 'lcom.eventtimes', 'event.id', 'as', 'comment_list']
+        if not len(tokens) in (6, 7):
+            raise template.TemplateSyntaxError, "%r tag requires 5 or 6 arguments" % tokens[0]
+        if tokens[1] != 'for':
+            raise template.TemplateSyntaxError, "Second argument in %r tag must be 'for'" % tokens[0]
+        try:
+            package, module = tokens[2].split('.')
+        except ValueError: # unpack list of wrong size
+            raise template.TemplateSyntaxError, "Third argument in %r tag must be in the format 'package.module'" % tokens[0]
+        try:
+            content_type = ContentType.objects.get(app_label__exact=package,model__exact=module)
+        except ContentType.DoesNotExist:
+            raise template.TemplateSyntaxError, "%r tag has invalid content-type '%s.%s'" % (tokens[0], package, module)
+        var_name, obj_id = None, None
+        if tokens[3].isdigit():
+            obj_id = tokens[3]
+            try: # ensure the object ID is valid
+                content_type.get_object_for_this_type(pk=obj_id)
+            except ObjectDoesNotExist:
+                raise template.TemplateSyntaxError, "%r tag refers to %s object with ID %s, which doesn't exist" % (tokens[0], content_type.name, obj_id)
+        else:
+            var_name = tokens[3]
+        if tokens[4] != 'as':
+            raise template.TemplateSyntaxError, "Fourth argument in %r must be 'as'" % tokens[0]
+        if len(tokens) == 7:
+            if tokens[6] != 'reversed':
+                raise template.TemplateSyntaxError, "Final argument in %r must be 'reversed' if given" % tokens[0]
+            ordering = "-"
+        else:
+            ordering = ""
+        return CommentListNode(package, module, var_name, obj_id, tokens[5], self.free, ordering)
+
+# registration comments
+register.tag('get_comment_list', DoGetCommentList(False))
+register.tag('comment_form', DoCommentForm(False))
+register.tag('get_comment_count', DoCommentCount(False))
+# free comments
+register.tag('get_free_comment_list', DoGetCommentList(True))
+register.tag('free_comment_form', DoCommentForm(True))
+register.tag('get_free_comment_count', DoCommentCount(True))
diff --git a/webapp/django/contrib/comments/tests.py b/webapp/django/contrib/comments/tests.py
new file mode 100644
index 0000000..a8275de
--- /dev/null
+++ b/webapp/django/contrib/comments/tests.py
@@ -0,0 +1,13 @@
+# coding: utf-8
+
+r"""
+>>> from django.contrib.comments.models import Comment
+>>> from django.contrib.auth.models import User
+>>> u = User.objects.create_user('commenttestuser', 'commenttest@example.com', 'testpw')
+>>> c = Comment(user=u, comment=u'\xe2')
+>>> c
+<Comment: commenttestuser: â...>
+>>> print c
+commenttestuser: â...
+"""
+
diff --git a/webapp/django/contrib/comments/urls/__init__.py b/webapp/django/contrib/comments/urls/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/comments/urls/__init__.py
diff --git a/webapp/django/contrib/comments/urls/comments.py b/webapp/django/contrib/comments/urls/comments.py
new file mode 100644
index 0000000..bbb4c43
--- /dev/null
+++ b/webapp/django/contrib/comments/urls/comments.py
@@ -0,0 +1,12 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('django.contrib.comments.views',
+    (r'^post/$', 'comments.post_comment'),
+    (r'^postfree/$', 'comments.post_free_comment'),
+    (r'^posted/$', 'comments.comment_was_posted'),
+    (r'^karma/vote/(?P<comment_id>\d+)/(?P<vote>up|down)/$', 'karma.vote'),
+    (r'^flag/(?P<comment_id>\d+)/$', 'userflags.flag'),
+    (r'^flag/(?P<comment_id>\d+)/done/$', 'userflags.flag_done'),
+    (r'^delete/(?P<comment_id>\d+)/$', 'userflags.delete'),
+    (r'^delete/(?P<comment_id>\d+)/done/$', 'userflags.delete_done'),
+)
diff --git a/webapp/django/contrib/comments/views/__init__.py b/webapp/django/contrib/comments/views/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/comments/views/__init__.py
diff --git a/webapp/django/contrib/comments/views/comments.py b/webapp/django/contrib/comments/views/comments.py
new file mode 100644
index 0000000..ba59cba
--- /dev/null
+++ b/webapp/django/contrib/comments/views/comments.py
@@ -0,0 +1,393 @@
+import base64
+import datetime
+
+from django.core import validators
+from django import oldforms
+from django.core.mail import mail_admins, mail_managers
+from django.http import Http404
+from django.core.exceptions import ObjectDoesNotExist
+from django.shortcuts import render_to_response
+from django.template import RequestContext
+from django.contrib.comments.models import Comment, FreeComment, RATINGS_REQUIRED, RATINGS_OPTIONAL, IS_PUBLIC
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.auth import authenticate
+from django.http import HttpResponseRedirect
+from django.utils.text import normalize_newlines
+from django.conf import settings
+from django.utils.translation import ungettext, ugettext as _
+from django.utils.encoding import smart_unicode
+
+COMMENTS_PER_PAGE = 20
+
+# TODO: This is a copy of the manipulator-based form that used to live in
+# contrib.auth.forms.  It should be replaced with the newforms version that
+# has now been added to contrib.auth.forms when the comments app gets updated
+# for newforms.
+
+class AuthenticationForm(oldforms.Manipulator):
+    """
+    Base class for authenticating users. Extend this to get a form that accepts
+    username/password logins.
+    """
+    def __init__(self, request=None):
+        """
+        If request is passed in, the manipulator will validate that cookies are
+        enabled. Note that the request (a HttpRequest object) must have set a
+        cookie with the key TEST_COOKIE_NAME and value TEST_COOKIE_VALUE before
+        running this validator.
+        """
+        self.request = request
+        self.fields = [
+            oldforms.TextField(field_name="username", length=15, max_length=30, is_required=True,
+                validator_list=[self.isValidUser, self.hasCookiesEnabled]),
+            oldforms.PasswordField(field_name="password", length=15, max_length=30, is_required=True),
+        ]
+        self.user_cache = None
+
+    def hasCookiesEnabled(self, field_data, all_data):
+        if self.request and not self.request.session.test_cookie_worked():
+            raise validators.ValidationError, _("Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in.")
+
+    def isValidUser(self, field_data, all_data):
+        username = field_data
+        password = all_data.get('password', None)
+        self.user_cache = authenticate(username=username, password=password)
+        if self.user_cache is None:
+            raise validators.ValidationError, _("Please enter a correct username and password. Note that both fields are case-sensitive.")
+        elif not self.user_cache.is_active:
+            raise validators.ValidationError, _("This account is inactive.")
+
+    def get_user_id(self):
+        if self.user_cache:
+            return self.user_cache.id
+        return None
+
+    def get_user(self):
+        return self.user_cache
+
+class PublicCommentManipulator(AuthenticationForm):
+    "Manipulator that handles public registered comments"
+    def __init__(self, user, ratings_required, ratings_range, num_rating_choices):
+        AuthenticationForm.__init__(self)
+        self.ratings_range, self.num_rating_choices = ratings_range, num_rating_choices
+        choices = [(c, c) for c in ratings_range]
+        def get_validator_list(rating_num):
+            if rating_num <= num_rating_choices:
+                return [validators.RequiredIfOtherFieldsGiven(['rating%d' % i for i in range(1, 9) if i != rating_num], _("This rating is required because you've entered at least one other rating."))]
+            else:
+                return []
+        self.fields.extend([
+            oldforms.LargeTextField(field_name="comment", max_length=3000, is_required=True,
+                validator_list=[self.hasNoProfanities]),
+            oldforms.RadioSelectField(field_name="rating1", choices=choices,
+                is_required=ratings_required and num_rating_choices > 0,
+                validator_list=get_validator_list(1),
+            ),
+            oldforms.RadioSelectField(field_name="rating2", choices=choices,
+                is_required=ratings_required and num_rating_choices > 1,
+                validator_list=get_validator_list(2),
+            ),
+            oldforms.RadioSelectField(field_name="rating3", choices=choices,
+                is_required=ratings_required and num_rating_choices > 2,
+                validator_list=get_validator_list(3),
+            ),
+            oldforms.RadioSelectField(field_name="rating4", choices=choices,
+                is_required=ratings_required and num_rating_choices > 3,
+                validator_list=get_validator_list(4),
+            ),
+            oldforms.RadioSelectField(field_name="rating5", choices=choices,
+                is_required=ratings_required and num_rating_choices > 4,
+                validator_list=get_validator_list(5),
+            ),
+            oldforms.RadioSelectField(field_name="rating6", choices=choices,
+                is_required=ratings_required and num_rating_choices > 5,
+                validator_list=get_validator_list(6),
+            ),
+            oldforms.RadioSelectField(field_name="rating7", choices=choices,
+                is_required=ratings_required and num_rating_choices > 6,
+                validator_list=get_validator_list(7),
+            ),
+            oldforms.RadioSelectField(field_name="rating8", choices=choices,
+                is_required=ratings_required and num_rating_choices > 7,
+                validator_list=get_validator_list(8),
+            ),
+        ])
+        if user.is_authenticated():
+            self["username"].is_required = False
+            self["username"].validator_list = []
+            self["password"].is_required = False
+            self["password"].validator_list = []
+            self.user_cache = user
+
+    def hasNoProfanities(self, field_data, all_data):
+        if settings.COMMENTS_ALLOW_PROFANITIES:
+            return
+        return validators.hasNoProfanities(field_data, all_data)
+
+    def get_comment(self, new_data):
+        "Helper function"
+        return Comment(None, self.get_user_id(), new_data["content_type_id"],
+            new_data["object_id"], new_data.get("headline", "").strip(),
+            new_data["comment"].strip(), new_data.get("rating1", None),
+            new_data.get("rating2", None), new_data.get("rating3", None),
+            new_data.get("rating4", None), new_data.get("rating5", None),
+            new_data.get("rating6", None), new_data.get("rating7", None),
+            new_data.get("rating8", None), new_data.get("rating1", None) is not None,
+            datetime.datetime.now(), new_data["is_public"], new_data["ip_address"], False, settings.SITE_ID)
+
+    def save(self, new_data):
+        today = datetime.date.today()
+        c = self.get_comment(new_data)
+        for old in Comment.objects.filter(content_type__id__exact=new_data["content_type_id"],
+            object_id__exact=new_data["object_id"], user__id__exact=self.get_user_id()):
+            # Check that this comment isn't duplicate. (Sometimes people post
+            # comments twice by mistake.) If it is, fail silently by pretending
+            # the comment was posted successfully.
+            if old.submit_date.date() == today and old.comment == c.comment \
+                and old.rating1 == c.rating1 and old.rating2 == c.rating2 \
+                and old.rating3 == c.rating3 and old.rating4 == c.rating4 \
+                and old.rating5 == c.rating5 and old.rating6 == c.rating6 \
+                and old.rating7 == c.rating7 and old.rating8 == c.rating8:
+                return old
+            # If the user is leaving a rating, invalidate all old ratings.
+            if c.rating1 is not None:
+                old.valid_rating = False
+                old.save()
+        c.save()
+        # If the commentor has posted fewer than COMMENTS_FIRST_FEW comments,
+        # send the comment to the managers.
+        if self.user_cache.comment_set.count() <= settings.COMMENTS_FIRST_FEW:
+            message = ungettext('This comment was posted by a user who has posted fewer than %(count)s comment:\n\n%(text)s',
+                'This comment was posted by a user who has posted fewer than %(count)s comments:\n\n%(text)s', settings.COMMENTS_FIRST_FEW) % \
+                {'count': settings.COMMENTS_FIRST_FEW, 'text': c.get_as_text()}
+            mail_managers("Comment posted by rookie user", message)
+        if settings.COMMENTS_SKETCHY_USERS_GROUP and settings.COMMENTS_SKETCHY_USERS_GROUP in [g.id for g in self.user_cache.groups.all()]:
+            message = _('This comment was posted by a sketchy user:\n\n%(text)s') % {'text': c.get_as_text()}
+            mail_managers("Comment posted by sketchy user (%s)" % self.user_cache.username, c.get_as_text())
+        return c
+
+class PublicFreeCommentManipulator(oldforms.Manipulator):
+    "Manipulator that handles public free (unregistered) comments"
+    def __init__(self):
+        self.fields = (
+            oldforms.TextField(field_name="person_name", max_length=50, is_required=True,
+                validator_list=[self.hasNoProfanities]),
+            oldforms.LargeTextField(field_name="comment", max_length=3000, is_required=True,
+                validator_list=[self.hasNoProfanities]),
+        )
+
+    def hasNoProfanities(self, field_data, all_data):
+        if settings.COMMENTS_ALLOW_PROFANITIES:
+            return
+        return validators.hasNoProfanities(field_data, all_data)
+
+    def get_comment(self, new_data):
+        "Helper function"
+        return FreeComment(None, new_data["content_type_id"],
+            new_data["object_id"], new_data["comment"].strip(),
+            new_data["person_name"].strip(), datetime.datetime.now(), new_data["is_public"],
+            new_data["ip_address"], False, settings.SITE_ID)
+
+    def save(self, new_data):
+        today = datetime.date.today()
+        c = self.get_comment(new_data)
+        # Check that this comment isn't duplicate. (Sometimes people post
+        # comments twice by mistake.) If it is, fail silently by pretending
+        # the comment was posted successfully.
+        for old_comment in FreeComment.objects.filter(content_type__id__exact=new_data["content_type_id"],
+            object_id__exact=new_data["object_id"], person_name__exact=new_data["person_name"],
+            submit_date__year=today.year, submit_date__month=today.month,
+            submit_date__day=today.day):
+            if old_comment.comment == c.comment:
+                return old_comment
+        c.save()
+        return c
+
+def post_comment(request, extra_context=None, context_processors=None):
+    """
+    Post a comment
+
+    Redirects to the `comments.comments.comment_was_posted` view upon success.
+
+    Templates: `comment_preview`
+    Context:
+        comment
+            the comment being posted
+        comment_form
+            the comment form
+        options
+            comment options
+        target
+            comment target
+        hash
+            security hash (must be included in a posted form to succesfully
+            post a comment).
+        rating_options
+            comment ratings options
+        ratings_optional
+            are ratings optional?
+        ratings_required
+            are ratings required?
+        rating_range
+            range of ratings
+        rating_choices
+            choice of ratings
+    """
+    if extra_context is None: extra_context = {}
+    if not request.POST:
+        raise Http404, _("Only POSTs are allowed")
+    try:
+        options, target, security_hash = request.POST['options'], request.POST['target'], request.POST['gonzo']
+    except KeyError:
+        raise Http404, _("One or more of the required fields wasn't submitted")
+    photo_options = request.POST.get('photo_options', '')
+    rating_options = normalize_newlines(request.POST.get('rating_options', ''))
+    if Comment.objects.get_security_hash(options, photo_options, rating_options, target) != security_hash:
+        raise Http404, _("Somebody tampered with the comment form (security violation)")
+    # Now we can be assured the data is valid.
+    if rating_options:
+        rating_range, rating_choices = Comment.objects.get_rating_options(base64.decodestring(rating_options))
+    else:
+        rating_range, rating_choices = [], []
+    content_type_id, object_id = target.split(':') # target is something like '52:5157'
+    try:
+        obj = ContentType.objects.get(pk=content_type_id).get_object_for_this_type(pk=object_id)
+    except ObjectDoesNotExist:
+        raise Http404, _("The comment form had an invalid 'target' parameter -- the object ID was invalid")
+    option_list = options.split(',') # options is something like 'pa,ra'
+    new_data = request.POST.copy()
+    new_data['content_type_id'] = content_type_id
+    new_data['object_id'] = object_id
+    new_data['ip_address'] = request.META.get('REMOTE_ADDR')
+    new_data['is_public'] = IS_PUBLIC in option_list
+    manipulator = PublicCommentManipulator(request.user,
+        ratings_required=RATINGS_REQUIRED in option_list,
+        ratings_range=rating_range,
+        num_rating_choices=len(rating_choices))
+    errors = manipulator.get_validation_errors(new_data)
+    # If user gave correct username/password and wasn't already logged in, log them in
+    # so they don't have to enter a username/password again.
+    if manipulator.get_user() and not manipulator.get_user().is_authenticated() and 'password' in new_data and manipulator.get_user().check_password(new_data['password']):
+        from django.contrib.auth import login
+        login(request, manipulator.get_user())
+    if errors or 'preview' in request.POST:
+        class CommentFormWrapper(oldforms.FormWrapper):
+            def __init__(self, manipulator, new_data, errors, rating_choices):
+                oldforms.FormWrapper.__init__(self, manipulator, new_data, errors)
+                self.rating_choices = rating_choices
+            def ratings(self):
+                field_list = [self['rating%d' % (i+1)] for i in range(len(rating_choices))]
+                for i, f in enumerate(field_list):
+                    f.choice = rating_choices[i]
+                return field_list
+        comment = errors and '' or manipulator.get_comment(new_data)
+        comment_form = CommentFormWrapper(manipulator, new_data, errors, rating_choices)
+        return render_to_response('comments/preview.html', {
+            'comment': comment,
+            'comment_form': comment_form,
+            'options': options,
+            'target': target,
+            'hash': security_hash,
+            'rating_options': rating_options,
+            'ratings_optional': RATINGS_OPTIONAL in option_list,
+            'ratings_required': RATINGS_REQUIRED in option_list,
+            'rating_range': rating_range,
+            'rating_choices': rating_choices,
+        }, context_instance=RequestContext(request, extra_context, context_processors))
+    elif 'post' in request.POST:
+        # If the IP is banned, mail the admins, do NOT save the comment, and
+        # serve up the "Thanks for posting" page as if the comment WAS posted.
+        if request.META['REMOTE_ADDR'] in settings.BANNED_IPS:
+            mail_admins("Banned IP attempted to post comment", smart_unicode(request.POST) + "\n\n" + str(request.META))
+        else:
+            manipulator.do_html2python(new_data)
+            comment = manipulator.save(new_data)
+        return HttpResponseRedirect("../posted/?c=%s:%s" % (content_type_id, object_id))
+    else:
+        raise Http404, _("The comment form didn't provide either 'preview' or 'post'")
+
+def post_free_comment(request, extra_context=None, context_processors=None):
+    """
+    Post a free comment (not requiring a log in)
+
+    Redirects to `comments.comments.comment_was_posted` view on success.
+
+    Templates: `comment_free_preview`
+    Context:
+        comment
+            comment being posted
+        comment_form
+            comment form object
+        options
+            comment options
+        target
+            comment target
+        hash
+            security hash (must be included in a posted form to succesfully
+            post a comment).
+    """
+    if extra_context is None: extra_context = {}
+    if not request.POST:
+        raise Http404, _("Only POSTs are allowed")
+    try:
+        options, target, security_hash = request.POST['options'], request.POST['target'], request.POST['gonzo']
+    except KeyError:
+        raise Http404, _("One or more of the required fields wasn't submitted")
+    if Comment.objects.get_security_hash(options, '', '', target) != security_hash:
+        raise Http404, _("Somebody tampered with the comment form (security violation)")
+    content_type_id, object_id = target.split(':') # target is something like '52:5157'
+    content_type = ContentType.objects.get(pk=content_type_id)
+    try:
+        obj = content_type.get_object_for_this_type(pk=object_id)
+    except ObjectDoesNotExist:
+        raise Http404, _("The comment form had an invalid 'target' parameter -- the object ID was invalid")
+    option_list = options.split(',')
+    new_data = request.POST.copy()
+    new_data['content_type_id'] = content_type_id
+    new_data['object_id'] = object_id
+    new_data['ip_address'] = request.META['REMOTE_ADDR']
+    new_data['is_public'] = IS_PUBLIC in option_list
+    manipulator = PublicFreeCommentManipulator()
+    errors = manipulator.get_validation_errors(new_data)
+    if errors or 'preview' in request.POST:
+        comment = errors and '' or manipulator.get_comment(new_data)
+        return render_to_response('comments/free_preview.html', {
+            'comment': comment,
+            'comment_form': oldforms.FormWrapper(manipulator, new_data, errors),
+            'options': options,
+            'target': target,
+            'hash': security_hash,
+        }, context_instance=RequestContext(request, extra_context, context_processors))
+    elif 'post' in request.POST:
+        # If the IP is banned, mail the admins, do NOT save the comment, and
+        # serve up the "Thanks for posting" page as if the comment WAS posted.
+        if request.META['REMOTE_ADDR'] in settings.BANNED_IPS:
+            from django.core.mail import mail_admins
+            mail_admins("Practical joker", smart_unicode(request.POST) + "\n\n" + str(request.META))
+        else:
+            manipulator.do_html2python(new_data)
+            comment = manipulator.save(new_data)
+        return HttpResponseRedirect("../posted/?c=%s:%s" % (content_type_id, object_id))
+    else:
+        raise Http404, _("The comment form didn't provide either 'preview' or 'post'")
+
+def comment_was_posted(request, extra_context=None, context_processors=None):
+    """
+    Display "comment was posted" success page
+
+    Templates: `comment_posted`
+    Context:
+        object
+            The object the comment was posted on
+    """
+    if extra_context is None: extra_context = {}
+    obj = None
+    if 'c' in request.GET:
+        content_type_id, object_id = request.GET['c'].split(':')
+        try:
+            content_type = ContentType.objects.get(pk=content_type_id)
+            obj = content_type.get_object_for_this_type(pk=object_id)
+        except ObjectDoesNotExist:
+            pass
+    return render_to_response('comments/posted.html', {'object': obj},
+        context_instance=RequestContext(request, extra_context, context_processors))
diff --git a/webapp/django/contrib/comments/views/karma.py b/webapp/django/contrib/comments/views/karma.py
new file mode 100644
index 0000000..7c0e284
--- /dev/null
+++ b/webapp/django/contrib/comments/views/karma.py
@@ -0,0 +1,32 @@
+from django.http import Http404
+from django.shortcuts import render_to_response
+from django.template import RequestContext
+from django.contrib.comments.models import Comment, KarmaScore
+from django.utils.translation import ugettext as _
+
+def vote(request, comment_id, vote, extra_context=None, context_processors=None):
+    """
+    Rate a comment (+1 or -1)
+
+    Templates: `karma_vote_accepted`
+    Context:
+        comment
+            `comments.comments` object being rated
+    """
+    if extra_context is None: extra_context = {}
+    rating = {'up': 1, 'down': -1}.get(vote, False)
+    if not rating:
+        raise Http404, "Invalid vote"
+    if not request.user.is_authenticated():
+        raise Http404, _("Anonymous users cannot vote")
+    try:
+        comment = Comment.objects.get(pk=comment_id)
+    except Comment.DoesNotExist:
+        raise Http404, _("Invalid comment ID")
+    if comment.user.id == request.user.id:
+        raise Http404, _("No voting for yourself")
+    KarmaScore.objects.vote(request.user.id, comment_id, rating)
+    # Reload comment to ensure we have up to date karma count
+    comment = Comment.objects.get(pk=comment_id)
+    return render_to_response('comments/karma_vote_accepted.html', {'comment': comment},
+        context_instance=RequestContext(request, extra_context, context_processors))
diff --git a/webapp/django/contrib/comments/views/userflags.py b/webapp/django/contrib/comments/views/userflags.py
new file mode 100644
index 0000000..91518dc
--- /dev/null
+++ b/webapp/django/contrib/comments/views/userflags.py
@@ -0,0 +1,62 @@
+from django.shortcuts import render_to_response, get_object_or_404
+from django.template import RequestContext
+from django.http import Http404
+from django.contrib.comments.models import Comment, ModeratorDeletion, UserFlag
+from django.contrib.auth.decorators import login_required
+from django.http import HttpResponseRedirect
+from django.conf import settings
+
+def flag(request, comment_id, extra_context=None, context_processors=None):
+    """
+    Flags a comment. Confirmation on GET, action on POST.
+
+    Templates: `comments/flag_verify`, `comments/flag_done`
+    Context:
+        comment
+            the flagged `comments.comments` object
+    """
+    if extra_context is None: extra_context = {}
+    comment = get_object_or_404(Comment,pk=comment_id, site__id__exact=settings.SITE_ID)
+    if request.POST:
+        UserFlag.objects.flag(comment, request.user)
+        return HttpResponseRedirect('%sdone/' % request.path)
+    return render_to_response('comments/flag_verify.html', {'comment': comment},
+        context_instance=RequestContext(request, extra_context, context_processors))
+flag = login_required(flag)
+
+def flag_done(request, comment_id, extra_context=None, context_processors=None):
+    if extra_context is None: extra_context = {}
+    comment = get_object_or_404(Comment,pk=comment_id, site__id__exact=settings.SITE_ID)
+    return render_to_response('comments/flag_done.html', {'comment': comment},
+        context_instance=RequestContext(request, extra_context, context_processors))
+
+def delete(request, comment_id, extra_context=None, context_processors=None):
+    """
+    Deletes a comment. Confirmation on GET, action on POST.
+
+    Templates: `comments/delete_verify`, `comments/delete_done`
+    Context:
+        comment
+            the flagged `comments.comments` object
+    """
+    if extra_context is None: extra_context = {}
+    comment = get_object_or_404(Comment,pk=comment_id, site__id__exact=settings.SITE_ID)
+    if not Comment.objects.user_is_moderator(request.user):
+        raise Http404
+    if request.POST:
+        # If the comment has already been removed, silently fail.
+        if not comment.is_removed:
+            comment.is_removed = True
+            comment.save()
+            m = ModeratorDeletion(None, request.user.id, comment.id, None)
+            m.save()
+        return HttpResponseRedirect('%sdone/' % request.path)
+    return render_to_response('comments/delete_verify.html', {'comment': comment},
+        context_instance=RequestContext(request, extra_context, context_processors))
+delete = login_required(delete)
+
+def delete_done(request, comment_id, extra_context=None, context_processors=None):
+    if extra_context is None: extra_context = {}
+    comment = get_object_or_404(Comment,pk=comment_id, site__id__exact=settings.SITE_ID)
+    return render_to_response('comments/delete_done.html', {'comment': comment},
+        context_instance=RequestContext(request, extra_context, context_processors))
diff --git a/webapp/django/contrib/contenttypes/__init__.py b/webapp/django/contrib/contenttypes/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/contenttypes/__init__.py
diff --git a/webapp/django/contrib/contenttypes/generic.py b/webapp/django/contrib/contenttypes/generic.py
new file mode 100644
index 0000000..9c85af2
--- /dev/null
+++ b/webapp/django/contrib/contenttypes/generic.py
@@ -0,0 +1,388 @@
+"""
+Classes allowing "generic" relations through ContentType and object-id fields.
+"""
+
+from django import oldforms
+from django.core.exceptions import ObjectDoesNotExist
+from django.db import connection
+from django.db.models import signals
+from django.db import models
+from django.db.models.fields.related import RelatedField, Field, ManyToManyRel
+from django.db.models.loading import get_model
+from django.utils.functional import curry
+
+from django.forms import ModelForm
+from django.forms.models import BaseModelFormSet, modelformset_factory, save_instance
+from django.contrib.admin.options import InlineModelAdmin, flatten_fieldsets
+
+class GenericForeignKey(object):
+    """
+    Provides a generic relation to any object through content-type/object-id
+    fields.
+    """
+
+    def __init__(self, ct_field="content_type", fk_field="object_id"):
+        self.ct_field = ct_field
+        self.fk_field = fk_field
+
+    def contribute_to_class(self, cls, name):
+        # Make sure the fields exist (these raise FieldDoesNotExist,
+        # which is a fine error to raise here)
+        self.name = name
+        self.model = cls
+        self.cache_attr = "_%s_cache" % name
+
+        # For some reason I don't totally understand, using weakrefs here doesn't work.
+        signals.pre_init.connect(self.instance_pre_init, sender=cls, weak=False)
+
+        # Connect myself as the descriptor for this field
+        setattr(cls, name, self)
+
+    def instance_pre_init(self, signal, sender, args, kwargs, **_kwargs):
+        """
+        Handles initializing an object with the generic FK instaed of
+        content-type/object-id fields.
+        """
+        if self.name in kwargs:
+            value = kwargs.pop(self.name)
+            kwargs[self.ct_field] = self.get_content_type(obj=value)
+            kwargs[self.fk_field] = value._get_pk_val()
+
+    def get_content_type(self, obj=None, id=None):
+        # Convenience function using get_model avoids a circular import when
+        # using this model
+        ContentType = get_model("contenttypes", "contenttype")
+        if obj:
+            return ContentType.objects.get_for_model(obj)
+        elif id:
+            return ContentType.objects.get_for_id(id)
+        else:
+            # This should never happen. I love comments like this, don't you?
+            raise Exception("Impossible arguments to GFK.get_content_type!")
+
+    def __get__(self, instance, instance_type=None):
+        if instance is None:
+            raise AttributeError, u"%s must be accessed via instance" % self.name
+
+        try:
+            return getattr(instance, self.cache_attr)
+        except AttributeError:
+            rel_obj = None
+
+            # Make sure to use ContentType.objects.get_for_id() to ensure that
+            # lookups are cached (see ticket #5570). This takes more code than
+            # the naive ``getattr(instance, self.ct_field)``, but has better
+            # performance when dealing with GFKs in loops and such.
+            f = self.model._meta.get_field(self.ct_field)
+            ct_id = getattr(instance, f.get_attname(), None)
+            if ct_id:
+                ct = self.get_content_type(id=ct_id)
+                try:
+                    rel_obj = ct.get_object_for_this_type(pk=getattr(instance, self.fk_field))
+                except ObjectDoesNotExist:
+                    pass
+            setattr(instance, self.cache_attr, rel_obj)
+            return rel_obj
+
+    def __set__(self, instance, value):
+        if instance is None:
+            raise AttributeError, u"%s must be accessed via instance" % self.related.opts.object_name
+
+        ct = None
+        fk = None
+        if value is not None:
+            ct = self.get_content_type(obj=value)
+            fk = value._get_pk_val()
+
+        setattr(instance, self.ct_field, ct)
+        setattr(instance, self.fk_field, fk)
+        setattr(instance, self.cache_attr, value)
+
+class GenericRelation(RelatedField, Field):
+    """Provides an accessor to generic related objects (e.g. comments)"""
+
+    def __init__(self, to, **kwargs):
+        kwargs['verbose_name'] = kwargs.get('verbose_name', None)
+        kwargs['rel'] = GenericRel(to,
+                            related_name=kwargs.pop('related_name', None),
+                            limit_choices_to=kwargs.pop('limit_choices_to', None),
+                            symmetrical=kwargs.pop('symmetrical', True))
+
+        # By its very nature, a GenericRelation doesn't create a table.
+        self.creates_table = False
+
+        # Override content-type/object-id field names on the related class
+        self.object_id_field_name = kwargs.pop("object_id_field", "object_id")
+        self.content_type_field_name = kwargs.pop("content_type_field", "content_type")
+
+        kwargs['blank'] = True
+        kwargs['editable'] = False
+        kwargs['serialize'] = False
+        Field.__init__(self, **kwargs)
+
+    def get_manipulator_field_objs(self):
+        choices = self.get_choices_default()
+        return [curry(oldforms.SelectMultipleField, size=min(max(len(choices), 5), 15), choices=choices)]
+
+    def get_choices_default(self):
+        return Field.get_choices(self, include_blank=False)
+
+    def flatten_data(self, follow, obj = None):
+        new_data = {}
+        if obj:
+            instance_ids = [instance._get_pk_val() for instance in getattr(obj, self.name).all()]
+            new_data[self.name] = instance_ids
+        return new_data
+
+    def m2m_db_table(self):
+        return self.rel.to._meta.db_table
+
+    def m2m_column_name(self):
+        return self.object_id_field_name
+
+    def m2m_reverse_name(self):
+        return self.model._meta.pk.column
+
+    def contribute_to_class(self, cls, name):
+        super(GenericRelation, self).contribute_to_class(cls, name)
+
+        # Save a reference to which model this class is on for future use
+        self.model = cls
+
+        # Add the descriptor for the m2m relation
+        setattr(cls, self.name, ReverseGenericRelatedObjectsDescriptor(self))
+
+    def contribute_to_related_class(self, cls, related):
+        pass
+
+    def set_attributes_from_rel(self):
+        pass
+
+    def get_internal_type(self):
+        return "ManyToManyField"
+
+    def db_type(self):
+        # Since we're simulating a ManyToManyField, in effect, best return the
+        # same db_type as well.
+        return None
+
+class ReverseGenericRelatedObjectsDescriptor(object):
+    """
+    This class provides the functionality that makes the related-object
+    managers available as attributes on a model class, for fields that have
+    multiple "remote" values and have a GenericRelation defined in their model
+    (rather than having another model pointed *at* them). In the example
+    "article.publications", the publications attribute is a
+    ReverseGenericRelatedObjectsDescriptor instance.
+    """
+    def __init__(self, field):
+        self.field = field
+
+    def __get__(self, instance, instance_type=None):
+        if instance is None:
+            raise AttributeError, "Manager must be accessed via instance"
+
+        # This import is done here to avoid circular import importing this module
+        from django.contrib.contenttypes.models import ContentType
+
+        # Dynamically create a class that subclasses the related model's
+        # default manager.
+        rel_model = self.field.rel.to
+        superclass = rel_model._default_manager.__class__
+        RelatedManager = create_generic_related_manager(superclass)
+
+        qn = connection.ops.quote_name
+
+        manager = RelatedManager(
+            model = rel_model,
+            instance = instance,
+            symmetrical = (self.field.rel.symmetrical and instance.__class__ == rel_model),
+            join_table = qn(self.field.m2m_db_table()),
+            source_col_name = qn(self.field.m2m_column_name()),
+            target_col_name = qn(self.field.m2m_reverse_name()),
+            content_type = ContentType.objects.get_for_model(self.field.model),
+            content_type_field_name = self.field.content_type_field_name,
+            object_id_field_name = self.field.object_id_field_name
+        )
+
+        return manager
+
+    def __set__(self, instance, value):
+        if instance is None:
+            raise AttributeError, "Manager must be accessed via instance"
+
+        manager = self.__get__(instance)
+        manager.clear()
+        for obj in value:
+            manager.add(obj)
+
+def create_generic_related_manager(superclass):
+    """
+    Factory function for a manager that subclasses 'superclass' (which is a
+    Manager) and adds behavior for generic related objects.
+    """
+
+    class GenericRelatedObjectManager(superclass):
+        def __init__(self, model=None, core_filters=None, instance=None, symmetrical=None,
+                     join_table=None, source_col_name=None, target_col_name=None, content_type=None,
+                     content_type_field_name=None, object_id_field_name=None):
+
+            super(GenericRelatedObjectManager, self).__init__()
+            self.core_filters = core_filters or {}
+            self.model = model
+            self.content_type = content_type
+            self.symmetrical = symmetrical
+            self.instance = instance
+            self.join_table = join_table
+            self.join_table = model._meta.db_table
+            self.source_col_name = source_col_name
+            self.target_col_name = target_col_name
+            self.content_type_field_name = content_type_field_name
+            self.object_id_field_name = object_id_field_name
+            self.pk_val = self.instance._get_pk_val()
+
+        def get_query_set(self):
+            query = {
+                '%s__pk' % self.content_type_field_name : self.content_type.id,
+                '%s__exact' % self.object_id_field_name : self.pk_val,
+            }
+            return superclass.get_query_set(self).filter(**query)
+
+        def add(self, *objs):
+            for obj in objs:
+                setattr(obj, self.content_type_field_name, self.content_type)
+                setattr(obj, self.object_id_field_name, self.pk_val)
+                obj.save()
+        add.alters_data = True
+
+        def remove(self, *objs):
+            for obj in objs:
+                obj.delete()
+        remove.alters_data = True
+
+        def clear(self):
+            for obj in self.all():
+                obj.delete()
+        clear.alters_data = True
+
+        def create(self, **kwargs):
+            kwargs[self.content_type_field_name] = self.content_type
+            kwargs[self.object_id_field_name] = self.pk_val
+            obj = self.model(**kwargs)
+            obj.save()
+            return obj
+        create.alters_data = True
+
+    return GenericRelatedObjectManager
+
+class GenericRel(ManyToManyRel):
+    def __init__(self, to, related_name=None, limit_choices_to=None, symmetrical=True):
+        self.to = to
+        self.related_name = related_name
+        self.limit_choices_to = limit_choices_to or {}
+        self.edit_inline = False
+        self.symmetrical = symmetrical
+        self.multiple = True
+
+class BaseGenericInlineFormSet(BaseModelFormSet):
+    """
+    A formset for generic inline objects to a parent.
+    """
+    ct_field_name = "content_type"
+    ct_fk_field_name = "object_id"
+    
+    def __init__(self, data=None, files=None, instance=None, save_as_new=None):
+        opts = self.model._meta
+        self.instance = instance
+        self.rel_name = '-'.join((
+            opts.app_label, opts.object_name.lower(),
+            self.ct_field.name, self.ct_fk_field.name,
+        ))
+        super(BaseGenericInlineFormSet, self).__init__(
+            queryset=self.get_queryset(), data=data, files=files,
+            prefix=self.rel_name
+        )
+
+    def get_queryset(self):
+        # Avoid a circular import.
+        from django.contrib.contenttypes.models import ContentType
+        if self.instance is None:
+            return self.model._default_manager.empty()
+        return self.model._default_manager.filter(**{
+            self.ct_field.name: ContentType.objects.get_for_model(self.instance),
+            self.ct_fk_field.name: self.instance.pk,
+        })
+
+    def save_new(self, form, commit=True):
+        # Avoid a circular import.
+        from django.contrib.contenttypes.models import ContentType
+        kwargs = {
+            self.ct_field.get_attname(): ContentType.objects.get_for_model(self.instance).pk,
+            self.ct_fk_field.get_attname(): self.instance.pk,
+        }
+        new_obj = self.model(**kwargs)
+        return save_instance(form, new_obj, commit=commit)
+
+def generic_inlineformset_factory(model, form=ModelForm,
+                                  formset=BaseGenericInlineFormSet,
+                                  ct_field="content_type", fk_field="object_id",
+                                  fields=None, exclude=None,
+                                  extra=3, can_order=False, can_delete=True,
+                                  max_num=0,
+                                  formfield_callback=lambda f: f.formfield()):
+    """
+    Returns an ``GenericInlineFormSet`` for the given kwargs.
+
+    You must provide ``ct_field`` and ``object_id`` if they different from the
+    defaults ``content_type`` and ``object_id`` respectively.
+    """
+    opts = model._meta
+    # Avoid a circular import.
+    from django.contrib.contenttypes.models import ContentType
+    # if there is no field called `ct_field` let the exception propagate
+    ct_field = opts.get_field(ct_field)
+    if not isinstance(ct_field, models.ForeignKey) or ct_field.rel.to != ContentType:
+        raise Exception("fk_name '%s' is not a ForeignKey to ContentType" % ct_field)
+    fk_field = opts.get_field(fk_field) # let the exception propagate
+    if exclude is not None:
+        exclude.extend([ct_field.name, fk_field.name])
+    else:
+        exclude = [ct_field.name, fk_field.name]
+    FormSet = modelformset_factory(model, form=form,
+                                   formfield_callback=formfield_callback,
+                                   formset=formset,
+                                   extra=extra, can_delete=can_delete, can_order=can_order,
+                                   fields=fields, exclude=exclude, max_num=max_num)
+    FormSet.ct_field = ct_field
+    FormSet.ct_fk_field = fk_field
+    return FormSet
+
+class GenericInlineModelAdmin(InlineModelAdmin):
+    ct_field = "content_type"
+    ct_fk_field = "object_id"
+    formset = BaseGenericInlineFormSet
+
+    def get_formset(self, request, obj=None):
+        if self.declared_fieldsets:
+            fields = flatten_fieldsets(self.declared_fieldsets)
+        else:
+            fields = None
+        defaults = {
+            "ct_field": self.ct_field,
+            "fk_field": self.ct_fk_field,
+            "form": self.form,
+            "formfield_callback": self.formfield_for_dbfield,
+            "formset": self.formset,
+            "extra": self.extra,
+            "can_delete": True,
+            "can_order": False,
+            "fields": fields,
+        }
+        return generic_inlineformset_factory(self.model, **defaults)
+
+class GenericStackedInline(GenericInlineModelAdmin):
+    template = 'admin/edit_inline/stacked.html'
+
+class GenericTabularInline(GenericInlineModelAdmin):
+    template = 'admin/edit_inline/tabular.html'
+
diff --git a/webapp/django/contrib/contenttypes/management.py b/webapp/django/contrib/contenttypes/management.py
new file mode 100644
index 0000000..736e213
--- /dev/null
+++ b/webapp/django/contrib/contenttypes/management.py
@@ -0,0 +1,42 @@
+from django.contrib.contenttypes.models import ContentType
+from django.db.models import get_apps, get_models, signals
+from django.utils.encoding import smart_unicode
+
+def update_contenttypes(app, created_models, verbosity=2, **kwargs):
+    """
+    Creates content types for models in the given app, removing any model
+    entries that no longer have a matching model class.
+    """
+    ContentType.objects.clear_cache()
+    content_types = list(ContentType.objects.filter(app_label=app.__name__.split('.')[-2]))
+    app_models = get_models(app)
+    if not app_models:
+        return
+    for klass in app_models:
+        opts = klass._meta
+        try:
+            ct = ContentType.objects.get(app_label=opts.app_label,
+                                         model=opts.object_name.lower())
+            content_types.remove(ct)
+        except ContentType.DoesNotExist:
+            ct = ContentType(name=smart_unicode(opts.verbose_name_raw),
+                app_label=opts.app_label, model=opts.object_name.lower())
+            ct.save()
+            if verbosity >= 2:
+                print "Adding content type '%s | %s'" % (ct.app_label, ct.model)
+    # The presence of any remaining content types means the supplied app has an
+    # undefined model and can safely be removed, which cascades to also remove
+    # related permissions.
+    for ct in content_types:
+        if verbosity >= 2:
+            print "Deleting stale content type '%s | %s'" % (ct.app_label, ct.model)
+        ct.delete()
+
+def update_all_contenttypes(verbosity=2):
+    for app in get_apps():
+        update_contenttypes(app, None, verbosity)
+
+signals.post_syncdb.connect(update_contenttypes)
+
+if __name__ == "__main__":
+    update_all_contenttypes()
diff --git a/webapp/django/contrib/contenttypes/models.py b/webapp/django/contrib/contenttypes/models.py
new file mode 100644
index 0000000..4df1edc
--- /dev/null
+++ b/webapp/django/contrib/contenttypes/models.py
@@ -0,0 +1,92 @@
+from django.db import models
+from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import smart_unicode
+
+class ContentTypeManager(models.Manager):
+
+    # Cache to avoid re-looking up ContentType objects all over the place.
+    # This cache is shared by all the get_for_* methods.
+    _cache = {}
+    
+    def get_for_model(self, model):
+        """
+        Returns the ContentType object for a given model, creating the
+        ContentType if necessary. Lookups are cached so that subsequent lookups
+        for the same model don't hit the database.
+        """
+        opts = model._meta
+        key = (opts.app_label, opts.object_name.lower())
+        try:
+            ct = self.__class__._cache[key]
+        except KeyError:
+            # Load or create the ContentType entry. The smart_unicode() is 
+            # needed around opts.verbose_name_raw because name_raw might be a
+            # django.utils.functional.__proxy__ object.
+            ct, created = self.get_or_create(
+                app_label = opts.app_label,
+                model = opts.object_name.lower(), 
+                defaults = {'name': smart_unicode(opts.verbose_name_raw)},
+            )
+            self._add_to_cache(ct)
+            
+        return ct
+        
+    def get_for_id(self, id):
+        """
+        Lookup a ContentType by ID. Uses the same shared cache as get_for_model
+        (though ContentTypes are obviously not created on-the-fly by get_by_id).
+        """
+        try:
+            ct = self.__class__._cache[id]
+        except KeyError:
+            # This could raise a DoesNotExist; that's correct behavior and will
+            # make sure that only correct ctypes get stored in the cache dict.
+            ct = self.get(pk=id)
+            self._add_to_cache(ct)
+        return ct
+            
+    def clear_cache(self):
+        """
+        Clear out the content-type cache. This needs to happen during database
+        flushes to prevent caching of "stale" content type IDs (see
+        django.contrib.contenttypes.management.update_contenttypes for where
+        this gets called).
+        """
+        self.__class__._cache.clear()
+        
+    def _add_to_cache(self, ct):
+        """Insert a ContentType into the cache."""
+        model = ct.model_class()
+        key = (model._meta.app_label, model._meta.object_name.lower())
+        self.__class__._cache[key] = ct
+        self.__class__._cache[ct.id] = ct
+
+class ContentType(models.Model):
+    name = models.CharField(max_length=100)
+    app_label = models.CharField(max_length=100)
+    model = models.CharField(_('python model class name'), max_length=100)
+    objects = ContentTypeManager()
+    
+    class Meta:
+        verbose_name = _('content type')
+        verbose_name_plural = _('content types')
+        db_table = 'django_content_type'
+        ordering = ('name',)
+        unique_together = (('app_label', 'model'),)
+
+    def __unicode__(self):
+        return self.name
+
+    def model_class(self):
+        "Returns the Python model class for this type of content."
+        from django.db import models
+        return models.get_model(self.app_label, self.model)
+
+    def get_object_for_this_type(self, **kwargs):
+        """
+        Returns an object of this type for the keyword arguments given.
+        Basically, this is a proxy around this object_type's get_object() model
+        method. The ObjectNotExist exception, if thrown, will not be caught,
+        so code that calls this method should catch it.
+        """
+        return self.model_class()._default_manager.get(**kwargs)
diff --git a/webapp/django/contrib/contenttypes/tests.py b/webapp/django/contrib/contenttypes/tests.py
new file mode 100644
index 0000000..148edfc
--- /dev/null
+++ b/webapp/django/contrib/contenttypes/tests.py
@@ -0,0 +1,47 @@
+"""
+Make sure that the content type cache (see ContentTypeManager) works correctly.
+Lookups for a particular content type -- by model or by ID -- should hit the
+database only on the first lookup.
+
+First, let's make sure we're dealing with a blank slate (and that DEBUG is on so
+that queries get logged)::
+
+    >>> from django.conf import settings
+    >>> settings.DEBUG = True
+
+    >>> from django.contrib.contenttypes.models import ContentType
+    >>> ContentType.objects.clear_cache()
+
+    >>> from django import db
+    >>> db.reset_queries()
+    
+At this point, a lookup for a ContentType should hit the DB::
+
+    >>> ContentType.objects.get_for_model(ContentType)
+    <ContentType: content type>
+    
+    >>> len(db.connection.queries)
+    1
+
+A second hit, though, won't hit the DB, nor will a lookup by ID::
+
+    >>> ct = ContentType.objects.get_for_model(ContentType)
+    >>> len(db.connection.queries)
+    1
+    >>> ContentType.objects.get_for_id(ct.id)
+    <ContentType: content type>
+    >>> len(db.connection.queries)
+    1
+
+Once we clear the cache, another lookup will again hit the DB::
+
+    >>> ContentType.objects.clear_cache()
+    >>> ContentType.objects.get_for_model(ContentType)
+    <ContentType: content type>
+    >>> len(db.connection.queries)
+    2
+
+Don't forget to reset DEBUG!
+
+    >>> settings.DEBUG = False
+"""
\ No newline at end of file
diff --git a/webapp/django/contrib/csrf/__init__.py b/webapp/django/contrib/csrf/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/csrf/__init__.py
diff --git a/webapp/django/contrib/csrf/middleware.py b/webapp/django/contrib/csrf/middleware.py
new file mode 100644
index 0000000..24c1511
--- /dev/null
+++ b/webapp/django/contrib/csrf/middleware.py
@@ -0,0 +1,94 @@
+"""
+Cross Site Request Forgery Middleware.
+
+This module provides a middleware that implements protection
+against request forgeries from other sites.
+"""
+
+import re
+import itertools
+
+from django.conf import settings
+from django.http import HttpResponseForbidden
+from django.utils.hashcompat import md5_constructor
+from django.utils.safestring import mark_safe
+
+_ERROR_MSG = mark_safe('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><body><h1>403 Forbidden</h1><p>Cross Site Request Forgery detected. Request aborted.</p></body></html>')
+
+_POST_FORM_RE = \
+    re.compile(r'(<form\W[^>]*\bmethod=(\'|"|)POST(\'|"|)\b[^>]*>)', re.IGNORECASE)
+
+_HTML_TYPES = ('text/html', 'application/xhtml+xml')
+
+def _make_token(session_id):
+    return md5_constructor(settings.SECRET_KEY + session_id).hexdigest()
+
+class CsrfMiddleware(object):
+    """Django middleware that adds protection against Cross Site
+    Request Forgeries by adding hidden form fields to POST forms and
+    checking requests for the correct value.
+
+    In the list of middlewares, SessionMiddleware is required, and must come
+    after this middleware.  CsrfMiddleWare must come after compression
+    middleware.
+
+    If a session ID cookie is present, it is hashed with the SECRET_KEY
+    setting to create an authentication token.  This token is added to all
+    outgoing POST forms and is expected on all incoming POST requests that
+    have a session ID cookie.
+
+    If you are setting cookies directly, instead of using Django's session
+    framework, this middleware will not work.
+    """
+
+    def process_request(self, request):
+        if request.method == 'POST':
+            try:
+                session_id = request.COOKIES[settings.SESSION_COOKIE_NAME]
+            except KeyError:
+                # No session, no check required
+                return None
+
+            csrf_token = _make_token(session_id)
+            # check incoming token
+            try:
+                request_csrf_token = request.POST['csrfmiddlewaretoken']
+            except KeyError:
+                return HttpResponseForbidden(_ERROR_MSG)
+
+            if request_csrf_token != csrf_token:
+                return HttpResponseForbidden(_ERROR_MSG)
+
+        return None
+
+    def process_response(self, request, response):
+        csrf_token = None
+        try:
+            cookie = response.cookies[settings.SESSION_COOKIE_NAME]
+            csrf_token = _make_token(cookie.value)
+        except KeyError:
+            # No outgoing cookie to set session, but
+            # a session might already exist.
+            try:
+                session_id = request.COOKIES[settings.SESSION_COOKIE_NAME]
+                csrf_token = _make_token(session_id)
+            except KeyError:
+                # no incoming or outgoing cookie
+                pass
+
+        if csrf_token is not None and \
+                response['Content-Type'].split(';')[0] in _HTML_TYPES:
+
+            # ensure we don't add the 'id' attribute twice (HTML validity)
+            idattributes = itertools.chain(("id='csrfmiddlewaretoken'",),
+                                            itertools.repeat(''))
+            def add_csrf_field(match):
+                """Returns the matched <form> tag plus the added <input> element"""
+                return mark_safe(match.group() + "<div style='display:none;'>" + \
+                "<input type='hidden' " + idattributes.next() + \
+                " name='csrfmiddlewaretoken' value='" + csrf_token + \
+                "' /></div>")
+
+            # Modify any POST forms
+            response.content = _POST_FORM_RE.sub(add_csrf_field, response.content)
+        return response
diff --git a/webapp/django/contrib/databrowse/__init__.py b/webapp/django/contrib/databrowse/__init__.py
new file mode 100644
index 0000000..e2f48ac
--- /dev/null
+++ b/webapp/django/contrib/databrowse/__init__.py
@@ -0,0 +1 @@
+from django.contrib.databrowse.sites import DatabrowsePlugin, ModelDatabrowse, DatabrowseSite, site
diff --git a/webapp/django/contrib/databrowse/datastructures.py b/webapp/django/contrib/databrowse/datastructures.py
new file mode 100644
index 0000000..5fdbdbe
--- /dev/null
+++ b/webapp/django/contrib/databrowse/datastructures.py
@@ -0,0 +1,217 @@
+"""
+These classes are light wrappers around Django's database API that provide
+convenience functionality and permalink functions for the databrowse app.
+"""
+
+from django.db import models
+from django.utils import dateformat
+from django.utils.text import capfirst
+from django.utils.translation import get_date_formats
+from django.utils.encoding import smart_unicode, smart_str, iri_to_uri
+from django.utils.safestring import mark_safe
+from django.db.models.query import QuerySet
+
+EMPTY_VALUE = '(None)'
+DISPLAY_SIZE = 100
+
+class EasyModel(object):
+    def __init__(self, site, model):
+        self.site = site
+        self.model = model
+        self.model_list = site.registry.keys()
+        self.verbose_name = model._meta.verbose_name
+        self.verbose_name_plural = model._meta.verbose_name_plural
+
+    def __repr__(self):
+        return '<EasyModel for %s>' % smart_str(self.model._meta.object_name)
+
+    def model_databrowse(self):
+        "Returns the ModelDatabrowse class for this model."
+        return self.site.registry[self.model]
+
+    def url(self):
+        return mark_safe('%s%s/%s/' % (self.site.root_url, self.model._meta.app_label, self.model._meta.module_name))
+
+    def objects(self, **kwargs):
+        return self.get_query_set().filter(**kwargs)
+
+    def get_query_set(self):
+        easy_qs = self.model._default_manager.get_query_set()._clone(klass=EasyQuerySet)
+        easy_qs._easymodel = self
+        return easy_qs
+
+    def object_by_pk(self, pk):
+        return EasyInstance(self, self.model._default_manager.get(pk=pk))
+
+    def sample_objects(self):
+        for obj in self.model._default_manager.all()[:3]:
+            yield EasyInstance(self, obj)
+
+    def field(self, name):
+        try:
+            f = self.model._meta.get_field(name)
+        except models.FieldDoesNotExist:
+            return None
+        return EasyField(self, f)
+
+    def fields(self):
+        return [EasyField(self, f) for f in (self.model._meta.fields + self.model._meta.many_to_many)]
+
+class EasyField(object):
+    def __init__(self, easy_model, field):
+        self.model, self.field = easy_model, field
+
+    def __repr__(self):
+        return smart_str(u'<EasyField for %s.%s>' % (self.model.model._meta.object_name, self.field.name))
+
+    def choices(self):
+        for value, label in self.field.choices:
+            yield EasyChoice(self.model, self, value, label)
+
+    def url(self):
+        if self.field.choices:
+            return mark_safe('%s%s/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.name))
+        elif self.field.rel:
+            return mark_safe('%s%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name))
+
+class EasyChoice(object):
+    def __init__(self, easy_model, field, value, label):
+        self.model, self.field = easy_model, field
+        self.value, self.label = value, label
+
+    def __repr__(self):
+        return smart_str(u'<EasyChoice for %s.%s>' % (self.model.model._meta.object_name, self.field.name))
+
+    def url(self):
+        return mark_safe('%s%s/%s/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.field.name, iri_to_uri(self.value)))
+
+class EasyInstance(object):
+    def __init__(self, easy_model, instance):
+        self.model, self.instance = easy_model, instance
+
+    def __repr__(self):
+        return smart_str(u'<EasyInstance for %s (%s)>' % (self.model.model._meta.object_name, self.instance._get_pk_val()))
+
+    def __unicode__(self):
+        val = smart_unicode(self.instance)
+        if len(val) > DISPLAY_SIZE:
+            return val[:DISPLAY_SIZE] + u'...'
+        return val
+
+    def __str__(self):
+        return self.__unicode__().encode('utf-8')
+
+    def pk(self):
+        return self.instance._get_pk_val()
+
+    def url(self):
+        return mark_safe('%s%s/%s/objects/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, iri_to_uri(self.pk())))
+
+    def fields(self):
+        """
+        Generator that yields EasyInstanceFields for each field in this
+        EasyInstance's model.
+        """
+        for f in self.model.model._meta.fields + self.model.model._meta.many_to_many:
+            yield EasyInstanceField(self.model, self, f)
+
+    def related_objects(self):
+        """
+        Generator that yields dictionaries of all models that have this
+        EasyInstance's model as a ForeignKey or ManyToManyField, along with
+        lists of related objects.
+        """
+        for rel_object in self.model.model._meta.get_all_related_objects() + self.model.model._meta.get_all_related_many_to_many_objects():
+            if rel_object.model not in self.model.model_list:
+                continue # Skip models that aren't in the model_list
+            em = EasyModel(self.model.site, rel_object.model)
+            yield {
+                'model': em,
+                'related_field': rel_object.field.verbose_name,
+                'object_list': [EasyInstance(em, i) for i in getattr(self.instance, rel_object.get_accessor_name()).all()],
+            }
+
+class EasyInstanceField(object):
+    def __init__(self, easy_model, instance, field):
+        self.model, self.field, self.instance = easy_model, field, instance
+        self.raw_value = getattr(instance.instance, field.name)
+
+    def __repr__(self):
+        return smart_str(u'<EasyInstanceField for %s.%s>' % (self.model.model._meta.object_name, self.field.name))
+
+    def values(self):
+        """
+        Returns a list of values for this field for this instance. It's a list
+        so we can accomodate many-to-many fields.
+        """
+        # This import is deliberately inside the function because it causes
+        # some settings to be imported, and we don't want to do that at the
+        # module level.
+        if self.field.rel:
+            if isinstance(self.field.rel, models.ManyToOneRel):
+                objs = getattr(self.instance.instance, self.field.name)
+            elif isinstance(self.field.rel, models.ManyToManyRel): # ManyToManyRel
+                return list(getattr(self.instance.instance, self.field.name).all())
+        elif self.field.choices:
+            objs = dict(self.field.choices).get(self.raw_value, EMPTY_VALUE)
+        elif isinstance(self.field, models.DateField) or isinstance(self.field, models.TimeField):
+            if self.raw_value:
+                date_format, datetime_format, time_format = get_date_formats()
+                if isinstance(self.field, models.DateTimeField):
+                    objs = capfirst(dateformat.format(self.raw_value, datetime_format))
+                elif isinstance(self.field, models.TimeField):
+                    objs = capfirst(dateformat.time_format(self.raw_value, time_format))
+                else:
+                    objs = capfirst(dateformat.format(self.raw_value, date_format))
+            else:
+                objs = EMPTY_VALUE
+        elif isinstance(self.field, models.BooleanField) or isinstance(self.field, models.NullBooleanField):
+            objs = {True: 'Yes', False: 'No', None: 'Unknown'}[self.raw_value]
+        else:
+            objs = self.raw_value
+        return [objs]
+
+    def urls(self):
+        "Returns a list of (value, URL) tuples."
+        # First, check the urls() method for each plugin.
+        plugin_urls = []
+        for plugin_name, plugin in self.model.model_databrowse().plugins.items():
+            urls = plugin.urls(plugin_name, self)
+            if urls is not None:
+                #plugin_urls.append(urls)
+                values = self.values()
+                return zip(self.values(), urls)
+        if self.field.rel:
+            m = EasyModel(self.model.site, self.field.rel.to)
+            if self.field.rel.to in self.model.model_list:
+                lst = []
+                for value in self.values():
+                    url = mark_safe('%s%s/%s/objects/%s/' % (self.model.site.root_url, m.model._meta.app_label, m.model._meta.module_name, iri_to_uri(value._get_pk_val())))
+                    lst.append((smart_unicode(value), url))
+            else:
+                lst = [(value, None) for value in self.values()]
+        elif self.field.choices:
+            lst = []
+            for value in self.values():
+                url = mark_safe('%s%s/%s/fields/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.name, iri_to_uri(self.raw_value)))
+                lst.append((value, url))
+        elif isinstance(self.field, models.URLField):
+            val = self.values()[0]
+            lst = [(val, iri_to_uri(val))]
+        else:
+            lst = [(self.values()[0], None)]
+        return lst
+
+class EasyQuerySet(QuerySet):
+    """
+    When creating (or cloning to) an `EasyQuerySet`, make sure to set the
+    `_easymodel` variable to the related `EasyModel`.
+    """
+    def iterator(self, *args, **kwargs):
+        for obj in super(EasyQuerySet, self).iterator(*args, **kwargs):
+            yield EasyInstance(self._easymodel, obj)
+
+    def _clone(self, *args, **kwargs):
+        c = super(EasyQuerySet, self)._clone(*args, **kwargs)
+        c._easymodel = self._easymodel
+        return c
diff --git a/webapp/django/contrib/databrowse/plugins/__init__.py b/webapp/django/contrib/databrowse/plugins/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/databrowse/plugins/__init__.py
diff --git a/webapp/django/contrib/databrowse/plugins/calendars.py b/webapp/django/contrib/databrowse/plugins/calendars.py
new file mode 100644
index 0000000..ac2f522
--- /dev/null
+++ b/webapp/django/contrib/databrowse/plugins/calendars.py
@@ -0,0 +1,86 @@
+from django import http
+from django.db import models
+from django.contrib.databrowse.datastructures import EasyModel
+from django.contrib.databrowse.sites import DatabrowsePlugin
+from django.shortcuts import render_to_response
+from django.utils.text import capfirst
+from django.utils.encoding import force_unicode
+from django.utils.safestring import mark_safe
+from django.views.generic import date_based
+from django.utils import datetime_safe
+
+class CalendarPlugin(DatabrowsePlugin):
+    def __init__(self, field_names=None):
+        self.field_names = field_names
+
+    def field_dict(self, model):
+        """
+        Helper function that returns a dictionary of all DateFields or
+        DateTimeFields in the given model. If self.field_names is set, it takes
+        take that into account when building the dictionary.
+        """
+        if self.field_names is None:
+            return dict([(f.name, f) for f in model._meta.fields if isinstance(f, models.DateField)])
+        else:
+            return dict([(f.name, f) for f in model._meta.fields if isinstance(f, models.DateField) and f.name in self.field_names])
+
+    def model_index_html(self, request, model, site):
+        fields = self.field_dict(model)
+        if not fields:
+            return u''
+        return mark_safe(u'<p class="filter"><strong>View calendar by:</strong> %s</p>' % \
+            u', '.join(['<a href="calendars/%s/">%s</a>' % (f.name, force_unicode(capfirst(f.verbose_name))) for f in fields.values()]))
+
+    def urls(self, plugin_name, easy_instance_field):
+        if isinstance(easy_instance_field.field, models.DateField):
+            d = easy_instance_field.raw_value
+            return [mark_safe(u'%s%s/%s/%s/%s/%s/' % (
+                easy_instance_field.model.url(),
+                plugin_name, easy_instance_field.field.name,
+                d.year,
+                datetime_safe.new_date(d).strftime('%b').lower(),
+                d.day))]
+
+    def model_view(self, request, model_databrowse, url):
+        self.model, self.site = model_databrowse.model, model_databrowse.site
+        self.fields = self.field_dict(self.model)
+
+        # If the model has no DateFields, there's no point in going further.
+        if not self.fields:
+            raise http.Http404('The requested model has no calendars.')
+
+        if url is None:
+            return self.homepage_view(request)
+        url_bits = url.split('/')
+        if self.fields.has_key(url_bits[0]):
+            return self.calendar_view(request, self.fields[url_bits[0]], *url_bits[1:])
+
+        raise http.Http404('The requested page does not exist.')
+
+    def homepage_view(self, request):
+        easy_model = EasyModel(self.site, self.model)
+        field_list = self.fields.values()
+        field_list.sort(lambda x, y: cmp(x.verbose_name, y.verbose_name))
+        return render_to_response('databrowse/calendar_homepage.html', {'root_url': self.site.root_url, 'model': easy_model, 'field_list': field_list})
+
+    def calendar_view(self, request, field, year=None, month=None, day=None):
+        easy_model = EasyModel(self.site, self.model)
+        queryset = easy_model.get_query_set()
+        extra_context = {'root_url': self.site.root_url, 'model': easy_model, 'field': field}
+        if day is not None:
+            return date_based.archive_day(request, year, month, day, queryset, field.name,
+                template_name='databrowse/calendar_day.html', allow_empty=False, allow_future=True,
+                extra_context=extra_context)
+        elif month is not None:
+            return date_based.archive_month(request, year, month, queryset, field.name,
+                template_name='databrowse/calendar_month.html', allow_empty=False, allow_future=True,
+                extra_context=extra_context)
+        elif year is not None:
+            return date_based.archive_year(request, year, queryset, field.name,
+                template_name='databrowse/calendar_year.html', allow_empty=False, allow_future=True,
+                extra_context=extra_context)
+        else:
+            return date_based.archive_index(request, queryset, field.name,
+                template_name='databrowse/calendar_main.html', allow_empty=True, allow_future=True,
+                extra_context=extra_context)
+        assert False, ('%s, %s, %s, %s' % (field, year, month, day))
diff --git a/webapp/django/contrib/databrowse/plugins/fieldchoices.py b/webapp/django/contrib/databrowse/plugins/fieldchoices.py
new file mode 100644
index 0000000..8f77792
--- /dev/null
+++ b/webapp/django/contrib/databrowse/plugins/fieldchoices.py
@@ -0,0 +1,74 @@
+from django import http
+from django.db import models
+from django.contrib.databrowse.datastructures import EasyModel
+from django.contrib.databrowse.sites import DatabrowsePlugin
+from django.shortcuts import render_to_response
+from django.utils.text import capfirst
+from django.utils.encoding import smart_str, force_unicode
+from django.utils.safestring import mark_safe
+import urllib
+
+class FieldChoicePlugin(DatabrowsePlugin):
+    def __init__(self, field_filter=None):
+        # If field_filter is given, it should be a callable that takes a
+        # Django database Field instance and returns True if that field should
+        # be included. If field_filter is None, that all fields will be used.
+        self.field_filter = field_filter
+
+    def field_dict(self, model):
+        """
+        Helper function that returns a dictionary of all fields in the given
+        model. If self.field_filter is set, it only includes the fields that
+        match the filter.
+        """
+        if self.field_filter:
+            return dict([(f.name, f) for f in model._meta.fields if self.field_filter(f)])
+        else:
+            return dict([(f.name, f) for f in model._meta.fields if not f.rel and not f.primary_key and not f.unique and not isinstance(f, (models.AutoField, models.TextField))])
+
+    def model_index_html(self, request, model, site):
+        fields = self.field_dict(model)
+        if not fields:
+            return u''
+        return mark_safe(u'<p class="filter"><strong>View by:</strong> %s</p>' % \
+            u', '.join(['<a href="fields/%s/">%s</a>' % (f.name, force_unicode(capfirst(f.verbose_name))) for f in fields.values()]))
+
+    def urls(self, plugin_name, easy_instance_field):
+        if easy_instance_field.field in self.field_dict(easy_instance_field.model.model).values():
+            field_value = smart_str(easy_instance_field.raw_value)
+            return [mark_safe(u'%s%s/%s/%s/' % (
+                easy_instance_field.model.url(),
+                plugin_name, easy_instance_field.field.name,
+                urllib.quote(field_value, safe='')))]
+
+    def model_view(self, request, model_databrowse, url):
+        self.model, self.site = model_databrowse.model, model_databrowse.site
+        self.fields = self.field_dict(self.model)
+
+        # If the model has no fields with choices, there's no point in going
+        # further.
+        if not self.fields:
+            raise http.Http404('The requested model has no fields.')
+
+        if url is None:
+            return self.homepage_view(request)
+        url_bits = url.split('/', 1)
+        if self.fields.has_key(url_bits[0]):
+            return self.field_view(request, self.fields[url_bits[0]], *url_bits[1:])
+
+        raise http.Http404('The requested page does not exist.')
+
+    def homepage_view(self, request):
+        easy_model = EasyModel(self.site, self.model)
+        field_list = self.fields.values()
+        field_list.sort(lambda x, y: cmp(x.verbose_name, y.verbose_name))
+        return render_to_response('databrowse/fieldchoice_homepage.html', {'root_url': self.site.root_url, 'model': easy_model, 'field_list': field_list})
+
+    def field_view(self, request, field, value=None):
+        easy_model = EasyModel(self.site, self.model)
+        easy_field = easy_model.field(field.name)
+        if value is not None:
+            obj_list = easy_model.objects(**{field.name: value})
+            return render_to_response('databrowse/fieldchoice_detail.html', {'root_url': self.site.root_url, 'model': easy_model, 'field': easy_field, 'value': value, 'object_list': obj_list})
+        obj_list = [v[field.name] for v in self.model._default_manager.distinct().order_by(field.name).values(field.name)]
+        return render_to_response('databrowse/fieldchoice_list.html', {'root_url': self.site.root_url, 'model': easy_model, 'field': easy_field, 'object_list': obj_list})
diff --git a/webapp/django/contrib/databrowse/plugins/objects.py b/webapp/django/contrib/databrowse/plugins/objects.py
new file mode 100644
index 0000000..7326566
--- /dev/null
+++ b/webapp/django/contrib/databrowse/plugins/objects.py
@@ -0,0 +1,14 @@
+from django import http
+from django.contrib.databrowse.datastructures import EasyModel
+from django.contrib.databrowse.sites import DatabrowsePlugin
+from django.shortcuts import render_to_response
+import urlparse
+
+class ObjectDetailPlugin(DatabrowsePlugin):
+    def model_view(self, request, model_databrowse, url):
+        # If the object ID wasn't provided, redirect to the model page, which is one level up.
+        if url is None:
+            return http.HttpResponseRedirect(urlparse.urljoin(request.path, '../'))
+        easy_model = EasyModel(model_databrowse.site, model_databrowse.model)
+        obj = easy_model.object_by_pk(url)
+        return render_to_response('databrowse/object_detail.html', {'object': obj, 'root_url': model_databrowse.site.root_url})
diff --git a/webapp/django/contrib/databrowse/sites.py b/webapp/django/contrib/databrowse/sites.py
new file mode 100644
index 0000000..9ef35db
--- /dev/null
+++ b/webapp/django/contrib/databrowse/sites.py
@@ -0,0 +1,149 @@
+from django import http
+from django.db import models
+from django.contrib.databrowse.datastructures import EasyModel
+from django.shortcuts import render_to_response
+from django.utils.safestring import mark_safe
+
+class AlreadyRegistered(Exception):
+    pass
+
+class NotRegistered(Exception):
+    pass
+
+class DatabrowsePlugin(object):
+    def urls(self, plugin_name, easy_instance_field):
+        """
+        Given an EasyInstanceField object, returns a list of URLs for this
+        plugin's views of this object. These URLs should be absolute.
+
+        Returns None if the EasyInstanceField object doesn't get a
+        list of plugin-specific URLs.
+        """
+        return None
+
+    def model_index_html(self, request, model, site):
+        """
+        Returns a snippet of HTML to include on the model index page.
+        """
+        return ''
+
+    def model_view(self, request, model_databrowse, url):
+        """
+        Handles main URL routing for a plugin's model-specific pages.
+        """
+        raise NotImplementedError
+
+class ModelDatabrowse(object):
+    plugins = {}
+
+    def __init__(self, model, site):
+        self.model = model
+        self.site = site
+
+    def root(self, request, url):
+        """
+        Handles main URL routing for the databrowse app.
+
+        `url` is the remainder of the URL -- e.g. 'objects/3'.
+        """
+        # Delegate to the appropriate method, based on the URL.
+        if url is None:
+            return self.main_view(request)
+        try:
+            plugin_name, rest_of_url = url.split('/', 1)
+        except ValueError: # need more than 1 value to unpack
+            plugin_name, rest_of_url = url, None
+        try:
+            plugin = self.plugins[plugin_name]
+        except KeyError:
+            raise http.Http404('A plugin with the requested name does not exist.')
+        return plugin.model_view(request, self, rest_of_url)
+
+    def main_view(self, request):
+        easy_model = EasyModel(self.site, self.model)
+        html_snippets = mark_safe(u'\n'.join([p.model_index_html(request, self.model, self.site) for p in self.plugins.values()]))
+        return render_to_response('databrowse/model_detail.html', {
+            'model': easy_model,
+            'root_url': self.site.root_url,
+            'plugin_html': html_snippets,
+        })
+
+class DatabrowseSite(object):
+    def __init__(self):
+        self.registry = {} # model_class -> databrowse_class
+        self.root_url = None
+
+    def register(self, model_or_iterable, databrowse_class=None, **options):
+        """
+        Registers the given model(s) with the given databrowse site.
+
+        The model(s) should be Model classes, not instances.
+
+        If a databrowse class isn't given, it will use DefaultModelDatabrowse
+        (the default databrowse options).
+
+        If a model is already registered, this will raise AlreadyRegistered.
+        """
+        databrowse_class = databrowse_class or DefaultModelDatabrowse
+        if issubclass(model_or_iterable, models.Model):
+            model_or_iterable = [model_or_iterable]
+        for model in model_or_iterable:
+            if model in self.registry:
+                raise AlreadyRegistered('The model %s is already registered' % model.__class__.__name__)
+            self.registry[model] = databrowse_class
+
+    def unregister(self, model_or_iterable):
+        """
+        Unregisters the given model(s).
+
+        If a model isn't already registered, this will raise NotRegistered.
+        """
+        if issubclass(model_or_iterable, models.Model):
+            model_or_iterable = [model_or_iterable]
+        for model in model_or_iterable:
+            if model not in self.registry:
+                raise NotRegistered('The model %s is not registered' % model.__class__.__name__)
+            del self.registry[model]
+
+    def root(self, request, url):
+        """
+        Handles main URL routing for the databrowse app.
+
+        `url` is the remainder of the URL -- e.g. 'comments/comment/'.
+        """
+        self.root_url = request.path[:len(request.path) - len(url)]
+        url = url.rstrip('/') # Trim trailing slash, if it exists.
+
+        if url == '':
+            return self.index(request)
+        elif '/' in url:
+            return self.model_page(request, *url.split('/', 2))
+
+        raise http.Http404('The requested databrowse page does not exist.')
+
+    def index(self, request):
+        m_list = [EasyModel(self, m) for m in self.registry.keys()]
+        return render_to_response('databrowse/homepage.html', {'model_list': m_list, 'root_url': self.root_url})
+
+    def model_page(self, request, app_label, model_name, rest_of_url=None):
+        """
+        Handles the model-specific functionality of the databrowse site, delegating
+        to the appropriate ModelDatabrowse class.
+        """
+        model = models.get_model(app_label, model_name)
+        if model is None:
+            raise http.Http404("App %r, model %r, not found." % (app_label, model_name))
+        try:
+            databrowse_class = self.registry[model]
+        except KeyError:
+            raise http.Http404("This model exists but has not been registered with databrowse.")
+        return databrowse_class(model, self).root(request, rest_of_url)
+
+site = DatabrowseSite()
+
+from django.contrib.databrowse.plugins.calendars import CalendarPlugin
+from django.contrib.databrowse.plugins.objects import ObjectDetailPlugin
+from django.contrib.databrowse.plugins.fieldchoices import FieldChoicePlugin
+
+class DefaultModelDatabrowse(ModelDatabrowse):
+    plugins = {'objects': ObjectDetailPlugin(), 'calendars': CalendarPlugin(), 'fields': FieldChoicePlugin()}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/base.html b/webapp/django/contrib/databrowse/templates/databrowse/base.html
new file mode 100644
index 0000000..a341985
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/base.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
+<head>
+<title>{% block title %}{% endblock %}</title>
+{% block style %}
+<style type="text/css">
+* { margin:0; padding:0; }
+body { background:#eee; color:#333; font:76%/1.6 "Lucida Grande","Bitstream Vera Sans",Verdana,sans-serif; }
+a { color: #5b80b2; text-decoration:none; }
+a:hover { text-decoration:underline; }
+a img { border:none; }
+h1 { font-size:1.8em; color:#666; margin:0.4em 0 0.2em 0; }
+h2 { font-size:1.5em; color:#666; margin:1em 0 0.2em 0; }
+p { margin:0.5em 0 1em 0; }
+.odd { background-color:#EDF3FE; }
+.quiet { color:#666; }
+/* FILTERS */
+.filter { color:#999; font-size:0.9em; float:left; margin-bottom:10px; margin-right:20px; }
+.filter strong { color:#666; }
+/* OBJECT LISTS */
+.objectlist { clear:both; margin:0 -20px; color:#666; }
+.objectlist li a { display:block; padding:1em 20px; }
+.objectlist li a:hover { background:#5b80b2; color:#3B5572; color:#fff; text-decoration:none; }
+.related h2 { font-size: 1em; margin-bottom: 0.6em; }
+.related .objectlist li a { padding: 0.6em 20px; }
+.related .objectlist li.odd { background:#eee; }
+/* OBJECT DETAIL */
+.objectinfo { border-collapse:collapse; color:#666; margin:0 -20px; }
+.objectinfo td, .objectinfo th { padding:1em 20px; vertical-align:top; }
+.objectinfo td { width:100%; }
+.objectinfo th { text-align:left; white-space:nowrap; }
+/* MODEL GROUPS */
+.modelgroup { color:#999; font-size:0.9em; margin:0 -20px; }
+.modelgroup h2 { font-size:1.2em; margin:0; }
+.modelgroup h2 a { display: block; padding: 0.83em 20px; }
+.modelgroup h2 a:hover { text-decoration: none; color: #fff; }
+.modelgroup p { float:left; margin:-2.65em 0 0 14em; position:relative; }
+.modelgroup p a { white-space:nowrap; }
+.modelgroup a.more { color:#999; }
+.modelgroup:hover { background:#5b80b2; color:#becfe5; }
+.modelgroup:hover p a { color:#becfe5; }
+.modelgroup:hover a { color:#fff; }
+.modelgroup:hover a.more { color:#fff; }
+/* BREADCRUMBS */
+#breadcrumbs { padding:10px 0; color:#999; font-size:0.9em; }
+/* HEADER */
+#header a { display:block; background:#eee; color:#676868; padding:10px 20px; font-weight:bold; font-size:1em; text-decoration:none; border-bottom:1px solid #ddd; }
+#header a:hover { text-decoration:underline; }
+/* CONTENT */
+#content { background:#fff; border-bottom:1px solid #ddd; padding:0 20px; }
+</style>
+{% endblock %}
+{% block extrahead %}{% endblock %}
+</head>
+<body id="{% block bodyid %}page{% endblock %}">
+<div id="header"><a href="{{ root_url }}">{% block databrowse_title %}Databrowse{% endblock %}</a></div>
+<div id="content">
+{% block content %}{% endblock %}
+</div>
+</body>
+</html>
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/base_site.html b/webapp/django/contrib/databrowse/templates/databrowse/base_site.html
new file mode 100644
index 0000000..b577ab8
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/base_site.html
@@ -0,0 +1 @@
+{% extends "databrowse/base.html" %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/calendar_day.html b/webapp/django/contrib/databrowse/templates/databrowse/calendar_day.html
new file mode 100644
index 0000000..bbb62cc
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/calendar_day.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ model.verbose_name_plural|capfirst }} with {{ field.verbose_name }} {{ day|date:"F j, Y" }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / <a href="../../../../">Calendars</a> / <a href="../../../">By {{ field.verbose_name }}</a> / <a href="../../">{{ day.year }}</a> / <a href="../">{{ day|date:"F" }}</a> / {{ day.day }}</div>
+
+<h1>{{ object_list.count }} {% if object_list.count|pluralize %}{{ model.verbose_name_plural|escape }}{% else %}{{ model.verbose_name|escape }}{% endif %} with {{ field.verbose_name }} on {{ day|date:"F j, Y" }}</h1>
+
+<ul class="objectlist">
+{% for object in object_list %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ object.url }}">{{ object|escape }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/calendar_homepage.html b/webapp/django/contrib/databrowse/templates/databrowse/calendar_homepage.html
new file mode 100644
index 0000000..85eb8af
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/calendar_homepage.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}Calendars{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / Calendars</div>
+
+<h1>Calendars</h1>
+
+<ul class="objectlist">
+{% for field in field_list %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ field.name }}/">{{ model.verbose_name_plural|capfirst }} by {{ field.verbose_name }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/calendar_main.html b/webapp/django/contrib/databrowse/templates/databrowse/calendar_main.html
new file mode 100644
index 0000000..b22a44d
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/calendar_main.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ field.verbose_name|capfirst }} calendar{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / <a href="../">Calendars</a> / By {{ field.verbose_name }}</div>
+
+<h1>{{ model.verbose_name_plural|capfirst }} by {{ field.verbose_name }}</h1>
+
+<ul class="objectlist">
+{% for year in date_list %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ year.year }}/">{{ year.year }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/calendar_month.html b/webapp/django/contrib/databrowse/templates/databrowse/calendar_month.html
new file mode 100644
index 0000000..70b7deb
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/calendar_month.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ model.verbose_name_plural|capfirst }} with {{ field.verbose_name }} in {{ month|date:"F Y" }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / <a href="../../../">Calendars</a> / <a href="../../">By {{ field.verbose_name }}</a> / <a href="../">{{ month.year }}</a> / {{ month|date:"F" }}</div>
+
+<h1>{{ object_list.count }} {% if object_list.count|pluralize %}{{ model.verbose_name_plural|escape }}{% else %}{{ model.verbose_name|escape }}{% endif %} with {{ field.verbose_name }} on {{ day|date:"F Y" }}</h1>
+
+<ul class="objectlist">
+{% for object in object_list %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ object.url }}">{{ object|escape }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/calendar_year.html b/webapp/django/contrib/databrowse/templates/databrowse/calendar_year.html
new file mode 100644
index 0000000..a6e6f53
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/calendar_year.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ model.verbose_name_plural|capfirst }} with {{ field.verbose_name }} in {{ year }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / <a href="../../">Calendars</a> / <a href="../">By {{ field.verbose_name }}</a> / {{ year }}</div>
+
+<h1>{{ model.verbose_name_plural|capfirst }} with {{ field.verbose_name }} in {{ year }}</h1>
+
+<ul class="objectlist">
+{% for month in date_list %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ month|date:"M"|lower }}/">{{ month|date:"F" }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/choice_detail.html b/webapp/django/contrib/databrowse/templates/databrowse/choice_detail.html
new file mode 100644
index 0000000..6cb73e7
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/choice_detail.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}: {{ value|escape }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / <a href="{{ field.url }}">By {{ field.field.verbose_name }}</a> / {{ value|escape }}</div>
+
+<h1>{{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}: {{ value|escape }}</h1>
+
+<ul class="objectlist">
+{% for object in object_list %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ object.url }}">{{ object|escape }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/choice_list.html b/webapp/django/contrib/databrowse/templates/databrowse/choice_list.html
new file mode 100644
index 0000000..95cd88b
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/choice_list.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / By {{ field.field.verbose_name }}</div>
+
+<h1>{{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}</h1>
+
+<ul class="objectlist">
+{% for choice in field.choices %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ choice.url }}">{{ choice.label|escape }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/fieldchoice_detail.html b/webapp/django/contrib/databrowse/templates/databrowse/fieldchoice_detail.html
new file mode 100644
index 0000000..7801f3f
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/fieldchoice_detail.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ model.verbose_name_plural|capfirst|escape }} with {{ field.field.verbose_name|escape }} {{ value|escape }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / <a href="../../">Fields</a> / <a href="../">By {{ field.field.verbose_name|escape }}</a> / {{ value|escape }}</div>
+
+<h1>{{ object_list.count }} {% if object_list.count|pluralize %}{{ model.verbose_name_plural|escape }}{% else %}{{ model.verbose_name|escape }}{% endif %} with {{ field.field.verbose_name|escape }} {{ value|escape }}</h1>
+
+<ul class="objectlist">
+{% for object in object_list %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ object.url }}">{{ object|escape }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/fieldchoice_homepage.html b/webapp/django/contrib/databrowse/templates/databrowse/fieldchoice_homepage.html
new file mode 100644
index 0000000..3259824
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/fieldchoice_homepage.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}Browsable fields in {{ model.verbose_name_plural|escape }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / Fields</div>
+
+<h1>Browsable fields in {{ model.verbose_name_plural }}</h1>
+
+<ul class="objectlist">
+{% for field in field_list %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ field.name }}/">{{ model.verbose_name_plural|capfirst }} by {{ field.verbose_name }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/fieldchoice_list.html b/webapp/django/contrib/databrowse/templates/databrowse/fieldchoice_list.html
new file mode 100644
index 0000000..71b906d
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/fieldchoice_list.html
@@ -0,0 +1,17 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ model.verbose_name_plural|capfirst|escape }} by {{ field.field.verbose_name|escape }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a> / <a href="../">Fields</a> / By {{ field.field.verbose_name|escape }}</div>
+
+<h1>{{ model.verbose_name_plural|capfirst|escape }} by {{ field.field.verbose_name|escape }}</h1>
+
+<ul class="objectlist">
+{% for object in object_list %}
+<li class="{% cycle 'odd' 'even' %}"><a href="{{ object|iriencode }}/">{{ object|escape }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/homepage.html b/webapp/django/contrib/databrowse/templates/databrowse/homepage.html
new file mode 100644
index 0000000..718e577
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/homepage.html
@@ -0,0 +1,21 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}Databrowse{% endblock %}
+
+{% block bodyid %}homepage{% endblock %}
+
+{% block content %}
+
+{% for model in model_list %}
+  <div class="modelgroup {% cycle 'even' 'odd' %}">
+	  <h2><a href="{{ model.url }}">{{ model.verbose_name_plural|capfirst }}</a></h2>
+		<p>
+		{% for object in model.sample_objects %}
+			<a href="{{ object.url }}">{{ object|escape }}</a>, 
+		{% endfor %}
+			<a class="more" href="{{ model.url }}">More &rarr;</a>
+		</p>
+  </div>
+{% endfor %}
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/model_detail.html b/webapp/django/contrib/databrowse/templates/databrowse/model_detail.html
new file mode 100644
index 0000000..b66bc09
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/model_detail.html
@@ -0,0 +1,19 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ model.verbose_name_plural|capfirst }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / {{ model.verbose_name_plural|capfirst }}</div>
+
+<h1>{{ model.objects.count }} {% if model.objects.count|pluralize %}{{ model.verbose_name_plural }}{% else %}{{ model.verbose_name }}{% endif %}</h1>
+
+{{ plugin_html }}
+
+<ul class="objectlist">
+{% for object in model.objects %}
+    <li class="{% cycle 'odd' 'even' %}"><a href="{{ object.url }}">{{ object|escape }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/templates/databrowse/object_detail.html b/webapp/django/contrib/databrowse/templates/databrowse/object_detail.html
new file mode 100644
index 0000000..7c1bd3e
--- /dev/null
+++ b/webapp/django/contrib/databrowse/templates/databrowse/object_detail.html
@@ -0,0 +1,41 @@
+{% extends "databrowse/base_site.html" %}
+
+{% block title %}{{ object.model.verbose_name|capfirst }}: {{ object }}{% endblock %}
+
+{% block content %}
+
+<div id="breadcrumbs"><a href="{{ root_url }}">Home</a> / <a href="{{ object.model.url }}">{{ object.model.verbose_name_plural|capfirst }}</a> / {{ object|escape }}</div>
+
+<h1>{{ object.model.verbose_name|capfirst }}: {{ object|escape }}</h1>
+
+<table class="objectinfo">
+{% for field in object.fields %}
+<tr class="{% cycle 'odd' 'even' %}">
+<th>{{ field.field.verbose_name|capfirst }}</th>
+<td>
+{% if field.urls %}
+{% for value, url in field.urls %}
+{% if url %}<a href="{{ url }}">{% endif %}{{ value|escape }}{% if url %}</a>{% endif %}{% if not forloop.last %}, {% endif %}
+{% endfor %}
+{% else %}None{% endif %}
+</td>
+</tr>
+{% endfor %}
+</table>
+
+{% for related_object in object.related_objects %}
+  <div class="related">
+  <h2>Appears in "{{ related_object.related_field }}" in the following {{ related_object.model.verbose_name_plural }}:</h2>
+  {% if related_object.object_list %}
+  <ul class="objectlist">
+    {% for object in related_object.object_list %}
+    <li class="{% cycle 'odd' 'even' %}"><a href="{{ object.url }}">{{ object|escape }}</a></li>
+    {% endfor %}
+  </ul>
+  {% else %}
+  <p class="quiet">(None)</p>
+  {% endif %}
+  </div>
+{% endfor %}
+
+{% endblock %}
diff --git a/webapp/django/contrib/databrowse/urls.py b/webapp/django/contrib/databrowse/urls.py
new file mode 100644
index 0000000..9b85d14
--- /dev/null
+++ b/webapp/django/contrib/databrowse/urls.py
@@ -0,0 +1,20 @@
+from django.conf.urls.defaults import *
+from django.contrib.databrowse import views
+
+# Note: The views in this URLconf all require a 'models' argument,
+# which is a list of model classes (*not* instances).
+
+urlpatterns = patterns('',
+    #(r'^$', views.homepage),
+    #(r'^([^/]+)/([^/]+)/$', views.model_detail),
+
+    (r'^([^/]+)/([^/]+)/fields/(\w+)/$', views.choice_list),
+    (r'^([^/]+)/([^/]+)/fields/(\w+)/(.*)/$', views.choice_detail),
+
+    #(r'^([^/]+)/([^/]+)/calendars/(\w+)/$', views.calendar_main),
+    #(r'^([^/]+)/([^/]+)/calendars/(\w+)/(\d{4})/$', views.calendar_year),
+    #(r'^([^/]+)/([^/]+)/calendars/(\w+)/(\d{4})/(\w{3})/$', views.calendar_month),
+    #(r'^([^/]+)/([^/]+)/calendars/(\w+)/(\d{4})/(\w{3})/(\d{1,2})/$', views.calendar_day),
+
+    #(r'^([^/]+)/([^/]+)/objects/(.*)/$', views.object_detail),
+)
diff --git a/webapp/django/contrib/databrowse/views.py b/webapp/django/contrib/databrowse/views.py
new file mode 100644
index 0000000..4543e95
--- /dev/null
+++ b/webapp/django/contrib/databrowse/views.py
@@ -0,0 +1,19 @@
+from django.http import Http404
+from django.shortcuts import render_to_response
+
+###########
+# CHOICES #
+###########
+
+def choice_list(request, app_label, module_name, field_name, models):
+    m, f = lookup_field(app_label, module_name, field_name, models)
+    return render_to_response('databrowse/choice_list.html', {'model': m, 'field': f})
+
+def choice_detail(request, app_label, module_name, field_name, field_val, models):
+    m, f = lookup_field(app_label, module_name, field_name, models)
+    try:
+        label = dict(f.field.choices)[field_val]
+    except KeyError:
+        raise Http404('Invalid choice value given')
+    obj_list = m.objects(**{f.field.name: field_val})
+    return render_to_response('databrowse/choice_detail.html', {'model': m, 'field': f, 'value': label, 'object_list': obj_list})
diff --git a/webapp/django/contrib/flatpages/README.TXT b/webapp/django/contrib/flatpages/README.TXT
new file mode 100644
index 0000000..d307137
--- /dev/null
+++ b/webapp/django/contrib/flatpages/README.TXT
@@ -0,0 +1,8 @@
+This is an optional add-on app, flatpages.
+
+For full documentation, see either of these:
+
+    * The file docs/flatpages.txt in the Django distribution
+    * http://www.djangoproject.com/documentation/flatpages/ on the Web
+
+Both have identical content.
diff --git a/webapp/django/contrib/flatpages/__init__.py b/webapp/django/contrib/flatpages/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/flatpages/__init__.py
diff --git a/webapp/django/contrib/flatpages/admin.py b/webapp/django/contrib/flatpages/admin.py
new file mode 100644
index 0000000..b6fdba3
--- /dev/null
+++ b/webapp/django/contrib/flatpages/admin.py
@@ -0,0 +1,28 @@
+from django import forms
+from django.contrib import admin
+from django.contrib.flatpages.models import FlatPage
+from django.utils.translation import ugettext_lazy as _
+
+
+class FlatpageForm(forms.ModelForm):
+    url = forms.RegexField(label=_("URL"), max_length=100, regex=r'^[-\w/]+$',
+        help_text = _("Example: '/about/contact/'. Make sure to have leading"
+                      " and trailing slashes."),
+        error_message = _("This value must contain only letters, numbers,"
+                          " underscores, dashes or slashes."))
+
+    class Meta:
+        model = FlatPage
+
+
+class FlatPageAdmin(admin.ModelAdmin):
+    form = FlatpageForm
+    fieldsets = (
+        (None, {'fields': ('url', 'title', 'content', 'sites')}),
+        (_('Advanced options'), {'classes': ('collapse',), 'fields': ('enable_comments', 'registration_required', 'template_name')}),
+    )
+    list_display = ('url', 'title')
+    list_filter = ('sites', 'enable_comments', 'registration_required')
+    search_fields = ('url', 'title')
+
+admin.site.register(FlatPage, FlatPageAdmin)
diff --git a/webapp/django/contrib/flatpages/middleware.py b/webapp/django/contrib/flatpages/middleware.py
new file mode 100644
index 0000000..fb98c39
--- /dev/null
+++ b/webapp/django/contrib/flatpages/middleware.py
@@ -0,0 +1,18 @@
+from django.contrib.flatpages.views import flatpage
+from django.http import Http404
+from django.conf import settings
+
+class FlatpageFallbackMiddleware(object):
+    def process_response(self, request, response):
+        if response.status_code != 404:
+            return response # No need to check for a flatpage for non-404 responses.
+        try:
+            return flatpage(request, request.path_info)
+        # Return the original response if any errors happened. Because this
+        # is a middleware, we can't assume the errors will be caught elsewhere.
+        except Http404:
+            return response
+        except:
+            if settings.DEBUG:
+                raise
+            return response
diff --git a/webapp/django/contrib/flatpages/models.py b/webapp/django/contrib/flatpages/models.py
new file mode 100644
index 0000000..02005dd
--- /dev/null
+++ b/webapp/django/contrib/flatpages/models.py
@@ -0,0 +1,27 @@
+from django.core import validators
+from django.db import models
+from django.contrib.sites.models import Site
+from django.utils.translation import ugettext_lazy as _
+
+
+class FlatPage(models.Model):
+    url = models.CharField(_('URL'), max_length=100, db_index=True)
+    title = models.CharField(_('title'), max_length=200)
+    content = models.TextField(_('content'), blank=True)
+    enable_comments = models.BooleanField(_('enable comments'))
+    template_name = models.CharField(_('template name'), max_length=70, blank=True,
+        help_text=_("Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."))
+    registration_required = models.BooleanField(_('registration required'), help_text=_("If this is checked, only logged-in users will be able to view the page."))
+    sites = models.ManyToManyField(Site)
+
+    class Meta:
+        db_table = 'django_flatpage'
+        verbose_name = _('flat page')
+        verbose_name_plural = _('flat pages')
+        ordering = ('url',)
+
+    def __unicode__(self):
+        return u"%s -- %s" % (self.url, self.title)
+
+    def get_absolute_url(self):
+        return self.url
diff --git a/webapp/django/contrib/flatpages/urls.py b/webapp/django/contrib/flatpages/urls.py
new file mode 100644
index 0000000..4928930
--- /dev/null
+++ b/webapp/django/contrib/flatpages/urls.py
@@ -0,0 +1,5 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('django.contrib.flatpages.views',
+    (r'^(?P<url>.*)$', 'flatpage'),
+)
diff --git a/webapp/django/contrib/flatpages/views.py b/webapp/django/contrib/flatpages/views.py
new file mode 100644
index 0000000..37d12c9
--- /dev/null
+++ b/webapp/django/contrib/flatpages/views.py
@@ -0,0 +1,48 @@
+from django.contrib.flatpages.models import FlatPage
+from django.template import loader, RequestContext
+from django.shortcuts import get_object_or_404
+from django.http import HttpResponse, HttpResponseRedirect
+from django.conf import settings
+from django.core.xheaders import populate_xheaders
+from django.utils.safestring import mark_safe
+
+DEFAULT_TEMPLATE = 'flatpages/default.html'
+
+def flatpage(request, url):
+    """
+    Flat page view.
+
+    Models: `flatpages.flatpages`
+    Templates: Uses the template defined by the ``template_name`` field,
+        or `flatpages/default.html` if template_name is not defined.
+    Context:
+        flatpage
+            `flatpages.flatpages` object
+    """
+    if not url.endswith('/') and settings.APPEND_SLASH:
+        return HttpResponseRedirect("%s/" % request.path)
+    if not url.startswith('/'):
+        url = "/" + url
+    f = get_object_or_404(FlatPage, url__exact=url, sites__id__exact=settings.SITE_ID)
+    # If registration is required for accessing this page, and the user isn't
+    # logged in, redirect to the login page.
+    if f.registration_required and not request.user.is_authenticated():
+        from django.contrib.auth.views import redirect_to_login
+        return redirect_to_login(request.path)
+    if f.template_name:
+        t = loader.select_template((f.template_name, DEFAULT_TEMPLATE))
+    else:
+        t = loader.get_template(DEFAULT_TEMPLATE)
+
+    # To avoid having to always use the "|safe" filter in flatpage templates,
+    # mark the title and content as already safe (since they are raw HTML
+    # content in the first place).
+    f.title = mark_safe(f.title)
+    f.content = mark_safe(f.content)
+
+    c = RequestContext(request, {
+        'flatpage': f,
+    })
+    response = HttpResponse(t.render(c))
+    populate_xheaders(request, response, FlatPage, f.id)
+    return response
diff --git a/webapp/django/contrib/formtools/__init__.py b/webapp/django/contrib/formtools/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/formtools/__init__.py
diff --git a/webapp/django/contrib/formtools/models.py b/webapp/django/contrib/formtools/models.py
new file mode 100644
index 0000000..13990e2
--- /dev/null
+++ b/webapp/django/contrib/formtools/models.py
@@ -0,0 +1 @@
+""" models.py (even empty) currently required by the runtests.py to enable unit tests """
diff --git a/webapp/django/contrib/formtools/preview.py b/webapp/django/contrib/formtools/preview.py
new file mode 100644
index 0000000..c56fdff
--- /dev/null
+++ b/webapp/django/contrib/formtools/preview.py
@@ -0,0 +1,126 @@
+"""
+Formtools Preview application.
+"""
+
+import cPickle as pickle
+
+from django.conf import settings
+from django.http import Http404
+from django.shortcuts import render_to_response
+from django.template.context import RequestContext
+from django.utils.hashcompat import md5_constructor
+
+AUTO_ID = 'formtools_%s' # Each form here uses this as its auto_id parameter.
+
+class FormPreview(object):
+    preview_template = 'formtools/preview.html'
+    form_template = 'formtools/form.html'
+
+    # METHODS SUBCLASSES SHOULDN'T OVERRIDE ###################################
+
+    def __init__(self, form):
+        # form should be a Form class, not an instance.
+        self.form, self.state = form, {}
+
+    def __call__(self, request, *args, **kwargs):
+        stage = {'1': 'preview', '2': 'post'}.get(request.POST.get(self.unused_name('stage')), 'preview')
+        self.parse_params(*args, **kwargs)
+        try:
+            method = getattr(self, stage + '_' + request.method.lower())
+        except AttributeError:
+            raise Http404
+        return method(request)
+
+    def unused_name(self, name):
+        """
+        Given a first-choice name, adds an underscore to the name until it
+        reaches a name that isn't claimed by any field in the form.
+
+        This is calculated rather than being hard-coded so that no field names
+        are off-limits for use in the form.
+        """
+        while 1:
+            try:
+                f = self.form.base_fields[name]
+            except KeyError:
+                break # This field name isn't being used by the form.
+            name += '_'
+        return name
+
+    def preview_get(self, request):
+        "Displays the form"
+        f = self.form(auto_id=AUTO_ID)
+        return render_to_response(self.form_template,
+            {'form': f, 'stage_field': self.unused_name('stage'), 'state': self.state},
+            context_instance=RequestContext(request))
+
+    def preview_post(self, request):
+        "Validates the POST data. If valid, displays the preview page. Else, redisplays form."
+        f = self.form(request.POST, auto_id=AUTO_ID)
+        context = {'form': f, 'stage_field': self.unused_name('stage'), 'state': self.state}
+        if f.is_valid():
+            context['hash_field'] = self.unused_name('hash')
+            context['hash_value'] = self.security_hash(request, f)
+            return render_to_response(self.preview_template, context, context_instance=RequestContext(request))
+        else:
+            return render_to_response(self.form_template, context, context_instance=RequestContext(request))
+
+    def post_post(self, request):
+        "Validates the POST data. If valid, calls done(). Else, redisplays form."
+        f = self.form(request.POST, auto_id=AUTO_ID)
+        if f.is_valid():
+            if self.security_hash(request, f) != request.POST.get(self.unused_name('hash')):
+                return self.failed_hash(request) # Security hash failed.
+            return self.done(request, f.cleaned_data)
+        else:
+            return render_to_response(self.form_template,
+                {'form': f, 'stage_field': self.unused_name('stage'), 'state': self.state},
+                context_instance=RequestContext(request))
+
+    # METHODS SUBCLASSES MIGHT OVERRIDE IF APPROPRIATE ########################
+
+    def parse_params(self, *args, **kwargs):
+        """
+        Given captured args and kwargs from the URLconf, saves something in
+        self.state and/or raises Http404 if necessary.
+
+        For example, this URLconf captures a user_id variable:
+
+            (r'^contact/(?P<user_id>\d{1,6})/$', MyFormPreview(MyForm)),
+
+        In this case, the kwargs variable in parse_params would be
+        {'user_id': 32} for a request to '/contact/32/'. You can use that
+        user_id to make sure it's a valid user and/or save it for later, for
+        use in done().
+        """
+        pass
+
+    def security_hash(self, request, form):
+        """
+        Calculates the security hash for the given Form instance.
+
+        This creates a list of the form field names/values in a deterministic
+        order, pickles the result with the SECRET_KEY setting and takes an md5
+        hash of that.
+
+        Subclasses may want to take into account request-specific information
+        such as the IP address.
+        """
+        data = [(bf.name, bf.data or '') for bf in form] + [settings.SECRET_KEY]
+        # Use HIGHEST_PROTOCOL because it's the most efficient. It requires
+        # Python 2.3, but Django requires 2.3 anyway, so that's OK.
+        pickled = pickle.dumps(data, pickle.HIGHEST_PROTOCOL)
+        return md5_constructor(pickled).hexdigest()
+
+    def failed_hash(self, request):
+        "Returns an HttpResponse in the case of an invalid security hash."
+        return self.preview_post(request)
+
+    # METHODS SUBCLASSES MUST OVERRIDE ########################################
+
+    def done(self, request, cleaned_data):
+        """
+        Does something with the cleaned_data and returns an
+        HttpResponseRedirect.
+        """
+        raise NotImplementedError('You must define a done() method on your %s subclass.' % self.__class__.__name__)
diff --git a/webapp/django/contrib/formtools/templates/formtools/form.html b/webapp/django/contrib/formtools/templates/formtools/form.html
new file mode 100644
index 0000000..194bbdd
--- /dev/null
+++ b/webapp/django/contrib/formtools/templates/formtools/form.html
@@ -0,0 +1,15 @@
+{% extends "base.html" %}
+
+{% block content %}
+
+{% if form.errors %}<h1>Please correct the following errors</h1>{% else %}<h1>Submit</h1>{% endif %}
+
+<form action="" method="post">
+<table>
+{{ form }}
+</table>
+<input type="hidden" name="{{ stage_field }}" value="1" />
+<p><input type="submit" value="Preview" /></p>
+</form>
+
+{% endblock %}
diff --git a/webapp/django/contrib/formtools/templates/formtools/preview.html b/webapp/django/contrib/formtools/templates/formtools/preview.html
new file mode 100644
index 0000000..9831157
--- /dev/null
+++ b/webapp/django/contrib/formtools/templates/formtools/preview.html
@@ -0,0 +1,36 @@
+{% extends "base.html" %}
+
+{% block content %}
+
+<h1>Preview your submission</h1>
+
+<table>
+{% for field in form %}
+<tr>
+<th>{{ field.label }}:</th>
+<td>{{ field.data|escape }}</td>
+</tr>
+{% endfor %}
+</table>
+
+<p>Security hash: {{ hash_value }}</p>
+
+<form action="" method="post">
+{% for field in form %}{{ field.as_hidden }}
+{% endfor %}
+<input type="hidden" name="{{ stage_field }}" value="2" />
+<input type="hidden" name="{{ hash_field }}" value="{{ hash_value }}" />
+<p><input type="submit" value="Submit" /></p>
+</form>
+
+<h1>Or edit it again</h1>
+
+<form action="" method="post">
+<table>
+{{ form }}
+</table>
+<input type="hidden" name="{{ stage_field }}" value="1" />
+<p><input type="submit" value="Preview" /></p>
+</form>
+
+{% endblock %}
diff --git a/webapp/django/contrib/formtools/test_urls.py b/webapp/django/contrib/formtools/test_urls.py
new file mode 100644
index 0000000..19dbbd1
--- /dev/null
+++ b/webapp/django/contrib/formtools/test_urls.py
@@ -0,0 +1,12 @@
+"""
+
+This is a urlconf to be loaded by tests.py. Add any urls needed
+for tests only.
+
+"""
+from django.conf.urls.defaults import *
+from django.contrib.formtools.tests import *
+
+urlpatterns = patterns('',
+                       (r'^test1/', TestFormPreview(TestForm)),
+                      )
diff --git a/webapp/django/contrib/formtools/tests.py b/webapp/django/contrib/formtools/tests.py
new file mode 100644
index 0000000..2ea0cc9
--- /dev/null
+++ b/webapp/django/contrib/formtools/tests.py
@@ -0,0 +1,87 @@
+from django import forms
+from django.contrib.formtools import preview
+from django import http
+from django.test import TestCase
+
+success_string = "Done was called!"
+test_data = {'field1': u'foo',
+             'field1_': u'asdf'}
+
+
+class TestFormPreview(preview.FormPreview):
+
+    def done(self, request, cleaned_data):
+        return http.HttpResponse(success_string)
+
+
+class TestForm(forms.Form):
+    field1 = forms.CharField()
+    field1_ = forms.CharField()
+
+
+class PreviewTests(TestCase):
+    urls = 'django.contrib.formtools.test_urls'
+
+    def setUp(self):
+        # Create a FormPreview instance to share between tests
+        self.preview = preview.FormPreview(TestForm)
+        input_template = '<input type="hidden" name="%s" value="%s" />'
+        self.input = input_template % (self.preview.unused_name('stage'), "%d")
+
+    def test_unused_name(self):
+        """
+        Verifies name mangling to get uniue field name.
+        """
+        self.assertEqual(self.preview.unused_name('field1'), 'field1__')
+
+    def test_form_get(self):
+        """
+        Test contrib.formtools.preview form retrieval.
+
+        Use the client library to see if we can sucessfully retrieve
+        the form (mostly testing the setup ROOT_URLCONF
+        process). Verify that an additional  hidden input field
+        is created to manage the stage.
+
+        """
+        response = self.client.get('/test1/')
+        stage = self.input % 1
+        self.assertContains(response, stage, 1)
+
+    def test_form_preview(self):
+        """
+        Test contrib.formtools.preview form preview rendering.
+
+        Use the client library to POST to the form to see if a preview
+        is returned.  If we do get a form back check that the hidden
+        value is correctly managing the state of the form.
+
+        """
+        # Pass strings for form submittal and add stage variable to
+        # show we previously saw first stage of the form.
+        test_data.update({'stage': 1})
+        response = self.client.post('/test1/', test_data)
+        # Check to confirm stage is set to 2 in output form.
+        stage = self.input % 2
+        self.assertContains(response, stage, 1)
+
+    def test_form_submit(self):
+        """
+        Test contrib.formtools.preview form submittal.
+
+        Use the client library to POST to the form with stage set to 3
+        to see if our forms done() method is called. Check first
+        without the security hash, verify failure, retry with security
+        hash and verify sucess.
+
+        """
+        # Pass strings for form submittal and add stage variable to
+        # show we previously saw first stage of the form.
+        test_data.update({'stage': 2})
+        response = self.client.post('/test1/', test_data)
+        self.failIfEqual(response.content, success_string)
+        hash = self.preview.security_hash(None, TestForm(test_data))
+        test_data.update({'hash': hash})
+        response = self.client.post('/test1/', test_data)
+        self.assertEqual(response.content, success_string)
+
diff --git a/webapp/django/contrib/formtools/wizard.py b/webapp/django/contrib/formtools/wizard.py
new file mode 100644
index 0000000..984b6e4
--- /dev/null
+++ b/webapp/django/contrib/formtools/wizard.py
@@ -0,0 +1,247 @@
+"""
+FormWizard class -- implements a multi-page form, validating between each
+step and storing the form's state as HTML hidden fields so that no state is
+stored on the server side.
+"""
+
+import cPickle as pickle
+
+from django import forms
+from django.conf import settings
+from django.http import Http404
+from django.shortcuts import render_to_response
+from django.template.context import RequestContext
+from django.utils.hashcompat import md5_constructor
+
+class FormWizard(object):
+    # Dictionary of extra template context variables.
+    extra_context = {}
+
+    # The HTML (and POST data) field name for the "step" variable.
+    step_field_name="wizard_step"
+
+    # METHODS SUBCLASSES SHOULDN'T OVERRIDE ###################################
+
+    def __init__(self, form_list, initial=None):
+        "form_list should be a list of Form classes (not instances)."
+        self.form_list = form_list[:]
+        self.initial = initial or {}
+        self.step = 0 # A zero-based counter keeping track of which step we're in.
+
+    def __repr__(self):
+        return "step: %d\nform_list: %s\ninitial_data: %s" % (self.step, self.form_list, self.initial)
+
+    def get_form(self, step, data=None):
+        "Helper method that returns the Form instance for the given step."
+        return self.form_list[step](data, prefix=self.prefix_for_step(step), initial=self.initial.get(step, None))
+
+    def num_steps(self):
+        "Helper method that returns the number of steps."
+        # You might think we should just set "self.form_list = len(form_list)"
+        # in __init__(), but this calculation needs to be dynamic, because some
+        # hook methods might alter self.form_list.
+        return len(self.form_list)
+
+    def __call__(self, request, *args, **kwargs):
+        """
+        Main method that does all the hard work, conforming to the Django view
+        interface.
+        """
+        if 'extra_context' in kwargs:
+            self.extra_context.update(kwargs['extra_context'])
+        current_step = self.determine_step(request, *args, **kwargs)
+        self.parse_params(request, *args, **kwargs)
+
+        # Sanity check.
+        if current_step >= self.num_steps():
+            raise Http404('Step %s does not exist' % current_step)
+
+        # For each previous step, verify the hash and process.
+        # TODO: Move "hash_%d" to a method to make it configurable.
+        for i in range(current_step):
+            form = self.get_form(i, request.POST)
+            if request.POST.get("hash_%d" % i, '') != self.security_hash(request, form):
+                return self.render_hash_failure(request, i)
+            self.process_step(request, form, i)
+
+        # Process the current step. If it's valid, go to the next step or call
+        # done(), depending on whether any steps remain.
+        if request.method == 'POST':
+            form = self.get_form(current_step, request.POST)
+        else:
+            form = self.get_form(current_step)
+        if form.is_valid():
+            self.process_step(request, form, current_step)
+            next_step = current_step + 1
+
+            # If this was the last step, validate all of the forms one more
+            # time, as a sanity check, and call done().
+            num = self.num_steps()
+            if next_step == num:
+                final_form_list = [self.get_form(i, request.POST) for i in range(num)]
+
+                # Validate all the forms. If any of them fail validation, that
+                # must mean the validator relied on some other input, such as
+                # an external Web site.
+                for i, f in enumerate(final_form_list):
+                    if not f.is_valid():
+                        return self.render_revalidation_failure(request, i, f)
+                return self.done(request, final_form_list)
+
+            # Otherwise, move along to the next step.
+            else:
+                form = self.get_form(next_step)
+                current_step = next_step
+
+        return self.render(form, request, current_step)
+
+    def render(self, form, request, step, context=None):
+        "Renders the given Form object, returning an HttpResponse."
+        old_data = request.POST
+        prev_fields = []
+        if old_data:
+            hidden = forms.HiddenInput()
+            # Collect all data from previous steps and render it as HTML hidden fields.
+            for i in range(step):
+                old_form = self.get_form(i, old_data)
+                hash_name = 'hash_%s' % i
+                prev_fields.extend([bf.as_hidden() for bf in old_form])
+                prev_fields.append(hidden.render(hash_name, old_data.get(hash_name, self.security_hash(request, old_form))))
+        return self.render_template(request, form, ''.join(prev_fields), step, context)
+
+    # METHODS SUBCLASSES MIGHT OVERRIDE IF APPROPRIATE ########################
+
+    def prefix_for_step(self, step):
+        "Given the step, returns a Form prefix to use."
+        return str(step)
+
+    def render_hash_failure(self, request, step):
+        """
+        Hook for rendering a template if a hash check failed.
+
+        step is the step that failed. Any previous step is guaranteed to be
+        valid.
+
+        This default implementation simply renders the form for the given step,
+        but subclasses may want to display an error message, etc.
+        """
+        return self.render(self.get_form(step), request, step, context={'wizard_error': 'We apologize, but your form has expired. Please continue filling out the form from this page.'})
+
+    def render_revalidation_failure(self, request, step, form):
+        """
+        Hook for rendering a template if final revalidation failed.
+
+        It is highly unlikely that this point would ever be reached, but See
+        the comment in __call__() for an explanation.
+        """
+        return self.render(form, request, step)
+
+    def security_hash(self, request, form):
+        """
+        Calculates the security hash for the given HttpRequest and Form instances.
+
+        This creates a list of the form field names/values in a deterministic
+        order, pickles the result with the SECRET_KEY setting and takes an md5
+        hash of that.
+
+        Subclasses may want to take into account request-specific information,
+        such as the IP address.
+        """
+        data = [(bf.name, bf.data or '') for bf in form] + [settings.SECRET_KEY]
+        # Use HIGHEST_PROTOCOL because it's the most efficient. It requires
+        # Python 2.3, but Django requires 2.3 anyway, so that's OK.
+        pickled = pickle.dumps(data, pickle.HIGHEST_PROTOCOL)
+        return md5_constructor(pickled).hexdigest()
+
+    def determine_step(self, request, *args, **kwargs):
+        """
+        Given the request object and whatever *args and **kwargs were passed to
+        __call__(), returns the current step (which is zero-based).
+
+        Note that the result should not be trusted. It may even be a completely
+        invalid number. It's not the job of this method to validate it.
+        """
+        if not request.POST:
+            return 0
+        try:
+            step = int(request.POST.get(self.step_field_name, 0))
+        except ValueError:
+            return 0
+        return step
+
+    def parse_params(self, request, *args, **kwargs):
+        """
+        Hook for setting some state, given the request object and whatever
+        *args and **kwargs were passed to __call__(), sets some state.
+
+        This is called at the beginning of __call__().
+        """
+        pass
+
+    def get_template(self, step):
+        """
+        Hook for specifying the name of the template to use for a given step.
+
+        Note that this can return a tuple of template names if you'd like to
+        use the template system's select_template() hook.
+        """
+        return 'forms/wizard.html'
+
+    def render_template(self, request, form, previous_fields, step, context=None):
+        """
+        Renders the template for the given step, returning an HttpResponse object.
+
+        Override this method if you want to add a custom context, return a
+        different MIME type, etc. If you only need to override the template
+        name, use get_template() instead.
+
+        The template will be rendered with the following context:
+            step_field -- The name of the hidden field containing the step.
+            step0      -- The current step (zero-based).
+            step       -- The current step (one-based).
+            step_count -- The total number of steps.
+            form       -- The Form instance for the current step (either empty
+                          or with errors).
+            previous_fields -- A string representing every previous data field,
+                          plus hashes for completed forms, all in the form of
+                          hidden fields. Note that you'll need to run this
+                          through the "safe" template filter, to prevent
+                          auto-escaping, because it's raw HTML.
+        """
+        context = context or {}
+        context.update(self.extra_context)
+        return render_to_response(self.get_template(self.step), dict(context,
+            step_field=self.step_field_name,
+            step0=step,
+            step=step + 1,
+            step_count=self.num_steps(),
+            form=form,
+            previous_fields=previous_fields
+        ), context_instance=RequestContext(request))
+
+    def process_step(self, request, form, step):
+        """
+        Hook for modifying the FormWizard's internal state, given a fully
+        validated Form object. The Form is guaranteed to have clean, valid
+        data.
+
+        This method should *not* modify any of that data. Rather, it might want
+        to set self.extra_context or dynamically alter self.form_list, based on
+        previously submitted forms.
+
+        Note that this method is called every time a page is rendered for *all*
+        submitted steps.
+        """
+        pass
+
+    # METHODS SUBCLASSES MUST OVERRIDE ########################################
+
+    def done(self, request, form_list):
+        """
+        Hook for doing something with the validated data. This is responsible
+        for the final processing.
+
+        form_list is a list of Form instances, each containing clean, valid
+        data.
+        """
+        raise NotImplementedError("Your %s class has not defined a done() method, which is required." % self.__class__.__name__)
diff --git a/webapp/django/contrib/gis/__init__.py b/webapp/django/contrib/gis/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/__init__.py
diff --git a/webapp/django/contrib/gis/admin/__init__.py b/webapp/django/contrib/gis/admin/__init__.py
new file mode 100644
index 0000000..20315c5
--- /dev/null
+++ b/webapp/django/contrib/gis/admin/__init__.py
@@ -0,0 +1,12 @@
+# Getting the normal admin routines, classes, and `site` instance.
+from django.contrib.admin import autodiscover, site, StackedInline, TabularInline, HORIZONTAL, VERTICAL
+
+# Geographic admin options classes and widgets.
+from django.contrib.gis.admin.options import GeoModelAdmin
+from django.contrib.gis.admin.widgets import OpenLayersWidget
+
+try:
+    from django.contrib.gis.admin.options import OSMGeoAdmin
+    HAS_OSM = True
+except ImportError:
+    HAS_OSM = False
diff --git a/webapp/django/contrib/gis/admin/options.py b/webapp/django/contrib/gis/admin/options.py
new file mode 100644
index 0000000..71fb87b
--- /dev/null
+++ b/webapp/django/contrib/gis/admin/options.py
@@ -0,0 +1,128 @@
+from django.conf import settings
+from django.contrib.admin import ModelAdmin
+from django.contrib.gis.admin.widgets import OpenLayersWidget
+from django.contrib.gis.gdal import OGRGeomType
+from django.contrib.gis.db import models
+
+class GeoModelAdmin(ModelAdmin):
+    """
+    The administration options class for Geographic models. Map settings
+    may be overloaded from their defaults to create custom maps.
+    """
+    # The default map settings that may be overloaded -- still subject
+    # to API changes.
+    default_lon = 0
+    default_lat = 0
+    default_zoom = 4
+    display_wkt = False
+    display_srid = False
+    extra_js = []
+    num_zoom = 18
+    max_zoom = False
+    min_zoom = False
+    units = False
+    max_resolution = False
+    max_extent = False
+    modifiable = True
+    mouse_position = True
+    scale_text = True
+    layerswitcher = True
+    scrollable = True
+    admin_media_prefix = settings.ADMIN_MEDIA_PREFIX
+    map_width = 600
+    map_height = 400
+    map_srid = 4326
+    map_template = 'gis/admin/openlayers.html'
+    openlayers_url = 'http://openlayers.org/api/2.6/OpenLayers.js'
+    wms_url = 'http://labs.metacarta.com/wms/vmap0'
+    wms_layer = 'basic'
+    wms_name = 'OpenLayers WMS'
+    debug = False
+    widget = OpenLayersWidget
+
+    def _media(self):
+        "Injects OpenLayers JavaScript into the admin."
+        media = super(GeoModelAdmin, self)._media()
+        media.add_js([self.openlayers_url])
+        media.add_js(self.extra_js)
+        return media
+    media = property(_media)
+
+    def formfield_for_dbfield(self, db_field, **kwargs):
+        """
+        Overloaded from ModelAdmin so that an OpenLayersWidget is used
+        for viewing/editing GeometryFields.
+        """
+        if isinstance(db_field, models.GeometryField):
+            # Setting the widget with the newly defined widget.
+            kwargs['widget'] = self.get_map_widget(db_field)
+            return db_field.formfield(**kwargs)
+        else:
+            return super(GeoModelAdmin, self).formfield_for_dbfield(db_field, **kwargs)
+
+    def get_map_widget(self, db_field):
+        """
+        Returns a subclass of the OpenLayersWidget (or whatever was specified
+        in the `widget` attribute) using the settings from the attributes set 
+        in this class.
+        """
+        is_collection = db_field._geom in ('MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION')
+        if is_collection:
+            if db_field._geom == 'GEOMETRYCOLLECTION': collection_type = 'Any'
+            else: collection_type = OGRGeomType(db_field._geom.replace('MULTI', ''))
+        else:
+            collection_type = 'None'
+
+        class OLMap(self.widget):
+            template = self.map_template
+            geom_type = db_field._geom
+            params = {'admin_media_prefix' : self.admin_media_prefix,
+                      'default_lon' : self.default_lon,
+                      'default_lat' : self.default_lat,
+                      'default_zoom' : self.default_zoom,
+                      'display_wkt' : self.debug or self.display_wkt,
+                      'geom_type' : OGRGeomType(db_field._geom),
+                      'field_name' : db_field.name,
+                      'is_collection' : is_collection,
+                      'scrollable' : self.scrollable,
+                      'layerswitcher' : self.layerswitcher,
+                      'collection_type' : collection_type,
+                      'is_linestring' : db_field._geom in ('LINESTRING', 'MULTILINESTRING'),
+                      'is_polygon' : db_field._geom in ('POLYGON', 'MULTIPOLYGON'),
+                      'is_point' : db_field._geom in ('POINT', 'MULTIPOINT'),
+                      'num_zoom' : self.num_zoom,
+                      'max_zoom' : self.max_zoom,
+                      'min_zoom' : self.min_zoom,
+                      'units' : self.units, #likely shoud get from object
+                      'max_resolution' : self.max_resolution,
+                      'max_extent' : self.max_extent,
+                      'modifiable' : self.modifiable,
+                      'mouse_position' : self.mouse_position,
+                      'scale_text' : self.scale_text,
+                      'map_width' : self.map_width,
+                      'map_height' : self.map_height,
+                      'srid' : self.map_srid,
+                      'display_srid' : self.display_srid,
+                      'wms_url' : self.wms_url,
+                      'wms_layer' : self.wms_layer,
+                      'wms_name' : self.wms_name,
+                      'debug' : self.debug,
+                      }
+        return OLMap
+
+# Using the Beta OSM in the admin requires the following:
+#  (1) The Google Maps Mercator projection needs to be added
+#      to your `spatial_ref_sys` table.  You'll need at least GDAL 1.5:
+#      >>> from django.contrib.gis.gdal import SpatialReference
+#      >>> from django.contrib.gis.utils import add_postgis_srs
+#      >>> add_postgis_srs(SpatialReference(900913)) # Adding the Google Projection 
+from django.contrib.gis import gdal
+if gdal.HAS_GDAL:
+    class OSMGeoAdmin(GeoModelAdmin):
+        map_template = 'gis/admin/osm.html'
+        extra_js = ['http://openstreetmap.org/openlayers/OpenStreetMap.js']
+        num_zoom = 20
+        map_srid = 900913
+        max_extent = '-20037508,-20037508,20037508,20037508'
+        max_resolution = 156543.0339
+        units = 'm'
diff --git a/webapp/django/contrib/gis/admin/widgets.py b/webapp/django/contrib/gis/admin/widgets.py
new file mode 100644
index 0000000..27abc8f
--- /dev/null
+++ b/webapp/django/contrib/gis/admin/widgets.py
@@ -0,0 +1,92 @@
+from django.contrib.gis.gdal import OGRException
+from django.contrib.gis.geos import GEOSGeometry, GEOSException
+from django.forms.widgets import Textarea
+from django.template.loader import render_to_string
+
+class OpenLayersWidget(Textarea):
+    """
+    Renders an OpenLayers map using the WKT of the geometry.
+    """
+    def render(self, name, value, attrs=None):
+        # Update the template parameters with any attributes passed in.
+        if attrs: self.params.update(attrs)
+
+        # Defaulting the WKT value to a blank string -- this
+        # will be tested in the JavaScript and the appropriate
+        # interfaace will be constructed.
+        self.params['wkt'] = ''
+
+        # If a string reaches here (via a validation error on another
+        # field) then just reconstruct the Geometry.
+        if isinstance(value, basestring):
+            try:
+                value = GEOSGeometry(value)
+            except (GEOSException, ValueError):
+                value = None
+
+        if value and value.geom_type.upper() != self.geom_type:
+            value = None
+
+        # Constructing the dictionary of the map options.
+        self.params['map_options'] = self.map_options()
+
+        # Constructing the JavaScript module name using the ID of
+        # the GeometryField (passed in via the `attrs` keyword).
+        self.params['module'] = 'geodjango_%s' % self.params['field_name']
+
+        if value:
+            # Transforming the geometry to the projection used on the
+            # OpenLayers map.
+            srid = self.params['srid']
+            if value.srid != srid: 
+                try:
+                    value.transform(srid)
+                    wkt = value.wkt
+                except OGRException:
+                    wkt = ''
+            else:
+                wkt = value.wkt
+               
+            # Setting the parameter WKT with that of the transformed
+            # geometry.
+            self.params['wkt'] = wkt
+
+        return render_to_string(self.template, self.params)
+    
+    def map_options(self):
+        "Builds the map options hash for the OpenLayers template."
+
+        # JavaScript construction utilities for the Bounds and Projection.
+        def ol_bounds(extent):
+            return 'new OpenLayers.Bounds(%s)' % str(extent)
+        def ol_projection(srid):
+            return 'new OpenLayers.Projection("EPSG:%s")' % srid
+
+        # An array of the parameter name, the name of their OpenLayers
+        # counterpart, and the type of variable they are.
+        map_types = [('srid', 'projection', 'srid'), 
+                     ('display_srid', 'displayProjection', 'srid'), 
+                     ('units', 'units', str),
+                     ('max_resolution', 'maxResolution', float),
+                     ('max_extent', 'maxExtent', 'bounds'),
+                     ('num_zoom', 'numZoomLevels', int),
+                     ('max_zoom', 'maxZoomLevels', int),
+                     ('min_zoom', 'minZoomLevel', int),
+                     ]
+
+        # Building the map options hash.
+        map_options = {}
+        for param_name, js_name, option_type in map_types:
+            if self.params.get(param_name, False):
+                if option_type == 'srid':
+                    value = ol_projection(self.params[param_name])
+                elif option_type == 'bounds':
+                    value = ol_bounds(self.params[param_name])
+                elif option_type in (float, int):
+                    value = self.params[param_name]
+                elif option_type in (str,):
+                    value = '"%s"' % self.params[param_name]
+                else:
+                    raise TypeError
+                map_options[js_name] = value
+        return map_options
diff --git a/webapp/django/contrib/gis/db/__init__.py b/webapp/django/contrib/gis/db/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/db/__init__.py
diff --git a/webapp/django/contrib/gis/db/backend/__init__.py b/webapp/django/contrib/gis/db/backend/__init__.py
new file mode 100644
index 0000000..172c126
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/__init__.py
@@ -0,0 +1,18 @@
+"""
+ This module provides the backend for spatial SQL construction with Django.
+
+ Specifically, this module will import the correct routines and modules
+ needed for GeoDjango to interface with the spatial database.
+"""
+from django.conf import settings
+from django.contrib.gis.db.backend.util import gqn
+
+# Retrieving the necessary settings from the backend.
+if settings.DATABASE_ENGINE == 'postgresql_psycopg2':
+    from django.contrib.gis.db.backend.postgis import create_spatial_db, get_geo_where_clause, SpatialBackend
+elif settings.DATABASE_ENGINE == 'oracle':
+    from django.contrib.gis.db.backend.oracle import create_spatial_db, get_geo_where_clause, SpatialBackend
+elif settings.DATABASE_ENGINE == 'mysql':
+    from django.contrib.gis.db.backend.mysql import create_spatial_db, get_geo_where_clause, SpatialBackend
+else:
+    raise NotImplementedError('No Geographic Backend exists for %s' % settings.DATABASE_ENGINE)
diff --git a/webapp/django/contrib/gis/db/backend/adaptor.py b/webapp/django/contrib/gis/db/backend/adaptor.py
new file mode 100644
index 0000000..b2397e6
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/adaptor.py
@@ -0,0 +1,14 @@
+class WKTAdaptor(object):
+    """
+    This provides an adaptor for Geometries sent to the
+    MySQL and Oracle database backends.
+    """
+    def __init__(self, geom):
+        self.wkt = geom.wkt
+        self.srid = geom.srid
+
+    def __eq__(self, other):
+        return self.wkt == other.wkt and self.srid == other.srid 
+
+    def __str__(self):
+        return self.wkt
diff --git a/webapp/django/contrib/gis/db/backend/base.py b/webapp/django/contrib/gis/db/backend/base.py
new file mode 100644
index 0000000..d45ac7b
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/base.py
@@ -0,0 +1,29 @@
+"""
+ This module holds the base `SpatialBackend` object, which is
+ instantiated by each spatial backend with the features it has.
+"""
+# TODO: Create a `Geometry` protocol and allow user to use
+# different Geometry objects -- for now we just use GEOSGeometry.
+from django.contrib.gis.geos import GEOSGeometry, GEOSException
+
+class BaseSpatialBackend(object):
+    Geometry = GEOSGeometry
+    GeometryException = GEOSException
+
+    def __init__(self, **kwargs):
+        kwargs.setdefault('distance_functions', {})
+        kwargs.setdefault('limited_where', {})
+        for k, v in kwargs.iteritems(): setattr(self, k, v)
+ 
+    def __getattr__(self, name):
+        """
+        All attributes of the spatial backend return False by default.
+        """
+        try:
+            return self.__dict__[name]
+        except KeyError:
+            return False
+            
+        
+        
+    
diff --git a/webapp/django/contrib/gis/db/backend/mysql/__init__.py b/webapp/django/contrib/gis/db/backend/mysql/__init__.py
new file mode 100644
index 0000000..0484e5f
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/mysql/__init__.py
@@ -0,0 +1,13 @@
+__all__ = ['create_spatial_db', 'get_geo_where_clause', 'SpatialBackend']
+
+from django.contrib.gis.db.backend.base import BaseSpatialBackend
+from django.contrib.gis.db.backend.adaptor import WKTAdaptor
+from django.contrib.gis.db.backend.mysql.creation import create_spatial_db
+from django.contrib.gis.db.backend.mysql.field import MySQLGeoField
+from django.contrib.gis.db.backend.mysql.query import *
+
+SpatialBackend = BaseSpatialBackend(name='mysql', mysql=True,
+                                    gis_terms=MYSQL_GIS_TERMS,
+                                    select=GEOM_SELECT,
+                                    Adaptor=WKTAdaptor,
+                                    Field=MySQLGeoField)
diff --git a/webapp/django/contrib/gis/db/backend/mysql/creation.py b/webapp/django/contrib/gis/db/backend/mysql/creation.py
new file mode 100644
index 0000000..3da21a0
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/mysql/creation.py
@@ -0,0 +1,5 @@
+
+def create_spatial_db(test=True, verbosity=1, autoclobber=False):
+    if not test: raise NotImplementedError('This uses `create_test_db` from test/utils.py')
+    from django.db import connection
+    connection.creation.create_test_db(verbosity, autoclobber)
diff --git a/webapp/django/contrib/gis/db/backend/mysql/field.py b/webapp/django/contrib/gis/db/backend/mysql/field.py
new file mode 100644
index 0000000..f3151f9
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/mysql/field.py
@@ -0,0 +1,53 @@
+from django.db import connection
+from django.db.models.fields import Field # Django base Field class
+from django.contrib.gis.db.backend.mysql.query import GEOM_FROM_TEXT
+
+# Quotename & geographic quotename, respectively.
+qn = connection.ops.quote_name
+
+class MySQLGeoField(Field):
+    """
+    The backend-specific geographic field for MySQL.
+    """
+
+    def _geom_index(self, style, db_table):
+        """
+        Creates a spatial index for the geometry column.  If MyISAM tables are
+        used an R-Tree index is created, otherwise a B-Tree index is created. 
+        Thus, for best spatial performance, you should use MyISAM tables
+        (which do not support transactions).  For more information, see Ch. 
+        16.6.1 of the MySQL 5.0 documentation.
+        """
+
+        # Getting the index name.
+        idx_name = '%s_%s_id' % (db_table, self.column)
+        
+        sql = style.SQL_KEYWORD('CREATE SPATIAL INDEX ') + \
+              style.SQL_TABLE(qn(idx_name)) + \
+              style.SQL_KEYWORD(' ON ') + \
+              style.SQL_TABLE(qn(db_table)) + '(' + \
+              style.SQL_FIELD(qn(self.column)) + ');'
+        return sql
+
+    def _post_create_sql(self, style, db_table):
+        """
+        Returns SQL that will be executed after the model has been
+        created.
+        """
+        # Getting the geometric index for this Geometry column.
+        if self._index:
+            return (self._geom_index(style, db_table),)
+        else:
+            return ()
+
+    def db_type(self):
+        "The OpenGIS name is returned for the MySQL database column type."
+        return self._geom
+
+    def get_placeholder(self, value):
+        """
+        The placeholder here has to include MySQL's WKT constructor.  Because 
+        MySQL does not support spatial transformations, there is no need to 
+        modify the placeholder based on the contents of the given value.
+        """
+        return '%s(%%s)' % GEOM_FROM_TEXT
diff --git a/webapp/django/contrib/gis/db/backend/mysql/query.py b/webapp/django/contrib/gis/db/backend/mysql/query.py
new file mode 100644
index 0000000..2fa984f
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/mysql/query.py
@@ -0,0 +1,59 @@
+"""
+ This module contains the spatial lookup types, and the `get_geo_where_clause`
+ routine for MySQL.
+
+ Please note that MySQL only supports bounding box queries, also
+ known as MBRs (Minimum Bounding Rectangles).  Moreover, spatial
+ indices may only be used on MyISAM tables -- if you need 
+ transactions, take a look at PostGIS.
+"""
+from django.db import connection
+qn = connection.ops.quote_name
+
+# To ease implementation, WKT is passed to/from MySQL.
+GEOM_FROM_TEXT = 'GeomFromText'
+GEOM_FROM_WKB = 'GeomFromWKB'
+GEOM_SELECT = 'AsText(%s)'
+
+# WARNING: MySQL is NOT compliant w/the OpenGIS specification and
+# _every_ one of these lookup types is on the _bounding box_ only.
+MYSQL_GIS_FUNCTIONS = {
+    'bbcontains' : 'MBRContains', # For consistency w/PostGIS API
+    'bboverlaps' : 'MBROverlaps', # .. ..
+    'contained' : 'MBRWithin',    # .. ..
+    'contains' : 'MBRContains',
+    'disjoint' : 'MBRDisjoint',
+    'equals' : 'MBREqual',
+    'exact' : 'MBREqual',
+    'intersects' : 'MBRIntersects',
+    'overlaps' : 'MBROverlaps',
+    'same_as' : 'MBREqual',
+    'touches' : 'MBRTouches',
+    'within' : 'MBRWithin',
+    }
+
+# This lookup type does not require a mapping.
+MISC_TERMS = ['isnull']
+
+# Assacceptable lookup types for Oracle spatial.
+MYSQL_GIS_TERMS  = MYSQL_GIS_FUNCTIONS.keys()
+MYSQL_GIS_TERMS += MISC_TERMS
+MYSQL_GIS_TERMS = dict((term, None) for term in MYSQL_GIS_TERMS) # Making dictionary 
+
+def get_geo_where_clause(table_alias, name, lookup_type, geo_annot):
+    "Returns the SQL WHERE clause for use in MySQL spatial SQL construction."
+    # Getting the quoted field as `geo_col`.
+    geo_col = '%s.%s' % (qn(table_alias), qn(name))
+
+    # See if a MySQL Geometry function matches the lookup type next
+    lookup_info = MYSQL_GIS_FUNCTIONS.get(lookup_type, False)
+    if lookup_info:
+        return "%s(%s, %%s)" % (lookup_info, geo_col)
+    
+    # Handling 'isnull' lookup type
+    # TODO: Is this needed because MySQL cannot handle NULL
+    # geometries in its spatial indices.
+    if lookup_type == 'isnull':
+        return "%s IS %sNULL" % (geo_col, (not geo_annot.value and 'NOT ' or ''))
+
+    raise TypeError("Got invalid lookup_type: %s" % repr(lookup_type))
diff --git a/webapp/django/contrib/gis/db/backend/oracle/__init__.py b/webapp/django/contrib/gis/db/backend/oracle/__init__.py
new file mode 100644
index 0000000..3eee56e
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/oracle/__init__.py
@@ -0,0 +1,31 @@
+__all__ = ['create_spatial_db', 'get_geo_where_clause', 'SpatialBackend']
+
+from django.contrib.gis.db.backend.base import BaseSpatialBackend
+from django.contrib.gis.db.backend.oracle.adaptor import OracleSpatialAdaptor
+from django.contrib.gis.db.backend.oracle.creation import create_spatial_db
+from django.contrib.gis.db.backend.oracle.field import OracleSpatialField
+from django.contrib.gis.db.backend.oracle.query import *
+
+SpatialBackend = BaseSpatialBackend(name='oracle', oracle=True,
+                                    area=AREA,
+                                    centroid=CENTROID,
+                                    difference=DIFFERENCE,
+                                    distance=DISTANCE,
+                                    distance_functions=DISTANCE_FUNCTIONS,
+                                    gis_terms=ORACLE_SPATIAL_TERMS,
+                                    gml=ASGML,
+                                    intersection=INTERSECTION,
+                                    length=LENGTH,
+                                    limited_where = {'relate' : None},
+                                    num_geom=NUM_GEOM,
+                                    num_points=NUM_POINTS,
+                                    perimeter=LENGTH,
+                                    point_on_surface=POINT_ON_SURFACE,
+                                    select=GEOM_SELECT,
+                                    sym_difference=SYM_DIFFERENCE,
+                                    transform=TRANSFORM,
+                                    unionagg=UNIONAGG,
+                                    union=UNION,
+                                    Adaptor=OracleSpatialAdaptor,
+                                    Field=OracleSpatialField,
+                                    )
diff --git a/webapp/django/contrib/gis/db/backend/oracle/adaptor.py b/webapp/django/contrib/gis/db/backend/oracle/adaptor.py
new file mode 100644
index 0000000..95dc265
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/oracle/adaptor.py
@@ -0,0 +1,5 @@
+from cx_Oracle import CLOB
+from django.contrib.gis.db.backend.adaptor import WKTAdaptor
+
+class OracleSpatialAdaptor(WKTAdaptor):
+    input_size = CLOB
diff --git a/webapp/django/contrib/gis/db/backend/oracle/creation.py b/webapp/django/contrib/gis/db/backend/oracle/creation.py
new file mode 100644
index 0000000..d9b53d2
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/oracle/creation.py
@@ -0,0 +1,6 @@
+
+def create_spatial_db(test=True, verbosity=1, autoclobber=False):
+    "A wrapper over the Oracle `create_test_db` routine."
+    if not test: raise NotImplementedError('This uses `create_test_db` from db/backends/oracle/creation.py')
+    from django.db import connection
+    connection.creation.create_test_db(verbosity, autoclobber)
diff --git a/webapp/django/contrib/gis/db/backend/oracle/field.py b/webapp/django/contrib/gis/db/backend/oracle/field.py
new file mode 100644
index 0000000..22625f5
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/oracle/field.py
@@ -0,0 +1,103 @@
+from django.db import connection
+from django.db.backends.util import truncate_name
+from django.db.models.fields import Field # Django base Field class
+from django.contrib.gis.db.backend.util import gqn
+from django.contrib.gis.db.backend.oracle.query import TRANSFORM
+
+# Quotename & geographic quotename, respectively.
+qn = connection.ops.quote_name
+
+class OracleSpatialField(Field):
+    """
+    The backend-specific geographic field for Oracle Spatial.
+    """
+
+    empty_strings_allowed = False
+
+    def __init__(self, extent=(-180.0, -90.0, 180.0, 90.0), tolerance=0.05, **kwargs):
+        """
+        Oracle Spatial backend needs to have the extent -- for projected coordinate
+        systems _you must define the extent manually_, since the coordinates are
+        for geodetic systems.  The `tolerance` keyword specifies the tolerance
+        for error (in meters), and defaults to 0.05 (5 centimeters).
+        """
+        # Oracle Spatial specific keyword arguments.
+        self._extent = extent
+        self._tolerance = tolerance
+        # Calling the Django field initialization.
+        super(OracleSpatialField, self).__init__(**kwargs)
+
+    def _add_geom(self, style, db_table):
+        """
+        Adds this geometry column into the Oracle USER_SDO_GEOM_METADATA
+        table.
+        """
+
+        # Checking the dimensions.
+        # TODO: Add support for 3D geometries.
+        if self._dim != 2:
+            raise Exception('3D geometries not yet supported on Oracle Spatial backend.')
+
+        # Constructing the SQL that will be used to insert information about
+        # the geometry column into the USER_GSDO_GEOM_METADATA table.
+        meta_sql = style.SQL_KEYWORD('INSERT INTO ') + \
+                   style.SQL_TABLE('USER_SDO_GEOM_METADATA') + \
+                   ' (%s, %s, %s, %s)\n  ' % tuple(map(qn, ['TABLE_NAME', 'COLUMN_NAME', 'DIMINFO', 'SRID'])) + \
+                   style.SQL_KEYWORD(' VALUES ') + '(\n    ' + \
+                   style.SQL_TABLE(gqn(db_table)) + ',\n    ' + \
+                   style.SQL_FIELD(gqn(self.column)) + ',\n    ' + \
+                   style.SQL_KEYWORD("MDSYS.SDO_DIM_ARRAY") + '(\n      ' + \
+                   style.SQL_KEYWORD("MDSYS.SDO_DIM_ELEMENT") + \
+                   ("('LONG', %s, %s, %s),\n      " % (self._extent[0], self._extent[2], self._tolerance)) + \
+                   style.SQL_KEYWORD("MDSYS.SDO_DIM_ELEMENT") + \
+                   ("('LAT', %s, %s, %s)\n    ),\n" % (self._extent[1], self._extent[3], self._tolerance)) + \
+                   '    %s\n  );' % self._srid
+        return meta_sql
+
+    def _geom_index(self, style, db_table):
+        "Creates an Oracle Geometry index (R-tree) for this geometry field."
+
+        # Getting the index name, Oracle doesn't allow object
+        # names > 30 characters.
+        idx_name = truncate_name('%s_%s_id' % (db_table, self.column), 30)
+        
+        sql = style.SQL_KEYWORD('CREATE INDEX ') + \
+              style.SQL_TABLE(qn(idx_name)) + \
+              style.SQL_KEYWORD(' ON ') + \
+              style.SQL_TABLE(qn(db_table)) + '(' + \
+              style.SQL_FIELD(qn(self.column)) + ') ' + \
+              style.SQL_KEYWORD('INDEXTYPE IS ') + \
+              style.SQL_TABLE('MDSYS.SPATIAL_INDEX') + ';'
+        return sql
+
+    def post_create_sql(self, style, db_table):
+        """
+        Returns SQL that will be executed after the model has been
+        created.
+        """
+        # Getting the meta geometry information.
+        post_sql = self._add_geom(style, db_table)
+
+        # Getting the geometric index for this Geometry column.
+        if self._index:
+            return (post_sql, self._geom_index(style, db_table))
+        else:
+            return (post_sql,)
+
+    def db_type(self):
+        "The Oracle geometric data type is MDSYS.SDO_GEOMETRY."
+        return 'MDSYS.SDO_GEOMETRY'
+        
+    def get_placeholder(self, value):
+        """
+        Provides a proper substitution value for Geometries that are not in the
+        SRID of the field.  Specifically, this routine will substitute in the
+        SDO_CS.TRANSFORM() function call.
+        """
+        if value is None:
+            return '%s'
+        elif value.srid != self._srid:
+            # Adding Transform() to the SQL placeholder.
+            return '%s(SDO_GEOMETRY(%%s, %s), %s)' % (TRANSFORM, value.srid, self._srid)
+        else:
+            return 'SDO_GEOMETRY(%%s, %s)' % self._srid
diff --git a/webapp/django/contrib/gis/db/backend/oracle/models.py b/webapp/django/contrib/gis/db/backend/oracle/models.py
new file mode 100644
index 0000000..c740b48
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/oracle/models.py
@@ -0,0 +1,49 @@
+"""
+ The GeometryColumns and SpatialRefSys models for the Oracle spatial
+ backend.
+
+ It should be noted that Oracle Spatial does not have database tables
+ named according to the OGC standard, so the closest analogs are used.
+ For example, the `USER_SDO_GEOM_METADATA` is used for the GeometryColumns
+ model and the `SDO_COORD_REF_SYS` is used for the SpatialRefSys model.
+"""
+from django.db import models
+from django.contrib.gis.models import SpatialRefSysMixin
+
+class GeometryColumns(models.Model):
+    "Maps to the Oracle USER_SDO_GEOM_METADATA table."
+    table_name = models.CharField(max_length=32)
+    column_name = models.CharField(max_length=1024)
+    srid = models.IntegerField(primary_key=True)
+    # TODO: Add support for `diminfo` column (type MDSYS.SDO_DIM_ARRAY).
+    class Meta:
+        db_table = 'USER_SDO_GEOM_METADATA'
+
+    @classmethod
+    def table_name_col(cls):
+        return 'table_name'
+
+    def __unicode__(self):
+        return '%s - %s (SRID: %s)' % (self.table_name, self.column_name, self.srid)
+
+class SpatialRefSys(models.Model, SpatialRefSysMixin):
+    "Maps to the Oracle MDSYS.CS_SRS table."
+    cs_name = models.CharField(max_length=68)
+    srid = models.IntegerField(primary_key=True)
+    auth_srid = models.IntegerField()
+    auth_name = models.CharField(max_length=256)
+    wktext = models.CharField(max_length=2046)
+    #cs_bounds = models.GeometryField()
+
+    class Meta:
+        # TODO: Figure out way to have this be MDSYS.CS_SRS without
+        #  having django's quoting mess up the SQL.
+        db_table = 'CS_SRS'
+
+    @property
+    def wkt(self):
+        return self.wktext
+
+    @classmethod
+    def wkt_col(cls):
+        return 'wktext'
diff --git a/webapp/django/contrib/gis/db/backend/oracle/query.py b/webapp/django/contrib/gis/db/backend/oracle/query.py
new file mode 100644
index 0000000..dcf6f67
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/oracle/query.py
@@ -0,0 +1,154 @@
+"""
+ This module contains the spatial lookup types, and the `get_geo_where_clause`
+ routine for Oracle Spatial.
+
+ Please note that WKT support is broken on the XE version, and thus
+ this backend will not work on such platforms.  Specifically, XE lacks 
+ support for an internal JVM, and Java libraries are required to use 
+ the WKT constructors.
+"""
+import re
+from decimal import Decimal
+from django.db import connection
+from django.contrib.gis.db.backend.util import SpatialFunction
+from django.contrib.gis.measure import Distance
+qn = connection.ops.quote_name
+
+# The GML, distance, transform, and union procedures.
+AREA = 'SDO_GEOM.SDO_AREA'
+ASGML = 'SDO_UTIL.TO_GMLGEOMETRY'
+CENTROID = 'SDO_GEOM.SDO_CENTROID'
+DIFFERENCE = 'SDO_GEOM.SDO_DIFFERENCE'
+DISTANCE = 'SDO_GEOM.SDO_DISTANCE'
+EXTENT = 'SDO_AGGR_MBR'
+INTERSECTION = 'SDO_GEOM.SDO_INTERSECTION'
+LENGTH = 'SDO_GEOM.SDO_LENGTH'
+NUM_GEOM = 'SDO_UTIL.GETNUMELEM'
+NUM_POINTS = 'SDO_UTIL.GETNUMVERTICES'
+POINT_ON_SURFACE = 'SDO_GEOM.SDO_POINTONSURFACE'
+SYM_DIFFERENCE = 'SDO_GEOM.SDO_XOR'
+TRANSFORM = 'SDO_CS.TRANSFORM'
+UNION = 'SDO_GEOM.SDO_UNION'
+UNIONAGG = 'SDO_AGGR_UNION'
+
+# We want to get SDO Geometries as WKT because it is much easier to 
+# instantiate GEOS proxies from WKT than SDO_GEOMETRY(...) strings.  
+# However, this adversely affects performance (i.e., Java is called 
+# to convert to WKT on every query).  If someone wishes to write a 
+# SDO_GEOMETRY(...) parser in Python, let me know =)
+GEOM_SELECT = 'SDO_UTIL.TO_WKTGEOMETRY(%s)'
+
+#### Classes used in constructing Oracle spatial SQL ####
+class SDOOperation(SpatialFunction):
+    "Base class for SDO* Oracle operations."
+    def __init__(self, func, **kwargs):
+        kwargs.setdefault('operator', '=')
+        kwargs.setdefault('result', 'TRUE')
+        kwargs.setdefault('end_subst', ") %s '%s'")
+        super(SDOOperation, self).__init__(func, **kwargs)
+
+class SDODistance(SpatialFunction):
+    "Class for Distance queries."
+    def __init__(self, op, tolerance=0.05):
+        super(SDODistance, self).__init__(DISTANCE, end_subst=', %s) %%s %%s' % tolerance, 
+                                          operator=op, result='%%s')
+
+class SDOGeomRelate(SpatialFunction):
+    "Class for using SDO_GEOM.RELATE."
+    def __init__(self, mask, tolerance=0.05):
+        # SDO_GEOM.RELATE(...) has a peculiar argument order: column, mask, geom, tolerance.
+        # Moreover, the runction result is the mask (e.g., 'DISJOINT' instead of 'TRUE').
+        end_subst = "%s%s) %s '%s'" % (', %%s, ', tolerance, '=', mask)
+        beg_subst = "%%s(%%s, '%s'" % mask 
+        super(SDOGeomRelate, self).__init__('SDO_GEOM.RELATE', beg_subst=beg_subst, end_subst=end_subst)
+
+class SDORelate(SpatialFunction):
+    "Class for using SDO_RELATE."
+    masks = 'TOUCH|OVERLAPBDYDISJOINT|OVERLAPBDYINTERSECT|EQUAL|INSIDE|COVEREDBY|CONTAINS|COVERS|ANYINTERACT|ON'
+    mask_regex = re.compile(r'^(%s)(\+(%s))*$' % (masks, masks), re.I)
+    def __init__(self, mask):
+        func = 'SDO_RELATE'
+        if not self.mask_regex.match(mask):
+            raise ValueError('Invalid %s mask: "%s"' % (func, mask))
+        super(SDORelate, self).__init__(func, end_subst=", 'mask=%s') = 'TRUE'" % mask)
+
+#### Lookup type mapping dictionaries of Oracle spatial operations ####
+
+# Valid distance types and substitutions
+dtypes = (Decimal, Distance, float, int, long)
+DISTANCE_FUNCTIONS = {
+    'distance_gt' : (SDODistance('>'), dtypes),
+    'distance_gte' : (SDODistance('>='), dtypes),
+    'distance_lt' : (SDODistance('<'), dtypes),
+    'distance_lte' : (SDODistance('<='), dtypes),
+    'dwithin' : (SDOOperation('SDO_WITHIN_DISTANCE', 
+                              beg_subst="%s(%s, %%s, 'distance=%%s'"), dtypes),
+    }
+
+ORACLE_GEOMETRY_FUNCTIONS = {
+    'contains' : SDOOperation('SDO_CONTAINS'),
+    'coveredby' : SDOOperation('SDO_COVEREDBY'),
+    'covers' : SDOOperation('SDO_COVERS'),
+    'disjoint' : SDOGeomRelate('DISJOINT'),
+    'intersects' : SDOOperation('SDO_OVERLAPBDYINTERSECT'), # TODO: Is this really the same as ST_Intersects()?
+    'equals' : SDOOperation('SDO_EQUAL'),
+    'exact' : SDOOperation('SDO_EQUAL'),
+    'overlaps' : SDOOperation('SDO_OVERLAPS'),
+    'same_as' : SDOOperation('SDO_EQUAL'),
+    'relate' : (SDORelate, basestring), # Oracle uses a different syntax, e.g., 'mask=inside+touch'
+    'touches' : SDOOperation('SDO_TOUCH'),
+    'within' : SDOOperation('SDO_INSIDE'),
+    }
+ORACLE_GEOMETRY_FUNCTIONS.update(DISTANCE_FUNCTIONS)
+
+# This lookup type does not require a mapping.
+MISC_TERMS = ['isnull']
+
+# Acceptable lookup types for Oracle spatial.
+ORACLE_SPATIAL_TERMS  = ORACLE_GEOMETRY_FUNCTIONS.keys()
+ORACLE_SPATIAL_TERMS += MISC_TERMS
+ORACLE_SPATIAL_TERMS = dict((term, None) for term in ORACLE_SPATIAL_TERMS) # Making dictionary for fast lookups
+
+#### The `get_geo_where_clause` function for Oracle ####
+def get_geo_where_clause(table_alias, name, lookup_type, geo_annot):
+    "Returns the SQL WHERE clause for use in Oracle spatial SQL construction."
+    # Getting the quoted table name as `geo_col`.
+    geo_col = '%s.%s' % (qn(table_alias), qn(name))
+
+    # See if a Oracle Geometry function matches the lookup type next
+    lookup_info = ORACLE_GEOMETRY_FUNCTIONS.get(lookup_type, False)
+    if lookup_info:
+        # Lookup types that are tuples take tuple arguments, e.g., 'relate' and 
+        # 'dwithin' lookup types.
+        if isinstance(lookup_info, tuple):
+            # First element of tuple is lookup type, second element is the type
+            # of the expected argument (e.g., str, float)
+            sdo_op, arg_type = lookup_info
+
+            # Ensuring that a tuple _value_ was passed in from the user
+            if not isinstance(geo_annot.value, tuple):
+                raise TypeError('Tuple required for `%s` lookup type.' % lookup_type)
+            if len(geo_annot.value) != 2: 
+                raise ValueError('2-element tuple required for %s lookup type.' % lookup_type)
+            
+            # Ensuring the argument type matches what we expect.
+            if not isinstance(geo_annot.value[1], arg_type):
+                raise TypeError('Argument type should be %s, got %s instead.' % (arg_type, type(geo_annot.value[1])))
+
+            if lookup_type == 'relate':
+                # The SDORelate class handles construction for these queries, 
+                # and verifies the mask argument.
+                return sdo_op(geo_annot.value[1]).as_sql(geo_col)
+            else:
+                # Otherwise, just call the `as_sql` method on the SDOOperation instance.
+                return sdo_op.as_sql(geo_col)
+        else:
+            # Lookup info is a SDOOperation instance, whose `as_sql` method returns
+            # the SQL necessary for the geometry function call. For example:  
+            #  SDO_CONTAINS("geoapp_country"."poly", SDO_GEOMTRY('POINT(5 23)', 4326)) = 'TRUE'
+            return lookup_info.as_sql(geo_col)
+    elif lookup_type == 'isnull':
+        # Handling 'isnull' lookup type
+        return "%s IS %sNULL" % (geo_col, (not geo_annot.value and 'NOT ' or ''))
+
+    raise TypeError("Got invalid lookup_type: %s" % repr(lookup_type))
diff --git a/webapp/django/contrib/gis/db/backend/postgis/__init__.py b/webapp/django/contrib/gis/db/backend/postgis/__init__.py
new file mode 100644
index 0000000..8a4d09e
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/postgis/__init__.py
@@ -0,0 +1,42 @@
+__all__ = ['create_spatial_db', 'get_geo_where_clause', 'SpatialBackend']
+
+from django.contrib.gis.db.backend.base import BaseSpatialBackend
+from django.contrib.gis.db.backend.postgis.adaptor import PostGISAdaptor
+from django.contrib.gis.db.backend.postgis.creation import create_spatial_db
+from django.contrib.gis.db.backend.postgis.field import PostGISField
+from django.contrib.gis.db.backend.postgis.query import *
+
+SpatialBackend = BaseSpatialBackend(name='postgis', postgis=True,
+                                    area=AREA,
+                                    centroid=CENTROID,
+                                    difference=DIFFERENCE,
+                                    distance=DISTANCE,
+                                    distance_functions=DISTANCE_FUNCTIONS,
+                                    distance_sphere=DISTANCE_SPHERE,
+                                    distance_spheroid=DISTANCE_SPHEROID,
+                                    envelope=ENVELOPE,
+                                    extent=EXTENT,
+                                    gis_terms=POSTGIS_TERMS,
+                                    gml=ASGML,
+                                    intersection=INTERSECTION,
+                                    kml=ASKML,
+                                    length=LENGTH,
+                                    length_spheroid=LENGTH_SPHEROID,
+                                    make_line=MAKE_LINE,
+                                    mem_size=MEM_SIZE,
+                                    num_geom=NUM_GEOM,
+                                    num_points=NUM_POINTS,
+                                    perimeter=PERIMETER,
+                                    point_on_surface=POINT_ON_SURFACE,
+                                    scale=SCALE,
+                                    select=GEOM_SELECT,
+                                    svg=ASSVG,
+                                    sym_difference=SYM_DIFFERENCE,
+                                    transform=TRANSFORM,
+                                    translate=TRANSLATE,
+                                    union=UNION,
+                                    unionagg=UNIONAGG,
+                                    version=(MAJOR_VERSION, MINOR_VERSION1, MINOR_VERSION2),
+                                    Adaptor=PostGISAdaptor,
+                                    Field=PostGISField,
+                                    )
diff --git a/webapp/django/contrib/gis/db/backend/postgis/adaptor.py b/webapp/django/contrib/gis/db/backend/postgis/adaptor.py
new file mode 100644
index 0000000..c094a98
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/postgis/adaptor.py
@@ -0,0 +1,33 @@
+"""
+ This object provides quoting for GEOS geometries into PostgreSQL/PostGIS.
+"""
+
+from django.contrib.gis.db.backend.postgis.query import GEOM_FROM_WKB
+from psycopg2 import Binary
+from psycopg2.extensions import ISQLQuote
+
+class PostGISAdaptor(object):
+    def __init__(self, geom):
+        "Initializes on the geometry."
+        # Getting the WKB (in string form, to allow easy pickling of
+        # the adaptor) and the SRID from the geometry.
+        self.wkb = str(geom.wkb)
+        self.srid = geom.srid
+
+    def __conform__(self, proto):
+        # Does the given protocol conform to what Psycopg2 expects?
+        if proto == ISQLQuote:
+            return self
+        else:
+            raise Exception('Error implementing psycopg2 protocol. Is psycopg2 installed?')
+
+    def __eq__(self, other):
+        return (self.wkb == other.wkb) and (self.srid == other.srid)
+
+    def __str__(self):
+        return self.getquoted()
+
+    def getquoted(self):
+        "Returns a properly quoted string for use in PostgreSQL/PostGIS."
+        # Want to use WKB, so wrap with psycopg2 Binary() to quote properly.
+        return "%s(%s, %s)" % (GEOM_FROM_WKB, Binary(self.wkb), self.srid or -1)
diff --git a/webapp/django/contrib/gis/db/backend/postgis/creation.py b/webapp/django/contrib/gis/db/backend/postgis/creation.py
new file mode 100644
index 0000000..44d9346
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/postgis/creation.py
@@ -0,0 +1,224 @@
+import os, re, sys
+
+from django.conf import settings
+from django.core.management import call_command
+from django.db import connection
+from django.db.backends.creation import TEST_DATABASE_PREFIX
+
+def getstatusoutput(cmd):
+    "A simpler version of getstatusoutput that works on win32 platforms."
+    stdin, stdout, stderr = os.popen3(cmd)
+    output = stdout.read()
+    if output.endswith('\n'): output = output[:-1]
+    status = stdin.close()
+    return status, output
+
+def create_lang(db_name, verbosity=1):
+    "Sets up the pl/pgsql language on the given database."
+
+    # Getting the command-line options for the shell command
+    options = get_cmd_options(db_name)
+
+    # Constructing the 'createlang' command.
+    createlang_cmd = 'createlang %splpgsql' % options
+    if verbosity >= 1: print createlang_cmd
+
+    # Must have database super-user privileges to execute createlang -- it must
+    #  also be in your path.
+    status, output = getstatusoutput(createlang_cmd)
+
+    # Checking the status of the command, 0 => execution successful
+    if status:
+        raise Exception("Error executing 'plpgsql' command: %s\n" % output)
+
+def _create_with_cursor(db_name, verbosity=1, autoclobber=False):
+    "Creates database with psycopg2 cursor."
+
+    # Constructing the necessary SQL to create the database (the DATABASE_USER
+    #  must possess the privileges to create a database)
+    create_sql = 'CREATE DATABASE %s' % connection.ops.quote_name(db_name)
+    if settings.DATABASE_USER:
+        create_sql += ' OWNER %s' % settings.DATABASE_USER
+
+    cursor = connection.cursor()
+    connection.creation.set_autocommit()
+
+    try:
+        # Trying to create the database first.
+        cursor.execute(create_sql)
+        #print create_sql
+    except Exception, e:
+        # Drop and recreate, if necessary.
+        if not autoclobber:
+            confirm = raw_input("\nIt appears the database, %s, already exists. Type 'yes' to delete it, or 'no' to cancel: " % db_name)
+        if autoclobber or confirm == 'yes':
+            if verbosity >= 1: print 'Destroying old spatial database...'
+            drop_db(db_name)
+            if verbosity >= 1: print 'Creating new spatial database...'
+            cursor.execute(create_sql)
+        else:
+            raise Exception('Spatial Database Creation canceled.')
+
+created_regex = re.compile(r'^createdb: database creation failed: ERROR:  database ".+" already exists')
+def _create_with_shell(db_name, verbosity=1, autoclobber=False):
+    """
+    If no spatial database already exists, then using a cursor will not work.
+     Thus, a `createdb` command will be issued through the shell to bootstrap
+     creation of the spatial database.
+    """
+
+    # Getting the command-line options for the shell command
+    options = get_cmd_options(False)
+    create_cmd = 'createdb -O %s %s%s' % (settings.DATABASE_USER, options, db_name)
+    if verbosity >= 1: print create_cmd
+
+    # Attempting to create the database.
+    status, output = getstatusoutput(create_cmd)
+
+    if status:
+        if created_regex.match(output):
+            if not autoclobber:
+                confirm = raw_input("\nIt appears the database, %s, already exists. Type 'yes' to delete it, or 'no' to cancel: " % db_name)
+            if autoclobber or confirm == 'yes':
+                if verbosity >= 1: print 'Destroying old spatial database...'
+                drop_cmd = 'dropdb %s%s' % (options, db_name)
+                status, output = getstatusoutput(drop_cmd)
+                if status != 0:
+                    raise Exception('Could not drop database %s: %s' % (db_name, output))
+                if verbosity >= 1: print 'Creating new spatial database...'
+                status, output = getstatusoutput(create_cmd)
+                if status != 0:
+                    raise Exception('Could not create database after dropping: %s' % output)
+            else:
+                raise Exception('Spatial Database Creation canceled.')
+        else:
+            raise Exception('Unknown error occurred in creating database: %s' % output)
+
+def create_spatial_db(test=False, verbosity=1, autoclobber=False, interactive=False):
+    "Creates a spatial database based on the settings."
+
+    # Making sure we're using PostgreSQL and psycopg2
+    if settings.DATABASE_ENGINE != 'postgresql_psycopg2':
+        raise Exception('Spatial database creation only supported postgresql_psycopg2 platform.')
+
+    # Getting the spatial database name
+    if test:
+        db_name = get_spatial_db(test=True)
+        _create_with_cursor(db_name, verbosity=verbosity, autoclobber=autoclobber)
+    else:
+        db_name = get_spatial_db()
+        _create_with_shell(db_name, verbosity=verbosity, autoclobber=autoclobber)
+
+    # Creating the db language, does not need to be done on NT platforms
+    #  since the PostGIS installer enables this capability.
+    if os.name != 'nt':
+        create_lang(db_name, verbosity=verbosity)
+
+    # Now adding in the PostGIS routines.
+    load_postgis_sql(db_name, verbosity=verbosity)
+
+    if verbosity >= 1: print 'Creation of spatial database %s successful.' % db_name
+
+    # Closing the connection
+    connection.close()
+    settings.DATABASE_NAME = db_name
+
+    # Syncing the database
+    call_command('syncdb', verbosity=verbosity, interactive=interactive)
+
+def drop_db(db_name=False, test=False):
+    """
+    Drops the given database (defaults to what is returned from
+     get_spatial_db()). All exceptions are propagated up to the caller.
+    """
+    if not db_name: db_name = get_spatial_db(test=test)
+    cursor = connection.cursor()
+    cursor.execute('DROP DATABASE %s' % connection.ops.quote_name(db_name))
+
+def get_cmd_options(db_name):
+    "Obtains the command-line PostgreSQL connection options for shell commands."
+    # The db_name parameter is optional
+    options = ''
+    if db_name:
+        options += '-d %s ' % db_name
+    if settings.DATABASE_USER:
+        options += '-U %s ' % settings.DATABASE_USER
+    if settings.DATABASE_HOST:
+        options += '-h %s ' % settings.DATABASE_HOST
+    if settings.DATABASE_PORT:
+        options += '-p %s ' % settings.DATABASE_PORT
+    return options
+
+def get_spatial_db(test=False):
+    """
+    Returns the name of the spatial database.  The 'test' keyword may be set
+     to return the test spatial database name.
+    """
+    if test:
+        if settings.TEST_DATABASE_NAME:
+            test_db_name = settings.TEST_DATABASE_NAME
+        else:
+            test_db_name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME
+        return test_db_name
+    else:
+        if not settings.DATABASE_NAME:
+            raise Exception('must configure DATABASE_NAME in settings.py')
+        return settings.DATABASE_NAME
+
+def load_postgis_sql(db_name, verbosity=1):
+    """
+    This routine loads up the PostGIS SQL files lwpostgis.sql and
+     spatial_ref_sys.sql.
+    """
+
+    # Getting the path to the PostGIS SQL
+    try:
+        # POSTGIS_SQL_PATH may be placed in settings to tell GeoDjango where the
+        #  PostGIS SQL files are located.  This is especially useful on Win32
+        #  platforms since the output of pg_config looks like "C:/PROGRA~1/..".
+        sql_path = settings.POSTGIS_SQL_PATH
+    except AttributeError:
+        status, sql_path = getstatusoutput('pg_config --sharedir')
+        if status:
+            sql_path = '/usr/local/share'
+
+    # The PostGIS SQL post-creation files.
+    lwpostgis_file = os.path.join(sql_path, 'lwpostgis.sql')
+    srefsys_file = os.path.join(sql_path, 'spatial_ref_sys.sql')
+    if not os.path.isfile(lwpostgis_file):
+        raise Exception('Could not find PostGIS function definitions in %s' % lwpostgis_file)
+    if not os.path.isfile(srefsys_file):
+        raise Exception('Could not find PostGIS spatial reference system definitions in %s' % srefsys_file)
+
+    # Getting the psql command-line options, and command format.
+    options = get_cmd_options(db_name)
+    cmd_fmt = 'psql %s-f "%%s"' % options
+
+    # Now trying to load up the PostGIS functions
+    cmd = cmd_fmt % lwpostgis_file
+    if verbosity >= 1: print cmd
+    status, output = getstatusoutput(cmd)
+    if status:
+        raise Exception('Error in loading PostGIS lwgeometry routines.')
+
+    # Now trying to load up the Spatial Reference System table
+    cmd = cmd_fmt % srefsys_file
+    if verbosity >= 1: print cmd
+    status, output = getstatusoutput(cmd)
+    if status:
+        raise Exception('Error in loading PostGIS spatial_ref_sys table.')
+
+    # Setting the permissions because on Windows platforms the owner
+    #  of the spatial_ref_sys and geometry_columns tables is always
+    #  the postgres user, regardless of how the db is created.
+    if os.name == 'nt': set_permissions(db_name)
+
+def set_permissions(db_name):
+    """
+    Sets the permissions on the given database to that of the user specified
+     in the settings.  Needed specifically for PostGIS on Win32 platforms.
+    """
+    cursor = connection.cursor()
+    user = settings.DATABASE_USER
+    cursor.execute('ALTER TABLE geometry_columns OWNER TO %s' % user)
+    cursor.execute('ALTER TABLE spatial_ref_sys OWNER TO %s' % user)
diff --git a/webapp/django/contrib/gis/db/backend/postgis/field.py b/webapp/django/contrib/gis/db/backend/postgis/field.py
new file mode 100644
index 0000000..9d6c0fa
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/postgis/field.py
@@ -0,0 +1,95 @@
+from django.db import connection
+from django.db.models.fields import Field # Django base Field class
+from django.contrib.gis.db.backend.util import gqn
+from django.contrib.gis.db.backend.postgis.query import TRANSFORM
+
+# Quotename & geographic quotename, respectively
+qn = connection.ops.quote_name
+
+class PostGISField(Field):
+    """
+    The backend-specific geographic field for PostGIS.
+    """
+
+    def _add_geom(self, style, db_table):
+        """
+        Constructs the addition of the geometry to the table using the
+        AddGeometryColumn(...) PostGIS (and OGC standard) stored procedure.
+
+        Takes the style object (provides syntax highlighting) and the
+        database table as parameters.
+        """
+        sql = style.SQL_KEYWORD('SELECT ') + \
+              style.SQL_TABLE('AddGeometryColumn') + '(' + \
+              style.SQL_TABLE(gqn(db_table)) + ', ' + \
+              style.SQL_FIELD(gqn(self.column)) + ', ' + \
+              style.SQL_FIELD(str(self._srid)) + ', ' + \
+              style.SQL_COLTYPE(gqn(self._geom)) + ', ' + \
+              style.SQL_KEYWORD(str(self._dim)) + ');'
+
+        if not self.null:
+            # Add a NOT NULL constraint to the field
+            sql += '\n' + \
+                   style.SQL_KEYWORD('ALTER TABLE ') + \
+                   style.SQL_TABLE(qn(db_table)) + \
+                   style.SQL_KEYWORD(' ALTER ') + \
+                   style.SQL_FIELD(qn(self.column)) + \
+                   style.SQL_KEYWORD(' SET NOT NULL') + ';'
+        return sql
+    
+    def _geom_index(self, style, db_table,
+                    index_type='GIST', index_opts='GIST_GEOMETRY_OPS'):
+        "Creates a GiST index for this geometry field."
+        sql = style.SQL_KEYWORD('CREATE INDEX ') + \
+              style.SQL_TABLE(qn('%s_%s_id' % (db_table, self.column))) + \
+              style.SQL_KEYWORD(' ON ') + \
+              style.SQL_TABLE(qn(db_table)) + \
+              style.SQL_KEYWORD(' USING ') + \
+              style.SQL_COLTYPE(index_type) + ' ( ' + \
+              style.SQL_FIELD(qn(self.column)) + ' ' + \
+              style.SQL_KEYWORD(index_opts) + ' );'
+        return sql
+
+    def post_create_sql(self, style, db_table):
+        """
+        Returns SQL that will be executed after the model has been
+        created. Geometry columns must be added after creation with the
+        PostGIS AddGeometryColumn() function.
+        """
+
+        # Getting the AddGeometryColumn() SQL necessary to create a PostGIS
+        # geometry field.
+        post_sql = self._add_geom(style, db_table)
+
+        # If the user wants to index this data, then get the indexing SQL as well.
+        if self._index:
+            return (post_sql, self._geom_index(style, db_table))
+        else:
+            return (post_sql,)
+
+    def _post_delete_sql(self, style, db_table):
+        "Drops the geometry column."
+        sql = style.SQL_KEYWORD('SELECT ') + \
+            style.SQL_KEYWORD('DropGeometryColumn') + '(' + \
+            style.SQL_TABLE(gqn(db_table)) + ', ' + \
+            style.SQL_FIELD(gqn(self.column)) +  ');'
+        return sql
+
+    def db_type(self):
+        """
+        PostGIS geometry columns are added by stored procedures, should be
+        None.
+        """
+        return None
+
+    def get_placeholder(self, value):
+        """
+        Provides a proper substitution value for Geometries that are not in the
+        SRID of the field.  Specifically, this routine will substitute in the
+        ST_Transform() function call.
+        """
+        if value is None or value.srid == self._srid:
+            return '%s'
+        else:
+            # Adding Transform() to the SQL placeholder.
+            return '%s(%%s, %s)' % (TRANSFORM, self._srid)
diff --git a/webapp/django/contrib/gis/db/backend/postgis/management.py b/webapp/django/contrib/gis/db/backend/postgis/management.py
new file mode 100644
index 0000000..c1cb32a
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/postgis/management.py
@@ -0,0 +1,54 @@
+"""
+  This utility module is for obtaining information about the PostGIS
+   installation.
+
+  See PostGIS docs at Ch. 6.2.1 for more information on these functions.
+"""
+import re
+
+def _get_postgis_func(func):
+    "Helper routine for calling PostGIS functions and returning their result."
+    from django.db import connection
+    cursor = connection.cursor()
+    cursor.execute('SELECT %s()' % func)
+    row = cursor.fetchone()
+    cursor.close()
+    return row[0]
+
+### PostGIS management functions ###
+def postgis_geos_version():
+    "Returns the version of the GEOS library used with PostGIS."
+    return _get_postgis_func('postgis_geos_version')
+
+def postgis_lib_version():
+    "Returns the version number of the PostGIS library used with PostgreSQL."
+    return _get_postgis_func('postgis_lib_version')
+
+def postgis_proj_version():
+    "Returns the version of the PROJ.4 library used with PostGIS."
+    return _get_postgis_func('postgis_proj_version')
+
+def postgis_version():
+    "Returns PostGIS version number and compile-time options."
+    return _get_postgis_func('postgis_version')
+
+def postgis_full_version():
+    "Returns PostGIS version number and compile-time options."
+    return _get_postgis_func('postgis_full_version')
+
+### Routines for parsing output of management functions. ###
+version_regex = re.compile('^(?P<major>\d)\.(?P<minor1>\d)\.(?P<minor2>\d+)')
+def postgis_version_tuple():
+    "Returns the PostGIS version as a tuple."
+
+    # Getting the PostGIS version
+    version = postgis_lib_version()
+    m = version_regex.match(version)
+    if m:
+        major = int(m.group('major'))
+        minor1 = int(m.group('minor1'))
+        minor2 = int(m.group('minor2'))
+    else:
+        raise Exception('Could not parse PostGIS version string: %s' % version)
+
+    return (version, major, minor1, minor2)
diff --git a/webapp/django/contrib/gis/db/backend/postgis/models.py b/webapp/django/contrib/gis/db/backend/postgis/models.py
new file mode 100644
index 0000000..e032da4
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/postgis/models.py
@@ -0,0 +1,58 @@
+"""
+ The GeometryColumns and SpatialRefSys models for the PostGIS backend.
+"""
+from django.db import models
+from django.contrib.gis.models import SpatialRefSysMixin
+
+# Checking for the presence of GDAL (needed for the SpatialReference object)
+from django.contrib.gis.gdal import HAS_GDAL
+if HAS_GDAL:
+    from django.contrib.gis.gdal import SpatialReference
+
+class GeometryColumns(models.Model):
+    """
+    The 'geometry_columns' table from the PostGIS. See the PostGIS
+    documentation at Ch. 4.2.2.
+    """
+    f_table_catalog = models.CharField(max_length=256)
+    f_table_schema = models.CharField(max_length=256)
+    f_table_name = models.CharField(max_length=256)
+    f_geometry_column = models.CharField(max_length=256)
+    coord_dimension = models.IntegerField()
+    srid = models.IntegerField(primary_key=True)
+    type = models.CharField(max_length=30)
+
+    class Meta:
+        db_table = 'geometry_columns'
+
+    @classmethod
+    def table_name_col(cls):
+        "Class method for returning the table name column for this model."
+        return 'f_table_name'
+
+    def __unicode__(self):
+        return "%s.%s - %dD %s field (SRID: %d)" % \
+               (self.f_table_name, self.f_geometry_column,
+                self.coord_dimension, self.type, self.srid)
+
+class SpatialRefSys(models.Model, SpatialRefSysMixin):
+    """
+    The 'spatial_ref_sys' table from PostGIS. See the PostGIS
+    documentaiton at Ch. 4.2.1.
+    """
+    srid = models.IntegerField(primary_key=True)
+    auth_name = models.CharField(max_length=256)
+    auth_srid = models.IntegerField()
+    srtext = models.CharField(max_length=2048)
+    proj4text = models.CharField(max_length=2048)
+
+    class Meta:
+        db_table = 'spatial_ref_sys'
+
+    @property
+    def wkt(self):
+        return self.srtext
+
+    @classmethod
+    def wkt_col(cls):
+        return 'srtext'
diff --git a/webapp/django/contrib/gis/db/backend/postgis/query.py b/webapp/django/contrib/gis/db/backend/postgis/query.py
new file mode 100644
index 0000000..8780780
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/postgis/query.py
@@ -0,0 +1,287 @@
+"""
+ This module contains the spatial lookup types, and the get_geo_where_clause()
+ routine for PostGIS.
+"""
+import re
+from decimal import Decimal
+from django.db import connection
+from django.contrib.gis.measure import Distance
+from django.contrib.gis.db.backend.postgis.management import postgis_version_tuple
+from django.contrib.gis.db.backend.util import SpatialOperation, SpatialFunction
+qn = connection.ops.quote_name
+
+# Getting the PostGIS version information
+POSTGIS_VERSION, MAJOR_VERSION, MINOR_VERSION1, MINOR_VERSION2 = postgis_version_tuple()
+
+# The supported PostGIS versions.
+#  TODO: Confirm tests with PostGIS versions 1.1.x -- should work.  
+#        Versions <= 1.0.x do not use GEOS C API, and will not be supported.
+if MAJOR_VERSION != 1 or (MAJOR_VERSION == 1 and MINOR_VERSION1 < 1):
+    raise Exception('PostGIS version %s not supported.' % POSTGIS_VERSION)
+
+# Versions of PostGIS >= 1.2.2 changed their naming convention to be
+#  'SQL-MM-centric' to conform with the ISO standard. Practically, this
+#  means that 'ST_' prefixes geometry function names.
+GEOM_FUNC_PREFIX = ''
+if MAJOR_VERSION >= 1:
+    if (MINOR_VERSION1 > 2 or
+        (MINOR_VERSION1 == 2 and MINOR_VERSION2 >= 2)):
+        GEOM_FUNC_PREFIX = 'ST_'
+
+    def get_func(func): return '%s%s' % (GEOM_FUNC_PREFIX, func)
+
+    # Custom selection not needed for PostGIS because GEOS geometries are
+    # instantiated directly from the HEXEWKB returned by default.  If
+    # WKT is needed for some reason in the future, this value may be changed,
+    # e.g,, 'AsText(%s)'.
+    GEOM_SELECT = None
+
+    # Functions used by the GeoManager & GeoQuerySet
+    AREA = get_func('Area')
+    ASKML = get_func('AsKML')
+    ASGML = get_func('AsGML')
+    ASSVG = get_func('AsSVG')
+    CENTROID = get_func('Centroid')
+    DIFFERENCE = get_func('Difference')
+    DISTANCE = get_func('Distance')
+    DISTANCE_SPHERE = get_func('distance_sphere')
+    DISTANCE_SPHEROID = get_func('distance_spheroid')
+    ENVELOPE = get_func('Envelope')
+    EXTENT = get_func('extent')
+    GEOM_FROM_TEXT = get_func('GeomFromText')
+    GEOM_FROM_WKB = get_func('GeomFromWKB')
+    INTERSECTION = get_func('Intersection')
+    LENGTH = get_func('Length')
+    LENGTH_SPHEROID = get_func('length_spheroid')
+    MAKE_LINE = get_func('MakeLine')
+    MEM_SIZE = get_func('mem_size')
+    NUM_GEOM = get_func('NumGeometries')
+    NUM_POINTS = get_func('npoints')
+    PERIMETER = get_func('Perimeter')
+    POINT_ON_SURFACE = get_func('PointOnSurface')
+    SCALE = get_func('Scale')
+    SYM_DIFFERENCE = get_func('SymDifference')
+    TRANSFORM = get_func('Transform')
+    TRANSLATE = get_func('Translate')
+
+    # Special cases for union and KML methods.
+    if MINOR_VERSION1 < 3:
+        UNIONAGG = 'GeomUnion'
+        UNION = 'Union'
+    else:
+        UNIONAGG = 'ST_Union'
+        UNION = 'ST_Union'
+
+    if MINOR_VERSION1 == 1:
+        ASKML = False
+else:
+    raise NotImplementedError('PostGIS versions < 1.0 are not supported.')
+
+#### Classes used in constructing PostGIS spatial SQL ####
+class PostGISOperator(SpatialOperation):
+    "For PostGIS operators (e.g. `&&`, `~`)."
+    def __init__(self, operator):
+        super(PostGISOperator, self).__init__(operator=operator, beg_subst='%s %s %%s')
+
+class PostGISFunction(SpatialFunction):
+    "For PostGIS function calls (e.g., `ST_Contains(table, geom)`)."
+    def __init__(self, function, **kwargs):
+        super(PostGISFunction, self).__init__(get_func(function), **kwargs)
+
+class PostGISFunctionParam(PostGISFunction):
+    "For PostGIS functions that take another parameter (e.g. DWithin, Relate)."
+    def __init__(self, func):
+        super(PostGISFunctionParam, self).__init__(func, end_subst=', %%s)')
+
+class PostGISDistance(PostGISFunction):
+    "For PostGIS distance operations."
+    dist_func = 'Distance'
+    def __init__(self, operator):
+        super(PostGISDistance, self).__init__(self.dist_func, end_subst=') %s %s', 
+                                              operator=operator, result='%%s')
+
+class PostGISSpheroidDistance(PostGISFunction):
+    "For PostGIS spherical distance operations (using the spheroid)."
+    dist_func = 'distance_spheroid'
+    def __init__(self, operator):
+        # An extra parameter in `end_subst` is needed for the spheroid string.
+        super(PostGISSpheroidDistance, self).__init__(self.dist_func, 
+                                                      beg_subst='%s(%s, %%s, %%s', 
+                                                      end_subst=') %s %s',
+                                                      operator=operator, result='%%s')
+
+class PostGISSphereDistance(PostGISFunction):
+    "For PostGIS spherical distance operations."
+    dist_func = 'distance_sphere'
+    def __init__(self, operator):
+        super(PostGISSphereDistance, self).__init__(self.dist_func, end_subst=') %s %s',
+                                                    operator=operator, result='%%s')
+                                                    
+class PostGISRelate(PostGISFunctionParam):
+    "For PostGIS Relate(<geom>, <pattern>) calls."
+    pattern_regex = re.compile(r'^[012TF\*]{9}$')
+    def __init__(self, pattern):
+        if not self.pattern_regex.match(pattern):
+            raise ValueError('Invalid intersection matrix pattern "%s".' % pattern)
+        super(PostGISRelate, self).__init__('Relate')
+
+#### Lookup type mapping dictionaries of PostGIS operations. ####
+
+# PostGIS-specific operators. The commented descriptions of these
+# operators come from Section 6.2.2 of the official PostGIS documentation.
+POSTGIS_OPERATORS = {
+    # The "&<" operator returns true if A's bounding box overlaps or
+    #  is to the left of B's bounding box.
+    'overlaps_left' : PostGISOperator('&<'),
+    # The "&>" operator returns true if A's bounding box overlaps or
+    #  is to the right of B's bounding box.
+    'overlaps_right' : PostGISOperator('&>'),
+    # The "<<" operator returns true if A's bounding box is strictly
+    #  to the left of B's bounding box.
+    'left' : PostGISOperator('<<'),
+    # The ">>" operator returns true if A's bounding box is strictly
+    #  to the right of B's bounding box.
+    'right' : PostGISOperator('>>'),
+    # The "&<|" operator returns true if A's bounding box overlaps or
+    #  is below B's bounding box.
+    'overlaps_below' : PostGISOperator('&<|'),
+    # The "|&>" operator returns true if A's bounding box overlaps or
+    #  is above B's bounding box.
+    'overlaps_above' : PostGISOperator('|&>'),
+    # The "<<|" operator returns true if A's bounding box is strictly
+    #  below B's bounding box.
+    'strictly_below' : PostGISOperator('<<|'),
+    # The "|>>" operator returns true if A's bounding box is strictly
+    # above B's bounding box.
+    'strictly_above' : PostGISOperator('|>>'),
+    # The "~=" operator is the "same as" operator. It tests actual
+    #  geometric equality of two features. So if A and B are the same feature,
+    #  vertex-by-vertex, the operator returns true.
+    'same_as' : PostGISOperator('~='),
+    'exact' : PostGISOperator('~='),
+    # The "@" operator returns true if A's bounding box is completely contained
+    #  by B's bounding box.
+    'contained' : PostGISOperator('@'),
+    # The "~" operator returns true if A's bounding box completely contains
+    #  by B's bounding box.
+    'bbcontains' : PostGISOperator('~'),
+    # The "&&" operator returns true if A's bounding box overlaps
+    #  B's bounding box.
+    'bboverlaps' : PostGISOperator('&&'),
+    }
+
+# For PostGIS >= 1.2.2 the following lookup types will do a bounding box query
+# first before calling the more computationally expensive GEOS routines (called
+# "inline index magic"):
+# 'touches', 'crosses', 'contains', 'intersects', 'within', 'overlaps', and
+# 'covers'.
+POSTGIS_GEOMETRY_FUNCTIONS = {
+    'equals' : PostGISFunction('Equals'),
+    'disjoint' : PostGISFunction('Disjoint'),
+    'touches' : PostGISFunction('Touches'),
+    'crosses' : PostGISFunction('Crosses'),
+    'within' : PostGISFunction('Within'),
+    'overlaps' : PostGISFunction('Overlaps'),
+    'contains' : PostGISFunction('Contains'),
+    'intersects' : PostGISFunction('Intersects'),
+    'relate' : (PostGISRelate, basestring),
+    }
+
+# Valid distance types and substitutions
+dtypes = (Decimal, Distance, float, int, long)
+def get_dist_ops(operator):
+    "Returns operations for both regular and spherical distances."
+    return (PostGISDistance(operator), PostGISSphereDistance(operator), PostGISSpheroidDistance(operator))
+DISTANCE_FUNCTIONS = {
+    'distance_gt' : (get_dist_ops('>'), dtypes),
+    'distance_gte' : (get_dist_ops('>='), dtypes),
+    'distance_lt' : (get_dist_ops('<'), dtypes),
+    'distance_lte' : (get_dist_ops('<='), dtypes),
+    }
+
+if GEOM_FUNC_PREFIX == 'ST_':
+    # The ST_DWithin, ST_CoveredBy, and ST_Covers routines become available in 1.2.2+
+    POSTGIS_GEOMETRY_FUNCTIONS.update(
+        {'coveredby' : PostGISFunction('CoveredBy'),
+         'covers' : PostGISFunction('Covers'),
+         })
+    DISTANCE_FUNCTIONS['dwithin'] = (PostGISFunctionParam('DWithin'), dtypes)
+
+# Distance functions are a part of PostGIS geometry functions.
+POSTGIS_GEOMETRY_FUNCTIONS.update(DISTANCE_FUNCTIONS)
+
+# Any other lookup types that do not require a mapping.
+MISC_TERMS = ['isnull']
+
+# These are the PostGIS-customized QUERY_TERMS -- a list of the lookup types
+#  allowed for geographic queries.
+POSTGIS_TERMS = POSTGIS_OPERATORS.keys() # Getting the operators first
+POSTGIS_TERMS += POSTGIS_GEOMETRY_FUNCTIONS.keys() # Adding on the Geometry Functions
+POSTGIS_TERMS += MISC_TERMS # Adding any other miscellaneous terms (e.g., 'isnull')
+POSTGIS_TERMS = dict((term, None) for term in POSTGIS_TERMS) # Making a dictionary for fast lookups
+
+# For checking tuple parameters -- not very pretty but gets job done.
+def exactly_two(val): return val == 2
+def two_to_three(val): return val >= 2 and val <=3
+def num_params(lookup_type, val):
+    if lookup_type in DISTANCE_FUNCTIONS and lookup_type != 'dwithin': return two_to_three(val)
+    else: return exactly_two(val)
+
+#### The `get_geo_where_clause` function for PostGIS. ####
+def get_geo_where_clause(table_alias, name, lookup_type, geo_annot):
+    "Returns the SQL WHERE clause for use in PostGIS SQL construction."
+    # Getting the quoted field as `geo_col`.
+    geo_col = '%s.%s' % (qn(table_alias), qn(name))
+    if lookup_type in POSTGIS_OPERATORS:
+        # See if a PostGIS operator matches the lookup type.
+        return POSTGIS_OPERATORS[lookup_type].as_sql(geo_col)
+    elif lookup_type in POSTGIS_GEOMETRY_FUNCTIONS:
+        # See if a PostGIS geometry function matches the lookup type.
+        tmp = POSTGIS_GEOMETRY_FUNCTIONS[lookup_type]
+
+        # Lookup types that are tuples take tuple arguments, e.g., 'relate' and 
+        # distance lookups.
+        if isinstance(tmp, tuple):
+            # First element of tuple is the PostGISOperation instance, and the
+            # second element is either the type or a tuple of acceptable types
+            # that may passed in as further parameters for the lookup type.
+            op, arg_type = tmp
+
+            # Ensuring that a tuple _value_ was passed in from the user
+            if not isinstance(geo_annot.value, (tuple, list)): 
+                raise TypeError('Tuple required for `%s` lookup type.' % lookup_type)
+           
+            # Number of valid tuple parameters depends on the lookup type.
+            nparams = len(geo_annot.value)
+            if not num_params(lookup_type, nparams):
+                raise ValueError('Incorrect number of parameters given for `%s` lookup type.' % lookup_type)
+            
+            # Ensuring the argument type matches what we expect.
+            if not isinstance(geo_annot.value[1], arg_type):
+                raise TypeError('Argument type should be %s, got %s instead.' % (arg_type, type(geo_annot.value[1])))
+
+            # For lookup type `relate`, the op instance is not yet created (has
+            # to be instantiated here to check the pattern parameter).
+            if lookup_type == 'relate': 
+                op = op(geo_annot.value[1])
+            elif lookup_type in DISTANCE_FUNCTIONS and lookup_type != 'dwithin':
+                if geo_annot.geodetic:
+                    # Geodetic distances are only availble from Points to PointFields.
+                    if geo_annot.geom_type != 'POINT':
+                        raise TypeError('PostGIS spherical operations are only valid on PointFields.')
+                    if geo_annot.value[0].geom_typeid != 0:
+                        raise TypeError('PostGIS geometry distance parameter is required to be of type Point.')
+                    # Setting up the geodetic operation appropriately.
+                    if nparams == 3 and geo_annot.value[2] == 'spheroid': op = op[2]
+                    else: op = op[1]
+                else:
+                    op = op[0]
+        else:
+            op = tmp
+        # Calling the `as_sql` function on the operation instance.
+        return op.as_sql(geo_col)
+    elif lookup_type == 'isnull':
+        # Handling 'isnull' lookup type
+        return "%s IS %sNULL" % (geo_col, (not geo_annot.value and 'NOT ' or ''))
+
+    raise TypeError("Got invalid lookup_type: %s" % repr(lookup_type))
diff --git a/webapp/django/contrib/gis/db/backend/util.py b/webapp/django/contrib/gis/db/backend/util.py
new file mode 100644
index 0000000..a19dd97
--- /dev/null
+++ b/webapp/django/contrib/gis/db/backend/util.py
@@ -0,0 +1,52 @@
+from types import UnicodeType
+
+def gqn(val):
+    """
+    The geographic quote name function; used for quoting tables and 
+    geometries (they use single rather than the double quotes of the
+    backend quotename function).
+    """
+    if isinstance(val, basestring):
+        if isinstance(val, UnicodeType): val = val.encode('ascii')
+        return "'%s'" % val
+    else:
+        return str(val)
+
+class SpatialOperation(object):
+    """
+    Base class for generating spatial SQL.
+    """
+    def __init__(self, function='', operator='', result='', beg_subst='', end_subst=''):
+        self.function = function
+        self.operator = operator
+        self.result = result
+        self.beg_subst = beg_subst
+        try:
+            # Try and put the operator and result into to the
+            # end substitution.
+            self.end_subst = end_subst % (operator, result)
+        except TypeError:
+            self.end_subst = end_subst
+
+    @property
+    def sql_subst(self):
+        return ''.join([self.beg_subst, self.end_subst])
+
+    def as_sql(self, geo_col):
+        return self.sql_subst % self.params(geo_col)
+
+    def params(self, geo_col):
+        return (geo_col, self.operator)
+
+class SpatialFunction(SpatialOperation):
+    """
+    Base class for generating spatial SQL related to a function.
+    """
+    def __init__(self, func, beg_subst='%s(%s, %%s', end_subst=')', result='', operator=''):
+        # Getting the function prefix.
+        kwargs = {'function' : func, 'operator' : operator, 'result' : result,
+                  'beg_subst' : beg_subst, 'end_subst' : end_subst,}
+        super(SpatialFunction, self).__init__(**kwargs)
+
+    def params(self, geo_col):
+        return (self.function, geo_col)
diff --git a/webapp/django/contrib/gis/db/models/__init__.py b/webapp/django/contrib/gis/db/models/__init__.py
new file mode 100644
index 0000000..02a2c53
--- /dev/null
+++ b/webapp/django/contrib/gis/db/models/__init__.py
@@ -0,0 +1,17 @@
+# Want to get everything from the 'normal' models package.
+from django.db.models import *
+
+# The GeoManager
+from django.contrib.gis.db.models.manager import GeoManager
+
+# The GeoQ object
+from django.contrib.gis.db.models.query import GeoQ
+
+# The geographic-enabled fields.
+from django.contrib.gis.db.models.fields import \
+     GeometryField, PointField, LineStringField, PolygonField, \
+     MultiPointField, MultiLineStringField, MultiPolygonField, \
+     GeometryCollectionField
+
+# The geographic mixin class.
+from mixin import GeoMixin
diff --git a/webapp/django/contrib/gis/db/models/fields/__init__.py b/webapp/django/contrib/gis/db/models/fields/__init__.py
new file mode 100644
index 0000000..a1dfa23
--- /dev/null
+++ b/webapp/django/contrib/gis/db/models/fields/__init__.py
@@ -0,0 +1,211 @@
+from django.contrib.gis import forms
+# Getting the SpatialBackend container and the geographic quoting method.
+from django.contrib.gis.db.backend import SpatialBackend, gqn
+# GeometryProxy, GEOS, and Distance imports.
+from django.contrib.gis.db.models.proxy import GeometryProxy
+from django.contrib.gis.measure import Distance
+# The `get_srid_info` function gets SRID information from the spatial
+# reference system table w/o using the ORM.
+from django.contrib.gis.models import get_srid_info
+
+#TODO: Flesh out widgets; consider adding support for OGR Geometry proxies.
+class GeometryField(SpatialBackend.Field):
+    "The base GIS field -- maps to the OpenGIS Specification Geometry type."
+
+    # The OpenGIS Geometry name.
+    _geom = 'GEOMETRY'
+
+    # Geodetic units.
+    geodetic_units = ('Decimal Degree', 'degree')
+
+    def __init__(self, verbose_name=None, srid=4326, spatial_index=True, dim=2, **kwargs):
+        """
+        The initialization function for geometry fields.  Takes the following
+        as keyword arguments:
+
+        srid:
+         The spatial reference system identifier, an OGC standard.
+         Defaults to 4326 (WGS84).
+
+        spatial_index:
+         Indicates whether to create a spatial index.  Defaults to True.
+         Set this instead of 'db_index' for geographic fields since index
+         creation is different for geometry columns.
+                  
+        dim:
+         The number of dimensions for this geometry.  Defaults to 2.
+        """
+
+        # Setting the index flag with the value of the `spatial_index` keyword.
+        self._index = spatial_index
+
+        # Setting the SRID and getting the units.  Unit information must be 
+        # easily available in the field instance for distance queries.
+        self._srid = srid
+        self._unit, self._unit_name, self._spheroid = get_srid_info(srid)
+
+        # Setting the dimension of the geometry field.
+        self._dim = dim
+        
+        # Setting the verbose_name keyword argument with the positional 
+        # first parameter, so this works like normal fields.
+        kwargs['verbose_name'] = verbose_name
+       
+        super(GeometryField, self).__init__(**kwargs) # Calling the parent initializtion function
+
+    ### Routines specific to GeometryField ###
+    @property
+    def geodetic(self):
+        """
+        Returns true if this field's SRID corresponds with a coordinate
+        system that uses non-projected units (e.g., latitude/longitude).
+        """
+        return self._unit_name in self.geodetic_units
+
+    def get_distance(self, dist_val, lookup_type):
+        """
+        Returns a distance number in units of the field.  For example, if 
+        `D(km=1)` was passed in and the units of the field were in meters,
+        then 1000 would be returned.
+        """
+        # Getting the distance parameter and any options.
+        if len(dist_val) == 1: dist, option = dist_val[0], None
+        else: dist, option = dist_val
+
+        if isinstance(dist, Distance):
+            if self.geodetic:
+                # Won't allow Distance objects w/DWithin lookups on PostGIS.
+                if SpatialBackend.postgis and lookup_type == 'dwithin':
+                    raise TypeError('Only numeric values of degree units are allowed on geographic DWithin queries.')
+                # Spherical distance calculation parameter should be in meters.
+                dist_param = dist.m
+            else:
+                dist_param = getattr(dist, Distance.unit_attname(self._unit_name))
+        else:
+            # Assuming the distance is in the units of the field.
+            dist_param = dist
+       
+        if SpatialBackend.postgis and self.geodetic and lookup_type != 'dwithin' and option == 'spheroid':
+            # On PostGIS, by default `ST_distance_sphere` is used; but if the 
+            # accuracy of `ST_distance_spheroid` is needed than the spheroid 
+            # needs to be passed to the SQL stored procedure.
+            return [gqn(self._spheroid), dist_param]
+        else:
+            return [dist_param]
+
+    def get_geometry(self, value):
+        """
+        Retrieves the geometry, setting the default SRID from the given
+        lookup parameters.
+        """
+        if isinstance(value, (tuple, list)): 
+            geom = value[0]
+        else:
+            geom = value
+
+        # When the input is not a GEOS geometry, attempt to construct one
+        # from the given string input.
+        if isinstance(geom, SpatialBackend.Geometry):
+            pass
+        elif isinstance(geom, basestring):
+            try:
+                geom = SpatialBackend.Geometry(geom)
+            except SpatialBackend.GeometryException:
+                raise ValueError('Could not create geometry from lookup value: %s' % str(value))
+        else:
+            raise TypeError('Cannot use parameter of `%s` type as lookup parameter.' % type(value))
+
+        # Assigning the SRID value.
+        geom.srid = self.get_srid(geom)
+        
+        return geom
+
+    def get_srid(self, geom):
+        """
+        Returns the default SRID for the given geometry, taking into account
+        the SRID set for the field.  For example, if the input geometry
+        has no SRID, then that of the field will be returned.
+        """
+        gsrid = geom.srid # SRID of given geometry.
+        if gsrid is None or self._srid == -1 or (gsrid == -1 and self._srid != -1):
+            return self._srid
+        else:
+            return gsrid
+
+    ### Routines overloaded from Field ###
+    def contribute_to_class(self, cls, name):
+        super(GeometryField, self).contribute_to_class(cls, name)
+        
+        # Setup for lazy-instantiated Geometry object.
+        setattr(cls, self.attname, GeometryProxy(SpatialBackend.Geometry, self))
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class' : forms.GeometryField, 
+                    'geom_type' : self._geom,
+                    'null' : self.null,
+                    }
+        defaults.update(kwargs)
+        return super(GeometryField, self).formfield(**defaults)
+
+    def get_db_prep_lookup(self, lookup_type, value):
+        """
+        Returns the spatial WHERE clause and associated parameters for the
+        given lookup type and value.  The value will be prepared for database
+        lookup (e.g., spatial transformation SQL will be added if necessary).
+        """
+        if lookup_type in SpatialBackend.gis_terms:
+            # special case for isnull lookup
+            if lookup_type == 'isnull': return [], []
+
+            # Get the geometry with SRID; defaults SRID to that of the field
+            # if it is None.
+            geom = self.get_geometry(value)
+
+            # Getting the WHERE clause list and the associated params list. The params 
+            # list is populated with the Adaptor wrapping the Geometry for the 
+            # backend.  The WHERE clause list contains the placeholder for the adaptor
+            # (e.g. any transformation SQL).
+            where = [self.get_placeholder(geom)]
+            params = [SpatialBackend.Adaptor(geom)]
+
+            if isinstance(value, (tuple, list)):
+                if lookup_type in SpatialBackend.distance_functions:
+                    # Getting the distance parameter in the units of the field.
+                    where += self.get_distance(value[1:], lookup_type)
+                elif lookup_type in SpatialBackend.limited_where:
+                    pass
+                else:
+                    # Otherwise, making sure any other parameters are properly quoted.
+                    where += map(gqn, value[1:])
+            return where, params
+        else:
+            raise TypeError("Field has invalid lookup: %s" % lookup_type)
+
+    def get_db_prep_save(self, value):
+        "Prepares the value for saving in the database."
+        if value is None:
+            return None
+        else:
+            return SpatialBackend.Adaptor(self.get_geometry(value))
+
+# The OpenGIS Geometry Type Fields
+class PointField(GeometryField):
+    _geom = 'POINT'
+
+class LineStringField(GeometryField):
+    _geom = 'LINESTRING'
+
+class PolygonField(GeometryField):
+    _geom = 'POLYGON'
+
+class MultiPointField(GeometryField):
+    _geom = 'MULTIPOINT'
+
+class MultiLineStringField(GeometryField):
+    _geom = 'MULTILINESTRING'
+
+class MultiPolygonField(GeometryField):
+    _geom = 'MULTIPOLYGON'
+
+class GeometryCollectionField(GeometryField):
+    _geom = 'GEOMETRYCOLLECTION'
diff --git a/webapp/django/contrib/gis/db/models/manager.py b/webapp/django/contrib/gis/db/models/manager.py
new file mode 100644
index 0000000..602d112
--- /dev/null
+++ b/webapp/django/contrib/gis/db/models/manager.py
@@ -0,0 +1,82 @@
+from django.db.models.manager import Manager
+from django.contrib.gis.db.models.query import GeoQuerySet
+
+class GeoManager(Manager):
+    "Overrides Manager to return Geographic QuerySets."
+
+    # This manager should be used for queries on related fields
+    # so that geometry columns on Oracle and MySQL are selected
+    # properly.
+    use_for_related_fields = True
+
+    def get_query_set(self):
+        return GeoQuerySet(model=self.model)
+
+    def area(self, *args, **kwargs):
+        return self.get_query_set().area(*args, **kwargs)
+
+    def centroid(self, *args, **kwargs):
+        return self.get_query_set().centroid(*args, **kwargs)
+
+    def difference(self, *args, **kwargs):
+        return self.get_query_set().difference(*args, **kwargs)
+
+    def distance(self, *args, **kwargs):
+        return self.get_query_set().distance(*args, **kwargs)
+
+    def envelope(self, *args, **kwargs):
+        return self.get_query_set().envelope(*args, **kwargs)
+
+    def extent(self, *args, **kwargs):
+        return self.get_query_set().extent(*args, **kwargs)
+
+    def gml(self, *args, **kwargs):
+        return self.get_query_set().gml(*args, **kwargs)
+
+    def intersection(self, *args, **kwargs):
+        return self.get_query_set().intersection(*args, **kwargs)
+
+    def kml(self, *args, **kwargs):
+        return self.get_query_set().kml(*args, **kwargs)
+
+    def length(self, *args, **kwargs):
+        return self.get_query_set().length(*args, **kwargs)
+
+    def make_line(self, *args, **kwargs):
+        return self.get_query_set().make_line(*args, **kwargs)
+    
+    def mem_size(self, *args, **kwargs):
+        return self.get_query_set().mem_size(*args, **kwargs)
+
+    def num_geom(self, *args, **kwargs):
+        return self.get_query_set().num_geom(*args, **kwargs)
+
+    def num_points(self, *args, **kwargs):
+        return self.get_query_set().num_points(*args, **kwargs)
+
+    def perimeter(self, *args, **kwargs):
+        return self.get_query_set().perimeter(*args, **kwargs)
+
+    def point_on_surface(self, *args, **kwargs):
+        return self.get_query_set().point_on_surface(*args, **kwargs)
+
+    def scale(self, *args, **kwargs):
+        return self.get_query_set().scale(*args, **kwargs)
+
+    def svg(self, *args, **kwargs):
+        return self.get_query_set().svg(*args, **kwargs)
+
+    def sym_difference(self, *args, **kwargs):
+        return self.get_query_set().sym_difference(*args, **kwargs)
+
+    def transform(self, *args, **kwargs):
+        return self.get_query_set().transform(*args, **kwargs)
+
+    def translate(self, *args, **kwargs):
+        return self.get_query_set().translate(*args, **kwargs)
+
+    def union(self, *args, **kwargs):
+        return self.get_query_set().union(*args, **kwargs)
+
+    def unionagg(self, *args, **kwargs):
+        return self.get_query_set().unionagg(*args, **kwargs)
diff --git a/webapp/django/contrib/gis/db/models/mixin.py b/webapp/django/contrib/gis/db/models/mixin.py
new file mode 100644
index 0000000..475a053
--- /dev/null
+++ b/webapp/django/contrib/gis/db/models/mixin.py
@@ -0,0 +1,11 @@
+# Until model subclassing is a possibility, a mixin class is used to add
+# the necessary functions that may be contributed for geographic objects.
+class GeoMixin:
+    """
+    The Geographic Mixin class provides routines for geographic objects,
+    however, it is no longer necessary, since all of its previous functions 
+    may now be accessed via the GeometryProxy.  This mixin is only provided
+    for backwards-compatibility purposes, and will be eventually removed
+    (unless the need arises again).
+    """
+    pass
diff --git a/webapp/django/contrib/gis/db/models/proxy.py b/webapp/django/contrib/gis/db/models/proxy.py
new file mode 100644
index 0000000..34276a6
--- /dev/null
+++ b/webapp/django/contrib/gis/db/models/proxy.py
@@ -0,0 +1,62 @@
+"""
+ The GeometryProxy object, allows for lazy-geometries.  The proxy uses
+ Python descriptors for instantiating and setting Geometry objects
+ corresponding to geographic model fields.
+
+ Thanks to Robert Coup for providing this functionality (see #4322).
+"""
+
+from types import NoneType, StringType, UnicodeType
+
+class GeometryProxy(object): 
+    def __init__(self, klass, field): 
+        """
+        Proxy initializes on the given Geometry class (not an instance) and 
+        the GeometryField.
+        """
+        self._field = field 
+        self._klass = klass
+     
+    def __get__(self, obj, type=None): 
+        """
+        This accessor retrieves the geometry, initializing it using the geometry
+        class specified during initialization and the HEXEWKB value of the field.  
+        Currently, only GEOS or OGR geometries are supported.
+        """
+        # Getting the value of the field.
+        geom_value = obj.__dict__[self._field.attname] 
+        
+        if isinstance(geom_value, self._klass): 
+            geom = geom_value
+        elif (geom_value is None) or (geom_value==''):
+            geom = None
+        else: 
+            # Otherwise, a Geometry object is built using the field's contents,
+            # and the model's corresponding attribute is set.
+            geom = self._klass(geom_value)
+            setattr(obj, self._field.attname, geom) 
+        return geom 
+     
+    def __set__(self, obj, value):
+        """
+        This accessor sets the proxied geometry with the geometry class
+        specified during initialization.  Values of None, HEXEWKB, or WKT may
+        be used to set the geometry as well.
+        """
+        # The OGC Geometry type of the field.
+        gtype = self._field._geom
+        
+        # The geometry type must match that of the field -- unless the
+        # general GeometryField is used.
+        if isinstance(value, self._klass) and (str(value.geom_type).upper() == gtype or gtype == 'GEOMETRY'):
+            # Assigning the SRID to the geometry.
+            if value.srid is None: value.srid = self._field._srid
+        elif isinstance(value, (NoneType, StringType, UnicodeType)):
+            # Set with None, WKT, or HEX
+            pass
+        else:
+            raise TypeError('cannot set %s GeometryProxy with value of type: %s' % (obj.__class__.__name__, type(value)))
+
+        # Setting the objects dictionary with the value, and returning.
+        obj.__dict__[self._field.attname] = value 
+        return value 
diff --git a/webapp/django/contrib/gis/db/models/query.py b/webapp/django/contrib/gis/db/models/query.py
new file mode 100644
index 0000000..8efc720
--- /dev/null
+++ b/webapp/django/contrib/gis/db/models/query.py
@@ -0,0 +1,617 @@
+from django.core.exceptions import ImproperlyConfigured
+from django.db import connection
+from django.db.models.query import sql, QuerySet, Q
+
+from django.contrib.gis.db.backend import SpatialBackend
+from django.contrib.gis.db.models.fields import GeometryField, PointField
+from django.contrib.gis.db.models.sql import AreaField, DistanceField, GeomField, GeoQuery, GeoWhereNode
+from django.contrib.gis.measure import Area, Distance
+from django.contrib.gis.models import get_srid_info
+qn = connection.ops.quote_name
+
+# For backwards-compatibility; Q object should work just fine
+# after queryset-refactor.
+class GeoQ(Q): pass
+
+class GeomSQL(object):
+    "Simple wrapper object for geometric SQL."
+    def __init__(self, geo_sql):
+        self.sql = geo_sql
+    
+    def as_sql(self, *args, **kwargs):
+        return self.sql
+
+class GeoQuerySet(QuerySet):
+    "The Geographic QuerySet."
+
+    def __init__(self, model=None, query=None):
+        super(GeoQuerySet, self).__init__(model=model, query=query)
+        self.query = query or GeoQuery(self.model, connection)
+
+    def area(self, tolerance=0.05, **kwargs):
+        """
+        Returns the area of the geographic field in an `area` attribute on 
+        each element of this GeoQuerySet.
+        """
+        # Peforming setup here rather than in `_spatial_attribute` so that
+        # we can get the units for `AreaField`.
+        procedure_args, geo_field = self._spatial_setup('area', field_name=kwargs.get('field_name', None))
+        s = {'procedure_args' : procedure_args,
+             'geo_field' : geo_field,
+             'setup' : False,
+             }
+        if SpatialBackend.oracle:
+            s['procedure_fmt'] = '%(geo_col)s,%(tolerance)s'
+            s['procedure_args']['tolerance'] = tolerance
+            s['select_field'] = AreaField('sq_m') # Oracle returns area in units of meters.
+        elif SpatialBackend.postgis:
+            if not geo_field.geodetic:
+                # Getting the area units of the geographic field.
+                s['select_field'] = AreaField(Area.unit_attname(geo_field._unit_name))
+            else:
+                # TODO: Do we want to support raw number areas for geodetic fields?
+                raise Exception('Area on geodetic coordinate systems not supported.')
+        return self._spatial_attribute('area', s, **kwargs)
+
+    def centroid(self, **kwargs):
+        """
+        Returns the centroid of the geographic field in a `centroid`
+        attribute on each element of this GeoQuerySet.
+        """
+        return self._geom_attribute('centroid', **kwargs)
+
+    def difference(self, geom, **kwargs):
+        """
+        Returns the spatial difference of the geographic field in a `difference`
+        attribute on each element of this GeoQuerySet.
+        """
+        return self._geomset_attribute('difference', geom, **kwargs)
+
+    def distance(self, geom, **kwargs):
+        """
+        Returns the distance from the given geographic field name to the
+        given geometry in a `distance` attribute on each element of the
+        GeoQuerySet.
+
+        Keyword Arguments:
+         `spheroid`  => If the geometry field is geodetic and PostGIS is
+                        the spatial database, then the more accurate 
+                        spheroid calculation will be used instead of the
+                        quicker sphere calculation.
+                        
+         `tolerance` => Used only for Oracle. The tolerance is 
+                        in meters -- a default of 5 centimeters (0.05) 
+                        is used.
+        """
+        return self._distance_attribute('distance', geom, **kwargs)
+
+    def envelope(self, **kwargs):
+        """
+        Returns a Geometry representing the bounding box of the 
+        Geometry field in an `envelope` attribute on each element of
+        the GeoQuerySet. 
+        """
+        return self._geom_attribute('envelope', **kwargs)
+
+    def extent(self, **kwargs):
+        """
+        Returns the extent (aggregate) of the features in the GeoQuerySet.  The
+        extent will be returned as a 4-tuple, consisting of (xmin, ymin, xmax, ymax).
+        """
+        convert_extent = None
+        if SpatialBackend.postgis:
+            def convert_extent(box, geo_field):
+                # TODO: Parsing of BOX3D, Oracle support (patches welcome!)
+                # Box text will be something like "BOX(-90.0 30.0, -85.0 40.0)"; 
+                # parsing out and returning as a 4-tuple.
+                ll, ur = box[4:-1].split(',')
+                xmin, ymin = map(float, ll.split())
+                xmax, ymax = map(float, ur.split())
+                return (xmin, ymin, xmax, ymax)
+        elif SpatialBackend.oracle:
+            def convert_extent(wkt, geo_field):
+                raise NotImplementedError
+        return self._spatial_aggregate('extent', convert_func=convert_extent, **kwargs)
+
+    def gml(self, precision=8, version=2, **kwargs):
+        """
+        Returns GML representation of the given field in a `gml` attribute
+        on each element of the GeoQuerySet.
+        """
+        s = {'desc' : 'GML', 'procedure_args' : {'precision' : precision}}
+        if SpatialBackend.postgis:
+            # PostGIS AsGML() aggregate function parameter order depends on the 
+            # version -- uggh.
+            major, minor1, minor2 = SpatialBackend.version
+            if major >= 1 and (minor1 > 3 or (minor1 == 3 and minor2 > 1)):
+                procedure_fmt = '%(version)s,%(geo_col)s,%(precision)s'
+            else:
+                procedure_fmt = '%(geo_col)s,%(precision)s,%(version)s'
+            s['procedure_args'] = {'precision' : precision, 'version' : version}
+
+        return self._spatial_attribute('gml', s, **kwargs)
+
+    def intersection(self, geom, **kwargs):
+        """
+        Returns the spatial intersection of the Geometry field in
+        an `intersection` attribute on each element of this
+        GeoQuerySet.
+        """
+        return self._geomset_attribute('intersection', geom, **kwargs)
+
+    def kml(self, **kwargs):
+        """
+        Returns KML representation of the geometry field in a `kml`
+        attribute on each element of this GeoQuerySet.
+        """
+        s = {'desc' : 'KML',
+             'procedure_fmt' : '%(geo_col)s,%(precision)s',
+             'procedure_args' : {'precision' : kwargs.pop('precision', 8)},
+             }
+        return self._spatial_attribute('kml', s, **kwargs)
+
+    def length(self, **kwargs):
+        """
+        Returns the length of the geometry field as a `Distance` object
+        stored in a `length` attribute on each element of this GeoQuerySet.
+        """
+        return self._distance_attribute('length', None, **kwargs)
+
+    def make_line(self, **kwargs):
+        """
+        Creates a linestring from all of the PointField geometries in the
+        this GeoQuerySet and returns it.  This is a spatial aggregate
+        method, and thus returns a geometry rather than a GeoQuerySet.
+        """
+        kwargs['geo_field_type'] = PointField
+        kwargs['agg_field'] = GeometryField
+        return self._spatial_aggregate('make_line', **kwargs)
+
+    def mem_size(self, **kwargs):
+        """
+        Returns the memory size (number of bytes) that the geometry field takes
+        in a `mem_size` attribute  on each element of this GeoQuerySet.
+        """
+        return self._spatial_attribute('mem_size', {}, **kwargs)
+
+    def num_geom(self, **kwargs):
+        """
+        Returns the number of geometries if the field is a
+        GeometryCollection or Multi* Field in a `num_geom`
+        attribute on each element of this GeoQuerySet; otherwise
+        the sets with None.
+        """
+        return self._spatial_attribute('num_geom', {}, **kwargs)
+
+    def num_points(self, **kwargs):
+        """
+        Returns the number of points in the first linestring in the 
+        Geometry field in a `num_points` attribute on each element of
+        this GeoQuerySet; otherwise sets with None.
+        """
+        return self._spatial_attribute('num_points', {}, **kwargs)
+
+    def perimeter(self, **kwargs):
+        """
+        Returns the perimeter of the geometry field as a `Distance` object
+        stored in a `perimeter` attribute on each element of this GeoQuerySet.
+        """
+        return self._distance_attribute('perimeter', None, **kwargs)
+
+    def point_on_surface(self, **kwargs):
+        """
+        Returns a Point geometry guaranteed to lie on the surface of the
+        Geometry field in a `point_on_surface` attribute on each element
+        of this GeoQuerySet; otherwise sets with None.
+        """
+        return self._geom_attribute('point_on_surface', **kwargs)
+
+    def scale(self, x, y, z=0.0, **kwargs):
+        """
+        Scales the geometry to a new size by multiplying the ordinates
+        with the given x,y,z scale factors.
+        """
+        s = {'procedure_fmt' : '%(geo_col)s,%(x)s,%(y)s,%(z)s',
+             'procedure_args' : {'x' : x, 'y' : y, 'z' : z},
+             'select_field' : GeomField(),
+             }
+        return self._spatial_attribute('scale', s, **kwargs)
+
+    def svg(self, **kwargs):
+        """
+        Returns SVG representation of the geographic field in a `svg`
+        attribute on each element of this GeoQuerySet.
+        """
+        s = {'desc' : 'SVG',
+             'procedure_fmt' : '%(geo_col)s,%(rel)s,%(precision)s',
+             'procedure_args' : {'rel' : int(kwargs.pop('relative', 0)),
+                                 'precision' : kwargs.pop('precision', 8)},
+             }
+        return self._spatial_attribute('svg', s, **kwargs)
+
+    def sym_difference(self, geom, **kwargs):
+        """
+        Returns the symmetric difference of the geographic field in a 
+        `sym_difference` attribute on each element of this GeoQuerySet.
+        """
+        return self._geomset_attribute('sym_difference', geom, **kwargs)
+
+    def translate(self, x, y, z=0.0, **kwargs):
+        """
+        Translates the geometry to a new location using the given numeric
+        parameters as offsets.
+        """
+        s = {'procedure_fmt' : '%(geo_col)s,%(x)s,%(y)s,%(z)s',
+             'procedure_args' : {'x' : x, 'y' : y, 'z' : z},
+             'select_field' : GeomField(),
+             }
+        return self._spatial_attribute('translate', s, **kwargs)
+
+    def transform(self, srid=4326, **kwargs):
+        """
+        Transforms the given geometry field to the given SRID.  If no SRID is
+        provided, the transformation will default to using 4326 (WGS84).
+        """
+        if not isinstance(srid, (int, long)):
+            raise TypeError('An integer SRID must be provided.')
+        field_name = kwargs.get('field_name', None)
+        tmp, geo_field = self._spatial_setup('transform', field_name=field_name)
+
+        # Getting the selection SQL for the given geographic field.
+        field_col = self._geocol_select(geo_field, field_name)
+
+        # Why cascading substitutions? Because spatial backends like
+        # Oracle and MySQL already require a function call to convert to text, thus
+        # when there's also a transformation we need to cascade the substitutions.
+        # For example, 'SDO_UTIL.TO_WKTGEOMETRY(SDO_CS.TRANSFORM( ... )'
+        geo_col = self.query.custom_select.get(geo_field, field_col)
+        
+        # Setting the key for the field's column with the custom SELECT SQL to
+        # override the geometry column returned from the database.
+        custom_sel = '%s(%s, %s)' % (SpatialBackend.transform, geo_col, srid)
+        # TODO: Should we have this as an alias?
+        # custom_sel = '(%s(%s, %s)) AS %s' % (SpatialBackend.transform, geo_col, srid, qn(geo_field.name))
+        self.query.transformed_srid = srid # So other GeoQuerySet methods
+        self.query.custom_select[geo_field] = custom_sel
+        return self._clone()
+
+    def union(self, geom, **kwargs):
+        """
+        Returns the union of the geographic field with the given
+        Geometry in a `union` attribute on each element of this GeoQuerySet.
+        """
+        return self._geomset_attribute('union', geom, **kwargs)
+
+    def unionagg(self, **kwargs):
+        """
+        Performs an aggregate union on the given geometry field.  Returns
+        None if the GeoQuerySet is empty.  The `tolerance` keyword is for
+        Oracle backends only.
+        """
+        kwargs['agg_field'] = GeometryField
+        return self._spatial_aggregate('unionagg', **kwargs)
+
+    ### Private API -- Abstracted DRY routines. ###
+    def _spatial_setup(self, att, aggregate=False, desc=None, field_name=None, geo_field_type=None):
+        """
+        Performs set up for executing the spatial function.
+        """
+        # Does the spatial backend support this?
+        func = getattr(SpatialBackend, att, False)
+        if desc is None: desc = att
+        if not func: raise ImproperlyConfigured('%s stored procedure not available.' % desc)
+
+        # Initializing the procedure arguments. 
+        procedure_args = {'function' : func}
+        
+        # Is there a geographic field in the model to perform this 
+        # operation on?
+        geo_field = self.query._geo_field(field_name)
+        if not geo_field:
+            raise TypeError('%s output only available on GeometryFields.' % func)
+
+        # If the `geo_field_type` keyword was used, then enforce that 
+        # type limitation.
+        if not geo_field_type is None and not isinstance(geo_field, geo_field_type): 
+            raise TypeError('"%s" stored procedures may only be called on %ss.' % (func, geo_field_type.__name__)) 
+
+        # Setting the procedure args.
+        procedure_args['geo_col'] = self._geocol_select(geo_field, field_name, aggregate)
+
+        return procedure_args, geo_field
+
+    def _spatial_aggregate(self, att, field_name=None, 
+                           agg_field=None, convert_func=None, 
+                           geo_field_type=None, tolerance=0.0005):
+        """
+        DRY routine for calling aggregate spatial stored procedures and
+        returning their result to the caller of the function.
+        """
+        # Constructing the setup keyword arguments.
+        setup_kwargs = {'aggregate' : True,
+                        'field_name' : field_name,
+                        'geo_field_type' : geo_field_type,
+                        }
+        procedure_args, geo_field = self._spatial_setup(att, **setup_kwargs)
+        
+        if SpatialBackend.oracle:
+            procedure_args['tolerance'] = tolerance
+            # Adding in selection SQL for Oracle geometry columns.
+            if agg_field is GeometryField: 
+                agg_sql = '%s' % SpatialBackend.select
+            else: 
+                agg_sql = '%s'
+            agg_sql =  agg_sql % ('%(function)s(SDOAGGRTYPE(%(geo_col)s,%(tolerance)s))' % procedure_args)
+        else:
+            agg_sql = '%(function)s(%(geo_col)s)' % procedure_args
+
+        # Wrapping our selection SQL in `GeomSQL` to bypass quoting, and
+        # specifying the type of the aggregate field.
+        self.query.select = [GeomSQL(agg_sql)]
+        self.query.select_fields = [agg_field]
+
+        try:
+            # `asql` => not overriding `sql` module.
+            asql, params = self.query.as_sql()
+        except sql.datastructures.EmptyResultSet:
+            return None   
+
+        # Getting a cursor, executing the query, and extracting the returned
+        # value from the aggregate function.
+        cursor = connection.cursor()
+        cursor.execute(asql, params)
+        result = cursor.fetchone()[0]
+        
+        # If the `agg_field` is specified as a GeometryField, then autmatically
+        # set up the conversion function.
+        if agg_field is GeometryField and not callable(convert_func):
+            if SpatialBackend.postgis:
+                def convert_geom(hex, geo_field):
+                    if hex: return SpatialBackend.Geometry(hex)
+                    else: return None
+            elif SpatialBackend.oracle:
+                def convert_geom(clob, geo_field):
+                    if clob: return SpatialBackend.Geometry(clob.read(), geo_field._srid)
+                    else: return None
+            convert_func = convert_geom
+
+        # Returning the callback function evaluated on the result culled
+        # from the executed cursor.
+        if callable(convert_func):
+            return convert_func(result, geo_field)
+        else:
+            return result
+
+    def _spatial_attribute(self, att, settings, field_name=None, model_att=None):
+        """
+        DRY routine for calling a spatial stored procedure on a geometry column
+        and attaching its output as an attribute of the model.
+
+        Arguments:
+         att:
+          The name of the spatial attribute that holds the spatial
+          SQL function to call.
+
+         settings:
+          Dictonary of internal settings to customize for the spatial procedure. 
+
+        Public Keyword Arguments:
+
+         field_name:
+          The name of the geographic field to call the spatial
+          function on.  May also be a lookup to a geometry field
+          as part of a foreign key relation.
+
+         model_att:
+          The name of the model attribute to attach the output of
+          the spatial function to.
+        """
+        # Default settings.
+        settings.setdefault('desc', None)
+        settings.setdefault('geom_args', ())
+        settings.setdefault('geom_field', None)
+        settings.setdefault('procedure_args', {})
+        settings.setdefault('procedure_fmt', '%(geo_col)s')
+        settings.setdefault('select_params', [])
+
+        # Performing setup for the spatial column, unless told not to.
+        if settings.get('setup', True):
+            default_args, geo_field = self._spatial_setup(att, desc=settings['desc'], field_name=field_name)
+            for k, v in default_args.iteritems(): settings['procedure_args'].setdefault(k, v)
+        else:
+            geo_field = settings['geo_field']
+            
+        # The attribute to attach to the model.
+        if not isinstance(model_att, basestring): model_att = att
+
+        # Special handling for any argument that is a geometry.
+        for name in settings['geom_args']:
+            # Using the field's get_db_prep_lookup() to get any needed
+            # transformation SQL -- we pass in a 'dummy' `contains` lookup.
+            where, params = geo_field.get_db_prep_lookup('contains', settings['procedure_args'][name])
+            # Replacing the procedure format with that of any needed 
+            # transformation SQL.
+            old_fmt = '%%(%s)s' % name
+            new_fmt = where[0] % '%%s'
+            settings['procedure_fmt'] = settings['procedure_fmt'].replace(old_fmt, new_fmt)
+            settings['select_params'].extend(params)
+
+        # Getting the format for the stored procedure.
+        fmt = '%%(function)s(%s)' % settings['procedure_fmt']
+        
+        # If the result of this function needs to be converted.
+        if settings.get('select_field', False):
+            sel_fld = settings['select_field']
+            if isinstance(sel_fld, GeomField) and SpatialBackend.select:
+                self.query.custom_select[model_att] = SpatialBackend.select
+            self.query.extra_select_fields[model_att] = sel_fld
+
+        # Finally, setting the extra selection attribute with 
+        # the format string expanded with the stored procedure
+        # arguments.
+        return self.extra(select={model_att : fmt % settings['procedure_args']}, 
+                          select_params=settings['select_params'])
+
+    def _distance_attribute(self, func, geom=None, tolerance=0.05, spheroid=False, **kwargs):
+        """
+        DRY routine for GeoQuerySet distance attribute routines.
+        """
+        # Setting up the distance procedure arguments.
+        procedure_args, geo_field = self._spatial_setup(func, field_name=kwargs.get('field_name', None))
+
+        # If geodetic defaulting distance attribute to meters (Oracle and
+        # PostGIS spherical distances return meters).  Otherwise, use the
+        # units of the geometry field.
+        if geo_field.geodetic:
+            dist_att = 'm'
+        else:
+            dist_att = Distance.unit_attname(geo_field._unit_name)
+
+        # Shortcut booleans for what distance function we're using.
+        distance = func == 'distance'
+        length = func == 'length'
+        perimeter = func == 'perimeter'
+        if not (distance or length or perimeter): 
+            raise ValueError('Unknown distance function: %s' % func)
+
+        # The field's get_db_prep_lookup() is used to get any 
+        # extra distance parameters.  Here we set up the
+        # parameters that will be passed in to field's function.
+        lookup_params = [geom or 'POINT (0 0)', 0]
+
+        # If the spheroid calculation is desired, either by the `spheroid`
+        # keyword or wehn calculating the length of geodetic field, make
+        # sure the 'spheroid' distance setting string is passed in so we
+        # get the correct spatial stored procedure.            
+        if spheroid or (SpatialBackend.postgis and geo_field.geodetic and length): 
+            lookup_params.append('spheroid') 
+        where, params = geo_field.get_db_prep_lookup('distance_lte', lookup_params)
+
+        # The `geom_args` flag is set to true if a geometry parameter was 
+        # passed in.
+        geom_args = bool(geom)
+
+        if SpatialBackend.oracle:
+            if distance:
+                procedure_fmt = '%(geo_col)s,%(geom)s,%(tolerance)s'
+            elif length or perimeter:
+                procedure_fmt = '%(geo_col)s,%(tolerance)s'
+            procedure_args['tolerance'] = tolerance
+        else:
+            # Getting whether this field is in units of degrees since the field may have
+            # been transformed via the `transform` GeoQuerySet method.
+            if self.query.transformed_srid:
+                u, unit_name, s = get_srid_info(self.query.transformed_srid)
+                geodetic = unit_name in geo_field.geodetic_units
+            else:
+                geodetic = geo_field.geodetic
+            
+            if distance:
+                if self.query.transformed_srid:
+                    # Setting the `geom_args` flag to false because we want to handle
+                    # transformation SQL here, rather than the way done by default
+                    # (which will transform to the original SRID of the field rather
+                    #  than to what was transformed to).
+                    geom_args = False
+                    procedure_fmt = '%s(%%(geo_col)s, %s)' % (SpatialBackend.transform, self.query.transformed_srid)
+                    if geom.srid is None or geom.srid == self.query.transformed_srid:
+                        # If the geom parameter srid is None, it is assumed the coordinates 
+                        # are in the transformed units.  A placeholder is used for the
+                        # geometry parameter.
+                        procedure_fmt += ', %%s'
+                    else:
+                        # We need to transform the geom to the srid specified in `transform()`,
+                        # so wrapping the geometry placeholder in transformation SQL.
+                        procedure_fmt += ', %s(%%%%s, %s)' % (SpatialBackend.transform, self.query.transformed_srid)
+                else:
+                    # `transform()` was not used on this GeoQuerySet.
+                    procedure_fmt  = '%(geo_col)s,%(geom)s'
+
+                if geodetic:
+                    # Spherical distance calculation is needed (because the geographic
+                    # field is geodetic). However, the PostGIS ST_distance_sphere/spheroid() 
+                    # procedures may only do queries from point columns to point geometries
+                    # some error checking is required.
+                    if not isinstance(geo_field, PointField): 
+                        raise TypeError('Spherical distance calculation only supported on PointFields.')
+                    if not str(SpatialBackend.Geometry(buffer(params[0].wkb)).geom_type) == 'Point':
+                        raise TypeError('Spherical distance calculation only supported with Point Geometry parameters')
+                    # The `function` procedure argument needs to be set differently for
+                    # geodetic distance calculations.
+                    if spheroid:
+                        # Call to distance_spheroid() requires spheroid param as well.
+                        procedure_fmt += ',%(spheroid)s'
+                        procedure_args.update({'function' : SpatialBackend.distance_spheroid, 'spheroid' : where[1]})
+                    else:
+                        procedure_args.update({'function' : SpatialBackend.distance_sphere})
+            elif length or perimeter:
+                procedure_fmt = '%(geo_col)s'
+                if geodetic and length:
+                    # There's no `length_sphere`
+                    procedure_fmt += ',%(spheroid)s'
+                    procedure_args.update({'function' : SpatialBackend.length_spheroid, 'spheroid' : where[1]})
+
+        # Setting up the settings for `_spatial_attribute`.
+        s = {'select_field' : DistanceField(dist_att),
+             'setup' : False, 
+             'geo_field' : geo_field,
+             'procedure_args' : procedure_args,
+             'procedure_fmt' : procedure_fmt,
+             }
+        if geom_args: 
+            s['geom_args'] = ('geom',)
+            s['procedure_args']['geom'] = geom
+        elif geom:
+            # The geometry is passed in as a parameter because we handled
+            # transformation conditions in this routine.
+            s['select_params'] = [SpatialBackend.Adaptor(geom)]
+        return self._spatial_attribute(func, s, **kwargs)
+
+    def _geom_attribute(self, func, tolerance=0.05, **kwargs):
+        """
+        DRY routine for setting up a GeoQuerySet method that attaches a
+        Geometry attribute (e.g., `centroid`, `point_on_surface`).
+        """
+        s = {'select_field' : GeomField(),}
+        if SpatialBackend.oracle:
+            s['procedure_fmt'] = '%(geo_col)s,%(tolerance)s'
+            s['procedure_args'] = {'tolerance' : tolerance}
+        return self._spatial_attribute(func, s, **kwargs)
+                     
+    def _geomset_attribute(self, func, geom, tolerance=0.05, **kwargs):
+        """
+        DRY routine for setting up a GeoQuerySet method that attaches a
+        Geometry attribute and takes a Geoemtry parameter.  This is used
+        for geometry set-like operations (e.g., intersection, difference, 
+        union, sym_difference).
+        """
+        s = {'geom_args' : ('geom',),
+             'select_field' : GeomField(),
+             'procedure_fmt' : '%(geo_col)s,%(geom)s',
+             'procedure_args' : {'geom' : geom},
+            }
+        if SpatialBackend.oracle:
+            s['procedure_fmt'] += ',%(tolerance)s'
+            s['procedure_args']['tolerance'] = tolerance
+        return self._spatial_attribute(func, s, **kwargs)
+
+    def _geocol_select(self, geo_field, field_name, aggregate=False):
+        """
+        Helper routine for constructing the SQL to select the geographic
+        column.  Takes into account if the geographic field is in a
+        ForeignKey relation to the current model.
+        """
+        # If this is an aggregate spatial query, the flag needs to be
+        # set on the `GeoQuery` object of this queryset.
+        if aggregate: self.query.aggregate = True
+
+        # Is this operation going to be on a related geographic field?
+        if not geo_field in self.model._meta.fields:
+            # If so, it'll have to be added to the select related information
+            # (e.g., if 'location__point' was given as the field name).
+            self.query.add_select_related([field_name])
+            self.query.pre_sql_setup()
+            rel_table, rel_col = self.query.related_select_cols[self.query.related_select_fields.index(geo_field)]
+            return self.query._field_column(geo_field, rel_table)
+        else:
+            return self.query._field_column(geo_field)
diff --git a/webapp/django/contrib/gis/db/models/sql/__init__.py b/webapp/django/contrib/gis/db/models/sql/__init__.py
new file mode 100644
index 0000000..4a66b41
--- /dev/null
+++ b/webapp/django/contrib/gis/db/models/sql/__init__.py
@@ -0,0 +1,2 @@
+from django.contrib.gis.db.models.sql.query import AreaField, DistanceField, GeomField, GeoQuery
+from django.contrib.gis.db.models.sql.where import GeoWhereNode
diff --git a/webapp/django/contrib/gis/db/models/sql/query.py b/webapp/django/contrib/gis/db/models/sql/query.py
new file mode 100644
index 0000000..f3e9fb2
--- /dev/null
+++ b/webapp/django/contrib/gis/db/models/sql/query.py
@@ -0,0 +1,327 @@
+from itertools import izip
+from django.db.models.query import sql
+from django.db.models.fields import FieldDoesNotExist
+from django.db.models.fields.related import ForeignKey
+
+from django.contrib.gis.db.backend import SpatialBackend
+from django.contrib.gis.db.models.fields import GeometryField
+from django.contrib.gis.db.models.sql.where import GeoWhereNode
+from django.contrib.gis.measure import Area, Distance
+
+# Valid GIS query types.
+ALL_TERMS = sql.constants.QUERY_TERMS.copy()
+ALL_TERMS.update(SpatialBackend.gis_terms)
+
+class GeoQuery(sql.Query):
+    """
+    A single spatial SQL query.
+    """
+    # Overridding the valid query terms.
+    query_terms = ALL_TERMS
+
+    #### Methods overridden from the base Query class ####
+    def __init__(self, model, conn):
+        super(GeoQuery, self).__init__(model, conn, where=GeoWhereNode)
+        # The following attributes are customized for the GeoQuerySet.
+        # The GeoWhereNode and SpatialBackend classes contain backend-specific
+        # routines and functions.
+        self.aggregate = False
+        self.custom_select = {}
+        self.transformed_srid = None
+        self.extra_select_fields = {}
+
+    def clone(self, *args, **kwargs):
+        obj = super(GeoQuery, self).clone(*args, **kwargs)
+        # Customized selection dictionary and transformed srid flag have
+        # to also be added to obj.
+        obj.aggregate = self.aggregate
+        obj.custom_select = self.custom_select.copy()
+        obj.transformed_srid = self.transformed_srid
+        obj.extra_select_fields = self.extra_select_fields.copy()
+        return obj
+
+    def get_columns(self, with_aliases=False):
+        """
+        Return the list of columns to use in the select statement. If no
+        columns have been specified, returns all columns relating to fields in
+        the model.
+
+        If 'with_aliases' is true, any column names that are duplicated
+        (without the table names) are given unique aliases. This is needed in
+        some cases to avoid ambiguitity with nested queries.
+
+        This routine is overridden from Query to handle customized selection of 
+        geometry columns.
+        """
+        qn = self.quote_name_unless_alias
+        qn2 = self.connection.ops.quote_name
+        result = ['(%s) AS %s' % (self.get_extra_select_format(alias) % col[0], qn2(alias)) 
+                  for alias, col in self.extra_select.iteritems()]
+        aliases = set(self.extra_select.keys())
+        if with_aliases:
+            col_aliases = aliases.copy()
+        else:
+            col_aliases = set()
+        if self.select:
+            # This loop customized for GeoQuery.
+            for col, field in izip(self.select, self.select_fields):
+                if isinstance(col, (list, tuple)):
+                    r = self.get_field_select(field, col[0])
+                    if with_aliases and col[1] in col_aliases:
+                        c_alias = 'Col%d' % len(col_aliases)
+                        result.append('%s AS %s' % (r, c_alias))
+                        aliases.add(c_alias)
+                        col_aliases.add(c_alias)
+                    else:
+                        result.append(r)
+                        aliases.add(r)
+                        col_aliases.add(col[1])
+                else:
+                    result.append(col.as_sql(quote_func=qn))
+                    if hasattr(col, 'alias'):
+                        aliases.add(col.alias)
+                        col_aliases.add(col.alias)
+        elif self.default_cols:
+            cols, new_aliases = self.get_default_columns(with_aliases,
+                    col_aliases)
+            result.extend(cols)
+            aliases.update(new_aliases)
+        # This loop customized for GeoQuery.
+        if not self.aggregate:
+            for (table, col), field in izip(self.related_select_cols, self.related_select_fields):
+                r = self.get_field_select(field, table)
+                if with_aliases and col in col_aliases:
+                    c_alias = 'Col%d' % len(col_aliases)
+                    result.append('%s AS %s' % (r, c_alias))
+                    aliases.add(c_alias)
+                    col_aliases.add(c_alias)
+                else:
+                    result.append(r)
+                    aliases.add(r)
+                    col_aliases.add(col)
+
+        self._select_aliases = aliases
+        return result
+
+    def get_default_columns(self, with_aliases=False, col_aliases=None,
+                            start_alias=None, opts=None, as_pairs=False):
+        """
+        Computes the default columns for selecting every field in the base
+        model.
+
+        Returns a list of strings, quoted appropriately for use in SQL
+        directly, as well as a set of aliases used in the select statement.
+
+        This routine is overridden from Query to handle customized selection of 
+        geometry columns.
+        """
+        result = []
+        if opts is None:
+            opts = self.model._meta
+        if start_alias:
+            table_alias = start_alias
+        else:
+            table_alias = self.tables[0]
+        root_pk = self.model._meta.pk.column
+        seen = {None: table_alias}
+        aliases = set()
+        for field, model in opts.get_fields_with_model():
+            try:
+                alias = seen[model]
+            except KeyError:
+                alias = self.join((table_alias, model._meta.db_table,
+                        root_pk, model._meta.pk.column))
+                seen[model] = alias
+            if as_pairs:
+                result.append((alias, field.column))
+                continue
+            # This part of the function is customized for GeoQuery. We
+            # see if there was any custom selection specified in the
+            # dictionary, and set up the selection format appropriately.
+            field_sel = self.get_field_select(field, alias)
+            if with_aliases and field.column in col_aliases:
+                c_alias = 'Col%d' % len(col_aliases)
+                result.append('%s AS %s' % (field_sel, c_alias))
+                col_aliases.add(c_alias)
+                aliases.add(c_alias)
+            else:
+                r = field_sel
+                result.append(r)
+                aliases.add(r)
+                if with_aliases:
+                    col_aliases.add(field.column)
+        if as_pairs:
+            return result, None
+        return result, aliases
+
+    def get_ordering(self):
+        """
+        This routine is overridden to disable ordering for aggregate
+        spatial queries.
+        """
+        if not self.aggregate:
+            return super(GeoQuery, self).get_ordering()
+        else:
+            return ()
+
+    def resolve_columns(self, row, fields=()):
+        """
+        This routine is necessary so that distances and geometries returned
+        from extra selection SQL get resolved appropriately into Python 
+        objects.
+        """
+        values = []
+        aliases = self.extra_select.keys()
+        index_start = len(aliases)
+        values = [self.convert_values(v, self.extra_select_fields.get(a, None)) 
+                  for v, a in izip(row[:index_start], aliases)]
+        if SpatialBackend.oracle:
+            # This is what happens normally in Oracle's `resolve_columns`.
+            for value, field in izip(row[index_start:], fields):
+                values.append(self.convert_values(value, field))
+        else:
+            values.extend(row[index_start:])
+        return values
+
+    def convert_values(self, value, field):
+        """
+        Using the same routines that Oracle does we can convert our
+        extra selection objects into Geometry and Distance objects.
+        TODO: Laziness.
+        """
+        if SpatialBackend.oracle:
+            # Running through Oracle's first.
+            value = super(GeoQuery, self).convert_values(value, field)
+        if isinstance(field, DistanceField):
+            # Using the field's distance attribute, can instantiate
+            # `Distance` with the right context.
+            value = Distance(**{field.distance_att : value})
+        elif isinstance(field, AreaField):
+            value = Area(**{field.area_att : value})
+        elif isinstance(field, GeomField):
+            value = SpatialBackend.Geometry(value)
+        return value
+
+    #### Routines unique to GeoQuery ####
+    def get_extra_select_format(self, alias):
+        sel_fmt = '%s'
+        if alias in self.custom_select:
+            sel_fmt = sel_fmt % self.custom_select[alias]
+        return sel_fmt
+
+    def get_field_select(self, fld, alias=None):
+        """
+        Returns the SELECT SQL string for the given field.  Figures out
+        if any custom selection SQL is needed for the column  The `alias` 
+        keyword may be used to manually specify the database table where 
+        the column exists, if not in the model associated with this 
+        `GeoQuery`.
+        """
+        sel_fmt = self.get_select_format(fld)
+        if fld in self.custom_select:
+            field_sel = sel_fmt % self.custom_select[fld]
+        else:
+            field_sel = sel_fmt % self._field_column(fld, alias)
+        return field_sel
+
+    def get_select_format(self, fld):
+        """
+        Returns the selection format string, depending on the requirements
+        of the spatial backend.  For example, Oracle and MySQL require custom
+        selection formats in order to retrieve geometries in OGC WKT. For all
+        other fields a simple '%s' format string is returned.
+        """
+        if SpatialBackend.select and hasattr(fld, '_geom'):
+            # This allows operations to be done on fields in the SELECT,
+            # overriding their values -- used by the Oracle and MySQL
+            # spatial backends to get database values as WKT, and by the
+            # `transform` method.
+            sel_fmt = SpatialBackend.select
+
+            # Because WKT doesn't contain spatial reference information,
+            # the SRID is prefixed to the returned WKT to ensure that the
+            # transformed geometries have an SRID different than that of the
+            # field -- this is only used by `transform` for Oracle backends.
+            if self.transformed_srid and SpatialBackend.oracle:
+                sel_fmt = "'SRID=%d;'||%s" % (self.transformed_srid, sel_fmt)
+        else:
+            sel_fmt = '%s'
+        return sel_fmt
+
+    # Private API utilities, subject to change.
+    def _check_geo_field(self, model, name_param):
+        """
+        Recursive utility routine for checking the given name parameter
+        on the given model.  Initially, the name parameter is a string,
+        of the field on the given model e.g., 'point', 'the_geom'. 
+        Related model field strings like 'address__point', may also be 
+        used.
+
+        If a GeometryField exists according to the given name parameter 
+        it will be returned, otherwise returns False.
+        """
+        if isinstance(name_param, basestring):
+            # This takes into account the situation where the name is a 
+            # lookup to a related geographic field, e.g., 'address__point'.
+            name_param = name_param.split(sql.constants.LOOKUP_SEP)
+            name_param.reverse() # Reversing so list operates like a queue of related lookups.
+        elif not isinstance(name_param, list):
+            raise TypeError
+        try:
+            # Getting the name of the field for the model (by popping the first
+            # name from the `name_param` list created above).
+            fld, mod, direct, m2m = model._meta.get_field_by_name(name_param.pop())
+        except (FieldDoesNotExist, IndexError):
+            return False
+        # TODO: ManyToManyField?
+        if isinstance(fld, GeometryField): 
+            return fld # A-OK.
+        elif isinstance(fld, ForeignKey):
+            # ForeignKey encountered, return the output of this utility called
+            # on the _related_ model with the remaining name parameters.
+            return self._check_geo_field(fld.rel.to, name_param) # Recurse to check ForeignKey relation.
+        else:
+            return False
+
+    def _field_column(self, field, table_alias=None):
+        """
+        Helper function that returns the database column for the given field.
+        The table and column are returned (quoted) in the proper format, e.g.,
+        `"geoapp_city"."point"`.  If `table_alias` is not specified, the 
+        database table associated with the model of this `GeoQuery` will be
+        used.
+        """
+        if table_alias is None: table_alias = self.model._meta.db_table
+        return "%s.%s" % (self.quote_name_unless_alias(table_alias), 
+                          self.connection.ops.quote_name(field.column))
+
+    def _geo_field(self, field_name=None):
+        """
+        Returns the first Geometry field encountered; or specified via the
+        `field_name` keyword.  The `field_name` may be a string specifying
+        the geometry field on this GeoQuery's model, or a lookup string
+        to a geometry field via a ForeignKey relation.
+        """
+        if field_name is None:
+            # Incrementing until the first geographic field is found.
+            for fld in self.model._meta.fields:
+                if isinstance(fld, GeometryField): return fld
+            return False
+        else:
+            # Otherwise, check by the given field name -- which may be
+            # a lookup to a _related_ geographic field.
+            return self._check_geo_field(self.model, field_name)
+
+### Field Classes for `convert_values` ####
+class AreaField(object):
+    def __init__(self, area_att):
+        self.area_att = area_att
+
+class DistanceField(object):
+    def __init__(self, distance_att):
+        self.distance_att = distance_att
+
+# Rather than use GeometryField (which requires a SQL query
+# upon instantiation), use this lighter weight class.
+class GeomField(object): 
+    pass
diff --git a/webapp/django/contrib/gis/db/models/sql/where.py b/webapp/django/contrib/gis/db/models/sql/where.py
new file mode 100644
index 0000000..a1a28d9
--- /dev/null
+++ b/webapp/django/contrib/gis/db/models/sql/where.py
@@ -0,0 +1,64 @@
+import datetime
+from django.db.models.fields import Field
+from django.db.models.sql.where import WhereNode
+from django.contrib.gis.db.backend import get_geo_where_clause, SpatialBackend
+
+class GeoAnnotation(object):
+    """
+    The annotation used for GeometryFields; basically a placeholder
+    for metadata needed by the `get_geo_where_clause` of the spatial
+    backend.
+    """
+    def __init__(self, field, value, where):
+        self.geodetic = field.geodetic
+        self.geom_type = field._geom
+        self.value = value
+        self.where = tuple(where)
+
+class GeoWhereNode(WhereNode):
+    """
+    Used to represent the SQL where-clause for spatial databases --
+    these are tied to the GeoQuery class that created it.
+    """
+    def add(self, data, connector):
+        """
+        This is overridden from the regular WhereNode to handle the 
+        peculiarties of GeometryFields, because they need a special 
+        annotation object that contains the spatial metadata from the 
+        field to generate the spatial SQL.
+        """
+        if not isinstance(data, (list, tuple)):
+            return super(WhereNode, self).add(data, connector)
+        alias, col, field, lookup_type, value = data     
+        if not hasattr(field, "_geom"):
+            # Not a geographic field, so call `WhereNode.add`.
+            return super(GeoWhereNode, self).add(data, connector)
+        else:
+            # `GeometryField.get_db_prep_lookup` returns a where clause
+            # substitution array in addition to the parameters.
+            where, params = field.get_db_prep_lookup(lookup_type, value)
+
+            # The annotation will be a `GeoAnnotation` object that
+            # will contain the necessary geometry field metadata for
+            # the `get_geo_where_clause` to construct the appropriate
+            # spatial SQL when `make_atom` is called.
+            annotation = GeoAnnotation(field, value, where)
+            return super(WhereNode, self).add((alias, col, field.db_type(), lookup_type,
+                                               annotation, params), connector)
+
+    def make_atom(self, child, qn):
+        table_alias, name, db_type, lookup_type, value_annot, params = child
+ 
+        if isinstance(value_annot, GeoAnnotation):
+            if lookup_type in SpatialBackend.gis_terms:
+                # Getting the geographic where clause; substitution parameters
+                # will be populated in the GeoFieldSQL object returned by the
+                # GeometryField.
+                gwc = get_geo_where_clause(table_alias, name, lookup_type, value_annot)
+                return gwc % value_annot.where, params
+            else:
+                raise TypeError('Invalid lookup type: %r' % lookup_type)
+        else:
+            # If not a GeometryField, call the `make_atom` from the 
+            # base class.
+            return super(GeoWhereNode, self).make_atom(child, qn)
diff --git a/webapp/django/contrib/gis/feeds.py b/webapp/django/contrib/gis/feeds.py
new file mode 100644
index 0000000..4105ef7
--- /dev/null
+++ b/webapp/django/contrib/gis/feeds.py
@@ -0,0 +1,135 @@
+from django.contrib.syndication.feeds import Feed as BaseFeed, FeedDoesNotExist
+from django.utils.feedgenerator import Atom1Feed, Rss201rev2Feed
+
+class GeoFeedMixin(object):
+    """
+    This mixin provides the necessary routines for SyndicationFeed subclasses
+    to produce simple GeoRSS or W3C Geo elements.
+    """
+
+    def georss_coords(self, coords):
+        """
+        In GeoRSS coordinate pairs are ordered by lat/lon and separated by
+        a single white space.  Given a tuple of coordinates, this will return
+        a unicode GeoRSS representation.
+        """
+        return u' '.join([u'%f %f' % (coord[1], coord[0]) for coord in coords])
+
+    def add_georss_point(self, handler, coords, w3c_geo=False):
+        """
+        Adds a GeoRSS point with the given coords using the given handler.
+        Handles the differences between simple GeoRSS and the more pouplar
+        W3C Geo specification.
+        """
+        if w3c_geo:
+            lon, lat = coords[:2]
+            handler.addQuickElement(u'geo:lat', u'%f' % lat)
+            handler.addQuickElement(u'geo:lon', u'%f' % lon)
+        else:
+            handler.addQuickElement(u'georss:point', self.georss_coords((coords,)))
+
+    def add_georss_element(self, handler, item, w3c_geo=False):
+        """
+        This routine adds a GeoRSS XML element using the given item and handler.
+        """
+        # Getting the Geometry object.
+        geom = item.get('geometry', None)
+        if not geom is None:
+            if isinstance(geom, (list, tuple)):
+                # Special case if a tuple/list was passed in.  The tuple may be
+                # a point or a box
+                box_coords = None
+                if isinstance(geom[0], (list, tuple)):
+                    # Box: ( (X0, Y0), (X1, Y1) )
+                    if len(geom) == 2:
+                        box_coords = geom
+                    else:
+                        raise ValueError('Only should be two sets of coordinates.')
+                else:
+                    if len(geom) == 2:
+                        # Point: (X, Y)
+                        self.add_georss_point(handler, geom, w3c_geo=w3c_geo)
+                    elif len(geom) == 4:
+                        # Box: (X0, Y0, X1, Y1)
+                        box_coords = (geom[:2], geom[2:])
+                    else:
+                        raise ValueError('Only should be 2 or 4 numeric elements.')
+                # If a GeoRSS box was given via tuple.
+                if not box_coords is None:
+                    if w3c_geo: raise ValueError('Cannot use simple GeoRSS box in W3C Geo feeds.')
+                    handler.addQuickElement(u'georss:box', self.georss_coords(box_coords))
+            else:
+                # Getting the lower-case geometry type.
+                gtype = str(geom.geom_type).lower()
+                if gtype == 'point':
+                    self.add_georss_point(handler, geom.coords, w3c_geo=w3c_geo) 
+                else:
+                    if w3c_geo: raise ValueError('W3C Geo only supports Point geometries.')
+                    # For formatting consistent w/the GeoRSS simple standard:
+                    # http://georss.org/1.0#simple
+                    if gtype in ('linestring', 'linearring'):
+                        handler.addQuickElement(u'georss:line', self.georss_coords(geom.coords))
+                    elif gtype in ('polygon',):
+                        # Only support the exterior ring.
+                        handler.addQuickElement(u'georss:polygon', self.georss_coords(geom[0].coords))
+                    else:
+                        raise ValueError('Geometry type "%s" not supported.' % geom.geom_type)
+
+### SyndicationFeed subclasses ###
+class GeoRSSFeed(Rss201rev2Feed, GeoFeedMixin):
+    def rss_attributes(self):
+        attrs = super(GeoRSSFeed, self).rss_attributes()
+        attrs[u'xmlns:georss'] = u'http://www.georss.org/georss'
+        return attrs
+
+    def add_item_elements(self, handler, item):
+        super(GeoRSSFeed, self).add_item_elements(handler, item)
+        self.add_georss_element(handler, item)
+
+    def add_root_elements(self, handler):
+        super(GeoRSSFeed, self).add_root_elements(handler)
+        self.add_georss_element(handler, self.feed)
+
+class GeoAtom1Feed(Atom1Feed, GeoFeedMixin):
+    def root_attributes(self):
+        attrs = super(GeoAtom1Feed, self).root_attributes()
+        attrs[u'xmlns:georss'] = u'http://www.georss.org/georss'
+        return attrs
+
+    def add_item_elements(self, handler, item):
+        super(GeoAtom1Feed, self).add_item_elements(handler, item)
+        self.add_georss_element(handler, item)
+
+    def add_root_elements(self, handler):
+        super(GeoAtom1Feed, self).add_root_elements(handler)
+        self.add_georss_element(handler, self.feed)
+
+class W3CGeoFeed(Rss201rev2Feed, GeoFeedMixin):
+    def rss_attributes(self):
+        attrs = super(W3CGeoFeed, self).rss_attributes()
+        attrs[u'xmlns:geo'] = u'http://www.w3.org/2003/01/geo/wgs84_pos#'
+        return attrs
+
+    def add_item_elements(self, handler, item):
+        super(W3CGeoFeed, self).add_item_elements(handler, item)
+        self.add_georss_element(handler, item, w3c_geo=True)
+
+    def add_root_elements(self, handler):
+        super(W3CGeoFeed, self).add_root_elements(handler)
+        self.add_georss_element(handler, self.feed, w3c_geo=True)
+
+### Feed subclass ###
+class Feed(BaseFeed):
+    """
+    This is a subclass of the `Feed` from `django.contrib.syndication`.
+    This allows users to define a `geometry(obj)` and/or `item_geometry(item)`
+    methods on their own subclasses so that geo-referenced information may
+    placed in the feed.
+    """
+    feed_type = GeoRSSFeed
+
+    def feed_extra_kwargs(self, obj):
+        return {'geometry' : self.__get_dynamic_attr('geometry', obj)}
+
+    def item_extra_kwargs(self, item):
+        return {'geometry' : self.__get_dynamic_attr('item_geometry', item)}
diff --git a/webapp/django/contrib/gis/forms/__init__.py b/webapp/django/contrib/gis/forms/__init__.py
new file mode 100644
index 0000000..5441e60
--- /dev/null
+++ b/webapp/django/contrib/gis/forms/__init__.py
@@ -0,0 +1 @@
+from django.contrib.gis.forms.fields import GeometryField
diff --git a/webapp/django/contrib/gis/forms/fields.py b/webapp/django/contrib/gis/forms/fields.py
new file mode 100644
index 0000000..a65e76d
--- /dev/null
+++ b/webapp/django/contrib/gis/forms/fields.py
@@ -0,0 +1,37 @@
+from django import forms
+from django.contrib.gis.geos import GEOSGeometry, GEOSException
+from django.utils.translation import ugettext_lazy as _
+
+class GeometryField(forms.Field):
+    # By default a Textarea widget is used.
+    widget = forms.Textarea
+
+    default_error_messages = {
+        'no_geom' : _(u'No geometry value provided.'),
+        'invalid_geom' : _(u'Invalid Geometry value.'),
+        'invalid_geom_type' : _(u'Invalid Geometry type.'),
+    }
+    def __init__(self, **kwargs):
+        self.null = kwargs.pop('null')
+        self.geom_type = kwargs.pop('geom_type')
+        super(GeometryField, self).__init__(**kwargs)
+
+    def clean(self, value):
+        """
+        Validates that the input value can be converted to a Geometry
+        object (which is returned).  A ValidationError is raised if
+        the value cannot be instantiated as a Geometry.
+        """
+        if not value:
+            if self.null:
+                # The geometry column allows NULL, return None.
+                return None
+            else:
+                raise forms.ValidationError(self.error_messages['no_geom'])
+        try:
+            geom = GEOSGeometry(value)
+            if geom.geom_type.upper() != self.geom_type:
+                raise forms.ValidationError(self.error_messages['invalid_geom_type'])
+            return geom
+        except GEOSException:
+            raise forms.ValidationError(self.error_messages['invalid_geom'])
diff --git a/webapp/django/contrib/gis/gdal/LICENSE b/webapp/django/contrib/gis/gdal/LICENSE
new file mode 100644
index 0000000..4bd0bed
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/LICENSE
@@ -0,0 +1,28 @@
+Copyright (c) 2007, Justin Bronn
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    1. Redistributions of source code must retain the above copyright notice,
+       this list of conditions and the following disclaimer.
+
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+
+    3. Neither the name of OGRGeometry nor the names of its contributors may be used
+       to endorse or promote products derived from this software without
+       specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/webapp/django/contrib/gis/gdal/__init__.py b/webapp/django/contrib/gis/gdal/__init__.py
new file mode 100644
index 0000000..b318850
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/__init__.py
@@ -0,0 +1,59 @@
+"""
+ This module houses ctypes interfaces for GDAL objects.  The following GDAL
+ objects are supported:
+
+ CoordTransform: Used for coordinate transformations from one spatial
+  reference system to another.
+
+ Driver: Wraps an OGR data source driver.
+  
+ DataSource: Wrapper for the OGR data source object, supports
+  OGR-supported data sources.
+
+ Envelope: A ctypes structure for bounding boxes (GDAL library
+  not required).
+
+ OGRGeometry: Layer for accessing OGR Geometry objects.
+
+ OGRGeomType: A class for representing the different OGR Geometry
+  types (GDAL library not required).
+
+ SpatialReference: Represents OSR Spatial Reference objects.
+
+ The GDAL library will be imported from the system path using the default  
+ library name for the current OS. The default library path may be overridden
+ by setting `GDAL_LIBRARY_PATH` in your settings with the path to the GDAL C 
+ library on your system.  
+
+ GDAL links to a large number of external libraries that consume RAM when 
+ loaded.  Thus, it may desirable to disable GDAL on systems with limited
+ RAM resources -- this may be accomplished by setting `GDAL_LIBRARY_PATH`
+ to a non-existant file location (e.g., `GDAL_LIBRARY_PATH='/null/path'`; 
+ setting to None/False/'' will not work as a string must be given).
+"""
+import sys
+
+# Attempting to import objects that depend on the GDAL library.  The
+# HAS_GDAL flag will be set to True if the library is present on
+# the system.
+try:
+    from django.contrib.gis.gdal.driver import Driver
+    from django.contrib.gis.gdal.datasource import DataSource
+    from django.contrib.gis.gdal.libgdal import gdal_version, gdal_full_version, gdal_release_date
+    from django.contrib.gis.gdal.srs import SpatialReference, CoordTransform
+    from django.contrib.gis.gdal.geometries import OGRGeometry, GEOJSON
+    HAS_GDAL = True
+except:
+    HAS_GDAL, GEOJSON = False, False
+
+# The envelope, error, and geomtype modules do not actually require the
+# GDAL library, but still nead at least Python 2.4 and ctypes.
+PYTHON23 = sys.version_info[0] == 2 and sys.version_info[1] == 3
+if not PYTHON23:
+    try:
+        from django.contrib.gis.gdal.envelope import Envelope
+        from django.contrib.gis.gdal.error import check_err, OGRException, OGRIndexError, SRSException
+        from django.contrib.gis.gdal.geomtype import OGRGeomType
+    except ImportError:
+        # No ctypes, but don't raise an exception.
+        pass
diff --git a/webapp/django/contrib/gis/gdal/datasource.py b/webapp/django/contrib/gis/gdal/datasource.py
new file mode 100644
index 0000000..02363a0
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/datasource.py
@@ -0,0 +1,138 @@
+"""
+ DataSource is a wrapper for the OGR Data Source object, which provides
+ an interface for reading vector geometry data from many different file
+ formats (including ESRI shapefiles).
+
+ When instantiating a DataSource object, use the filename of a
+ GDAL-supported data source.  For example, a SHP file or a
+ TIGER/Line file from the government.
+
+ The ds_driver keyword is used internally when a ctypes pointer
+ is passed in directly.
+
+ Example:
+  ds = DataSource('/home/foo/bar.shp')
+  for layer in ds:
+      for feature in layer:
+          # Getting the geometry for the feature.
+          g = feature.geom
+
+          # Getting the 'description' field for the feature.
+          desc = feature['description']
+
+          # We can also increment through all of the fields
+          #  attached to this feature.
+          for field in feature:
+              # Get the name of the field (e.g. 'description')
+              nm = field.name
+
+              # Get the type (integer) of the field, e.g. 0 => OFTInteger
+              t = field.type
+
+              # Returns the value the field; OFTIntegers return ints,
+              #  OFTReal returns floats, all else returns string.
+              val = field.value
+"""
+# ctypes prerequisites.
+from ctypes import byref, c_void_p
+
+# The GDAL C library, OGR exceptions, and the Layer object.
+from django.contrib.gis.gdal.driver import Driver
+from django.contrib.gis.gdal.error import OGRException, OGRIndexError
+from django.contrib.gis.gdal.layer import Layer
+
+# Getting the ctypes prototypes for the DataSource.
+from django.contrib.gis.gdal.prototypes.ds import \
+    destroy_ds, get_driver_count, register_all, open_ds, release_ds, \
+    get_ds_name, get_layer, get_layer_count, get_layer_by_name
+
+# For more information, see the OGR C API source code:
+#  http://www.gdal.org/ogr/ogr__api_8h.html
+#
+# The OGR_DS_* routines are relevant here.
+class DataSource(object):
+    "Wraps an OGR Data Source object."
+
+    #### Python 'magic' routines ####
+    def __init__(self, ds_input, ds_driver=False, write=False):
+
+        # DataSource pointer is initially NULL.
+        self._ptr = None
+
+        # The write flag.
+        if write:
+            self._write = 1
+        else:
+            self._write = 0
+
+        # Registering all the drivers, this needs to be done
+        #  _before_ we try to open up a data source.
+        if not get_driver_count(): register_all()
+
+        if isinstance(ds_input, basestring):
+            # The data source driver is a void pointer.
+            ds_driver = c_void_p()
+            try:
+                # OGROpen will auto-detect the data source type.
+                ds = open_ds(ds_input, self._write, byref(ds_driver))
+            except OGRException:
+                # Making the error message more clear rather than something
+                # like "Invalid pointer returned from OGROpen".
+                raise OGRException('Could not open the datasource at "%s"' % ds_input)
+        elif isinstance(ds_input, c_void_p) and isinstance(ds_driver, c_void_p):
+            ds = ds_input
+        else:
+            raise OGRException('Invalid data source input type: %s' % type(ds_input))
+
+        if bool(ds):
+            self._ptr = ds
+            self._driver = Driver(ds_driver)
+        else:
+            # Raise an exception if the returned pointer is NULL 
+            raise OGRException('Invalid data source file "%s"' % ds_input)
+
+    def __del__(self):
+        "Destroys this DataStructure object."
+        if self._ptr: destroy_ds(self._ptr)
+
+    def __iter__(self):
+        "Allows for iteration over the layers in a data source."
+        for i in xrange(self.layer_count):
+            yield self[i]
+
+    def __getitem__(self, index):
+        "Allows use of the index [] operator to get a layer at the index."
+        if isinstance(index, basestring):
+            l = get_layer_by_name(self._ptr, index)
+            if not l: raise OGRIndexError('invalid OGR Layer name given: "%s"' % index)
+        elif isinstance(index, int):
+            if index < 0 or index >= self.layer_count:
+                raise OGRIndexError('index out of range')
+            l = get_layer(self._ptr, index)
+        else:
+            raise TypeError('Invalid index type: %s' % type(index))
+        return Layer(l)
+        
+    def __len__(self):
+        "Returns the number of layers within the data source."
+        return self.layer_count
+
+    def __str__(self):
+        "Returns OGR GetName and Driver for the Data Source."
+        return '%s (%s)' % (self.name, str(self.driver))
+
+    #### DataSource Properties ####
+    @property
+    def driver(self):
+        "Returns the Driver object for this Data Source."
+        return self._driver
+        
+    @property
+    def layer_count(self):
+        "Returns the number of layers in the data source."
+        return get_layer_count(self._ptr)
+
+    @property
+    def name(self):
+        "Returns the name of the data source."
+        return get_ds_name(self._ptr)
diff --git a/webapp/django/contrib/gis/gdal/driver.py b/webapp/django/contrib/gis/gdal/driver.py
new file mode 100644
index 0000000..2d5b3df
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/driver.py
@@ -0,0 +1,66 @@
+# prerequisites imports 
+from ctypes import c_void_p
+from django.contrib.gis.gdal.error import OGRException
+from django.contrib.gis.gdal.prototypes.ds import \
+    get_driver, get_driver_by_name, get_driver_count, get_driver_name, register_all
+
+# For more information, see the OGR C API source code:
+#  http://www.gdal.org/ogr/ogr__api_8h.html
+#
+# The OGR_Dr_* routines are relevant here.
+class Driver(object):
+    "Wraps an OGR Data Source Driver."
+
+    # Case-insensitive aliases for OGR Drivers.
+    _alias = {'esri' : 'ESRI Shapefile',
+              'shp' : 'ESRI Shapefile',
+              'shape' : 'ESRI Shapefile',
+              'tiger' : 'TIGER',
+              'tiger/line' : 'TIGER',
+              }
+                
+    def __init__(self, dr_input):
+        "Initializes an OGR driver on either a string or integer input."
+
+        if isinstance(dr_input, basestring):
+            # If a string name of the driver was passed in
+            self._ptr = None # Initially NULL
+            self._register()
+
+            # Checking the alias dictionary (case-insensitive) to see if an alias
+            #  exists for the given driver.
+            if dr_input.lower() in self._alias:
+                name = self._alias[dr_input.lower()]
+            else:
+                name = dr_input
+
+            # Attempting to get the OGR driver by the string name.
+            dr = get_driver_by_name(name)
+        elif isinstance(dr_input, int):
+            self._register()
+            dr = get_driver(dr_input)
+        elif isinstance(dr_input, c_void_p):
+            dr = dr_input
+        else:
+            raise OGRException('Unrecognized input type for OGR Driver: %s' % str(type(dr_input)))
+
+        # Making sure we get a valid pointer to the OGR Driver
+        if not dr:
+            raise OGRException('Could not initialize OGR Driver on input: %s' % str(dr_input))
+        self._ptr = dr
+
+    def __str__(self):
+        "Returns the string name of the OGR Driver."
+        return get_driver_name(self._ptr)
+
+    def _register(self):
+        "Attempts to register all the data source drivers."
+        # Only register all if the driver count is 0 (or else all drivers
+        # will be registered over and over again)
+        if not self.driver_count: register_all()
+                    
+    # Driver properties
+    @property
+    def driver_count(self):
+        "Returns the number of OGR data source drivers registered."
+        return get_driver_count()
diff --git a/webapp/django/contrib/gis/gdal/envelope.py b/webapp/django/contrib/gis/gdal/envelope.py
new file mode 100644
index 0000000..971f06d
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/envelope.py
@@ -0,0 +1,134 @@
+"""
+ The GDAL/OGR library uses an Envelope structure to hold the bounding
+ box information for a geometry.  The envelope (bounding box) contains
+ two pairs of coordinates, one for the lower left coordinate and one
+ for the upper right coordinate:
+
+                           +----------o Upper right; (max_x, max_y)
+                           |          |
+                           |          |
+                           |          |
+ Lower left (min_x, min_y) o----------+
+"""
+from ctypes import Structure, c_double
+from types import TupleType, ListType
+from django.contrib.gis.gdal.error import OGRException
+
+# The OGR definition of an Envelope is a C structure containing four doubles.
+#  See the 'ogr_core.h' source file for more information:
+#   http://www.gdal.org/ogr/ogr__core_8h-source.html
+class OGREnvelope(Structure):
+    "Represents the OGREnvelope C Structure."
+    _fields_ = [("MinX", c_double),
+                ("MaxX", c_double),
+                ("MinY", c_double),
+                ("MaxY", c_double),
+                ]
+
+class Envelope(object):
+    """
+    The Envelope object is a C structure that contains the minimum and
+    maximum X, Y coordinates for a rectangle bounding box.  The naming
+    of the variables is compatible with the OGR Envelope structure.
+    """
+
+    def __init__(self, *args):
+        """
+        The initialization function may take an OGREnvelope structure, 4-element
+        tuple or list, or 4 individual arguments.
+        """
+        
+        if len(args) == 1:
+            if isinstance(args[0], OGREnvelope):
+                # OGREnvelope (a ctypes Structure) was passed in.
+                self._envelope = args[0]
+            elif isinstance(args[0], (TupleType, ListType)):
+                # A tuple was passed in.
+                if len(args[0]) != 4:
+                    raise OGRException('Incorrect number of tuple elements (%d).' % len(args[0]))
+                else:
+                    self._from_sequence(args[0])
+            else:
+                raise TypeError('Incorrect type of argument: %s' % str(type(args[0])))
+        elif len(args) == 4:
+            # Individiual parameters passed in.
+            #  Thanks to ww for the help
+            self._from_sequence(map(float, args))
+        else:
+            raise OGRException('Incorrect number (%d) of arguments.' % len(args))
+
+        # Checking the x,y coordinates
+        if self.min_x >= self.max_x:
+            raise OGRException('Envelope minimum X >= maximum X.')
+        if self.min_y >= self.max_y:
+            raise OGRException('Envelope minimum Y >= maximum Y.')
+
+    def __eq__(self, other):
+        """
+        Returns True if the envelopes are equivalent; can compare against
+        other Envelopes and 4-tuples.
+        """
+        if isinstance(other, Envelope):
+            return (self.min_x == other.min_x) and (self.min_y == other.min_y) and \
+                   (self.max_x == other.max_x) and (self.max_y == other.max_y)
+        elif isinstance(other, TupleType) and len(other) == 4:
+            return (self.min_x == other[0]) and (self.min_y == other[1]) and \
+                   (self.max_x == other[2]) and (self.max_y == other[3])
+        else:
+            raise OGRException('Equivalence testing only works with other Envelopes.')
+
+    def __str__(self):
+        "Returns a string representation of the tuple."
+        return str(self.tuple)
+
+    def _from_sequence(self, seq):
+        "Initializes the C OGR Envelope structure from the given sequence."
+        self._envelope = OGREnvelope()
+        self._envelope.MinX = seq[0]
+        self._envelope.MinY = seq[1]
+        self._envelope.MaxX = seq[2]
+        self._envelope.MaxY = seq[3]
+    
+    @property
+    def min_x(self):
+        "Returns the value of the minimum X coordinate."
+        return self._envelope.MinX
+
+    @property
+    def min_y(self):
+        "Returns the value of the minimum Y coordinate."
+        return self._envelope.MinY
+
+    @property
+    def max_x(self):
+        "Returns the value of the maximum X coordinate."
+        return self._envelope.MaxX
+
+    @property
+    def max_y(self):
+        "Returns the value of the maximum Y coordinate."
+        return self._envelope.MaxY
+
+    @property
+    def ur(self):
+        "Returns the upper-right coordinate."
+        return (self.max_x, self.max_y)
+
+    @property
+    def ll(self):
+        "Returns the lower-left coordinate."
+        return (self.min_x, self.min_y)
+
+    @property
+    def tuple(self):
+        "Returns a tuple representing the envelope."
+        return (self.min_x, self.min_y, self.max_x, self.max_y)
+
+    @property
+    def wkt(self):
+        "Returns WKT representing a Polygon for this envelope."
+        # TODO: Fix significant figures.
+        return 'POLYGON((%s %s,%s %s,%s %s,%s %s,%s %s))' % \
+               (self.min_x, self.min_y, self.min_x, self.max_y,
+                self.max_x, self.max_y, self.max_x, self.min_y,
+                self.min_x, self.min_y)
diff --git a/webapp/django/contrib/gis/gdal/error.py b/webapp/django/contrib/gis/gdal/error.py
new file mode 100644
index 0000000..4ec3f7e
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/error.py
@@ -0,0 +1,41 @@
+"""
+ This module houses the OGR & SRS Exception objects, and the
+ check_err() routine which checks the status code returned by
+ OGR methods.
+"""
+#### OGR & SRS Exceptions ####
+class OGRException(Exception): pass
+class SRSException(Exception): pass
+class OGRIndexError(OGRException, KeyError):
+    """
+    This exception is raised when an invalid index is encountered, and has
+    the 'silent_variable_feature' attribute set to true.  This ensures that
+    django's templates proceed to use the next lookup type gracefully when
+    an Exception is raised.  Fixes ticket #4740.
+    """
+    silent_variable_failure = True
+
+#### OGR error checking codes and routine ####
+
+# OGR Error Codes
+OGRERR_DICT = { 1 : (OGRException, 'Not enough data.'),
+                2 : (OGRException, 'Not enough memory.'),
+                3 : (OGRException, 'Unsupported geometry type.'),
+                4 : (OGRException, 'Unsupported operation.'),
+                5 : (OGRException, 'Corrupt data.'),
+                6 : (OGRException, 'OGR failure.'),
+                7 : (SRSException, 'Unsupported SRS.'),
+                8 : (OGRException, 'Invalid handle.'),
+                }
+OGRERR_NONE = 0
+
+def check_err(code):
+    "Checks the given OGRERR, and raises an exception where appropriate."
+    
+    if code == OGRERR_NONE:
+        return
+    elif code in OGRERR_DICT:
+        e, msg = OGRERR_DICT[code]
+        raise e, msg
+    else:
+        raise OGRException('Unknown error code: "%s"' % code)
diff --git a/webapp/django/contrib/gis/gdal/feature.py b/webapp/django/contrib/gis/gdal/feature.py
new file mode 100644
index 0000000..bc3857f
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/feature.py
@@ -0,0 +1,115 @@
+# The GDAL C library, OGR exception, and the Field object
+from django.contrib.gis.gdal.error import OGRException, OGRIndexError
+from django.contrib.gis.gdal.field import Field
+from django.contrib.gis.gdal.geometries import OGRGeometry, OGRGeomType
+from django.contrib.gis.gdal.srs import SpatialReference
+
+# ctypes function prototypes
+from django.contrib.gis.gdal.prototypes.ds import \
+    destroy_feature, feature_equal, get_fd_geom_type, get_feat_geom_ref, \
+    get_feat_name, get_feat_field_count, get_fid, get_field_defn, \
+    get_field_index, get_field_name
+from django.contrib.gis.gdal.prototypes.geom import clone_geom, get_geom_srs
+from django.contrib.gis.gdal.prototypes.srs import clone_srs
+
+# For more information, see the OGR C API source code:
+#  http://www.gdal.org/ogr/ogr__api_8h.html
+#
+# The OGR_F_* routines are relevant here.
+class Feature(object):
+    "A class that wraps an OGR Feature, needs to be instantiated from a Layer object."
+
+    #### Python 'magic' routines ####
+    def __init__(self, feat, fdefn):
+        "Initializes on the pointers for the feature and the layer definition."
+        self._ptr = None # Initially NULL
+        if not feat or not fdefn:
+            raise OGRException('Cannot create OGR Feature, invalid pointer given.')
+        self._ptr = feat
+        self._fdefn = fdefn
+
+    def __del__(self):
+        "Releases a reference to this object."
+        if self._ptr: destroy_feature(self._ptr)
+
+    def __getitem__(self, index):
+        """
+        Gets the Field object at the specified index, which may be either
+        an integer or the Field's string label.  Note that the Field object
+        is not the field's _value_ -- use the `get` method instead to 
+        retrieve the value (e.g. an integer) instead of a Field instance.
+        """
+        if isinstance(index, basestring):
+            i = self.index(index)
+        else:
+            if index < 0 or index > self.num_fields:
+                raise OGRIndexError('index out of range')
+            i = index
+        return Field(self._ptr, i)
+    
+    def __iter__(self):
+        "Iterates over each field in the Feature."
+        for i in xrange(self.num_fields):
+            yield self[i]
+
+    def __len__(self):
+        "Returns the count of fields in this feature."
+        return self.num_fields
+        
+    def __str__(self):
+        "The string name of the feature."
+        return 'Feature FID %d in Layer<%s>' % (self.fid, self.layer_name)
+
+    def __eq__(self, other):
+        "Does equivalence testing on the features."
+        return bool(feature_equal(self._ptr, other._ptr))
+
+    #### Feature Properties ####
+    @property
+    def fid(self):
+        "Returns the feature identifier."
+        return get_fid(self._ptr)
+        
+    @property
+    def layer_name(self):
+        "Returns the name of the layer for the feature."
+        return get_feat_name(self._fdefn)
+
+    @property
+    def num_fields(self):
+        "Returns the number of fields in the Feature."
+        return get_feat_field_count(self._ptr)
+
+    @property
+    def fields(self):
+        "Returns a list of fields in the Feature."
+        return [get_field_name(get_field_defn(self._fdefn, i)) 
+                for i in xrange(self.num_fields)]
+
+    @property
+    def geom(self):
+        "Returns the OGR Geometry for this Feature."
+        # Retrieving the geometry pointer for the feature.
+        geom_ptr = get_feat_geom_ref(self._ptr)
+        return OGRGeometry(clone_geom(geom_ptr))
+
+    @property
+    def geom_type(self):
+        "Returns the OGR Geometry Type for this Feture."
+        return OGRGeomType(get_fd_geom_type(self._fdefn))
+    
+    #### Feature Methods ####
+    def get(self, field):
+        """
+        Returns the value of the field, instead of an instance of the Field
+        object.  May take a string of the field name or a Field object as
+        parameters.
+        """
+        field_name = getattr(field, 'name', field)
+        return self[field_name].value
+
+    def index(self, field_name):
+        "Returns the index of the given field name."
+        i = get_field_index(self._ptr, field_name)
+        if i < 0: raise OGRIndexError('invalid OFT field name given: "%s"' % field_name)
+        return i
diff --git a/webapp/django/contrib/gis/gdal/field.py b/webapp/django/contrib/gis/gdal/field.py
new file mode 100644
index 0000000..ad1feb3
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/field.py
@@ -0,0 +1,179 @@
+from ctypes import byref, c_int
+from datetime import date, datetime, time
+from django.contrib.gis.gdal.error import OGRException
+from django.contrib.gis.gdal.prototypes.ds import \
+    get_feat_field_defn, get_field_as_datetime, get_field_as_double, \
+    get_field_as_integer, get_field_as_string, get_field_name, get_field_precision, \
+    get_field_type, get_field_type_name, get_field_width
+
+# For more information, see the OGR C API source code:
+#  http://www.gdal.org/ogr/ogr__api_8h.html
+#
+# The OGR_Fld_* routines are relevant here.
+class Field(object):
+    "A class that wraps an OGR Field, needs to be instantiated from a Feature object."
+
+    #### Python 'magic' routines ####
+    def __init__(self, feat, index):
+        """
+        Initializes on the feature pointer and the integer index of
+        the field within the feature.
+        """
+        # Setting the feature pointer and index.
+        self._feat = feat
+        self._index = index
+        
+        # Getting the pointer for this field.
+        fld = get_feat_field_defn(feat, index)
+        if not fld:
+            raise OGRException('Cannot create OGR Field, invalid pointer given.')
+        self._ptr = fld
+
+        # Setting the class depending upon the OGR Field Type (OFT)
+        self.__class__ = FIELD_CLASSES[self.type]
+
+        # OFTReal with no precision should be an OFTInteger.
+        if isinstance(self, OFTReal) and self.precision == 0:
+            self.__class__ = OFTInteger
+
+    def __str__(self):
+        "Returns the string representation of the Field."
+        return str(self.value).strip()
+
+    #### Field Methods ####
+    def as_double(self):
+        "Retrieves the Field's value as a double (float)."
+        return get_field_as_double(self._feat, self._index)
+
+    def as_int(self):
+        "Retrieves the Field's value as an integer."
+        return get_field_as_integer(self._feat, self._index)
+
+    def as_string(self):
+        "Retrieves the Field's value as a string."
+        return get_field_as_string(self._feat, self._index)
+
+    def as_datetime(self):
+        "Retrieves the Field's value as a tuple of date & time components."
+        yy, mm, dd, hh, mn, ss, tz = [c_int() for i in range(7)]
+        status = get_field_as_datetime(self._feat, self._index, byref(yy), byref(mm), byref(dd),
+                                       byref(hh), byref(mn), byref(ss), byref(tz))
+        if status:
+            return (yy, mm, dd, hh, mn, ss, tz)
+        else:
+            raise OGRException('Unable to retrieve date & time information from the field.')
+
+    #### Field Properties ####
+    @property
+    def name(self):
+        "Returns the name of this Field."
+        return get_field_name(self._ptr)
+
+    @property
+    def precision(self):
+        "Returns the precision of this Field."
+        return get_field_precision(self._ptr)
+
+    @property
+    def type(self):
+        "Returns the OGR type of this Field."
+        return get_field_type(self._ptr)
+
+    @property
+    def type_name(self):
+        "Return the OGR field type name for this Field."
+        return get_field_type_name(self.type)
+
+    @property
+    def value(self):
+        "Returns the value of this Field."
+        # Default is to get the field as a string.
+        return self.as_string()
+
+    @property
+    def width(self):
+        "Returns the width of this Field."
+        return get_field_width(self._ptr)
+
+### The Field sub-classes for each OGR Field type. ###
+class OFTInteger(Field):
+    @property
+    def value(self):
+        "Returns an integer contained in this field."
+        return self.as_int()
+
+    @property
+    def type(self):
+        """
+        GDAL uses OFTReals to represent OFTIntegers in created
+        shapefiles -- forcing the type here since the underlying field
+        type may actually be OFTReal.
+        """
+        return 0
+
+class OFTReal(Field):
+    @property
+    def value(self):
+        "Returns a float contained in this field."
+        return self.as_double()
+
+# String & Binary fields, just subclasses
+class OFTString(Field): pass
+class OFTWideString(Field): pass
+class OFTBinary(Field): pass
+
+# OFTDate, OFTTime, OFTDateTime fields.
+class OFTDate(Field):
+    @property
+    def value(self):
+        "Returns a Python `date` object for the OFTDate field."
+        yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
+        try:
+            return date(yy.value, mm.value, dd.value)
+        except ValueError:
+            return None
+
+class OFTDateTime(Field):
+    @property
+    def value(self):
+        "Returns a Python `datetime` object for this OFTDateTime field."
+        yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
+        # TODO: Adapt timezone information.
+        #  See http://lists.maptools.org/pipermail/gdal-dev/2006-February/007990.html
+        #  The `tz` variable has values of: 0=unknown, 1=localtime (ambiguous), 
+        #  100=GMT, 104=GMT+1, 80=GMT-5, etc.
+        try:
+            return datetime(yy.value, mm.value, dd.value, hh.value, mn.value, ss.value)
+        except ValueError:
+            return None
+
+class OFTTime(Field):
+    @property
+    def value(self):
+        "Returns a Python `time` object for this OFTTime field."
+        yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
+        try:
+            return time(hh.value, mn.value, ss.value)
+        except ValueError:
+            return None
+
+# List fields are also just subclasses
+class OFTIntegerList(Field): pass
+class OFTRealList(Field): pass
+class OFTStringList(Field): pass
+class OFTWideStringList(Field): pass
+
+# Class mapping dictionary for OFT Types
+FIELD_CLASSES = { 0 : OFTInteger,
+                  1 : OFTIntegerList,
+                  2 : OFTReal,
+                  3 : OFTRealList,
+                  4 : OFTString,
+                  5 : OFTStringList,
+                  6 : OFTWideString,
+                  7 : OFTWideStringList,
+                  8 : OFTBinary,
+                  9 : OFTDate,
+                 10 : OFTTime,
+                 11 : OFTDateTime,
+                  }
diff --git a/webapp/django/contrib/gis/gdal/geometries.py b/webapp/django/contrib/gis/gdal/geometries.py
new file mode 100644
index 0000000..ee0ec17
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/geometries.py
@@ -0,0 +1,643 @@
+"""
+ The OGRGeometry is a wrapper for using the OGR Geometry class
+ (see http://www.gdal.org/ogr/classOGRGeometry.html).  OGRGeometry
+ may be instantiated when reading geometries from OGR Data Sources
+ (e.g. SHP files), or when given OGC WKT (a string).
+
+ While the 'full' API is not present yet, the API is "pythonic" unlike
+ the traditional and "next-generation" OGR Python bindings.  One major
+ advantage OGR Geometries have over their GEOS counterparts is support
+ for spatial reference systems and their transformation.
+
+ Example:
+  >>> from django.contrib.gis.gdal import OGRGeometry, OGRGeomType, SpatialReference
+  >>> wkt1, wkt2 = 'POINT(-90 30)', 'POLYGON((0 0, 5 0, 5 5, 0 5)'
+  >>> pnt = OGRGeometry(wkt1)
+  >>> print pnt
+  POINT (-90 30)
+  >>> mpnt = OGRGeometry(OGRGeomType('MultiPoint'), SpatialReference('WGS84'))
+  >>> mpnt.add(wkt1)
+  >>> mpnt.add(wkt1)
+  >>> print mpnt
+  MULTIPOINT (-90 30,-90 30)
+  >>> print mpnt.srs.name
+  WGS 84
+  >>> print mpnt.srs.proj
+  +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
+  >>> mpnt.transform_to(SpatialReference('NAD27'))
+  >>> print mpnt.proj
+  +proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs
+  >>> print mpnt
+  MULTIPOINT (-89.999930378602485 29.999797886557641,-89.999930378602485 29.999797886557641)
+  
+  The OGRGeomType class is to make it easy to specify an OGR geometry type:
+  >>> from django.contrib.gis.gdal import OGRGeomType
+  >>> gt1 = OGRGeomType(3) # Using an integer for the type
+  >>> gt2 = OGRGeomType('Polygon') # Using a string
+  >>> gt3 = OGRGeomType('POLYGON') # It's case-insensitive
+  >>> print gt1 == 3, gt1 == 'Polygon' # Equivalence works w/non-OGRGeomType objects
+  True
+"""
+# Python library requisites.
+import re, sys
+from binascii import a2b_hex
+from ctypes import byref, string_at, c_char_p, c_double, c_ubyte, c_void_p
+from types import UnicodeType
+
+# Getting GDAL prerequisites
+from django.contrib.gis.gdal.envelope import Envelope, OGREnvelope
+from django.contrib.gis.gdal.error import OGRException, OGRIndexError, SRSException
+from django.contrib.gis.gdal.geomtype import OGRGeomType
+from django.contrib.gis.gdal.srs import SpatialReference, CoordTransform
+
+# Getting the ctypes prototype functions that interface w/the GDAL C library.
+from django.contrib.gis.gdal.prototypes.geom import *
+from django.contrib.gis.gdal.prototypes.srs import clone_srs
+
+# For more information, see the OGR C API source code:
+#  http://www.gdal.org/ogr/ogr__api_8h.html
+#
+# The OGR_G_* routines are relevant here.
+
+# Regular expressions for recognizing HEXEWKB and WKT.
+hex_regex = re.compile(r'^[0-9A-F]+$', re.I)
+wkt_regex = re.compile(r'^(?P<type>POINT|LINESTRING|LINEARRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION)[ACEGIMLONPSRUTY\d,\.\-\(\) ]+$', re.I)
+json_regex = re.compile(r'^\{[\s\w,\-\.\"\'\:\[\]]+\}$')
+
+#### OGRGeometry Class ####
+class OGRGeometry(object):
+    "Generally encapsulates an OGR geometry."
+
+    def __init__(self, geom_input, srs=None):
+        "Initializes Geometry on either WKT or an OGR pointer as input."
+
+        self._ptr = c_void_p(None) # Initially NULL
+        str_instance = isinstance(geom_input, basestring)
+
+        # If HEX, unpack input to to a binary buffer.
+        if str_instance and hex_regex.match(geom_input):
+            geom_input = buffer(a2b_hex(geom_input.upper()))
+            str_instance = False
+
+        # Constructing the geometry, 
+        if str_instance:
+            # Checking if unicode
+            if isinstance(geom_input, UnicodeType):
+                # Encoding to ASCII, WKT or HEX doesn't need any more.
+                geo_input = geo_input.encode('ascii')
+
+            wkt_m = wkt_regex.match(geom_input)
+            json_m = json_regex.match(geom_input)
+            if wkt_m:
+                if wkt_m.group('type').upper() == 'LINEARRING':
+                    # OGR_G_CreateFromWkt doesn't work with LINEARRING WKT.
+                    #  See http://trac.osgeo.org/gdal/ticket/1992.
+                    g = create_geom(OGRGeomType(wkt_m.group('type')).num)
+                    import_wkt(g, byref(c_char_p(geom_input)))
+                else:
+                    g = from_wkt(byref(c_char_p(geom_input)), None, byref(c_void_p()))
+            elif json_m:
+                if GEOJSON:
+                    g = from_json(geom_input)
+                else:
+                    raise NotImplementedError('GeoJSON input only supported on GDAL 1.5+.')
+            else:
+                # Seeing if the input is a valid short-hand string
+                # (e.g., 'Point', 'POLYGON').
+                ogr_t = OGRGeomType(geom_input)
+                g = create_geom(OGRGeomType(geom_input).num)
+        elif isinstance(geom_input, buffer):
+            # WKB was passed in
+            g = from_wkb(str(geom_input), None, byref(c_void_p()), len(geom_input))
+        elif isinstance(geom_input, OGRGeomType):
+            # OGRGeomType was passed in, an empty geometry will be created.
+            g = create_geom(geom_input.num)
+        elif isinstance(geom_input, c_void_p):
+            # OGR pointer (c_void_p) was the input.
+            g = geom_input
+        else:
+            raise OGRException('Invalid input type for OGR Geometry construction: %s' % type(geom_input))
+
+        # Now checking the Geometry pointer before finishing initialization
+        # by setting the pointer for the object.
+        if not g:
+            raise OGRException('Cannot create OGR Geometry from input: %s' % str(geom_input))
+        self._ptr = g
+
+        # Assigning the SpatialReference object to the geometry, if valid.
+        if bool(srs): self.srs = srs
+
+        # Setting the class depending upon the OGR Geometry Type
+        self.__class__ = GEO_CLASSES[self.geom_type.num]
+
+    def __del__(self):
+        "Deletes this Geometry."
+        if self._ptr: destroy_geom(self._ptr)
+
+    ### Geometry set-like operations ###
+    # g = g1 | g2
+    def __or__(self, other):
+        "Returns the union of the two geometries."
+        return self.union(other)
+
+    # g = g1 & g2
+    def __and__(self, other):
+        "Returns the intersection of this Geometry and the other."
+        return self.intersection(other)
+
+    # g = g1 - g2
+    def __sub__(self, other):
+        "Return the difference this Geometry and the other."
+        return self.difference(other)
+
+    # g = g1 ^ g2
+    def __xor__(self, other):
+        "Return the symmetric difference of this Geometry and the other."
+        return self.sym_difference(other)
+
+    def __eq__(self, other):
+        "Is this Geometry equal to the other?"
+        return self.equals(other)
+
+    def __ne__(self, other):
+        "Tests for inequality."
+        return not self.equals(other)
+
+    def __str__(self):
+        "WKT is used for the string representation."
+        return self.wkt
+
+    #### Geometry Properties ####
+    @property
+    def dimension(self):
+        "Returns 0 for points, 1 for lines, and 2 for surfaces."
+        return get_dims(self._ptr)
+
+    @property
+    def coord_dim(self):
+        "Returns the coordinate dimension of the Geometry."
+        return get_coord_dims(self._ptr)
+
+    @property
+    def geom_count(self):
+        "The number of elements in this Geometry."
+        return get_geom_count(self._ptr)
+
+    @property
+    def point_count(self):
+        "Returns the number of Points in this Geometry."
+        return get_point_count(self._ptr)
+
+    @property
+    def num_points(self):
+        "Alias for `point_count` (same name method in GEOS API.)"
+        return self.point_count
+
+    @property
+    def num_coords(self):
+        "Alais for `point_count`."
+        return self.point_count
+
+    @property
+    def geom_type(self):
+        "Returns the Type for this Geometry."
+        try:
+            return OGRGeomType(get_geom_type(self._ptr))
+        except OGRException:
+            # VRT datasources return an invalid geometry type
+            # number, but a valid name -- we'll try that instead.
+            # See: http://trac.osgeo.org/gdal/ticket/2491
+            return OGRGeomType(get_geom_name(self._ptr))
+
+    @property
+    def geom_name(self):
+        "Returns the Name of this Geometry."
+        return get_geom_name(self._ptr)
+
+    @property
+    def area(self):
+        "Returns the area for a LinearRing, Polygon, or MultiPolygon; 0 otherwise."
+        return get_area(self._ptr)
+
+    @property
+    def envelope(self):
+        "Returns the envelope for this Geometry."
+        # TODO: Fix Envelope() for Point geometries.
+        return Envelope(get_envelope(self._ptr, byref(OGREnvelope())))
+
+    @property
+    def extent(self):
+        "Returns the envelope as a 4-tuple, instead of as an Envelope object."
+        return self.envelope.tuple
+
+    #### SpatialReference-related Properties ####
+    
+    # The SRS property
+    def get_srs(self):
+        "Returns the Spatial Reference for this Geometry."
+        try:
+            srs_ptr = get_geom_srs(self._ptr)
+            return SpatialReference(clone_srs(srs_ptr))
+        except SRSException:
+            return None
+
+    def set_srs(self, srs):
+        "Sets the SpatialReference for this geometry."
+        if isinstance(srs, SpatialReference):
+            srs_ptr = clone_srs(srs._ptr)
+        elif isinstance(srs, (int, long, basestring)):
+            sr = SpatialReference(srs)
+            srs_ptr = clone_srs(sr._ptr)
+        else:
+            raise TypeError('Cannot assign spatial reference with object of type: %s' % type(srs))
+        assign_srs(self._ptr, srs_ptr)
+
+    srs = property(get_srs, set_srs)
+
+    # The SRID property
+    def get_srid(self):
+        if self.srs: return self.srs.srid
+        else: return None
+
+    def set_srid(self, srid):
+        if isinstance(srid, (int, long)):
+            self.srs = srid
+        else:
+            raise TypeError('SRID must be set with an integer.')
+
+    srid = property(get_srid, set_srid)
+
+    #### Output Methods ####
+    @property
+    def geos(self):
+        "Returns a GEOSGeometry object from this OGRGeometry."
+        from django.contrib.gis.geos import GEOSGeometry
+        return GEOSGeometry(self.wkb, self.srid)
+
+    @property
+    def gml(self):
+        "Returns the GML representation of the Geometry."
+        return to_gml(self._ptr)
+
+    @property
+    def hex(self):
+        "Returns the hexadecimal representation of the WKB (a string)."
+        return str(self.wkb).encode('hex').upper()
+        #return b2a_hex(self.wkb).upper()
+
+    @property
+    def json(self):
+        if GEOJSON: 
+            return to_json(self._ptr)
+        else:
+            raise NotImplementedError('GeoJSON output only supported on GDAL 1.5+.')
+    geojson = json
+
+    @property
+    def wkb_size(self):
+        "Returns the size of the WKB buffer."
+        return get_wkbsize(self._ptr)
+
+    @property
+    def wkb(self):
+        "Returns the WKB representation of the Geometry."
+        if sys.byteorder == 'little':
+            byteorder = 1 # wkbNDR (from ogr_core.h)
+        else:
+            byteorder = 0 # wkbXDR
+        sz = self.wkb_size
+        # Creating the unsigned character buffer, and passing it in by reference.
+        buf = (c_ubyte * sz)()
+        wkb = to_wkb(self._ptr, byteorder, byref(buf))
+        # Returning a buffer of the string at the pointer.
+        return buffer(string_at(buf, sz))
+
+    @property
+    def wkt(self):
+        "Returns the WKT representation of the Geometry."
+        return to_wkt(self._ptr, byref(c_char_p()))
+    
+    #### Geometry Methods ####
+    def clone(self):
+        "Clones this OGR Geometry."
+        return OGRGeometry(clone_geom(self._ptr), self.srs)
+
+    def close_rings(self):
+        """
+        If there are any rings within this geometry that have not been
+        closed, this routine will do so by adding the starting point at the
+        end.
+        """
+        # Closing the open rings.
+        geom_close_rings(self._ptr)
+
+    def transform(self, coord_trans, clone=False):
+        """
+        Transforms this geometry to a different spatial reference system.
+        May take a CoordTransform object, a SpatialReference object, string
+        WKT or PROJ.4, and/or an integer SRID.  By default nothing is returned
+        and the geometry is transformed in-place.  However, if the `clone`
+        keyword is set, then a transformed clone of this geometry will be
+        returned.
+        """
+        if clone:
+            klone = self.clone()
+            klone.transform(coord_trans)
+            return klone
+        if isinstance(coord_trans, CoordTransform):
+            geom_transform(self._ptr, coord_trans._ptr)
+        elif isinstance(coord_trans, SpatialReference):
+            geom_transform_to(self._ptr, coord_trans._ptr)
+        elif isinstance(coord_trans, (int, long, basestring)):
+            sr = SpatialReference(coord_trans)
+            geom_transform_to(self._ptr, sr._ptr)
+        else:
+            raise TypeError('Transform only accepts CoordTransform, SpatialReference, string, and integer objects.')
+
+    def transform_to(self, srs):
+        "For backwards-compatibility."
+        self.transform(srs)
+
+    #### Topology Methods ####
+    def _topology(self, func, other):
+        """A generalized function for topology operations, takes a GDAL function and
+        the other geometry to perform the operation on."""
+        if not isinstance(other, OGRGeometry):
+            raise TypeError('Must use another OGRGeometry object for topology operations!')
+
+        # Returning the output of the given function with the other geometry's
+        # pointer.
+        return func(self._ptr, other._ptr)
+
+    def intersects(self, other):
+        "Returns True if this geometry intersects with the other."
+        return self._topology(ogr_intersects, other)
+    
+    def equals(self, other):
+        "Returns True if this geometry is equivalent to the other."
+        return self._topology(ogr_equals, other)
+
+    def disjoint(self, other):
+        "Returns True if this geometry and the other are spatially disjoint."
+        return self._topology(ogr_disjoint, other)
+
+    def touches(self, other):
+        "Returns True if this geometry touches the other."
+        return self._topology(ogr_touches, other)
+
+    def crosses(self, other):
+        "Returns True if this geometry crosses the other."
+        return self._topology(ogr_crosses, other)
+
+    def within(self, other):
+        "Returns True if this geometry is within the other."
+        return self._topology(ogr_within, other)
+
+    def contains(self, other):
+        "Returns True if this geometry contains the other."
+        return self._topology(ogr_contains, other)
+
+    def overlaps(self, other):
+        "Returns True if this geometry overlaps the other."
+        return self._topology(ogr_overlaps, other)
+
+    #### Geometry-generation Methods ####
+    def _geomgen(self, gen_func, other=None):
+        "A helper routine for the OGR routines that generate geometries."
+        if isinstance(other, OGRGeometry):
+            return OGRGeometry(gen_func(self._ptr, other._ptr), self.srs)
+        else:
+            return OGRGeometry(gen_func(self._ptr), self.srs)
+
+    @property
+    def boundary(self):
+        "Returns the boundary of this geometry."
+        return self._geomgen(get_boundary)
+
+    @property
+    def convex_hull(self):
+        """
+        Returns the smallest convex Polygon that contains all the points in 
+        this Geometry.
+        """
+        return self._geomgen(geom_convex_hull)
+
+    def difference(self, other):
+        """
+        Returns a new geometry consisting of the region which is the difference
+        of this geometry and the other.
+        """
+        return self._geomgen(geom_diff, other)
+
+    def intersection(self, other):
+        """
+        Returns a new geometry consisting of the region of intersection of this
+        geometry and the other.
+        """
+        return self._geomgen(geom_intersection, other)
+
+    def sym_difference(self, other):
+        """                                                                                                                                                
+        Returns a new geometry which is the symmetric difference of this
+        geometry and the other.
+        """
+        return self._geomgen(geom_sym_diff, other)
+
+    def union(self, other):
+        """
+        Returns a new geometry consisting of the region which is the union of
+        this geometry and the other.
+        """
+        return self._geomgen(geom_union, other)
+
+# The subclasses for OGR Geometry.
+class Point(OGRGeometry):
+
+    @property
+    def x(self):
+        "Returns the X coordinate for this Point."
+        return getx(self._ptr, 0)
+
+    @property
+    def y(self):
+        "Returns the Y coordinate for this Point."
+        return gety(self._ptr, 0)
+
+    @property
+    def z(self):
+        "Returns the Z coordinate for this Point."
+        if self.coord_dim == 3:
+            return getz(self._ptr, 0)
+
+    @property
+    def tuple(self):
+        "Returns the tuple of this point."
+        if self.coord_dim == 2:
+            return (self.x, self.y)
+        elif self.coord_dim == 3:
+            return (self.x, self.y, self.z)
+    coords = tuple
+
+class LineString(OGRGeometry):
+
+    def __getitem__(self, index):
+        "Returns the Point at the given index."
+        if index >= 0 and index < self.point_count:
+            x, y, z = c_double(), c_double(), c_double()
+            get_point(self._ptr, index, byref(x), byref(y), byref(z))
+            dim = self.coord_dim
+            if dim == 1:
+                return (x.value,)
+            elif dim == 2:
+                return (x.value, y.value)
+            elif dim == 3:
+                return (x.value, y.value, z.value)
+        else:
+            raise OGRIndexError('index out of range: %s' % str(index))
+
+    def __iter__(self):
+        "Iterates over each point in the LineString."
+        for i in xrange(self.point_count):
+            yield self[i]
+
+    def __len__(self):
+        "The length returns the number of points in the LineString."
+        return self.point_count
+
+    @property
+    def tuple(self):
+        "Returns the tuple representation of this LineString."
+        return tuple([self[i] for i in xrange(len(self))])
+    coords = tuple
+
+    def _listarr(self, func):
+        """
+        Internal routine that returns a sequence (list) corresponding with
+        the given function.
+        """
+        return [func(self._ptr, i) for i in xrange(len(self))]
+
+    @property
+    def x(self):
+        "Returns the X coordinates in a list."
+        return self._listarr(getx)
+
+    @property
+    def y(self):
+        "Returns the Y coordinates in a list."
+        return self._listarr(gety)
+    
+    @property
+    def z(self):
+        "Returns the Z coordinates in a list."
+        if self.coord_dim == 3:
+            return self._listarr(getz)
+
+# LinearRings are used in Polygons.
+class LinearRing(LineString): pass
+
+class Polygon(OGRGeometry):
+
+    def __len__(self):
+        "The number of interior rings in this Polygon."
+        return self.geom_count
+
+    def __iter__(self):
+        "Iterates through each ring in the Polygon."
+        for i in xrange(self.geom_count):
+            yield self[i]
+
+    def __getitem__(self, index):
+        "Gets the ring at the specified index."
+        if index < 0 or index >= self.geom_count:
+            raise OGRIndexError('index out of range: %s' % index)
+        else:
+            return OGRGeometry(clone_geom(get_geom_ref(self._ptr, index)), self.srs)
+
+    # Polygon Properties
+    @property
+    def shell(self):
+        "Returns the shell of this Polygon."
+        return self[0] # First ring is the shell
+    exterior_ring = shell
+
+    @property
+    def tuple(self):
+        "Returns a tuple of LinearRing coordinate tuples."
+        return tuple([self[i].tuple for i in xrange(self.geom_count)])
+    coords = tuple
+
+    @property
+    def point_count(self):
+        "The number of Points in this Polygon."
+        # Summing up the number of points in each ring of the Polygon.
+        return sum([self[i].point_count for i in xrange(self.geom_count)])
+
+    @property
+    def centroid(self):
+        "Returns the centroid (a Point) of this Polygon."
+        # The centroid is a Point, create a geometry for this.
+        p = OGRGeometry(OGRGeomType('Point'))
+        get_centroid(self._ptr, p._ptr)
+        return p
+
+# Geometry Collection base class.
+class GeometryCollection(OGRGeometry):
+    "The Geometry Collection class."
+
+    def __getitem__(self, index):
+        "Gets the Geometry at the specified index."
+        if index < 0 or index >= self.geom_count:
+            raise OGRIndexError('index out of range: %s' % index)
+        else:
+            return OGRGeometry(clone_geom(get_geom_ref(self._ptr, index)), self.srs)
+        
+    def __iter__(self):
+        "Iterates over each Geometry."
+        for i in xrange(self.geom_count):
+            yield self[i]
+
+    def __len__(self):
+        "The number of geometries in this Geometry Collection."
+        return self.geom_count
+
+    def add(self, geom):
+        "Add the geometry to this Geometry Collection."
+        if isinstance(geom, OGRGeometry):
+            if isinstance(geom, self.__class__):
+                for g in geom: add_geom(self._ptr, g._ptr)
+            else:
+                add_geom(self._ptr, geom._ptr)
+        elif isinstance(geom, basestring):
+            tmp = OGRGeometry(geom)
+            add_geom(self._ptr, tmp._ptr)
+        else:
+            raise OGRException('Must add an OGRGeometry.')
+
+    @property
+    def point_count(self):
+        "The number of Points in this Geometry Collection."
+        # Summing up the number of points in each geometry in this collection
+        return sum([self[i].point_count for i in xrange(self.geom_count)])
+
+    @property
+    def tuple(self):
+        "Returns a tuple representation of this Geometry Collection."
+        return tuple([self[i].tuple for i in xrange(self.geom_count)])
+    coords = tuple
+
+# Multiple Geometry types.
+class MultiPoint(GeometryCollection): pass
+class MultiLineString(GeometryCollection): pass
+class MultiPolygon(GeometryCollection): pass
+
+# Class mapping dictionary (using the OGRwkbGeometryType as the key)
+GEO_CLASSES = {1 : Point,
+               2 : LineString,
+               3 : Polygon,
+               4 : MultiPoint,
+               5 : MultiLineString,
+               6 : MultiPolygon,
+               7 : GeometryCollection,
+               101: LinearRing, 
+               }
diff --git a/webapp/django/contrib/gis/gdal/geomtype.py b/webapp/django/contrib/gis/gdal/geomtype.py
new file mode 100644
index 0000000..565326f
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/geomtype.py
@@ -0,0 +1,73 @@
+from django.contrib.gis.gdal.error import OGRException
+
+#### OGRGeomType ####
+class OGRGeomType(object):
+    "Encapulates OGR Geometry Types."
+
+    # Dictionary of acceptable OGRwkbGeometryType s and their string names.
+    _types = {0 : 'Unknown',
+              1 : 'Point',
+              2 : 'LineString',
+              3 : 'Polygon',
+              4 : 'MultiPoint',
+              5 : 'MultiLineString',
+              6 : 'MultiPolygon',
+              7 : 'GeometryCollection',
+              100 : 'None',
+              101 : 'LinearRing',
+              }
+    # Reverse type dictionary, keyed by lower-case of the name.
+    _str_types = dict([(v.lower(), k) for k, v in _types.items()])
+
+    def __init__(self, type_input):
+        "Figures out the correct OGR Type based upon the input."
+        if isinstance(type_input, OGRGeomType):
+            num = type_input.num
+        elif isinstance(type_input, basestring):
+            num = self._str_types.get(type_input.lower(), None)
+            if num is None:
+                raise OGRException('Invalid OGR String Type "%s"' % type_input)
+        elif isinstance(type_input, int):
+            if not type_input in self._types:
+                raise OGRException('Invalid OGR Integer Type: %d' % type_input)
+            num = type_input
+        else:
+            raise TypeError('Invalid OGR input type given.')
+        
+        # Setting the OGR geometry type number.
+        self.num = num
+
+    def __str__(self):
+        "Returns the value of the name property."
+        return self.name
+
+    def __eq__(self, other):
+        """
+        Does an equivalence test on the OGR type with the given
+        other OGRGeomType, the short-hand string, or the integer.
+        """
+        if isinstance(other, OGRGeomType):
+            return self.num == other.num
+        elif isinstance(other, basestring):
+            return self.name.lower() == other.lower()
+        elif isinstance(other, int):
+            return self.num == other
+        else:
+            return False
+
+    def __ne__(self, other):
+        return not (self == other)
+
+    @property
+    def name(self):
+        "Returns a short-hand string form of the OGR Geometry type."
+        return self._types[self.num]
+
+    @property
+    def django(self):
+        "Returns the Django GeometryField for this OGR Type."
+        s = self.name
+        if s in ('Unknown', 'LinearRing', 'None'):
+            return None
+        else:
+            return s + 'Field'
diff --git a/webapp/django/contrib/gis/gdal/layer.py b/webapp/django/contrib/gis/gdal/layer.py
new file mode 100644
index 0000000..d60e2cb
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/layer.py
@@ -0,0 +1,187 @@
+# Needed ctypes routines
+from ctypes import byref
+
+# Other GDAL imports.
+from django.contrib.gis.gdal.envelope import Envelope, OGREnvelope
+from django.contrib.gis.gdal.error import OGRException, OGRIndexError, SRSException
+from django.contrib.gis.gdal.feature import Feature
+from django.contrib.gis.gdal.field import FIELD_CLASSES
+from django.contrib.gis.gdal.geometries import OGRGeomType
+from django.contrib.gis.gdal.srs import SpatialReference
+
+# GDAL ctypes function prototypes.
+from django.contrib.gis.gdal.prototypes.ds import \
+    get_extent, get_fd_geom_type, get_fd_name, get_feature, get_feature_count, \
+    get_field_count, get_field_defn, get_field_name, get_field_precision, \
+    get_field_width, get_field_type, get_layer_defn, get_layer_srs, \
+    get_next_feature, reset_reading, test_capability
+from django.contrib.gis.gdal.prototypes.srs import clone_srs
+
+# For more information, see the OGR C API source code:
+#  http://www.gdal.org/ogr/ogr__api_8h.html
+#
+# The OGR_L_* routines are relevant here.
+class Layer(object):
+    "A class that wraps an OGR Layer, needs to be instantiated from a DataSource object."
+
+    #### Python 'magic' routines ####
+    def __init__(self, layer_ptr):
+        "Needs a C pointer (Python/ctypes integer) in order to initialize."
+        self._ptr = None # Initially NULL
+        if not layer_ptr:
+            raise OGRException('Cannot create Layer, invalid pointer given')
+        self._ptr = layer_ptr
+        self._ldefn = get_layer_defn(self._ptr)
+        # Does the Layer support random reading?
+        self._random_read = self.test_capability('RandomRead')
+
+    def __getitem__(self, index):
+        "Gets the Feature at the specified index."
+        if isinstance(index, (int, long)):
+            # An integer index was given -- we cannot do a check based on the
+            # number of features because the beginning and ending feature IDs
+            # are not guaranteed to be 0 and len(layer)-1, respectively.
+            if index < 0: raise OGRIndexError('Negative indices are not allowed on OGR Layers.')
+            return self._make_feature(index)
+        elif isinstance(index, slice):
+            # A slice was given
+            start, stop, stride = index.indices(self.num_feat)
+            return [self._make_feature(fid) for fid in xrange(start, stop, stride)]
+        else:
+            raise TypeError('Integers and slices may only be used when indexing OGR Layers.')
+
+    def __iter__(self):
+        "Iterates over each Feature in the Layer."
+        # ResetReading() must be called before iteration is to begin.
+        reset_reading(self._ptr)
+        for i in xrange(self.num_feat):
+            yield Feature(get_next_feature(self._ptr), self._ldefn)
+
+    def __len__(self):
+        "The length is the number of features."
+        return self.num_feat
+
+    def __str__(self):
+        "The string name of the layer."
+        return self.name
+
+    def _make_feature(self, feat_id):
+        """
+        Helper routine for __getitem__ that constructs a Feature from the given
+        Feature ID.  If the OGR Layer does not support random-access reading,
+        then each feature of the layer will be incremented through until the
+        a Feature is found matching the given feature ID.
+        """
+        if self._random_read:
+            # If the Layer supports random reading, return.
+            try:
+                return Feature(get_feature(self._ptr, feat_id), self._ldefn)
+            except OGRException:
+                pass
+        else:
+            # Random access isn't supported, have to increment through
+            # each feature until the given feature ID is encountered.
+            for feat in self:
+                if feat.fid == feat_id: return feat
+        # Should have returned a Feature, raise an OGRIndexError.    
+        raise OGRIndexError('Invalid feature id: %s.' % feat_id)
+
+    #### Layer properties ####
+    @property
+    def extent(self):
+        "Returns the extent (an Envelope) of this layer."
+        env = OGREnvelope()
+        get_extent(self._ptr, byref(env), 1)
+        return Envelope(env)
+
+    @property
+    def name(self):
+        "Returns the name of this layer in the Data Source."
+        return get_fd_name(self._ldefn)
+
+    @property
+    def num_feat(self, force=1):
+        "Returns the number of features in the Layer."
+        return get_feature_count(self._ptr, force)
+
+    @property
+    def num_fields(self):
+        "Returns the number of fields in the Layer."
+        return get_field_count(self._ldefn)
+
+    @property
+    def geom_type(self):
+        "Returns the geometry type (OGRGeomType) of the Layer."
+        return OGRGeomType(get_fd_geom_type(self._ldefn))
+
+    @property
+    def srs(self):
+        "Returns the Spatial Reference used in this Layer."
+        try:
+            ptr = get_layer_srs(self._ptr)
+            return SpatialReference(clone_srs(ptr))
+        except SRSException:
+            return None
+
+    @property
+    def fields(self):
+        """
+        Returns a list of string names corresponding to each of the Fields
+        available in this Layer.
+        """
+        return [get_field_name(get_field_defn(self._ldefn, i)) 
+                for i in xrange(self.num_fields) ]
+    
+    @property
+    def field_types(self):
+        """
+        Returns a list of the types of fields in this Layer.  For example,
+        the list [OFTInteger, OFTReal, OFTString] would be returned for
+        an OGR layer that had an integer, a floating-point, and string
+        fields.
+        """
+        return [FIELD_CLASSES[get_field_type(get_field_defn(self._ldefn, i))]
+                for i in xrange(self.num_fields)]
+
+    @property 
+    def field_widths(self):
+        "Returns a list of the maximum field widths for the features."
+        return [get_field_width(get_field_defn(self._ldefn, i))
+                for i in xrange(self.num_fields)]
+
+    @property 
+    def field_precisions(self):
+        "Returns the field precisions for the features."
+        return [get_field_precision(get_field_defn(self._ldefn, i))
+                for i in xrange(self.num_fields)]
+
+    #### Layer Methods ####
+    def get_fields(self, field_name):
+        """
+        Returns a list containing the given field name for every Feature
+        in the Layer.
+        """
+        if not field_name in self.fields:
+            raise OGRException('invalid field name: %s' % field_name)
+        return [feat.get(field_name) for feat in self]
+
+    def get_geoms(self, geos=False):
+        """
+        Returns a list containing the OGRGeometry for every Feature in
+        the Layer.
+        """
+        if geos:
+            from django.contrib.gis.geos import GEOSGeometry
+            return [GEOSGeometry(feat.geom.wkb) for feat in self]
+        else:
+            return [feat.geom for feat in self]
+
+    def test_capability(self, capability):
+        """
+        Returns a bool indicating whether the this Layer supports the given
+        capability (a string).  Valid capability strings include:
+          'RandomRead', 'SequentialWrite', 'RandomWrite', 'FastSpatialFilter',
+          'FastFeatureCount', 'FastGetExtent', 'CreateField', 'Transactions',
+          'DeleteFeature', and 'FastSetNextByIndex'.
+        """
+        return bool(test_capability(self._ptr, capability))
diff --git a/webapp/django/contrib/gis/gdal/libgdal.py b/webapp/django/contrib/gis/gdal/libgdal.py
new file mode 100644
index 0000000..bf8933d
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/libgdal.py
@@ -0,0 +1,83 @@
+import os, sys
+from ctypes import c_char_p, CDLL
+from ctypes.util import find_library
+from django.contrib.gis.gdal.error import OGRException
+
+# Custom library path set?
+try:
+    from django.conf import settings
+    lib_path = settings.GDAL_LIBRARY_PATH
+except (AttributeError, EnvironmentError, ImportError):
+    lib_path = None
+
+if lib_path:
+    lib_names = None
+elif os.name == 'nt':
+    # Windows NT shared library
+    lib_names = ['gdal15']
+elif os.name == 'posix':
+    # *NIX library names.
+    lib_names = ['gdal', 'gdal1.5.0']
+else:
+    raise OGRException('Unsupported OS "%s"' % os.name)
+
+# Using the ctypes `find_library` utility  to find the 
+# path to the GDAL library from the list of library names.
+if lib_names:
+    for lib_name in lib_names:
+        lib_path = find_library(lib_name)
+        if not lib_path is None: break
+        
+if lib_path is None:
+    raise OGRException('Could not find the GDAL library (tried "%s"). '
+                       'Try setting GDAL_LIBRARY_PATH in your settings.' % 
+                       '", "'.join(lib_names))
+
+# This loads the GDAL/OGR C library
+lgdal = CDLL(lib_path)
+
+# On Windows, the GDAL binaries have some OSR routines exported with 
+# STDCALL, while others are not.  Thus, the library will also need to 
+# be loaded up as WinDLL for said OSR functions that require the 
+# different calling convention.
+if os.name == 'nt':
+    from ctypes import WinDLL
+    lwingdal = WinDLL(lib_name)
+
+def std_call(func):
+    """
+    Returns the correct STDCALL function for certain OSR routines on Win32
+    platforms.
+    """
+    if os.name == 'nt':
+        return lwingdal[func]
+    else:
+        return lgdal[func]
+
+#### Version-information functions. ####
+
+# Returns GDAL library version information with the given key.
+_version_info = std_call('GDALVersionInfo')
+_version_info.argtypes = [c_char_p]
+_version_info.restype = c_char_p
+
+def gdal_version():
+    "Returns only the GDAL version number information."
+    return _version_info('RELEASE_NAME')
+
+def gdal_full_version(): 
+    "Returns the full GDAL version information."
+    return _version_info('')
+
+def gdal_release_date(date=False): 
+    """
+    Returns the release date in a string format, e.g, "2007/06/27".
+    If the date keyword argument is set to True, a Python datetime object
+    will be returned instead.
+    """
+    from datetime import date as date_type
+    rel = _version_info('RELEASE_DATE')
+    yy, mm, dd = map(int, (rel[0:4], rel[4:6], rel[6:8]))
+    d = date_type(yy, mm, dd)
+    if date: return d
+    else: return d.strftime('%Y/%m/%d')
diff --git a/webapp/django/contrib/gis/gdal/prototypes/__init__.py b/webapp/django/contrib/gis/gdal/prototypes/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/prototypes/__init__.py
diff --git a/webapp/django/contrib/gis/gdal/prototypes/ds.py b/webapp/django/contrib/gis/gdal/prototypes/ds.py
new file mode 100644
index 0000000..b64183e
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/prototypes/ds.py
@@ -0,0 +1,68 @@
+"""
+ This module houses the ctypes function prototypes for OGR DataSource
+ related data structures. OGR_Dr_*, OGR_DS_*, OGR_L_*, OGR_F_*, 
+ OGR_Fld_* routines are relevant here.
+"""
+from ctypes import c_char_p, c_int, c_long, c_void_p, POINTER
+from django.contrib.gis.gdal.envelope import OGREnvelope
+from django.contrib.gis.gdal.libgdal import lgdal
+from django.contrib.gis.gdal.prototypes.generation import \
+    const_string_output, double_output, geom_output, int_output, \
+    srs_output, void_output, voidptr_output
+
+c_int_p = POINTER(c_int) # shortcut type
+
+### Driver Routines ###
+register_all = void_output(lgdal.OGRRegisterAll, [], errcheck=False)
+cleanup_all = void_output(lgdal.OGRCleanupAll, [], errcheck=False)
+get_driver = voidptr_output(lgdal.OGRGetDriver, [c_int])
+get_driver_by_name = voidptr_output(lgdal.OGRGetDriverByName, [c_char_p])
+get_driver_count = int_output(lgdal.OGRGetDriverCount, [])
+get_driver_name = const_string_output(lgdal.OGR_Dr_GetName, [c_void_p])
+
+### DataSource ###
+open_ds = voidptr_output(lgdal.OGROpen, [c_char_p, c_int, POINTER(c_void_p)])
+destroy_ds = void_output(lgdal.OGR_DS_Destroy, [c_void_p], errcheck=False)
+release_ds = void_output(lgdal.OGRReleaseDataSource, [c_void_p])
+get_ds_name = const_string_output(lgdal.OGR_DS_GetName, [c_void_p])
+get_layer = voidptr_output(lgdal.OGR_DS_GetLayer, [c_void_p, c_int])
+get_layer_by_name = voidptr_output(lgdal.OGR_DS_GetLayerByName, [c_void_p, c_char_p])
+get_layer_count = int_output(lgdal.OGR_DS_GetLayerCount, [c_void_p])
+
+### Layer Routines ###
+get_extent = void_output(lgdal.OGR_L_GetExtent, [c_void_p, POINTER(OGREnvelope), c_int])
+get_feature = voidptr_output(lgdal.OGR_L_GetFeature, [c_void_p, c_long])
+get_feature_count = int_output(lgdal.OGR_L_GetFeatureCount, [c_void_p, c_int])
+get_layer_defn = voidptr_output(lgdal.OGR_L_GetLayerDefn, [c_void_p])
+get_layer_srs = srs_output(lgdal.OGR_L_GetSpatialRef, [c_void_p])
+get_next_feature = voidptr_output(lgdal.OGR_L_GetNextFeature, [c_void_p])
+reset_reading = void_output(lgdal.OGR_L_ResetReading, [c_void_p], errcheck=False)
+test_capability = int_output(lgdal.OGR_L_TestCapability, [c_void_p, c_char_p])
+
+### Feature Definition Routines ###
+get_fd_geom_type = int_output(lgdal.OGR_FD_GetGeomType, [c_void_p])
+get_fd_name = const_string_output(lgdal.OGR_FD_GetName, [c_void_p])
+get_feat_name = const_string_output(lgdal.OGR_FD_GetName, [c_void_p])
+get_field_count = int_output(lgdal.OGR_FD_GetFieldCount, [c_void_p])
+get_field_defn = voidptr_output(lgdal.OGR_FD_GetFieldDefn, [c_void_p, c_int])
+
+### Feature Routines ###
+clone_feature = voidptr_output(lgdal.OGR_F_Clone, [c_void_p])
+destroy_feature = void_output(lgdal.OGR_F_Destroy, [c_void_p], errcheck=False)
+feature_equal = int_output(lgdal.OGR_F_Equal, [c_void_p, c_void_p])
+get_feat_geom_ref = geom_output(lgdal.OGR_F_GetGeometryRef, [c_void_p])
+get_feat_field_count = int_output(lgdal.OGR_F_GetFieldCount, [c_void_p])
+get_feat_field_defn = voidptr_output(lgdal.OGR_F_GetFieldDefnRef, [c_void_p, c_int])
+get_fid = int_output(lgdal.OGR_F_GetFID, [c_void_p])
+get_field_as_datetime = int_output(lgdal.OGR_F_GetFieldAsDateTime, [c_void_p, c_int, c_int_p, c_int_p, c_int_p, c_int_p, c_int_p, c_int_p])
+get_field_as_double = double_output(lgdal.OGR_F_GetFieldAsDouble, [c_void_p, c_int])
+get_field_as_integer = int_output(lgdal.OGR_F_GetFieldAsInteger, [c_void_p, c_int])
+get_field_as_string = const_string_output(lgdal.OGR_F_GetFieldAsString, [c_void_p, c_int])
+get_field_index = int_output(lgdal.OGR_F_GetFieldIndex, [c_void_p, c_char_p])
+
+### Field Routines ###
+get_field_name = const_string_output(lgdal.OGR_Fld_GetNameRef, [c_void_p])
+get_field_precision = int_output(lgdal.OGR_Fld_GetPrecision, [c_void_p])
+get_field_type = int_output(lgdal.OGR_Fld_GetType, [c_void_p])
+get_field_type_name = const_string_output(lgdal.OGR_GetFieldTypeName, [c_int])
+get_field_width = int_output(lgdal.OGR_Fld_GetWidth, [c_void_p])
diff --git a/webapp/django/contrib/gis/gdal/prototypes/errcheck.py b/webapp/django/contrib/gis/gdal/prototypes/errcheck.py
new file mode 100644
index 0000000..c66be9a
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/prototypes/errcheck.py
@@ -0,0 +1,125 @@
+"""
+ This module houses the error-checking routines used by the GDAL
+ ctypes prototypes.
+"""
+from ctypes import c_void_p, string_at
+from django.contrib.gis.gdal.error import check_err, OGRException, SRSException
+from django.contrib.gis.gdal.libgdal import lgdal
+
+# Helper routines for retrieving pointers and/or values from 
+# arguments passed in by reference. 
+def arg_byref(args, offset=-1):
+    "Returns the pointer argument's by-refernece value."
+    return args[offset]._obj.value
+
+def ptr_byref(args, offset=-1):
+    "Returns the pointer argument passed in by-reference."
+    return args[offset]._obj
+
+def check_bool(result, func, cargs):
+    "Returns the boolean evaluation of the value."
+    if bool(result): return True
+    else: return False
+
+### String checking Routines ###
+def check_const_string(result, func, cargs, offset=None):
+    """
+    Similar functionality to `check_string`, but does not free the pointer.
+    """
+    if offset:
+        check_err(result)
+        ptr = ptr_byref(cargs, offset)
+        return ptr.value
+    else:
+        return result
+
+def check_string(result, func, cargs, offset=-1, str_result=False):
+    """
+    Checks the string output returned from the given function, and frees
+    the string pointer allocated by OGR.  The `str_result` keyword
+    may be used when the result is the string pointer, otherwise
+    the OGR error code is assumed.  The `offset` keyword may be used
+    to extract the string pointer passed in by-reference at the given
+    slice offset in the function arguments.
+    """
+    if str_result:
+        # For routines that return a string.
+        ptr = result
+        if not ptr: s = None
+        else: s = string_at(result)
+    else:
+        # Error-code return specified.
+        check_err(result)
+        ptr = ptr_byref(cargs, offset)
+        # Getting the string value
+        s = ptr.value
+    # Correctly freeing the allocated memory beind GDAL pointer 
+    # w/the VSIFree routine.
+    if ptr: lgdal.VSIFree(ptr)
+    return s
+
+### DataSource, Layer error-checking ###
+
+### Envelope checking ###
+def check_envelope(result, func, cargs, offset=-1):
+    "Checks a function that returns an OGR Envelope by reference."
+    env = ptr_byref(cargs, offset)
+    return env
+
+### Geometry error-checking routines ###
+def check_geom(result, func, cargs):
+    "Checks a function that returns a geometry."
+    # OGR_G_Clone may return an integer, even though the
+    # restype is set to c_void_p
+    if isinstance(result, int):
+        result = c_void_p(result)
+    if not result: 
+        raise OGRException('Invalid geometry pointer returned from "%s".' % func.__name__)
+    return result
+
+def check_geom_offset(result, func, cargs, offset=-1):
+    "Chcks the geometry at the given offset in the C parameter list."
+    check_err(result)
+    geom = ptr_byref(cargs, offset=offset)
+    return check_geom(geom, func, cargs)
+
+### Spatial Reference error-checking routines ###
+def check_srs(result, func, cargs):
+    if isinstance(result, int):
+        result = c_void_p(result)
+    if not result:
+        raise SRSException('Invalid spatial reference pointer returned from "%s".' % func.__name__)
+    return result
+
+### Other error-checking routines ###
+def check_arg_errcode(result, func, cargs):
+    """
+    The error code is returned in the last argument, by reference.
+    Check its value with `check_err` before returning the result.
+    """
+    check_err(arg_byref(cargs))
+    return result
+
+def check_errcode(result, func, cargs):
+    """
+    Check the error code returned (c_int).
+    """
+    check_err(result)
+    return
+
+def check_pointer(result, func, cargs):
+    "Makes sure the result pointer is valid."
+    if bool(result): 
+        return result
+    else: 
+        raise OGRException('Invalid pointer returned from "%s"' % func.__name__)
+
+def check_str_arg(result, func, cargs):
+    """
+    This is for the OSRGet[Angular|Linear]Units functions, which
+    require that the returned string pointer not be freed.  This
+    returns both the double and tring values.
+    """
+    dbl = result
+    ptr = cargs[-1]._obj
+    return dbl, ptr.value
diff --git a/webapp/django/contrib/gis/gdal/prototypes/generation.py b/webapp/django/contrib/gis/gdal/prototypes/generation.py
new file mode 100644
index 0000000..bba715d
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/prototypes/generation.py
@@ -0,0 +1,116 @@
+"""
+ This module contains functions that generate ctypes prototypes for the
+ GDAL routines.
+"""
+
+from ctypes import c_char_p, c_double, c_int, c_void_p
+from django.contrib.gis.gdal.prototypes.errcheck import \
+    check_arg_errcode, check_errcode, check_geom, check_geom_offset, \
+    check_pointer, check_srs, check_str_arg, check_string, check_const_string
+
+def double_output(func, argtypes, errcheck=False, strarg=False):
+    "Generates a ctypes function that returns a double value."
+    func.argtypes = argtypes
+    func.restype = c_double
+    if errcheck: func.errcheck = check_arg_errcode
+    if strarg: func.errcheck = check_str_arg
+    return func
+
+def geom_output(func, argtypes, offset=None):
+    """
+    Generates a function that returns a Geometry either by reference
+    or directly (if the return_geom keyword is set to True).
+    """
+    # Setting the argument types
+    func.argtypes = argtypes
+
+    if not offset:
+        # When a geometry pointer is directly returned.
+        func.restype = c_void_p
+        func.errcheck = check_geom
+    else:
+        # Error code returned, geometry is returned by-reference.
+        func.restype = c_int
+        def geomerrcheck(result, func, cargs):
+            return check_geom_offset(result, func, cargs, offset)
+        func.errcheck = geomerrcheck
+
+    return func
+
+def int_output(func, argtypes):
+    "Generates a ctypes function that returns an integer value."
+    func.argtypes = argtypes
+    func.restype = c_int
+    return func
+
+def srs_output(func, argtypes):
+    """
+    Generates a ctypes prototype for the given function with
+    the given C arguments that returns a pointer to an OGR
+    Spatial Reference System.
+    """
+    func.argtypes = argtypes
+    func.restype = c_void_p
+    func.errcheck = check_srs
+    return func
+
+def const_string_output(func, argtypes, offset=None):
+    func.argtypes = argtypes
+    if offset:
+        func.restype = c_int
+    else:
+        func.restype = c_char_p
+
+    def _check_const(result, func, cargs):
+        return check_const_string(result, func, cargs, offset=offset)
+    func.errcheck = _check_const
+
+    return func
+
+def string_output(func, argtypes, offset=-1, str_result=False):
+    """
+    Generates a ctypes prototype for the given function with the
+    given argument types that returns a string from a GDAL pointer.
+    The `const` flag indicates whether the allocated pointer should 
+    be freed via the GDAL library routine VSIFree -- but only applies
+    only when `str_result` is True.
+    """
+    func.argtypes = argtypes
+    if str_result:
+        # String is the result, don't explicitly define
+        # the argument type so we can get the pointer.
+        pass
+    else:
+        # Error code is returned
+        func.restype = c_int
+
+    # Dynamically defining our error-checking function with the
+    # given offset.
+    def _check_str(result, func, cargs):
+        return check_string(result, func, cargs,
+                            offset=offset, str_result=str_result)
+    func.errcheck = _check_str
+    return func
+
+def void_output(func, argtypes, errcheck=True):
+    """
+    For functions that don't only return an error code that needs to
+    be examined.
+    """
+    if argtypes: func.argtypes = argtypes
+    if errcheck:
+        # `errcheck` keyword may be set to False for routines that
+        # return void, rather than a status code.
+        func.restype = c_int
+        func.errcheck = check_errcode
+    else:
+        func.restype = None
+        
+    return func
+
+def voidptr_output(func, argtypes):
+    "For functions that return c_void_p."
+    func.argtypes = argtypes
+    func.restype = c_void_p
+    func.errcheck = check_pointer
+    return func
diff --git a/webapp/django/contrib/gis/gdal/prototypes/geom.py b/webapp/django/contrib/gis/gdal/prototypes/geom.py
new file mode 100644
index 0000000..7757f55
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/prototypes/geom.py
@@ -0,0 +1,109 @@
+from datetime import date
+from ctypes import c_char, c_char_p, c_double, c_int, c_ubyte, c_void_p, POINTER
+from django.contrib.gis.gdal.envelope import OGREnvelope
+from django.contrib.gis.gdal.libgdal import lgdal, gdal_version
+from django.contrib.gis.gdal.prototypes.errcheck import check_bool, check_envelope
+from django.contrib.gis.gdal.prototypes.generation import \
+    const_string_output, double_output, geom_output, int_output, \
+    srs_output, string_output, void_output
+
+# Some prototypes need to be aware of what version GDAL we have.
+major, minor = map(int, gdal_version().split('.')[:2])
+if major <= 1 and minor <= 4:
+    GEOJSON = False
+else:
+    GEOJSON = True
+
+### Generation routines specific to this module ###
+def env_func(f, argtypes):
+    "For getting OGREnvelopes."
+    f.argtypes = argtypes
+    f.restype = None
+    f.errcheck = check_envelope
+    return f
+
+def pnt_func(f):
+    "For accessing point information."
+    return double_output(f, [c_void_p, c_int])
+
+def topology_func(f):
+    f.argtypes = [c_void_p, c_void_p]
+    f.restype = c_int
+    f.errchck = check_bool
+    return f
+
+### OGR_G ctypes function prototypes ###
+
+# GeoJSON routines, if supported.
+if GEOJSON:
+    from_json = geom_output(lgdal.OGR_G_CreateGeometryFromJson, [c_char_p])
+    to_json = string_output(lgdal.OGR_G_ExportToJson, [c_void_p], str_result=True)
+else:
+    from_json = False
+    to_json = False
+
+# GetX, GetY, GetZ all return doubles.
+getx = pnt_func(lgdal.OGR_G_GetX)
+gety = pnt_func(lgdal.OGR_G_GetY)
+getz = pnt_func(lgdal.OGR_G_GetZ)
+    
+# Geometry creation routines.
+from_wkb = geom_output(lgdal.OGR_G_CreateFromWkb, [c_char_p, c_void_p, POINTER(c_void_p), c_int], offset=-2)
+from_wkt = geom_output(lgdal.OGR_G_CreateFromWkt, [POINTER(c_char_p), c_void_p, POINTER(c_void_p)], offset=-1)
+create_geom = geom_output(lgdal.OGR_G_CreateGeometry, [c_int])
+clone_geom = geom_output(lgdal.OGR_G_Clone, [c_void_p])
+get_geom_ref = geom_output(lgdal.OGR_G_GetGeometryRef, [c_void_p, c_int])
+get_boundary = geom_output(lgdal.OGR_G_GetBoundary, [c_void_p])
+geom_convex_hull = geom_output(lgdal.OGR_G_ConvexHull, [c_void_p])
+geom_diff = geom_output(lgdal.OGR_G_Difference, [c_void_p, c_void_p])
+geom_intersection = geom_output(lgdal.OGR_G_Intersection, [c_void_p, c_void_p])
+geom_sym_diff = geom_output(lgdal.OGR_G_SymmetricDifference, [c_void_p, c_void_p])
+geom_union = geom_output(lgdal.OGR_G_Union, [c_void_p, c_void_p])
+
+# Geometry modification routines.
+add_geom = void_output(lgdal.OGR_G_AddGeometry, [c_void_p, c_void_p])
+import_wkt = void_output(lgdal.OGR_G_ImportFromWkt, [c_void_p, POINTER(c_char_p)])
+
+# Destroys a geometry
+destroy_geom = void_output(lgdal.OGR_G_DestroyGeometry, [c_void_p], errcheck=False)
+
+# Geometry export routines.
+to_wkb = void_output(lgdal.OGR_G_ExportToWkb, None, errcheck=True) # special handling for WKB.
+to_wkt = string_output(lgdal.OGR_G_ExportToWkt, [c_void_p, POINTER(c_char_p)])
+to_gml = string_output(lgdal.OGR_G_ExportToGML, [c_void_p], str_result=True)
+get_wkbsize = int_output(lgdal.OGR_G_WkbSize, [c_void_p])
+
+# Geometry spatial-reference related routines.
+assign_srs = void_output(lgdal.OGR_G_AssignSpatialReference, [c_void_p, c_void_p], errcheck=False)
+get_geom_srs = srs_output(lgdal.OGR_G_GetSpatialReference, [c_void_p])
+
+# Geometry properties
+get_area = double_output(lgdal.OGR_G_GetArea, [c_void_p])
+get_centroid = void_output(lgdal.OGR_G_Centroid, [c_void_p, c_void_p])
+get_dims = int_output(lgdal.OGR_G_GetDimension, [c_void_p])
+get_coord_dims = int_output(lgdal.OGR_G_GetCoordinateDimension, [c_void_p])
+
+get_geom_count = int_output(lgdal.OGR_G_GetGeometryCount, [c_void_p])
+get_geom_name = const_string_output(lgdal.OGR_G_GetGeometryName, [c_void_p])
+get_geom_type = int_output(lgdal.OGR_G_GetGeometryType, [c_void_p])
+get_point_count = int_output(lgdal.OGR_G_GetPointCount, [c_void_p])
+get_point = void_output(lgdal.OGR_G_GetPoint, [c_void_p, c_int, POINTER(c_double), POINTER(c_double), POINTER(c_double)], errcheck=False)
+geom_close_rings = void_output(lgdal.OGR_G_CloseRings, [c_void_p], errcheck=False)
+
+# Topology routines.
+ogr_contains = topology_func(lgdal.OGR_G_Contains)
+ogr_crosses = topology_func(lgdal.OGR_G_Crosses)
+ogr_disjoint = topology_func(lgdal.OGR_G_Disjoint)
+ogr_equals = topology_func(lgdal.OGR_G_Equals)
+ogr_intersects = topology_func(lgdal.OGR_G_Intersects)
+ogr_overlaps = topology_func(lgdal.OGR_G_Overlaps)
+ogr_touches = topology_func(lgdal.OGR_G_Touches)
+ogr_within = topology_func(lgdal.OGR_G_Within)
+
+# Transformation routines.
+geom_transform = void_output(lgdal.OGR_G_Transform, [c_void_p, c_void_p])
+geom_transform_to = void_output(lgdal.OGR_G_TransformTo, [c_void_p, c_void_p])
+
+# For retrieving the envelope of the geometry.
+get_envelope = env_func(lgdal.OGR_G_GetEnvelope, [c_void_p, POINTER(OGREnvelope)])
+
diff --git a/webapp/django/contrib/gis/gdal/prototypes/srs.py b/webapp/django/contrib/gis/gdal/prototypes/srs.py
new file mode 100644
index 0000000..ff4d0ad
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/prototypes/srs.py
@@ -0,0 +1,71 @@
+from ctypes import c_char_p, c_int, c_void_p, POINTER
+from django.contrib.gis.gdal.libgdal import lgdal, std_call
+from django.contrib.gis.gdal.prototypes.generation import \
+    const_string_output, double_output, int_output, \
+    srs_output, string_output, void_output
+
+## Shortcut generation for routines with known parameters.
+def srs_double(f):
+    """
+    Creates a function prototype for the OSR routines that take
+    the OSRSpatialReference object and
+    """
+    return double_output(f, [c_void_p, POINTER(c_int)], errcheck=True)
+
+def units_func(f):
+    """
+    Creates a ctypes function prototype for OSR units functions, e.g.,
+    OSRGetAngularUnits, OSRGetLinearUnits.
+    """
+    return double_output(f, [c_void_p, POINTER(c_char_p)], strarg=True)
+
+# Creation & destruction.
+clone_srs = srs_output(std_call('OSRClone'), [c_void_p])
+new_srs = srs_output(std_call('OSRNewSpatialReference'), [c_char_p])
+release_srs = void_output(lgdal.OSRRelease, [c_void_p], errcheck=False)
+destroy_srs = void_output(std_call('OSRDestroySpatialReference'), [c_void_p], errcheck=False)
+srs_validate = void_output(lgdal.OSRValidate, [c_void_p])
+
+# Getting the semi_major, semi_minor, and flattening functions.
+semi_major = srs_double(lgdal.OSRGetSemiMajor)
+semi_minor = srs_double(lgdal.OSRGetSemiMinor)
+invflattening = srs_double(lgdal.OSRGetInvFlattening)
+
+# WKT, PROJ, EPSG, XML importation routines.
+from_wkt = void_output(lgdal.OSRImportFromWkt, [c_void_p, POINTER(c_char_p)])
+from_proj = void_output(lgdal.OSRImportFromProj4, [c_void_p, c_char_p])
+from_epsg = void_output(std_call('OSRImportFromEPSG'), [c_void_p, c_int])
+from_xml = void_output(lgdal.OSRImportFromXML, [c_void_p, c_char_p])
+
+# Morphing to/from ESRI WKT.
+morph_to_esri = void_output(lgdal.OSRMorphToESRI, [c_void_p])
+morph_from_esri = void_output(lgdal.OSRMorphFromESRI, [c_void_p])
+
+# Identifying the EPSG
+identify_epsg = void_output(lgdal.OSRAutoIdentifyEPSG, [c_void_p])
+
+# Getting the angular_units, linear_units functions
+linear_units = units_func(lgdal.OSRGetLinearUnits)
+angular_units = units_func(lgdal.OSRGetAngularUnits)
+
+# For exporting to WKT, PROJ.4, "Pretty" WKT, and XML.
+to_wkt = string_output(std_call('OSRExportToWkt'), [c_void_p, POINTER(c_char_p)])
+to_proj = string_output(std_call('OSRExportToProj4'), [c_void_p, POINTER(c_char_p)])
+to_pretty_wkt = string_output(std_call('OSRExportToPrettyWkt'), [c_void_p, POINTER(c_char_p), c_int], offset=-2)
+
+# Memory leak fixed in GDAL 1.5; still exists in 1.4.
+to_xml = string_output(lgdal.OSRExportToXML, [c_void_p, POINTER(c_char_p), c_char_p], offset=-2)
+
+# String attribute retrival routines.
+get_attr_value = const_string_output(std_call('OSRGetAttrValue'), [c_void_p, c_char_p, c_int])
+get_auth_name = const_string_output(lgdal.OSRGetAuthorityName, [c_void_p, c_char_p])
+get_auth_code = const_string_output(lgdal.OSRGetAuthorityCode, [c_void_p, c_char_p])
+
+# SRS Properties
+isgeographic = int_output(lgdal.OSRIsGeographic, [c_void_p])
+islocal = int_output(lgdal.OSRIsLocal, [c_void_p])
+isprojected = int_output(lgdal.OSRIsProjected, [c_void_p])
+
+# Coordinate transformation
+new_ct= srs_output(std_call('OCTNewCoordinateTransformation'), [c_void_p, c_void_p])
+destroy_ct = void_output(std_call('OCTDestroyCoordinateTransformation'), [c_void_p], errcheck=False)
diff --git a/webapp/django/contrib/gis/gdal/srs.py b/webapp/django/contrib/gis/gdal/srs.py
new file mode 100644
index 0000000..d70e71e
--- /dev/null
+++ b/webapp/django/contrib/gis/gdal/srs.py
@@ -0,0 +1,360 @@
+"""
+  The Spatial Reference class, represensents OGR Spatial Reference objects.
+
+  Example:
+  >>> from django.contrib.gis.gdal import SpatialReference
+  >>> srs = SpatialReference('WGS84')
+  >>> print srs
+  GEOGCS["WGS 84",
+      DATUM["WGS_1984",
+          SPHEROID["WGS 84",6378137,298.257223563,
+              AUTHORITY["EPSG","7030"]],
+          TOWGS84[0,0,0,0,0,0,0],
+          AUTHORITY["EPSG","6326"]],
+      PRIMEM["Greenwich",0,
+          AUTHORITY["EPSG","8901"]],
+      UNIT["degree",0.01745329251994328,
+          AUTHORITY["EPSG","9122"]],
+      AUTHORITY["EPSG","4326"]]
+  >>> print srs.proj
+  +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
+  >>> print srs.ellipsoid
+  (6378137.0, 6356752.3142451793, 298.25722356300003)
+  >>> print srs.projected, srs.geographic
+  False True
+  >>> srs.import_epsg(32140)
+  >>> print srs.name
+  NAD83 / Texas South Central
+"""
+import re
+from types import UnicodeType, TupleType
+from ctypes import byref, c_char_p, c_int, c_void_p
+
+# Getting the error checking routine and exceptions
+from django.contrib.gis.gdal.error import OGRException, SRSException
+from django.contrib.gis.gdal.prototypes.srs import *
+
+#### Spatial Reference class. ####
+class SpatialReference(object):
+    """
+    A wrapper for the OGRSpatialReference object.  According to the GDAL website,
+    the SpatialReference object "provide[s] services to represent coordinate 
+    systems (projections and datums) and to transform between them."
+    """
+
+    # Well-Known Geographical Coordinate System Name
+    _well_known = {'WGS84':4326, 'WGS72':4322, 'NAD27':4267, 'NAD83':4269}
+    _epsg_regex = re.compile('^(EPSG:)?(?P<epsg>\d+)$', re.I)
+    _proj_regex = re.compile(r'^\+proj')
+
+    #### Python 'magic' routines ####
+    def __init__(self, srs_input='', srs_type='wkt'):
+        """
+        Creates a GDAL OSR Spatial Reference object from the given input.
+        The input may be string of OGC Well Known Text (WKT), an integer 
+        EPSG code, a PROJ.4 string, and/or a projection "well known" shorthand 
+        string (one of 'WGS84', 'WGS72', 'NAD27', 'NAD83').
+        """
+        # Intializing pointer and string buffer.
+        self._ptr = None
+        buf = c_char_p('')
+
+        if isinstance(srs_input, basestring):
+            # Encoding to ASCII if unicode passed in.
+            if isinstance(srs_input, UnicodeType):
+                srs_input = srs_input.encode('ascii')
+
+            epsg_m = self._epsg_regex.match(srs_input)
+            proj_m = self._proj_regex.match(srs_input)
+            if epsg_m:
+                # Is this an EPSG well known name?    
+                srs_type = 'epsg'
+                srs_input = int(epsg_m.group('epsg'))
+            elif proj_m:
+                # Is the string a PROJ.4 string?
+                srs_type = 'proj'
+            elif srs_input in self._well_known:
+                # Is this a short-hand well known name?  
+                srs_type = 'epsg'
+                srs_input = self._well_known[srs_input]
+            elif srs_type == 'proj':
+                pass
+            else:
+                # Setting the buffer with WKT, PROJ.4 string, etc.
+                buf = c_char_p(srs_input)
+        elif isinstance(srs_input, int):
+            # EPSG integer code was input.
+            if srs_type != 'epsg': srs_type = 'epsg'
+        elif isinstance(srs_input, c_void_p):
+            srs_type = 'ogr'
+        else:
+            raise TypeError('Invalid SRS type "%s"' % srs_type)
+
+        if srs_type == 'ogr':
+            # SRS input is OGR pointer
+            srs = srs_input
+        else:
+            # Creating a new pointer, using the string buffer.
+            srs = new_srs(buf)
+
+        # If the pointer is NULL, throw an exception.
+        if not srs:
+            raise SRSException('Could not create spatial reference from: %s' % srs_input)
+        else:
+            self._ptr = srs
+
+        # Post-processing if in PROJ.4 or EPSG formats.
+        if srs_type == 'proj': self.import_proj(srs_input)
+        elif srs_type == 'epsg': self.import_epsg(srs_input)
+
+    def __del__(self):
+        "Destroys this spatial reference."
+        if self._ptr: release_srs(self._ptr)
+
+    def __getitem__(self, target):
+        """
+        Returns the value of the given string attribute node, None if the node 
+        doesn't exist.  Can also take a tuple as a parameter, (target, child), 
+        where child is the index of the attribute in the WKT.  For example:
+
+        >>> wkt = 'GEOGCS["WGS 84", DATUM["WGS_1984, ... AUTHORITY["EPSG","4326"]]')
+        >>> srs = SpatialReference(wkt) # could also use 'WGS84', or 4326
+        >>> print srs['GEOGCS']
+        WGS 84
+        >>> print srs['DATUM']
+        WGS_1984
+        >>> print srs['AUTHORITY']
+        EPSG
+        >>> print srs['AUTHORITY', 1] # The authority value
+        4326
+        >>> print srs['TOWGS84', 4] # the fourth value in this wkt
+        0
+        >>> print srs['UNIT|AUTHORITY'] # For the units authority, have to use the pipe symbole.
+        EPSG
+        >>> print srs['UNIT|AUTHORITY', 1] # The authority value for the untis
+        9122
+        """
+        if isinstance(target, TupleType):
+            return self.attr_value(*target)
+        else:
+            return self.attr_value(target)
+
+    def __str__(self):
+        "The string representation uses 'pretty' WKT."
+        return self.pretty_wkt
+
+    #### SpatialReference Methods ####
+    def attr_value(self, target, index=0):
+        """
+        The attribute value for the given target node (e.g. 'PROJCS'). The index
+        keyword specifies an index of the child node to return.
+        """
+        if not isinstance(target, str) or not isinstance(index, int):
+            raise TypeError
+        return get_attr_value(self._ptr, target, index)
+
+    def auth_name(self, target):
+        "Returns the authority name for the given string target node."
+        return get_auth_name(self._ptr, target)
+    
+    def auth_code(self, target):
+        "Returns the authority code for the given string target node."
+        return get_auth_code(self._ptr, target)
+
+    def clone(self):
+        "Returns a clone of this SpatialReference object."
+        return SpatialReference(clone_srs(self._ptr))
+
+    def from_esri(self):
+        "Morphs this SpatialReference from ESRI's format to EPSG."
+        morph_from_esri(self._ptr)
+
+    def identify_epsg(self):
+        """
+        This method inspects the WKT of this SpatialReference, and will
+        add EPSG authority nodes where an EPSG identifier is applicable.
+        """
+        identify_epsg(self._ptr)
+
+    def to_esri(self):
+        "Morphs this SpatialReference to ESRI's format."
+        morph_to_esri(self._ptr)
+
+    def validate(self):
+        "Checks to see if the given spatial reference is valid."
+        srs_validate(self._ptr)
+    
+    #### Name & SRID properties ####
+    @property
+    def name(self):
+        "Returns the name of this Spatial Reference."
+        if self.projected: return self.attr_value('PROJCS')
+        elif self.geographic: return self.attr_value('GEOGCS')
+        elif self.local: return self.attr_value('LOCAL_CS')
+        else: return None
+
+    @property
+    def srid(self):
+        "Returns the SRID of top-level authority, or None if undefined."
+        try:
+            return int(self.attr_value('AUTHORITY', 1))
+        except (TypeError, ValueError):
+            return None
+        
+    #### Unit Properties ####
+    @property
+    def linear_name(self):
+        "Returns the name of the linear units."
+        units, name = linear_units(self._ptr, byref(c_char_p()))
+        return name
+
+    @property
+    def linear_units(self):
+        "Returns the value of the linear units."
+        units, name = linear_units(self._ptr, byref(c_char_p()))
+        return units
+
+    @property
+    def angular_name(self):
+        "Returns the name of the angular units."
+        units, name = angular_units(self._ptr, byref(c_char_p()))
+        return name
+
+    @property
+    def angular_units(self):
+        "Returns the value of the angular units."
+        units, name = angular_units(self._ptr, byref(c_char_p()))
+        return units
+
+    @property
+    def units(self):
+        """
+        Returns a 2-tuple of the units value and the units name, 
+        and will automatically determines whether to return the linear
+        or angular units.
+        """
+        if self.projected or self.local:
+            return linear_units(self._ptr, byref(c_char_p()))
+        elif self.geographic:
+            return angular_units(self._ptr, byref(c_char_p()))
+        else:
+            return (None, None)
+
+    #### Spheroid/Ellipsoid Properties ####
+    @property
+    def ellipsoid(self):
+        """
+        Returns a tuple of the ellipsoid parameters:
+         (semimajor axis, semiminor axis, and inverse flattening)
+        """
+        return (self.semi_major, self.semi_minor, self.inverse_flattening)
+
+    @property
+    def semi_major(self):
+        "Returns the Semi Major Axis for this Spatial Reference."
+        return semi_major(self._ptr, byref(c_int()))
+
+    @property
+    def semi_minor(self):
+        "Returns the Semi Minor Axis for this Spatial Reference."
+        return semi_minor(self._ptr, byref(c_int()))
+
+    @property
+    def inverse_flattening(self):
+        "Returns the Inverse Flattening for this Spatial Reference."
+        return invflattening(self._ptr, byref(c_int()))
+
+    #### Boolean Properties ####
+    @property
+    def geographic(self):
+        """
+        Returns True if this SpatialReference is geographic 
+         (root node is GEOGCS).
+        """
+        return bool(isgeographic(self._ptr))
+
+    @property
+    def local(self):
+        "Returns True if this SpatialReference is local (root node is LOCAL_CS)."
+        return bool(islocal(self._ptr))
+
+    @property
+    def projected(self):
+        """
+        Returns True if this SpatialReference is a projected coordinate system 
+         (root node is PROJCS).
+        """
+        return bool(isprojected(self._ptr))
+
+    #### Import Routines #####
+    def import_wkt(self, wkt):
+        "Imports the Spatial Reference from OGC WKT (string)"
+        from_wkt(self._ptr, byref(c_char_p(wkt)))
+
+    def import_proj(self, proj):
+        "Imports the Spatial Reference from a PROJ.4 string."
+        from_proj(self._ptr, proj)
+
+    def import_epsg(self, epsg):
+        "Imports the Spatial Reference from the EPSG code (an integer)."
+        from_epsg(self._ptr, epsg)
+
+    def import_xml(self, xml):
+        "Imports the Spatial Reference from an XML string."
+        from_xml(self._ptr, xml)
+
+    #### Export Properties ####
+    @property
+    def wkt(self):
+        "Returns the WKT representation of this Spatial Reference."
+        return to_wkt(self._ptr, byref(c_char_p()))
+
+    @property
+    def pretty_wkt(self, simplify=0):
+        "Returns the 'pretty' representation of the WKT."
+        return to_pretty_wkt(self._ptr, byref(c_char_p()), simplify)
+
+    @property
+    def proj(self):
+        "Returns the PROJ.4 representation for this Spatial Reference."
+        return to_proj(self._ptr, byref(c_char_p()))
+
+    @property
+    def proj4(self):
+        "Alias for proj()."
+        return self.proj
+
+    @property
+    def xml(self, dialect=''):
+        "Returns the XML representation of this Spatial Reference."
+        # FIXME: This leaks memory, have to figure out why.
+        return to_xml(self._ptr, byref(c_char_p()), dialect)
+
+    def to_esri(self):
+        "Morphs this SpatialReference to ESRI's format."
+        morph_to_esri(self._ptr)
+
+    def from_esri(self):
+        "Morphs this SpatialReference from ESRI's format to EPSG."
+        morph_from_esri(self._ptr)
+
+class CoordTransform(object):
+    "The coordinate system transformation object."
+
+    def __init__(self, source, target):
+        "Initializes on a source and target SpatialReference objects."
+        self._ptr = None # Initially NULL 
+        if not isinstance(source, SpatialReference) or not isinstance(target, SpatialReference):
+            raise SRSException('source and target must be of type SpatialReference')
+        self._ptr = new_ct(source._ptr, target._ptr)
+        if not self._ptr:
+            raise SRSException('could not intialize CoordTransform object')
+        self._srs1_name = source.name
+        self._srs2_name = target.name
+
+    def __del__(self):
+        "Deletes this Coordinate Transformation object."
+        if self._ptr: destroy_ct(self._ptr)
+
+    def __str__(self):
+        return 'Transform from "%s" to "%s"' % (self._srs1_name, self._srs2_name)
diff --git a/webapp/django/contrib/gis/geos/LICENSE b/webapp/django/contrib/gis/geos/LICENSE
new file mode 100644
index 0000000..84cf485
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2007, Justin Bronn
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    1. Redistributions of source code must retain the above copyright notice, 
+       this list of conditions and the following disclaimer.
+   
+    2. Redistributions in binary form must reproduce the above copyright 
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+
+    3. Neither the name of GEOSGeometry nor the names of its contributors may be used
+       to endorse or promote products derived from this software without
+       specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/webapp/django/contrib/gis/geos/__init__.py b/webapp/django/contrib/gis/geos/__init__.py
new file mode 100644
index 0000000..90e2605
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/__init__.py
@@ -0,0 +1,69 @@
+"""
+ The goal of this module is to be a ctypes wrapper around the GEOS library
+ that will work on both *NIX and Windows systems.  Specifically, this uses
+ the GEOS C api.
+
+ I have several motivations for doing this:
+  (1) The GEOS SWIG wrapper is no longer maintained, and requires the
+      installation of SWIG.
+  (2) The PCL implementation is over 2K+ lines of C and would make
+      PCL a requisite package for the GeoDjango application stack.
+  (3) Windows and Mac compatibility becomes substantially easier, and does not
+      require the additional compilation of PCL or GEOS and SWIG -- all that
+      is needed is a Win32 or Mac compiled GEOS C library (dll or dylib)
+      in a location that Python can read (e.g. 'C:\Python25').
+
+ In summary, I wanted to wrap GEOS in a more maintainable and portable way using
+ only Python and the excellent ctypes library (now standard in Python 2.5).
+
+ In the spirit of loose coupling, this library does not require Django or
+ GeoDjango.  Only the GEOS C library and ctypes are needed for the platform
+ of your choice.
+
+ For more information about GEOS:
+  http://geos.refractions.net
+  
+ For more info about PCL and the discontinuation of the Python GEOS
+ library see Sean Gillies' writeup (and subsequent update) at:
+  http://zcologia.com/news/150/geometries-for-python/
+  http://zcologia.com/news/429/geometries-for-python-update/
+"""
+from django.contrib.gis.geos.base import GEOSGeometry, wkt_regex, hex_regex
+from django.contrib.gis.geos.geometries import Point, LineString, LinearRing, Polygon, HAS_NUMPY
+from django.contrib.gis.geos.collections import GeometryCollection, MultiPoint, MultiLineString, MultiPolygon
+from django.contrib.gis.geos.error import GEOSException, GEOSIndexError
+from django.contrib.gis.geos.libgeos import geos_version, geos_version_info
+
+def fromfile(file_name):
+    """
+    Given a string file name, returns a GEOSGeometry. The file may contain WKB,
+    WKT, or HEX.
+    """
+    fh = open(file_name, 'rb')
+    buf = fh.read()
+    fh.close()
+    if wkt_regex.match(buf) or hex_regex.match(buf):
+        return GEOSGeometry(buf)
+    else:
+        return GEOSGeometry(buffer(buf))
+
+def fromstr(wkt_or_hex, **kwargs):
+    "Given a string value (wkt or hex), returns a GEOSGeometry object."
+    return GEOSGeometry(wkt_or_hex, **kwargs)
+
+def hex_to_wkt(hex):
+    "Converts HEXEWKB into WKT."
+    return GEOSGeometry(hex).wkt
+
+def wkt_to_hex(wkt):
+    "Converts WKT into HEXEWKB."
+    return GEOSGeometry(wkt).hex
+
+def centroid(input):
+    "Returns the centroid of the geometry (given in HEXEWKB)."
+    return GEOSGeometry(input).centroid.wkt
+
+def area(input):
+    "Returns the area of the geometry (given in HEXEWKB)."
+    return GEOSGeometry(input).area
+    
diff --git a/webapp/django/contrib/gis/geos/base.py b/webapp/django/contrib/gis/geos/base.py
new file mode 100644
index 0000000..8200d59
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/base.py
@@ -0,0 +1,608 @@
+"""
+ This module contains the 'base' GEOSGeometry object -- all GEOS Geometries
+ inherit from this object.
+"""
+# Python, ctypes and types dependencies.
+import re
+from ctypes import addressof, byref, c_double, c_size_t
+from types import UnicodeType
+
+# GEOS-related dependencies.
+from django.contrib.gis.geos.coordseq import GEOSCoordSeq
+from django.contrib.gis.geos.error import GEOSException
+from django.contrib.gis.geos.libgeos import GEOM_PTR
+
+# All other functions in this module come from the ctypes 
+# prototypes module -- which handles all interaction with
+# the underlying GEOS library.
+from django.contrib.gis.geos.prototypes import * 
+
+# Trying to import GDAL libraries, if available.  Have to place in
+# try/except since this package may be used outside GeoDjango.
+try:
+    from django.contrib.gis.gdal import OGRGeometry, SpatialReference, GEOJSON
+    HAS_GDAL = True
+except:
+    HAS_GDAL, GEOJSON = False, False
+
+# Regular expression for recognizing HEXEWKB and WKT.  A prophylactic measure
+# to prevent potentially malicious input from reaching the underlying C
+# library.  Not a substitute for good web security programming practices.
+hex_regex = re.compile(r'^[0-9A-F]+$', re.I)
+wkt_regex = re.compile(r'^(SRID=(?P<srid>\d+);)?(?P<wkt>(POINT|LINESTRING|LINEARRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION)[ACEGIMLONPSRUTY\d,\.\-\(\) ]+)$', re.I)
+json_regex = re.compile(r'^\{.+\}$')
+
+class GEOSGeometry(object):
+    "A class that, generally, encapsulates a GEOS geometry."
+
+    # Initially, the geometry pointer is NULL
+    _ptr = None
+
+    #### Python 'magic' routines ####
+    def __init__(self, geo_input, srid=None):
+        """
+        The base constructor for GEOS geometry objects, and may take the 
+        following inputs:
+         
+         * string: WKT
+         * string: HEXEWKB (a PostGIS-specific canonical form)
+         * buffer: WKB
+        
+        The `srid` keyword is used to specify the Source Reference Identifier
+        (SRID) number for this Geometry.  If not set, the SRID will be None.
+        """ 
+        if isinstance(geo_input, basestring):
+            if isinstance(geo_input, UnicodeType):
+                # Encoding to ASCII, WKT or HEXEWKB doesn't need any more.
+                geo_input = geo_input.encode('ascii')
+                            
+            wkt_m = wkt_regex.match(geo_input)
+            if wkt_m:
+                # Handling WKT input.
+                if wkt_m.group('srid'): srid = int(wkt_m.group('srid'))
+                g = from_wkt(wkt_m.group('wkt'))
+            elif hex_regex.match(geo_input):
+                # Handling HEXEWKB input.
+                g = from_hex(geo_input, len(geo_input))
+            elif GEOJSON and json_regex.match(geo_input):
+                # Handling GeoJSON input.
+                wkb_input = str(OGRGeometry(geo_input).wkb)
+                g = from_wkb(wkb_input, len(wkb_input))
+            else:
+                raise ValueError('String or unicode input unrecognized as WKT EWKT, and HEXEWKB.')
+        elif isinstance(geo_input, GEOM_PTR):
+            # When the input is a pointer to a geomtry (GEOM_PTR).
+            g = geo_input
+        elif isinstance(geo_input, buffer):
+            # When the input is a buffer (WKB).
+            wkb_input = str(geo_input)
+            g = from_wkb(wkb_input, len(wkb_input))
+        else:
+            # Invalid geometry type.
+            raise TypeError('Improper geometry input type: %s' % str(type(geo_input)))
+
+        if bool(g):
+            # Setting the pointer object with a valid pointer.
+            self._ptr = g
+        else:
+            raise GEOSException('Could not initialize GEOS Geometry with given input.')
+
+        # Post-initialization setup.
+        self._post_init(srid)
+
+    def _post_init(self, srid):
+        "Helper routine for performing post-initialization setup."
+        # Setting the SRID, if given.
+        if srid and isinstance(srid, int): self.srid = srid
+        
+        # Setting the class type (e.g., Point, Polygon, etc.)
+        self.__class__ = GEOS_CLASSES[self.geom_typeid]
+
+        # Setting the coordinate sequence for the geometry (will be None on 
+        # geometries that do not have coordinate sequences)
+        self._set_cs()
+
+    @property
+    def ptr(self):
+        """
+        Property for controlling access to the GEOS geometry pointer.  Using
+        this raises an exception when the pointer is NULL, thus preventing
+        the C library from attempting to access an invalid memory location.
+        """
+        if self._ptr: 
+            return self._ptr
+        else:
+            raise GEOSException('NULL GEOS pointer encountered; was this geometry modified?')
+
+    def __del__(self):
+        """
+        Destroys this Geometry; in other words, frees the memory used by the
+        GEOS C++ object.
+        """
+        if self._ptr: destroy_geom(self._ptr)
+
+    def __copy__(self):
+        """
+        Returns a clone because the copy of a GEOSGeometry may contain an
+        invalid pointer location if the original is garbage collected.
+        """
+        return self.clone()
+
+    def __deepcopy__(self, memodict):
+        """
+        The `deepcopy` routine is used by the `Node` class of django.utils.tree;
+        thus, the protocol routine needs to be implemented to return correct 
+        copies (clones) of these GEOS objects, which use C pointers.
+        """
+        return self.clone()
+
+    def __str__(self):
+        "WKT is used for the string representation."
+        return self.wkt
+
+    def __repr__(self):
+        "Short-hand representation because WKT may be very large."
+        return '<%s object at %s>' % (self.geom_type, hex(addressof(self.ptr)))
+
+    # Pickling support
+    def __getstate__(self):
+        # The pickled state is simply a tuple of the WKB (in string form)
+        # and the SRID.
+        return str(self.wkb), self.srid
+
+    def __setstate__(self, state):
+        # Instantiating from the tuple state that was pickled.
+        wkb, srid = state
+        ptr = from_wkb(wkb, len(wkb))
+        if not ptr: raise GEOSException('Invalid Geometry loaded from pickled state.')
+        self._ptr = ptr
+        self._post_init(srid)
+
+    # Comparison operators
+    def __eq__(self, other):
+        """
+        Equivalence testing, a Geometry may be compared with another Geometry
+        or a WKT representation.
+        """
+        if isinstance(other, basestring):
+            return self.wkt == other
+        elif isinstance(other, GEOSGeometry):
+            return self.equals_exact(other)
+        else:
+            return False
+
+    def __ne__(self, other):
+        "The not equals operator."
+        return not (self == other)
+
+    ### Geometry set-like operations ###
+    # Thanks to Sean Gillies for inspiration:
+    #  http://lists.gispython.org/pipermail/community/2007-July/001034.html
+    # g = g1 | g2
+    def __or__(self, other):
+        "Returns the union of this Geometry and the other."
+        return self.union(other)
+
+    # g = g1 & g2
+    def __and__(self, other):
+        "Returns the intersection of this Geometry and the other."
+        return self.intersection(other)
+
+    # g = g1 - g2
+    def __sub__(self, other):
+        "Return the difference this Geometry and the other."
+        return self.difference(other)
+
+    # g = g1 ^ g2
+    def __xor__(self, other):
+        "Return the symmetric difference of this Geometry and the other."
+        return self.sym_difference(other)
+
+    #### Coordinate Sequence Routines ####
+    @property
+    def has_cs(self):
+        "Returns True if this Geometry has a coordinate sequence, False if not."
+        # Only these geometries are allowed to have coordinate sequences.
+        if isinstance(self, (Point, LineString, LinearRing)):
+            return True
+        else:
+            return False
+
+    def _set_cs(self):
+        "Sets the coordinate sequence for this Geometry."
+        if self.has_cs:
+            self._cs = GEOSCoordSeq(get_cs(self.ptr), self.hasz)
+        else:
+            self._cs = None
+
+    @property
+    def coord_seq(self):
+        "Returns a clone of the coordinate sequence for this Geometry."
+        if self.has_cs:
+            return self._cs.clone()
+
+    #### Geometry Info ####
+    @property
+    def geom_type(self):
+        "Returns a string representing the Geometry type, e.g. 'Polygon'"
+        return geos_type(self.ptr)
+
+    @property
+    def geom_typeid(self):
+        "Returns an integer representing the Geometry type."
+        return geos_typeid(self.ptr)
+
+    @property
+    def num_geom(self):
+        "Returns the number of geometries in the Geometry."
+        return get_num_geoms(self.ptr)
+
+    @property
+    def num_coords(self):
+        "Returns the number of coordinates in the Geometry."
+        return get_num_coords(self.ptr)
+
+    @property
+    def num_points(self):
+        "Returns the number points, or coordinates, in the Geometry."
+        return self.num_coords
+
+    @property
+    def dims(self):
+        "Returns the dimension of this Geometry (0=point, 1=line, 2=surface)."
+        return get_dims(self.ptr)
+
+    def normalize(self):
+        "Converts this Geometry to normal form (or canonical form)."
+        return geos_normalize(self.ptr)
+
+    #### Unary predicates ####
+    @property
+    def empty(self):
+        """
+        Returns a boolean indicating whether the set of points in this Geometry 
+        are empty.
+        """
+        return geos_isempty(self.ptr)
+
+    @property
+    def hasz(self):
+        "Returns whether the geometry has a 3D dimension."
+        return geos_hasz(self.ptr)
+
+    @property
+    def ring(self):
+        "Returns whether or not the geometry is a ring."
+        return geos_isring(self.ptr)
+
+    @property
+    def simple(self):
+        "Returns false if the Geometry not simple."
+        return geos_issimple(self.ptr)
+
+    @property
+    def valid(self):
+        "This property tests the validity of this Geometry."
+        return geos_isvalid(self.ptr)
+
+    #### Binary predicates. ####
+    def contains(self, other):
+        "Returns true if other.within(this) returns true."
+        return geos_contains(self.ptr, other.ptr)
+
+    def crosses(self, other):
+        """
+        Returns true if the DE-9IM intersection matrix for the two Geometries
+        is T*T****** (for a point and a curve,a point and an area or a line and
+        an area) 0******** (for two curves).
+        """
+        return geos_crosses(self.ptr, other.ptr)
+
+    def disjoint(self, other):
+        """
+        Returns true if the DE-9IM intersection matrix for the two Geometries
+        is FF*FF****.
+        """
+        return geos_disjoint(self.ptr, other.ptr)
+
+    def equals(self, other):
+        """
+        Returns true if the DE-9IM intersection matrix for the two Geometries 
+        is T*F**FFF*.
+        """
+        return geos_equals(self.ptr, other.ptr)
+
+    def equals_exact(self, other, tolerance=0):
+        """
+        Returns true if the two Geometries are exactly equal, up to a
+        specified tolerance.
+        """
+        return geos_equalsexact(self.ptr, other.ptr, float(tolerance))
+
+    def intersects(self, other):
+        "Returns true if disjoint returns false."
+        return geos_intersects(self.ptr, other.ptr)
+
+    def overlaps(self, other):
+        """
+        Returns true if the DE-9IM intersection matrix for the two Geometries
+        is T*T***T** (for two points or two surfaces) 1*T***T** (for two curves).
+        """
+        return geos_overlaps(self.ptr, other.ptr)
+
+    def relate_pattern(self, other, pattern):
+        """
+        Returns true if the elements in the DE-9IM intersection matrix for the
+        two Geometries match the elements in pattern.
+        """
+        if not isinstance(pattern, str) or len(pattern) > 9:
+            raise GEOSException('invalid intersection matrix pattern')
+        return geos_relatepattern(self.ptr, other.ptr, pattern)
+
+    def touches(self, other):
+        """
+        Returns true if the DE-9IM intersection matrix for the two Geometries
+        is FT*******, F**T***** or F***T****.
+        """
+        return geos_touches(self.ptr, other.ptr)
+
+    def within(self, other):
+        """
+        Returns true if the DE-9IM intersection matrix for the two Geometries
+        is T*F**F***.
+        """
+        return geos_within(self.ptr, other.ptr)
+
+    #### SRID Routines ####
+    def get_srid(self):
+        "Gets the SRID for the geometry, returns None if no SRID is set."
+        s = geos_get_srid(self.ptr)
+        if s == 0: return None
+        else: return s
+
+    def set_srid(self, srid):
+        "Sets the SRID for the geometry."
+        geos_set_srid(self.ptr, srid)
+    srid = property(get_srid, set_srid)
+
+    #### Output Routines ####
+    @property
+    def ewkt(self):
+        "Returns the EWKT (WKT + SRID) of the Geometry."
+        if self.get_srid(): return 'SRID=%s;%s' % (self.srid, self.wkt)
+        else: return self.wkt
+
+    @property
+    def wkt(self):
+        "Returns the WKT (Well-Known Text) of the Geometry."
+        return to_wkt(self.ptr)
+
+    @property
+    def hex(self):
+        """
+        Returns the HEX of the Geometry -- please note that the SRID is not
+        included in this representation, because the GEOS C library uses
+        -1 by default, even if the SRID is set.
+        """
+        # A possible faster, all-python, implementation: 
+        #  str(self.wkb).encode('hex')
+        return to_hex(self.ptr, byref(c_size_t()))
+
+    @property
+    def json(self):
+        """
+        Returns GeoJSON representation of this Geometry if GDAL 1.5+ 
+        is installed.
+        """
+        if GEOJSON: return self.ogr.json
+    geojson = json
+
+    @property
+    def wkb(self):
+        "Returns the WKB of the Geometry as a buffer."
+        bin = to_wkb(self.ptr, byref(c_size_t()))
+        return buffer(bin)
+
+    @property
+    def kml(self):
+        "Returns the KML representation of this Geometry."
+        gtype = self.geom_type
+        return '<%s>%s</%s>' % (gtype, self.coord_seq.kml, gtype)
+
+    #### GDAL-specific output routines ####
+    @property
+    def ogr(self):
+        "Returns the OGR Geometry for this Geometry."
+        if HAS_GDAL:
+            if self.srid:
+                return OGRGeometry(self.wkb, self.srid)
+            else:
+                return OGRGeometry(self.wkb)
+        else:
+            return None
+
+    @property
+    def srs(self):
+        "Returns the OSR SpatialReference for SRID of this Geometry."
+        if HAS_GDAL and self.srid:
+            return SpatialReference(self.srid)
+        else:
+            return None
+
+    @property
+    def crs(self):
+        "Alias for `srs` property."
+        return self.srs
+
+    def transform(self, ct, clone=False):
+        """
+        Requires GDAL. Transforms the geometry according to the given 
+        transformation object, which may be an integer SRID, and WKT or 
+        PROJ.4 string. By default, the geometry is transformed in-place and 
+        nothing is returned. However if the `clone` keyword is set, then this 
+        geometry will not be modified and a transformed clone will be returned
+        instead.
+        """
+        srid = self.srid
+        if HAS_GDAL and srid:
+            g = OGRGeometry(self.wkb, srid)
+            g.transform(ct)
+            wkb = str(g.wkb)
+            ptr = from_wkb(wkb, len(wkb))
+            if clone: 
+                # User wants a cloned transformed geometry returned.
+                return GEOSGeometry(ptr, srid=g.srid)
+            if ptr:
+                # Reassigning pointer, and performing post-initialization setup
+                # again due to the reassignment.
+                destroy_geom(self.ptr)
+                self._ptr = ptr
+                self._post_init(g.srid)
+            else:
+                raise GEOSException('Transformed WKB was invalid.')
+
+    #### Topology Routines ####
+    def _topology(self, gptr):
+        "Helper routine to return Geometry from the given pointer."
+        return GEOSGeometry(gptr, srid=self.srid)
+
+    @property
+    def boundary(self):
+        "Returns the boundary as a newly allocated Geometry object."
+        return self._topology(geos_boundary(self.ptr))
+
+    def buffer(self, width, quadsegs=8):
+        """
+        Returns a geometry that represents all points whose distance from this
+        Geometry is less than or equal to distance. Calculations are in the
+        Spatial Reference System of this Geometry. The optional third parameter sets
+        the number of segment used to approximate a quarter circle (defaults to 8).
+        (Text from PostGIS documentation at ch. 6.1.3)
+        """
+        return self._topology(geos_buffer(self.ptr, width, quadsegs))
+
+    @property
+    def centroid(self):
+        """
+        The centroid is equal to the centroid of the set of component Geometries
+        of highest dimension (since the lower-dimension geometries contribute zero
+        "weight" to the centroid).
+        """
+        return self._topology(geos_centroid(self.ptr))
+
+    @property
+    def convex_hull(self):
+        """
+        Returns the smallest convex Polygon that contains all the points 
+        in the Geometry.
+        """
+        return self._topology(geos_convexhull(self.ptr))
+
+    def difference(self, other):
+        """
+        Returns a Geometry representing the points making up this Geometry
+        that do not make up other.
+        """
+        return self._topology(geos_difference(self.ptr, other.ptr))
+
+    @property
+    def envelope(self):
+        "Return the envelope for this geometry (a polygon)."
+        return self._topology(geos_envelope(self.ptr))
+
+    def intersection(self, other):
+        "Returns a Geometry representing the points shared by this Geometry and other."
+        return self._topology(geos_intersection(self.ptr, other.ptr))
+
+    @property
+    def point_on_surface(self):
+        "Computes an interior point of this Geometry."
+        return self._topology(geos_pointonsurface(self.ptr))
+
+    def relate(self, other):
+        "Returns the DE-9IM intersection matrix for this Geometry and the other."
+        return geos_relate(self.ptr, other.ptr)
+
+    def simplify(self, tolerance=0.0, preserve_topology=False):
+        """
+        Returns the Geometry, simplified using the Douglas-Peucker algorithm
+        to the specified tolerance (higher tolerance => less points).  If no
+        tolerance provided, defaults to 0.
+
+        By default, this function does not preserve topology - e.g. polygons can 
+        be split, collapse to lines or disappear holes can be created or 
+        disappear, and lines can cross. By specifying preserve_topology=True, 
+        the result will have the same dimension and number of components as the 
+        input. This is significantly slower.         
+        """
+        if preserve_topology:
+            return self._topology(geos_preservesimplify(self.ptr, tolerance))
+        else:
+            return self._topology(geos_simplify(self.ptr, tolerance))
+
+    def sym_difference(self, other):
+        """
+        Returns a set combining the points in this Geometry not in other,
+        and the points in other not in this Geometry.
+        """
+        return self._topology(geos_symdifference(self.ptr, other.ptr))
+
+    def union(self, other):
+        "Returns a Geometry representing all the points in this Geometry and other."
+        return self._topology(geos_union(self.ptr, other.ptr))
+
+    #### Other Routines ####
+    @property
+    def area(self):
+        "Returns the area of the Geometry."
+        return geos_area(self.ptr, byref(c_double()))
+
+    def distance(self, other):
+        """
+        Returns the distance between the closest points on this Geometry
+        and the other. Units will be in those of the coordinate system of
+        the Geometry.
+        """
+        if not isinstance(other, GEOSGeometry): 
+            raise TypeError('distance() works only on other GEOS Geometries.')
+        return geos_distance(self.ptr, other.ptr, byref(c_double()))
+
+    @property
+    def extent(self):
+        """
+        Returns the extent of this geometry as a 4-tuple, consisting of
+        (xmin, ymin, xmax, ymax).
+        """
+        env = self.envelope
+        if isinstance(env, Point):
+            xmin, ymin = env.tuple
+            xmax, ymax = xmin, ymin
+        else:
+            xmin, ymin = env[0][0]
+            xmax, ymax = env[0][2]
+        return (xmin, ymin, xmax, ymax)
+
+    @property
+    def length(self):
+        """
+        Returns the length of this Geometry (e.g., 0 for point, or the
+        circumfrence of a Polygon).
+        """
+        return geos_length(self.ptr, byref(c_double()))
+    
+    def clone(self):
+        "Clones this Geometry."
+        return GEOSGeometry(geom_clone(self.ptr), srid=self.srid)
+
+# Class mapping dictionary
+from django.contrib.gis.geos.geometries import Point, Polygon, LineString, LinearRing
+from django.contrib.gis.geos.collections import GeometryCollection, MultiPoint, MultiLineString, MultiPolygon
+GEOS_CLASSES = {0 : Point,
+                1 : LineString,
+                2 : LinearRing,
+                3 : Polygon,
+                4 : MultiPoint,
+                5 : MultiLineString,
+                6 : MultiPolygon,
+                7 : GeometryCollection,
+                }
diff --git a/webapp/django/contrib/gis/geos/collections.py b/webapp/django/contrib/gis/geos/collections.py
new file mode 100644
index 0000000..a69b2e7
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/collections.py
@@ -0,0 +1,105 @@
+"""
+ This module houses the Geometry Collection objects:
+ GeometryCollection, MultiPoint, MultiLineString, and MultiPolygon
+"""
+from ctypes import c_int, c_uint, byref
+from types import TupleType, ListType
+from django.contrib.gis.geos.base import GEOSGeometry
+from django.contrib.gis.geos.error import GEOSException, GEOSIndexError
+from django.contrib.gis.geos.geometries import Point, LineString, LinearRing, Polygon
+from django.contrib.gis.geos.libgeos import get_pointer_arr, GEOM_PTR
+from django.contrib.gis.geos.prototypes import create_collection, destroy_geom, geom_clone, geos_typeid, get_cs, get_geomn
+
+class GeometryCollection(GEOSGeometry):
+    _allowed = (Point, LineString, LinearRing, Polygon)
+    _typeid = 7
+
+    def __init__(self, *args, **kwargs):
+        "Initializes a Geometry Collection from a sequence of Geometry objects."
+
+        # Checking the arguments
+        if not args:
+            raise TypeError, 'Must provide at least one Geometry to initialize %s.' % self.__class__.__name__
+
+        if len(args) == 1: 
+            # If only one geometry provided or a list of geometries is provided
+            #  in the first argument.
+            if isinstance(args[0], (TupleType, ListType)):
+                init_geoms = args[0]
+            else:
+                init_geoms = args
+        else:
+            init_geoms = args
+
+        # Ensuring that only the permitted geometries are allowed in this collection
+        if False in [isinstance(geom, self._allowed) for geom in init_geoms]:
+            raise TypeError('Invalid Geometry type encountered in the arguments.')
+
+        # Creating the geometry pointer array.
+        ngeoms = len(init_geoms)
+        geoms = get_pointer_arr(ngeoms)
+        for i in xrange(ngeoms): geoms[i] = geom_clone(init_geoms[i].ptr)
+        super(GeometryCollection, self).__init__(create_collection(c_int(self._typeid), byref(geoms), c_uint(ngeoms)), **kwargs)
+
+    def __getitem__(self, index):
+        "Returns the Geometry from this Collection at the given index (0-based)."
+        # Checking the index and returning the corresponding GEOS geometry.
+        self._checkindex(index)
+        return GEOSGeometry(geom_clone(get_geomn(self.ptr, index)), srid=self.srid)
+
+    def __setitem__(self, index, geom):
+        "Sets the Geometry at the specified index."
+        self._checkindex(index)
+        if not isinstance(geom, self._allowed):
+            raise TypeError('Incompatible Geometry for collection.')
+        
+        ngeoms = len(self)
+        geoms = get_pointer_arr(ngeoms)
+        for i in xrange(ngeoms):
+            if i == index:
+                geoms[i] = geom_clone(geom.ptr)
+            else:
+                geoms[i] = geom_clone(get_geomn(self.ptr, i))
+        
+        # Creating a new collection, and destroying the contents of the previous poiner.
+        prev_ptr = self.ptr
+        srid = self.srid
+        self._ptr = create_collection(c_int(self._typeid), byref(geoms), c_uint(ngeoms))
+        if srid: self.srid = srid
+        destroy_geom(prev_ptr)
+
+    def __iter__(self):
+        "Iterates over each Geometry in the Collection."
+        for i in xrange(len(self)):
+            yield self.__getitem__(i)
+
+    def __len__(self):
+        "Returns the number of geometries in this Collection."
+        return self.num_geom
+
+    def _checkindex(self, index):
+        "Checks the given geometry index."
+        if index < 0 or index >= self.num_geom:
+            raise GEOSIndexError('invalid GEOS Geometry index: %s' % str(index))
+
+    @property
+    def kml(self):
+        "Returns the KML for this Geometry Collection."
+        return '<MultiGeometry>%s</MultiGeometry>' % ''.join([g.kml for g in self])
+
+    @property
+    def tuple(self):
+        "Returns a tuple of all the coordinates in this Geometry Collection"
+        return tuple([g.tuple for g in self])
+    coords = tuple
+
+# MultiPoint, MultiLineString, and MultiPolygon class definitions.
+class MultiPoint(GeometryCollection): 
+    _allowed = Point
+    _typeid = 4
+class MultiLineString(GeometryCollection): 
+    _allowed = (LineString, LinearRing)
+    _typeid = 5
+class MultiPolygon(GeometryCollection): 
+    _allowed = Polygon
+    _typeid = 6
diff --git a/webapp/django/contrib/gis/geos/coordseq.py b/webapp/django/contrib/gis/geos/coordseq.py
new file mode 100644
index 0000000..bc0c479
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/coordseq.py
@@ -0,0 +1,164 @@
+"""
+ This module houses the GEOSCoordSeq object, which is used internally
+ by GEOSGeometry to house the actual coordinates of the Point,
+ LineString, and LinearRing geometries.
+"""
+from ctypes import c_double, c_uint, byref
+from types import ListType, TupleType
+from django.contrib.gis.geos.error import GEOSException, GEOSIndexError
+from django.contrib.gis.geos.libgeos import CS_PTR, HAS_NUMPY
+from django.contrib.gis.geos.prototypes import cs_clone, cs_getdims, cs_getordinate, cs_getsize, cs_setordinate
+if HAS_NUMPY: from numpy import ndarray
+
+class GEOSCoordSeq(object):
+    "The internal representation of a list of coordinates inside a Geometry."
+
+    #### Python 'magic' routines ####
+    def __init__(self, ptr, z=False):
+        "Initializes from a GEOS pointer."
+        if not isinstance(ptr, CS_PTR):
+            raise TypeError('Coordinate sequence should initialize with a CS_PTR.')
+        self._ptr = ptr
+        self._z = z
+
+    def __iter__(self):
+        "Iterates over each point in the coordinate sequence."
+        for i in xrange(self.size):
+            yield self[i]
+
+    def __len__(self):
+        "Returns the number of points in the coordinate sequence."
+        return int(self.size)
+
+    def __str__(self):
+        "Returns the string representation of the coordinate sequence."
+        return str(self.tuple)
+
+    def __getitem__(self, index):
+        "Returns the coordinate sequence value at the given index."
+        coords = [self.getX(index), self.getY(index)]
+        if self.dims == 3 and self._z:
+            coords.append(self.getZ(index))
+        return tuple(coords)
+
+    def __setitem__(self, index, value):
+        "Sets the coordinate sequence value at the given index."
+        # Checking the input value
+        if isinstance(value, (ListType, TupleType)):
+            pass
+        elif HAS_NUMPY and isinstance(value, ndarray):
+            pass
+        else:
+            raise TypeError('Must set coordinate with a sequence (list, tuple, or numpy array).')
+        # Checking the dims of the input
+        if self.dims == 3 and self._z:
+            n_args = 3
+            set_3d = True
+        else:
+            n_args = 2
+            set_3d = False
+        if len(value) != n_args:
+            raise TypeError('Dimension of value does not match.')
+        # Setting the X, Y, Z
+        self.setX(index, value[0])
+        self.setY(index, value[1])
+        if set_3d: self.setZ(index, value[2])
+
+    #### Internal Routines ####
+    def _checkindex(self, index):
+        "Checks the given index."
+        sz = self.size
+        if (sz < 1) or (index < 0) or (index >= sz):
+            raise GEOSIndexError('invalid GEOS Geometry index: %s' % str(index))
+
+    def _checkdim(self, dim):
+        "Checks the given dimension."
+        if dim < 0 or dim > 2:
+            raise GEOSException('invalid ordinate dimension "%d"' % dim)
+
+    @property
+    def ptr(self):
+        """
+        Property for controlling access to coordinate sequence pointer,
+        preventing attempted access to a NULL memory location.
+        """
+        if self._ptr: return self._ptr
+        else: raise GEOSException('NULL coordinate sequence pointer encountered.')
+
+    #### Ordinate getting and setting routines ####
+    def getOrdinate(self, dimension, index):
+        "Returns the value for the given dimension and index."
+        self._checkindex(index)
+        self._checkdim(dimension)
+        return cs_getordinate(self.ptr, index, dimension, byref(c_double()))
+
+    def setOrdinate(self, dimension, index, value):
+        "Sets the value for the given dimension and index."
+        self._checkindex(index)
+        self._checkdim(dimension)
+        cs_setordinate(self.ptr, index, dimension, value)
+
+    def getX(self, index):
+        "Get the X value at the index."
+        return self.getOrdinate(0, index)
+
+    def setX(self, index, value):
+        "Set X with the value at the given index."
+        self.setOrdinate(0, index, value)
+
+    def getY(self, index):
+        "Get the Y value at the given index."
+        return self.getOrdinate(1, index)
+
+    def setY(self, index, value):
+        "Set Y with the value at the given index."
+        self.setOrdinate(1, index, value)
+
+    def getZ(self, index):
+        "Get Z with the value at the given index."
+        return self.getOrdinate(2, index)
+
+    def setZ(self, index, value):
+        "Set Z with the value at the given index."
+        self.setOrdinate(2, index, value)
+
+    ### Dimensions ###
+    @property
+    def size(self):
+        "Returns the size of this coordinate sequence."
+        return cs_getsize(self.ptr, byref(c_uint()))
+
+    @property
+    def dims(self):
+        "Returns the dimensions of this coordinate sequence."
+        return cs_getdims(self.ptr, byref(c_uint()))
+
+    @property
+    def hasz(self):
+        """
+        Returns whether this coordinate sequence is 3D.  This property value is
+        inherited from the parent Geometry.
+        """
+        return self._z
+
+    ### Other Methods ###
+    def clone(self):
+        "Clones this coordinate sequence."
+        return GEOSCoordSeq(cs_clone(self.ptr), self.hasz)
+
+    @property
+    def kml(self):
+        "Returns the KML representation for the coordinates."
+        # Getting the substitution string depending on whether the coordinates have
+        #  a Z dimension.
+        if self.hasz: substr = '%s,%s,%s '
+        else: substr = '%s,%s,0 '
+        return '<coordinates>%s</coordinates>' % \
+            ''.join([substr % self[i] for i in xrange(len(self))]).strip()
+
+    @property
+    def tuple(self):
+        "Returns a tuple version of this coordinate sequence."
+        n = self.size
+        if n == 1: return self[0]
+        else: return tuple([self[i] for i in xrange(n)])
diff --git a/webapp/django/contrib/gis/geos/error.py b/webapp/django/contrib/gis/geos/error.py
new file mode 100644
index 0000000..46bdfe6
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/error.py
@@ -0,0 +1,20 @@
+"""
+ This module houses the GEOS exceptions, specifically, GEOSException and
+ GEOSGeometryIndexError.
+"""
+
+class GEOSException(Exception):
+    "The base GEOS exception, indicates a GEOS-related error."
+    pass
+
+class GEOSIndexError(GEOSException, KeyError):
+    """
+    This exception is raised when an invalid index is encountered, and has
+    the 'silent_variable_feature' attribute set to true.  This ensures that
+    django's templates proceed to use the next lookup type gracefully when
+    an Exception is raised.  Fixes ticket #4740.
+    """
+    # "If, during the method lookup, a method raises an exception, the exception
+    #  will be propagated, unless the exception has an attribute 
+    #  `silent_variable_failure` whose value is True." -- Django template docs.
+    silent_variable_failure = True
diff --git a/webapp/django/contrib/gis/geos/geometries.py b/webapp/django/contrib/gis/geos/geometries.py
new file mode 100644
index 0000000..c5420e9
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/geometries.py
@@ -0,0 +1,391 @@
+"""
+ This module houses the Point, LineString, LinearRing, and Polygon OGC
+ geometry classes.  All geometry classes in this module inherit from 
+ GEOSGeometry.
+"""
+from ctypes import c_uint, byref
+from django.contrib.gis.geos.base import GEOSGeometry
+from django.contrib.gis.geos.coordseq import GEOSCoordSeq
+from django.contrib.gis.geos.error import GEOSException, GEOSIndexError
+from django.contrib.gis.geos.libgeos import get_pointer_arr, GEOM_PTR, HAS_NUMPY
+from django.contrib.gis.geos.prototypes import *
+if HAS_NUMPY: from numpy import ndarray, array
+
+class Point(GEOSGeometry):
+
+    def __init__(self, x, y=None, z=None, srid=None):
+        """
+        The Point object may be initialized with either a tuple, or individual
+        parameters.
+        
+        For Example:
+        >>> p = Point((5, 23)) # 2D point, passed in as a tuple
+        >>> p = Point(5, 23, 8) # 3D point, passed in with individual parameters
+        """
+
+        if isinstance(x, (tuple, list)):
+            # Here a tuple or list was passed in under the `x` parameter.
+            ndim = len(x)
+            if ndim < 2 or ndim > 3:
+                raise TypeError('Invalid sequence parameter: %s' % str(x))
+            coords = x
+        elif isinstance(x, (int, float, long)) and isinstance(y, (int, float, long)):
+            # Here X, Y, and (optionally) Z were passed in individually, as parameters.
+            if isinstance(z, (int, float, long)):
+                ndim = 3
+                coords = [x, y, z]
+            else:
+                ndim = 2
+                coords = [x, y]
+        else:
+            raise TypeError('Invalid parameters given for Point initialization.')
+
+        # Creating the coordinate sequence, and setting X, Y, [Z]
+        cs = create_cs(c_uint(1), c_uint(ndim))
+        cs_setx(cs, 0, coords[0])
+        cs_sety(cs, 0, coords[1])
+        if ndim == 3: cs_setz(cs, 0, coords[2])
+
+        # Initializing using the address returned from the GEOS 
+        #  createPoint factory.
+        super(Point, self).__init__(create_point(cs), srid=srid)
+
+    def __len__(self):
+        "Returns the number of dimensions for this Point (either 0, 2 or 3)."
+        if self.empty: return 0
+        if self.hasz: return 3
+        else: return 2
+        
+    def get_x(self):
+        "Returns the X component of the Point."
+        return self._cs.getOrdinate(0, 0)
+
+    def set_x(self, value):
+        "Sets the X component of the Point."
+        self._cs.setOrdinate(0, 0, value)
+
+    def get_y(self):
+        "Returns the Y component of the Point."
+        return self._cs.getOrdinate(1, 0)
+
+    def set_y(self, value):
+        "Sets the Y component of the Point."
+        self._cs.setOrdinate(1, 0, value)
+
+    def get_z(self):
+        "Returns the Z component of the Point."
+        if self.hasz:
+            return self._cs.getOrdinate(2, 0)
+        else:
+            return None
+
+    def set_z(self, value):
+        "Sets the Z component of the Point."
+        if self.hasz:
+            self._cs.setOrdinate(2, 0, value)
+        else:
+            raise GEOSException('Cannot set Z on 2D Point.')
+
+    # X, Y, Z properties
+    x = property(get_x, set_x)
+    y = property(get_y, set_y)
+    z = property(get_z, set_z)
+
+    ### Tuple setting and retrieval routines. ###
+    def get_coords(self):
+        "Returns a tuple of the point."
+        return self._cs.tuple
+
+    def set_coords(self, tup):
+        "Sets the coordinates of the point with the given tuple."
+        self._cs[0] = tup
+    
+    # The tuple and coords properties
+    tuple = property(get_coords, set_coords)
+    coords = tuple
+
+class LineString(GEOSGeometry):
+
+    #### Python 'magic' routines ####
+    def __init__(self, *args, **kwargs):
+        """
+        Initializes on the given sequence -- may take lists, tuples, NumPy arrays
+        of X,Y pairs, or Point objects.  If Point objects are used, ownership is
+        _not_ transferred to the LineString object.
+
+        Examples:
+         ls = LineString((1, 1), (2, 2))
+         ls = LineString([(1, 1), (2, 2)])
+         ls = LineString(array([(1, 1), (2, 2)]))
+         ls = LineString(Point(1, 1), Point(2, 2))
+        """
+        # If only one argument provided, set the coords array appropriately
+        if len(args) == 1: coords = args[0]
+        else: coords = args
+
+        if isinstance(coords, (tuple, list)):
+            # Getting the number of coords and the number of dimensions -- which
+            #  must stay the same, e.g., no LineString((1, 2), (1, 2, 3)).
+            ncoords = len(coords)
+            if coords: ndim = len(coords[0])
+            else: raise TypeError('Cannot initialize on empty sequence.')
+            self._checkdim(ndim)
+            # Incrementing through each of the coordinates and verifying
+            for i in xrange(1, ncoords):
+                if not isinstance(coords[i], (tuple, list, Point)):
+                    raise TypeError('each coordinate should be a sequence (list or tuple)')
+                if len(coords[i]) != ndim: raise TypeError('Dimension mismatch.')
+            numpy_coords = False
+        elif HAS_NUMPY and isinstance(coords, ndarray):
+            shape = coords.shape # Using numpy's shape.
+            if len(shape) != 2: raise TypeError('Too many dimensions.')
+            self._checkdim(shape[1])
+            ncoords = shape[0]
+            ndim = shape[1]
+            numpy_coords = True
+        else:
+            raise TypeError('Invalid initialization input for LineStrings.')
+
+        # Creating a coordinate sequence object because it is easier to 
+        #  set the points using GEOSCoordSeq.__setitem__().
+        cs = GEOSCoordSeq(create_cs(ncoords, ndim), z=bool(ndim==3))
+        for i in xrange(ncoords):
+            if numpy_coords: cs[i] = coords[i,:]
+            elif isinstance(coords[i], Point): cs[i] = coords[i].tuple
+            else: cs[i] = coords[i]        
+
+        # Getting the correct initialization function
+        if kwargs.get('ring', False):
+            func = create_linearring
+        else:
+            func = create_linestring
+
+        # If SRID was passed in with the keyword arguments
+        srid = kwargs.get('srid', None)
+       
+        # Calling the base geometry initialization with the returned pointer 
+        #  from the function.
+        super(LineString, self).__init__(func(cs.ptr), srid=srid)
+
+    def __getitem__(self, index):
+        "Gets the point at the specified index."
+        return self._cs[index]
+
+    def __setitem__(self, index, value):
+        "Sets the point at the specified index, e.g., line_str[0] = (1, 2)."
+        self._cs[index] = value
+
+    def __iter__(self):
+        "Allows iteration over this LineString."
+        for i in xrange(len(self)):
+            yield self[i]
+
+    def __len__(self):
+        "Returns the number of points in this LineString."
+        return len(self._cs)
+
+    def _checkdim(self, dim):
+        if dim not in (2, 3): raise TypeError('Dimension mismatch.')
+
+    #### Sequence Properties ####
+    @property
+    def tuple(self):
+        "Returns a tuple version of the geometry from the coordinate sequence."
+        return self._cs.tuple
+    coords = tuple
+
+    def _listarr(self, func):
+        """
+        Internal routine that returns a sequence (list) corresponding with
+        the given function.  Will return a numpy array if possible.
+        """
+        lst = [func(i) for i in xrange(len(self))]
+        if HAS_NUMPY: return array(lst) # ARRRR!
+        else: return lst
+
+    @property
+    def array(self):
+        "Returns a numpy array for the LineString."
+        return self._listarr(self._cs.__getitem__)
+
+    @property
+    def x(self):
+        "Returns a list or numpy array of the X variable."
+        return self._listarr(self._cs.getX)
+    
+    @property
+    def y(self):
+        "Returns a list or numpy array of the Y variable."
+        return self._listarr(self._cs.getY)
+
+    @property
+    def z(self):
+        "Returns a list or numpy array of the Z variable."
+        if not self.hasz: return None
+        else: return self._listarr(self._cs.getZ)
+
+# LinearRings are LineStrings used within Polygons.
+class LinearRing(LineString):
+    def __init__(self, *args, **kwargs):
+        "Overriding the initialization function to set the ring keyword."
+        kwargs['ring'] = True # Setting the ring keyword argument to True
+        super(LinearRing, self).__init__(*args, **kwargs)
+
+class Polygon(GEOSGeometry):
+
+    def __init__(self, *args, **kwargs):
+        """
+        Initializes on an exterior ring and a sequence of holes (both
+        instances may be either LinearRing instances, or a tuple/list
+        that may be constructed into a LinearRing).
+        
+        Examples of initialization, where shell, hole1, and hole2 are 
+        valid LinearRing geometries:
+        >>> poly = Polygon(shell, hole1, hole2)
+        >>> poly = Polygon(shell, (hole1, hole2))
+
+        Example where a tuple parameters are used:
+        >>> poly = Polygon(((0, 0), (0, 10), (10, 10), (0, 10), (0, 0)), 
+                           ((4, 4), (4, 6), (6, 6), (6, 4), (4, 4)))
+        """
+        if not args:
+            raise TypeError('Must provide at list one LinearRing instance to initialize Polygon.')
+
+        # Getting the ext_ring and init_holes parameters from the argument list
+        ext_ring = args[0]
+        init_holes = args[1:]
+        n_holes = len(init_holes)
+
+        # If initialized as Polygon(shell, (LinearRing, LinearRing)) [for backward-compatibility]
+        if n_holes == 1 and isinstance(init_holes[0], (tuple, list)) and \
+                (len(init_holes[0]) == 0 or isinstance(init_holes[0][0], LinearRing)): 
+            init_holes = init_holes[0]
+            n_holes = len(init_holes)
+
+        # Ensuring the exterior ring and holes parameters are LinearRing objects
+        # or may be instantiated into LinearRings.
+        ext_ring = self._construct_ring(ext_ring, 'Exterior parameter must be a LinearRing or an object that can initialize a LinearRing.')
+        holes_list = [] # Create new list, cause init_holes is a tuple.
+        for i in xrange(n_holes):
+            holes_list.append(self._construct_ring(init_holes[i], 'Holes parameter must be a sequence of LinearRings or objects that can initialize to LinearRings'))
+
+        # Why another loop?  Because if a TypeError is raised, cloned pointers will
+        # be around that can't be cleaned up.
+        holes = get_pointer_arr(n_holes)
+        for i in xrange(n_holes): holes[i] = geom_clone(holes_list[i].ptr)
+                      
+        # Getting the shell pointer address.
+        shell = geom_clone(ext_ring.ptr)
+
+        # Calling with the GEOS createPolygon factory.
+        super(Polygon, self).__init__(create_polygon(shell, byref(holes), c_uint(n_holes)), **kwargs)
+
+    def __getitem__(self, index):
+        """
+        Returns the ring at the specified index.  The first index, 0, will 
+        always return the exterior ring.  Indices > 0 will return the 
+        interior ring at the given index (e.g., poly[1] and poly[2] would
+        return the first and second interior ring, respectively).
+        """
+        if index == 0:
+            return self.exterior_ring
+        else:
+            # Getting the interior ring, have to subtract 1 from the index.
+            return self.get_interior_ring(index-1) 
+
+    def __setitem__(self, index, ring):
+        "Sets the ring at the specified index with the given ring."
+        # Checking the index and ring parameters.
+        self._checkindex(index)
+        if not isinstance(ring, LinearRing):
+            raise TypeError('must set Polygon index with a LinearRing object')
+
+        # Getting the shell
+        if index == 0:
+            shell = geom_clone(ring.ptr)
+        else:
+            shell = geom_clone(get_extring(self.ptr))
+
+        # Getting the interior rings (holes)
+        nholes = len(self)-1
+        if nholes > 0:
+            holes = get_pointer_arr(nholes)
+            for i in xrange(nholes):
+                if i == (index-1):
+                    holes[i] = geom_clone(ring.ptr)
+                else:
+                    holes[i] = geom_clone(get_intring(self.ptr, i))
+            holes_param = byref(holes)
+        else:
+            holes_param = None
+         
+        # Getting the current pointer, replacing with the newly constructed
+        # geometry, and destroying the old geometry.
+        prev_ptr = self.ptr
+        srid = self.srid
+        self._ptr = create_polygon(shell, holes_param, c_uint(nholes))
+        if srid: self.srid = srid
+        destroy_geom(prev_ptr)
+
+    def __iter__(self):
+        "Iterates over each ring in the polygon."
+        for i in xrange(len(self)):
+            yield self[i]
+
+    def __len__(self):
+        "Returns the number of rings in this Polygon."
+        return self.num_interior_rings + 1
+
+    def _checkindex(self, index):
+        "Internal routine for checking the given ring index."
+        if index < 0 or index >= len(self):
+            raise GEOSIndexError('invalid Polygon ring index: %s' % index)
+
+    def _construct_ring(self, param, msg=''):
+        "Helper routine for trying to construct a ring from the given parameter."
+        if isinstance(param, LinearRing): return param
+        try:
+            ring = LinearRing(param)
+            return ring
+        except TypeError:
+            raise TypeError(msg)
+
+    def get_interior_ring(self, ring_i):
+        """
+        Gets the interior ring at the specified index, 0 is for the first 
+        interior ring, not the exterior ring.
+        """
+        self._checkindex(ring_i+1)
+        return GEOSGeometry(geom_clone(get_intring(self.ptr, ring_i)), srid=self.srid)
+                                                        
+    #### Polygon Properties ####
+    @property
+    def num_interior_rings(self):
+        "Returns the number of interior rings."
+        # Getting the number of rings
+        return get_nrings(self.ptr)
+
+    def get_ext_ring(self):
+        "Gets the exterior ring of the Polygon."
+        return GEOSGeometry(geom_clone(get_extring(self.ptr)), srid=self.srid)
+
+    def set_ext_ring(self, ring):
+        "Sets the exterior ring of the Polygon."
+        self[0] = ring
+
+    # properties for the exterior ring/shell
+    exterior_ring = property(get_ext_ring, set_ext_ring)
+    shell = exterior_ring
+    
+    @property
+    def tuple(self):
+        "Gets the tuple for each ring in this Polygon."
+        return tuple([self[i].tuple for i in xrange(len(self))])
+    coords = tuple
+
+    @property
+    def kml(self):
+        "Returns the KML representation of this Polygon."
+        inner_kml = ''.join(["<innerBoundaryIs>%s</innerBoundaryIs>" % self[i+1].kml 
+                             for i in xrange(self.num_interior_rings)])
+        return "<Polygon><outerBoundaryIs>%s</outerBoundaryIs>%s</Polygon>" % (self[0].kml, inner_kml)
diff --git a/webapp/django/contrib/gis/geos/libgeos.py b/webapp/django/contrib/gis/geos/libgeos.py
new file mode 100644
index 0000000..d2990a6
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/libgeos.py
@@ -0,0 +1,126 @@
+"""
+ This module houses the ctypes initialization procedures, as well
+ as the notice and error handler function callbacks (get called
+ when an error occurs in GEOS).
+
+ This module also houses GEOS Pointer utilities, including
+ get_pointer_arr(), and GEOM_PTR.
+"""
+import atexit, os, re, sys
+from ctypes import c_char_p, Structure, CDLL, CFUNCTYPE, POINTER
+from ctypes.util import find_library
+from django.contrib.gis.geos.error import GEOSException
+
+# NumPy supported?
+try:
+    from numpy import array, ndarray
+    HAS_NUMPY = True
+except ImportError:
+    HAS_NUMPY = False
+
+# Custom library path set?
+try:
+    from django.conf import settings
+    lib_path = settings.GEOS_LIBRARY_PATH
+except (AttributeError, EnvironmentError, ImportError):
+    lib_path = None
+
+# Setting the appropriate names for the GEOS-C library.
+if lib_path:
+    lib_names = None
+elif os.name == 'nt':
+    # Windows NT libraries
+    lib_names = ['libgeos_c-1']
+elif os.name == 'posix':
+    # *NIX libraries
+    lib_names = ['geos_c']
+else:
+    raise GEOSException('Unsupported OS "%s"' % os.name)
+
+# Using the ctypes `find_library` utility to find the the path to the GEOS 
+# shared library.  This is better than manually specifiying each library name 
+# and extension (e.g., libgeos_c.[so|so.1|dylib].).
+if lib_names: 
+    for lib_name in lib_names:
+        lib_path = find_library(lib_name)
+        if not lib_path is None: break
+
+# No GEOS library could be found.
+if lib_path is None: 
+    raise GEOSException('Could not find the GEOS library (tried "%s"). '
+                        'Try setting GEOS_LIBRARY_PATH in your settings.' % 
+                        '", "'.join(lib_names))
+
+# Getting the GEOS C library.  The C interface (CDLL) is used for
+#  both *NIX and Windows.
+# See the GEOS C API source code for more details on the library function calls:
+#  http://geos.refractions.net/ro/doxygen_docs/html/geos__c_8h-source.html
+lgeos = CDLL(lib_path)
+
+# The notice and error handler C function callback definitions.
+#  Supposed to mimic the GEOS message handler (C below):
+#  "typedef void (*GEOSMessageHandler)(const char *fmt, ...);"
+NOTICEFUNC = CFUNCTYPE(None, c_char_p, c_char_p)
+def notice_h(fmt, lst, output_h=sys.stdout):
+    try:
+        warn_msg = fmt % lst
+    except:
+        warn_msg = fmt 
+    output_h.write('GEOS_NOTICE: %s\n' % warn_msg)
+notice_h = NOTICEFUNC(notice_h)
+
+ERRORFUNC = CFUNCTYPE(None, c_char_p, c_char_p)
+def error_h(fmt, lst, output_h=sys.stderr):
+    try:
+        err_msg = fmt % lst
+    except:
+        err_msg = fmt
+    output_h.write('GEOS_ERROR: %s\n' % err_msg)
+error_h = ERRORFUNC(error_h)
+
+# The initGEOS routine should be called first, however, that routine takes
+#  the notice and error functions as parameters.  Here is the C code that
+#  is wrapped:
+#  "extern void GEOS_DLL initGEOS(GEOSMessageHandler notice_function, GEOSMessageHandler error_function);"
+lgeos.initGEOS(notice_h, error_h)
+
+#### GEOS Geometry C data structures, and utility functions. ####
+
+# Opaque GEOS geometry structures, used for GEOM_PTR and CS_PTR
+class GEOSGeom_t(Structure): pass
+class GEOSCoordSeq_t(Structure): pass
+
+# Pointers to opaque GEOS geometry structures.
+GEOM_PTR = POINTER(GEOSGeom_t)
+CS_PTR = POINTER(GEOSCoordSeq_t)
+
+# Used specifically by the GEOSGeom_createPolygon and GEOSGeom_createCollection 
+#  GEOS routines
+def get_pointer_arr(n):
+    "Gets a ctypes pointer array (of length `n`) for GEOSGeom_t opaque pointer."
+    GeomArr = GEOM_PTR * n
+    return GeomArr()
+
+# Returns the string version of the GEOS library. Have to set the restype 
+# explicitly to c_char_p to ensure compatibility accross 32 and 64-bit platforms.
+geos_version = lgeos.GEOSversion
+geos_version.argtypes = None   
+geos_version.restype = c_char_p
+
+# Regular expression should be able to parse version strings such as
+# '3.0.0rc4-CAPI-1.3.3', or '3.0.0-CAPI-1.4.1'
+version_regex = re.compile(r'^(?P<version>\d+\.\d+\.\d+)(rc(?P<release_candidate>\d+))?-CAPI-(?P<capi_version>\d+\.\d+\.\d+)$')
+def geos_version_info():
+    """
+    Returns a dictionary containing the various version metadata parsed from
+    the GEOS version string, including the version number, whether the version
+    is a release candidate (and what number release candidate), and the C API
+    version.
+    """
+    ver = geos_version()
+    m = version_regex.match(ver)
+    if not m: raise GEOSException('Could not parse version info string "%s"' % ver)
+    return dict((key, m.group(key)) for key in ('version', 'release_candidate', 'capi_version'))
+
+# Calling the finishGEOS() upon exit of the interpreter.
+atexit.register(lgeos.finishGEOS)
diff --git a/webapp/django/contrib/gis/geos/prototypes/__init__.py b/webapp/django/contrib/gis/geos/prototypes/__init__.py
new file mode 100644
index 0000000..b4639f3
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/prototypes/__init__.py
@@ -0,0 +1,33 @@
+"""
+ This module contains all of the GEOS ctypes function prototypes. Each
+ prototype handles the interaction between the GEOS library and Python
+ via ctypes.
+"""
+
+# Coordinate sequence routines.
+from django.contrib.gis.geos.prototypes.coordseq import create_cs, get_cs, \
+    cs_clone, cs_getordinate, cs_setordinate, cs_getx, cs_gety, cs_getz, \
+    cs_setx, cs_sety, cs_setz, cs_getsize, cs_getdims
+
+# Geometry routines.
+from django.contrib.gis.geos.prototypes.geom import from_hex, from_wkb, from_wkt, \
+    create_point, create_linestring, create_linearring, create_polygon, create_collection, \
+    destroy_geom, get_extring, get_intring, get_nrings, get_geomn, geom_clone, \
+    geos_normalize, geos_type, geos_typeid, geos_get_srid, geos_set_srid, \
+    get_dims, get_num_coords, get_num_geoms, \
+    to_hex, to_wkb, to_wkt
+
+# Miscellaneous routines.
+from django.contrib.gis.geos.prototypes.misc import geos_area, geos_distance, geos_length
+
+# Predicates
+from django.contrib.gis.geos.prototypes.predicates import geos_hasz, geos_isempty, \
+    geos_isring, geos_issimple, geos_isvalid, geos_contains, geos_crosses, \
+    geos_disjoint, geos_equals, geos_equalsexact, geos_intersects, \
+    geos_intersects, geos_overlaps, geos_relatepattern, geos_touches, geos_within
+
+# Topology routines
+from django.contrib.gis.geos.prototypes.topology import \
+    geos_boundary, geos_buffer, geos_centroid, geos_convexhull, geos_difference, \
+    geos_envelope, geos_intersection, geos_pointonsurface, geos_preservesimplify, \
+    geos_simplify, geos_symdifference, geos_union, geos_relate
diff --git a/webapp/django/contrib/gis/geos/prototypes/coordseq.py b/webapp/django/contrib/gis/geos/prototypes/coordseq.py
new file mode 100644
index 0000000..3b5fb2c
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/prototypes/coordseq.py
@@ -0,0 +1,82 @@
+from ctypes import c_double, c_int, c_uint, POINTER
+from django.contrib.gis.geos.libgeos import lgeos, GEOM_PTR, CS_PTR
+from django.contrib.gis.geos.prototypes.errcheck import last_arg_byref, GEOSException
+
+## Error-checking routines specific to coordinate sequences. ##
+def check_cs_ptr(result, func, cargs):
+    "Error checking on routines that return Geometries."
+    if not result:
+        raise GEOSException('Error encountered checking Coordinate Sequence returned from GEOS C function "%s".' % func.__name__)
+    return result
+
+def check_cs_op(result, func, cargs):
+    "Checks the status code of a coordinate sequence operation."
+    if result == 0:
+        raise GEOSException('Could not set value on coordinate sequence')
+    else:
+        return result
+
+def check_cs_get(result, func, cargs):
+    "Checking the coordinate sequence retrieval."
+    check_cs_op(result, func, cargs)
+    # Object in by reference, return its value.
+    return last_arg_byref(cargs)
+
+## Coordinate sequence prototype generation functions. ##
+def cs_int(func):
+    "For coordinate sequence routines that return an integer."
+    func.argtypes = [CS_PTR, POINTER(c_uint)]
+    func.restype = c_int
+    func.errcheck = check_cs_get
+    return func
+
+def cs_operation(func, ordinate=False, get=False):
+    "For coordinate sequence operations."
+    if get:
+        # Get routines get double parameter passed-in by reference.
+        func.errcheck = check_cs_get
+        dbl_param = POINTER(c_double)
+    else:
+        func.errcheck = check_cs_op
+        dbl_param = c_double
+
+    if ordinate:
+        # Get/Set ordinate routines have an extra uint parameter.
+        func.argtypes = [CS_PTR, c_uint, c_uint, dbl_param]
+    else:
+        func.argtypes = [CS_PTR, c_uint, dbl_param]
+
+    func.restype = c_int
+    return func
+
+def cs_output(func, argtypes):
+    "For routines that return a coordinate sequence."
+    func.argtypes = argtypes
+    func.restype = CS_PTR
+    func.errcheck = check_cs_ptr
+    return func
+
+## Coordinate Sequence ctypes prototypes ##
+
+# Coordinate Sequence constructors & cloning.
+cs_clone = cs_output(lgeos.GEOSCoordSeq_clone, [CS_PTR])
+create_cs = cs_output(lgeos.GEOSCoordSeq_create, [c_uint, c_uint])
+get_cs = cs_output(lgeos.GEOSGeom_getCoordSeq, [GEOM_PTR])
+
+# Getting, setting ordinate
+cs_getordinate = cs_operation(lgeos.GEOSCoordSeq_getOrdinate, ordinate=True, get=True)
+cs_setordinate = cs_operation(lgeos.GEOSCoordSeq_setOrdinate, ordinate=True)
+
+# For getting, x, y, z
+cs_getx = cs_operation(lgeos.GEOSCoordSeq_getX, get=True)
+cs_gety = cs_operation(lgeos.GEOSCoordSeq_getY, get=True)
+cs_getz = cs_operation(lgeos.GEOSCoordSeq_getZ, get=True)
+
+# For setting, x, y, z
+cs_setx = cs_operation(lgeos.GEOSCoordSeq_setX)
+cs_sety = cs_operation(lgeos.GEOSCoordSeq_setY)
+cs_setz = cs_operation(lgeos.GEOSCoordSeq_setZ)
+
+# These routines return size & dimensions.
+cs_getsize = cs_int(lgeos.GEOSCoordSeq_getSize)
+cs_getdims = cs_int(lgeos.GEOSCoordSeq_getDimensions)
diff --git a/webapp/django/contrib/gis/geos/prototypes/errcheck.py b/webapp/django/contrib/gis/geos/prototypes/errcheck.py
new file mode 100644
index 0000000..6fcc1a7
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/prototypes/errcheck.py
@@ -0,0 +1,76 @@
+"""
+ Error checking functions for GEOS ctypes prototype functions.
+"""
+import os
+from ctypes import string_at, CDLL
+from ctypes.util import find_library
+from django.contrib.gis.geos.error import GEOSException
+
+# Getting the C library, needed to free the string pointers
+# returned from GEOS.
+if os.name == 'nt':
+    libc_name = 'msvcrt'
+else:
+    libc_name = 'libc'
+libc = CDLL(find_library(libc_name))
+
+### ctypes error checking routines ###
+def last_arg_byref(args):
+    "Returns the last C argument's by reference value."
+    return args[-1]._obj.value
+        
+def check_dbl(result, func, cargs):
+    "Checks the status code and returns the double value passed in by reference."
+    # Checking the status code
+    if result != 1: return None
+    # Double passed in by reference, return its value.
+    return last_arg_byref(cargs)
+
+def check_geom(result, func, cargs):
+    "Error checking on routines that return Geometries."
+    if not result: 
+        raise GEOSException('Error encountered checking Geometry returned from GEOS C function "%s".' % func.__name__)
+    return result
+
+def check_minus_one(result, func, cargs):
+    "Error checking on routines that should not return -1."
+    if result == -1:
+        raise GEOSException('Error encountered in GEOS C function "%s".' % func.__name__)
+    else:
+        return result
+
+def check_predicate(result, func, cargs):
+    "Error checking for unary/binary predicate functions."
+    val = ord(result) # getting the ordinal from the character
+    if val == 1: return True
+    elif val == 0: return False
+    else:
+        raise GEOSException('Error encountered on GEOS C predicate function "%s".' % func.__name__)
+
+def check_sized_string(result, func, cargs):
+    "Error checking for routines that return explicitly sized strings."
+    if not result:
+        raise GEOSException('Invalid string pointer returned by GEOS C function "%s"' % func.__name__)
+    # A c_size_t object is passed in by reference for the second
+    # argument on these routines, and its needed to determine the
+    # correct size.
+    s = string_at(result, last_arg_byref(cargs))
+    libc.free(result)
+    return s
+
+def check_string(result, func, cargs):
+    "Error checking for routines that return strings."
+    if not result: raise GEOSException('Error encountered checking string return value in GEOS C function "%s".' % func.__name__)
+    # Getting the string value at the pointer address.
+    s = string_at(result)
+    # Freeing the memory allocated by the GEOS library.
+    libc.free(result)
+    return s
+
+def check_zero(result, func, cargs):
+    "Error checking on routines that should not return 0."
+    if result == 0:
+        raise GEOSException('Error encountered in GEOS C function "%s".' % func.__name__)
+    else:
+        return result
+                            
diff --git a/webapp/django/contrib/gis/geos/prototypes/geom.py b/webapp/django/contrib/gis/geos/prototypes/geom.py
new file mode 100644
index 0000000..e5942a5
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/prototypes/geom.py
@@ -0,0 +1,111 @@
+from ctypes import c_char_p, c_int, c_size_t, c_uint, POINTER
+from django.contrib.gis.geos.libgeos import lgeos, CS_PTR, GEOM_PTR
+from django.contrib.gis.geos.prototypes.errcheck import \
+    check_geom, check_minus_one, check_sized_string, check_string, check_zero
+
+### ctypes generation functions ###
+def bin_constructor(func):
+    "Generates a prototype for binary construction (HEX, WKB) GEOS routines."
+    func.argtypes = [c_char_p, c_size_t]
+    func.restype = GEOM_PTR
+    func.errcheck = check_geom
+    return func
+
+# HEX & WKB output
+def bin_output(func):
+    "Generates a prototype for the routines that return a a sized string."
+    func.argtypes = [GEOM_PTR, POINTER(c_size_t)]
+    func.errcheck = check_sized_string
+    return func
+
+def geom_output(func, argtypes):
+    "For GEOS routines that return a geometry."
+    if argtypes: func.argtypes = argtypes
+    func.restype = GEOM_PTR
+    func.errcheck = check_geom
+    return func
+
+def geom_index(func):
+    "For GEOS routines that return geometries from an index."
+    return geom_output(func, [GEOM_PTR, c_int])
+
+def int_from_geom(func, zero=False):
+    "Argument is a geometry, return type is an integer."
+    func.argtypes = [GEOM_PTR]
+    func.restype = c_int
+    if zero: 
+        func.errcheck = check_zero
+    else:
+        func.errcheck = check_minus_one
+    return func
+
+def string_from_geom(func):
+    "Argument is a Geometry, return type is a string."
+    # We do _not_ specify an argument type because we want just an
+    # address returned from the function.
+    func.argtypes = [GEOM_PTR]
+    func.errcheck = check_string
+    return func
+
+### ctypes prototypes ###
+
+# TODO: Tell all users to use GEOS 3.0.0, instead of the release 
+#  candidates, and use the new Reader and Writer APIs (e.g.,
+#  GEOSWKT[Reader|Writer], GEOSWKB[Reader|Writer]).  A good time
+#  to do this will be when Refractions releases a Windows PostGIS
+#  installer using GEOS 3.0.0.
+
+# Creation routines from WKB, HEX, WKT
+from_hex = bin_constructor(lgeos.GEOSGeomFromHEX_buf)
+from_wkb = bin_constructor(lgeos.GEOSGeomFromWKB_buf)
+from_wkt = geom_output(lgeos.GEOSGeomFromWKT, [c_char_p])
+
+# Output routines
+to_hex = bin_output(lgeos.GEOSGeomToHEX_buf)
+to_wkb = bin_output(lgeos.GEOSGeomToWKB_buf)
+to_wkt = string_from_geom(lgeos.GEOSGeomToWKT)
+
+# The GEOS geometry type, typeid, num_coordites and number of geometries
+geos_normalize = int_from_geom(lgeos.GEOSNormalize)
+geos_type = string_from_geom(lgeos.GEOSGeomType)
+geos_typeid = int_from_geom(lgeos.GEOSGeomTypeId)
+get_dims = int_from_geom(lgeos.GEOSGeom_getDimensions, zero=True)
+get_num_coords = int_from_geom(lgeos.GEOSGetNumCoordinates)
+get_num_geoms = int_from_geom(lgeos.GEOSGetNumGeometries)
+
+# Geometry creation factories
+create_point = geom_output(lgeos.GEOSGeom_createPoint, [CS_PTR])
+create_linestring = geom_output(lgeos.GEOSGeom_createLineString, [CS_PTR]) 
+create_linearring = geom_output(lgeos.GEOSGeom_createLinearRing, [CS_PTR])
+
+# Polygon and collection creation routines are special and will not
+# have their argument types defined.
+create_polygon = geom_output(lgeos.GEOSGeom_createPolygon, None)
+create_collection = geom_output(lgeos.GEOSGeom_createCollection, None)
+
+# Ring routines
+get_extring = geom_output(lgeos.GEOSGetExteriorRing, [GEOM_PTR])
+get_intring = geom_index(lgeos.GEOSGetInteriorRingN)
+get_nrings = int_from_geom(lgeos.GEOSGetNumInteriorRings)
+
+# Collection Routines
+get_geomn = geom_index(lgeos.GEOSGetGeometryN)
+
+# Cloning
+geom_clone = lgeos.GEOSGeom_clone
+geom_clone.argtypes = [GEOM_PTR]
+geom_clone.restype = GEOM_PTR
+
+# Destruction routine.
+destroy_geom = lgeos.GEOSGeom_destroy
+destroy_geom.argtypes = [GEOM_PTR]
+destroy_geom.restype = None
+
+# SRID routines
+geos_get_srid = lgeos.GEOSGetSRID
+geos_get_srid.argtypes = [GEOM_PTR]
+geos_get_srid.restype = c_int
+
+geos_set_srid = lgeos.GEOSSetSRID
+geos_set_srid.argtypes = [GEOM_PTR, c_int]
+geos_set_srid.restype = None
diff --git a/webapp/django/contrib/gis/geos/prototypes/misc.py b/webapp/django/contrib/gis/geos/prototypes/misc.py
new file mode 100644
index 0000000..255da91
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/prototypes/misc.py
@@ -0,0 +1,27 @@
+"""
+ This module is for the miscellaneous GEOS routines, particularly the
+ ones that return the area, distance, and length.
+"""
+from ctypes import c_int, c_double, POINTER
+from django.contrib.gis.geos.libgeos import lgeos, GEOM_PTR
+from django.contrib.gis.geos.prototypes.errcheck import check_dbl
+
+### ctypes generator function ###
+def dbl_from_geom(func, num_geom=1):
+    """
+    Argument is a Geometry, return type is double that is passed
+    in by reference as the last argument.
+    """
+    argtypes = [GEOM_PTR for i in xrange(num_geom)]
+    argtypes += [POINTER(c_double)]
+    func.argtypes = argtypes
+    func.restype = c_int # Status code returned
+    func.errcheck = check_dbl
+    return func
+
+### ctypes prototypes ###
+
+# Area, distance, and length prototypes.
+geos_area = dbl_from_geom(lgeos.GEOSArea)
+geos_distance = dbl_from_geom(lgeos.GEOSDistance, num_geom=2)
+geos_length = dbl_from_geom(lgeos.GEOSLength)
diff --git a/webapp/django/contrib/gis/geos/prototypes/predicates.py b/webapp/django/contrib/gis/geos/prototypes/predicates.py
new file mode 100644
index 0000000..45240d9
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/prototypes/predicates.py
@@ -0,0 +1,43 @@
+"""
+ This module houses the GEOS ctypes prototype functions for the 
+ unary and binary predicate operations on geometries.
+"""
+from ctypes import c_char, c_char_p, c_double
+from django.contrib.gis.geos.libgeos import lgeos, GEOM_PTR
+from django.contrib.gis.geos.prototypes.errcheck import check_predicate
+
+## Binary & unary predicate functions ##
+def binary_predicate(func, *args):
+    "For GEOS binary predicate functions."
+    argtypes = [GEOM_PTR, GEOM_PTR]
+    if args: argtypes += args
+    func.argtypes = argtypes
+    func.restype = c_char
+    func.errcheck = check_predicate
+    return func
+
+def unary_predicate(func):
+    "For GEOS unary predicate functions."
+    func.argtypes = [GEOM_PTR]
+    func.restype = c_char
+    func.errcheck = check_predicate
+    return func
+
+## Unary Predicates ##
+geos_hasz = unary_predicate(lgeos.GEOSHasZ)
+geos_isempty = unary_predicate(lgeos.GEOSisEmpty)
+geos_isring = unary_predicate(lgeos.GEOSisRing)
+geos_issimple = unary_predicate(lgeos.GEOSisSimple)
+geos_isvalid = unary_predicate(lgeos.GEOSisValid)
+
+## Binary Predicates ##
+geos_contains = binary_predicate(lgeos.GEOSContains)
+geos_crosses = binary_predicate(lgeos.GEOSCrosses)
+geos_disjoint = binary_predicate(lgeos.GEOSDisjoint)
+geos_equals = binary_predicate(lgeos.GEOSEquals)
+geos_equalsexact = binary_predicate(lgeos.GEOSEqualsExact, c_double)
+geos_intersects = binary_predicate(lgeos.GEOSIntersects)
+geos_overlaps = binary_predicate(lgeos.GEOSOverlaps)
+geos_relatepattern = binary_predicate(lgeos.GEOSRelatePattern, c_char_p)
+geos_touches = binary_predicate(lgeos.GEOSTouches)
+geos_within = binary_predicate(lgeos.GEOSWithin)
diff --git a/webapp/django/contrib/gis/geos/prototypes/topology.py b/webapp/django/contrib/gis/geos/prototypes/topology.py
new file mode 100644
index 0000000..70cf900
--- /dev/null
+++ b/webapp/django/contrib/gis/geos/prototypes/topology.py
@@ -0,0 +1,35 @@
+"""
+ This module houses the GEOS ctypes prototype functions for the 
+ topological operations on geometries.
+"""
+from ctypes import c_char_p, c_double, c_int
+from django.contrib.gis.geos.libgeos import lgeos, GEOM_PTR
+from django.contrib.gis.geos.prototypes.errcheck import check_geom, check_string
+
+def topology(func, *args):
+    "For GEOS unary topology functions."
+    argtypes = [GEOM_PTR]
+    if args: argtypes += args
+    func.argtypes = argtypes
+    func.restype = GEOM_PTR
+    func.errcheck = check_geom
+    return func
+
+### Topology Routines ###
+geos_boundary = topology(lgeos.GEOSBoundary)
+geos_buffer = topology(lgeos.GEOSBuffer, c_double, c_int)
+geos_centroid = topology(lgeos.GEOSGetCentroid)
+geos_convexhull = topology(lgeos.GEOSConvexHull)
+geos_difference = topology(lgeos.GEOSDifference, GEOM_PTR)
+geos_envelope = topology(lgeos.GEOSEnvelope)
+geos_intersection = topology(lgeos.GEOSIntersection, GEOM_PTR)
+geos_pointonsurface = topology(lgeos.GEOSPointOnSurface)
+geos_preservesimplify = topology(lgeos.GEOSTopologyPreserveSimplify, c_double)
+geos_simplify = topology(lgeos.GEOSSimplify, c_double)
+geos_symdifference = topology(lgeos.GEOSSymDifference, GEOM_PTR)
+geos_union = topology(lgeos.GEOSUnion, GEOM_PTR)
+
+# GEOSRelate returns a string, not a geometry.
+geos_relate = lgeos.GEOSRelate
+geos_relate.argtypes = [GEOM_PTR, GEOM_PTR]
+geos_relate.errcheck = check_string
diff --git a/webapp/django/contrib/gis/management/__init__.py b/webapp/django/contrib/gis/management/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/management/__init__.py
diff --git a/webapp/django/contrib/gis/management/base.py b/webapp/django/contrib/gis/management/base.py
new file mode 100644
index 0000000..c998063
--- /dev/null
+++ b/webapp/django/contrib/gis/management/base.py
@@ -0,0 +1,15 @@
+from django.core.management.base import BaseCommand, CommandError
+
+class ArgsCommand(BaseCommand):
+    """
+    Command class for commands that take multiple arguments.
+    """
+    args = '<arg arg ...>'
+
+    def handle(self, *args, **options):
+        if not args:
+            raise CommandError('Must provide the following arguments: %s' % self.args)
+        return self.handle_args(*args, **options)
+
+    def handle_args(self, *args, **options):
+        raise NotImplementedError()
diff --git a/webapp/django/contrib/gis/management/commands/__init__.py b/webapp/django/contrib/gis/management/commands/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/management/commands/__init__.py
diff --git a/webapp/django/contrib/gis/management/commands/inspectdb.py b/webapp/django/contrib/gis/management/commands/inspectdb.py
new file mode 100644
index 0000000..d4fe210
--- /dev/null
+++ b/webapp/django/contrib/gis/management/commands/inspectdb.py
@@ -0,0 +1,188 @@
+"""
+ This overrides the traditional `inspectdb` command so that geographic databases
+ may be introspected.
+"""
+
+from django.core.management.commands.inspectdb import Command as InspectCommand
+from django.contrib.gis.db.backend import SpatialBackend
+
+class Command(InspectCommand):
+
+    # Mapping from lower-case OGC type to the corresponding GeoDjango field.
+    geofield_mapping = {'point' : 'PointField',
+                        'linestring' : 'LineStringField',
+                        'polygon' : 'PolygonField',
+                        'multipoint' : 'MultiPointField',
+                        'multilinestring' : 'MultiLineStringField',
+                        'multipolygon' : 'MultiPolygonField',
+                        'geometrycollection' : 'GeometryCollectionField',
+                        'geometry' : 'GeometryField',
+                        }
+
+    def geometry_columns(self):
+        """
+        Returns a datastructure of metadata information associated with the
+        `geometry_columns` (or equivalent) table.
+        """
+        # The `geo_cols` is a dictionary data structure that holds information
+        # about any geographic columns in the database.
+        geo_cols = {}
+        def add_col(table, column, coldata):
+            if table in geo_cols:
+                # If table already has a geometry column.
+                geo_cols[table][column] = coldata
+            else:
+                # Otherwise, create a dictionary indexed by column.
+                geo_cols[table] = { column : coldata }
+
+        if SpatialBackend.name == 'postgis':
+            # PostGIS holds all geographic column information in the `geometry_columns` table.
+            from django.contrib.gis.models import GeometryColumns
+            for geo_col in GeometryColumns.objects.all():
+                table = geo_col.f_table_name
+                column = geo_col.f_geometry_column
+                coldata = {'type' : geo_col.type, 'srid' : geo_col.srid, 'dim' : geo_col.coord_dimension}
+                add_col(table, column, coldata)
+            return geo_cols
+        elif SpatialBackend.name == 'mysql':
+            # On MySQL have to get all table metadata before hand; this means walking through
+            # each table and seeing if any column types are spatial.  Can't detect this with
+            # `cursor.description` (what the introspection module does) because all spatial types
+            # have the same integer type (255 for GEOMETRY).
+            from django.db import connection
+            cursor = connection.cursor()
+            cursor.execute('SHOW TABLES')
+            tables = cursor.fetchall();
+            for table_tup in tables:
+                table = table_tup[0]
+                table_desc = cursor.execute('DESCRIBE `%s`' % table)
+                col_info = cursor.fetchall()
+                for column, typ, null, key, default, extra in col_info:
+                    if typ in self.geofield_mapping: add_col(table, column, {'type' : typ})
+            return geo_cols
+        else:
+            # TODO: Oracle (has incomplete `geometry_columns` -- have to parse
+            #  SDO SQL to get specific type, SRID, and other information).
+            raise NotImplementedError('Geographic database inspection not available.')
+
+    def handle_inspection(self):
+        "Overloaded from Django's version to handle geographic database tables."
+        from django.db import connection
+        import keyword
+
+        geo_cols = self.geometry_columns()
+
+        table2model = lambda table_name: table_name.title().replace('_', '')
+
+        cursor = connection.cursor()
+        yield "# This is an auto-generated Django model module."
+        yield "# You'll have to do the following manually to clean this up:"
+        yield "#     * Rearrange models' order"
+        yield "#     * Make sure each model has one field with primary_key=True"
+        yield "# Feel free to rename the models, but don't rename db_table values or field names."
+        yield "#"
+        yield "# Also note: You'll have to insert the output of 'django-admin.py sqlcustom [appname]'"
+        yield "# into your database."
+        yield ''
+        yield 'from django.contrib.gis.db import models'
+        yield ''
+        for table_name in connection.introspection.get_table_list(cursor):
+            # Getting the geographic table dictionary.
+            geo_table = geo_cols.get(table_name, {})
+
+            yield 'class %s(models.Model):' % table2model(table_name)
+            try:
+                relations = connection.introspection.get_relations(cursor, table_name)
+            except NotImplementedError:
+                relations = {}
+            try:
+                indexes = connection.introspection.get_indexes(cursor, table_name)
+            except NotImplementedError:
+                indexes = {}
+            for i, row in enumerate(connection.introspection.get_table_description(cursor, table_name)):
+                att_name, iatt_name = row[0].lower(), row[0]
+                comment_notes = [] # Holds Field notes, to be displayed in a Python comment.
+                extra_params = {}  # Holds Field parameters such as 'db_column'.
+
+                if ' ' in att_name:
+                    extra_params['db_column'] = att_name
+                    att_name = att_name.replace(' ', '')
+                    comment_notes.append('Field renamed to remove spaces.')
+                if keyword.iskeyword(att_name):
+                    extra_params['db_column'] = att_name
+                    att_name += '_field'
+                    comment_notes.append('Field renamed because it was a Python reserved word.')
+
+                if i in relations:
+                    rel_to = relations[i][1] == table_name and "'self'" or table2model(relations[i][1])
+                    field_type = 'ForeignKey(%s' % rel_to
+                    if att_name.endswith('_id'):
+                        att_name = att_name[:-3]
+                    else:
+                        extra_params['db_column'] = att_name
+                else:
+                    if iatt_name in geo_table:
+                        ## Customization for Geographic Columns ##
+                        geo_col = geo_table[iatt_name]
+                        field_type = self.geofield_mapping[geo_col['type'].lower()]
+                        # Adding extra keyword arguments for the SRID and dimension (if not defaults).
+                        dim, srid = geo_col.get('dim', 2), geo_col.get('srid', 4326)
+                        if dim != 2: extra_params['dim'] = dim
+                        if srid != 4326: extra_params['srid'] = srid
+                    else:
+                        try:
+                            field_type = connection.introspection.data_types_reverse[row[1]]
+                        except KeyError:
+                            field_type = 'TextField'
+                            comment_notes.append('This field type is a guess.')
+
+                    # This is a hook for data_types_reverse to return a tuple of
+                    # (field_type, extra_params_dict).
+                    if type(field_type) is tuple:
+                        field_type, new_params = field_type
+                        extra_params.update(new_params)
+
+                    # Add max_length for all CharFields.
+                    if field_type == 'CharField' and row[3]:
+                        extra_params['max_length'] = row[3]
+
+                    if field_type == 'DecimalField':
+                        extra_params['max_digits'] = row[4]
+                        extra_params['decimal_places'] = row[5]
+
+                    # Add primary_key and unique, if necessary.
+                    column_name = extra_params.get('db_column', att_name)
+                    if column_name in indexes:
+                        if indexes[column_name]['primary_key']:
+                            extra_params['primary_key'] = True
+                        elif indexes[column_name]['unique']:
+                            extra_params['unique'] = True
+
+                    field_type += '('
+
+                # Don't output 'id = meta.AutoField(primary_key=True)', because
+                # that's assumed if it doesn't exist.
+                if att_name == 'id' and field_type == 'AutoField(' and extra_params == {'primary_key': True}:
+                    continue
+
+                # Add 'null' and 'blank', if the 'null_ok' flag was present in the
+                # table description.
+                if row[6]: # If it's NULL...
+                    extra_params['blank'] = True
+                    if not field_type in ('TextField(', 'CharField('):
+                        extra_params['null'] = True
+
+                field_desc = '%s = models.%s' % (att_name, field_type)
+                if extra_params:
+                    if not field_desc.endswith('('):
+                        field_desc += ', '
+                    field_desc += ', '.join(['%s=%r' % (k, v) for k, v in extra_params.items()])
+                field_desc += ')'
+                if comment_notes:
+                    field_desc += ' # ' + ' '.join(comment_notes)
+                yield '    %s' % field_desc
+            if table_name in geo_cols:
+                yield '    objects = models.GeoManager()'
+            yield '    class Meta:'
+            yield '        db_table = %r' % table_name
+            yield ''
diff --git a/webapp/django/contrib/gis/management/commands/ogrinspect.py b/webapp/django/contrib/gis/management/commands/ogrinspect.py
new file mode 100644
index 0000000..aa4f418
--- /dev/null
+++ b/webapp/django/contrib/gis/management/commands/ogrinspect.py
@@ -0,0 +1,119 @@
+import os, sys
+from optparse import make_option
+from django.contrib.gis import gdal
+from django.contrib.gis.management.base import ArgsCommand, CommandError
+
+def layer_option(option, opt, value, parser):
+    """
+    Callback for `make_option` for the `ogrinspect` `layer_key`
+    keyword option which may be an integer or a string.
+    """
+    try:
+        dest = int(value)
+    except ValueError:
+        dest = value
+    setattr(parser.values, option.dest, dest)
+
+def list_option(option, opt, value, parser):
+    """
+    Callback for `make_option` for `ogrinspect` keywords that require
+    a string list.  If the string is 'True'/'true' then the option 
+    value will be a boolean instead.
+    """
+    if value.lower() == 'true':
+        dest = True
+    else:
+        dest = [s for s in value.split(',')]
+    setattr(parser.values, option.dest, dest)
+    
+class Command(ArgsCommand):
+    help = ('Inspects the given OGR-compatible data source (e.g., a shapefile) and outputs\n'
+            'a GeoDjango model with the given model name. For example:\n'
+            ' ./manage.py ogrinspect zipcode.shp Zipcode')
+    args = '[data_source] [model_name]'
+
+    option_list = ArgsCommand.option_list + (
+        make_option('--blank', dest='blank', type='string', action='callback',  
+                    callback=list_option, default=False,
+                    help='Use a comma separated list of OGR field names to add '
+                    'the `blank=True` option to the field definition.  Set with'
+                    '`true` to apply to all applicable fields.'),
+        make_option('--decimal', dest='decimal', type='string', action='callback', 
+                    callback=list_option, default=False,
+                    help='Use a comma separated list of OGR float fields to '
+                    'generate `DecimalField` instead of the default '
+                    '`FloatField`. Set to `true` to apply to all OGR float fields.'),
+        make_option('--geom-name', dest='geom_name', type='string', default='geom',
+                    help='Specifies the model name for the Geometry Field '
+                    '(defaults to `geom`)'),
+        make_option('--layer', dest='layer_key', type='string', action='callback', 
+                    callback=layer_option, default=0,
+                    help='The key for specifying which layer in the OGR data '
+                    'source to use. Defaults to 0 (the first layer). May be '
+                    'an integer or a string identifier for the layer.'),
+        make_option('--multi-geom', action='store_true', dest='multi_geom', default=False,
+                    help='Treat the geometry in the data source as a geometry collection.'),
+        make_option('--name-field', dest='name_field',
+                    help='Specifies a field name to return for the `__unicode__` function.'),
+        make_option('--no-imports', action='store_false', dest='imports', default=True,
+                    help='Do not include `from django.contrib.gis.db import models` '
+                    'statement.'),
+        make_option('--null', dest='null', type='string', action='callback',  
+                    callback=list_option, default=False,
+                    help='Use a comma separated list of OGR field names to add '
+                    'the `null=True` option to the field definition.  Set with'
+                    '`true` to apply to all applicable fields.'),
+        make_option('--srid', dest='srid',
+                    help='The SRID to use for the Geometry Field.  If it can be '
+                    'determined, the SRID of the data source is used.'),
+        make_option('--mapping', action='store_true', dest='mapping',
+                    help='Generate mapping dictionary for use with `LayerMapping`.')
+        )
+
+    requires_model_validation = False
+
+    def handle_args(self, *args, **options):
+        try:
+            data_source, model_name = args
+        except ValueError:
+            raise CommandError('Invalid arguments, must provide: %s' % self.args)
+
+        if not gdal.HAS_GDAL:
+            raise CommandError('GDAL is required to inspect geospatial data sources.')
+
+        # TODO: Support non file-based OGR datasources.
+        if not os.path.isfile(data_source):
+            raise CommandError('The given data source cannot be found: "%s"' % data_source)
+        
+        # Removing options with `None` values.
+        options = dict([(k, v) for k, v in options.items() if not v is None])
+
+        # Getting the OGR DataSource from the string parameter.
+        try:
+            ds = gdal.DataSource(data_source)
+        except gdal.OGRException, msg:
+            raise CommandError(msg)
+
+        # Whether the user wants to generate the LayerMapping dictionary as well.
+        show_mapping = options.pop('mapping', False)
+
+        # Returning the output of ogrinspect with the given arguments
+        # and options.
+        from django.contrib.gis.utils.ogrinspect import _ogrinspect, mapping
+        output = [s for s in _ogrinspect(ds, model_name, **options)]
+        if show_mapping:
+            # Constructing the keyword arguments for `mapping`, and
+            # calling it on the data source.
+            kwargs = {'geom_name' : options['geom_name'],
+                      'layer_key' : options['layer_key'],
+                      'multi_geom' : options['multi_geom'],
+                      }
+            mapping_dict = mapping(ds, **kwargs)
+            # This extra legwork is so that the dictionary definition comes
+            # out in the same order as the fields in the model definition.
+            rev_mapping = dict([(v, k) for k, v in mapping_dict.items()])
+            output.extend(['', '# Auto-generated `LayerMapping` dictionary for %s model' % model_name, 
+                           '%s_mapping = {' % model_name.lower()])
+            output.extend(["    '%s' : '%s'," % (rev_mapping[ogr_fld], ogr_fld) for ogr_fld in ds[options['layer_key']].fields])
+            output.extend(["    '%s' : '%s'," % (options['geom_name'], mapping_dict[options['geom_name']]), '}'])
+        return '\n'.join(output)
diff --git a/webapp/django/contrib/gis/maps/__init__.py b/webapp/django/contrib/gis/maps/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/maps/__init__.py
diff --git a/webapp/django/contrib/gis/maps/google/__init__.py b/webapp/django/contrib/gis/maps/google/__init__.py
new file mode 100644
index 0000000..dfbbedc
--- /dev/null
+++ b/webapp/django/contrib/gis/maps/google/__init__.py
@@ -0,0 +1,61 @@
+"""
+  This module houses the GoogleMap object, used for generating
+   the needed javascript to embed Google Maps in a webpage.
+
+  Google(R) is a registered trademark of Google, Inc. of Mountain View, California.
+
+  Example:
+
+   * In the view:
+      return render_to_response('template.html', {'google' : GoogleMap(key="abcdefg")})
+
+   * In the template:
+
+     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+     {{ google.xhtml }}
+     <head>
+       <title>Google Maps via GeoDjango</title>
+       {{ google.style }}
+       {{ google.scripts }}
+     </head>
+     {{ google.body }}
+     <div id="{{ google.dom_id }}" style="width:600px;height:400px;"></div>
+     </body>
+     </html>
+
+     Note:  If you want to be more explicit in your templates, the following are
+      equivalent:
+      {{ google.body }} => "<body {{ google.onload }} {{ google.onunload }}>"
+      {{ google.xhtml }} => "<html xmlns="http://www.w3.org/1999/xhtml" {{ google.xmlns }}>"
+      {{ google.style }} => "<style>{{ google.vml_css }}</style>"
+
+  Explanation:
+   - The `xhtml` property provides the correct XML namespace needed for 
+     Google Maps to operate in IE using XHTML.  Google Maps on IE uses
+     VML to draw polylines.  Returns, by default: 
+     <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
+       
+   - The `style` property provides the correct style tag for the CSS
+     properties required by Google Maps on IE:
+     <style type="text/css">v\:* {behavior:url(#default#VML);}</style>
+
+   - The `scripts` property provides the necessary <script> tags for 
+     including the Google Maps javascript, as well as including the
+     generated javascript.
+
+   - The `body` property provides the correct attributes for the 
+     body tag to load the generated javascript.  By default, returns:
+     <body onload="gmap_load()" onunload="GUnload()">
+
+   - The `dom_id` property returns the DOM id for the map.  Defaults to "map".
+
+  The following attributes may be set or customized in your local settings:
+   * GOOGLE_MAPS_API_KEY: String of your Google Maps API key.  These are tied to
+      to a domain.  May be obtained from http://www.google.com/apis/maps/
+   * GOOGLE_MAPS_API_VERSION (optional): Defaults to using "2.x"
+   * GOOGLE_MAPS_URL (optional): Must have a substitution ('%s') for the API
+      version.
+"""
+from django.contrib.gis.maps.google.gmap import GoogleMap
+from django.contrib.gis.maps.google.overlays import GEvent, GMarker, GPolygon, GPolyline
+from django.contrib.gis.maps.google.zoom import GoogleZoom
diff --git a/webapp/django/contrib/gis/maps/google/gmap.py b/webapp/django/contrib/gis/maps/google/gmap.py
new file mode 100644
index 0000000..580ab7a
--- /dev/null
+++ b/webapp/django/contrib/gis/maps/google/gmap.py
@@ -0,0 +1,138 @@
+from django.conf import settings
+from django.contrib.gis import geos
+from django.template.loader import render_to_string
+from django.utils.safestring import mark_safe
+
+class GoogleMapException(Exception): pass
+from django.contrib.gis.maps.google.overlays import GPolygon, GPolyline, GMarker
+
+# The default Google Maps URL (for the API javascript)
+# TODO: Internationalize for Japan, UK, etc.
+GOOGLE_MAPS_URL='http://maps.google.com/maps?file=api&amp;v=%s&amp;key='
+
+class GoogleMap(object):
+    "A class for generating Google Maps JavaScript."
+
+    # String constants
+    onunload = mark_safe('onunload="GUnload()"') # Cleans up after Google Maps
+    vml_css  = mark_safe('v\:* {behavior:url(#default#VML);}') # CSS for IE VML
+    xmlns    = mark_safe('xmlns:v="urn:schemas-microsoft-com:vml"') # XML Namespace (for IE VML).
+
+    def __init__(self, key=None, api_url=None, version=None, 
+                 center=None, zoom=None, dom_id='map', load_func='gmap_load', 
+                 kml_urls=[], polygons=[], polylines=[], markers=[],
+                 template='gis/google/js/google-map.js',
+                 extra_context={}):
+
+        # The Google Maps API Key defined in the settings will be used
+        #  if not passed in as a parameter.  The use of an API key is
+        #  _required_.
+        if not key:
+            try:
+                self.key = settings.GOOGLE_MAPS_API_KEY
+            except AttributeError:
+                raise GoogleMapException('Google Maps API Key not found (try adding GOOGLE_MAPS_API_KEY to your settings).')
+        else:
+            self.key = key
+        
+        # Getting the Google Maps API version, defaults to using the latest ("2.x"),
+        #  this is not necessarily the most stable.
+        if not version:
+            self.version = getattr(settings, 'GOOGLE_MAPS_API_VERSION', '2.x')
+        else:
+            self.version = version
+
+        # Can specify the API URL in the `api_url` keyword.
+        if not api_url:
+            self.api_url = mark_safe(getattr(settings, 'GOOGLE_MAPS_URL', GOOGLE_MAPS_URL) % self.version)
+        else:
+            self.api_url = api_url
+
+        # Setting the DOM id of the map, the load function, the JavaScript
+        # template, and the KML URLs array.
+        self.dom_id = dom_id
+        self.load_func = load_func
+        self.template = template
+        self.kml_urls = kml_urls
+        
+        # Does the user want any GMarker, GPolygon, and/or GPolyline overlays?
+        self.polygons, self.polylines, self.markers = [], [], []
+        if markers:
+            for point in markers:
+                if isinstance(point, GMarker): 
+                    self.markers.append(point)
+                else:
+                    self.markers.append(GMarker(point))
+        if polygons:
+            for poly in polygons:
+                if isinstance(poly, GPolygon): 
+                    self.polygons.append(poly)
+                else:
+                    self.polygons.append(GPolygon(poly))
+        if polylines:
+            for pline in polylines:
+                if isinstance(pline, GPolyline):
+                    self.polylines.append(pline)
+                else:
+                    self.polylines.append(GPolyline(pline))
+       
+        # If GMarker, GPolygons, and/or GPolylines 
+        # are used the zoom will be automatically
+        # calculated via the Google Maps API.  If both a zoom level and a
+        # center coordinate are provided with polygons/polylines, no automatic
+        # determination will occur.
+        self.calc_zoom = False
+        if self.polygons or self.polylines  or self.markers:
+            if center is None or zoom is None:
+                self.calc_zoom = True
+    
+        # Defaults for the zoom level and center coordinates if the zoom
+        # is not automatically calculated.
+        if zoom is None: zoom = 4
+        self.zoom = zoom
+        if center is None: center = (0, 0)
+        self.center = center
+
+        # Setting the parameters for the javascript template.
+        params = {'calc_zoom' : self.calc_zoom,
+                  'center' : self.center,
+                  'dom_id' : self.dom_id,
+                  'kml_urls' : self.kml_urls,
+                  'load_func' : self.load_func,
+                  'zoom' : self.zoom,
+                  'polygons' : self.polygons,
+                  'polylines' : self.polylines,
+                  'markers' : self.markers,
+                  }
+        params.update(extra_context)
+        self.js = render_to_string(self.template, params)
+
+    @property
+    def body(self):
+        "Returns HTML body tag for loading and unloading Google Maps javascript."
+        return mark_safe('<body %s %s>' % (self.onload, self.onunload))
+
+    @property
+    def onload(self):
+        "Returns the `onload` HTML <body> attribute."
+        return mark_safe('onload="%s()"' % self.load_func)
+
+    @property
+    def api_script(self):
+        "Returns the <script> tag for the Google Maps API javascript."
+        return mark_safe('<script src="%s%s" type="text/javascript"></script>' % (self.api_url, self.key))
+
+    @property
+    def scripts(self):
+        "Returns all <script></script> tags required for Google Maps JavaScript."
+        return mark_safe('%s\n  <script type="text/javascript">\n//<![CDATA[\n%s//]]>\n  </script>' % (self.api_script, self.js))
+
+    @property
+    def style(self):
+        "Returns additional CSS styling needed for Google Maps on IE."
+        return mark_safe('<style type="text/css">%s</style>' % self.vml_css)
+
+    @property
+    def xhtml(self):
+        "Returns XHTML information needed for IE VML overlays."
+        return mark_safe('<html xmlns="http://www.w3.org/1999/xhtml" %s>' % self.xmlns)
diff --git a/webapp/django/contrib/gis/maps/google/overlays.py b/webapp/django/contrib/gis/maps/google/overlays.py
new file mode 100644
index 0000000..0efedf3
--- /dev/null
+++ b/webapp/django/contrib/gis/maps/google/overlays.py
@@ -0,0 +1,220 @@
+from django.utils.safestring import mark_safe
+from django.contrib.gis.geos import fromstr, Point, LineString, LinearRing, Polygon
+
+class GEvent(object):
+    """
+    A Python wrapper for the Google GEvent object.
+
+    Events can be attached to any object derived from GOverlayBase with the
+    add_event() call.
+
+    For more information please see the Google Maps API Reference:
+     http://code.google.com/apis/maps/documentation/reference.html#GEvent
+
+    Example:
+
+      from django.shortcuts import render_to_response
+      from django.contrib.gis.maps.google import GoogleMap, GEvent, GPolyline
+
+      def sample_request(request):
+          polyline = GPolyline('LINESTRING(101 26, 112 26, 102 31)')
+          event = GEvent('click', 
+            'function() { location.href = "http://www.google.com"}')
+          polyline.add_event(event)
+          return render_to_response('mytemplate.html', 
+          {'google' : GoogleMap(polylines=[polyline])})
+    """
+
+    def __init__(self, event, action):
+        """
+        Initializes a GEvent object. 
+        
+        Parameters:
+
+        event: 
+          string for the event, such as 'click'. The event must be a valid
+          event for the object in the Google Maps API. 
+          There is no validation of the event type within Django.
+
+        action:
+          string containing a Javascript function, such as 
+          'function() { location.href = "newurl";}'
+          The string must be a valid Javascript function. Again there is no 
+          validation fo the function within Django.
+        """
+        self.event = event
+        self.action = action
+
+    def __unicode__(self):
+        "Returns the parameter part of a GEvent."
+        return mark_safe('"%s", %s' %(self.event, self.action))
+
+class GOverlayBase(object):
+    def __init__(self):
+        self.events = []
+
+    def latlng_from_coords(self, coords):
+        "Generates a JavaScript array of GLatLng objects for the given coordinates."
+        return '[%s]' % ','.join(['new GLatLng(%s,%s)' % (y, x) for x, y in coords])
+
+    def add_event(self, event):
+        "Attaches a GEvent to the overlay object."
+        self.events.append(event)
+
+    def __unicode__(self):
+        "The string representation is the JavaScript API call."
+        return mark_safe('%s(%s)' % (self.__class__.__name__, self.js_params))
+
+class GPolygon(GOverlayBase):
+    """
+    A Python wrapper for the Google GPolygon object.  For more information
+    please see the Google Maps API Reference:
+     http://code.google.com/apis/maps/documentation/reference.html#GPolygon
+    """
+    def __init__(self, poly, 
+                 stroke_color='#0000ff', stroke_weight=2, stroke_opacity=1,
+                 fill_color='#0000ff', fill_opacity=0.4):
+        """
+        The GPolygon object initializes on a GEOS Polygon or a parameter that
+        may be instantiated into GEOS Polygon.  Please note that this will not
+        depict a Polygon's internal rings.
+
+        Keyword Options:
+
+          stroke_color:
+            The color of the polygon outline. Defaults to '#0000ff' (blue).
+
+          stroke_weight:
+            The width of the polygon outline, in pixels.  Defaults to 2.
+
+          stroke_opacity:
+            The opacity of the polygon outline, between 0 and 1.  Defaults to 1.
+
+          fill_color:
+            The color of the polygon fill.  Defaults to '#0000ff' (blue).
+
+          fill_opacity:
+            The opacity of the polygon fill.  Defaults to 0.4.
+        """
+        if isinstance(poly, basestring): poly = fromstr(poly)
+        if isinstance(poly, (tuple, list)): poly = Polygon(poly)
+        if not isinstance(poly, Polygon): 
+            raise TypeError('GPolygon may only initialize on GEOS Polygons.')
+
+        # Getting the envelope of the input polygon (used for automatically
+        # determining the zoom level).
+        self.envelope = poly.envelope
+
+        # Translating the coordinates into a JavaScript array of 
+        # Google `GLatLng` objects.
+        self.points = self.latlng_from_coords(poly.shell.coords)
+
+        # Stroke settings.
+        self.stroke_color, self.stroke_opacity, self.stroke_weight = stroke_color, stroke_opacity, stroke_weight
+      
+        # Fill settings.
+        self.fill_color, self.fill_opacity = fill_color, fill_opacity
+       
+        super(GPolygon, self).__init__()
+ 
+    @property
+    def js_params(self):
+        return '%s, "%s", %s, %s, "%s", %s' % (self.points, self.stroke_color, self.stroke_weight, self.stroke_opacity,
+                                               self.fill_color, self.fill_opacity)
+
+class GPolyline(GOverlayBase):
+    """
+    A Python wrapper for the Google GPolyline object.  For more information
+    please see the Google Maps API Reference:
+     http://code.google.com/apis/maps/documentation/reference.html#GPolyline
+    """
+    def __init__(self, geom, color='#0000ff', weight=2, opacity=1):
+        """
+        The GPolyline object may be initialized on GEOS LineStirng, LinearRing,
+        and Polygon objects (internal rings not supported) or a parameter that
+        may instantiated into one of the above geometries.
+
+        Keyword Options:
+          
+          color:
+            The color to use for the polyline.  Defaults to '#0000ff' (blue).
+  
+          weight:
+            The width of the polyline, in pixels.  Defaults to 2.
+
+          opacity:
+            The opacity of the polyline, between 0 and 1.  Defaults to 1.
+        """
+        # If a GEOS geometry isn't passed in, try to contsruct one.
+        if isinstance(geom, basestring): geom = fromstr(geom)
+        if isinstance(geom, (tuple, list)): geom = Polygon(geom)
+        # Generating the lat/lng coordinate pairs.
+        if isinstance(geom, (LineString, LinearRing)):
+            self.latlngs = self.latlng_from_coords(geom.coords)
+        elif isinstance(geom, Polygon):
+            self.latlngs = self.latlng_from_coords(geom.shell.coords)
+        else:
+            raise TypeError('GPolyline may only initialize on GEOS LineString, LinearRing, and/or Polygon geometries.')
+
+        # Getting the envelope for automatic zoom determination.
+        self.envelope = geom.envelope
+        self.color, self.weight, self.opacity = color, weight, opacity
+        super(GPolyline, self).__init__()
+        
+    @property
+    def js_params(self):
+        return '%s, "%s", %s, %s' % (self.latlngs, self.color, self.weight, self.opacity)
+
+class GMarker(GOverlayBase):
+    """
+    A Python wrapper for the Google GMarker object.  For more information
+    please see the Google Maps API Reference:
+     http://code.google.com/apis/maps/documentation/reference.html#GMarker
+
+    Example:
+
+      from django.shortcuts import render_to_response
+      from django.contrib.gis.maps.google.overlays import GMarker, GEvent
+     
+      def sample_request(request):
+          marker = GMarker('POINT(101 26)')
+          event = GEvent('click', 
+                         'function() { location.href = "http://www.google.com"}')
+          marker.add_event(event)
+          return render_to_response('mytemplate.html', 
+                 {'google' : GoogleMap(markers=[marker])})
+    """
+    def __init__(self, geom, title=None):
+        """
+        The GMarker object may initialize on GEOS Points or a parameter
+        that may be instantiated into a GEOS point.  Keyword options map to
+        GMarkerOptions -- so far only the title option is supported.
+
+        Keyword Options:
+         title: 
+           Title option for GMarker, will be displayed as a tooltip.
+        """
+        # If a GEOS geometry isn't passed in, try to construct one.
+        if isinstance(geom, basestring): geom = fromstr(geom)
+        if isinstance(geom, (tuple, list)): geom = Point(geom)
+        if isinstance(geom, Point):
+            self.latlng = self.latlng_from_coords(geom.coords)
+        else:
+            raise TypeError('GMarker may only initialize on GEOS Point geometry.')
+        # Getting the envelope for automatic zoom determination.
+        self.envelope = geom.envelope
+        # TODO: Add support for more GMarkerOptions
+        self.title = title
+        super(GMarker, self).__init__()
+
+    def latlng_from_coords(self, coords):
+        return 'new GLatLng(%s,%s)' %(coords[1], coords[0])
+    
+    def options(self):
+        result = []
+        if self.title: result.append('title: "%s"' % self.title) 
+        return '{%s}' % ','.join(result)
+
+    @property
+    def js_params(self):
+        return '%s, %s' % (self.latlng, self.options())
diff --git a/webapp/django/contrib/gis/maps/google/zoom.py b/webapp/django/contrib/gis/maps/google/zoom.py
new file mode 100644
index 0000000..abc3fbf
--- /dev/null
+++ b/webapp/django/contrib/gis/maps/google/zoom.py
@@ -0,0 +1,161 @@
+from django.contrib.gis.geos import GEOSGeometry, LinearRing, Polygon, Point
+from django.contrib.gis.maps.google.gmap import GoogleMapException
+from math import pi, sin, cos, log, exp, atan
+
+# Constants used for degree to radian conversion, and vice-versa.
+DTOR = pi / 180.
+RTOD = 180. / pi
+
+class GoogleZoom(object):
+    """
+    GoogleZoom is a utility for performing operations related to the zoom
+    levels on Google Maps.
+
+    This class is inspired by the OpenStreetMap Mapnik tile generation routine
+    `generate_tiles.py`, and the article "How Big Is the World" (Hack #16) in
+    "Google Maps Hacks" by Rich Gibson and Schuyler Erle.
+
+    `generate_tiles.py` may be found at:
+      http://trac.openstreetmap.org/browser/applications/rendering/mapnik/generate_tiles.py
+
+    "Google Maps Hacks" may be found at http://safari.oreilly.com/0596101619
+    """
+    
+    def __init__(self, num_zoom=19, tilesize=256):
+        "Initializes the Google Zoom object."
+        # Google's tilesize is 256x256, square tiles are assumed.
+        self._tilesize = tilesize
+        
+        # The number of zoom levels
+        self._nzoom = num_zoom
+
+        # Initializing arrays to hold the parameters for each one of the 
+        # zoom levels.
+        self._degpp = [] # Degrees per pixel
+        self._radpp = [] # Radians per pixel
+        self._npix  = [] # 1/2 the number of pixels for a tile at the given zoom level
+        
+        # Incrementing through the zoom levels and populating the parameter arrays.
+        z = tilesize # The number of pixels per zoom level.
+        for i in xrange(num_zoom):
+            # Getting the degrees and radians per pixel, and the 1/2 the number of
+            # for every zoom level.
+            self._degpp.append(z / 360.) # degrees per pixel
+            self._radpp.append(z / (2 * pi)) # radians per pixl
+            self._npix.append(z / 2) # number of pixels to center of tile
+
+            # Multiplying `z` by 2 for the next iteration.
+            z *= 2
+
+    def __len__(self):
+        "Returns the number of zoom levels."
+        return self._nzoom
+
+    def get_lon_lat(self, lonlat):
+        "Unpacks longitude, latitude from GEOS Points and 2-tuples."
+        if isinstance(lonlat, Point):
+            lon, lat = lonlat.coords
+        else:
+            lon, lat = lonlat
+        return lon, lat
+
+    def lonlat_to_pixel(self, lonlat, zoom):
+        "Converts a longitude, latitude coordinate pair for the given zoom level."
+        # Setting up, unpacking the longitude, latitude values and getting the
+        # number of pixels for the given zoom level.
+        lon, lat = self.get_lon_lat(lonlat)
+        npix = self._npix[zoom]
+
+        # Calculating the pixel x coordinate by multiplying the longitude value
+        # with with the number of degrees/pixel at the given zoom level.
+        px_x = round(npix + (lon * self._degpp[zoom]))
+
+        # Creating the factor, and ensuring that 1 or -1 is not passed in as the 
+        # base to the logarithm.  Here's why:
+        #  if fac = -1, we'll get log(0) which is undefined; 
+        #  if fac =  1, our logarithm base will be divided by 0, also undefined.
+        fac = min(max(sin(DTOR * lat), -0.9999), 0.9999)
+
+        # Calculating the pixel y coordinate.
+        px_y = round(npix + (0.5 * log((1 + fac)/(1 - fac)) * (-1.0 * self._radpp[zoom])))
+
+        # Returning the pixel x, y to the caller of the function.
+        return (px_x, px_y)
+
+    def pixel_to_lonlat(self, px, zoom):
+        "Converts a pixel to a longitude, latitude pair at the given zoom level."
+        if len(px) != 2:
+            raise TypeError('Pixel should be a sequence of two elements.')
+
+        # Getting the number of pixels for the given zoom level.
+        npix = self._npix[zoom]
+
+        # Calculating the longitude value, using the degrees per pixel.
+        lon = (px[0] - npix) / self._degpp[zoom]
+
+        # Calculating the latitude value.
+        lat = RTOD * ( 2 * atan(exp((px[1] - npix)/ (-1.0 * self._radpp[zoom]))) - 0.5 * pi)
+
+        # Returning the longitude, latitude coordinate pair.
+        return (lon, lat)
+    
+    def tile(self, lonlat, zoom):
+        """
+        Returns a Polygon  corresponding to the region represented by a fictional
+        Google Tile for the given longitude/latitude pair and zoom level. This
+        tile is used to determine the size of a tile at the given point.
+        """
+        # The given lonlat is the center of the tile.
+        delta = self._tilesize / 2
+
+        # Getting the pixel coordinates corresponding to the
+        # the longitude/latitude.
+        px = self.lonlat_to_pixel(lonlat, zoom)
+
+        # Getting the lower-left and upper-right lat/lon coordinates
+        # for the bounding box of the tile.
+        ll = self.pixel_to_lonlat((px[0]-delta, px[1]-delta), zoom)
+        ur = self.pixel_to_lonlat((px[0]+delta, px[1]+delta), zoom)
+
+        # Constructing the Polygon, representing the tile and returning.
+        return Polygon(LinearRing(ll, (ll[0], ur[1]), ur, (ur[0], ll[1]), ll), srid=4326)
+        
+    def get_zoom(self, geom):
+        "Returns the optimal Zoom level for the given geometry."
+        # Checking the input type.
+        if not isinstance(geom, GEOSGeometry) or geom.srid != 4326:
+            raise TypeError('get_zoom() expects a GEOS Geometry with an SRID of 4326.')
+
+        # Getting the envelope for the geometry, and its associated width, height
+        # and centroid.
+        env = geom.envelope
+        env_w, env_h = self.get_width_height(env.extent)
+        center = env.centroid
+
+        for z in xrange(self._nzoom):
+            # Getting the tile at the zoom level.
+            tile_w, tile_h = self.get_width_height(self.tile(center, z).extent)
+
+            # When we span more than one tile, this is an approximately good
+            # zoom level.
+            if (env_w > tile_w) or (env_h > tile_h):
+                if z == 0: 
+                    raise GoogleMapException('Geometry width and height should not exceed that of the Earth.')
+                return z-1
+        
+        # Otherwise, we've zoomed in to the max.
+        return self._nzoom-1
+
+    def get_width_height(self, extent):
+        """
+        Returns the width and height for the given extent.
+        """
+        # Getting the lower-left, upper-left, and upper-right
+        # coordinates from the extent.
+        ll = Point(extent[:2])
+        ul = Point(extent[0], extent[3])
+        ur = Point(extent[2:])
+        # Calculating the width and height.
+        height = ll.distance(ul)
+        width  = ul.distance(ur)
+        return width, height
diff --git a/webapp/django/contrib/gis/maps/openlayers/__init__.py b/webapp/django/contrib/gis/maps/openlayers/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/maps/openlayers/__init__.py
diff --git a/webapp/django/contrib/gis/measure.py b/webapp/django/contrib/gis/measure.py
new file mode 100644
index 0000000..42c49ce
--- /dev/null
+++ b/webapp/django/contrib/gis/measure.py
@@ -0,0 +1,329 @@
+# Copyright (c) 2007, Robert Coup <robert.coup@onetrackmind.co.nz>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+#   1. Redistributions of source code must retain the above copyright notice,
+#      this list of conditions and the following disclaimer.
+#
+#   2. Redistributions in binary form must reproduce the above copyright
+#      notice, this list of conditions and the following disclaimer in the
+#      documentation and/or other materials provided with the distribution.
+#
+#   3. Neither the name of Distance nor the names of its contributors may be used
+#      to endorse or promote products derived from this software without
+#      specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+"""
+Distance and Area objects to allow for sensible and convienient calculation 
+and conversions.
+
+Authors: Robert Coup, Justin Bronn
+
+Inspired by GeoPy (http://exogen.case.edu/projects/geopy/)
+and Geoff Biggs' PhD work on dimensioned units for robotics.
+"""
+__all__ = ['A', 'Area', 'D', 'Distance']
+from decimal import Decimal
+
+class MeasureBase(object):
+    def default_units(self, kwargs):
+        """
+        Return the unit value and the the default units specified
+        from the given keyword arguments dictionary.
+        """
+        val = 0.0
+        for unit, value in kwargs.iteritems():
+            if unit in self.UNITS:
+                val += self.UNITS[unit] * value
+                default_unit = unit
+            elif unit in self.ALIAS:
+                u = self.ALIAS[unit]
+                val += self.UNITS[u] * value
+                default_unit = u
+            else:
+                lower = unit.lower()
+                if lower in self.UNITS:
+                    val += self.UNITS[lower] * value
+                    default_unit = lower
+                elif lower in self.LALIAS:
+                    u = self.LALIAS[lower]
+                    val += self.UNITS[u] * value
+                    default_unit = u
+                else:
+                    raise AttributeError('Unknown unit type: %s' % unit)
+        return val, default_unit
+
+    @classmethod
+    def unit_attname(cls, unit_str):
+        """
+        Retrieves the unit attribute name for the given unit string.  
+        For example, if the given unit string is 'metre', 'm' would be returned.
+        An exception is raised if an attribute cannot be found.
+        """
+        lower = unit_str.lower()
+        if unit_str in cls.UNITS:
+            return unit_str
+        elif lower in cls.UNITS:
+            return lower
+        elif lower in cls.LALIAS:
+            return cls.LALIAS[lower]
+        else:
+            raise Exception('Could not find a unit keyword associated with "%s"' % unit_str)
+
+class Distance(MeasureBase):
+    UNITS = {
+        'chain' : 20.1168,
+        'chain_benoit' : 20.116782,
+        'chain_sears' : 20.1167645,
+        'british_chain_benoit' : 20.1167824944,
+        'british_chain_sears' : 20.1167651216,
+        'british_chain_sears_truncated' : 20.116756,
+        'cm' : 0.01,
+        'british_ft' : 0.304799471539,
+        'british_yd' : 0.914398414616,
+        'clarke_ft' : 0.3047972654,
+        'clarke_link' : 0.201166195164,
+        'fathom' :  1.8288,
+        'ft': 0.3048,
+        'german_m' : 1.0000135965,
+        'gold_coast_ft' : 0.304799710181508,
+        'indian_yd' : 0.914398530744,
+        'inch' : 0.0254,
+        'km': 1000.0,
+        'link' : 0.201168,
+        'link_benoit' : 0.20116782,
+        'link_sears' : 0.20116765,
+        'm': 1.0,
+        'mi': 1609.344,
+        'mm' : 0.001,
+        'nm': 1852.0,
+        'nm_uk' : 1853.184,
+        'rod' : 5.0292,
+        'sears_yd' : 0.91439841,
+        'survey_ft' : 0.304800609601,
+        'um' : 0.000001,
+        'yd': 0.9144,
+        }
+
+    # Unit aliases for `UNIT` terms encountered in Spatial Reference WKT.
+    ALIAS = {
+        'centimeter' : 'cm',
+        'foot' : 'ft',
+        'inches' : 'inch',
+        'kilometer' : 'km',
+        'kilometre' : 'km',
+        'meter' : 'm',
+        'metre' : 'm',
+        'micrometer' : 'um',
+        'micrometre' : 'um',
+        'millimeter' : 'mm',
+        'millimetre' : 'mm',
+        'mile' : 'mi',
+        'yard' : 'yd',
+        'British chain (Benoit 1895 B)' : 'british_chain_benoit',
+        'British chain (Sears 1922)' : 'british_chain_sears',
+        'British chain (Sears 1922 truncated)' : 'british_chain_sears_truncated',
+        'British foot (Sears 1922)' : 'british_ft',
+        'British foot' : 'british_ft',
+        'British yard (Sears 1922)' : 'british_yd',
+        'British yard' : 'british_yd',
+        "Clarke's Foot" : 'clarke_ft',
+        "Clarke's link" : 'clarke_link',
+        'Chain (Benoit)' : 'chain_benoit',
+        'Chain (Sears)' : 'chain_sears',
+        'Foot (International)' : 'ft',
+        'German legal metre' : 'german_m',
+        'Gold Coast foot' : 'gold_coast_ft',
+        'Indian yard' : 'indian_yd',
+        'Link (Benoit)': 'link_benoit',
+        'Link (Sears)': 'link_sears',
+        'Nautical Mile' : 'nm',
+        'Nautical Mile (UK)' : 'nm_uk',
+        'US survey foot' : 'survey_ft',
+        'U.S. Foot' : 'survey_ft',
+        'Yard (Indian)' : 'indian_yd',
+        'Yard (Sears)' : 'sears_yd'
+        }
+    LALIAS = dict([(k.lower(), v) for k, v in ALIAS.items()])
+
+    def __init__(self, default_unit=None, **kwargs):
+        # The base unit is in meters.
+        self.m, self._default_unit = self.default_units(kwargs)
+        if default_unit and isinstance(default_unit, str):
+            self._default_unit = default_unit
+    
+    def __getattr__(self, name):
+        if name in self.UNITS:
+            return self.m / self.UNITS[name]
+        else:
+            raise AttributeError('Unknown unit type: %s' % name)
+    
+    def __repr__(self):
+        return 'Distance(%s=%s)' % (self._default_unit, getattr(self, self._default_unit))
+
+    def __str__(self):
+        return '%s %s' % (getattr(self, self._default_unit), self._default_unit)
+        
+    def __cmp__(self, other):
+        if isinstance(other, Distance):
+            return cmp(self.m, other.m)
+        else:
+            return NotImplemented
+        
+    def __add__(self, other):
+        if isinstance(other, Distance):
+            return Distance(default_unit=self._default_unit, m=(self.m + other.m))
+        else:
+            raise TypeError('Distance must be added with Distance')
+    
+    def __iadd__(self, other):
+        if isinstance(other, Distance):
+            self.m += other.m
+            return self
+        else:
+            raise TypeError('Distance must be added with Distance')
+    
+    def __sub__(self, other):
+        if isinstance(other, Distance):
+            return Distance(default_unit=self._default_unit, m=(self.m - other.m))
+        else:
+            raise TypeError('Distance must be subtracted from Distance')
+    
+    def __isub__(self, other):
+        if isinstance(other, Distance):
+            self.m -= other.m
+            return self
+        else:
+            raise TypeError('Distance must be subtracted from Distance')
+    
+    def __mul__(self, other):
+        if isinstance(other, (int, float, long, Decimal)):
+            return Distance(default_unit=self._default_unit, m=(self.m * float(other)))
+        elif isinstance(other, Distance):
+            return Area(default_unit='sq_' + self._default_unit, sq_m=(self.m * other.m))
+        else:
+            raise TypeError('Distance must be multiplied with number or Distance')
+    
+    def __imul__(self, other):
+        if isinstance(other, (int, float, long, Decimal)):
+            self.m *= float(other)
+            return self
+        else:
+            raise TypeError('Distance must be multiplied with number')
+    
+    def __div__(self, other):
+        if isinstance(other, (int, float, long, Decimal)):
+            return Distance(default_unit=self._default_unit, m=(self.m / float(other)))
+        else:
+            raise TypeError('Distance must be divided with number')
+
+    def __idiv__(self, other):
+        if isinstance(other, (int, float, long, Decimal)):
+            self.m /= float(other)
+            return self
+        else:
+            raise TypeError('Distance must be divided with number')
+
+    def __nonzero__(self):
+        return bool(self.m)
+
+class Area(MeasureBase):
+    # Getting the square units values and the alias dictionary.
+    UNITS = dict([('sq_%s' % k, v ** 2) for k, v in Distance.UNITS.items()])
+    ALIAS = dict([(k, 'sq_%s' % v) for k, v in Distance.ALIAS.items()])
+    LALIAS = dict([(k.lower(), v) for k, v in ALIAS.items()])
+
+    def __init__(self, default_unit=None, **kwargs):
+        self.sq_m, self._default_unit = self.default_units(kwargs)
+        if default_unit and isinstance(default_unit, str):
+            self._default_unit = default_unit
+    
+    def __getattr__(self, name):
+        if name in self.UNITS:
+            return self.sq_m / self.UNITS[name]
+        else:
+            raise AttributeError('Unknown unit type: ' + name)
+    
+    def __repr__(self):
+        return 'Area(%s=%s)' % (self._default_unit, getattr(self, self._default_unit))
+
+    def __str__(self):
+        return '%s %s' % (getattr(self, self._default_unit), self._default_unit)
+
+    def __cmp__(self, other):
+        if isinstance(other, Area):
+            return cmp(self.sq_m, other.sq_m)
+        else:
+            return NotImplemented
+        
+    def __add__(self, other):
+        if isinstance(other, Area):
+            return Area(default_unit=self._default_unit, sq_m=(self.sq_m + other.sq_m))
+        else:
+            raise TypeError('Area must be added with Area')
+    
+    def __iadd__(self, other):
+        if isinstance(other, Area):
+            self.sq_m += other.sq_m
+            return self
+        else:
+            raise TypeError('Area must be added with Area')
+    
+    def __sub__(self, other):
+        if isinstance(other, Area):
+            return Area(default_unit=self._default_unit, sq_m=(self.sq_m - other.sq_m))
+        else:
+            raise TypeError('Area must be subtracted from Area')
+    
+    def __isub__(self, other):
+        if isinstance(other, Area):
+            self.sq_m -= other.sq_m
+            return self
+        else:
+            raise TypeError('Area must be subtracted from Area')
+    
+    def __mul__(self, other):
+        if isinstance(other, (int, float, long, Decimal)):
+            return Area(default_unit=self._default_unit, sq_m=(self.sq_m * float(other)))
+        else:
+            raise TypeError('Area must be multiplied with number')
+    
+    def __imul__(self, other):
+        if isinstance(other, (int, float, long, Decimal)):
+            self.sq_m *= float(other)
+            return self
+        else:
+            raise TypeError('Area must be multiplied with number')
+    
+    def __div__(self, other):
+        if isinstance(other, (int, float, long, Decimal)):
+            return Area(default_unit=self._default_unit, sq_m=(self.sq_m / float(other)))
+        else:
+            raise TypeError('Area must be divided with number')
+
+    def __idiv__(self, other):
+        if isinstance(other, (int, float, long, Decimal)):
+            self.sq_m /= float(other)
+            return self
+        else:
+            raise TypeError('Area must be divided with number')
+
+    def __nonzero__(self):
+        return bool(self.sq_m)
+        
+# Shortcuts
+D = Distance
+A = Area
diff --git a/webapp/django/contrib/gis/models.py b/webapp/django/contrib/gis/models.py
new file mode 100644
index 0000000..4453dd8
--- /dev/null
+++ b/webapp/django/contrib/gis/models.py
@@ -0,0 +1,283 @@
+"""
+ Imports the SpatialRefSys and GeometryColumns models dependent on the
+ spatial database backend.
+"""
+import re
+from django.conf import settings
+
+# Checking for the presence of GDAL (needed for the SpatialReference object)
+from django.contrib.gis.gdal import HAS_GDAL, PYTHON23
+if HAS_GDAL:
+    from django.contrib.gis.gdal import SpatialReference
+
+class SpatialRefSysMixin(object):
+    """
+    The SpatialRefSysMixin is a class used by the database-dependent
+    SpatialRefSys objects to reduce redundnant code.
+    """
+
+    # For pulling out the spheroid from the spatial reference string. This
+    # regular expression is used only if the user does not have GDAL installed.
+    #  TODO: Flattening not used in all ellipsoids, could also be a minor axis, or 'b'
+    #        parameter.
+    spheroid_regex = re.compile(r'.+SPHEROID\[\"(?P<name>.+)\",(?P<major>\d+(\.\d+)?),(?P<flattening>\d{3}\.\d+),')
+
+    # For pulling out the units on platforms w/o GDAL installed.
+    # TODO: Figure out how to pull out angular units of projected coordinate system and
+    # fix for LOCAL_CS types.  GDAL should be highly recommended for performing 
+    # distance queries.
+    units_regex = re.compile(r'.+UNIT ?\["(?P<unit_name>[\w \'\(\)]+)", ?(?P<unit>[\d\.]+)(,AUTHORITY\["(?P<unit_auth_name>[\w \'\(\)]+)","(?P<unit_auth_val>\d+)"\])?\]([\w ]+)?(,AUTHORITY\["(?P<auth_name>[\w \'\(\)]+)","(?P<auth_val>\d+)"\])?\]$')
+    
+    def srs(self):
+        """
+        Returns a GDAL SpatialReference object, if GDAL is installed.
+        """
+        if HAS_GDAL:
+            if hasattr(self, '_srs'):
+                # Returning a clone of the cached SpatialReference object.
+                return self._srs.clone()
+            else:
+                # Attempting to cache a SpatialReference object.
+
+                # Trying to get from WKT first.
+                try:
+                    self._srs = SpatialReference(self.wkt)
+                    return self.srs
+                except Exception, msg:
+                    pass
+                
+                raise Exception('Could not get OSR SpatialReference from WKT: %s\nError:\n%s' % (self.wkt, msg))
+        else:
+            raise Exception('GDAL is not installed.')
+    srs = property(srs)
+
+    def ellipsoid(self):
+        """
+        Returns a tuple of the ellipsoid parameters:
+        (semimajor axis, semiminor axis, and inverse flattening).
+        """
+        if HAS_GDAL:
+            return self.srs.ellipsoid
+        else:
+            m = self.spheroid_regex.match(self.wkt)
+            if m: return (float(m.group('major')), float(m.group('flattening')))
+            else: return None
+    ellipsoid = property(ellipsoid)
+
+    def name(self):
+        "Returns the projection name."
+        return self.srs.name
+    name = property(name)
+
+    def spheroid(self):
+        "Returns the spheroid name for this spatial reference."
+        return self.srs['spheroid']
+    spheroid = property(spheroid)
+
+    def datum(self):
+        "Returns the datum for this spatial reference."
+        return self.srs['datum']
+    datum = property(datum)
+
+    def projected(self):
+        "Is this Spatial Reference projected?"
+        if HAS_GDAL:
+            return self.srs.projected
+        else:
+            return self.wkt.startswith('PROJCS')
+    projected = property(projected)
+
+    def local(self):
+        "Is this Spatial Reference local?"
+        if HAS_GDAL:
+            return self.srs.local
+        else:
+            return self.wkt.startswith('LOCAL_CS')
+    local = property(local)
+
+    def geographic(self):
+        "Is this Spatial Reference geographic?"
+        if HAS_GDAL:
+            return self.srs.geographic
+        else:
+            return self.wkt.startswith('GEOGCS')
+    geographic = property(geographic)
+
+    def linear_name(self):
+        "Returns the linear units name."
+        if HAS_GDAL:
+            return self.srs.linear_name
+        elif self.geographic: 
+            return None
+        else:
+            m = self.units_regex.match(self.wkt)
+            return m.group('unit_name')
+    linear_name = property(linear_name)
+
+    def linear_units(self):
+        "Returns the linear units."
+        if HAS_GDAL:
+            return self.srs.linear_units
+        elif self.geographic:
+            return None
+        else:
+            m = self.units_regex.match(self.wkt)
+            return m.group('unit')
+    linear_units = property(linear_units)
+
+    def angular_name(self):
+        "Returns the name of the angular units."
+        if HAS_GDAL:
+            return self.srs.angular_name
+        elif self.projected:
+            return None
+        else:
+            m = self.units_regex.match(self.wkt)
+            return m.group('unit_name')
+    angular_name = property(angular_name)
+
+    def angular_units(self):
+        "Returns the angular units."
+        if HAS_GDAL:
+            return self.srs.angular_units
+        elif self.projected:
+            return None
+        else:
+            m = self.units_regex.match(self.wkt)
+            return m.group('unit')
+    angular_units = property(angular_units)
+
+    def units(self):
+        "Returns a tuple of the units and the name."
+        if self.projected or self.local:
+            return (self.linear_units, self.linear_name)
+        elif self.geographic:
+            return (self.angular_units, self.angular_name)
+        else:
+            return (None, None)
+    units = property(units)
+
+    def get_units(cls, wkt):
+        """
+        Class method used by GeometryField on initialization to
+        retrive the units on the given WKT, without having to use
+        any of the database fields.
+        """
+        if HAS_GDAL:
+            return SpatialReference(wkt).units
+        else:
+            m = cls.units_regex.match(wkt)
+            return m.group('unit'), m.group('unit_name')
+    get_units = classmethod(get_units)
+
+    def get_spheroid(cls, wkt, string=True):
+        """
+        Class method used by GeometryField on initialization to
+        retrieve the `SPHEROID[..]` parameters from the given WKT.
+        """
+        if HAS_GDAL:
+            srs = SpatialReference(wkt)
+            sphere_params = srs.ellipsoid
+            sphere_name = srs['spheroid']
+        else:
+            m = cls.spheroid_regex.match(wkt)
+            if m: 
+                sphere_params = (float(m.group('major')), float(m.group('flattening')))
+                sphere_name = m.group('name')
+            else: 
+                return None
+        
+        if not string: 
+            return sphere_name, sphere_params
+        else:
+            # `string` parameter used to place in format acceptable by PostGIS
+            if len(sphere_params) == 3:
+                radius, flattening = sphere_params[0], sphere_params[2]
+            else:
+                radius, flattening = sphere_params
+            return 'SPHEROID["%s",%s,%s]' % (sphere_name, radius, flattening) 
+    get_spheroid = classmethod(get_spheroid)
+
+    def __unicode__(self):
+        """
+        Returns the string representation.  If GDAL is installed,
+        it will be 'pretty' OGC WKT.
+        """
+        try:
+            return unicode(self.srs)
+        except:
+            return unicode(self.wkt)
+
+# The SpatialRefSys and GeometryColumns models
+_srid_info = True
+if not PYTHON23 and settings.DATABASE_ENGINE == 'postgresql_psycopg2':
+    # Because the PostGIS version is checked when initializing the spatial 
+    # backend a `ProgrammingError` will be raised if the PostGIS tables 
+    # and functions are not installed.  We catch here so it won't be raised when 
+    # running the Django test suite.  `ImportError` is also possible if no ctypes.
+    try:
+        from django.contrib.gis.db.backend.postgis.models import GeometryColumns, SpatialRefSys
+    except:
+        _srid_info = False
+elif not PYTHON23 and settings.DATABASE_ENGINE == 'oracle':
+    # Same thing as above, except the GEOS library is attempted to be loaded for
+    # `BaseSpatialBackend`, and an exception will be raised during the
+    # Django test suite if it doesn't exist.
+    try:
+        from django.contrib.gis.db.backend.oracle.models import GeometryColumns, SpatialRefSys
+    except:
+        _srid_info = False
+else:
+    _srid_info = False
+
+if _srid_info:
+    def get_srid_info(srid):
+        """
+        Returns the units, unit name, and spheroid WKT associated with the
+        given SRID from the `spatial_ref_sys` (or equivalent) spatial database
+        table.  We use a database cursor to execute the query because this
+        function is used when it is not possible to use the ORM (for example,
+        during field initialization).
+        """
+        # SRID=-1 is a common convention for indicating the geometry has no
+        # spatial reference information associated with it.  Thus, we will
+        # return all None values without raising an exception.
+        if srid == -1: return None, None, None
+
+        # Getting the spatial reference WKT associated with the SRID from the
+        # `spatial_ref_sys` (or equivalent) spatial database table. This query
+        # cannot be executed using the ORM because this information is needed
+        # when the ORM cannot be used (e.g., during the initialization of 
+        # `GeometryField`).
+        from django.db import connection
+        cur = connection.cursor()
+        qn = connection.ops.quote_name
+        stmt = 'SELECT %(table)s.%(wkt_col)s FROM %(table)s WHERE (%(table)s.%(srid_col)s = %(srid)s)'
+        stmt = stmt % {'table' : qn(SpatialRefSys._meta.db_table),
+                       'wkt_col' : qn(SpatialRefSys.wkt_col()),
+                       'srid_col' : qn('srid'),
+                       'srid' : srid,
+                       }
+        cur.execute(stmt)
+        
+        # Fetching the WKT from the cursor; if the query failed raise an Exception.
+        fetched = cur.fetchone()
+        if not fetched:
+            raise ValueError('Failed to find spatial reference entry in "%s" corresponding to SRID=%s.' % 
+                             (SpatialRefSys._meta.db_table, srid))
+        srs_wkt = fetched[0]
+
+        # Getting metadata associated with the spatial reference system identifier.
+        # Specifically, getting the unit information and spheroid information 
+        # (both required for distance queries).
+        unit, unit_name = SpatialRefSys.get_units(srs_wkt)
+        spheroid = SpatialRefSys.get_spheroid(srs_wkt)
+        return unit, unit_name, spheroid
+else:
+    def get_srid_info(srid):
+        """
+        Dummy routine for the backends that do not have the OGC required
+        spatial metadata tables (like MySQL).
+        """
+        return None, None, None
+   
diff --git a/webapp/django/contrib/gis/shortcuts.py b/webapp/django/contrib/gis/shortcuts.py
new file mode 100644
index 0000000..5310e58
--- /dev/null
+++ b/webapp/django/contrib/gis/shortcuts.py
@@ -0,0 +1,31 @@
+import cStringIO, zipfile
+from django.http import HttpResponse
+from django.template import loader
+
+def compress_kml(kml):
+    "Returns compressed KMZ from the given KML string."
+    kmz = cStringIO.StringIO()
+    zf = zipfile.ZipFile(kmz, 'a', zipfile.ZIP_DEFLATED, False)
+    zf.writestr('doc.kml', kml)
+    zf.close()
+    kmz.seek(0)
+    return kmz.read()
+
+def render_to_kml(*args, **kwargs):
+    "Renders the response as KML (using the correct MIME type)."
+    return HttpResponse(loader.render_to_string(*args, **kwargs),
+                        mimetype='application/vnd.google-earth.kml+xml kml')
+
+def render_to_kmz(*args, **kwargs):
+    """
+    Compresses the KML content and returns as KMZ (using the correct 
+    MIME type).
+    """
+    return HttpResponse(compress_kml(loader.render_to_string(*args, **kwargs)),
+                        mimetype='application/vnd.google-earth.kmz')
+
+
+def render_to_text(*args, **kwargs):
+    "Renders the response using the MIME type for plain text."
+    return HttpResponse(loader.render_to_string(*args, **kwargs),
+                        mimetype='text/plain')
diff --git a/webapp/django/contrib/gis/sitemaps/__init__.py b/webapp/django/contrib/gis/sitemaps/__init__.py
new file mode 100644
index 0000000..9b6287f
--- /dev/null
+++ b/webapp/django/contrib/gis/sitemaps/__init__.py
@@ -0,0 +1,4 @@
+# Geo-enabled Sitemap classes.
+from django.contrib.gis.sitemaps.georss import GeoRSSSitemap
+from django.contrib.gis.sitemaps.kml import KMLSitemap, KMZSitemap
+
diff --git a/webapp/django/contrib/gis/sitemaps/georss.py b/webapp/django/contrib/gis/sitemaps/georss.py
new file mode 100644
index 0000000..45c97fb
--- /dev/null
+++ b/webapp/django/contrib/gis/sitemaps/georss.py
@@ -0,0 +1,53 @@
+from django.core import urlresolvers
+from django.contrib.sitemaps import Sitemap
+
+class GeoRSSSitemap(Sitemap):
+    """
+    A minimal hook to produce sitemaps for GeoRSS feeds.
+    """
+    def __init__(self, feed_dict, slug_dict=None):
+        """
+        This sitemap object initializes on a feed dictionary (as would be passed
+        to `django.contrib.syndication.views.feed`) and a slug dictionary.  
+        If the slug dictionary is not defined, then it's assumed the keys provide
+        the URL parameter to the feed.  However, if you have a complex feed (e.g.,
+        you override `get_object`, then you'll need to provide a slug dictionary.
+        The slug dictionary should have the same keys as the feed dictionary, but 
+        each value in the slug dictionary should be a sequence of slugs that may 
+        be used for valid feeds.  For example, let's say we have a feed that 
+        returns objects for a specific ZIP code in our feed dictionary:
+
+            feed_dict = {'zipcode' : ZipFeed}
+
+        Then we would use a slug dictionary with a list of the zip code slugs
+        corresponding to feeds you want listed in the sitemap:
+
+            slug_dict = {'zipcode' : ['77002', '77054']}
+        """
+        # Setting up.
+        self.feed_dict = feed_dict
+        self.locations = []
+        if slug_dict is None: slug_dict = {}
+        # Getting the feed locations.
+        for section in feed_dict.keys():
+            if slug_dict.get(section, False):
+                for slug in slug_dict[section]:
+                    self.locations.append(('%s/%s' % (section, slug)))
+            else:
+                self.locations.append(section)
+ 
+    def get_urls(self, page=1):
+        """
+        This method is overrridden so the appropriate `geo_format` attribute
+        is placed on each URL element.
+        """
+        urls = Sitemap.get_urls(self)
+        for url in urls: url['geo_format'] = 'georss'
+        return urls
+
+    def items(self):
+        return self.locations
+
+    def location(self, obj):
+        return urlresolvers.reverse('django.contrib.syndication.views.feed',
+                                    args=(obj,), kwargs={'feed_dict' : self.feed_dict})
diff --git a/webapp/django/contrib/gis/sitemaps/kml.py b/webapp/django/contrib/gis/sitemaps/kml.py
new file mode 100644
index 0000000..d85744f
--- /dev/null
+++ b/webapp/django/contrib/gis/sitemaps/kml.py
@@ -0,0 +1,63 @@
+from django.core import urlresolvers
+from django.contrib.sitemaps import Sitemap
+from django.contrib.gis.db.models.fields import GeometryField
+from django.db import models
+
+class KMLSitemap(Sitemap):
+    """
+    A minimal hook to produce KML sitemaps.
+    """
+    geo_format = 'kml'
+
+    def __init__(self, locations=None):
+        # If no locations specified, then we try to build for
+        # every model in installed applications.
+        self.locations = self._build_kml_sources(locations)
+        
+    def _build_kml_sources(self, sources):
+        """
+        Goes through the given sources and returns a 3-tuple of
+        the application label, module name, and field name of every
+        GeometryField encountered in the sources.
+
+        If no sources are provided, then all models.
+        """
+        kml_sources = []
+        if sources is None:
+            sources = models.get_models()
+        for source in sources:
+            if isinstance(source, models.base.ModelBase):
+                for field in source._meta.fields:
+                    if isinstance(field, GeometryField):
+                        kml_sources.append((source._meta.app_label,
+                                            source._meta.module_name,
+                                            field.name))
+            elif isinstance(source, (list, tuple)):
+                if len(source) != 3: 
+                    raise ValueError('Must specify a 3-tuple of (app_label, module_name, field_name).')
+                kml_sources.append(source)
+            else:
+                raise TypeError('KML Sources must be a model or a 3-tuple.')
+        return kml_sources
+
+    def get_urls(self, page=1):
+        """
+        This method is overrridden so the appropriate `geo_format` attribute
+        is placed on each URL element.
+        """
+        urls = Sitemap.get_urls(self, page=page)
+        for url in urls: url['geo_format'] = self.geo_format
+        return urls
+
+    def items(self):
+        return self.locations
+
+    def location(self, obj):
+        return urlresolvers.reverse('django.contrib.gis.sitemaps.views.%s' % self.geo_format,
+                                    kwargs={'label' : obj[0], 
+                                            'model' : obj[1],
+                                            'field_name': obj[2],
+                                            }
+                                    )
+class KMZSitemap(KMLSitemap):
+    geo_format = 'kmz'
diff --git a/webapp/django/contrib/gis/sitemaps/views.py b/webapp/django/contrib/gis/sitemaps/views.py
new file mode 100644
index 0000000..d20f7c6
--- /dev/null
+++ b/webapp/django/contrib/gis/sitemaps/views.py
@@ -0,0 +1,102 @@
+from django.http import HttpResponse, Http404
+from django.template import loader
+from django.contrib.gis.db.backend import SpatialBackend
+from django.contrib.sites.models import Site
+from django.core import urlresolvers
+from django.core.paginator import EmptyPage, PageNotAnInteger
+from django.db.models import get_model
+from django.utils.encoding import smart_str
+
+from django.contrib.gis.shortcuts import render_to_kml, render_to_kmz
+
+class KMLNotFound(Exception):
+    pass
+
+def index(request, sitemaps):
+    """
+    This view generates a sitemap index that uses the proper view
+    for resolving geographic section sitemap URLs.
+    """
+    current_site = Site.objects.get_current()
+    sites = []
+    protocol = request.is_secure() and 'https' or 'http'
+    for section, site in sitemaps.items():
+        if callable(site):
+            pages = site().paginator.num_pages
+        else:
+            pages = site.paginator.num_pages
+        sitemap_url = urlresolvers.reverse('django.contrib.gis.sitemaps.views.sitemap', kwargs={'section': section})
+        sites.append('%s://%s%s' % (protocol, current_site.domain, sitemap_url))
+      
+        if pages > 1:
+            for page in range(2, pages+1):
+                sites.append('%s://%s%s?p=%s' % (protocol, current_site.domain, sitemap_url, page))
+    xml = loader.render_to_string('sitemap_index.xml', {'sitemaps': sites})
+    return HttpResponse(xml, mimetype='application/xml')
+
+def sitemap(request, sitemaps, section=None):
+    """
+    This view generates a sitemap with additional geographic
+    elements defined by Google.
+    """
+    maps, urls = [], []
+    if section is not None:
+        if section not in sitemaps:
+            raise Http404("No sitemap available for section: %r" % section)
+        maps.append(sitemaps[section])
+    else:
+        maps = sitemaps.values()
+
+    page = request.GET.get("p", 1)
+    for site in maps:
+        try:
+            if callable(site):
+                urls.extend(site().get_urls(page))
+            else:
+                urls.extend(site.get_urls(page))
+        except EmptyPage:
+            raise Http404("Page %s empty" % page)
+        except PageNotAnInteger:
+            raise Http404("No page '%s'" % page)
+    xml = smart_str(loader.render_to_string('gis/sitemaps/geo_sitemap.xml', {'urlset': urls}))
+    return HttpResponse(xml, mimetype='application/xml')
+
+def kml(request, label, model, field_name=None, compress=False):
+    """
+    This view generates KML for the given app label, model, and field name.
+
+    The model's default manager must be GeoManager, and the field name
+    must be that of a geographic field.
+    """
+    placemarks = []
+    klass = get_model(label, model)
+    if not klass:
+        raise KMLNotFound("You must supply a valid app.model label.  Got %s.%s" % (label, model))
+
+    if SpatialBackend.postgis:
+        # PostGIS will take care of transformation.
+        placemarks = klass._default_manager.kml(field_name=field_name)
+    else:
+        # There's no KML method on Oracle or MySQL, so we use the `kml`
+        # attribute of the lazy geometry instead.
+        placemarks = []
+        if SpatialBackend.oracle:
+            qs = klass._default_manager.transform(4326, field_name=field_name)
+        else:
+            qs = klass._default_manager.all()
+        for mod in qs:
+            setattr(mod, 'kml', getattr(mod, field_name).kml)
+            placemarks.append(mod)
+
+    # Getting the render function and rendering to the correct.
+    if compress:
+        render = render_to_kmz
+    else:
+        render = render_to_kml
+    return render('gis/kml/placemarks.kml', {'places' : placemarks})
+
+def kmz(request, label, model, field_name=None):
+    """
+    This view returns KMZ for the given app label, model, and field name.
+    """
+    return kml(request, label, model, field_name, True)
diff --git a/webapp/django/contrib/gis/templates/gis/admin/openlayers.html b/webapp/django/contrib/gis/templates/gis/admin/openlayers.html
new file mode 100644
index 0000000..acf82b2
--- /dev/null
+++ b/webapp/django/contrib/gis/templates/gis/admin/openlayers.html
@@ -0,0 +1,37 @@
+{% block extrastyle %}
+<style type="text/css">
+  #{{ id }}_map { width: {{ map_width }}px; height: {{ map_height }}px; }
+  #{{ id }}_map .aligned label { float:inherit; }
+  #{{ id }}_admin_map { position: relative; vertical-align: top; float: left; }
+  {% if not display_wkt %}#{{ id }} { display: none; }{% endif %}
+  .olControlEditingToolbar .olControlModifyFeatureItemActive { 
+     background-image: url("{{ admin_media_prefix }}img/gis/move_vertex_on.png");
+     background-repeat: no-repeat;
+  }
+  .olControlEditingToolbar .olControlModifyFeatureItemInactive { 
+     background-image: url("{{ admin_media_prefix }}img/gis/move_vertex_off.png");
+     background-repeat: no-repeat;
+  }
+</style>
+<!--[if IE]>
+<style type="text/css">
+  /* This fixes the the mouse offset issues in IE. */
+  #{{ id }}_admin_map { position: static; vertical-align: top; }
+  /* `font-size: 0` fixes the 1px border between tiles, but borks LayerSwitcher.
+      Thus, this is disabled until a better fix is found.
+  #{{ id }}_map { width: {{ map_width }}px; height: {{ map_height }}px; font-size: 0; } */
+</style>
+<![endif]-->
+{% endblock %}
+<span id="{{ id }}_admin_map">
+<script type="text/javascript">
+//<![CDATA[
+{% block openlayers %}{% include "gis/admin/openlayers.js" %}{% endblock %}
+//]]>
+</script>
+<div id="{{ id }}_map"></div>
+<a href="javascript:{{ module }}.clearFeatures()">Delete all Features</a>
+{% if display_wkt %}<p> WKT debugging window:</p>{% endif %}
+<textarea id="{{ id }}" class="vWKTField required" cols="150" rows="10" name="{{ field_name }}">{{ wkt }}</textarea>
+<script type="text/javascript">{% block init_function %}{{ module }}.init();{% endblock %}</script>
+</span>
diff --git a/webapp/django/contrib/gis/templates/gis/admin/openlayers.js b/webapp/django/contrib/gis/templates/gis/admin/openlayers.js
new file mode 100644
index 0000000..7194261
--- /dev/null
+++ b/webapp/django/contrib/gis/templates/gis/admin/openlayers.js
@@ -0,0 +1,157 @@
+{# Author: Justin Bronn, Travis Pinney & Dane Springmeyer #}
+{% block vars %}var {{ module }} = {};
+{{ module }}.map = null; {{ module }}.controls = null; {{ module }}.panel = null; {{ module }}.re = new RegExp("^SRID=\d+;(.+)", "i"); {{ module }}.layers = {}; 
+{{ module }}.wkt_f = new OpenLayers.Format.WKT();
+{{ module }}.is_collection = {% if is_collection %}true{% else %}false{% endif %};
+{{ module }}.collection_type = '{{ collection_type }}';
+{{ module }}.is_linestring = {% if is_linestring %}true{% else %}false{% endif %};
+{{ module }}.is_polygon = {% if is_polygon %}true{% else %}false{% endif %};
+{{ module }}.is_point = {% if is_point %}true{% else %}false{% endif %};
+{% endblock %}
+{{ module }}.get_ewkt = function(feat){return 'SRID={{ srid }};' + {{ module }}.wkt_f.write(feat);}
+{{ module }}.read_wkt = function(wkt){
+  // OpenLayers cannot handle EWKT -- we make sure to strip it out.
+  // EWKT is only exposed to OL if there's a validation error in the admin.
+  var match = {{ module }}.re.exec(wkt);
+  if (match){wkt = match[1];}
+  return {{ module }}.wkt_f.read(wkt);
+}
+{{ module }}.write_wkt = function(feat){
+  if ({{ module }}.is_collection){ {{ module }}.num_geom = feat.geometry.components.length;}
+  else { {{ module }}.num_geom = 1;}
+  document.getElementById('{{ id }}').value = {{ module }}.get_ewkt(feat);
+}
+{{ module }}.add_wkt = function(event){
+  // This function will sync the contents of the `vector` layer with the
+  // WKT in the text field.
+  if ({{ module }}.is_collection){
+    var feat = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.{{ geom_type }}());
+    for (var i = 0; i < {{ module }}.layers.vector.features.length; i++){
+      feat.geometry.addComponents([{{ module }}.layers.vector.features[i].geometry]);
+    }
+    {{ module }}.write_wkt(feat);
+  } else {
+    // Make sure to remove any previously added features.
+    if ({{ module }}.layers.vector.features.length > 1){
+      old_feats = [{{ module }}.layers.vector.features[0]];
+      {{ module }}.layers.vector.removeFeatures(old_feats);
+      {{ module }}.layers.vector.destroyFeatures(old_feats);
+    }
+    {{ module }}.write_wkt(event.feature);
+  }
+}
+{{ module }}.modify_wkt = function(event){
+  if ({{ module }}.is_collection){
+    if ({{ module }}.is_point){
+      {{ module }}.add_wkt(event); 
+      return;
+    } else {
+      // When modifying the selected components are added to the 
+      // vector layer so we only increment to the `num_geom` value.
+      var feat = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.{{ geom_type }}());
+      for (var i = 0; i < {{ module }}.num_geom; i++){
+	feat.geometry.addComponents([{{ module }}.layers.vector.features[i].geometry]);
+      }
+      {{ module }}.write_wkt(feat);
+    }
+  } else {
+    {{ module }}.write_wkt(event.feature);
+  }
+}
+// Function to clear vector features and purge wkt from div
+{{ module }}.deleteFeatures = function(){
+  {{ module }}.layers.vector.removeFeatures({{ module }}.layers.vector.features);
+  {{ module }}.layers.vector.destroyFeatures();
+}
+{{ module }}.clearFeatures = function (){
+  {{ module }}.deleteFeatures();
+  document.getElementById('{{ id }}').value = '';
+  {{ module }}.map.setCenter(new OpenLayers.LonLat({{ default_lon }}, {{ default_lat }}), {{ default_zoom }});
+}
+// Add Select control
+{{ module }}.addSelectControl = function(){   
+  var select = new OpenLayers.Control.SelectFeature({{ module }}.layers.vector, {'toggle' : true, 'clickout' : true});
+  {{ module }}.map.addControl(select);
+  select.activate();
+}
+{{ module }}.enableDrawing = function(){ {{ module }}.map.getControlsByClass('OpenLayers.Control.DrawFeature')[0].activate();}
+{{ module }}.enableEditing = function(){ {{ module }}.map.getControlsByClass('OpenLayers.Control.ModifyFeature')[0].activate();}
+// Create an array of controls based on geometry type
+{{ module }}.getControls = function(lyr){
+  {{ module }}.panel = new OpenLayers.Control.Panel({'displayClass': 'olControlEditingToolbar'});
+  var nav = new OpenLayers.Control.Navigation();
+  var draw_ctl;
+  if ({{ module }}.is_linestring){
+    draw_ctl = new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Path, {'displayClass': 'olControlDrawFeaturePath'});
+  } else if ({{ module }}.is_polygon){
+    draw_ctl = new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Polygon, {'displayClass': 'olControlDrawFeaturePolygon'});
+  } else if ({{ module }}.is_point){
+    draw_ctl = new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Point, {'displayClass': 'olControlDrawFeaturePoint'});
+  }
+  {% if modifiable %}
+  var mod = new OpenLayers.Control.ModifyFeature(lyr, {'displayClass': 'olControlModifyFeature'});
+  {{ module }}.controls = [nav, draw_ctl, mod];
+  {% else %}
+  {{ module }}.controls = [nav, darw_ctl];
+  {% endif %}  
+}
+{{ module }}.init = function(){
+    {% block map_options %}// The options hash, w/ zoom, resolution, and projection settings.
+    var options = { 
+{% autoescape off %}{% for item in map_options.items %}      '{{ item.0 }}' : {{ item.1 }}{% if not forloop.last %},{% endif %}
+{% endfor %}{% endautoescape %}    };{% endblock %}
+    // The admin map for this geometry field.
+    {{ module }}.map = new OpenLayers.Map('{{ id }}_map', options);
+    // Base Layer
+    {{ module }}.layers.base = {% block base_layer %}new OpenLayers.Layer.WMS( "{{ wms_name }}", "{{ wms_url }}", {layers: '{{ wms_layer }}'} );{% endblock %}
+    {{ module }}.map.addLayer({{ module }}.layers.base);
+    {% block extra_layers %}{% endblock %}
+    {% if is_linestring %}OpenLayers.Feature.Vector.style["default"]["strokeWidth"] = 3; // Default too thin for linestrings. {% endif %}
+    {{ module }}.layers.vector = new OpenLayers.Layer.Vector(" {{ field_name }}");
+    {{ module }}.map.addLayer({{ module }}.layers.vector);
+    // Read WKT from the text field.
+    var wkt = document.getElementById('{{ id }}').value;
+    if (wkt){
+      // After reading into geometry, immediately write back to 
+      // WKT <textarea> as EWKT (so that SRID is included).
+      var admin_geom = {{ module }}.read_wkt(wkt);
+      {{ module }}.write_wkt(admin_geom);
+      if ({{ module }}.is_collection){
+	// If geometry collection, add each component individually so they may be
+	// edited individually.
+	for (var i = 0; i < {{ module }}.num_geom; i++){
+	  {{ module }}.layers.vector.addFeatures([new OpenLayers.Feature.Vector(admin_geom.geometry.components[i].clone())]);
+	}
+      } else {
+	{{ module }}.layers.vector.addFeatures([admin_geom]);
+      }
+      // Zooming to the bounds.
+      {{ module }}.map.zoomToExtent(admin_geom.geometry.getBounds());
+    } else {
+      {{ module }}.map.setCenter(new OpenLayers.LonLat({{ default_lon }}, {{ default_lat }}), {{ default_zoom }});
+    }
+    // This allows editing of the geographic fields -- the modified WKT is
+    // written back to the content field (as EWKT, so that the ORM will know
+    // to transform back to original SRID). 
+    {{ module }}.layers.vector.events.on({"featuremodified" : {{ module }}.modify_wkt});
+    {{ module }}.layers.vector.events.on({"featureadded" : {{ module }}.add_wkt});
+    {% block controls %}
+    // Map controls:
+    // Add geometry specific panel of toolbar controls
+    {{ module }}.getControls({{ module }}.layers.vector);
+    {{ module }}.panel.addControls({{ module }}.controls);
+    {{ module }}.map.addControl({{ module }}.panel);
+    {{ module }}.addSelectControl();
+    // Then add optional visual controls
+    {% if mouse_position %}{{ module }}.map.addControl(new OpenLayers.Control.MousePosition());{% endif %}
+    {% if scale_text %}{{ module }}.map.addControl(new OpenLayers.Control.Scale());{% endif %}
+    {% if layerswitcher %}{{ module }}.map.addControl(new OpenLayers.Control.LayerSwitcher());{% endif %}
+    // Then add optional behavior controls
+    {% if scrollable %}{% else %}{{ module }}.map.getControlsByClass('OpenLayers.Control.Navigation')[0].disableZoomWheel();{% endif %}
+    {% endblock %}
+    if (wkt){
+      {{ module }}.enableEditing();
+    } else {
+      {{ module }}.enableDrawing();
+    }
+}
diff --git a/webapp/django/contrib/gis/templates/gis/admin/osm.html b/webapp/django/contrib/gis/templates/gis/admin/osm.html
new file mode 100644
index 0000000..b74b41f
--- /dev/null
+++ b/webapp/django/contrib/gis/templates/gis/admin/osm.html
@@ -0,0 +1,2 @@
+{% extends "gis/admin/openlayers.html" %}
+{% block openlayers %}{% include "gis/admin/osm.js" %}{% endblock %}
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/templates/gis/admin/osm.js b/webapp/django/contrib/gis/templates/gis/admin/osm.js
new file mode 100644
index 0000000..2a1f59e
--- /dev/null
+++ b/webapp/django/contrib/gis/templates/gis/admin/osm.js
@@ -0,0 +1,2 @@
+{% extends "gis/admin/openlayers.js" %}
+{% block base_layer %}new OpenLayers.Layer.OSM.Mapnik("OpenStreetMap (Mapnik)");{% endblock %}
diff --git a/webapp/django/contrib/gis/templates/gis/google/js/google-map.js b/webapp/django/contrib/gis/templates/gis/google/js/google-map.js
new file mode 100644
index 0000000..5efdf90
--- /dev/null
+++ b/webapp/django/contrib/gis/templates/gis/google/js/google-map.js
@@ -0,0 +1,34 @@
+{% autoescape off %}{% block vars %}var map;{% endblock %}
+{% block functions %}{% endblock %}
+{% block load %}function {{ load_func }}(){
+  if (GBrowserIsCompatible()) {
+    map = new GMap2(document.getElementById("{{ dom_id }}"));
+    map.setCenter(new GLatLng({{ center.1 }}, {{ center.0 }}), {{ zoom }});
+    {% block controls %}map.addControl(new GSmallMapControl());
+    map.addControl(new GMapTypeControl());{% endblock %}
+    {% if calc_zoom %}var bounds = new GLatLngBounds(); var tmp_bounds = new GLatLngBounds();{% endif %}
+    {% for kml_url in kml_urls %}var kml{{ forloop.counter }} = new GGeoXml("{{ kml_url }}");
+    map.addOverlay(kml{{ forloop.counter }});{% endfor %}
+
+    {% for polygon in polygons %}var poly{{ forloop.counter }} = new {{ polygon }};
+    map.addOverlay(poly{{ forloop.counter }});
+    {% for event in polygon.events %}GEvent.addListener(poly{{ forloop.parentloop.counter }}, {{ event }});{% endfor %}
+    {% if calc_zoom %}tmp_bounds = poly{{ forloop.counter }}.getBounds(); bounds.extend(tmp_bounds.getSouthWest()); bounds.extend(tmp_bounds.getNorthEast());{% endif %}{% endfor %}
+
+    {% for polyline in polylines %}var polyline{{ forloop.counter }} = new {{ polyline }};
+    map.addOverlay(polyline{{ forloop.counter }});
+    {% for event in polyline.events %}GEvent.addListener(polyline{{ forloop.parentloop.counter }}, {{ event }}); {% endfor %}
+    {% if calc_zoom %}tmp_bounds = polyline{{ forloop.counter }}.getBounds(); bounds.extend(tmp_bounds.getSouthWest()); bounds.extend(tmp_bounds.getNorthEast());{% endif %}{% endfor %}
+    
+    {% for marker in markers %}var marker{{ forloop.counter }} = new {{ marker }};
+    map.addOverlay(marker{{ forloop.counter }});
+    {% for event in marker.events %}GEvent.addListener(marker{{ forloop.parentloop.counter }}, {{ event }}); {% endfor %}
+    {% if calc_zoom %}bounds.extend(marker{{ forloop.counter }}.getLatLng()); {% endif %}{% endfor %}
+
+    {% if calc_zoom %}map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));{% endif %}
+    {% block load_extra %}{% endblock %}
+  }else {
+    alert("Sorry, the Google Maps API is not compatible with this browser.");
+  }
+}
+{% endblock %}{% endautoescape %}
diff --git a/webapp/django/contrib/gis/templates/gis/kml/base.kml b/webapp/django/contrib/gis/templates/gis/kml/base.kml
new file mode 100644
index 0000000..374404c
--- /dev/null
+++ b/webapp/django/contrib/gis/templates/gis/kml/base.kml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kml xmlns="http://earth.google.com/kml/{% block kml_version %}2.1{% endblock %}">
+<Document>{% block name %}{% endblock %}
+{% block placemarks %}{% endblock %}
+</Document>
+</kml>
diff --git a/webapp/django/contrib/gis/templates/gis/kml/placemarks.kml b/webapp/django/contrib/gis/templates/gis/kml/placemarks.kml
new file mode 100644
index 0000000..ea2ac19
--- /dev/null
+++ b/webapp/django/contrib/gis/templates/gis/kml/placemarks.kml
@@ -0,0 +1,8 @@
+{% extends "gis/kml/base.kml" %}
+{% block placemarks %}{% for place in places %}
+  <Placemark>
+    <name>{% if place.name %}{{ place.name }}{% else %}{{ place }}{% endif %}</name>
+    <description>{% if place.description %}{{ place.description }}{% else %}{{ place }}{% endif %}</description>
+    {{ place.kml|safe }}
+  </Placemark>{% endfor %}{% endblock %}
+
diff --git a/webapp/django/contrib/gis/templates/gis/sitemaps/geo_sitemap.xml b/webapp/django/contrib/gis/templates/gis/sitemaps/geo_sitemap.xml
new file mode 100644
index 0000000..dbf858e
--- /dev/null
+++ b/webapp/django/contrib/gis/templates/gis/sitemaps/geo_sitemap.xml
@@ -0,0 +1,17 @@
+{% autoescape off %}<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:geo="http://www.google.com/geo/schemas/sitemap/1.0">
+{% spaceless %}
+{% for url in urlset %}
+  <url>
+    <loc>{{ url.location|escape }}</loc>
+    {% if url.lastmod %}<lastmod>{{ url.lastmod|date:"Y-m-d" }}</lastmod>{% endif %}
+    {% if url.changefreq %}<changefreq>{{ url.changefreq }}</changefreq>{% endif %}
+    {% if url.priority %}<priority>{{ url.priority }}</priority>{% endif %}
+    {% if url.geo_format %}<geo:geo>
+      <geo:format>{{ url.geo_format }}</geo:format>
+    </geo:geo>{% endif %}
+   </url>
+{% endfor %}
+{% endspaceless %}
+</urlset>
+{% endautoescape %}
diff --git a/webapp/django/contrib/gis/tests/__init__.py b/webapp/django/contrib/gis/tests/__init__.py
new file mode 100644
index 0000000..8aa3820
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/__init__.py
@@ -0,0 +1,202 @@
+import sys, unittest
+
+from django.conf import settings
+from django.db import connection
+from django.db.models import get_app, get_apps, loading
+from django.test.simple import build_suite, build_test
+from django.test.utils import setup_test_environment, teardown_test_environment
+
+def geo_suite():
+    """
+    Builds a test suite for the GIS package.  This is not named
+    `suite` so it will not interfere with the Django test suite (since
+    spatial database tables are required to execute these tests on
+    some backends).
+    """
+    from django.contrib.gis.tests.utils import mysql, oracle, postgis
+    from django.contrib.gis.gdal import HAS_GDAL
+    from django.contrib.gis.utils import HAS_GEOIP
+
+    # Tests that require use of a spatial database (e.g., creation of models)
+    test_models = ['geoapp',]
+
+    # Tests that do not require setting up and tearing down a spatial database.
+    test_suite_names = [
+        'test_geos',
+        'test_measure',
+        ]
+    if HAS_GDAL:
+        if oracle:
+            # TODO: There's a problem with `select_related` and GeoQuerySet on
+            # Oracle -- e.g., GeoModel.objects.distance(geom, field_name='fk__point')
+            # doesn't work so we don't test `relatedapp`.
+            test_models += ['distapp', 'layermap']
+        elif postgis:
+            test_models += ['distapp', 'layermap', 'relatedapp']
+        elif mysql:
+            test_models += ['relatedapp']
+
+        test_suite_names += [
+            'test_gdal_driver',
+            'test_gdal_ds',
+            'test_gdal_envelope',
+            'test_gdal_geom',
+            'test_gdal_srs',
+            'test_spatialrefsys',
+            ]
+    else:
+        print >>sys.stderr, "GDAL not available - no GDAL tests will be run."
+
+    if HAS_GEOIP and hasattr(settings, 'GEOIP_PATH'):
+        test_suite_names.append('test_geoip')
+
+    s = unittest.TestSuite()
+    for test_suite in test_suite_names:
+        tsuite = getattr(__import__('django.contrib.gis.tests', globals(), locals(), [test_suite]),test_suite)
+        s.addTest(tsuite.suite())
+    return s, test_models
+
+def run_gis_tests(test_labels, **kwargs):
+    """
+    Use this routine as the TEST_RUNNER in your settings in order to run the
+    GeoDjango test suite.  This must be done as a database superuser for
+    PostGIS, so read the docstring in `run_test()` below for more details.
+    """
+    from django.contrib.gis.tests.utils import mysql
+
+    # Getting initial values.
+    old_installed = settings.INSTALLED_APPS
+    old_root_urlconf = settings.ROOT_URLCONF
+
+    # Based on ALWAYS_INSTALLED_APPS from django test suite --
+    # this prevents us from creating tables in our test database
+    # from locally installed apps.
+    new_installed =  ['django.contrib.contenttypes',
+                      'django.contrib.auth',
+                      'django.contrib.sites',
+                      'django.contrib.sitemaps',
+                      'django.contrib.flatpages',
+                      'django.contrib.gis',
+                      'django.contrib.redirects',
+                      'django.contrib.sessions',
+                      'django.contrib.comments',
+                      'django.contrib.admin',
+                      ]
+
+    # Setting the URLs.
+    settings.ROOT_URLCONF = 'django.contrib.gis.tests.urls'
+
+    # Creating the test suite, adding the test models to INSTALLED_APPS, and
+    # adding the model test suites to our suite package.
+    gis_suite, test_models = geo_suite()
+    for test_model in test_models:
+        module_name = 'django.contrib.gis.tests.%s' % test_model
+        if mysql:
+            test_module_name = 'tests_mysql'
+        else:
+            test_module_name = 'tests'
+        new_installed.append(module_name)
+
+        # Getting the model test suite
+        tsuite = getattr(__import__('django.contrib.gis.tests.%s' % test_model, globals(), locals(), [test_module_name]), 
+                         test_module_name)
+        gis_suite.addTest(tsuite.suite())
+
+    # Resetting the loaded flag to take into account what we appended to 
+    # the INSTALLED_APPS (since this routine is invoked through 
+    # django/core/management, it caches the apps; this ensures that syncdb 
+    # will see our appended models)
+    settings.INSTALLED_APPS = new_installed
+    loading.cache.loaded = False
+
+    # Running the tests using the GIS test runner.
+    result = run_tests(test_labels, suite=gis_suite, **kwargs)
+
+    # Restoring modified settings.
+    settings.INSTALLED_APPS = old_installed
+    settings.ROOT_URLCONF = old_root_urlconf
+
+    return result
+
+def run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[], suite=None):
+    """
+    This module allows users to run tests for GIS apps that require the creation 
+    of a spatial database.  Currently, this is only required for PostgreSQL as
+    PostGIS needs extra overhead in test database creation.
+
+    In order to create a PostGIS database, the DATABASE_USER (or 
+    TEST_DATABASE_USER, if defined) will require superuser priviliges.  
+
+    To accomplish this outside the `postgres` user, you have a few options:
+      (A) Make your user a super user:
+        This may be done at the time the user is created, for example:
+        $ createuser --superuser <user_name>
+
+        Or you may alter the user's role from the SQL shell (assuming this
+        is done from an existing superuser role):
+        postgres# ALTER ROLE <user_name> SUPERUSER;
+
+      (B) Create your own PostgreSQL database as a local user:
+        1. Initialize database: `initdb -D /path/to/user/db`
+        2. If there's already a Postgres instance on the machine, it will need
+           to use a different TCP port than 5432. Edit postgresql.conf (in 
+           /path/to/user/db) to change the database port (e.g. `port = 5433`).  
+        3. Start this database `pg_ctl -D /path/to/user/db start`
+
+      (C) On Windows platforms the pgAdmin III utility may also be used as 
+        a simple way to add superuser privileges to your database user.
+
+    The TEST_RUNNER needs to be set in your settings like so:
+
+      TEST_RUNNER='django.contrib.gis.tests.run_tests'
+
+    Note: This test runner assumes that the PostGIS SQL files ('lwpostgis.sql'
+    and 'spatial_ref_sys.sql') are installed in the directory specified by 
+    `pg_config --sharedir` (and defaults to /usr/local/share if that fails).
+    This behavior is overridden if POSTGIS_SQL_PATH is set in your settings.
+    
+    Windows users should set POSTGIS_SQL_PATH manually because the output
+    of `pg_config` uses paths like 'C:/PROGRA~1/POSTGR~1/..'.
+
+    Finally, the tests may be run by invoking `./manage.py test`.
+    """
+    # The `create_spatial_db` routine abstracts away all the steps needed
+    # to properly construct a spatial database for the backend.
+    from django.contrib.gis.db.backend import create_spatial_db
+
+    # Setting up for testing.
+    setup_test_environment()
+    settings.DEBUG = False
+    old_name = settings.DATABASE_NAME
+
+    # The suite may be passed in manually, e.g., when we run the GeoDjango test,
+    # we want to build it and pass it in due to some customizations.  Otherwise, 
+    # the normal test suite creation process from `django.test.simple.run_tests` 
+    # is used to create the test suite.
+    if suite is None:
+        suite = unittest.TestSuite()
+        if test_labels:
+            for label in test_labels:
+                if '.' in label:
+                    suite.addTest(build_test(label))
+                else:
+                    app = get_app(label)
+                    suite.addTest(build_suite(app))
+        else:
+            for app in get_apps():
+                suite.addTest(build_suite(app))
+    
+        for test in extra_tests:
+            suite.addTest(test)
+
+    # Creating the test spatial database.
+    create_spatial_db(test=True, verbosity=verbosity)
+
+    # Executing the tests (including the model tests), and destorying the
+    # test database after the tests have completed.
+    result = unittest.TextTestRunner(verbosity=verbosity).run(suite)
+    connection.creation.destroy_test_db(old_name, verbosity)
+    teardown_test_environment()
+
+    # Returning the total failures and errors
+    return len(result.failures) + len(result.errors)
diff --git a/webapp/django/contrib/gis/tests/data/test_point/test_point.dbf b/webapp/django/contrib/gis/tests/data/test_point/test_point.dbf
new file mode 100644
index 0000000..b2b4eca
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_point/test_point.dbf
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/data/test_point/test_point.prj b/webapp/django/contrib/gis/tests/data/test_point/test_point.prj
new file mode 100644
index 0000000..a30c00a
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_point/test_point.prj
@@ -0,0 +1 @@
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/data/test_point/test_point.shp b/webapp/django/contrib/gis/tests/data/test_point/test_point.shp
new file mode 100644
index 0000000..95e8b0a
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_point/test_point.shp
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/data/test_point/test_point.shx b/webapp/django/contrib/gis/tests/data/test_point/test_point.shx
new file mode 100644
index 0000000..087f3da
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_point/test_point.shx
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/data/test_poly/test_poly.dbf b/webapp/django/contrib/gis/tests/data/test_poly/test_poly.dbf
new file mode 100644
index 0000000..7965bd6
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_poly/test_poly.dbf
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/data/test_poly/test_poly.prj b/webapp/django/contrib/gis/tests/data/test_poly/test_poly.prj
new file mode 100644
index 0000000..a30c00a
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_poly/test_poly.prj
@@ -0,0 +1 @@
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/data/test_poly/test_poly.shp b/webapp/django/contrib/gis/tests/data/test_poly/test_poly.shp
new file mode 100644
index 0000000..b22930b
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_poly/test_poly.shp
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/data/test_poly/test_poly.shx b/webapp/django/contrib/gis/tests/data/test_poly/test_poly.shx
new file mode 100644
index 0000000..c92f78b
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_poly/test_poly.shx
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/data/test_vrt/test_vrt.csv b/webapp/django/contrib/gis/tests/data/test_vrt/test_vrt.csv
new file mode 100644
index 0000000..dff648f
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_vrt/test_vrt.csv
@@ -0,0 +1,4 @@
+POINT_X,POINT_Y,NUM
+1.0,2.0,5
+5.0,23.0,17
+100.0,523.5,23
diff --git a/webapp/django/contrib/gis/tests/data/test_vrt/test_vrt.vrt b/webapp/django/contrib/gis/tests/data/test_vrt/test_vrt.vrt
new file mode 100644
index 0000000..85e6be8
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/data/test_vrt/test_vrt.vrt
@@ -0,0 +1,7 @@
+<OGRVRTDataSource>
+<OGRVRTLayer name="test_vrt">
+<SrcDataSource relativeToVRT="1">test_vrt.csv</SrcDataSource>
+<GeometryType>wkbPoint</GeometryType>
+<GeometryField encoding="PointFromColumns" x="POINT_X" y="POINT_Y" z="NUM"/>
+</OGRVRTLayer>
+</OGRVRTDataSource>
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/distapp/__init__.py b/webapp/django/contrib/gis/tests/distapp/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/distapp/__init__.py
diff --git a/webapp/django/contrib/gis/tests/distapp/data.py b/webapp/django/contrib/gis/tests/distapp/data.py
new file mode 100644
index 0000000..fefe313
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/distapp/data.py
@@ -0,0 +1,33 @@
+au_cities = (('Wollongong', 150.902, -34.4245),
+             ('Shellharbour', 150.87, -34.5789),
+             ('Thirroul', 150.924, -34.3147),
+             ('Mittagong', 150.449, -34.4509),
+             ('Batemans Bay', 150.175, -35.7082),
+             ('Canberra', 144.963, -37.8143),
+             ('Melbourne', 145.963, -37.8143),
+             ('Sydney', 151.26071, -33.887034),
+             ('Hobart', 147.33, -42.8827),
+             ('Adelaide', 138.6, -34.9258),
+             ('Hillsdale', 151.231341, -33.952685),
+             )
+
+stx_cities = (('Downtown Houston', -95.363151, 29.763374),
+              ('West University Place', -95.448601, 29.713803),
+              ('Southside Place', -95.436920, 29.705777),
+              ('Bellaire', -95.458732, 29.705614),
+              ('Pearland', -95.287303, 29.563568),
+              ('Galveston', -94.797489, 29.301336),
+              ('Sealy', -96.156952, 29.780918),
+              ('San Antonio', -98.493183, 29.424170),
+              ('Saint Hedwig', -98.199820, 29.414197),
+              )
+
+# Data from U.S. Census ZCTA cartographic boundary file for Texas (`zt48_d00.shp`).
+stx_zips = (('77002', 'POLYGON ((-95.365015 29.772327, -95.362415 29.772327, -95.360915 29.771827, -95.354615 29.771827, -95.351515 29.772527, -95.350915 29.765327, -95.351015 29.762436, -95.350115 29.760328, -95.347515 29.758528, -95.352315 29.753928, -95.356415 29.756328, -95.358215 29.754028, -95.360215 29.756328, -95.363415 29.757128, -95.364014 29.75638, -95.363415 29.753928, -95.360015 29.751828, -95.361815 29.749528, -95.362715 29.750028, -95.367516 29.744128, -95.369316 29.745128, -95.373916 29.744128, -95.380116 29.738028, -95.387916 29.727929, -95.388516 29.729629, -95.387916 29.732129, -95.382916 29.737428, -95.376616 29.742228, -95.372616 29.747228, -95.378601 29.750846, -95.378616 29.752028, -95.378616 29.754428, -95.376016 29.754528, -95.374616 29.759828, -95.373616 29.761128, -95.371916 29.763928, -95.372316 29.768727, -95.365884 29.76791, -95.366015 29.767127, -95.358715 29.765327, -95.358615 29.766327, -95.359115 29.767227, -95.360215 29.767027, -95.362783 29.768267, -95.365315 29.770527, -95.365015 29.772327))'),
+            ('77005', 'POLYGON ((-95.447918 29.727275, -95.428017 29.728729, -95.421117 29.729029, -95.418617 29.727629, -95.418517 29.726429, -95.402117 29.726629, -95.402117 29.725729, -95.395316 29.725729, -95.391916 29.726229, -95.389716 29.725829, -95.396517 29.715429, -95.397517 29.715929, -95.400917 29.711429, -95.411417 29.715029, -95.418417 29.714729, -95.418317 29.70623, -95.440818 29.70593, -95.445018 29.70683, -95.446618 29.70763, -95.447418 29.71003, -95.447918 29.727275))'),
+            ('77025', 'POLYGON ((-95.418317 29.70623, -95.414717 29.706129, -95.414617 29.70533, -95.418217 29.70533, -95.419817 29.69533, -95.419484 29.694196, -95.417166 29.690901, -95.414517 29.69433, -95.413317 29.69263, -95.412617 29.68973, -95.412817 29.68753, -95.414087 29.685055, -95.419165 29.685428, -95.421617 29.68513, -95.425717 29.67983, -95.425017 29.67923, -95.424517 29.67763, -95.427418 29.67763, -95.438018 29.664631, -95.436713 29.664411, -95.440118 29.662231, -95.439218 29.661031, -95.437718 29.660131, -95.435718 29.659731, -95.431818 29.660331, -95.441418 29.656631, -95.441318 29.656331, -95.441818 29.656131, -95.441718 29.659031, -95.441118 29.661031, -95.446718 29.656431, -95.446518 29.673431, -95.446918 29.69013, -95.447418 29.71003, -95.446618 29.70763, -95.445018 29.70683, -95.440818 29.70593, -95.418317 29.70623))'),
+            ('77401', 'POLYGON ((-95.447918 29.727275, -95.447418 29.71003, -95.446918 29.69013, -95.454318 29.68893, -95.475819 29.68903, -95.475819 29.69113, -95.484419 29.69103, -95.484519 29.69903, -95.480419 29.70133, -95.480419 29.69833, -95.474119 29.69833, -95.474119 29.70453, -95.472719 29.71283, -95.468019 29.71293, -95.468219 29.720229, -95.464018 29.720229, -95.464118 29.724529, -95.463018 29.725929, -95.459818 29.726129, -95.459918 29.720329, -95.451418 29.720429, -95.451775 29.726303, -95.451318 29.727029, -95.447918 29.727275))'),
+            )
+
+interstates = (('I-25', 'LINESTRING(-104.4780170766108 36.66698791870694, -104.4468522338495 36.79925409393386, -104.46212692626 36.9372149776075, -104.5126119783768 37.08163268820887, -104.5247764602161 37.29300499892048, -104.7084397427668 37.49150259925398, -104.8126599016282 37.69514285621863, -104.8452887035466 37.87613395659479, -104.7160169341003 38.05951763337799, -104.6165437927668 38.30432045855106, -104.6437227858174 38.53979986564737, -104.7596170387259 38.7322907594295, -104.8380078676822 38.89998460604341, -104.8501253693506 39.09980189213358, -104.8791648316464 39.24368776457503, -104.8635041274215 39.3785278162751, -104.8894471170052 39.5929228239605, -104.9721242843344 39.69528482419685, -105.0112104500356 39.7273080432394, -105.0010368577104 39.76677607811571, -104.981835619 39.81466504121967, -104.9858891550477 39.88806911250832, -104.9873548059578 39.98117234571016, -104.9766220487419 40.09796423450692, -104.9818565932953 40.36056530662884, -104.9912746373997 40.74904484447656)'),
+               )
diff --git a/webapp/django/contrib/gis/tests/distapp/models.py b/webapp/django/contrib/gis/tests/distapp/models.py
new file mode 100644
index 0000000..f23b277
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/distapp/models.py
@@ -0,0 +1,42 @@
+from django.contrib.gis.db import models
+
+class SouthTexasCity(models.Model):
+    "City model on projected coordinate system for South Texas."
+    name = models.CharField(max_length=30)
+    point = models.PointField(srid=32140)
+    objects = models.GeoManager()
+    def __unicode__(self): return self.name
+
+class SouthTexasCityFt(models.Model):
+    "Same City model as above, but U.S. survey feet are the units."
+    name = models.CharField(max_length=30)
+    point = models.PointField(srid=2278)
+    objects = models.GeoManager()
+    def __unicode__(self): return self.name
+
+class AustraliaCity(models.Model):
+    "City model for Australia, using WGS84."
+    name = models.CharField(max_length=30)
+    point = models.PointField()
+    objects = models.GeoManager()
+    def __unicode__(self): return self.name
+
+class CensusZipcode(models.Model):
+    "Model for a few South Texas ZIP codes (in original Census NAD83)."
+    name = models.CharField(max_length=5)
+    poly = models.PolygonField(srid=4269)
+    objects = models.GeoManager()
+
+class SouthTexasZipcode(models.Model):
+    "Model for a few South Texas ZIP codes."
+    name = models.CharField(max_length=5)
+    poly = models.PolygonField(srid=32140)
+    objects = models.GeoManager()
+    def __unicode__(self): return self.name
+
+class Interstate(models.Model):
+    "Geodetic model for U.S. Interstates."
+    name = models.CharField(max_length=10)
+    line = models.LineStringField()
+    objects = models.GeoManager()
+    def __unicode__(self): return self.name
diff --git a/webapp/django/contrib/gis/tests/distapp/tests.py b/webapp/django/contrib/gis/tests/distapp/tests.py
new file mode 100644
index 0000000..057e2f7
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/distapp/tests.py
@@ -0,0 +1,296 @@
+import os, unittest
+from decimal import Decimal
+
+from django.db.models import Q
+from django.contrib.gis.gdal import DataSource
+from django.contrib.gis.geos import GEOSGeometry, Point, LineString
+from django.contrib.gis.measure import D # alias for Distance
+from django.contrib.gis.db.models import GeoQ
+from django.contrib.gis.tests.utils import oracle, postgis, no_oracle
+
+from models import AustraliaCity, Interstate, SouthTexasCity, SouthTexasCityFt, CensusZipcode, SouthTexasZipcode
+from data import au_cities, interstates, stx_cities, stx_zips
+
+class DistanceTest(unittest.TestCase):
+
+    # A point we are testing distances with -- using a WGS84
+    # coordinate that'll be implicitly transormed to that to
+    # the coordinate system of the field, EPSG:32140 (Texas South Central
+    # w/units in meters)
+    stx_pnt = GEOSGeometry('POINT (-95.370401017314293 29.704867409475465)', 4326)
+    # Another one for Australia
+    au_pnt = GEOSGeometry('POINT (150.791 -34.4919)', 4326)
+
+    def get_names(self, qs):
+        cities = [c.name for c in qs]
+        cities.sort()
+        return cities
+
+    def test01_init(self):
+        "Initialization of distance models."
+
+        # Loading up the cities.
+        def load_cities(city_model, data_tup):
+            for name, x, y in data_tup:
+                c = city_model(name=name, point=Point(x, y, srid=4326))
+                c.save()
+        
+        load_cities(SouthTexasCity, stx_cities)
+        load_cities(SouthTexasCityFt, stx_cities)
+        load_cities(AustraliaCity, au_cities)
+
+        self.assertEqual(9, SouthTexasCity.objects.count())
+        self.assertEqual(9, SouthTexasCityFt.objects.count())
+        self.assertEqual(11, AustraliaCity.objects.count())
+        
+        # Loading up the South Texas Zip Codes.
+        for name, wkt in stx_zips:
+            poly = GEOSGeometry(wkt, srid=4269)
+            SouthTexasZipcode(name=name, poly=poly).save()
+            CensusZipcode(name=name, poly=poly).save()
+        self.assertEqual(4, SouthTexasZipcode.objects.count())
+        self.assertEqual(4, CensusZipcode.objects.count())
+
+        # Loading up the Interstates.
+        for name, wkt in interstates:
+            Interstate(name=name, line=GEOSGeometry(wkt, srid=4326)).save()
+        self.assertEqual(1, Interstate.objects.count())
+
+    def test02_dwithin(self):
+        "Testing the `dwithin` lookup type."
+        # Distances -- all should be equal (except for the
+        # degree/meter pair in au_cities, that's somewhat
+        # approximate).
+        tx_dists = [(7000, 22965.83), D(km=7), D(mi=4.349)]
+        au_dists = [(0.5, 32000), D(km=32), D(mi=19.884)]
+        
+        # Expected cities for Australia and Texas.
+        tx_cities = ['Downtown Houston', 'Southside Place']
+        au_cities = ['Mittagong', 'Shellharbour', 'Thirroul', 'Wollongong']
+
+        # Performing distance queries on two projected coordinate systems one
+        # with units in meters and the other in units of U.S. survey feet.
+        for dist in tx_dists:
+            if isinstance(dist, tuple): dist1, dist2 = dist
+            else: dist1 = dist2 = dist
+            qs1 = SouthTexasCity.objects.filter(point__dwithin=(self.stx_pnt, dist1))
+            qs2 = SouthTexasCityFt.objects.filter(point__dwithin=(self.stx_pnt, dist2))
+            for qs in qs1, qs2:
+                self.assertEqual(tx_cities, self.get_names(qs))
+
+        # Now performing the `dwithin` queries on a geodetic coordinate system.
+        for dist in au_dists:
+            if isinstance(dist, D) and not oracle: type_error = True
+            else: type_error = False
+
+            if isinstance(dist, tuple):
+                if oracle: dist = dist[1]
+                else: dist = dist[0]
+                
+            # Creating the query set.
+            qs = AustraliaCity.objects.order_by('name')
+            if type_error:
+                # A TypeError should be raised on PostGIS when trying to pass
+                # Distance objects into a DWithin query using a geodetic field.  
+                self.assertRaises(TypeError, AustraliaCity.objects.filter, point__dwithin=(self.au_pnt, dist))
+            else:
+                self.assertEqual(au_cities, self.get_names(qs.filter(point__dwithin=(self.au_pnt, dist))))
+                                 
+    def test03a_distance_method(self):
+        "Testing the `distance` GeoQuerySet method on projected coordinate systems."
+        # The point for La Grange, TX
+        lagrange = GEOSGeometry('POINT(-96.876369 29.905320)', 4326)
+        # Reference distances in feet and in meters. Got these values from 
+        # using the provided raw SQL statements.
+        #  SELECT ST_Distance(point, ST_Transform(ST_GeomFromText('POINT(-96.876369 29.905320)', 4326), 32140)) FROM distapp_southtexascity;
+        m_distances = [147075.069813, 139630.198056, 140888.552826,
+                       138809.684197, 158309.246259, 212183.594374,
+                       70870.188967, 165337.758878, 139196.085105]
+        #  SELECT ST_Distance(point, ST_Transform(ST_GeomFromText('POINT(-96.876369 29.905320)', 4326), 2278)) FROM distapp_southtexascityft;
+        ft_distances = [482528.79154625, 458103.408123001, 462231.860397575,
+                        455411.438904354, 519386.252102563, 696139.009211594,
+                        232513.278304279, 542445.630586414, 456679.155883207]
+
+        # Testing using different variations of parameters and using models
+        # with different projected coordinate systems.
+        dist1 = SouthTexasCity.objects.distance(lagrange, field_name='point')
+        dist2 = SouthTexasCity.objects.distance(lagrange)  # Using GEOSGeometry parameter
+        dist3 = SouthTexasCityFt.objects.distance(lagrange.ewkt) # Using EWKT string parameter.
+        dist4 = SouthTexasCityFt.objects.distance(lagrange)
+
+        # Original query done on PostGIS, have to adjust AlmostEqual tolerance
+        # for Oracle.
+        if oracle: tol = 2
+        else: tol = 5
+
+        # Ensuring expected distances are returned for each distance queryset.
+        for qs in [dist1, dist2, dist3, dist4]:
+            for i, c in enumerate(qs):
+                self.assertAlmostEqual(m_distances[i], c.distance.m, tol)
+                self.assertAlmostEqual(ft_distances[i], c.distance.survey_ft, tol)
+
+    def test03b_distance_method(self):
+        "Testing the `distance` GeoQuerySet method on geodetic coordnate systems."
+        if oracle: tol = 2
+        else: tol = 5
+
+        # Now testing geodetic distance aggregation.
+        hillsdale = AustraliaCity.objects.get(name='Hillsdale')
+        if not oracle:
+            # PostGIS is limited to disance queries only to/from point geometries,
+            # ensuring a TypeError is raised if something else is put in.
+            self.assertRaises(TypeError, AustraliaCity.objects.distance, 'LINESTRING(0 0, 1 1)')
+            self.assertRaises(TypeError, AustraliaCity.objects.distance, LineString((0, 0), (1, 1)))
+
+        # Got the reference distances using the raw SQL statements:
+        #  SELECT ST_distance_spheroid(point, ST_GeomFromText('POINT(151.231341 -33.952685)', 4326), 'SPHEROID["WGS 84",6378137.0,298.257223563]') FROM distapp_australiacity WHERE (NOT (id = 11));
+        spheroid_distances = [60504.0628825298, 77023.948962654, 49154.8867507115, 90847.435881812, 217402.811862568, 709599.234619957, 640011.483583758, 7772.00667666425, 1047861.7859506, 1165126.55237647]
+        #  SELECT ST_distance_sphere(point, ST_GeomFromText('POINT(151.231341 -33.952685)', 4326)) FROM distapp_australiacity WHERE (NOT (id = 11));  st_distance_sphere
+        sphere_distances = [60580.7612632291, 77143.7785056615, 49199.2725132184, 90804.4414289463, 217712.63666124, 709131.691061906, 639825.959074112, 7786.80274606706, 1049200.46122281, 1162619.7297006]
+
+        # Testing with spheroid distances first.
+        qs = AustraliaCity.objects.exclude(id=hillsdale.id).distance(hillsdale.point, spheroid=True)
+        for i, c in enumerate(qs):
+            self.assertAlmostEqual(spheroid_distances[i], c.distance.m, tol)
+        if postgis:
+            # PostGIS uses sphere-only distances by default, testing these as well.
+            qs =  AustraliaCity.objects.exclude(id=hillsdale.id).distance(hillsdale.point)
+            for i, c in enumerate(qs):
+                self.assertAlmostEqual(sphere_distances[i], c.distance.m, tol)
+
+    @no_oracle # Oracle already handles geographic distance calculation.
+    def test03c_distance_method(self):
+        "Testing the `distance` GeoQuerySet method used with `transform` on a geographic field."
+        # Normally you can't compute distances from a geometry field
+        # that is not a PointField (on PostGIS).
+        self.assertRaises(TypeError, CensusZipcode.objects.distance, self.stx_pnt)
+        
+        # We'll be using a Polygon (created by buffering the centroid
+        # of 77005 to 100m) -- which aren't allowed in geographic distance
+        # queries normally, however our field has been transformed to
+        # a non-geographic system.
+        z = SouthTexasZipcode.objects.get(name='77005')
+
+        # Reference query:
+        # SELECT ST_Distance(ST_Transform("distapp_censuszipcode"."poly", 32140), ST_GeomFromText('<buffer_wkt>', 32140)) FROM "distapp_censuszipcode";
+        dists_m = [3553.30384972258, 1243.18391525602, 2186.15439472242]
+
+        # Having our buffer in the SRID of the transformation and of the field
+        # -- should get the same results. The first buffer has no need for
+        # transformation SQL because it is the same SRID as what was given
+        # to `transform()`.  The second buffer will need to be transformed,
+        # however.
+        buf1 = z.poly.centroid.buffer(100)
+        buf2 = buf1.transform(4269, clone=True)
+        for buf in [buf1, buf2]:
+            qs = CensusZipcode.objects.exclude(name='77005').transform(32140).distance(buf)
+            self.assertEqual(['77002', '77025', '77401'], self.get_names(qs))
+            for i, z in enumerate(qs):
+                self.assertAlmostEqual(z.distance.m, dists_m[i], 5)
+
+    def test04_distance_lookups(self):
+        "Testing the `distance_lt`, `distance_gt`, `distance_lte`, and `distance_gte` lookup types."
+        # Retrieving the cities within a 20km 'donut' w/a 7km radius 'hole'
+        # (thus, Houston and Southside place will be excluded as tested in
+        # the `test02_dwithin` above).
+        qs1 = SouthTexasCity.objects.filter(point__distance_gte=(self.stx_pnt, D(km=7))).filter(point__distance_lte=(self.stx_pnt, D(km=20)))
+        qs2 = SouthTexasCityFt.objects.filter(point__distance_gte=(self.stx_pnt, D(km=7))).filter(point__distance_lte=(self.stx_pnt, D(km=20)))
+        for qs in qs1, qs2:
+            cities = self.get_names(qs)
+            self.assertEqual(cities, ['Bellaire', 'Pearland', 'West University Place'])
+
+        # Doing a distance query using Polygons instead of a Point.
+        z = SouthTexasZipcode.objects.get(name='77005')
+        qs = SouthTexasZipcode.objects.exclude(name='77005').filter(poly__distance_lte=(z.poly, D(m=275)))
+        self.assertEqual(['77025', '77401'], self.get_names(qs))
+        # If we add a little more distance 77002 should be included.
+        qs = SouthTexasZipcode.objects.exclude(name='77005').filter(poly__distance_lte=(z.poly, D(m=300)))
+        self.assertEqual(['77002', '77025', '77401'], self.get_names(qs))
+        
+    def test05_geodetic_distance_lookups(self):
+        "Testing distance lookups on geodetic coordinate systems."
+        if not oracle:
+            # Oracle doesn't have this limitation -- PostGIS only allows geodetic
+            # distance queries from Points to PointFields.
+            mp = GEOSGeometry('MULTIPOINT(0 0, 5 23)')
+            self.assertRaises(TypeError,
+                              AustraliaCity.objects.filter(point__distance_lte=(mp, D(km=100))))
+            # Too many params (4 in this case) should raise a ValueError.
+            self.assertRaises(ValueError, 
+                              AustraliaCity.objects.filter, point__distance_lte=('POINT(5 23)', D(km=100), 'spheroid', '4'))
+
+        # Not enough params should raise a ValueError.
+        self.assertRaises(ValueError,
+                          AustraliaCity.objects.filter, point__distance_lte=('POINT(5 23)',))
+
+        # Getting all cities w/in 550 miles of Hobart.
+        hobart = AustraliaCity.objects.get(name='Hobart')
+        qs = AustraliaCity.objects.exclude(name='Hobart').filter(point__distance_lte=(hobart.point, D(mi=550)))
+        cities = self.get_names(qs)
+        self.assertEqual(cities, ['Batemans Bay', 'Canberra', 'Melbourne'])
+
+        # Cities that are either really close or really far from Wollongong --
+        # and using different units of distance.
+        wollongong = AustraliaCity.objects.get(name='Wollongong')
+        d1, d2 = D(yd=19500), D(nm=400) # Yards (~17km) & Nautical miles.
+
+        # Normal geodetic distance lookup (uses `distance_sphere` on PostGIS.
+        gq1 = GeoQ(point__distance_lte=(wollongong.point, d1))
+        gq2 = GeoQ(point__distance_gte=(wollongong.point, d2))
+        qs1 = AustraliaCity.objects.exclude(name='Wollongong').filter(gq1 | gq2)
+
+        # Geodetic distance lookup but telling GeoDjango to use `distance_spheroid`
+        # instead (we should get the same results b/c accuracy variance won't matter
+        # in this test case). Using `Q` instead of `GeoQ` to be different (post-qsrf
+        # it doesn't matter).
+        if postgis:
+            gq3 = Q(point__distance_lte=(wollongong.point, d1, 'spheroid'))
+            gq4 = Q(point__distance_gte=(wollongong.point, d2, 'spheroid'))
+            qs2 = AustraliaCity.objects.exclude(name='Wollongong').filter(gq3 | gq4)
+            querysets = [qs1, qs2]
+        else:
+            querysets = [qs1]
+
+        for qs in querysets:
+            cities = self.get_names(qs)
+            self.assertEqual(cities, ['Adelaide', 'Hobart', 'Shellharbour', 'Thirroul'])
+
+    def test06_area(self):
+        "Testing the `area` GeoQuerySet method."
+        # Reference queries:
+        # SELECT ST_Area(poly) FROM distapp_southtexaszipcode;
+        area_sq_m = [5437908.90234375, 10183031.4389648, 11254471.0073242, 9881708.91772461]
+        # Tolerance has to be lower for Oracle and differences
+        # with GEOS 3.0.0RC4
+        tol = 2
+        for i, z in enumerate(SouthTexasZipcode.objects.area()):
+            self.assertAlmostEqual(area_sq_m[i], z.area.sq_m, tol)
+
+    def test07_length(self):
+        "Testing the `length` GeoQuerySet method."
+        # Reference query (should use `length_spheroid`).
+        # SELECT ST_length_spheroid(ST_GeomFromText('<wkt>', 4326) 'SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]]');
+        len_m = 473504.769553813
+        qs = Interstate.objects.length()
+        if oracle: tol = 2
+        else: tol = 5
+        self.assertAlmostEqual(len_m, qs[0].length.m, tol)
+
+    def test08_perimeter(self):
+        "Testing the `perimeter` GeoQuerySet method."
+        # Reference query:
+        # SELECT ST_Perimeter(distapp_southtexaszipcode.poly) FROM distapp_southtexaszipcode;
+        perim_m = [18404.3550889361, 15627.2108551001, 20632.5588368978, 17094.5996143697]
+        if oracle: tol = 2
+        else: tol = 7
+        for i, z in enumerate(SouthTexasZipcode.objects.perimeter()):
+            self.assertAlmostEqual(perim_m[i], z.perimeter.m, tol)
+
+        # Running on points; should return 0.
+        for i, c in enumerate(SouthTexasCity.objects.perimeter(model_att='perim')):
+            self.assertEqual(0, c.perim.m)
+
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(DistanceTest))
+    return s
diff --git a/webapp/django/contrib/gis/tests/geoapp/__init__.py b/webapp/django/contrib/gis/tests/geoapp/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/__init__.py
diff --git a/webapp/django/contrib/gis/tests/geoapp/feeds.py b/webapp/django/contrib/gis/tests/geoapp/feeds.py
new file mode 100644
index 0000000..942b140
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/feeds.py
@@ -0,0 +1,63 @@
+from django.contrib.gis import feeds
+from django.contrib.gis.tests.utils import mysql
+from models import City, Country
+
+class TestGeoRSS1(feeds.Feed):
+    link = '/city/'
+    title = 'Test GeoDjango Cities'
+
+    def items(self):
+        return City.objects.all()
+
+    def item_link(self, item):
+        return '/city/%s/' % item.pk
+
+    def item_geometry(self, item):
+        return item.point
+
+class TestGeoRSS2(TestGeoRSS1):
+    def geometry(self, obj):
+        # This should attach a <georss:box> element for the extent of
+        # of the cities in the database.  This tuple came from
+        # calling `City.objects.extent()` -- we can't do that call here
+        # because `extent` is not implemented for MySQL/Oracle.
+        return (-123.30, -41.32, 174.78, 48.46)
+
+    def item_geometry(self, item):
+        # Returning a simple tuple for the geometry.
+        return item.point.x, item.point.y
+
+class TestGeoAtom1(TestGeoRSS1):
+    feed_type = feeds.GeoAtom1Feed
+
+class TestGeoAtom2(TestGeoRSS2):
+    feed_type = feeds.GeoAtom1Feed
+
+    def geometry(self, obj):
+        # This time we'll use a 2-tuple of coordinates for the box.
+        return ((-123.30, -41.32), (174.78, 48.46))
+
+class TestW3CGeo1(TestGeoRSS1):
+    feed_type = feeds.W3CGeoFeed
+
+# The following feeds are invalid, and will raise exceptions.
+class TestW3CGeo2(TestGeoRSS2):
+    feed_type = feeds.W3CGeoFeed
+
+class TestW3CGeo3(TestGeoRSS1):
+    feed_type = feeds.W3CGeoFeed
+
+    def item_geometry(self, item):
+        from django.contrib.gis.geos import Polygon
+        return Polygon(((0, 0), (0, 1), (1, 1), (1, 0), (0, 0)))
+
+# The feed dictionary to use for URLs.
+feed_dict = {
+    'rss1' : TestGeoRSS1,
+    'rss2' : TestGeoRSS2,
+    'atom1' : TestGeoAtom1,
+    'atom2' : TestGeoAtom2,
+    'w3cgeo1' : TestW3CGeo1,
+    'w3cgeo2' : TestW3CGeo2,
+    'w3cgeo3' : TestW3CGeo3,
+}
diff --git a/webapp/django/contrib/gis/tests/geoapp/models.py b/webapp/django/contrib/gis/tests/geoapp/models.py
new file mode 100644
index 0000000..fcb06e1
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/models.py
@@ -0,0 +1,33 @@
+from django.contrib.gis.db import models
+from django.contrib.gis.tests.utils import mysql
+
+# MySQL spatial indices can't handle NULL geometries.
+null_flag = not mysql
+
+class Country(models.Model):
+    name = models.CharField(max_length=30)
+    mpoly = models.MultiPolygonField() # SRID, by default, is 4326
+    objects = models.GeoManager()
+    def __unicode__(self): return self.name
+
+class City(models.Model):
+    name = models.CharField(max_length=30)
+    point = models.PointField() 
+    objects = models.GeoManager()
+    def __unicode__(self): return self.name
+
+class State(models.Model):
+    name = models.CharField(max_length=30)
+    poly = models.PolygonField(null=null_flag) # Allowing NULL geometries here.
+    objects = models.GeoManager()
+    def __unicode__(self): return self.name
+
+class Feature(models.Model):
+    name = models.CharField(max_length=20)
+    geom = models.GeometryField()
+    objects = models.GeoManager()
+    def __unicode__(self): return self.name
+
+class MinusOneSRID(models.Model):
+    geom = models.PointField(srid=-1) # Minus one SRID.
+    objects = models.GeoManager()
diff --git a/webapp/django/contrib/gis/tests/geoapp/sitemaps.py b/webapp/django/contrib/gis/tests/geoapp/sitemaps.py
new file mode 100644
index 0000000..ca785f2
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sitemaps.py
@@ -0,0 +1,8 @@
+from django.contrib.gis.sitemaps import GeoRSSSitemap, KMLSitemap, KMZSitemap
+from models import City, Country
+from feeds import feed_dict
+
+sitemaps = {'kml' : KMLSitemap([City, Country]),
+            'kmz' : KMZSitemap([City, Country]),
+            'georss' : GeoRSSSitemap(feed_dict),
+            }
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/city.mysql.sql b/webapp/django/contrib/gis/tests/geoapp/sql/city.mysql.sql
new file mode 100644
index 0000000..e73375c
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/city.mysql.sql
@@ -0,0 +1,8 @@
+INSERT INTO geoapp_city (`name`, `point`) VALUES ('Houston', GeomFromText('POINT (-95.363151 29.763374)'));
+INSERT INTO geoapp_city (`name`, `point`) VALUES ('Dallas', GeomFromText('POINT (-96.801611 32.782057)'));
+INSERT INTO geoapp_city (`name`, `point`) VALUES ('Oklahoma City', GeomFromText('POINT (-97.521157 34.464642)'));
+INSERT INTO geoapp_city (`name`, `point`) VALUES ('Wellington', GeomFromText('POINT (174.783117 -41.315268)'));
+INSERT INTO geoapp_city (`name`, `point`) VALUES ('Pueblo', GeomFromText('POINT (-104.609252 38.255001)'));
+INSERT INTO geoapp_city (`name`, `point`) VALUES ('Lawrence', GeomFromText('POINT (-95.235060 38.971823)'));
+INSERT INTO geoapp_city (`name`, `point`) VALUES ('Chicago', GeomFromText('POINT (-87.650175 41.850385)'));
+INSERT INTO geoapp_city (`name`, `point`) VALUES ('Victoria', GeomFromText('POINT (-123.305196 48.462611)'));
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/city.oracle.sql b/webapp/django/contrib/gis/tests/geoapp/sql/city.oracle.sql
new file mode 100644
index 0000000..9e6d7b7
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/city.oracle.sql
@@ -0,0 +1,8 @@
+INSERT INTO GEOAPP_CITY ("NAME", "POINT") VALUES ('Houston', SDO_GEOMETRY('POINT (-95.363151 29.763374)', 4326));
+INSERT INTO GEOAPP_CITY ("NAME", "POINT") VALUES ('Dallas', SDO_GEOMETRY('POINT (-96.801611 32.782057)', 4326));
+INSERT INTO GEOAPP_CITY ("NAME", "POINT") VALUES ('Oklahoma City', SDO_GEOMETRY('POINT (-97.521157 34.464642)', 4326));
+INSERT INTO GEOAPP_CITY ("NAME", "POINT") VALUES ('Wellington', SDO_GEOMETRY('POINT (174.783117 -41.315268)', 4326));
+INSERT INTO GEOAPP_CITY ("NAME", "POINT") VALUES ('Pueblo', SDO_GEOMETRY('POINT (-104.609252 38.255001)', 4326));
+INSERT INTO GEOAPP_CITY ("NAME", "POINT") VALUES ('Lawrence', SDO_GEOMETRY('POINT (-95.235060 38.971823)', 4326));
+INSERT INTO GEOAPP_CITY ("NAME", "POINT") VALUES ('Chicago', SDO_GEOMETRY('POINT (-87.650175 41.850385)', 4326));
+INSERT INTO GEOAPP_CITY ("NAME", "POINT") VALUES ('Victoria', SDO_GEOMETRY('POINT (-123.305196 48.462611)', 4326));
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/city.postgresql_psycopg2.sql b/webapp/django/contrib/gis/tests/geoapp/sql/city.postgresql_psycopg2.sql
new file mode 100644
index 0000000..3b9b01e
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/city.postgresql_psycopg2.sql
@@ -0,0 +1,8 @@
+INSERT INTO geoapp_city ("name", "point") VALUES ('Houston', 'SRID=4326;POINT (-95.363151 29.763374)');
+INSERT INTO geoapp_city ("name", "point") VALUES ('Dallas', 'SRID=4326;POINT (-96.801611 32.782057)');
+INSERT INTO geoapp_city ("name", "point") VALUES ('Oklahoma City', 'SRID=4326;POINT (-97.521157 34.464642)');
+INSERT INTO geoapp_city ("name", "point") VALUES ('Wellington', 'SRID=4326;POINT (174.783117 -41.315268)');
+INSERT INTO geoapp_city ("name", "point") VALUES ('Pueblo', 'SRID=4326;POINT (-104.609252 38.255001)');
+INSERT INTO geoapp_city ("name", "point") VALUES ('Lawrence', 'SRID=4326;POINT (-95.235060 38.971823)');
+INSERT INTO geoapp_city ("name", "point") VALUES ('Chicago', 'SRID=4326;POINT (-87.650175 41.850385)');
+INSERT INTO geoapp_city ("name", "point") VALUES ('Victoria', 'SRID=4326;POINT (-123.305196 48.462611)');
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/co.wkt b/webapp/django/contrib/gis/tests/geoapp/sql/co.wkt
new file mode 100644
index 0000000..17fad02
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/co.wkt
@@ -0,0 +1 @@
+POLYGON ((-107.9184209999999800 41.0020359999999970, -107.6913358243141800 41.0021042503422490, -107.6256240000000000 41.0021240000000020, -107.5215053632723100 41.0025067105257720, -107.3674429999999900 41.0030730000000010, -107.3177944624011200 41.0029672133671140, -107.3053129562196700 41.0029406188977600, -107.2411939999999900 41.0028039999999980, -107.0006060000000000 41.0034439999999950, -106.8577729999999900 41.0026629999999910, -106.4538589999999900 41.0020569999999940, -106.4395630000000100 41.0019780000000010, -106.4374190000000100 41.0017949999999940, -106.4309500000000000 41.0017519999999960, -106.3918520000000000 41.0011760000000010, -106.3863560000000100 41.0011439999999960, -106.3211649999999900 40.9991229999999970, -106.2175730000000000 40.9977340000000010, -106.1946242545105400 40.9976261471179200, -106.1905405794911800 40.9976069549524670, -106.0611809999999900 40.9969990000000020, -105.7642468572674100 40.9968975561793200, -105.7304210000000100 40.9968860000000030, -105.7248040000000100 40.9969100000000000, -105.5544177044212800 40.9973907108230620, -105.4122207031675800 40.9977918911954480, -105.2771379999999800 40.9981730000000010, -105.2565270000000100 40.9981909999999980, -105.2547790000000000 40.9982100000000000, -105.1734357616781100 40.9981770152523170, -104.9433706805682100 40.9980837236793720, -104.8552730000000000 40.9980479999999970, -104.8295039999999900 40.9992700000000030, -104.6759990000000000 41.0009570000000000, -104.4971489999999900 41.0018280000000030, -104.4970580000000000 41.0018049999999970, -104.4676719999999800 41.0014729999999970, -104.2146920000000000 41.0016570000000020, -104.2141910000000000 41.0015679999999990, -104.2114730000000000 41.0015909999999980, -104.1235859999999900 41.0016259999999950, -104.1045900000000000 41.0015429999999910, -104.0860679999999800 41.0015629999999970, -104.0669609999999900 41.0015039999999970, -104.0532489999999900 41.0014059999999960, -104.0392380000000000 41.0015020000000020, -104.0233829999999800 41.0018870000000040, -104.0182230000000100 41.0016170000000030, -104.0108048867797200 41.0016166745085400, -103.9726419999999800 41.0016150000000010, -103.9713730000000000 41.0015240000000030, -103.9535250000000000 41.0015959999999990, -103.9063240000000000 41.0013870000000010, -103.8962070000000000 41.0017500000000010, -103.8779670000000000 41.0016729999999900, -103.8584489999999900 41.0016809999999980, -103.7504979999999900 41.0020540000000010, -103.5745220000000000 41.0017210000000030, -103.4974469999999900 41.0016350000000000, -103.4866970000000100 41.0019139999999990, -103.4219750000000000 41.0020069999999990, -103.4219250000000000 41.0019689999999950, -103.3969909999999900 41.0025580000000010, -103.3653139999999800 41.0018460000000000, -103.3629790000000000 41.0018439999999910, -103.0778040000000000 41.0022980000000030, -103.0765360000000000 41.0022530000000030, -103.0595379999999900 41.0023679999999970, -103.0579980000000000 41.0023679999999970, -103.0434439999999900 41.0023440000000010, -103.0387040000000000 41.0022510000000010, -103.0020260000000000 41.0024859999999980, -103.0001019999999800 41.0024000000000020, -102.9826900000000100 41.0021569999999970, -102.9814830000000000 41.0021119999999970, -102.9636689999999800 41.0021859999999950, -102.9625220000000100 41.0020719999999980, -102.9607060000000000 41.0020589999999960, -102.9596239999999900 41.0020949999999970, -102.9448300000000000 41.0023029999999980, -102.9431090000000100 41.0020510000000020, -102.9255680000000000 41.0022799999999990, -102.9240290000000000 41.0021419999999990, -102.9065469999999900 41.0022759999999950, -102.9047960000000000 41.0022069999999990, -102.8874069999999800 41.0021780000000010, -102.8857460000000000 41.0021309999999990, -102.8678220000000000 41.0021830000000020, -102.8657839999999900 41.0019879999999970, -102.8492629999999900 41.0023010000000030, -102.8464550000000100 41.0022560000000030, -102.8303029999999900 41.0023509999999970, -102.8272800000000000 41.0021429999999970, -102.7735460000000000 41.0024140000000020, -102.7667230000000000 41.0022749999999900, -102.7546170000000000 41.0023609999999930, -102.7396239999999900 41.0022299999999970, -102.6534629999999900 41.0023320000000030, -102.6210330000000000 41.0025970000000020, -102.5786959999999900 41.0022910000000000, -102.5757380000000000 41.0022680000000010, -102.5754960000000000 41.0022000000000020, -102.5660479999999900 41.0022000000000020, -102.5567889999999900 41.0022189999999970, -102.5177010715824500 41.0023473358779430, -102.4879549999999900 41.0024449999999940, -102.4705369999999800 41.0023819999999970, -102.4692230000000000 41.0024239999999980, -102.4603345936969100 41.0024118023655500, -102.3877509894849600 41.0023121952773270, -102.3803729919328400 41.0023020703894620, -102.3795930000000000 41.0023010000000030, -102.3640659999999900 41.0021739999999970, -102.2928330000000000 41.0022069999999990, -102.2926219999999900 41.0022299999999970, -102.2925530000000000 41.0022069999999990, -102.2913540000000000 41.0022069999999990, -102.2778034555739900 41.0022337435695480, -102.2720999999999900 41.0022450000000020, -102.2678119999999900 41.0023830000000020, -102.2319310000000000 41.0023270000000010, -102.2121999999999800 41.0024620000000010, -102.2093610000000000 41.0024420000000020, -102.2090839362510100 41.0024402293320020, -102.2077760551977500 41.0024318708833140, -102.1912100000000000 41.0023259999999960, -102.1249720000000000 41.0023380000000020, -102.0705980000000000 41.0024230000000000, -102.0516140000000000 41.0023770000000030, -102.0512919999999900 40.7495910000000020, -102.0516344326070000 40.5821295926172280, -102.0517250000000000 40.5378389999999910, -102.0515190000000000 40.5200940000000000, -102.0514649999999900 40.4400079999999990, -102.0518400000000000 40.3963960000000030, -102.0515719999999900 40.3930799999999980, -102.0517979999999900 40.3600690000000030, -102.0515855426165400 40.3506461457410240, -102.0513090000000000 40.3383809999999980, -102.0519220000000000 40.2353439999999980, -102.0518939999999900 40.2291929999999950, -102.0519089999999900 40.1626740000000030, -102.0520010000000000 40.1483589999999990, -102.0518526008886700 40.0644696175368220, -102.0517440000000000 40.0030780000000020, -102.0517155646578700 39.9781730274562650, -102.0515690000000000 39.8498050000000030, -102.0513629999999900 39.8434710000000010, -102.0513179999999900 39.8333110000000020, -102.0512540000000000 39.8189920000000010, -102.0505939999999900 39.6755939999999900, -102.0500990000000000 39.6538120000000020, -102.0504219999999800 39.6460479999999930, -102.0499540000000000 39.5923310000000010, -102.0498059999999900 39.5740580000000010, -102.0495539999999900 39.5389320000000030, -102.0496730000000000 39.5366909999999980, -102.0496790000000000 39.5061830000000000, -102.0493690000000000 39.4233330000000000, -102.0493700000000000 39.4182100000000020, -102.0491669999999800 39.4035969999999980, -102.0489599999999800 39.3737119999999900, -102.0484490000000100 39.3031379999999900, -102.0472500000000100 39.1370200000000000, -102.0471339999999900 39.1297009999999970, -102.0465709999999900 39.0470380000000010, -102.0453879999999900 38.8133919999999930, -102.0453340000000000 38.7994630000000030, -102.0454479999999900 38.7834530000000020, -102.0453710000000000 38.7700639999999980, -102.0452870000000000 38.7555279999999980, -102.0453750000000100 38.7543389999999950, -102.0452119999999900 38.6975669999999990, -102.0451560000000100 38.6885550000000010, -102.0451269999999900 38.6867250000000030, -102.0451600000000000 38.6752210000000010, -102.0451020000000000 38.6749459999999980, -102.0450740000000000 38.6696170000000020, -102.0452880000000000 38.6152489999999990, -102.0452109999999900 38.5816089999999930, -102.0451889999999800 38.5587319999999920, -102.0452229999999900 38.5437969999999980, -102.0451120000000000 38.5237839999999990, -102.0452619999999900 38.5055319999999950, -102.0452629999999900 38.5053950000000000, -102.0453239999999800 38.4536469999999970, -102.0449360000000100 38.4196800000000000, -102.0444419999999900 38.4158019999999990, -102.0449440000000000 38.3844190000000010, -102.0446130000000000 38.3123239999999970, -102.0445680000000000 38.2688190000000010, -102.0443980000000000 38.2500149999999980, -102.0442510000000000 38.1417779999999950, -102.0445353236236500 38.1276753800285280, -102.0445890000000000 38.1250129999999960, -102.0445402773320500 38.1232621932310920, -102.0442550000000100 38.1130109999999930, -102.0446235449346800 38.0490802965374900, -102.0446310070721800 38.0477858554663160, -102.0446440000000100 38.0455320000000010, -102.0446200858831200 38.0420217065706370, -102.0445393420861100 38.0301695264644910, -102.0438440000000100 37.9281019999999960, -102.0438450000000000 37.9261350000000020, -102.0432189999999900 37.8679289999999900, -102.0430329999999900 37.8241459999999990, -102.0429530000000000 37.8035349999999970, -102.0426680000000100 37.7887580000000010, -102.0421580000000000 37.7601640000000030, -102.0418760000000000 37.7238750000000000, -102.0415740000000000 37.6804360000000000, -102.0416940000000100 37.6656809999999990, -102.0415819999999900 37.6544949999999970, -102.0415850000000000 37.6442819999999970, -102.0416180000000000 37.6078680000000030, -102.0417794058394900 37.5786915552958260, -102.0418940000000000 37.5579770000000010, -102.0418990000000000 37.5411860000000030, -102.0420159999999900 37.5352609999999980, -102.0417860000000000 37.5060659999999970, -102.0418009999999900 37.4694879999999980, -102.0417549999999900 37.4348549999999920, -102.0416690000000000 37.4347399999999980, -102.0416759999999800 37.4098979999999910, -102.0415240000000000 37.3750179999999970, -102.0420890000000000 37.3528189999999970, -102.0419740000000000 37.3526129999999980, -102.0418169999999900 37.3094899999999970, -102.0416640000000000 37.2976499999999900, -102.0419630000000000 37.2581640000000010, -102.0420020000000000 37.1417440000000030, -102.0421350000000000 37.1250209999999970, -102.0420920000000000 37.1250209999999970, -102.0418089999999900 37.1119729999999990, -102.0419830000000000 37.1065510000000030, -102.0419199999999900 37.0350830000000000, -102.0417490000000000 37.0343969999999980, -102.0419210000000000 37.0321780000000020, -102.0419500000000000 37.0308050000000010, -102.0419519999999900 37.0247419999999960, -102.0422400000000100 36.9930829999999990, -102.0545030000000000 36.9931089999999970, -102.1842710000000000 36.9935929999999970, -102.2083160000000000 36.9937299999999990, -102.2607890000000000 36.9943880000000010, -102.2703456818352900 36.9943999333374620, -102.3075936504973800 36.9944464445206690, -102.3552880000000000 36.9945059999999940, -102.3553670000000000 36.9945749999999980, -102.6981420000000000 36.9951489999999980, -102.7420599999999800 36.9976890000000010, -102.7598600000000000 37.0000190000000020, -102.7785689999999900 36.9992420000000020, -102.8067620000000100 37.0000190000000020, -102.8146160000000000 37.0007829999999980, -102.8419890000000000 36.9995979999999990, -102.9796130000000000 36.9985489999999970, -102.9858069999999900 36.9985709999999980, -102.9869760000000000 36.9985240000000030, -103.0021990000000000 37.0001040000000000, -103.0861049694139500 37.0001738656940380, -103.1054053653286500 37.0001899364881130, -103.1559220000000000 37.0002319999999970, -103.2006317284721000 37.0000603865096880, -103.3271777694062600 36.9995746531243130, -103.4256788724330500 36.9991965672206930, -103.7332470000000100 36.9980159999999930, -103.7343639999999900 36.9980410000000010, -104.0078549999999900 36.9962390000000030, -104.2154754884639700 36.9948744321965890, -104.2505359999999800 36.9946440000000010, -104.2975706429598400 36.9940532503817470, -104.3388329999999900 36.9935350000000010, -104.3556505253503100 36.9935565317715810, -104.3664476855351100 36.9935703555644370, -104.3992028820832900 36.9936122926149620, -104.4297693866500100 36.9936514274448880, -104.4806103169752700 36.9937165199763950, -104.5192570000000000 36.9937659999999940, -104.6245560000000000 36.9943769999999930, -104.6255450000000000 36.9935990000000030, -104.6450289999999900 36.9933779999999930, -104.7061122072671500 36.9934264441886570, -104.7320310000000100 36.9934470000000030, -104.7321199999999800 36.9934840000000020, -104.8399904125201100 36.9933955928282070, -105.0005539999999800 36.9932640000000030, -105.0292279999999900 36.9927289999999900, -105.1208000000000000 36.9954279999999970, -105.1550419641015100 36.9953391471581630, -105.2206130000000000 36.9951689999999970, -105.2512960000000000 36.9956049999999980, -105.4193100000000000 36.9958560000000030, -105.4381027436132300 36.9959680306975970, -105.4424590000000000 36.9959940000000030, -105.4472550000000000 36.9960169999999950, -105.4651820000000000 36.9959909999999970, -105.4708767069258500 36.9959784767062560, -105.5088359999999900 36.9958949999999900, -105.5124850000000000 36.9957769999999970, -105.5339220000000000 36.9958749999999980, -105.6274699999999900 36.9956790000000030, -105.6647199999999900 36.9958740000000010, -105.7164710000000000 36.9958489999999930, -105.7184073045491700 36.9958460161492080, -105.9961590000000100 36.9954180000000010, -105.9974720000000000 36.9954170000000030, -106.0066339999999900 36.9953429999999980, -106.0998058674331200 36.9947591067049760, -106.1639713822180900 36.9943569916150140, -106.2014689999999900 36.9941219999999970, -106.2477050000000000 36.9942660000000030, -106.2486750000000100 36.9942879999999900, -106.2932790000000000 36.9938900000000000, -106.3254286788247500 36.9941092316646730, -106.3431389999999800 36.9942300000000020, -106.4762779528519600 36.9938393350510210, -106.5005890000000100 36.9937679999999960, -106.6171590000000000 36.9929670000000000, -106.6171249999999900 36.9930039999999990, -106.6286520000000000 36.9931750000000010, -106.6287329999999800 36.9931609999999940, -106.6613440000000000 36.9932430000000000, -106.6756259999999900 36.9931229999999970, -106.7505910000000000 36.9924609999999990, -106.7820952897146500 36.9924517499673660, -106.8697959999999900 36.9924259999999950, -106.8772919999999800 37.0001389999999900, -106.9188864633427000 37.0001287471619240, -106.9560183645763800 37.0001195943242540, -107.1072626267445100 37.0000823133304520, -107.2552027234696400 37.0000458467977750, -107.4209130000000000 37.0000049999999940, -107.4224150136806600 37.0000049896361030, -107.4421819991443200 37.0000048532438730, -107.4817370013986600 37.0000045803142900, -107.5240868464170200 37.0000042881002860, -107.6007136407778000 37.0000037593752680, -107.7124779008385600 37.0000029882016790, -107.8556954995019300 37.0000020000000020, -107.8663089376175300 37.0000019267672610, -107.8691399085863600 37.0000019072335460, -107.8691806993063300 37.0000019069521000, -108.0006230000000000 37.0000009999999970, -108.1791870752784600 36.9992931616249270, -108.1871395402988700 36.9992616375912750, -108.2493580000000000 36.9990150000000000, -108.2506349999999900 36.9995610000000000, -108.2880860000000100 36.9995550000000010, -108.2884000000000000 36.9995199999999970, -108.3204640000000000 36.9994990000000000, -108.3207209999999900 36.9995100000000010, -108.3791655704288800 36.9994589777070430, -108.6196889999999900 36.9992489999999990, -108.6203090000000100 36.9992870000000020, -108.7492698254058500 36.9991399338227680, -108.9544040000000000 36.9989059999999980, -108.9588680000000000 36.9989130000000020, -109.0452229999999900 36.9990840000000030, -109.0451659999999800 37.0727419999999980, -109.0450580000000000 37.0746609999999990, -109.0449950000000000 37.0864290000000030, -109.0451889999999900 37.0962709999999940, -109.0451730000000100 37.1094640000000030, -109.0452029999999900 37.1119579999999940, -109.0451559999999900 37.1120639999999970, -109.0459950000000000 37.1772789999999990, -109.0459780000000100 37.2018309999999990, -109.0458015051062800 37.2050708135988660, -109.0454869999999900 37.2108440000000020, -109.0455598795331900 37.2397756720027080, -109.0455601977475200 37.2399019965338450, -109.0455839999999900 37.2493509999999970, -109.0460389999999900 37.2499930000000030, -109.0458980422733100 37.3269349905485300, -109.0458100000000000 37.3749930000000030, -109.0437991323256200 37.4690283342420190, -109.0434637832608200 37.4847104508718160, -109.0434249427800400 37.4865267700853340, -109.0431370000000000 37.4999919999999990, -109.0419150000000000 37.5306530000000010, -109.0418650000000000 37.5307260000000010, -109.0418059999999900 37.6041710000000010, -109.0421310000000000 37.6176620000000030, -109.0420890000000000 37.6237950000000010, -109.0422690000000000 37.6660669999999980, -109.0417320000000000 37.7112139999999980, -109.0417600000000000 37.7131820000000030, -109.0416360000000000 37.7402099999999980, -109.0420980000000000 37.7499899999999970, -109.0420421489000700 37.7543839997998490, -109.0414610000000000 37.8001050000000020, -109.0417540000000000 37.8358259999999900, -109.0417229999999900 37.8420509999999980, -109.0418440000000000 37.8727880000000000, -109.0416528185789500 37.8811669027885570, -109.0410580000000100 37.9072359999999970, -109.0431209999999900 37.9742600000000010, -109.0428189999999900 37.9970679999999990, -109.0428199999999900 37.9993010000000030, -109.0419724039658400 38.1317991668174590, -109.0418366569747100 38.1530194495367920, -109.0417619999999900 38.1646900000000000, -109.0546480000000000 38.2449209999999980, -109.0600619999999900 38.2754890000000000, -109.0599620000000000 38.4999869999999900, -109.0602530000000000 38.5993279999999930, -109.0595410000000000 38.7198879999999970, -109.0573880000000000 38.7954559999999940, -109.0572160449167600 38.7997308495970760, -109.0541889999999900 38.8749839999999980, -109.0539429999999900 38.9044140000000030, -109.0537970000000000 38.9052839999999950, -109.0532330000000100 38.9424670000000010, -109.0532919999999800 38.9428780000000000, -109.0524359999999900 38.9999850000000020, -109.0515879125035400 39.1157342577700790, -109.0515835157382700 39.1163343400931040, -109.0515807806367500 39.1167076340895430, -109.0515120000000000 39.1260949999999990, -109.0507650000000000 39.3666770000000030, -109.0513629999999800 39.4976740000000040, -109.0510402483332400 39.6604720118441210, -109.0506149999999900 39.8749699999999980, -109.0508730000000000 40.0589149999999990, -109.0508130000000100 40.0595789999999920, -109.0509440000000000 40.1807119999999930, -109.0509730000000000 40.1808490000000020, -109.0509687158226500 40.2226624122704100, -109.0509460000000000 40.4443679999999970, -109.0503140000000000 40.4950920000000000, -109.0506979999999800 40.4999630000000010, -109.0499550000000000 40.5399010000000000, -109.0500740000000000 40.5403579999999980, -109.0500719640466700 40.5404371043087370, -109.0480440000000000 40.6192309999999990, -109.0482490000000000 40.6536009999999950, -109.0490880000000000 40.7145620000000010, -109.0484550000000000 40.8260810000000020, -109.0500760000000000 41.0006589999999990, -108.8841379999999900 41.0000939999999970, -108.6311080000000000 41.0001559999999900, -108.5266670000000000 40.9996080000000020, -108.5006590000000000 41.0001120000000010, -108.2506490000000000 41.0001140000000040, -108.1812270000000100 41.0004549999999950, -108.0892190031385500 41.0015541392473680, -108.0465390000000000 41.0020639999999970, -107.9232341223959400 41.0020370519008000, -107.9184209999999800 41.0020359999999970))
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/country.mysql.sql b/webapp/django/contrib/gis/tests/geoapp/sql/country.mysql.sql
new file mode 100644
index 0000000..cd1cd78
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/country.mysql.sql
@@ -0,0 +1,4 @@
+-- New Zealand bondary courtesy of 'world_borders.shp', which was assembled from public domain sources by Schuyler Erle. See: http://mappinghacks.com/data/
+-- Texas boundary data is a data product from the U.S. Census Bureau.  See 'state.sql' for more information.
+INSERT INTO geoapp_country (`name`, `mpoly`) VALUES ('New Zealand', GeomFromText('MULTIPOLYGON (((174.616364000000004 -36.100861000000002,174.634978999999987 -36.124718,174.708862000000011 -36.205559,174.781096999999988 -36.266945,174.812744000000009 -36.339165,174.768311000000011 -36.34639,174.710784999999987 -36.525832999999999,174.708587999999992 -36.533332999999999,174.70773299999999 -36.541671999999998,174.714690999999988 -36.595832999999999,174.717194000000006 -36.603057999999997,174.774414000000007 -36.730277999999998,174.808319000000012 -36.805275000000002,174.854400999999996 -36.847777999999998,174.896636999999998 -36.878334000000002,175.011658000000011 -36.871941,175.020813000000004 -36.873610999999997,175.055542000000003 -36.880279999999999,175.076629999999994 -36.890839,175.082458000000003 -36.895279000000002,175.087463000000014 -36.900832999999999,175.091644000000002 -36.925559999999997,175.161652000000004 -36.955559,175.221069 -36.937775000000002,175.230255 -36.939438000000003,175.278320000000008 -36.965279000000002,175.310516000000007 -36.995002999999997,175.319976999999994 -37.005836000000002,175.323853000000014 -37.012222,175.328856999999999 -37.026947,175.330261000000007 -37.035277999999998,175.330535999999995 -37.044449,175.321899000000002 -37.06472,175.31942699999999 -37.095275999999998,175.317748999999992 -37.144165,175.319121999999993 -37.152495999999999,175.328856999999999 -37.168892,175.373290999999995 -37.216659999999997,175.385254000000003 -37.225830000000002,175.404967999999997 -37.228050000000003,175.579131999999987 -37.244446000000003,175.58914200000001 -37.169449,175.551636000000002 -37.024718999999997,175.547484999999995 -37.009171000000002,175.542480000000012 -36.994446000000003,175.536102 -36.980826999999998,175.524993999999992 -36.961669999999998,175.498566000000011 -36.927222999999998,175.484406000000007 -36.920279999999998,175.476348999999999 -36.917777999999998,175.464416999999997 -36.90889,175.435241999999988 -36.866942999999999,175.46691899999999 -36.809998,175.509430000000009 -36.776108,175.486358999999993 -36.679726000000002,175.463593000000003 -36.621383999999999,175.378296000000006 -36.570557,175.366364000000004 -36.561667999999997,175.361633000000012 -36.556389000000003,175.356628 -36.541671999999998,175.353850999999992 -36.525002,175.35244800000001 -36.489998,175.353577 -36.481940999999999,175.360229000000004 -36.478050000000003,175.538025000000005 -36.514724999999999,175.542755 -36.519996999999996,175.604950000000002 -36.622771999999998,175.631072999999986 -36.710555999999997,175.763610999999997 -36.713614999999997,175.840789999999998 -36.754173000000002,175.733582000000013 -36.805832000000002,175.701629999999994 -36.844161999999997,175.707458000000003 -36.869995000000003,175.709960999999993 -36.875275000000002,175.714690999999988 -36.880828999999999,175.720519999999993 -36.885277000000002,175.735779000000008 -36.891387999999999,175.74383499999999 -36.893889999999999,175.758330999999998 -36.876106,175.761382999999995 -36.869446000000003,175.757751000000013 -36.863059999999997,175.753051999999997 -36.857779999999998,175.749114999999989 -36.851394999999997,175.75 -36.843055999999997,175.752196999999995 -36.835555999999997,175.756378000000012 -36.830002,175.765533000000005 -36.828055999999997,175.808013999999986 -36.824173000000002,175.817200000000014 -36.825836000000002,175.833587999999992 -36.830832999999998,175.845519999999993 -36.839722000000002,175.849120999999997 -36.846107000000003,175.878570999999994 -36.914444000000003,175.881072999999986 -36.921669,175.918304000000006 -37.067504999999997,175.917480000000012 -37.075836000000002,175.915253000000007 -37.083061,175.898314999999997 -37.115004999999996,175.884154999999993 -37.168892,175.883330999999998 -37.176949,175.887206999999989 -37.244163999999998,175.892212 -37.249724999999998,175.921082000000013 -37.251671000000002,175.927185000000009 -37.256110999999997,175.93081699999999 -37.262504999999997,175.936371000000008 -37.278885000000002,175.940093999999988 -37.299717,175.974396000000013 -37.418059999999997,175.976074000000011 -37.453055999999997,176.026931999999988 -37.483108999999999,176.035583000000003 -37.487282,176.059417999999994 -37.502502,176.088287000000008 -37.525557999999997,176.093291999999991 -37.531112999999998,176.165526999999997 -37.613892,176.169433999999995 -37.620277000000002,176.167205999999993 -37.625832000000003,176.160247999999996 -37.624167999999997,176.082458000000003 -37.602500999999997,176.066924999999998 -37.59639,176.061095999999992 -37.591942000000003,176.057189999999991 -37.585555999999997,176.062744000000009 -37.580832999999998,176.070800999999989 -37.577781999999999,176.088287000000008 -37.580002,176.095245000000006 -37.576110999999997,176.090239999999994 -37.570838999999999,176.062468999999993 -37.546669,176.023087000000004 -37.528221000000002,176.018767999999994 -37.526057999999999,176.013931000000014 -37.524554999999999,176.007598999999999 -37.524222999999999,175.955535999999995 -37.521110999999998,175.946349999999995 -37.523055999999997,175.940796000000006 -37.527779000000002,175.953583000000009 -37.558891000000003,175.994415000000004 -37.638893000000003,176.071899000000002 -37.655273,176.14498900000001 -37.675277999999999,176.242187999999999 -37.709442000000003,176.267486999999988 -37.676392,176.488281 -37.756667999999998,176.521636999999998 -37.769447,176.527771 -37.773887999999999,176.537475999999998 -37.784447,176.549712999999997 -37.793334999999999,176.656646999999992 -37.855559999999997,176.671082000000013 -37.862502999999997,176.686645999999996 -37.868332000000002,176.759154999999993 -37.892775999999998,176.784149000000014 -37.900275999999998,176.80304000000001 -37.903328000000002,176.819702000000007 -37.904442000000003,176.838287000000008 -37.907501000000003,176.917755 -37.926108999999997,176.943848000000003 -37.932502999999997,177.08273299999999 -37.967216,177.107468000000011 -37.987220999999998,177.159424 -38.013336000000002,177.415253000000007 -37.982498,177.47357199999999 -37.962502,177.545806999999996 -37.919167000000002,177.552459999999996 -37.915000999999997,177.571625000000012 -37.902222000000002,177.599120999999997 -37.878051999999997,177.603577 -37.872498,177.646941999999996 -37.805,177.732178000000005 -37.682502999999997,177.738861000000014 -37.678336999999999,177.746917999999994 -37.675277999999999,177.791931000000005 -37.666946000000003,177.849396000000013 -37.657218999999998,177.858856000000003 -37.656661999999997,177.868010999999996 -37.654442000000003,177.875792999999987 -37.651389999999999,178.0 -37.592224000000002,178.006653 -37.588332999999999,178.012206999999989 -37.583328000000002,178.018004999999988 -37.550831000000002,178.05581699999999 -37.542777999999998,178.064972000000012 -37.542228999999999,178.187744000000009 -37.546951,178.281921000000011 -37.560828999999998,178.306915000000004 -37.568061999999998,178.311919999999986 -37.573334000000003,178.312468999999993 -37.578887999999999,178.306915000000004 -37.583610999999998,178.321075000000008 -37.602500999999997,178.336365 -37.618332000000002,178.34970100000001 -37.626944999999999,178.367737000000005 -37.630828999999999,178.448028999999991 -37.645279000000002,178.457458000000003 -37.646667,178.468018 -37.646949999999997,178.488861000000014 -37.644165,178.497192000000013 -37.646667,178.504424999999998 -37.649994,178.550536999999991 -37.6875,178.555542000000003 -37.692497000000003,178.559692000000013 -37.698883000000002,178.56552099999999 -37.713332999999999,178.562468999999993 -37.719994,178.483306999999996 -37.826393000000003,178.455230999999998 -37.860000999999997,178.449982000000006 -37.865004999999996,178.429687999999999 -37.876944999999999,178.419983000000002 -37.887779000000002,178.350525000000005 -38.004722999999998,178.347473000000008 -38.011116,178.347197999999992 -38.019722000000002,178.348846000000009 -38.027779000000002,178.354950000000002 -38.032218999999998,178.360229000000004 -38.037506,178.364136000000002 -38.043616999999998,178.375792999999987 -38.072777000000002,178.378296000000006 -38.089995999999999,178.377746999999999 -38.09861,178.353850999999992 -38.185555,178.319976999999994 -38.248055,178.318024000000008 -38.255561999999998,178.317474000000004 -38.263893000000003,178.320800999999989 -38.398612999999997,178.302459999999996 -38.528885000000002,178.300536999999991 -38.536391999999999,178.296356000000003 -38.541946000000003,178.158874999999995 -38.649169999999998,178.074982000000006 -38.713889999999999,178.068297999999999 -38.717773,178.060241999999988 -38.721107000000003,178.050812000000008 -38.721381999999998,178.044433999999995 -38.717216,177.928864000000004 -38.722220999999998,177.941070999999994 -38.793616999999998,177.923858999999993 -38.918334999999999,177.917786000000007 -38.942802,177.909697999999992 -38.969718999999998,177.897705000000002 -39.047942999999997,177.893859999999989 -39.064776999999999,177.906708000000009 -39.064278000000002,177.923034999999999 -39.089165,177.942200000000014 -39.091942000000003,177.967743000000013 -39.098334999999999,177.991332999999997 -39.115004999999996,177.996612999999996 -39.120277000000002,177.999390000000005 -39.127495000000003,177.909973000000008 -39.256950000000003,177.898865 -39.267502,177.874968999999993 -39.286118000000002,177.868010999999996 -39.290283000000002,177.861908 -39.285834999999999,177.844970999999987 -39.251396,177.839416999999997 -39.236946000000003,177.824127000000004 -39.193053999999997,177.823577999999998 -39.183883999999999,177.826629999999994 -39.177222999999998,177.841644000000002 -39.152779000000002,177.822021000000007 -39.114445000000003,177.823195999999996 -39.110115,177.82351700000001 -39.105110000000003,177.82119800000001 -39.101275999999999,177.816696000000007 -39.099274,177.680266999999986 -39.075279000000002,177.628845000000013 -39.071114,177.426085999999998 -39.064163,177.387755999999996 -39.077781999999999,177.246917999999994 -39.128334000000002,177.206085000000002 -39.143616000000002,177.149138999999991 -39.165000999999997,177.054961999999989 -39.204445,176.935790999999995 -39.349997999999999,176.931365999999997 -39.355559999999997,176.903870000000012 -39.398055999999997,176.898865 -39.412216,176.89776599999999 -39.438048999999999,176.899414000000007 -39.446387999999999,176.946625000000012 -39.664444000000003,177.01080300000001 -39.654998999999997,177.107178000000005 -39.660828000000002,177.116913000000011 -39.662216,177.120789000000002 -39.66861,177.119110000000006 -39.676108999999997,177.115783999999991 -39.682502999999997,177.08273299999999 -39.729996,177.073577999999998 -39.741385999999999,177.068024000000008 -39.746108999999997,177.059692000000013 -39.749167999999997,177.050262000000004 -39.751396,177.033874999999995 -39.757506999999997,177.028045999999989 -39.762504999999997,177.023590000000013 -39.768059,177.020263999999997 -39.774718999999997,176.894713999999993 -40.034728999999999,176.890533000000005 -40.049728000000002,176.889983999999998 -40.058052000000004,176.89498900000001 -40.082779000000002,176.893035999999995 -40.090279000000002,176.874114999999989 -40.121383999999999,176.834136999999998 -40.181671,176.808319000000012 -40.216659999999997,176.796935999999988 -40.226387000000003,176.687195000000003 -40.321387999999999,176.644135000000006 -40.379997000000003,176.628296000000006 -40.421944000000003,176.539977999999991 -40.495002999999997,176.521362000000011 -40.513893000000003,176.500823999999994 -40.535004,176.441924999999998 -40.600281000000003,176.405243000000013 -40.643889999999999,176.386108000000007 -40.675002999999997,176.35522499999999 -40.688606,176.349396000000013 -40.693610999999997,176.288574000000011 -40.793892,176.239136000000002 -40.90889,176.22079500000001 -40.931671,176.195526 -40.941665999999998,176.172760000000011 -40.952224999999999,176.158600000000007 -40.959999000000003,176.152771 -40.964722000000002,176.142212 -40.975273,176.134154999999993 -40.987502999999997,176.120789000000002 -41.013618,176.11300700000001 -41.035277999999998,176.098297000000002 -41.087218999999997,176.087463000000014 -41.116112,176.080811000000011 -41.129165999999998,176.062195000000003 -41.151938999999999,175.984679999999997 -41.231383999999998,175.955230999999998 -41.255279999999999,175.819121999999993 -41.347220999999998,175.743561 -41.392226999999998,175.736358999999993 -41.396110999999998,175.557738999999998 -41.485000999999997,175.471069 -41.541389000000002,175.427459999999996 -41.564444999999999,175.323028999999991 -41.614449,175.313292999999987 -41.616394,175.230804000000006 -41.620834000000002,175.222197999999992 -41.618332000000002,175.21691899999999 -41.612777999999999,175.184692000000013 -41.535834999999999,175.181915000000004 -41.519447,175.181091000000009 -41.500838999999999,175.188568000000004 -41.461112999999997,175.193024000000008 -41.446106,175.193848000000003 -41.437775000000002,175.191070999999994 -41.430557,175.186095999999992 -41.425002999999997,175.080261000000007 -41.385559,175.063018999999997 -41.380279999999999,175.05304000000001 -41.378608999999997,175.045532000000009 -41.378608999999997,175.027190999999988 -41.381667999999998,174.993286000000012 -41.393332999999998,174.985779000000008 -41.397224,174.972747999999996 -41.405830000000002,174.960509999999999 -41.415275999999999,174.949982000000006 -41.425559999999997,174.944976999999994 -41.431114,174.94165000000001 -41.437775000000002,174.936919999999986 -41.443328999999999,174.918578999999994 -41.448051,174.908600000000007 -41.448334000000003,174.872467 -41.429442999999999,174.86605800000001 -41.425002999999997,174.861084000000005 -41.419724000000002,174.861633000000012 -41.347496,174.863861000000014 -41.340279000000002,174.870789000000002 -41.327224999999999,174.87912 -41.315002,174.883881000000002 -41.309441,174.894440000000003 -41.290000999999997,174.89776599999999 -41.282501000000003,174.899993999999992 -41.275002,174.901916999999997 -41.258338999999999,174.901916999999997 -41.251114,174.898865 -41.234444000000003,174.89498900000001 -41.228050000000003,174.887482000000006 -41.224442000000003,174.827179 -41.218887000000002,174.818848000000003 -41.221938999999999,174.787475999999998 -41.244446000000003,174.778045999999989 -41.255836000000002,174.774414000000007 -41.262222,174.771087999999992 -41.278053,174.778594999999996 -41.281387000000002,174.796082000000013 -41.286949,174.818024000000008 -41.284728999999999,174.824127000000004 -41.289169,174.829407000000003 -41.294724000000002,174.833313000000004 -41.301108999999997,174.832184000000012 -41.309441,174.82995600000001 -41.316665999999998,174.826355000000007 -41.323334000000003,174.821625000000012 -41.328887999999999,174.815796000000006 -41.333610999999998,174.807189999999991 -41.336387999999999,174.744689999999991 -41.347496,174.700531000000012 -41.344444000000003,174.671906000000007 -41.338332999999999,174.654694000000006 -41.333061,174.648314999999997 -41.328612999999997,174.629669000000007 -41.315002,174.59191899999999 -41.27861,174.591644000000002 -41.271385000000002,174.594116000000014 -41.263893000000003,174.601074000000011 -41.250838999999999,174.608306999999996 -41.237777999999999,174.61300700000001 -41.232216,174.619110000000006 -41.23111,174.627746999999999 -41.233887000000003,174.637482000000006 -41.235557999999997,174.648590000000013 -41.234444000000003,174.666931000000005 -41.229720999999998,174.681365999999997 -41.221938999999999,174.694702000000007 -41.213614999999997,174.712738000000002 -41.199440000000003,174.718567000000007 -41.194716999999997,174.800812000000008 -41.100281000000003,174.844421000000011 -41.041671999999998,174.874390000000005 -41.018059,174.882721000000004 -41.015006999999997,174.892486999999988 -41.013061999999998,174.901093000000003 -41.010283999999999,174.908324999999991 -41.006393000000003,174.932189999999991 -40.987502999999997,174.94165000000001 -40.976387000000003,174.945251000000013 -40.969718999999998,174.947478999999987 -40.962218999999997,175.014983999999998 -40.84861,175.09857199999999 -40.755836000000002,175.112731999999994 -40.738892,175.120789000000002 -40.726944000000003,175.127746999999999 -40.713614999999997,175.164153999999996 -40.631943,175.169708000000014 -40.616942999999999,175.171906000000007 -40.609726000000002,175.187468999999993 -40.530830000000002,175.23800700000001 -40.329726999999998,175.23135400000001 -40.280830000000002,175.201629999999994 -40.181671,175.196349999999995 -40.166946000000003,175.178314 -40.134171000000002,175.15554800000001 -40.095832999999999,175.071625000000012 -40.003059,175.055542000000003 -39.987777999999999,175.022217000000012 -39.958053999999997,174.986358999999993 -39.93,174.974120999999997 -39.920836999999999,174.960784999999987 -39.912773,174.938873 -39.902222000000002,174.923034999999999 -39.895836000000003,174.836638999999991 -39.865004999999996,174.828307999999993 -39.862502999999997,174.790802000000014 -39.854720999999998,174.781096999999988 -39.853057999999997,174.751373 -39.865555,174.740509000000003 -39.866661,174.729674999999986 -39.865836999999999,174.57607999999999 -39.829169999999998,174.558013999999986 -39.824722,174.549408 -39.822226999999998,174.542205999999993 -39.818610999999997,174.523865 -39.805,174.421356000000003 -39.726944000000003,174.410521999999986 -39.716942000000003,174.376068000000004 -39.678612,174.353577 -39.639999000000003,174.348846000000009 -39.634444999999999,174.336638999999991 -39.625557,174.316070999999994 -39.613892,174.30886799999999 -39.610283000000003,174.217194000000006 -39.579726999999998,174.208862000000011 -39.577224999999999,174.040802000000014 -39.552779999999998,173.997741999999988 -39.551392,173.986908 -39.550552000000003,173.970245000000006 -39.545279999999998,173.963012999999989 -39.541671999999998,173.871062999999992 -39.483330000000002,173.851898000000006 -39.470551,173.839966000000004 -39.461387999999999,173.810790999999995 -39.4375,173.79525799999999 -39.421944000000003,173.786652000000004 -39.409996,173.775817999999987 -39.390839,173.769713999999993 -39.376944999999999,173.762206999999989 -39.354720999999998,173.754424999999998 -39.305,173.751923000000005 -39.288612,173.751647999999989 -39.269996999999996,173.781921000000011 -39.191383000000002,173.785247999999996 -39.184998,173.800536999999991 -39.169167000000002,173.82995600000001 -39.145836000000003,173.844421000000011 -39.138336000000002,173.868010999999996 -39.128883000000002,173.892761000000007 -39.120552000000004,174.011108000000007 -39.073334000000003,174.114685000000009 -39.024445,174.187744000000009 -38.988608999999997,174.209136999999998 -38.977218999999998,174.226623999999987 -38.972496,174.248016000000007 -38.970551,174.259978999999987 -38.970275999999998,174.281372000000005 -38.969994,174.293029999999987 -38.969994,174.313292999999987 -38.972496,174.351348999999999 -38.979438999999999,174.375244000000009 -38.979163999999997,174.384704999999997 -38.977218999999998,174.392761000000007 -38.974442000000003,174.456359999999989 -38.940277000000002,174.546082000000013 -38.871941,174.557738999999998 -38.860557999999997,174.568024000000008 -38.850281000000003,174.587738000000002 -38.828887999999999,174.594421000000011 -38.815834000000002,174.603302000000014 -38.786118000000002,174.608582000000013 -38.763061999999998,174.625518999999997 -38.677779999999998,174.642486999999988 -38.590836000000003,174.681091000000009 -38.379165999999998,174.724396000000013 -38.185828999999998,174.838561999999996 -38.157218999999998,174.848021999999986 -38.156944000000003,174.85635400000001 -38.154167,174.926636000000002 -38.116112,174.932465000000008 -38.111389000000003,174.940246999999999 -38.101112,174.898590000000013 -38.075004999999997,174.877166999999986 -38.064163,174.892486999999988 -37.976387000000003,174.893585000000002 -37.969994,174.868286000000012 -37.943610999999997,174.861084000000005 -37.939995000000003,174.85522499999999 -37.944716999999997,174.834686000000005 -37.963614999999997,174.830261000000007 -37.969161999999997,174.828033000000005 -37.976661999999997,174.828583000000009 -37.995002999999997,174.822754000000003 -37.999724999999998,174.814696999999995 -38.002502,174.804137999999995 -38.001944999999999,174.797211000000004 -37.998336999999999,174.791077 -37.993614,174.786376999999987 -37.988334999999999,174.783874999999995 -37.980826999999998,174.783600000000007 -37.971663999999997,174.788025000000005 -37.868332000000002,174.788879000000009 -37.860000999999997,174.791077 -37.852783000000002,174.795532000000009 -37.846947,174.819702000000007 -37.829169999999998,174.826629999999994 -37.825279000000002,174.841339000000005 -37.818610999999997,174.872741999999988 -37.806106999999997,174.883330999999998 -37.805,174.903045999999989 -37.807502999999997,174.945251000000013 -37.810555,174.967467999999997 -37.809165999999998,174.975525000000005 -37.806389000000003,174.974975999999998 -37.75,174.974670000000003 -37.740836999999999,174.966644000000002 -37.739998,174.951355000000007 -37.743057,174.94442699999999 -37.745002999999997,174.93081699999999 -37.752502,174.906921000000011 -37.774169999999998,174.870789000000002 -37.783057999999997,174.861633000000012 -37.785004,174.848297000000002 -37.769722000000002,174.828307999999993 -37.710830999999999,174.764160000000004 -37.527779000000002,174.744415000000004 -37.487502999999997,174.724975999999998 -37.447220000000002,174.717467999999997 -37.425002999999997,174.714690999999988 -37.408607000000003,174.714690999999988 -37.399445,174.719116000000014 -37.393616000000002,174.725799999999992 -37.389999000000003,174.744415000000004 -37.385834000000003,174.760528999999991 -37.380279999999999,174.767486999999988 -37.376389000000003,174.773041000000006 -37.371665999999998,174.831635000000006 -37.308052000000004,174.840789999999998 -37.296951,174.840515000000011 -37.291389000000002,174.82995600000001 -37.290557999999997,174.821899000000002 -37.291671999999998,174.812744000000009 -37.293616999999998,174.804687999999999 -37.296393999999999,174.797760000000011 -37.300277999999999,174.766083000000009 -37.321114,174.754700000000014 -37.330559,174.751373 -37.336945,174.744965000000008 -37.359169,174.740509000000003 -37.364722999999998,174.733582000000013 -37.368606999999997,174.724120999999997 -37.368889000000003,174.717194000000006 -37.365279999999998,174.711365 -37.360557999999997,174.701629999999994 -37.349724000000002,174.69442699999999 -37.336945,174.660187000000008 -37.273311999999997,174.645813000000004 -37.236389000000003,174.639709000000011 -37.224442000000003,174.599975999999998 -37.153885000000002,174.578307999999993 -37.115555,174.569976999999994 -37.103614999999998,174.555542000000003 -37.087502,174.551909999999992 -37.080832999999998,174.549712999999997 -37.073616,174.55304000000001 -37.067222999999998,174.558593999999999 -37.0625,174.568848000000003 -37.061385999999999,174.644135000000006 -37.061110999999997,174.661376999999987 -37.065551999999997,174.664977999999991 -37.071944999999999,174.666381999999999 -37.080283999999999,174.661925999999994 -37.085830999999999,174.650542999999999 -37.095275999999998,174.646087999999992 -37.100838000000003,174.648590000000013 -37.108055,174.703856999999999 -37.197777000000002,174.733856000000003 -37.196106,174.716644000000002 -37.154167,174.72357199999999 -37.150275999999998,174.87912 -37.088889999999999,174.887482000000006 -37.059165999999998,174.795532000000009 -37.023055999999997,174.804413000000011 -36.972220999999998,174.824982000000006 -36.960830999999999,174.829407000000003 -36.955002,174.83273299999999 -36.948608,174.828033000000005 -36.943053999999997,174.818848000000003 -36.941383000000002,174.770263999999997 -36.936661,174.696625000000012 -36.93972,174.686095999999992 -36.940834000000002,174.659697999999992 -36.947495000000004,174.653045999999989 -36.951393000000003,174.641662999999994 -36.960830999999999,174.622467 -36.982216,174.619110000000006 -36.988892,174.617187999999999 -36.996108999999997,174.600525000000005 -37.022224,174.524688999999995 -37.045555,174.515533000000005 -37.045555,174.508605999999986 -37.041946000000003,174.502472000000012 -37.037506,174.498016000000007 -37.031944000000003,174.490783999999991 -37.019165,174.484679999999997 -37.005561999999998,174.459228999999993 -36.944031000000003,174.451904000000013 -36.923889000000003,174.446930000000009 -36.909163999999997,174.443024000000008 -36.893616000000002,174.439147999999989 -36.868606999999997,174.436645999999996 -36.852226000000002,174.43386799999999 -36.835555999999997,174.427764999999994 -36.812775000000002,174.422760000000011 -36.798057999999997,174.416655999999989 -36.784171999999998,174.409697999999992 -36.771385000000002,174.406096999999988 -36.765006999999997,174.390533000000005 -36.740279999999998,174.344299000000007 -36.679336999999997,174.301085999999998 -36.62722,174.284973000000008 -36.612777999999999,174.267486999999988 -36.599167,174.236908 -36.568061999999998,174.208862000000011 -36.535277999999998,174.187744000000009 -36.496948000000003,174.17804000000001 -36.467498999999997,174.177764999999994 -36.458336000000003,174.178864000000004 -36.449997000000003,174.181091000000009 -36.442497000000003,174.184417999999994 -36.436110999999997,174.189972000000012 -36.431389000000003,174.196930000000009 -36.427779999999998,174.20495600000001 -36.428612,174.24383499999999 -36.440834000000002,174.251923000000005 -36.443610999999997,174.257751000000013 -36.448051,174.300262000000004 -36.515839,174.348846000000009 -36.601944000000003,174.367919999999998 -36.629165999999998,174.370728000000014 -36.6325,174.422484999999995 -36.667220999999998,174.430542000000003 -36.668059999999997,174.453033000000005 -36.651108,174.456359999999989 -36.644722000000002,174.465515000000011 -36.582779000000002,174.465515000000011 -36.532218999999998,174.442474000000004 -36.414718999999998,174.422211000000004 -36.366112,174.41885400000001 -36.370834000000002,174.391937000000013 -36.395004,174.384978999999987 -36.398887999999999,174.377166999999986 -36.401665,174.303864000000004 -36.395279000000002,174.296935999999988 -36.391669999999998,174.285247999999996 -36.3825,174.276916999999997 -36.370552000000004,174.26998900000001 -36.357779999999998,174.268585000000002 -36.349442000000003,174.268585000000002 -36.342224000000002,174.292205999999993 -36.316947999999996,174.299988000000013 -36.314163,174.308013999999986 -36.316947999999996,174.325531000000012 -36.330283999999999,174.334686000000005 -36.332222000000002,174.36883499999999 -36.331673000000002,174.376891999999998 -36.330832999999998,174.421248999999989 -36.310611999999999,174.50692699999999 -36.267220000000002,174.518311000000011 -36.258057,174.521636999999998 -36.251396,174.519135000000006 -36.245834000000002,174.505248999999992 -36.231383999999998,174.413299999999992 -36.263061999999998,174.378296000000006 -36.286667,174.364685000000009 -36.294167000000002,174.346619000000004 -36.298057999999997,174.336365 -36.298889000000003,174.305237000000005 -36.287506,174.365233999999987 -36.260002,174.442200000000014 -36.169724000000002,174.396087999999992 -36.144447,174.396362000000011 -36.151938999999999,174.394135000000006 -36.159163999999997,174.373290999999995 -36.206389999999999,174.369965000000008 -36.213057999999997,174.358856000000003 -36.222220999999998,174.345245000000006 -36.229720999999998,174.337463000000014 -36.232773000000002,174.33273299999999 -36.229163999999997,174.307738999999998 -36.176949,174.282745000000006 -36.121108999999997,174.274993999999992 -36.118332000000002,174.239409999999992 -36.111389000000003,174.229126000000008 -36.112502999999997,174.195251000000013 -36.131110999999997,174.188568000000004 -36.144165,174.185790999999995 -36.171944000000003,174.191345000000013 -36.176392,174.19830300000001 -36.18,174.217743000000013 -36.182502999999997,174.226898000000006 -36.182502999999997,174.236084000000005 -36.180557,174.244110000000006 -36.183059999999998,174.287749999999988 -36.210281000000002,174.312468999999993 -36.236663999999998,174.314696999999995 -36.243889000000003,174.267212 -36.270279000000002,174.259430000000009 -36.273055999999997,174.251373 -36.272499000000003,174.065796000000006 -36.168334999999999,173.999114999999989 -36.121108999999997,173.994415000000004 -36.115836999999999,173.99105800000001 -36.109444000000003,173.931091000000009 -35.981940999999999,173.938568000000004 -35.934998,173.947478999999987 -35.923889000000003,173.948577999999998 -35.915550000000003,173.946075000000008 -35.908051,173.913879000000009 -35.86972,173.908324999999991 -35.874442999999999,173.903870000000012 -35.879997000000003,173.904967999999997 -35.888336000000002,173.921356000000003 -36.003059,173.980804000000006 -36.121383999999999,173.987731999999994 -36.134171000000002,173.992461999999989 -36.139724999999999,174.124390000000005 -36.263618,174.176085999999998 -36.276947,174.180542000000003 -36.282501000000003,174.198853000000014 -36.343887000000002,174.199982000000006 -36.352226000000002,174.198028999999991 -36.368606999999997,174.194702000000007 -36.375275000000002,174.189147999999989 -36.379722999999998,174.115233999999987 -36.40361,174.089966000000004 -36.411385000000003,174.080811000000011 -36.409438999999999,174.06942699999999 -36.400275999999998,174.065796000000006 -36.393889999999999,174.057465000000008 -36.374718,174.049133000000012 -36.353614999999998,174.044433999999995 -36.338889999999999,174.039703000000003 -36.323334000000003,174.031096999999988 -36.293059999999997,174.020537999999988 -36.273887999999999,173.82607999999999 -36.032501000000003,173.737457000000006 -35.933608999999997,173.727172999999993 -35.923614999999998,173.590515000000011 -35.778053,173.398865 -35.573891000000003,173.395537999999988 -35.567504999999997,173.398865 -35.553612,173.446625000000012 -35.440277000000002,173.465789999999998 -35.429169000000002,173.501923000000005 -35.419724000000002,173.506378000000012 -35.425277999999999,173.540253000000007 -35.430832000000002,173.629943999999995 -35.356667000000002,173.65554800000001 -35.322502,173.65554800000001 -35.313332000000003,173.564147999999989 -35.278053,173.556091000000009 -35.280830000000002,173.551636000000002 -35.286391999999999,173.549712999999997 -35.302779999999998,173.549712999999997 -35.321114,173.551909999999992 -35.328612999999997,173.566924999999998 -35.344161999999997,173.568024000000008 -35.361671,173.566924999999998 -35.36972,173.559143000000006 -35.372771999999998,173.439696999999995 -35.376106,173.416077 -35.384444999999999,173.410247999999996 -35.388893000000003,173.391356999999999 -35.423057999999997,173.39498900000001 -35.449722,173.396087999999992 -35.458053999999997,173.392761000000007 -35.482773000000002,173.386382999999995 -35.523330999999999,173.380524000000008 -35.528053,173.37384 -35.524169999999998,173.306915000000004 -35.449165,173.237731999999994 -35.370277000000002,173.154144000000002 -35.276665,173.103302000000014 -35.226104999999997,173.09191899999999 -35.216942000000003,173.087463000000014 -35.211387999999999,173.09191899999999 -35.1875,173.098846000000009 -35.183608999999997,173.119110000000006 -35.185555,173.12802099999999 -35.1875,173.134704999999997 -35.191108999999997,173.14498900000001 -35.191940000000002,173.152771 -35.189163,173.163879000000009 -35.179169000000002,173.168578999999994 -35.173614999999998,173.18081699999999 -35.156104999999997,173.187468999999993 -35.143332999999998,173.191924999999998 -35.128334000000002,173.196349999999995 -35.104446000000003,173.197478999999987 -35.09639,173.198577999999998 -35.078887999999999,173.198577999999998 -35.051108999999997,173.193848000000003 -35.027222000000002,173.189423000000005 -35.012779000000002,173.179413000000011 -34.993332000000002,173.175812000000008 -34.986946000000003,173.159149000000014 -34.958336000000003,173.151093000000003 -34.946663,173.137755999999996 -34.93,172.947204999999997 -34.716942000000003,172.828033000000005 -34.584442000000003,172.812468999999993 -34.568893000000003,172.722473000000008 -34.495277000000002,172.739136000000002 -34.435555,172.900817999999987 -34.414718999999998,172.911925999999994 -34.414718999999998,173.020813000000004 -34.422226000000002,173.038879000000009 -34.436942999999999,173.043304000000006 -34.517775999999998,173.039977999999991 -34.522224,173.033324999999991 -34.525832999999999,173.024414000000007 -34.527779000000002,173.016662999999994 -34.52861,173.007476999999994 -34.526947,172.997467 -34.498336999999999,172.984130999999991 -34.472771000000002,172.961914000000007 -34.465279000000002,172.955230999999998 -34.468887000000002,172.908324999999991 -34.544167000000002,172.912749999999988 -34.549728000000002,172.923858999999993 -34.558891000000003,172.936095999999992 -34.567222999999998,172.973021999999986 -34.581116000000002,173.053314 -34.665550000000003,173.057738999999998 -34.680283000000003,173.110503999999992 -34.791389000000002,173.120789000000002 -34.810555,173.128570999999994 -34.822502,173.133026 -34.828055999999997,173.13857999999999 -34.832504,173.151916999999997 -34.839995999999999,173.213593000000003 -34.871941,173.242737000000005 -34.884726999999998,173.273314999999997 -34.940834000000002,173.268859999999989 -34.946387999999999,173.262206999999989 -34.959167,173.259978999999987 -34.966659999999997,173.258881000000002 -34.974716,173.259978999999987 -34.983055,173.264709000000011 -35.014449999999997,173.269135000000006 -35.019722000000002,173.317474000000004 -35.018889999999999,173.328583000000009 -35.009444999999999,173.358856000000003 -34.98111,173.36300700000001 -34.975555,173.366364000000004 -34.968887000000002,173.373259999999988 -34.936774999999997,173.371246000000014 -34.927444,173.400817999999987 -34.863334999999999,173.426085999999998 -34.82,173.450806 -34.807777000000002,173.500274999999988 -34.864722999999998,173.499114999999989 -34.871108999999997,173.492461999999989 -34.874718,173.452453999999989 -34.887779000000002,173.443297999999999 -34.889724999999999,173.433319000000012 -34.890555999999997,173.413025000000005 -34.888893000000003,173.405243000000013 -34.892502,173.399719000000005 -34.897224,173.399719000000005 -34.906387000000002,173.402190999999988 -34.913887000000003,173.411590999999987 -34.931778,173.419128 -34.945830999999998,173.426909999999992 -34.957779000000002,173.431641000000013 -34.963332999999999,173.44165000000001 -34.973328000000002,173.454131999999987 -34.981667000000002,173.467467999999997 -34.988892,173.475525000000005 -34.991669000000002,173.493286000000012 -34.995277000000002,173.541655999999989 -34.988608999999997,173.561645999999996 -34.958893000000003,173.562468999999993 -34.950836000000002,173.566924999999998 -34.936110999999997,173.572478999999987 -34.931389000000003,173.579131999999987 -34.927779999999998,173.589416999999997 -34.928612,173.83914200000001 -35.004173000000002,174.101074000000011 -35.121108999999997,174.098297000000002 -35.161667,174.091644000000002 -35.158051,174.056641000000013 -35.155555999999997,174.021911999999986 -35.164161999999997,174.008026 -35.207504,174.008026 -35.215004,174.011382999999995 -35.221381999999998,174.018311000000011 -35.224997999999999,174.093841999999995 -35.225273,174.100525000000005 -35.228881999999999,174.143585000000002 -35.328612999999997,174.208008000000007 -35.323334000000003,174.218018 -35.322226999999998,174.247741999999988 -35.27861,174.319976999999994 -35.232773000000002,174.383881000000002 -35.337775999999998,174.461638999999991 -35.445273999999998,174.491913000000011 -35.485275,174.575806 -35.601944000000003,174.577179 -35.610000999999997,174.577147999999994 -35.618088,174.569976999999994 -35.648055999999997,174.563292999999987 -35.651665,174.530272999999994 -35.649445,174.520263999999997 -35.648612999999997,174.513306 -35.645004,174.505248999999992 -35.642502,174.479126000000008 -35.641945,174.47357199999999 -35.646393000000003,174.474975999999998 -35.654716,174.518311000000011 -35.724167,174.523041000000006 -35.729438999999999,174.554137999999995 -35.750281999999999,174.561919999999986 -35.753059,174.583862000000011 -35.764724999999999,174.60244800000001 -35.844444000000003,174.596924 -35.849167,174.58914200000001 -35.851944000000003,174.577758999999986 -35.852226000000002,174.560790999999995 -35.847777999999998,174.554961999999989 -35.843330000000002,174.538574000000011 -35.819450000000003,174.523314999999997 -35.796669,174.519713999999993 -35.790283000000002,174.49105800000001 -35.769447,174.361908 -35.723328000000002,174.357451999999995 -35.72361,174.34857199999999 -35.734726000000002,174.346924 -35.833061,174.350525000000005 -35.839438999999999,174.35522499999999 -35.845001000000003,174.360779000000008 -35.849442000000003,174.381348000000003 -35.851112,174.384704999999997 -35.844718999999998,174.385528999999991 -35.828887999999999,174.391083000000009 -35.824173000000002,174.398865 -35.821387999999999,174.437468999999993 -35.822777000000002,174.476074000000011 -35.824173000000002,174.486358999999993 -35.824722,174.519713999999993 -35.844718999999998,174.525542999999999 -35.849167,174.524414000000007 -35.855559999999997,174.521362000000011 -35.862220999999998,174.501373 -35.889999000000003,174.496917999999994 -35.895553999999997,174.487182999999987 -35.915000999999997,174.495513999999986 -35.988608999999997,174.498016000000007 -35.994163999999998,174.514160000000004 -36.008614,174.56942699999999 -36.037224000000002,174.578583000000009 -36.038894999999997,174.587738000000002 -36.038894999999997,174.596619000000004 -36.036667,174.606902999999988 -36.037506,174.612731999999994 -36.042228999999999,174.622192000000013 -36.053055,174.62912 -36.065834000000002,174.629394999999988 -36.075004999999997,174.616364000000004 -36.100861000000002)),((171.185241999999988 -44.938332000000003,171.182129000000003 -44.94173,171.175017999999994 -44.949902000000002,171.167923000000002 -44.959850000000003,171.165436 -44.966599000000002,171.164703000000003 -44.970275999999998,171.163299999999992 -44.978332999999999,171.149719000000005 -44.996665999999998,171.07995600000001 -45.067222999999998,171.02664200000001 -45.103332999999999,170.975525000000005 -45.151108,170.966063999999989 -45.163055,170.961914000000007 -45.169167000000002,170.921630999999991 -45.243057,170.873566000000011 -45.358055,170.873290999999995 -45.367218,170.876891999999998 -45.373885999999999,170.871338000000009 -45.424171,170.859955000000014 -45.487502999999997,170.855804000000006 -45.493889000000003,170.750274999999988 -45.61972,170.674682999999987 -45.745002999999997,170.616913000000011 -45.839438999999999,170.55886799999999 -45.881667999999998,170.554413000000011 -45.888053999999997,170.555542000000003 -45.896110999999998,170.591063999999989 -45.894165,170.600525000000005 -45.891669999999998,170.608582000000013 -45.888053999999997,170.658600000000007 -45.858612,170.718018 -45.817504999999997,170.724670000000003 -45.813057,170.773314999999997 -45.782775999999998,170.781096999999988 -45.786391999999999,170.790802000000014 -45.806946000000003,170.790802000000014 -45.84639,170.788879000000009 -45.863892,170.783051 -45.878334000000002,170.776366999999993 -45.882773999999998,170.699982000000006 -45.911667,170.664429000000013 -45.908332999999999,170.57330300000001 -45.916663999999997,170.550536999999991 -45.919167000000002,170.484406000000007 -45.926949,170.452453999999989 -45.931946000000003,170.424408 -45.939438000000003,170.382721000000004 -45.956108,170.342467999999997 -45.97361,170.315246999999999 -45.991385999999999,170.309692000000013 -45.996948000000003,170.294433999999995 -46.013893000000003,170.281646999999992 -46.029442000000003,170.263610999999997 -46.051940999999999,170.256378000000012 -46.065551999999997,170.253051999999997 -46.081947,170.252472000000012 -46.09111,170.254424999999998 -46.107779999999998,170.252777000000009 -46.115836999999999,170.240783999999991 -46.146949999999997,170.237731999999994 -46.154167,170.226623999999987 -46.165000999999997,170.214416999999997 -46.174720999999998,170.193848000000003 -46.188048999999999,170.169433999999995 -46.198608,170.067748999999992 -46.246665999999998,169.911925999999994 -46.340279000000002,169.863585999999998 -46.371383999999999,169.858001999999999 -46.376663,169.849396000000013 -46.389442000000003,169.848021999999986 -46.416946000000003,169.849975999999998 -46.433326999999998,169.852172999999993 -46.440834000000002,169.853850999999992 -46.457504,169.850799999999992 -46.464722000000002,169.845245000000006 -46.469994,169.701904000000013 -46.558052000000004,169.631348000000003 -46.581947,169.458008000000007 -46.623328999999998,169.266388000000006 -46.656387000000002,169.133026 -46.670836999999999,169.107727000000011 -46.669167000000002,169.097197999999992 -46.666946000000003,169.084411999999986 -46.657501000000003,169.067200000000014 -46.635002,169.061919999999986 -46.675002999999997,169.053864000000004 -46.678612,169.008026 -46.680832000000002,168.883330999999998 -46.667777999999998,168.878296000000006 -46.661942000000003,168.861908 -46.628334000000002,168.862457000000006 -46.619446000000003,168.864409999999992 -46.611114999999998,168.864959999999996 -46.603889000000002,168.844970999999987 -46.563614,168.835784999999987 -46.560555,168.823853000000014 -46.561110999999997,168.733306999999996 -46.577499000000003,168.640533000000005 -46.603889000000002,168.633605999999986 -46.606392,168.614685000000009 -46.611114999999998,168.593018 -46.614165999999997,168.568848000000003 -46.615004999999996,168.516937000000013 -46.614165999999997,168.492737000000005 -46.613334999999999,168.442138999999997 -46.601500999999999,168.436630000000008 -46.599666999999997,168.446625000000012 -46.584003000000003,168.442200000000014 -46.575004999999997,168.454407000000003 -46.574447999999997,168.490509000000003 -46.573059,168.502472000000012 -46.574173000000002,168.506103999999993 -46.578887999999999,168.499114999999989 -46.583328000000002,168.505553999999989 -46.588051,168.551636000000002 -46.594444000000003,168.561371000000008 -46.591942000000003,168.566924999999998 -46.586661999999997,168.563599000000011 -46.580002,168.550812000000008 -46.570557,168.541655999999989 -46.567504999999997,168.391356999999999 -46.540000999999997,168.361908 -46.544449,168.353577 -46.547783000000003,168.351623999999987 -46.556106999999997,168.352172999999993 -46.564444999999999,168.362731999999994 -46.583885000000002,168.348236000000014 -46.582165000000003,168.352904999999993 -46.584499,168.359267999999986 -46.585830999999999,168.365082 -46.592666999999999,168.367248999999987 -46.596668,168.367599000000013 -46.601497999999999,168.364928999999989 -46.605331,168.35775799999999 -46.604500000000002,168.351409999999987 -46.603164999999997,168.275269000000009 -46.557777000000002,168.269135000000006 -46.535561,168.268311000000011 -46.529167,168.27664200000001 -46.525832999999999,168.286102 -46.523330999999999,168.307738999999998 -46.520553999999997,168.318297999999999 -46.520836000000003,168.318848000000003 -46.529167,168.321075000000008 -46.536667,168.328856999999999 -46.540557999999997,168.339416999999997 -46.539169,168.386658000000011 -46.497779999999999,168.392486999999988 -46.492226000000002,168.395537999999988 -46.485000999999997,168.396087999999992 -46.477775999999999,168.394135000000006 -46.470275999999998,168.37384 -46.421944000000003,168.36883499999999 -46.416106999999997,168.359679999999997 -46.415000999999997,168.350249999999988 -46.417503000000004,168.250274999999988 -46.400832999999999,168.211090000000013 -46.355277999999998,168.206085000000002 -46.351394999999997,168.194702000000007 -46.345551,168.185516000000007 -46.342498999999997,168.174988000000013 -46.340279000000002,168.116364000000004 -46.343612999999998,168.063873 -46.351669,167.955535999999995 -46.371383999999999,167.893035999999995 -46.387222,167.850799999999992 -46.399445,167.832184000000012 -46.398612999999997,167.824401999999992 -46.394447,167.753875999999991 -46.333885000000002,167.776916999999997 -46.312775000000002,167.781372000000005 -46.306389000000003,167.783600000000007 -46.298340000000003,167.781372000000005 -46.290840000000003,167.778045999999989 -46.284171999999998,167.701904000000013 -46.209442000000003,167.596924 -46.166389000000002,167.556641000000013 -46.156387000000002,167.546356000000003 -46.154167,167.534424 -46.152779000000002,167.483032000000009 -46.149726999999999,167.471069 -46.149994,167.460236000000009 -46.151389999999999,167.451904000000013 -46.154716,167.446075000000008 -46.159996,167.415526999999997 -46.204720000000002,167.356628 -46.254447999999996,167.280272999999994 -46.273055999999997,167.261108000000007 -46.267775999999998,167.238555999999988 -46.263893000000003,167.086638999999991 -46.240555,167.001373 -46.229163999999997,166.966063999999989 -46.224716,166.949982000000006 -46.223885000000003,166.915253000000007 -46.226104999999997,166.883026 -46.229996,166.836365 -46.232498,166.823028999999991 -46.231667000000002,166.768035999999995 -46.22361,166.726348999999999 -46.214165,166.717467999999997 -46.210830999999999,166.705230999999998 -46.201110999999997,166.670806999999996 -46.161667,166.67025799999999 -46.15361,166.684417999999994 -46.145004,166.693848000000003 -46.142775999999998,166.709411999999986 -46.135277000000002,166.738861000000014 -46.119163999999998,166.761230000000012 -46.093612999999998,166.784911999999991 -46.064945000000002,166.804748999999987 -46.033279,166.82995600000001 -46.003891000000003,166.854674999999986 -45.994163999999998,166.886932000000002 -45.990279999999998,166.943297999999999 -45.956108,166.949127000000004 -45.950836000000002,166.946930000000009 -45.945273999999998,166.939147999999989 -45.944716999999997,166.929687999999999 -45.947220000000002,166.836365 -45.981383999999998,166.828033000000005 -45.984444000000003,166.791350999999992 -46.005004999999997,166.785797000000002 -46.010283999999999,166.781096999999988 -46.016396,166.759308000000004 -46.035553,166.762969999999996 -46.038387,166.764969000000008 -46.042392999999997,166.763656999999995 -46.047221999999998,166.760162000000008 -46.050392000000002,166.740982000000002 -46.066059000000003,166.737793000000011 -46.066558999999998,166.670532000000009 -46.087218999999997,166.615783999999991 -46.090836000000003,166.613585999999998 -46.086387999999999,166.617461999999989 -46.059722999999998,166.621062999999992 -46.052498,166.640807999999993 -46.015006999999997,166.661652000000004 -45.991942999999999,166.625792999999987 -45.967216,166.492461999999989 -46.013061999999998,166.484406000000007 -46.014449999999997,166.474975999999998 -46.002785000000003,166.467194000000006 -45.990555,166.465239999999994 -45.983055,166.464690999999988 -45.839438999999999,166.468841999999995 -45.823059,166.472473000000008 -45.815834000000002,166.476898000000006 -45.809722999999998,166.537475999999998 -45.798889000000003,166.613861000000014 -45.801108999999997,166.652190999999988 -45.800277999999999,166.699982000000006 -45.798889000000003,166.881348000000003 -45.779998999999997,166.890807999999993 -45.777779000000002,166.974120999999997 -45.735000999999997,166.987182999999987 -45.709724,166.923034999999999 -45.705832999999998,166.912475999999998 -45.705275999999998,166.887482000000006 -45.705002,166.854126000000008 -45.707779000000002,166.825806 -45.714722000000002,166.809417999999994 -45.721381999999998,166.787475999999998 -45.689995000000003,166.775817999999987 -45.662773,166.81153900000001 -45.617942999999997,166.811217999999997 -45.613109999999999,166.812531000000007 -45.608111999999998,166.816710999999998 -45.605606000000002,166.869689999999991 -45.588779000000002,166.881026999999989 -45.586112999999997,166.88736 -45.585278000000002,166.895203000000009 -45.585608999999998,166.901366999999993 -45.587108999999998,166.912871999999993 -45.590946000000002,166.980255 -45.578612999999997,166.991913000000011 -45.580002,167.0 -45.576949999999997,167.005829000000006 -45.571671000000002,167.032470999999987 -45.527779000000002,167.041350999999992 -45.501396,166.989685000000009 -45.519165,166.891693000000004 -45.544724000000002,166.796875 -45.569389,166.791199000000006 -45.570720999999999,166.784836000000013 -45.571556,166.777023000000014 -45.571219999999997,166.710509999999999 -45.579445,166.704407000000003 -45.574447999999997,166.697204999999997 -45.554718,166.699127000000004 -45.546669,166.757476999999994 -45.425277999999999,166.801361000000014 -45.353614999999998,166.821625000000012 -45.320557,166.86883499999999 -45.279724000000002,166.880797999999999 -45.279167,167.008330999999998 -45.341667,167.038299999999992 -45.357779999999998,167.146941999999996 -45.427222999999998,167.16885400000001 -45.472496,167.205230999999998 -45.477775999999999,167.211914000000007 -45.475273,167.21414200000001 -45.467216,167.209411999999986 -45.461387999999999,167.173584000000005 -45.422775,167.158019999999993 -45.406661999999997,167.134978999999987 -45.386116,167.12912 -45.381385999999999,167.115509000000003 -45.372222999999998,167.097747999999996 -45.366112,167.087463000000014 -45.363616999999998,167.061645999999996 -45.345001000000003,167.051085999999998 -45.333328000000002,167.081421000000006 -45.325333,167.08407600000001 -45.321666999999998,167.092407000000009 -45.316498000000003,167.097243999999989 -45.314498999999998,167.114227 -45.310333,167.163574000000011 -45.302833999999997,167.169922000000014 -45.302998000000002,167.173584000000005 -45.305999999999997,167.176422000000002 -45.309330000000003,167.17756700000001 -45.313834999999997,167.212738000000002 -45.313332000000003,167.218841999999995 -45.318336000000002,167.232178000000005 -45.327224999999999,167.239685000000009 -45.331116000000002,167.248566000000011 -45.334167,167.260254000000003 -45.335830999999999,167.270813000000004 -45.334442000000003,167.301636000000002 -45.329445,167.309692000000013 -45.326110999999997,167.307738999999998 -45.318610999999997,167.300262000000004 -45.314444999999999,167.19464099999999 -45.271445999999997,167.138290000000012 -45.268943999999998,167.099471999999992 -45.272114000000002,167.094146999999992 -45.271278000000002,167.08964499999999 -45.268776000000003,167.002196999999995 -45.201110999999997,166.996917999999994 -45.145836000000003,167.146362000000011 -45.001671000000002,167.198577999999998 -44.956108,167.204407000000003 -44.951110999999997,167.228302000000014 -44.930832000000002,167.24105800000001 -44.921387000000003,167.260528999999991 -44.907501000000003,167.267486999999988 -44.903053,167.312744000000009 -44.875,167.320800999999989 -44.871383999999999,167.393462999999997 -44.862999000000002,167.398987000000005 -44.861496000000002,167.404312000000004 -44.863498999999997,167.421798999999993 -44.894168999999998,167.422974000000011 -44.898665999999999,167.420638999999994 -44.908496999999997,167.417968999999999 -44.912166999999997,167.440796000000006 -44.928612,167.439972000000012 -44.9375,167.441924999999998 -44.945,167.459686000000005 -44.99472,167.497741999999988 -45.003891000000003,167.507202000000007 -45.001396,167.508224000000013 -45.0,167.511658000000011 -44.995277000000002,167.511108000000007 -44.986946000000003,167.47908000000001 -44.903446000000002,167.465912000000003 -44.876441999999997,167.462752999999992 -44.867947,167.461578000000003 -44.863444999999999,167.460097999999988 -44.853946999999998,167.459411999999986 -44.843944999999998,167.459914999999995 -44.838444000000003,167.448577999999998 -44.795279999999998,167.453033000000005 -44.788894999999997,167.458587999999992 -44.783614999999998,167.59970100000001 -44.683883999999999,167.743010999999996 -44.611671,167.838866999999993 -44.498610999999997,167.850249999999988 -44.488052000000003,167.949982000000006 -44.40361,167.963593000000003 -44.395004,168.034973000000008 -44.353614999999998,168.12802099999999 -44.316947999999996,168.141662999999994 -44.308052000000004,168.144713999999993 -44.300834999999999,168.144135000000006 -44.292503000000004,168.124099999999999 -44.251404,168.143311000000011 -44.253059,168.153594999999996 -44.251396,168.169708000000014 -44.24472,168.288299999999992 -44.172775,168.29385400000001 -44.167503000000004,168.336638999999991 -44.123885999999999,168.339966000000004 -44.116661,168.337738000000002 -44.109169,168.334411999999986 -44.102783000000002,168.336365 -44.094444000000003,168.369689999999991 -44.043334999999999,168.374968999999993 -44.037781000000003,168.383026 -44.034447,168.402771 -44.029724000000002,168.672211000000004 -43.987777999999999,168.676909999999992 -43.993614,168.683043999999995 -43.998336999999999,168.690246999999999 -44.002228000000002,168.715239999999994 -44.012222,168.723021999999986 -44.012504999999997,168.753875999999991 -44.010002,168.764160000000004 -44.008614,168.824401999999992 -43.988334999999999,168.858582000000013 -43.976661999999997,168.866364000000004 -43.973328000000002,168.879669000000007 -43.964447,168.885254000000003 -43.959167,168.961914000000007 -43.90361,169.080765000000014 -43.848472999999998,169.142212 -43.794167000000002,169.224396000000013 -43.743332000000002,169.271636999999998 -43.722496,169.387482000000006 -43.679169000000002,169.491318000000007 -43.643467,169.539153999999996 -43.633614,169.62661700000001 -43.613892,169.64498900000001 -43.608893999999999,169.652771 -43.605559999999997,169.660521999999986 -43.601944000000003,169.721619000000004 -43.573334000000003,169.728302000000014 -43.568893000000003,169.739136000000002 -43.558052000000004,169.767486999999988 -43.522773999999998,169.790526999999997 -43.496665999999998,169.871062999999992 -43.406661999999997,169.884154999999993 -43.397781000000002,169.961638999999991 -43.371941,170.021911999999986 -43.352500999999997,170.028594999999996 -43.347777999999998,170.033874999999995 -43.342498999999997,170.038025000000005 -43.336112999999997,170.049408 -43.306946000000003,170.111358999999993 -43.254173000000002,170.288299999999992 -43.107779999999998,170.418029999999987 -43.052498,170.523041000000006 -43.010559,170.531921000000011 -43.008057,170.583037999999988 -42.990555,170.674347000000012 -42.958739999999999,170.704407000000003 -42.945830999999998,170.750549000000007 -42.924720999999998,170.781096999999988 -42.910553,170.794128 -42.901389999999999,171.065796000000006 -42.648055999999997,171.108306999999996 -42.608055,171.149719000000005 -42.563614,171.153594999999996 -42.55722,171.196075000000008 -42.476661999999997,171.225799999999992 -42.433608999999997,171.230255 -42.40889,171.235779000000008 -42.394165,171.247467 -42.375,171.260254000000003 -42.366112,171.270537999999988 -42.355003000000004,171.297760000000011 -42.310279999999999,171.304413000000011 -42.296669,171.309692000000013 -42.281944000000003,171.31665000000001 -42.249724999999998,171.321075000000008 -42.224716,171.322754000000003 -42.207222000000002,171.324401999999992 -42.18972,171.326355000000007 -42.172226000000002,171.329131999999987 -42.155830000000002,171.343841999999995 -42.110832000000002,171.361084000000005 -42.067779999999999,171.461638999999991 -41.859726000000002,171.51080300000001 -41.764449999999997,171.533051 -41.766396,171.557738999999998 -41.766663,171.569121999999993 -41.766112999999997,171.650817999999987 -41.761391000000003,171.663025000000005 -41.757781999999999,171.685790999999995 -41.746948000000003,171.790526999999997 -41.696387999999999,171.85522499999999 -41.652779000000002,171.886658000000011 -41.629997000000003,171.942200000000014 -41.550277999999999,172.02276599999999 -41.443053999999997,172.053864000000004 -41.417503000000004,172.064972000000012 -41.40361,172.122192000000013 -41.277779000000002,172.111633000000012 -41.236114999999998,172.10522499999999 -41.153053,172.106078999999994 -40.911385000000003,172.10635400000001 -40.893059,172.108856000000003 -40.885559,172.113861000000014 -40.879997000000003,172.186645999999996 -40.813332000000003,172.218567000000007 -40.785834999999999,172.22470100000001 -40.781109,172.255248999999992 -40.776947,172.263884999999988 -40.774169999999998,172.271362000000011 -40.770553999999997,172.299408 -40.755004999999997,172.348297000000002 -40.727493000000003,172.382721000000004 -40.698334000000003,172.426909999999992 -40.657775999999998,172.478302000000014 -40.613892,172.513320999999991 -40.598441999999999,172.517639000000003 -40.596783000000002,172.523482999999999 -40.597946,172.522644000000014 -40.602943000000003,172.521132999999992 -40.607277000000003,172.520813000000004 -40.625,172.519440000000003 -40.631385999999999,172.525542999999999 -40.6325,172.534149000000014 -40.631667999999998,172.571899000000002 -40.617775000000002,172.596343999999988 -40.601394999999997,172.62802099999999 -40.573891000000003,172.631621999999993 -40.567222999999998,172.631621999999993 -40.559998,172.608582000000013 -40.556946000000003,172.601348999999999 -40.558891000000003,172.597014999999999 -40.553333000000002,172.589690999999988 -40.558838000000002,172.583862000000011 -40.560004999999997,172.581024000000014 -40.556671,172.581848000000008 -40.551665999999997,172.589843999999999 -40.541172000000003,172.627166999999986 -40.511947999999997,172.633330999999998 -40.509171000000002,172.661376999999987 -40.502785000000003,172.712188999999995 -40.495552000000004,172.817748999999992 -40.504173000000002,172.861358999999993 -40.507781999999999,172.981628 -40.527222000000002,172.991332999999997 -40.529167,172.989959999999996 -40.53389,172.978026999999997 -40.53389,172.945251000000013 -40.530830000000002,172.895263999999997 -40.524445,172.797211000000004 -40.516112999999997,172.739959999999996 -40.516945,172.731628 -40.519722000000002,172.656921000000011 -40.653328000000002,172.701355000000007 -40.748336999999999,172.855804000000006 -40.853057999999997,172.865509000000003 -40.853057999999997,172.875244000000009 -40.851112,172.907195999999999 -40.828887999999999,172.930266999999986 -40.802222999999998,172.935241999999988 -40.796669,172.976623999999987 -40.781944000000003,172.985229000000004 -40.781112999999998,173.002196999999995 -40.786667,173.008330999999998 -40.791114999999998,173.013306 -40.796669,173.020537999999988 -40.809722999999998,173.051085999999998 -40.869446000000003,173.059692000000013 -40.962775999999998,173.059692000000013 -40.971938999999999,173.056091000000009 -40.978606999999997,173.031646999999992 -41.027495999999999,173.075806 -41.291114999999998,173.079680999999994 -41.297500999999997,173.085784999999987 -41.302222999999998,173.105529999999987 -41.313332000000003,173.168029999999987 -41.316108999999997,173.188873 -41.313332000000003,173.198853000000014 -41.311385999999999,173.207184000000012 -41.308608999999997,173.272217000000012 -41.274445,173.278320000000008 -41.269722000000002,173.32607999999999 -41.222496,173.340515000000011 -41.205832999999998,173.351623999999987 -41.195549,173.377166999999986 -41.178055,173.426085999999998 -41.150275999999998,173.598021999999986 -41.053612,173.606628 -41.052498,173.639709000000011 -41.073616,173.672760000000011 -41.070557,173.720519999999993 -41.060279999999999,173.727753000000007 -41.056389000000003,173.739959999999996 -41.047226000000002,173.744689999999991 -41.032501000000003,173.743286000000012 -41.024169999999998,173.738281 -41.018608,173.72744800000001 -41.019447,173.718841999999995 -41.022499000000003,173.696930000000009 -41.033614999999998,173.690796000000006 -41.038338000000003,173.682189999999991 -41.041114999999998,173.676085999999998 -41.036391999999999,173.673584000000005 -41.029167,173.674682999999987 -41.020836000000003,173.678314 -41.014449999999997,173.696625000000012 -41.000281999999999,173.751373 -40.976944000000003,173.800262000000004 -40.969161999999997,173.913299999999992 -40.931671,173.984679999999997 -40.896949999999997,173.994415000000004 -40.896667,174.02276599999999 -40.913055,174.027771 -40.91861,174.030272999999994 -40.925834999999999,174.03054800000001 -40.935271999999998,174.02941899999999 -40.943610999999997,174.022217000000012 -40.947220000000002,173.929961999999989 -40.992226000000002,173.832184000000012 -40.995002999999997,173.821075000000008 -40.994163999999998,173.782195999999999 -41.009171000000002,173.778594999999996 -41.015555999999997,173.769713999999993 -41.09861,173.778594999999996 -41.114449,173.794433999999995 -41.109444000000003,173.822204999999997 -41.080832999999998,173.821899000000002 -41.062218,173.836638999999991 -41.055,173.846343999999988 -41.053055,173.93081699999999 -41.049446000000003,173.946625000000012 -41.055832000000002,173.953033000000005 -41.060555,173.917755 -41.087502,173.887482000000006 -41.103332999999999,173.848846000000009 -41.144165,173.820526 -41.245834000000002,173.763306 -41.267502,173.76080300000001 -41.273055999999997,173.775817999999987 -41.289726000000002,173.788025000000005 -41.290557999999997,173.806365999999997 -41.289444000000003,174.03720100000001 -41.218330000000002,174.09970100000001 -41.198334000000003,174.128845000000013 -41.187218,174.133605999999986 -41.181671,174.133605999999986 -41.176108999999997,174.126068000000004 -41.174171,174.008605999999986 -41.175277999999999,174.001099000000011 -41.178885999999999,174.001373 -41.186385999999999,174.000274999999988 -41.194716999999997,173.993010999999996 -41.198334000000003,173.981902999999988 -41.199440000000003,173.932738999999998 -41.199997000000003,173.908324999999991 -41.199997000000003,173.899719000000005 -41.197495000000004,173.893585000000002 -41.192771999999998,173.887206999999989 -41.169724000000002,173.88580300000001 -41.161667,173.888031000000012 -41.154167,173.89776599999999 -41.133614,173.902466000000004 -41.128334000000002,174.032745000000006 -40.999724999999998,174.084411999999986 -41.021385000000002,174.094116000000014 -41.023330999999999,174.246338000000009 -41.044724000000002,174.258330999999998 -41.035277999999998,174.299408 -41.003616,174.315246999999999 -41.000557,174.323853000000014 -41.003334000000002,174.323853000000014 -41.010834000000003,174.321625000000012 -41.018059,174.209960999999993 -41.197495000000004,174.161376999999987 -41.225555,174.152771 -41.226661999999997,174.114685000000009 -41.231383999999998,174.052185000000009 -41.235000999999997,174.02664200000001 -41.236114999999998,174.053864000000004 -41.254173000000002,174.206359999999989 -41.269447,174.214966000000004 -41.266663,174.291655999999989 -41.238892,174.303588999999988 -41.229720999999998,174.320800999999989 -41.220275999999998,174.326904000000013 -41.222771000000002,174.288574000000011 -41.276947,174.249114999999989 -41.322502,174.241637999999995 -41.326110999999997,174.231902999999988 -41.328055999999997,174.208587999999992 -41.329445,174.193572999999986 -41.320281999999999,174.155243000000013 -41.305,174.148041000000006 -41.308608999999997,174.111633000000012 -41.336661999999997,174.052764999999994 -41.421112,174.049133000000012 -41.427779999999998,174.044433999999995 -41.442497000000003,174.045806999999996 -41.450836000000002,174.049988000000013 -41.466392999999997,174.063873 -41.493057,174.084136999999998 -41.526108,174.097473000000008 -41.519447,174.096069 -41.511116,174.100799999999992 -41.505561999999998,174.108306999999996 -41.509171000000002,174.114685000000009 -41.513893000000003,174.125792999999987 -41.523887999999999,174.151093000000003 -41.551392,174.176085999999998 -41.578612999999997,174.178864000000004 -41.586112999999997,174.179961999999989 -41.594444000000003,174.179137999999995 -41.602783000000002,174.174133000000012 -41.608336999999999,174.163299999999992 -41.618606999999997,174.157195999999999 -41.623328999999998,174.193024000000008 -41.685555,174.287749999999988 -41.734444000000003,174.291655999999989 -41.740836999999999,174.289153999999996 -41.748336999999999,174.283324999999991 -41.762222,174.236358999999993 -41.837218999999997,174.212188999999995 -41.865279999999998,174.201355000000007 -41.875557,174.184143000000006 -41.890555999999997,174.17804000000001 -41.895004,174.164703000000003 -41.90361,174.157195999999999 -41.907218999999998,174.143585000000002 -41.915832999999999,174.088561999999996 -41.957779000000002,174.009154999999993 -42.027495999999999,173.979674999999986 -42.061110999999997,173.965239999999994 -42.086945,173.959136999999998 -42.100838000000003,173.954407000000003 -42.115555,173.953307999999993 -42.123885999999999,173.953583000000009 -42.133330999999998,173.956359999999989 -42.166389000000002,173.933319000000012 -42.196944999999999,173.928314 -42.202499000000003,173.884154999999993 -42.243614,173.87802099999999 -42.248055,173.870513999999986 -42.251944999999999,173.86300700000001 -42.255561999999998,173.834686000000005 -42.271385000000002,173.801361000000014 -42.293059999999997,173.794983000000002 -42.297500999999997,173.568572999999986 -42.476944000000003,173.558593999999999 -42.487777999999999,173.541350999999992 -42.511947999999997,173.533874999999995 -42.525002,173.531372000000005 -42.532218999999998,173.500823999999994 -42.599724000000002,173.480804000000006 -42.621941,173.466063999999989 -42.656944000000003,173.459960999999993 -42.670836999999999,173.448853000000014 -42.690277000000002,173.387755999999996 -42.793616999999998,173.351623999999987 -42.840836000000003,173.328033000000005 -42.898887999999999,173.328033000000005 -42.906387000000002,173.325806 -42.913612,173.285521999999986 -42.958053999999997,173.106902999999988 -43.057777000000002,173.099396000000013 -43.061385999999999,173.090515000000011 -43.064444999999999,173.026366999999993 -43.081947,172.975799999999992 -43.09111,172.953033000000005 -43.092773,172.935516000000007 -43.098334999999999,172.92025799999999 -43.105834999999999,172.838012999999989 -43.148055999999997,172.818024000000008 -43.160828000000002,172.797760000000011 -43.183059999999998,172.772217000000012 -43.219718999999998,172.76080300000001 -43.239165999999997,172.758026 -43.246665999999998,172.726944000000003 -43.415539000000003,172.726593000000008 -43.423355,172.775817999999987 -43.612220999999998,172.894135000000006 -43.61972,172.90554800000001 -43.620834000000002,173.059692000000013 -43.653053,173.100525000000005 -43.697220000000002,173.105529999999987 -43.703612999999997,173.114409999999992 -43.741385999999999,173.116913000000011 -43.762504999999997,173.116913000000011 -43.769996999999996,173.112182999999987 -43.825004999999997,173.110779000000008 -43.833328000000002,173.091644000000002 -43.856392,173.058593999999999 -43.871108999999997,173.006088000000005 -43.869498999999998,173.002242999999993 -43.868999000000002,172.999236999999994 -43.865668999999997,172.990905999999995 -43.849670000000003,172.965239999999994 -43.802222999999998,172.961365 -43.764449999999997,172.958862000000011 -43.756950000000003,172.951355000000007 -43.755279999999999,172.939972000000012 -43.756110999999997,172.927185000000009 -43.766112999999997,172.921906000000007 -43.771667,172.920532000000009 -43.824173000000002,172.920532000000009 -43.833328000000002,172.917572000000007 -43.869221000000003,172.923584000000005 -43.875884999999997,172.931243999999992 -43.881390000000003,172.937408000000005 -43.887886000000002,172.938904000000008 -43.892384,172.938247999999987 -43.896220999999997,172.870789000000002 -43.904442000000003,172.861633000000012 -43.901389999999999,172.811919999999986 -43.882216999999997,172.804413000000011 -43.878334000000002,172.745789000000002 -43.837775999999998,172.740783999999991 -43.832222000000002,172.736908 -43.825836000000002,172.715239999999994 -43.808334000000002,172.642761000000007 -43.772224,172.513031000000012 -43.729438999999999,172.495238999999998 -43.723885000000003,172.483582000000013 -43.722771000000002,172.472197999999992 -43.72361,172.424988000000013 -43.733612,172.413299999999992 -43.743614,172.390258999999986 -43.763893000000003,172.384978999999987 -43.77861,172.382445999999987 -43.795006,172.383330999999998 -43.8125,172.384704999999997 -43.820838999999999,172.394713999999993 -43.850281000000003,172.393311000000011 -43.858612,172.386932000000002 -43.863334999999999,172.367461999999989 -43.867775000000002,172.297211000000004 -43.881110999999997,172.286925999999994 -43.883057,172.275542999999999 -43.883887999999999,172.189696999999995 -43.909163999999997,172.050812000000008 -43.965279000000002,171.978577 -43.995834000000002,171.955230999999998 -44.006667999999998,171.941070999999994 -44.015006999999997,171.782470999999987 -44.076949999999997,171.654694000000006 -44.122498,171.583587999999992 -44.153885000000002,171.547211000000004 -44.173889000000003,171.538483000000014 -44.178775999999999,171.355559999999997 -44.285491999999998,171.346465999999992 -44.292186999999998,171.342467999999997 -44.295555,171.319976999999994 -44.316391000000003,171.293578999999994 -44.343612999999998,171.285521999999986 -44.356392,171.278594999999996 -44.369995000000003,171.271911999999986 -44.383887999999999,171.269135000000006 -44.391112999999997,171.275542999999999 -44.395836000000003,171.279144000000002 -44.402495999999999,171.278594999999996 -44.420836999999999,171.277190999999988 -44.428885999999999,171.275542999999999 -44.437218,171.26998900000001 -44.451942000000003,171.263306 -44.465553,171.254974000000004 -44.478332999999999,171.214966000000004 -44.533057999999997,171.208313000000004 -44.537506,171.200531000000012 -44.541114999999998,171.196075000000008 -44.560279999999999,171.192200000000014 -44.645836000000003,171.193024000000008 -44.663330000000002,171.20495600000001 -44.700279000000002,171.21414200000001 -44.739165999999997,171.215239999999994 -44.747498,171.207184000000012 -44.851112,171.198577999999998 -44.919998,171.195800999999989 -44.927498,171.185241999999988 -44.938332000000003)))'));
+INSERT INTO geoapp_country (`name`, `mpoly`) VALUES ('Texas', GeomFromText('MULTIPOLYGON (((-103.00243399999998 36.500397,-102.90421904194784 36.500393342967676,-102.8402359524855 36.500390960558398,-102.840235952479716 36.500390960558398,-102.840235952474345 36.500390960558398,-102.840235952468362 36.500390960558398,-102.840235952461725 36.500390960558398,-102.840235952455885 36.500390960558398,-102.792077446284736 36.500389167377229,-102.643207699865854 36.500383624214699,-102.366462330167067 36.500373319605465,-102.250452999999979 36.500368999999999,-102.24499 36.500703999999999,-102.162463000000002 36.500326,-102.12545 36.500323999999999,-102.124752896301885 36.500398159967887,-102.122066000000004 36.500684,-101.930244999999999 36.500526,-101.925344139375468 36.500484781341967,-101.914929315957153 36.500397187533892,-101.826564999999988 36.499653999999992,-101.826498 36.499535000000002,-101.81449312121488 36.499579719643286,-101.788110000000003 36.499678000000003,-101.783359000000004 36.499709000000003,-101.781987 36.499718,-101.780609999999982 36.499727,-101.779435000000007 36.499733999999997,-101.773235954788092 36.499732939140301,-101.709314000000006 36.499721999999998,-101.698684999999998 36.499507999999999,-101.653707999999995 36.499572999999998,-101.649966000000006 36.499572999999998,-101.623914999999997 36.499527999999998,-101.414793008557069 36.499417763984319,-101.392608849457574 36.499406069885133,-101.340061173170298 36.499378370041477,-101.085155999999984 36.499243999999997,-101.052418000000003 36.499562999999995,-101.04533099999999 36.499540000000003,-100.977087999999995 36.499594999999999,-100.936058000000003 36.499602000000003,-100.918513000000004 36.499620999999998,-100.884174000000002 36.499682,-100.884079999999997 36.499682,-100.859656999999984 36.499687000000002,-100.850840000000005 36.49969999999999,-100.824235999999999 36.499617999999998,-100.824218000000002 36.499617999999998,-100.80619 36.499673999999999,-100.806172000000004 36.499634,-100.802909 36.499620999999998,-100.802886 36.499620999999998,-100.761810999999994 36.499617999999998,-100.761810999999994 36.499580000000002,-100.724361999999999 36.499580000000002,-100.724361000000002 36.499558,-100.708625999999995 36.499552999999999,-100.708628000000004 36.499520999999994,-100.657762999999989 36.499482999999991,-100.657762999999989 36.499499999999998,-100.648342999999997 36.499495000000003,-100.648343999999994 36.499462999999999,-100.592613999999998 36.499468999999998,-100.592555999999988 36.499468999999998,-100.592551 36.499428999999999,-100.583539000000002 36.499482999999991,-100.583378999999994 36.499442999999999,-100.578113999999999 36.499462999999999,-100.578113999999999 36.499439000000002,-100.546144999999996 36.499343000000003,-100.531215000000003 36.499341,-100.531215000000003 36.499290000000002,-100.530478000000002 36.49924,-100.530314000000004 36.499357000000003,-100.522227 36.499290999999999,-100.441064999999995 36.499490000000002,-100.441063999999997 36.499462,-100.433959000000002 36.499456000000002,-100.421327999999988 36.499447000000004,-100.421300999999985 36.499487999999999,-100.413634000000002 36.499443999999997,-100.41355 36.499468999999998,-100.378634000000005 36.499516999999997,-100.378591999999998 36.499445,-100.35185199999998 36.499487000000002,-100.351841999999991 36.499473000000002,-100.334463999999997 36.49942,-100.334440999999998 36.49944,-100.324150000000003 36.499679,-100.311244999999985 36.499631,-100.311018000000004 36.499687999999999,-100.310642999999985 36.499642,-100.253572851827684 36.499638031344489,-100.181220999999994 36.499633000000003,-100.090020999999993 36.499634,-100.000405999999984 36.499701999999999,-100.0004059967807 36.499497793115623,-100.00040222345956 36.260147946939995,-100.000399000000002 36.055677000000003,-100.000396170268971 35.879197994164429,-100.000394020347557 35.745115995014778,-100.000391999999991 35.619115,-100.000390396259149 35.519130234823749,-100.000386875554753 35.299632926398459,-100.000386874882437 35.299591010324292,-100.000386852473085 35.298193905884737,-100.000384999999994 35.182701999999999,-100.000381972929958 34.852568985943549,-100.000381605014198 34.812443999872983,-100.000381000000004 34.746460999999996,-100.000381000000004 34.570853999999997,-100.000381000000004 34.570647,-100.000381000000004 34.560509000000003,-99.998254592787575 34.560446149085699,-99.997501461048799 34.560423888524269,-99.985833 34.560079000000002,-99.974761999999998 34.561317999999993,-99.971554999999995 34.562179,-99.965608000000003 34.565843999999998,-99.958898000000005 34.571271000000003,-99.957540999999992 34.572708999999996,-99.95755299999999 34.574168999999998,-99.956716999999998 34.576523999999992,-99.954566999999997 34.578195,-99.94571999999998 34.579273,-99.930492488760507 34.576894921075187,-99.930189904388058 34.576847666503667,-99.929333999999997 34.576714000000003,-99.923210999999995 34.574551999999997,-99.921801000000002 34.570253,-99.915771000000007 34.565975000000002,-99.914151070156151 34.564995899308187,-99.898943000000003 34.555804000000002,-99.896006999999997 34.555529999999997,-99.89376 34.554219000000003,-99.887146999999999 34.549047000000002,-99.885392392967745 34.547401436342639,-99.884583851343237 34.546643143067669,-99.87806651563541 34.540530839522475,-99.87650823800611 34.539069404005723,-99.874403 34.537095,-99.873254000000003 34.535350999999999,-99.872356999999994 34.532096000000003,-99.868953000000005 34.52761499999999,-99.867217250163094 34.525864500605081,-99.853065999999998 34.511592999999998,-99.832903999999985 34.500067999999999,-99.825324999999992 34.497596,-99.818185999999997 34.487839999999991,-99.818738999999979 34.484975999999996,-99.814544624457952 34.476663062301249,-99.814312999999984 34.476204000000003,-99.793683999999999 34.453893999999998,-99.783787954821193 34.445078397966533,-99.782985999999994 34.444364,-99.775743000000006 34.444225000000003,-99.774224411180043 34.443216449834381,-99.765598999999995 34.437488000000002,-99.764825999999999 34.436433999999998,-99.764881999999986 34.435265999999999,-99.767647999999994 34.431854,-99.767234000000002 34.430501999999997,-99.754248000000004 34.421288999999994,-99.740907000000007 34.414763,-99.735679661059166 34.413018903486261,-99.730348000000006 34.411239999999992,-99.720258999999999 34.406295,-99.719721039768913 34.405807854123296,-99.716415999999995 34.402814999999997,-99.715089000000006 34.400753999999999,-99.714231999999996 34.397821999999998,-99.714838 34.394523999999997,-99.712682 34.390928000000002,-99.707900999999993 34.387538999999997,-99.696461999999997 34.381036000000002,-99.678282999999979 34.379798999999998,-99.672337448339604 34.378003970284972,-99.671377000000007 34.377713999999997,-99.666676988468737 34.374633899592595,-99.665992000000003 34.374184999999997,-99.665404581506792 34.374094751646162,-99.662705000000003 34.373679999999993,-99.659863615570984 34.374283464835351,-99.659362000000002 34.374389999999998,-99.654194000000004 34.376519000000002,-99.649662000000006 34.379885000000002,-99.630904999999998 34.376007,-99.628541546335526 34.375150829397036,-99.624196999999995 34.373576999999997,-99.600026 34.374687999999999,-99.596322999999998 34.377136999999998,-99.587595999999991 34.385866999999998,-99.587235087741874 34.386377538370702,-99.585718954359294 34.388522226586467,-99.585441999999986 34.388914,-99.584530999999984 34.391204999999999,-99.585306000000003 34.398122,-99.584479999999985 34.407673000000003,-99.580059999999989 34.416652999999997,-99.574366999999995 34.418281,-99.569695999999993 34.418418000000003,-99.563067665646059 34.417445690943012,-99.562203999999994 34.417318999999999,-99.561530791054494 34.417028950664999,-99.555986000000004 34.414639999999999,-99.549242000000007 34.412714999999992,-99.529786 34.411451999999997,-99.528744576810823 34.411579971493573,-99.523649999999989 34.412205999999998,-99.517623999999998 34.414493999999991,-99.514279999999999 34.414034999999998,-99.499874999999989 34.409607999999999,-99.497090999999983 34.407730999999991,-99.494103999999993 34.404755000000002,-99.490425999999999 34.399693999999997,-99.487218999999982 34.397955000000003,-99.477547 34.396355,-99.477019613816751 34.396364300212412,-99.474810232095294 34.396403261641368,-99.472297823530695 34.396447566809115,-99.470968999999997 34.396470999999991,-99.463286816319666 34.393024688790533,-99.452647999999996 34.388252,-99.445020999999983 34.379891999999998,-99.440759999999997 34.374122999999997,-99.430994999999982 34.373413999999997,-99.43081720973791 34.373532661492725,-99.420432000000005 34.380464000000003,-99.408847999999992 34.372776000000002,-99.407167999999999 34.372605,-99.406018176721332 34.372844364351735,-99.404336527339453 34.373194441551952,-99.402959999999979 34.373480999999998,-99.399602999999999 34.375078999999999,-99.397253000000006 34.377870999999999,-99.396160718377317 34.383134276834824,-99.391492 34.405631,-99.393918999999997 34.415273999999989,-99.396488000000005 34.417290999999999,-99.396901999999997 34.418688000000003,-99.397009999999995 34.424002999999999,-99.395768462359129 34.43494110377263,-99.394955999999993 34.442098999999999,-99.381011 34.456935999999999,-99.376037841709419 34.458617501802458,-99.375365000000002 34.458844999999997,-99.369609999999994 34.458699000000003,-99.358795 34.455862999999994,-99.354671999999994 34.451856999999997,-99.35478257092818 34.450383391084422,-99.354837000000003 34.449657999999999,-99.356770999999995 34.446542,-99.357101999999998 34.444915000000002,-99.356712999999999 34.442143999999999,-99.350407000000004 34.437083,-99.342020261837703 34.431514649700844,-99.341336999999996 34.431061,-99.341016600261696 34.430906286427735,-99.334036999999995 34.427536000000003,-99.331050066208874 34.424666026137302,-99.328674000000007 34.422383000000004,-99.325094009617374 34.416010263301388,-99.324222000000006 34.414458000000003,-99.321411663781888 34.411055277053073,-99.319798627189357 34.409102230797522,-99.319605999999979 34.408869000000003,-99.318363000000005 34.408295999999993,-99.316372999999999 34.408204999999995,-99.308273999999997 34.410013999999997,-99.299098 34.414227999999994,-99.294647999999981 34.415373000000002,-99.289922000000004 34.414731000000003,-99.287844819286008 34.413958196831629,-99.264167 34.405149000000002,-99.261320999999981 34.403498999999996,-99.261255940568432 34.403158389836314,-99.260996786434447 34.401801622187399,-99.259199386422964 34.392391568987605,-99.258998120407611 34.391337867029385,-99.258979999999994 34.391243000000003,-99.259239630132384 34.391043961974496,-99.260703756811225 34.389921531074158,-99.261190999999997 34.389547999999998,-99.262646013804954 34.388906249865343,-99.264243556741917 34.388201635660714,-99.264508000000006 34.388084999999997,-99.271031915197597 34.387722560266795,-99.271781628057255 34.38768090955238,-99.273607516746409 34.387579471291865,-99.273957999999993 34.38756,-99.27534 34.386598999999997,-99.274925999999994 34.384903999999999,-99.271845396288441 34.382114976063626,-99.271280999999988 34.381603999999996,-99.258696 34.372633999999998,-99.254722 34.372405,-99.251407999999984 34.375079999999997,-99.248969000000002 34.375984000000003,-99.242944999999992 34.372667999999997,-99.239138083830497 34.366035888164781,-99.237232999999989 34.362716999999996,-99.237183660287812 34.362563767173611,-99.235448627455725 34.357175329079247,-99.234251999999984 34.353459,-99.233273999999994 34.344101000000002,-99.23260599999999 34.342379999999999,-99.229993999999991 34.340538000000002,-99.226152999999982 34.339725999999999,-99.221975 34.340020000000003,-99.219768999999999 34.341377,-99.217335000000006 34.341520000000003,-99.213134999999994 34.340369000000003,-99.210957832415772 34.336710386428308,-99.210716000000005 34.336303999999998,-99.20972399999998 34.324934999999996,-99.211600000000004 34.313969999999998,-99.213476 34.310671999999997,-99.213233598142949 34.308226764636807,-99.211647999999997 34.292231999999991,-99.211468055040228 34.291676209875057,-99.209990337717599 34.287112032604114,-99.209742000000006 34.286344999999997,-99.209514950796304 34.286049346749877,-99.207560999999998 34.283504999999998,-99.203681000000003 34.281925999999999,-99.200221999999997 34.281151999999999,-99.196259999999995 34.281463000000002,-99.196052113016066 34.281264951942028,-99.19571031750732 34.280939333014615,-99.195605 34.280839,-99.194569999999985 34.272424,-99.196926000000005 34.260928999999997,-99.197153 34.244298,-99.19555299999999 34.24006,-99.191138999999993 34.23234,-99.190145999999984 34.229660000000003,-99.190036000000006 34.227186000000003,-99.192076 34.222192,-99.192683000000002 34.218825000000002,-99.192104 34.216693999999997,-99.189758414718312 34.214539281858485,-99.189510999999996 34.214312,-99.188483307800709 34.214128939694163,-99.159015999999994 34.20888,-99.143985 34.214762999999998,-99.138220000000004 34.219158999999998,-99.130609000000007 34.219408,-99.128513999999996 34.218766000000002,-99.127549000000002 34.217986000000003,-99.126614000000004 34.21532899999999,-99.127525000000006 34.213771,-99.130089999999996 34.212192000000002,-99.131552999999997 34.209352000000003,-99.131884999999997 34.207382000000003,-99.129791999999995 34.204402999999999,-99.126566999999994 34.203004,-99.119203999999996 34.201746999999997,-99.108757999999995 34.203400999999999,-99.102001344898341 34.205813362825268,-99.092190999999985 34.209316,-99.08119261238302 34.211229594305671,-99.079534999999993 34.211517999999991,-99.075978000000006 34.211221000000002,-99.06646499999998 34.208404000000002,-99.060343999999986 34.204760999999991,-99.059158999999994 34.202928999999997,-99.058800000000005 34.201256,-99.058083999999994 34.200569000000002,-99.048792000000006 34.198208999999999,-99.043470999999997 34.198208,-99.040961999999993 34.200842000000002,-99.039004000000006 34.204667,-99.037458999999998 34.206454,-99.036272999999994 34.206912000000003,-99.013074999999986 34.203221999999997,-99.005790000000005 34.206646999999997,-99.002916243275195 34.208781598893673,-99.002945441244265 34.209102775846141,-99.003147197273819 34.211322087284138,-99.003432988816769 34.214465787333673,-99.000760999999997 34.217643000000002,-98.99085199999999 34.221632999999997,-98.987293999999991 34.221223000000002,-98.981363999999999 34.217582999999991,-98.978684999999984 34.210231,-98.976586999999995 34.206291,-98.974131999999983 34.203566000000002,-98.969003 34.201298999999999,-98.966301999999999 34.201323000000002,-98.962469999999996 34.204667999999998,-98.962085000000002 34.206386000000002,-98.962306999999981 34.211312,-98.960791 34.213029999999996,-98.958474999999993 34.213854999999995,-98.952512999999982 34.212649999999996,-98.950395999999984 34.21168,-98.940219999999997 34.203685999999998,-98.928145 34.192689,-98.927456000000006 34.191155000000002,-98.923128999999989 34.185977999999999,-98.920704 34.183435000000003,-98.918333000000004 34.181831000000003,-98.909348999999992 34.177498999999997,-98.892677318093561 34.17250349095427,-98.87651287834953 34.167659972141138,-98.872921999999988 34.166584,-98.871543000000003 34.165026999999995,-98.871211000000002 34.163012000000002,-98.872229000000004 34.160446,-98.874954999999986 34.157031000000003,-98.874871999999996 34.155656999999998,-98.873271000000003 34.153596,-98.868116 34.149635000000004,-98.862549999999999 34.149110999999998,-98.860124999999996 34.149912999999998,-98.858418999999998 34.152732,-98.8579 34.159627,-98.857321999999982 34.161093999999999,-98.855585000000005 34.161620999999997,-98.854264541670545 34.16164976192438,-98.831114999999983 34.162154,-98.812953999999991 34.158444000000003,-98.806809999999984 34.155901,-98.804411553093104 34.153928907629435,-98.792015000000006 34.143735999999997,-98.779288744496085 34.140194111533035,-98.773070373738221 34.138463455122455,-98.767587610783494 34.136937528280072,-98.765569999999983 34.136375999999998,-98.764702233233265 34.135780085954792,-98.763778343962841 34.135145631382905,-98.761796999999987 34.133785000000003,-98.760558000000003 34.132387999999999,-98.759485999999995 34.128881999999997,-98.759653 34.126911999999997,-98.757118934362524 34.12470437936247,-98.757036999999983 34.124633000000003,-98.753813984496389 34.124468645349353,-98.749290999999999 34.124237999999998,-98.741966000000005 34.125529999999998,-98.740191287161664 34.126850584722824,-98.739461000000006 34.127394000000002,-98.737231999999992 34.130991999999999,-98.736819999999994 34.133374000000003,-98.735471000000004 34.135207999999999,-98.734286999999995 34.135758000000003,-98.730242646678789 34.1359250861193,-98.717536999999993 34.136450000000004,-98.716104 34.135947000000002,-98.70640034274598 34.134745066348501,-98.696517999999998 34.133521000000002,-98.690291400890658 34.133167457450512,-98.690072 34.133155000000002,-98.688275858887323 34.134465065675442,-98.685589983550884 34.136424083851644,-98.676900633591032 34.14276190388366,-98.676457484208683 34.143085127260051,-98.670573548505118 34.147376740066704,-98.655654999999982 34.158257999999996,-98.650582999999997 34.163113000000003,-98.648072999999997 34.164440999999997,-98.643223000000006 34.164530999999997,-98.635729999999995 34.161617999999997,-98.634085211037615 34.161100728840964,-98.630950281399748 34.160114822001631,-98.621666000000005 34.157195000000002,-98.620507214282355 34.157012478916968,-98.617663812339856 34.156564612849806,-98.616732999999996 34.156418000000002,-98.615748434938936 34.156446107485429,-98.612133570686254 34.156549305078279,-98.611829 34.156557999999997,-98.610173632571488 34.157093658210222,-98.610154152422197 34.157099961766605,-98.608852999999996 34.157521000000003,-98.603977999999998 34.160249,-98.599789 34.160570999999997,-98.577135999999996 34.148961999999997,-98.572451 34.145091,-98.560191000000003 34.133201999999997,-98.558593000000002 34.128253999999998,-98.550916999999998 34.119334000000002,-98.536257000000006 34.107343,-98.530610999999993 34.099843,-98.528199999999998 34.094960999999998,-98.504182 34.072370999999997,-98.487068052145446 34.063003092954936,-98.486783271268621 34.06284720836274,-98.486328 34.062598,-98.483944186894661 34.06241565608709,-98.482821069121968 34.062329745958955,-98.482039999999998 34.062269999999998,-98.475065999999998 34.064269000000003,-98.449033999999983 34.073461999999999,-98.446378999999993 34.075429999999997,-98.445784000000003 34.076827000000002,-98.445590305319797 34.079232123390703,-98.445584999999994 34.079298,-98.445259148452962 34.079797720749731,-98.443724000000003 34.082152,-98.442807999999999 34.083143999999997,-98.442148160210323 34.083427517317581,-98.441104460406791 34.083875970068213,-98.440092000000007 34.084311,-98.439068026005657 34.084479541105658,-98.434822808733685 34.08517828308225,-98.432126999999994 34.085622,-98.43151641213494 34.085605425226575,-98.43092946822253 34.085589492282431,-98.428479999999993 34.085523000000002,-98.425229999999999 34.084798999999997,-98.422252999999998 34.083036999999997,-98.419995 34.082487999999998,-98.419161945519861 34.082694545588339,-98.41804644206556 34.082971120917755,-98.417812999999995 34.083029000000003,-98.414426000000006 34.085073999999999,-98.400747497198822 34.098985940284976,-98.399776999999986 34.099972999999999,-98.398505572550647 34.104180252359392,-98.39838899999998 34.104565999999998,-98.398160000000004 34.121395999999997,-98.400493999999995 34.121777999999999,-98.400966999999994 34.122236,-98.398441000000005 34.128456,-98.384381000000005 34.146317000000003,-98.381237999999996 34.149453999999999,-98.367493999999994 34.156190999999993,-98.366862955318183 34.156357896864854,-98.364023000000003 34.157108999999998,-98.34173552164826 34.153594120579292,-98.339428832109121 34.153230340726623,-98.331172907733077 34.151928328079421,-98.326986688030772 34.151268134169193,-98.325445000000002 34.151024999999997,-98.324621914768684 34.150650086831803,-98.323612587945547 34.150190341106089,-98.322580000000002 34.149720000000002,-98.320651676675396 34.148059023851737,-98.318749999999994 34.146420999999997,-98.315432139066189 34.144301906683673,-98.312023538956254 34.142124858924547,-98.300208999999995 34.134579000000002,-98.299345719035045 34.134365643147696,-98.29862570169189 34.134187693395319,-98.293901000000005 34.133020000000002,-98.280321 34.130749999999999,-98.258217018239392 34.129574098564007,-98.256467 34.129480999999998,-98.254901718278489 34.129708262798985,-98.247953999999993 34.13071699999999,-98.241012999999995 34.133102999999998,-98.225282000000007 34.127245000000002,-98.223600000000005 34.125093,-98.216463000000005 34.121820999999997,-98.203710999999998 34.117676000000003,-98.200074999999998 34.116782999999998,-98.191455000000005 34.115752999999998,-98.169120000000007 34.114170999999999,-98.157411999999994 34.120466999999998,-98.154353999999998 34.122734,-98.142753999999996 34.136358999999999,-98.136769999999999 34.144992000000002,-98.130815999999996 34.150531999999998,-98.123377000000005 34.154539999999997,-98.114506000000006 34.154727,-98.109461999999979 34.154110999999993,-98.107064999999992 34.152531000000003,-98.101937000000007 34.146829999999994,-98.092021474678845 34.132735952269094,-98.090223999999992 34.130181,-98.089754999999982 34.128211,-98.090659999999986 34.12198,-98.092421000000002 34.116917,-98.095117999999999 34.11119,-98.096177285423778 34.109455137055363,-98.096466125075011 34.108982084942461,-98.099327999999986 34.104295,-98.101378023037029 34.101786489578267,-98.103538246996251 34.099143131812454,-98.104308999999986 34.098199999999999,-98.119416999999999 34.084474,-98.121038999999996 34.081265999999999,-98.120207999999991 34.072127000000002,-98.11802999999999 34.067064999999999,-98.114587 34.06228,-98.100919767943822 34.050244792175462,-98.099096110217346 34.048638900093685,-98.096177018664264 34.044625138601674,-98.096541898037387 34.040976263553816,-98.09727167092565 34.038969381040054,-98.097731364247636 34.038509687718062,-98.098001443813914 34.038239608151798,-98.102015208841422 34.03732738850595,-98.104022094890695 34.036232725638037,-98.104083244997014 34.036133356900422,-98.105481647738245 34.033860956680144,-98.105481647738245 34.032444902147553,-98.105481647738245 34.031306746267951,-98.103616999999986 34.029206999999992,-98.088202999999993 34.005481000000003,-98.085260000000005 34.003259,-98.082839000000007 34.002412,-98.055197000000007 33.995840999999999,-98.050169864666017 33.994989457544634,-98.041117 33.993456000000002,-98.027671999999981 33.993357000000003,-98.019485000000003 33.993803999999997,-98.018481521828946 33.993960861546498,-98.005667000000003 33.995964,-97.987387999999996 33.999822999999999,-97.982805999999997 34.001949000000003,-97.978243000000006 34.005386999999999,-97.974597608872358 34.00657735007583,-97.974172999999993 34.006715999999997,-97.973934144800623 34.006593661859519,-97.971670000000003 34.005434,-97.968339999999998 34.000529999999998,-97.965354903485249 33.996992503283089,-97.963375425210828 33.994646717187933,-97.96302799999998 33.994235000000003,-97.962715090700769 33.994009516348072,-97.958325000000002 33.990845999999998,-97.955849999999998 33.990136,-97.952687999999995 33.990113999999998,-97.947571999999994 33.991053,-97.946472999999997 33.990731999999994,-97.945729999999998 33.989839000000003,-97.945949999999982 33.988395999999995,-97.952184120103468 33.971402949359636,-97.95307606469359 33.968971674482539,-97.95691699999999 33.958502000000003,-97.960351000000003 33.951928000000002,-97.965737000000004 33.947392,-97.972662 33.944527,-97.974172999999993 33.942832000000003,-97.974062000000004 33.940289,-97.972493999999998 33.937907000000003,-97.971175000000002 33.937128999999999,-97.965952999999999 33.936191,-97.963425 33.936236999999998,-97.955511 33.938186000000002,-97.954466999999994 33.937773999999997,-97.953395 33.936444999999999,-97.952679000000003 33.929482,-97.953694999999996 33.924373000000003,-97.957155 33.914453999999999,-97.960615000000004 33.910353999999998,-97.961188664141474 33.909913087050903,-97.963139679674441 33.908413554571595,-97.964461 33.907398,-97.964803587866868 33.907309441163022,-97.9693952279504 33.906122503898267,-97.969873000000007 33.905999,-97.970298415583201 33.906261144464871,-97.973142999999993 33.908014,-97.976962999999998 33.912548999999999,-97.978803999999997 33.912548,-97.979984999999999 33.911402000000002,-97.983551999999989 33.904001999999991,-97.984539999999996 33.900703,-97.984566 33.899076999999998,-97.984416725907181 33.89872544733722,-97.984025057628415 33.897803036597892,-97.98383498894799 33.897355409354304,-97.983768999999995 33.897199999999991,-97.977858999999995 33.889929000000002,-97.974177999999995 33.886642999999999,-97.967776999999998 33.882429999999999,-97.958438 33.879179,-97.951215000000005 33.878424000000003,-97.946463999999992 33.878883000000002,-97.942729999999997 33.879845000000003,-97.938801999999995 33.879891,-97.936743000000007 33.879204,-97.933120450042608 33.877388671138185,-97.918328311832767 33.869976048610916,-97.905467000000002 33.863530999999995,-97.896737999999985 33.857984999999999,-97.877386999999999 33.850236000000002,-97.871447000000003 33.849001,-97.865764999999982 33.849392999999999,-97.835425213046037 33.857383352392631,-97.834333 33.857671000000003,-97.833886750888084 33.857971936447115,-97.833218553718808 33.858422547723912,-97.806802470257153 33.876236728393856,-97.805423000000005 33.877167,-97.803472999999997 33.880189999999999,-97.801578000000006 33.885137999999998,-97.784656999999982 33.890631999999997,-97.78061799999999 33.895533,-97.779683000000006 33.899242999999998,-97.780339999999995 33.904833000000004,-97.783716999999996 33.910559999999997,-97.772672 33.914382000000003,-97.765445999999997 33.913531999999989,-97.763769999999994 33.914240999999997,-97.762914903547767 33.914953098088951,-97.761142192227695 33.916429357685161,-97.760223999999994 33.917194000000002,-97.759399000000002 33.91881999999999,-97.759833999999984 33.92521,-97.762660999999994 33.930846000000003,-97.762767999999994 33.934396,-97.752956999999995 33.937049000000002,-97.738478 33.937421,-97.736553999999998 33.936574999999998,-97.735919542935619 33.936533987763056,-97.734773489745407 33.936459905200778,-97.733722999999998 33.936391999999998,-97.732266999999993 33.936691000000003,-97.725289000000004 33.941045000000003,-97.720699142354164 33.94461309292862,-97.716772000000006 33.947665999999998,-97.714693355370301 33.94981590741822,-97.712051708440285 33.952548118711093,-97.709683999999996 33.954996999999999,-97.708350195107343 33.95701014009046,-97.70415899999999 33.963335999999998,-97.69792099999998 33.977331,-97.69310999999999 33.983699,-97.688023 33.986606999999999,-97.671772000000004 33.991370000000003,-97.661489000000003 33.990817999999997,-97.656210000000002 33.989488,-97.633778000000007 33.981256999999999,-97.609091000000006 33.968093000000003,-97.589597999999995 33.953553999999997,-97.588828000000007 33.951881999999998,-97.591270649549756 33.930345579062646,-97.591514000000004 33.928199999999997,-97.595084 33.922953999999997,-97.596154999999996 33.922105999999999,-97.59697899999999 33.920228000000002,-97.597115000000002 33.917867999999999,-97.596955673755872 33.917077348335745,-97.596288999999985 33.913769000000002,-97.593782375104212 33.910260437761373,-97.589253999999997 33.903922,-97.587440999999984 33.902479,-97.582744000000005 33.900784999999999,-97.578907598302408 33.900207204108142,-97.558269999999993 33.897098999999997,-97.555002000000002 33.897281999999997,-97.551541 33.897947000000002,-97.543245999999996 33.901288999999998,-97.533617322522971 33.906127586572126,-97.532723000000004 33.906576999999999,-97.525277000000003 33.911750999999995,-97.519170999999986 33.913637999999999,-97.504870374844515 33.918353570482601,-97.500960000000006 33.919643,-97.495648860558163 33.919307898609453,-97.494857999999979 33.919257999999999,-97.492061582842766 33.918500058129531,-97.487115891787269 33.917159576320657,-97.48650499999998 33.916993999999995,-97.484158940985964 33.915822631562747,-97.460375999999982 33.903948,-97.458068999999995 33.901634999999999,-97.451065249608234 33.891558064966901,-97.450953999999996 33.891398000000002,-97.451469000000003 33.87093,-97.452287410342421 33.86882620086994,-97.455665873415143 33.860141550511862,-97.457616999999999 33.855125999999998,-97.459565999999995 33.853316,-97.461485999999994 33.849559999999997,-97.462857 33.841771999999999,-97.459067999999988 33.834581,-97.453056999999987 33.828536,-97.444192999999999 33.823773000000003,-97.426492999999994 33.819398,-97.410387 33.818845000000003,-97.403235695189224 33.818961304668854,-97.384901622687948 33.819259479377855,-97.372940999999997 33.819454,-97.368744000000007 33.821471000000003,-97.365506999999994 33.823762999999992,-97.358512999999988 33.830018000000003,-97.348337999999984 33.843876000000002,-97.340900078515631 33.860236176367188,-97.339391593410966 33.867629740388111,-97.337846311291798 33.870430566802547,-97.336524008254173 33.872827243260353,-97.33293952159849 33.874440259476913,-97.329175814777756 33.874440259476913,-97.327562805507441 33.873902588562437,-97.326564370247013 33.872737756024428,-97.326487449786001 33.872648016149064,-97.324157539016809 33.866016724171544,-97.322365295688968 33.864941382342593,-97.318243141591921 33.865120602507631,-97.31654836796514 33.865642075591225,-97.315913230822716 33.865837504006514,-97.314412999999988 33.866988999999997,-97.310479256695203 33.873361218982971,-97.307489695517361 33.878203969770759,-97.302471419756401 33.880175433263638,-97.299245387323282 33.880175433263638,-97.295170524880618 33.877119286431629,-97.294227111562321 33.876411726442917,-97.286921603026471 33.869423850720118,-97.28598279642199 33.868525862052032,-97.284253187903744 33.867526845294535,-97.279107999999979 33.864555000000003,-97.275347999999994 33.863225,-97.271531999999993 33.862560000000002,-97.257971626565464 33.863220416657512,-97.256624999999985 33.863286000000002,-97.255635999999996 33.863697999999999,-97.254234999999994 33.865322999999997,-97.249208999999993 33.875100999999994,-97.246418496348156 33.898356425448434,-97.246179999999981 33.900343999999997,-97.245398270620598 33.902084836575838,-97.245057441245748 33.90284383100218,-97.244945999999999 33.903092,-97.242092 33.906277000000003,-97.241794392023195 33.906436890220043,-97.238755934556053 33.908069304909361,-97.226522000000003 33.914642,-97.210920999999999 33.916063999999999,-97.210512235443105 33.915911440173737,-97.206141000000002 33.914279999999998,-97.185457999999997 33.9007,-97.180845000000005 33.895203999999993,-97.179608999999999 33.892249999999997,-97.170773789281327 33.861660975771436,-97.166629 33.847310999999998,-97.166824000000005 33.840395,-97.171627 33.835335,-97.180939422624874 33.831550006302521,-97.181369999999987 33.831375,-97.186254000000005 33.830894,-97.193690000000004 33.831307000000002,-97.195830999999998 33.830803000000003,-97.197477000000006 33.829794999999997,-97.199700000000007 33.827322000000002,-97.203513999999998 33.821824999999997,-97.204994999999997 33.81886999999999,-97.205652 33.809823999999999,-97.205556910941183 33.806237292333442,-97.205445103342427 33.802019970418343,-97.205431000000004 33.801487999999999,-97.205114487332324 33.800890302957832,-97.203236000000004 33.797342999999998,-97.194785999999993 33.785344000000002,-97.190397000000004 33.781153000000003,-97.187792000000002 33.769702000000002,-97.181842999999986 33.755869999999994,-97.173532726140948 33.740090726508434,-97.172577000695028 33.738276026602087,-97.172191999999995 33.737544999999997,-97.168438536634085 33.734131892706188,-97.163454368039083 33.729599677915004,-97.163149000000004 33.729322000000003,-97.162807288850388 33.729115696596551,-97.155066000000005 33.724442000000003,-97.152609597300682 33.723370138808036,-97.150103410774264 33.72227655424301,-97.149393999999987 33.721966999999999,-97.137529999999998 33.718663999999997,-97.126102000000003 33.716940999999998,-97.121101999999993 33.717174,-97.119522126797463 33.717502594273334,-97.114921749218269 33.718459416457094,-97.113264999999998 33.718803999999999,-97.112398501853761 33.719102240295193,-97.110065570752283 33.719905212653977,-97.108936 33.720294000000003,-97.108097026518521 33.720734123472262,-97.106518853348803 33.721562029324609,-97.104524999999995 33.722608,-97.097154000000003 33.727809,-97.094085000000007 33.730992,-97.092697209381924 33.732891057656268,-97.092130098039192 33.733667094850453,-97.091071999999983 33.735115,-97.089936943375889 33.737167271747261,-97.087911027802278 33.740830286618703,-97.086195000000004 33.743932999999998,-97.084820762198987 33.752363244406453,-97.084693 33.753146999999998,-97.08461299999999 33.759993,-97.085217999999998 33.765512,-97.087362453285593 33.77250304797397,-97.087851999999998 33.774099,-97.093101265647221 33.787040841586602,-97.093917000000005 33.789051999999998,-97.094675961767678 33.791977368936216,-97.095047178759813 33.793408200769441,-97.095235999999986 33.794136000000002,-97.095080023591905 33.79561056406444,-97.094877682854474 33.797523445530629,-97.094770999999994 33.798532000000002,-97.093897185962049 33.800360798466031,-97.09266432242093 33.802941048788071,-97.092111999999986 33.804096999999999,-97.087998999999982 33.808746999999997,-97.078589999999991 33.812755999999993,-97.067977124183287 33.814475679891196,-97.064604445188394 33.815487484896828,-97.062631847535258 33.816079264957295,-97.058622892638837 33.818751903281317,-97.055415722506638 33.823829921794093,-97.055412197115942 33.8238546000754,-97.055148464371385 33.82570077017467,-97.055682980641905 33.830778788687446,-97.057821087157734 33.834520485448607,-97.058282726048489 33.836367011192308,-97.058622892638837 33.837727655580807,-97.057553829022481 33.840133030590344,-97.055415722506638 33.841202089027483,-97.052208542016004 33.841736615656437,-97.048734113748537 33.840934820533782,-97.045339940802535 33.839496399893775,-97.041245000000004 33.837761,-97.038858000000005 33.838264000000002,-97.023899 33.844213000000003,-97.017857000000006 33.850141999999998,-97.010381749407998 33.858564100233409,-96.999664164722446 33.87063922351804,-96.985567000000003 33.886521999999999,-96.983970999999997 33.892082999999992,-96.984938999999997 33.904865999999991,-96.985275905099471 33.906070041818985,-96.988744999999994 33.918467999999997,-96.993996999999979 33.928978999999998,-96.995022999999989 33.932034999999999,-96.995140238436761 33.933014648420269,-96.996024643022366 33.940404763634284,-96.996183000000002 33.941727999999998,-96.996167702736543 33.941832622020257,-96.995421139189489 33.946938567064805,-96.995367999999999 33.947302,-96.994947208134789 33.948043840473474,-96.994456760007211 33.948908482357652,-96.994287999999983 33.949205999999997,-96.990835000000004 33.952700999999998,-96.988126301178397 33.954514162310069,-96.987892000000002 33.954670999999998,-96.982723774786024 33.956016867344054,-96.981537499896135 33.956325787441237,-96.981336999999982 33.956377999999994,-96.979415000000003 33.956178,-96.979347000000004 33.955129999999997,-96.980675999999988 33.951813999999999,-96.981031000000002 33.949159999999999,-96.97981799999998 33.941588000000003,-96.976955000000004 33.937452999999998,-96.973806999999979 33.935696999999998,-96.97254199999999 33.935794999999999,-96.952313000000004 33.944581999999997,-96.944610999999995 33.949216999999997,-96.933309804512817 33.955134148312766,-96.932252000000005 33.955688000000002,-96.924267999999998 33.959159,-96.922113999999979 33.959578999999998,-96.921429967464036 33.959451233053208,-96.919039990098355 33.959004821377064,-96.918617999999995 33.958925999999998,-96.91833921313939 33.958790334953079,-96.917063225391544 33.958169405626251,-96.916299999999993 33.957797999999997,-96.91417790611122 33.956157267456653,-96.911732563120111 33.95426660943896,-96.911336000000006 33.953960000000002,-96.910857206749995 33.953482904168467,-96.908421363636307 33.951055696608989,-96.907387 33.950024999999997,-96.905252999999988 33.947218999999997,-96.902433999999985 33.942017999999997,-96.901946611333699 33.940667581536225,-96.899441999999993 33.933728000000002,-96.896468999999996 33.91331799999999,-96.897193999999999 33.902954,-96.895728000000005 33.896414,-96.887761838797758 33.878628251663962,-96.883009999999999 33.868018999999997,-96.875280999999987 33.860505000000003,-96.87198767019855 33.857765462058182,-96.866438000000002 33.853149000000002,-96.85608999999998 33.84749,-96.850593000000003 33.847211,-96.845895999999996 33.848974999999996,-96.841592000000006 33.852893999999999,-96.840818999999996 33.863644999999998,-96.839777999999995 33.868395999999997,-96.837412999999984 33.871349000000002,-96.833926235310372 33.873661568818115,-96.832156999999995 33.874834999999997,-96.812777999999994 33.872646000000003,-96.794275999999996 33.868886000000003,-96.786859371055769 33.865207582975678,-96.783484999999999 33.863533999999994,-96.780568999999986 33.860098,-96.779588000000004 33.857939000000002,-96.777202000000003 33.848162000000002,-96.776765999999995 33.841976000000003,-96.770675999999995 33.829621000000003,-96.769378000000003 33.827477000000002,-96.766316855179326 33.825510582121247,-96.766234999999995 33.825457999999998,-96.761588000000003 33.824406000000003,-96.754041 33.824657999999999,-96.746233969152598 33.825673509073113,-96.746037999999984 33.825699,-96.741799282455162 33.826447231494264,-96.71318112067361 33.831498997677379,-96.712421999999989 33.831632999999997,-96.708134 33.833060000000003,-96.704457000000005 33.835020999999998,-96.700318655907978 33.838434731313264,-96.699573999999998 33.839049000000003,-96.695480719177567 33.844085960723298,-96.693127324791789 33.84698191524042,-96.690708 33.849958999999998,-96.688190999999989 33.854613,-96.687524326814838 33.85620885855986,-96.684726999999995 33.862904999999998,-96.682762564556768 33.871464102957781,-96.682209 33.873876000000003,-96.682102999999998 33.876645000000003,-96.683464 33.884217,-96.681051007513375 33.895708672998403,-96.680947000000003 33.89620399999999,-96.675306000000006 33.909114000000002,-96.673449000000005 33.912278,-96.670618000000005 33.914913999999996,-96.667186999999998 33.916939999999997,-96.665308436653305 33.917161206414967,-96.66440999999999 33.917267000000002,-96.659896000000003 33.916665999999999,-96.65150600931733 33.910998546998165,-96.644049999999979 33.905962000000002,-96.630116999999998 33.895422000000003,-96.628293999999997 33.894477000000002,-96.616355751891987 33.894625565889051,-96.614680358047494 33.89464641537834,-96.611821556077771 33.89468199182577,-96.607562 33.894734999999997,-96.592948000000007 33.895615999999997,-96.588319642127203 33.894847991673281,-96.587934000000004 33.894784,-96.58760387584924 33.894318075382706,-96.585452000000004 33.891280999999999,-96.585359999999994 33.888947999999999,-96.587494000000007 33.884250999999999,-96.590112000000005 33.880665,-96.597347999999982 33.875100999999994,-96.601685999999987 33.872822999999997,-96.611969999999999 33.869016000000002,-96.625399000000002 33.856541999999997,-96.628968999999998 33.852406999999999,-96.629746999999995 33.850866000000003,-96.630021999999983 33.847541,-96.629842405402627 33.847037300944812,-96.629577623992816 33.846294683138318,-96.629289999999997 33.845488000000003,-96.627812273090953 33.844523322531259,-96.626623854929747 33.84374750920842,-96.623154999999997 33.84148299999999,-96.622548607895212 33.841284829387497,-96.620258613641042 33.840536452948584,-96.605267599881515 33.835637348301233,-96.601258 33.834327000000002,-96.599141379811712 33.83346048638235,-96.597030984690946 33.832596521217091,-96.595164098773168 33.831832245189069,-96.592925999999991 33.830916000000002,-96.587067000000005 33.828009000000002,-96.573054340771023 33.81917200025552,-96.572936999999996 33.819097999999997,-96.568822993124115 33.818734252140963,-96.566549213959448 33.818533211567136,-96.566298000000003 33.818511,-96.551222999999993 33.81912899999999,-96.541502252916899 33.82118138128849,-96.537683599711926 33.821987629236112,-96.532865 33.823005000000002,-96.532141353898353 33.822830017549641,-96.529233999999988 33.822127000000002,-96.526655000000005 33.820891000000003,-96.526331240434345 33.820568979830284,-96.523863000000006 33.818114,-96.519910999999993 33.811346999999998,-96.517492044660074 33.805400310572544,-96.516583999999995 33.803167999999999,-96.515958999999995 33.798933999999996,-96.515952403498957 33.797370629253059,-96.5159410675722 33.794684014612457,-96.515912 33.787795000000003,-96.51191399999999 33.781477999999993,-96.502285999999998 33.773459999999993,-96.500268000000005 33.772582999999997,-96.486059999999995 33.773009999999999,-96.459153999999998 33.775232000000003,-96.456254 33.776035,-96.450509999999994 33.780588000000002,-96.448044999999993 33.781030999999999,-96.436454999999995 33.780050000000003,-96.430214000000007 33.778654000000003,-96.423664429058576 33.776393528613141,-96.422642999999994 33.776040999999999,-96.422322840041474 33.775682043625913,-96.420980388055867 33.774176915691271,-96.419961 33.773034000000003,-96.419583102042878 33.772404537625398,-96.417562000000004 33.769038000000002,-96.416145999999998 33.76609899999999,-96.413408000000004 33.757714,-96.411885201063754 33.755703128434462,-96.408468999999997 33.751191999999996,-96.403507000000005 33.746288999999997,-96.384116000000006 33.730141000000003,-96.383299027856694 33.729391180874664,-96.380090129695702 33.726446045924753,-96.379450023740389 33.7258585550397,-96.370956555983966 33.718063228581727,-96.370761536889887 33.717884239557762,-96.369590000000002 33.716808999999998,-96.369084597701828 33.715741445126696,-96.366945 33.711221999999999,-96.363253 33.701050000000002,-96.363143372320295 33.69469995601051,-96.363135 33.694215,-96.362964209763192 33.693778090504111,-96.362198000000006 33.691817999999998,-96.356236230636398 33.68737146600408,-96.355945999999989 33.687154999999997,-96.355455421824701 33.68710517164083,-96.352724507664888 33.686827790830883,-96.348305999999994 33.686378999999995,-96.346643697131185 33.686554630652331,-96.344174978865311 33.686815463144171,-96.342664999999997 33.686974999999997,-96.337175125435976 33.689043696356201,-96.321102999999994 33.695099999999996,-96.318759999999997 33.696753,-96.318590686098233 33.696960051986665,-96.318010443675675 33.697669623646739,-96.316924999999998 33.698996999999999,-96.314798583555884 33.702507526903553,-96.309963999999994 33.710489000000003,-96.308342766341951 33.715746247280322,-96.307034999999985 33.719987000000003,-96.307001890234133 33.720499786556005,-96.306595999999999 33.726785999999997,-96.307389 33.735005,-96.3061 33.741002000000002,-96.30525491425243 33.743702118680943,-96.304087485467235 33.747432149959735,-96.303009000000003 33.750878,-96.301705999999982 33.753756000000003,-96.294866999999996 33.764771000000003,-96.292482000000007 33.766418999999999,-96.277269000000004 33.769734999999997,-96.269895999999989 33.768405,-96.251497151236435 33.760405611313516,-96.248231999999987 33.758986,-96.23960043273749 33.754058875473291,-96.229595766085112 33.748347949873668,-96.229022999999998 33.748021,-96.220521000000005 33.747390000000003,-96.1999 33.752116999999998,-96.196336040977513 33.753254070097242,-96.186553999999987 33.756374999999998,-96.178059000000005 33.760517999999998,-96.174632999999986 33.763699000000003,-96.169932696734321 33.769534234627457,-96.169452000000007 33.770130999999999,-96.167888847884015 33.774482610028038,-96.162756999999985 33.788769000000002,-96.162122572851359 33.796140263149638,-96.162213638666273 33.796174412747511,-96.166837334419654 33.79790829445497,-96.170373408451042 33.799381659586444,-96.173025461119408 33.800560352833699,-96.175150000000002 33.801951000000003,-96.17734 33.805117000000003,-96.17895107878303 33.810509748931381,-96.178963999999993 33.810552999999999,-96.176910000000007 33.813934000000003,-96.175889999999981 33.814627000000002,-96.164217431250009 33.817001137011715,-96.150765000000007 33.816986999999997,-96.148792 33.819197000000003,-96.151629999999983 33.831945999999995,-96.150147000000004 33.835856,-96.148457006953691 33.837436961236868,-96.14806999999999 33.83779899999999,-96.147446683377808 33.837891494337825,-96.138904999999994 33.839159000000002,-96.128108733462625 33.839703753325978,-96.122951 33.839963999999995,-96.118168999999995 33.837883999999995,-96.109992999999989 33.832396000000003,-96.104074999999995 33.830730000000003,-96.099360000000004 33.830469999999998,-96.097448 33.832724999999996,-96.097637999999989 33.837935000000002,-96.099152999999987 33.842409000000004,-96.100785000000002 33.844230000000003,-96.101348999999999 33.845720999999998,-96.101472999999999 33.846708999999997,-96.100094999999996 33.847971,-96.084626 33.846656000000003,-96.063924 33.841522999999995,-96.055357999999984 33.838262,-96.049381559404907 33.836618570443349,-96.048833999999999 33.836468000000004,-96.044074587870469 33.838420736557822,-96.037191000000007 33.841245,-96.031783693249977 33.849934429642978,-96.031271075997878 33.850758194920559,-96.029462717056688 33.852402158173604,-96.025188419607474 33.852073366797306,-96.022229284477689 33.850922593794486,-96.021900493101384 33.849114234853282,-96.022507000000004 33.846130000000002,-96.022064891975305 33.843195970965255,-96.021407302851145 33.841880802274289,-96.019950829321616 33.840821548098475,-96.019598947095744 33.84056563358331,-96.005296 33.845505000000003,-96.000534603789163 33.849305889934179,-95.998351 33.851049000000003,-95.997709 33.852181999999992,-95.997673906338932 33.852568581878202,-95.997405462294296 33.855525685805766,-95.9977342536706 33.860950759443568,-95.997376655326022 33.862202357114477,-95.996747879541701 33.864403078452035,-95.993624351909531 33.866211440579008,-95.991487204777812 33.866869023331596,-95.988856861024331 33.866869023331596,-95.984753921632091 33.864671017651808,-95.984253769013037 33.864403078452035,-95.980965842506947 33.859306796190523,-95.9735403792467 33.856832331211713,-95.972155999999998 33.856371000000003,-95.971744371228908 33.856383941655046,-95.951609000000005 33.857016999999999,-95.945502988542614 33.859346036998218,-95.944283999999982 33.859811,-95.943359355023844 33.860365112733476,-95.941777921153459 33.861312819872232,-95.941266999999996 33.861618999999997,-95.936631000000006 33.870615,-95.93550004724635 33.874497995518659,-95.935325000000006 33.875098999999999,-95.935308000000006 33.878723999999998,-95.935637 33.880370999999997,-95.936817000000005 33.882385999999997,-95.937201999999999 33.884652000000003,-95.936131999999986 33.886825999999999,-95.935198 33.887100999999994,-95.922712000000004 33.883758,-95.915960999999996 33.881148000000003,-95.905343000000002 33.875629000000004,-95.893305999999995 33.868161,-95.887490999999997 33.863855999999998,-95.881292000000002 33.860627,-95.859469000000004 33.852455999999997,-95.849863999999997 33.844951999999999,-95.843772999999999 33.838949,-95.841300369514457 33.837329726167006,-95.840012000000002 33.836486,-95.839442445999168 33.836292954052603,-95.838335071878717 33.835917618112738,-95.837515999999994 33.835639999999998,-95.831947999999997 33.835160999999999,-95.828244999999995 33.836053999999997,-95.827967044704152 33.836191602640042,-95.826538854622555 33.836898632614485,-95.822787000000005 33.838755999999989,-95.821905415666805 33.839551758599306,-95.821112514659319 33.840267467546653,-95.820784000000003 33.840564,-95.819357999999994 33.842784999999999,-95.818975999999992 33.844456,-95.819524999999999 33.848438999999999,-95.820676999999989 33.850750999999995,-95.821665999999979 33.855443,-95.821665999999979 33.856633000000002,-95.82138191533943 33.857119395418813,-95.820824189768416 33.858074304994595,-95.820595999999995 33.858464999999995,-95.820256321913618 33.858527429344676,-95.805149 33.861303999999997,-95.800842000000003 33.861212000000002,-95.790314669347865 33.857829825250164,-95.789867 33.857685999999994,-95.789358977006231 33.85733891951336,-95.788304168820886 33.85661827626933,-95.787891000000002 33.856335999999999,-95.776255000000006 33.845145000000002,-95.773281999999995 33.843834,-95.772067000000007 33.843817,-95.763621999999984 33.847954,-95.758311274366889 33.849968021173019,-95.758015999999998 33.850079999999998,-95.757640875431136 33.850475976069447,-95.754310000000004 33.853991999999998,-95.753512999999984 33.856464000000003,-95.753688987366843 33.856976705401074,-95.75729390188404 33.867478931648478,-95.757457999999986 33.86795699999999,-95.758009454152003 33.868443703186436,-95.760805000000005 33.870911,-95.762558999999996 33.874366999999992,-95.76194240701966 33.883030946465368,-95.761915999999999 33.883401999999997,-95.758343999999994 33.890610999999993,-95.756366999999997 33.892625000000002,-95.747335000000007 33.895755999999999,-95.737508000000005 33.895966999999999,-95.729445045960333 33.893952819075864,-95.728448999999998 33.893704,-95.723226300470785 33.890698381785455,-95.717160861060378 33.887207774089354,-95.713910181462765 33.885337036216413,-95.713539999999981 33.885123999999998,-95.710877999999994 33.884551999999999,-95.696961999999999 33.885218000000002,-95.684831000000003 33.890231999999997,-95.676924999999983 33.897236999999997,-95.669978 33.905844000000002,-95.665338000000006 33.908132000000002,-95.659818 33.909092,-95.647272999999998 33.905976000000003,-95.636977999999999 33.906613,-95.609439392746168 33.923623282239362,-95.603656999999998 33.927194999999998,-95.599677999999983 33.934246999999999,-95.585944999999981 33.93448,-95.570311428427317 33.932892416047835,-95.564667905744443 33.932319318211334,-95.563423999999998 33.932192999999998,-95.562724847986416 33.932007581530534,-95.561592737930383 33.931707340510293,-95.561007000000004 33.931551999999996,-95.560415995740641 33.931042615914556,-95.559931936825777 33.930625407571753,-95.559414000000004 33.930179000000003,-95.558286100391328 33.928753215740784,-95.557777967458279 33.928110882033096,-95.556914999999989 33.927019999999999,-95.551147999999984 33.914566,-95.549144999999996 33.90795,-95.549475 33.901310999999993,-95.552330999999981 33.894419999999997,-95.55209457427955 33.888655441173519,-95.552085000000005 33.888421999999998,-95.551943532854764 33.888208369560985,-95.548485831718622 33.882986873004867,-95.548324999999991 33.882744000000002,-95.547838962671932 33.882363312195096,-95.545708294665019 33.880694470565629,-95.545197000000002 33.880293999999999,-95.54352178779898 33.880173169084813,-95.541265054919734 33.880010393826282,-95.539789999999996 33.879904000000003,-95.537358049249164 33.88037416967029,-95.534038375697051 33.881015963020303,-95.533282999999997 33.881161999999996,-95.531798241123994 33.881968630089013,-95.525321999999989 33.885486999999998,-95.521418133191162 33.888379988113826,-95.520137966641357 33.88932866459119,-95.515301759339067 33.891142240377064,-95.510062536063273 33.890134704348199,-95.506233872599807 33.886306036979761,-95.506495 33.878588999999998,-95.506084999999999 33.87639,-95.502407477038815 33.874787101867227,-95.502303999999995 33.874741999999998,-95.492028000000005 33.874822000000002,-95.480004545492946 33.87882505156746,-95.478574999999992 33.879300999999998,-95.477829321179073 33.879890044047791,-95.469962325642697 33.886104525088022,-95.467351237093553 33.886417854985297,-95.464924614258621 33.886709049048328,-95.462909526581015 33.885903021006229,-95.461498966768687 33.883686425341857,-95.46277824472287 33.878821065729895,-95.464211000000006 33.873372000000003,-95.463346 33.872312999999998,-95.461127233926518 33.871832054399569,-95.447370000000006 33.868850000000002,-95.418546279096461 33.866998581211959,-95.411345060268999 33.866536029139695,-95.407794999999979 33.866307999999989,-95.406882133018115 33.866362247208706,-95.404325916920058 33.866514150597617,-95.375232999999994 33.868243,-95.352338000000003 33.867789000000002,-95.339561303488324 33.868836967540759,-95.339121999999989 33.868873,-95.339014688391742 33.869073090388603,-95.33835013321854 33.870312202400832,-95.334854000000007 33.876830999999996,-95.334836460323601 33.877305631062114,-95.334523000000004 33.885787999999998,-95.333451999999994 33.886285999999998,-95.325571999999994 33.885703999999997,-95.310579050797429 33.880679668661742,-95.294789354523203 33.875388337067108,-95.287864786488143 33.87494634339312,-95.28344485260331 33.877745636185885,-95.281676877907344 33.882902226669891,-95.281529544303439 33.887616824907447,-95.281317419351268 33.889260797911334,-95.280350898312903 33.896751357029835,-95.279761569607459 33.899108654721076,-95.277846267017765 33.900876629417048,-95.275341635722626 33.901760616765031,-95.272542342929853 33.902055281117747,-95.267212735027385 33.900338966530455,-95.263849803053915 33.899255988324974,-95.261050510261143 33.899992642069066,-95.255746586173245 33.902939265610648,-95.253094626984378 33.90544389690578,-95.250884657186859 33.913105118684925,-95.250737329293145 33.917083057468233,-95.251326652288412 33.924154956252103,-95.253020000000006 33.927236999999998,-95.253623000000005 33.92971,-95.252905999999982 33.933647999999998,-95.250453815364224 33.936614470603772,-95.23166760862577 33.959340626388752,-95.231194814374604 33.959912577712174,-95.230491 33.960763999999998,-95.226393000000002 33.961953999999999,-95.219358 33.961567000000002,-95.184075000000007 33.950353,-95.174181557651636 33.944707625858101,-95.173657196254922 33.944408415920272,-95.168745999999999 33.941605999999993,-95.166685999999984 33.939728000000002,-95.161108999999982 33.937598,-95.149462 33.936335999999997,-95.131725657216535 33.936903570678005,-95.131056 33.936924999999995,-95.130760550144942 33.936820411866918,-95.124700000000004 33.934674999999991,-95.121184 33.931306999999997,-95.121974867397924 33.925542192115131,-95.122499622273722 33.921717137430115,-95.122365486317321 33.918632002634986,-95.119951031304154 33.915815139752631,-95.110963896232136 33.912998276870283,-95.103318123323447 33.913668959251616,-95.10214780889666 33.912991409673538,-95.100769532353866 33.912193461131935,-95.098489218495843 33.909913139475762,-95.095001673232161 33.904815960136006,-95.095247706914634 33.899772255341666,-95.095269945144935 33.899316370327696,-95.09392858558104 33.895962961020395,-95.090441035118587 33.893280234094433,-95.084002493615529 33.893280234094433,-95.079139333602001 33.898143394107954,-95.078905311676394 33.898377416033576,-95.074957661870556 33.900039583313315,-95.073630040977179 33.900598581227868,-95.071259538767663 33.901596686785098,-95.065491679645973 33.899584642240477,-95.06106518008815 33.895292278639054,-95.058834000000004 33.886812999999997,-95.049025 33.864089999999997,-95.046567999999994 33.862564999999996,-95.038661112238941 33.860609605793528,-95.037206999999995 33.86025,-95.033518790033554 33.860141698175291,-95.03143098776043 33.86008039125462,-95.030255193062573 33.860045864827867,-95.022324999999995 33.859813000000003,-95.016999191469623 33.861237606415294,-95.016422000000006 33.861392000000002,-95.008375999999984 33.866088999999995,-95.000223000000005 33.862504999999999,-94.995524000000003 33.857438000000002,-94.992810330111539 33.852698351540766,-94.992671 33.852454999999999,-94.992523097811741 33.852403566519136,-94.990494037024106 33.851697953840834,-94.988486999999992 33.850999999999999,-94.98739725328582 33.851074415574232,-94.983303000000006 33.851354,-94.981650000000002 33.852283999999997,-94.976208 33.859846999999995,-94.973410999999999 33.861730999999999,-94.971435 33.862122999999997,-94.968895000000003 33.860916000000003,-94.965888000000007 33.848421999999999,-94.964400999999995 33.837020999999993,-94.957676000000006 33.835003999999998,-94.949533421399437 33.825707838785306,-94.949112883549958 33.821754768331147,-94.948729542346143 33.818151347643564,-94.948715939727023 33.818023482549535,-94.944301522854289 33.81213759866646,-94.939560116480934 33.810502632153295,-94.935799688114457 33.810339132650462,-94.932366255585293 33.810993121156741,-94.928442330884351 33.812628087669893,-94.92451840618341 33.812791587172725,-94.924196338046286 33.812670811231236,-94.921902464831703 33.811810605997493,-94.919450010309433 33.810175636315982,-94.917815040627914 33.808704169305649,-94.917091634856007 33.805689966907131,-94.916834062621035 33.804616745101868,-94.916997555787162 33.801510305241678,-94.91961350347556 33.794152948011565,-94.920034399525505 33.790224602097751,-94.920103995647338 33.789575041141042,-94.920095560257593 33.789518805381888,-94.91961350347556 33.786305103362189,-94.913003475392784 33.779908559849432,-94.912450337640749 33.77937328682863,-94.911427000000003 33.778382999999998,-94.906244999999998 33.778191999999997,-94.902276 33.776288999999998,-94.89497736748055 33.771540270803243,-94.89019868072495 33.768431100796676,-94.888367999999986 33.76724,-94.887910246679809 33.766674529711281,-94.886225692565191 33.764593571999796,-94.885411379435553 33.764756432942491,-94.881447983999394 33.765549103837166,-94.879218389137634 33.764912090842074,-94.876033253179955 33.760771407616105,-94.875653319149677 33.757021753168047,-94.875534806260347 33.755852122792213,-94.875497398046861 33.755482932714841,-94.877080000000007 33.75222,-94.874668 33.749164,-94.870299604394191 33.746484207390097,-94.869443369718425 33.745958950164457,-94.869299999999996 33.745871,-94.8570941233355 33.742035460072337,-94.849295999999981 33.739584999999991,-94.841633779899112 33.739430990835892,-94.830804318260235 33.740068022348083,-94.828875382311935 33.74092532536806,-94.827937698058648 33.741342073027738,-94.826026615866809 33.743890180559411,-94.824752565187154 33.749304914465036,-94.82447272313469 33.749460382205008,-94.821885938813196 33.750897483986968,-94.817426749089677 33.752171534666616,-94.815635414888177 33.752066164468857,-94.813744972719192 33.751954964523563,-94.81275807295215 33.751896912919612,-94.812012015184067 33.751853028169073,-94.80914539498248 33.749304914465036,-94.798634446013509 33.744527205899239,-94.789716054221742 33.746119775421171,-94.777638928565466 33.753471071068567,-94.775064434371529 33.755038154868203,-94.770923763490302 33.754401129528375,-94.768057130944001 33.753445597691005,-94.766464573766783 33.750897483986968,-94.766146067269247 33.748030863785381,-94.766818924318841 33.746124416643802,-94.768057130944001 33.742616129879757,-94.767738636791165 33.737519908644046,-94.767244154304578 33.736926531576607,-94.76296091588064 33.731786662068515,-94.759138751496963 33.729557067206756,-94.758159820145337 33.729557067206756,-94.753087004596253 33.729557067206756,-94.750011775433265 33.728811557489699,-94.742576055627282 33.727008959675082,-94.742176780415733 33.726449974997927,-94.739390916583417 33.72254976995157,-94.737479828219207 33.716179498036198,-94.737788227808608 33.71500758055268,-94.73907239774114 33.71012773879076,-94.73746132453816 33.705563045258067,-94.73716130937693 33.704713004885136,-94.732383613155861 33.700253815161624,-94.728242929929891 33.699616789821789,-94.725694828570582 33.702483410023376,-94.724525908047042 33.704821269192259,-94.724102271393392 33.705668549067234,-94.721872664186904 33.707261118589173,-94.719006043985303 33.708216656598914,-94.714865360759347 33.707261118589173,-94.711043208720398 33.705668549067234,-94.709450639198465 33.699616789821789,-94.710289486124168 33.697309952648205,-94.710724689878106 33.696113138108018,-94.710724689878106 33.691653948384499,-94.710106194192988 33.688252279047049,-94.71008765219355 33.688150299756906,-94.707858069676533 33.686876245991066,-94.691547961569825 33.685092048879412,-94.684792000000002 33.684353000000002,-94.659166999999997 33.692138,-94.652265035786613 33.690979104454883,-94.649628372726468 33.688049476940073,-94.649099284135872 33.686462209886628,-94.648456523423718 33.684533926193204,-94.64818493525776 33.682632803768527,-94.647928021538007 33.680834402751707,-94.647870600191638 33.680432452214262,-94.648456523423718 33.673401362074948,-94.647827859209684 33.672301196274027,-94.646112824818204 33.669299876741562,-94.642890235687361 33.668420997570671,-94.635273213800133 33.669885811328072,-94.631328876730365 33.67284406472757,-94.630585813750528 33.673401362074948,-94.627656194751552 33.677795791992715,-94.62121101648988 33.681018386800773,-94.616816575217669 33.679553573043371,-94.614284398758912 33.677302743466427,-94.611543254774574 33.674866164477912,-94.611424034353576 33.674789522931938,-94.607441775118403 33.672229504256364,-94.60304734520065 33.671350625085473,-94.596895128555005 33.671350625085473,-94.593672545101384 33.673987285307021,-94.590449961647764 33.677502836053897,-94.590316660066918 33.67755410593854,-94.586641449284855 33.678967649811298,-94.579620000000006 33.677622999999997,-94.576973687569549 33.673401362074948,-94.5728722135906 33.669885811328072,-94.571305222138406 33.668005422800071,-94.569942586075811 33.666370260581196,-94.569356662843745 33.663440621711956,-94.571445361022185 33.660423619728157,-94.571993323065286 33.659632120703485,-94.572286279004103 33.656995454804722,-94.570821465246695 33.654944723492456,-94.568770728257221 33.65465176187643,-94.564669254278257 33.655823608340576,-94.563858010166513 33.65591721375597,-94.557052229552454 33.656702498865904,-94.552071876402621 33.653479904057846,-94.551192985877293 33.650257320604226,-94.551311999999982 33.644569999999995,-94.553536678805585 33.642054372646328,-94.552657799634687 33.638245860283412,-94.549142248887819 33.635902161677912,-94.543868917090279 33.635902161677912,-94.538888563940446 33.637952898667386,-94.538195599937964 33.637916426989378,-94.537583502619341 33.637884211439605,-94.533322276204103 33.637659937051346,-94.529220802225154 33.63443734792051,-94.528408204203203 33.630103504051213,-94.528341911699826 33.629749945032266,-94.52980672545722 33.627406252103981,-94.528927834931892 33.621839964367631,-94.526291174710352 33.619203298468861,-94.521363727720257 33.61686924674752,-94.520724886974008 33.61656663824732,-94.504615 33.620682000000002,-94.493418698303032 33.624467326832118,-94.492501061148843 33.624777568252533,-94.491502999999994 33.625115,-94.491295462081894 33.62531395337146,-94.487514000000004 33.628939000000003,-94.485874999999993 33.637867,-94.481313 33.638818999999998,-94.476415000000003 33.638947000000002,-94.466075000000004 33.636262000000002,-94.464185999999998 33.637655000000002,-94.461453000000006 33.643615999999994,-94.459197999999986 33.645145999999997,-94.454819999999998 33.644902999999999,-94.448637000000005 33.642766000000002,-94.446871000000002 33.640177999999999,-94.447513999999998 33.636254999999991,-94.448451000000006 33.634497000000003,-94.458816999999982 33.632444,-94.462736000000007 33.63091,-94.461129 33.625414999999997,-94.460285999999996 33.624420999999998,-94.45525499999998 33.622917,-94.452710999999994 33.622621000000002,-94.452325000000002 33.618817,-94.452961000000002 33.616985999999997,-94.454768999999999 33.615155999999992,-94.462335999999993 33.610567000000003,-94.469451000000007 33.60731599999999,-94.472166 33.604199,-94.471974000000003 33.602665000000002,-94.471151999999989 33.601588,-94.468086 33.599435999999997,-94.461794602929331 33.598691554192769,-94.458900358388505 33.598349085232492,-94.458231999999995 33.598269999999999,-94.454858239556387 33.593453869357283,-94.453995999999989 33.592222999999997,-94.453435550445548 33.592019500625121,-94.452150252013013 33.591552808439438,-94.451622 33.591360999999999,-94.449112 33.590893999999992,-94.442363999999998 33.591242999999999,-94.441536999999997 33.591501999999991,-94.439518000000007 33.594154000000003,-94.430358101189597 33.59122600196271,-94.430038999999994 33.591124,-94.429672337173542 33.590855074196774,-94.427920122643982 33.589569927010331,-94.427577999999983 33.589319000000003,-94.425982000000005 33.586424999999998,-94.413155000000003 33.569367999999997,-94.412481642075306 33.56890283335202,-94.412480771235352 33.568902231761562,-94.412480202418593 33.568901838813659,-94.412175000000005 33.568691,-94.408900999999986 33.568196999999998,-94.403341999999995 33.568424,-94.397341999999981 33.571607999999998,-94.385926999999995 33.581887999999999,-94.382886999999997 33.58326799999999,-94.379649 33.580607,-94.378075999999993 33.577019,-94.377759999999981 33.574609000000002,-94.378561000000005 33.571328999999999,-94.380090999999993 33.568942999999997,-94.382534000000007 33.567056999999998,-94.388052000000002 33.565511,-94.392357000000004 33.565286999999998,-94.394655618773015 33.564059042448399,-94.397398454287298 33.562313601959417,-94.399227012370631 33.559903231990447,-94.399393244337958 33.557077279687135,-94.399143896386974 33.555498071165481,-94.397957000000005 33.554389999999998,-94.392572999999999 33.551141999999999,-94.389515000000003 33.546778000000003,-94.386086000000006 33.544922999999997,-94.381666999999993 33.544035,-94.373392999999993 33.544471,-94.371597999999992 33.545000999999999,-94.363297000000003 33.544956999999997,-94.361350999999999 33.544612999999998,-94.358969999999999 33.54323,-94.355945000000006 33.54318,-94.348944999999986 33.548358999999998,-94.347382999999979 33.55107799999999,-94.34729 33.552197,-94.352653000000004 33.560611000000002,-94.352433000000005 33.56217199999999,-94.345512999999997 33.567312999999999,-94.344023000000007 33.567824000000002,-94.340576999999996 33.567878,-94.340047258358467 33.56768232744934,-94.338972839399958 33.567285465504582,-94.33842199999998 33.567081999999999,-94.337996277272822 33.566655299162022,-94.334939999999989 33.563592,-94.334379999999996 33.562536,-94.333929800646288 33.557825151092565,-94.333894999999998 33.557461000000004,-94.333202999999997 33.555365999999992,-94.331833000000003 33.553348,-94.33059 33.552692,-94.323660000000004 33.549835000000002,-94.319491999999997 33.548864000000002,-94.309582000000006 33.551673,-94.30641 33.555616,-94.306214999999995 33.557676,-94.307180999999986 33.559797000000003,-94.303577000000004 33.56828,-94.301022999999986 33.573022000000002,-94.298392000000007 33.576217999999997,-94.293257999999994 33.580418999999999,-94.289129000000003 33.582143999999992,-94.287025 33.582410000000003,-94.283581999999996 33.581890999999999,-94.282647999999995 33.580978000000002,-94.280849000000003 33.577187000000002,-94.280604999999994 33.574907999999994,-94.282171999999989 33.572989,-94.290372000000005 33.567905000000003,-94.291686999999996 33.563481000000003,-94.290901000000005 33.558872,-94.289439999999999 33.557634999999998,-94.287571999999997 33.557178,-94.279089999999997 33.557026,-94.275600999999995 33.557963999999998,-94.274473 33.558652000000002,-94.271997999999996 33.561517999999992,-94.270978999999997 33.563220999999999,-94.270853000000002 33.564782999999998,-94.265668999999988 33.573588999999998,-94.262754999999999 33.577354,-94.257801 33.582507999999997,-94.257524288354617 33.582703553652586,-94.252656000000002 33.586143999999997,-94.245931999999996 33.589113999999995,-94.242777000000004 33.589708999999999,-94.240178999999998 33.589536000000003,-94.236971999999994 33.587411000000003,-94.236362999999997 33.585991999999997,-94.236835999999997 33.580914,-94.237975000000006 33.577756999999998,-94.238867999999997 33.576721999999997,-94.244365999999999 33.573549,-94.251108000000002 33.56528,-94.252330999999984 33.561855,-94.252283000000006 33.560445,-94.251569000000003 33.558188,-94.250197 33.556764999999999,-94.237903999999986 33.552675,-94.233128263729824 33.552212399803537,-94.233017493976078 33.552201670126067,-94.231843999999981 33.552087999999998,-94.226392000000004 33.552911999999999,-94.222920999999999 33.554088,-94.21922099999999 33.556095999999997,-94.213604000000004 33.563133999999998,-94.21268334130005 33.563763266722709,-94.208078 33.566910999999998,-94.205634000000003 33.567228999999998,-94.203593999999981 33.566546000000002,-94.202594978382763 33.562850001484037,-94.201237000000006 33.557825999999999,-94.199485999999993 33.556085000000003,-94.197816999999986 33.555238000000003,-94.196394999999995 33.555123000000002,-94.193247999999997 33.556153999999999,-94.191332999999986 33.55766599999999,-94.189883999999992 33.562454000000002,-94.192482999999996 33.570425,-94.194399000000004 33.573678,-94.196366991504703 33.574779501237479,-94.201105911663163 33.575851400157113,-94.204265191768783 33.575005164570705,-94.207404999999994 33.574353000000002,-94.209665 33.573509999999999,-94.211329000000006 33.573774,-94.216140999999993 33.576391999999998,-94.217408000000006 33.579259999999998,-94.217197999999982 33.580736999999999,-94.214431000000005 33.583187000000002,-94.212997 33.583486999999991,-94.210966999999997 33.583143,-94.205788416261612 33.581380140341984,-94.203588205048902 33.580815984742067,-94.199751933850294 33.581098061448763,-94.196536237091394 33.581718635888464,-94.194464999999994 33.582886000000002,-94.190890999999979 33.587474,-94.183913000000004 33.594681999999999,-94.180879999999988 33.592612000000003,-94.176327 33.591076999999999,-94.162266000000002 33.588906,-94.161081999999993 33.587972,-94.162009999999995 33.580877,-94.161276999999998 33.579270999999999,-94.156782000000007 33.575749000000002,-94.152625999999998 33.575923000000003,-94.148731999999995 33.580196999999998,-94.146047999999993 33.581975,-94.144383000000005 33.582097999999995,-94.142160000000004 33.581389999999999,-94.141852 33.579590000000003,-94.143023999999983 33.577725,-94.145668999999984 33.575599999999994,-94.149506000000002 33.573602,-94.151257 33.571793,-94.151754999999994 33.569476000000002,-94.151455999999996 33.568387,-94.148520000000005 33.565677999999991,-94.145239000000004 33.564987000000002,-94.143401999999995 33.565504999999995,-94.136863999999989 33.570999999999998,-94.136045999999993 33.571387999999999,-94.135142000000002 33.571033,-94.134308000000004 33.569209,-94.133047999999988 33.557952999999998,-94.131382000000002 33.552934,-94.128658 33.550952000000002,-94.126897999999983 33.550646999999991,-94.123897999999997 33.552100000000003,-94.122878999999983 33.553111999999999,-94.12071899999998 33.560555,-94.120354999999989 33.5655,-94.119902152897509 33.566998927274319,-94.112842999999998 33.566991000000002,-94.103176000000005 33.570349999999998,-94.100106999999994 33.57256799999999,-94.097439999999992 33.573718999999997,-94.088943 33.575322,-94.082640999999995 33.575491999999997,-94.072670000000002 33.572234000000002,-94.072231491265512 33.572605318678747,-94.072031926011121 33.573523317998088,-94.072031926011121 33.573846369634623,-94.072031926011121 33.574161925883949,-94.071815412538413 33.574459631515609,-94.071712621294751 33.574600969288895,-94.071353404455635 33.574840447439463,-94.070395493400298 33.574561056392717,-94.069534727631535 33.574169799087244,-94.069517406590393 33.574161925883949,-94.068559493988133 33.573563230894273,-94.068280102941401 33.571966710019424,-94.06782332144887 33.570215714974232,-94.067801146640278 33.570130711574109,-94.066845999999998 33.568908999999998,-94.061283000000003 33.568804999999998,-94.056597999999994 33.567824999999999,-94.056095999999997 33.567252000000003,-94.055662999999996 33.561886999999999,-94.056442000000004 33.560997999999991,-94.059849999999997 33.559249,-94.061179999999993 33.559159,-94.066685000000007 33.560953999999995,-94.067984999999993 33.560960999999999,-94.071719999999999 33.559682000000002,-94.073744000000005 33.558284999999998,-94.073825999999997 33.555833999999997,-94.072156000000007 33.553863999999997,-94.069091999999998 33.553406000000003,-94.06547999999998 33.550908999999997,-94.061896000000004 33.549764000000003,-94.056095999999997 33.550725999999997,-94.051882000000006 33.552585,-94.050211999999988 33.551082999999998,-94.046040000000005 33.551321000000002,-94.043449999999993 33.552253,-94.043428000000006 33.551424999999995,-94.043374999999997 33.542315000000002,-94.043020107474533 33.494534442391668,-94.043008999999998 33.493039000000003,-94.043278999999998 33.491029999999995,-94.043271947583932 33.489425304099555,-94.043188 33.470323999999991,-94.043130608695648 33.460424000000003,-94.043089437732434 33.453322008844353,-94.043061045958495 33.448424427841935,-94.043010021810147 33.439622762252007,-94.042987999999994 33.435823999999997,-94.042987999999994 33.434442436873745,-94.042987999999994 33.431023999999994,-94.042886999999993 33.420225000000002,-94.042890126641851 33.419424334827802,-94.042891364631132 33.419107312620362,-94.042967439944888 33.399626074590046,-94.043053 33.377715999999999,-94.042868999999996 33.371169999999999,-94.043127999999996 33.358756999999997,-94.043066999999979 33.352097,-94.043066999999979 33.347351000000003,-94.043066999999979 33.339614667914582,-94.043066999999979 33.330497999999999,-94.042990000000003 33.271227000000003,-94.043049999999994 33.260903999999996,-94.043003999999996 33.250127999999997,-94.042730000000006 33.241822999999997,-94.042876000000007 33.215218999999998,-94.042891999999995 33.202666,-94.042874999999995 33.199784999999999,-94.042718999999991 33.160290999999994,-94.043184999999994 33.143476,-94.043076999999982 33.138162,-94.043007000000003 33.13389,-94.042951563372725 33.117233519058104,-94.042869999999994 33.092726999999996,-94.043036 33.079484999999998,-94.042963999999998 33.019219,-94.042986850316112 33.007494023677346,-94.043068075862834 32.965815492539427,-94.043087999999997 32.955592000000003,-94.043066999999979 32.937902999999999,-94.043092 32.910021,-94.042884999999998 32.898910999999998,-94.042859000000007 32.892771000000003,-94.042885999999996 32.880965000000003,-94.043025 32.880445999999999,-94.042784999999995 32.871485999999997,-94.042921087938623 32.829694015190334,-94.043025999999983 32.797476000000003,-94.042747000000006 32.786973000000003,-94.042828999999998 32.785277,-94.042937999999992 32.780557999999999,-94.043026999999995 32.776862999999999,-94.042946999999998 32.767991000000002,-94.042974715046569 32.757603400545236,-94.04314699999999 32.693030999999998,-94.042912999999999 32.655126999999993,-94.042779999999993 32.643465999999997,-94.042823999999996 32.640304999999998,-94.042925999999994 32.622014999999998,-94.042929 32.618259999999992,-94.042918999999998 32.610142000000003,-94.042939007208048 32.604544739553475,-94.043082999999996 32.564261000000002,-94.043142000000003 32.559502000000002,-94.043081 32.513612999999999,-94.042884999999998 32.505144999999999,-94.042911000000004 32.492851999999999,-94.043088999999995 32.486561000000002,-94.043071999999995 32.48429999999999,-94.042955000000006 32.480260999999999,-94.042995000000005 32.478003999999999,-94.042901999999998 32.472905999999995,-94.042874999999995 32.471347999999992,-94.042902999999981 32.470385999999998,-94.042907999999997 32.439890999999996,-94.042985999999999 32.435507,-94.042898999999991 32.400658999999997,-94.042923000000002 32.399918,-94.042900999999986 32.392282999999999,-94.042762999999994 32.373331999999998,-94.042738999999997 32.363559000000002,-94.042733519218956 32.277818574933548,-94.042732999999998 32.269696000000003,-94.042732 32.269620000000003,-94.042671451745775 32.225096273752321,-94.042662000000007 32.218145999999997,-94.042600205901905 32.185155675879351,-94.042565999999994 32.166893999999999,-94.042538999999991 32.166826,-94.042591000000002 32.158096999999998,-94.042681000000002 32.137956000000003,-94.042751999999993 32.125163,-94.042337000000003 32.119914,-94.042699999999996 32.056012000000003,-94.042717288248511 32.00695918811028,-94.042720000000003 31.999265,-94.042490448495869 31.997488887291052,-94.042251674184627 31.995641414801661,-94.041832999999997 31.992401999999998,-94.038411999999994 31.992436999999999,-94.029282999999992 31.995864999999998,-94.027080554152732 31.994823406342874,-94.018664 31.990842999999998,-94.011671046736083 31.979908989829021,-94.008352361284565 31.974719974671689,-94.002944198469422 31.966263903968002,-93.995504541226836 31.954631438414648,-93.994147015257326 31.952508844111783,-93.977461000000005 31.926418999999996,-93.971711999999982 31.920383999999995,-93.953546000000003 31.910562999999996,-93.943541310721315 31.908563758569336,-93.938002035663573 31.906916949339585,-93.935007833635339 31.903773037645127,-93.932462763507019 31.895538979891644,-93.931327794714704 31.894581351390723,-93.92767203678045 31.891496810199779,-93.923929283519882 31.889849995167665,-93.919587694495533 31.890748256066246,-93.915948999999998 31.892861000000003,-93.909557114944889 31.893143619429534,-93.905252294448232 31.890856686636408,-93.90476638821832 31.890598549301192,-93.901173350426333 31.885957535142037,-93.901888 31.880063,-93.898135577976262 31.874953416991548,-93.896981462364707 31.873381885463036,-93.889196542313442 31.867692899288475,-93.888241004857136 31.85786451213389,-93.888148571748644 31.856913771406646,-93.887306164689562 31.854968889155742,-93.884117000000003 31.847605999999995,-93.880377455095243 31.844791786271248,-93.879654915472827 31.84424803536659,-93.874821999999995 31.840611000000003,-93.874804231839249 31.835091218914506,-93.874787826198073 31.829994712349503,-93.874761000000007 31.821660999999999,-93.870917000000006 31.816836999999996,-93.868473098390325 31.815251608244314,-93.853390000000005 31.805467,-93.846187999999998 31.802021,-93.839950728453459 31.798597132180646,-93.836868453653821 31.794158659336233,-93.836868453653821 31.791454071635616,-93.836868453653821 31.788733862378688,-93.834649214842401 31.783309060642711,-93.831197070889573 31.780226788232302,-93.827450999999996 31.777740999999999,-93.823442999999997 31.775098,-93.822597999999985 31.773558999999995,-93.826519525540022 31.761832440276638,-93.827342999999999 31.759369999999997,-93.830112066651125 31.754555168030393,-93.830647423185951 31.745811043570992,-93.824579 31.734396999999998,-93.819048075401312 31.72885814427071,-93.818932598107111 31.728523867973351,-93.815657495541259 31.719043310199801,-93.815835943108667 31.711905251886723,-93.815525624652665 31.710796971318612,-93.814600367558683 31.707492480599399,-93.814586782471608 31.707443962415162,-93.811060073548262 31.705827553684028,-93.810303944025605 31.705480994217723,-93.807270273132957 31.704231833580664,-93.806045429297654 31.703104120446881,-93.803419352361757 31.700686292667093,-93.802693549340276 31.697783082925291,-93.802451615781152 31.693186330065117,-93.804479 31.685663999999999,-93.812820813246589 31.676953615984285,-93.81562111199878 31.674029590143711,-93.817425 31.672146,-93.821829497696953 31.673879806810671,-93.822051000000002 31.673966999999998,-93.822341750589956 31.673502431839047,-93.826462000000006 31.666919,-93.8257324849111 31.66154827530681,-93.825660999999997 31.661021999999996,-93.825228912080746 31.660277861177896,-93.81803699999999 31.647891999999999,-93.817707248836442 31.6409111211136,-93.816838000000004 31.622509,-93.818717000000007 31.614555999999997,-93.823976999999999 31.614227999999997,-93.825414416100287 31.615089707767993,-93.827851999999993 31.616550999999998,-93.838056999999992 31.606795000000002,-93.839382999999998 31.599074999999999,-93.837534908858984 31.593743346167731,-93.834924 31.586210999999999,-93.822958 31.568129999999996,-93.822219025006859 31.564792487143556,-93.820763999999997 31.558221000000003,-93.818582000000006 31.554825999999998,-93.798086999999995 31.534044000000002,-93.787687000000005 31.527343999999996,-93.781574079702807 31.525595412174177,-93.780834999999996 31.525383999999999,-93.777170583402579 31.525128039451072,-93.760062000000005 31.523933,-93.753860000000003 31.525331,-93.751899169046524 31.525601857922521,-93.749869902733366 31.526210635456998,-93.746826003263621 31.526007705679731,-93.743376259969125 31.525196002300419,-93.742401241878753 31.523787647735123,-93.74154991556837 31.522557958452786,-93.741111000000004 31.520101,-93.740752889151466 31.518711098615515,-93.740332360499409 31.517078940980245,-93.739317727342822 31.515049678599539,-93.734411826534469 31.513527159467717,-93.733432858180635 31.513223342063657,-93.726736285639134 31.511599931372594,-93.725924582259807 31.504091651519342,-93.728765551952293 31.496786301443361,-93.730997740177827 31.492118989316349,-93.733996137544537 31.48847587643743,-93.737167999999997 31.484621999999998,-93.741884999999982 31.483535,-93.745608448194673 31.481972669547908,-93.746355058504165 31.481633300507966,-93.747840636420193 31.480958036391328,-93.749869902733366 31.478928770078173,-93.749869902733366 31.475276095040186,-93.749626709600278 31.47120988033301,-93.749476 31.468689999999999,-93.709416000000004 31.442995,-93.706857276389258 31.44142369846492,-93.700929751125955 31.437783629836048,-93.697919763270235 31.429300939077926,-93.697603150134782 31.428408665937056,-93.704678 31.418899999999997,-93.704697874245824 31.418107106580852,-93.704878999999991 31.410881,-93.701611 31.409333999999998,-93.695865999999995 31.409391999999997,-93.689953513429003 31.406208353384852,-93.678362516190631 31.399967047179565,-93.675064666986117 31.398191282223291,-93.674659331220113 31.397973024503138,-93.674116999999981 31.397680999999995,-93.671643999999986 31.393352,-93.670181999999983 31.387184,-93.668532759396427 31.379357124595749,-93.668145986696857 31.37510269235548,-93.669064113561134 31.373151679996884,-93.669693055010129 31.371815184369147,-93.669512094168894 31.370548454097019,-93.668919524600994 31.366400452767671,-93.667402247962755 31.365414223393856,-93.665051865060306 31.363886475190469,-93.663891561951601 31.361952641672623,-93.663698175601809 31.360018811902275,-93.664665092360735 31.357698213179859,-93.665825387974422 31.355184231855155,-93.668439000000006 31.353011999999996,-93.669515978941746 31.350266666374935,-93.673736148309771 31.339509006758242,-93.677277000000004 31.330482999999997,-93.687850999999995 31.309835,-93.686922292404276 31.305369360695714,-93.686880000000002 31.305166,-93.686723586265984 31.304979085312567,-93.684737187533131 31.30260533533086,-93.684038999999999 31.301770999999995,-93.683824154244718 31.301752735987076,-93.675439999999995 31.30104,-93.668927999999994 31.297974999999997,-93.657003999999986 31.281735999999999,-93.647719584117951 31.27389987096868,-93.642516 31.269508000000002,-93.632650200244299 31.270182983909681,-93.620343000000005 31.271025000000002,-93.615257056394739 31.261768439618621,-93.61394199999998 31.259374999999995,-93.614287999999988 31.251631,-93.616308000000004 31.244595000000004,-93.616007481020262 31.233959925788763,-93.613835693061347 31.232449117569455,-93.609977782626956 31.229765355202261,-93.609827614285464 31.229660890324059,-93.608033931702224 31.227867209671889,-93.60740940488401 31.227242683526022,-93.605259887151632 31.224152751460338,-93.604319472818304 31.220794125122111,-93.604319472818304 31.215285983654958,-93.607287999999997 31.205403,-93.602442999999994 31.182541,-93.600307999999998 31.176157999999997,-93.598827999999997 31.174679,-93.595531708436056 31.171774432382691,-93.588772842417583 31.16581877494577,-93.588502999999989 31.165581,-93.588046655571759 31.165671453282986,-93.583339301771971 31.166604510813709,-93.579215000000005 31.167421999999995,-93.578993496784307 31.167654977688123,-93.574136071231791 31.172764031170193,-93.569563000000002 31.177574,-93.560942999999995 31.182481999999997,-93.552649000000002 31.185575,-93.548930999999996 31.186601,-93.535096999999993 31.185614,-93.533756450961803 31.184752004501149,-93.533306999999994 31.184463,-93.5330935917342 31.183965183917415,-93.531744000000003 31.180816999999998,-93.533193520062923 31.174490811082034,-93.53417786817559 31.170194787673282,-93.536829999999981 31.158620000000003,-93.540253000000007 31.156578999999997,-93.544009577425854 31.153014849431809,-93.544887639546317 31.148844041597808,-93.544887639546317 31.143136612291205,-93.544701999999987 31.135888999999999,-93.540277800652078 31.128868068802213,-93.539619249807799 31.121843550568837,-93.541375382556595 31.113501939154769,-93.541635919885238 31.113241401693255,-93.548470239502265 31.106407078590973,-93.549716998224596 31.105160319232844,-93.55112206776522 31.099540038044921,-93.551692642249563 31.097257738879012,-93.551034091405285 31.091111287020031,-93.546643772295099 31.082989189009115,-93.540128999999993 31.078002999999995,-93.53104031045666 31.074698717981779,-93.527873992025093 31.072210897922254,-93.526043656150705 31.070772777782928,-93.524020490083288 31.067083472240864,-93.523009982318626 31.065240780256033,-93.523659621286654 31.063941504256789,-93.525329858273139 31.060601035263321,-93.529255791555698 31.057567354514948,-93.532069000000007 31.055264,-93.531218761655126 31.051678447674814,-93.523247999999995 31.037841999999998,-93.516942620821894 31.032584114108545,-93.516407263768343 31.029550433360171,-93.516883288197775 31.024314186160638,-93.516942620821894 31.023661529978199,-93.539525999999995 31.008497999999999,-93.540062152267268 31.008345085566372,-93.540618575989114 31.008186389569964,-93.555580999999989 31.003918999999996,-93.562626264226125 31.00599480945781,-93.566016847371429 31.004567194682853,-93.567979815741779 31.001533515663564,-93.569764334642755 30.996715319472376,-93.571101253513504 30.991033414001794,-93.571905755076102 30.987614282198351,-93.567971999999997 30.977981,-93.560533000000007 30.971285999999999,-93.55046299120518 30.967360467203815,-93.549841 30.967117999999996,-93.539153617393822 30.956968324013513,-93.532549000000003 30.950695999999997,-93.526524876707626 30.939912016599852,-93.526293050708773 30.939497017171423,-93.526245000000003 30.939411,-93.526242458076936 30.939167805401102,-93.526231146824912 30.938085618677029,-93.526146999999995 30.930035,-93.526269219450654 30.929894609689271,-93.530935999999983 30.924533999999998,-93.542488999999989 30.920064,-93.54502991280485 30.920837107400992,-93.546884259495414 30.92151141825828,-93.549244331161987 30.921005686748707,-93.550358562122057 30.920030731622223,-93.551941554990407 30.918645608548566,-93.555650241837967 30.911228247920597,-93.555751501305451 30.910053639118178,-93.555774257662236 30.909789665608852,-93.556493125509377 30.9014508058257,-93.562447641167196 30.896531852982324,-93.563812214002311 30.895404595987301,-93.564247644832776 30.895044891882932,-93.567787752332634 30.888301832311882,-93.567450600170787 30.878524390216981,-93.566008182600839 30.875519355165832,-93.565853452041281 30.875197,-93.565427680666076 30.874309976760035,-93.563763247930751 30.87311591407202,-93.559394659034922 30.869981891957959,-93.55904186947815 30.86972880101742,-93.558616999999984 30.869423999999999,-93.558608112367665 30.868835818489011,-93.558593354020289 30.867859114376206,-93.558393833586933 30.854654896933653,-93.558352334289978 30.851908482785802,-93.558231866260058 30.843935935637496,-93.558171999999999 30.839973999999998,-93.553625999999994 30.835139999999999,-93.55374115920948 30.832414921630001,-93.554057 30.824940999999995,-93.561666000000002 30.807738999999998,-93.563243 30.806218000000005,-93.564501487304341 30.805543276361082,-93.569303000000005 30.802969,-93.578395 30.802046999999998,-93.584264999999988 30.796662999999995,-93.588934854633479 30.787551489258888,-93.589380999999989 30.786681000000002,-93.589895999999996 30.77776,-93.591925627378814 30.768225181611253,-93.592827999999997 30.763985999999996,-93.607757000000007 30.757656999999995,-93.611581311334461 30.752392350515215,-93.615058988962588 30.747604886281291,-93.619129 30.742001999999996,-93.617688 30.738479000000005,-93.609908791486006 30.729403419430973,-93.609718999999998 30.729181999999998,-93.609544 30.723138999999996,-93.61030547238029 30.720788970554505,-93.611192000000003 30.718053,-93.61618399999999 30.713980000000003,-93.616977218405893 30.712276394979256,-93.620773999999997 30.704122000000005,-93.621061387132315 30.696047232392139,-93.621092999999988 30.695159,-93.62235785978659 30.692974242186811,-93.629903999999996 30.679939999999995,-93.632922525899005 30.677439880221801,-93.638212999999993 30.673057999999997,-93.646373493696458 30.671658473870171,-93.653439445062318 30.670446661945991,-93.654970999999989 30.670183999999999,-93.666219386787546 30.661299653678171,-93.670353999999989 30.658033999999997,-93.670860468306827 30.657347728689221,-93.683099999999996 30.640763000000003,-93.685120999999981 30.625201,-93.684323003112922 30.617258061147268,-93.683396999999985 30.608040999999997,-93.680812614601606 30.602993111696524,-93.680648411741274 30.602453589051585,-93.679828117977763 30.599758343304948,-93.681234543283509 30.596101640780542,-93.683902548646543 30.593069810094963,-93.684328672415049 30.59258557751615,-93.684347894395486 30.592579170189346,-93.687282162286593 30.59160108089231,-93.689533999999995 30.592759,-93.692869000000002 30.594382000000003,-93.712453999999994 30.588479,-93.72107859525056 30.580404159651369,-93.727657631584904 30.574244488790981,-93.727844000000005 30.574069999999995,-93.727840097341868 30.573768021870688,-93.72780696123904 30.571204031383882,-93.727747245613443 30.566583382517752,-93.727745999999996 30.566486999999999,-93.725846999999987 30.556978,-93.728764326223569 30.546403128121515,-93.729195000000004 30.544841999999999,-93.736587760607577 30.541316766984647,-93.740252999999996 30.539569,-93.738909526480768 30.537838512460276,-93.732793 30.529960000000003,-93.727721000000003 30.525671000000003,-93.718711305261792 30.520890798500346,-93.714321999999996 30.518561999999996,-93.710116999999997 30.506399999999996,-93.713193644304937 30.50058809182816,-93.716678000000002 30.494005999999995,-93.71365216083376 30.483878530555742,-93.711446941284677 30.476497671106777,-93.710595424186792 30.473647647388944,-93.709703157003446 30.47066123332699,-93.708899372668625 30.467970970942378,-93.705844999999997 30.457747999999999,-93.697828 30.443837999999996,-93.6978 30.440583,-93.698862234241474 30.438260713588438,-93.702220303997905 30.430919206922557,-93.702664999999996 30.429947000000002,-93.722313999999997 30.420729,-93.729486046484141 30.413342592858086,-93.738025291703323 30.404548123662593,-93.738321805525445 30.404242747530638,-93.745333000000002 30.397022,-93.751243378615428 30.396311282781173,-93.751436999999996 30.396287999999998,-93.754787283332149 30.393127406185759,-93.75746720581121 30.390599218098316,-93.757654000000002 30.390422999999995,-93.757872622462301 30.389610210267922,-93.758470934573069 30.387385818798332,-93.75855399999999 30.387077,-93.758091991038413 30.3842338214119,-93.758032188807945 30.383865801664729,-93.757931393201204 30.383245510859378,-93.75589426835937 30.370709152880856,-93.756044740613035 30.365928314513319,-93.75610723110799 30.3639428524199,-93.756352000000007 30.356166000000002,-93.758519945992674 30.350935458285047,-93.760658351649255 30.34577618769989,-93.763244572034736 30.339536487238696,-93.765822 30.333317999999995,-93.764264999999995 30.330222999999997,-93.760690955159149 30.32995156504764,-93.760328 30.329923999999998,-93.747921244232074 30.314935395431327,-93.743830002049762 30.309992764786195,-93.741160171732417 30.306767342150266,-93.738698999999997 30.303793999999996,-93.734966161369201 30.301561360829975,-93.729390287632427 30.298226388348422,-93.724220000000003 30.295133999999997,-93.718684474451791 30.295009979388311,-93.714319430116035 30.294282471059141,-93.71311219174963 30.293184979315004,-93.711118400234781 30.291372437742464,-93.709949692759622 30.289928741213533,-93.708644873043468 30.288316906143507,-93.708448001046747 30.287627854154977,-93.707590519980414 30.284626670422831,-93.706607851977495 30.281187332412603,-93.706635817233519 30.280914670488997,-93.707189856385114 30.275512775340033,-93.709131999999997 30.271826999999995,-93.707538803456245 30.253087036355307,-93.707271000000006 30.249936999999996,-93.705637767078656 30.244573755694763,-93.705083000000002 30.242751999999996,-93.707646217538425 30.23733474070027,-93.713358999999997 30.225261,-93.71802168481895 30.219915738218987,-93.719219999999993 30.218541999999999,-93.720945999999998 30.209852,-93.717397000000005 30.193439,-93.710467999999992 30.180670999999997,-93.706634735424259 30.17682001000631,-93.705927274531248 30.176109277739844,-93.705791510460429 30.175972885881706,-93.703764000000007 30.173936,-93.703646997347349 30.173527735424756,-93.702964616901454 30.171146663230584,-93.701744610591902 30.166889619937699,-93.701686103512344 30.166685467574972,-93.697748000000004 30.152943999999998,-93.696083741705934 30.150925109485563,-93.688211999999979 30.141376,-93.69286799999999 30.135216999999997,-93.69498 30.135185,-93.698276000000007 30.138608000000005,-93.700984936503929 30.137486558544058,-93.701251999999997 30.137376,-93.7012922571502 30.136537706048752,-93.701585086407604 30.130439981942867,-93.701656556414648 30.128951727699913,-93.701742498922442 30.127162105630983,-93.701985639262489 30.122099077688652,-93.702366286953335 30.114172668214064,-93.702403861450691 30.11339023643033,-93.702436000000006 30.112720999999997,-93.70268530105453 30.112503701678254,-93.704703872918159 30.110744253531749,-93.710410303455276 30.105770356484715,-93.714491639657382 30.10221294069715,-93.723764999999986 30.094129999999996,-93.727140999999989 30.092110594495406,-93.7293848599641 30.090768395691203,-93.72996305770063 30.09042253796256,-93.732484999999997 30.088913999999995,-93.734084999999979 30.086129999999997,-93.731705540540531 30.081478540540548,-93.731605000000002 30.081282000000002,-93.729179922109864 30.079341937687897,-93.727017487667368 30.077611990133899,-93.71640499999998 30.069121999999997,-93.716151269697463 30.069056930886212,-93.707507094464489 30.066840132907302,-93.702179999999998 30.065473999999995,-93.700580000000002 30.063666,-93.699479012508235 30.0595596142199,-93.699395999999993 30.059249999999995,-93.699786698153744 30.05843348475733,-93.700658293446523 30.056611948527472,-93.700819999999993 30.056273999999998,-93.702099264262131 30.055460929156467,-93.703267223154896 30.054718601437116,-93.703940000000003 30.054290999999999,-93.704473210548429 30.054251542735575,-93.709782747672762 30.053858640136632,-93.710785394684464 30.05378444485228,-93.720804999999999 30.053042999999995,-93.729054152595779 30.045230570163486,-93.729990027439044 30.044344241966268,-93.737446000000006 30.037282999999999,-93.739158000000003 30.032626999999998,-93.739733999999999 30.023987000000002,-93.741078000000002 30.021571000000002,-93.744068611359822 30.019549890100706,-93.74834924745744 30.01665695787004,-93.753252045558341 30.013343557169065,-93.766227014667976 30.004574835541469,-93.782835629207284 29.993350429819579,-93.786934999999986 29.990579999999998,-93.789430999999993 29.987812000000002,-93.803328792953494 29.962666096659486,-93.807814999999991 29.954549,-93.813734999999994 29.935126,-93.816550000000007 29.920725999999995,-93.818997999999993 29.914822,-93.830374000000006 29.894358999999998,-93.838374000000002 29.882854999999999,-93.853129483564672 29.866348149842587,-93.854474509531912 29.864843479256791,-93.855140000000006 29.864098999999996,-93.857517787207271 29.862146563102172,-93.862474802662518 29.858076283033213,-93.863569999999996 29.857177,-93.864820388168837 29.856398395289631,-93.872445999999997 29.851650000000003,-93.890679000000006 29.843159000000004,-93.900728 29.836967,-93.911111176241661 29.828996955749506,-93.916359999999997 29.824967999999998,-93.922743999999994 29.818808,-93.927992000000003 29.809640000000002,-93.929208000000003 29.802952,-93.928808000000004 29.79708,-93.926503999999994 29.789559999999998,-93.922407000000007 29.785048,-93.898470000000003 29.771576999999997,-93.893861999999999 29.767289000000002,-93.890820999999988 29.761672999999995,-93.891780610698319 29.758916671398389,-93.892526767476923 29.756773455119472,-93.893828999999997 29.753032999999999,-93.891732576672823 29.744984915009951,-93.891637000000003 29.744618000000003,-93.891484462723341 29.744488863328282,-93.888820999999993 29.742234000000003,-93.873941000000002 29.737770000000005,-93.870019999999997 29.735482,-93.863203999999996 29.724059,-93.837970999999982 29.690618999999998,-93.852868 29.675885,-93.866980999999996 29.673085,-93.889989999999997 29.674012999999999,-93.930999999999997 29.679611999999999,-93.955443390383635 29.680262610936268,-93.955453232202885 29.68026287289646,-93.991585827226885 29.681224615973395,-94.000169999999997 29.681453101326589,-94.000222586816207 29.681454501032487,-94.001406000000003 29.681486,-94.010062765207763 29.679864152681674,-94.056505999999999 29.671163,-94.132576999999984 29.646217,-94.354166823921716 29.561457673765378,-94.370794193562546 29.555097613439198,-94.391123278008692 29.54732162684321,-94.45341877657637 29.523493256060661,-94.456196753642018 29.522430664556182,-94.45805240375158 29.521720868184531,-94.499046371673685 29.506040450016997,-94.499089575343746 29.506023924375612,-94.500455432020999 29.505501476685335,-94.500806999999995 29.505367,-94.552043946167103 29.48495633977835,-94.552044379602123 29.484956167115939,-94.568074121423052 29.478570587212708,-94.593696728539513 29.46836361027578,-94.594852999999986 29.467903,-94.599458690353401 29.465813271763974,-94.62931993394271 29.452264405230761,-94.631084 29.451464,-94.634656044789836 29.449584234717392,-94.661528069434993 29.435443006940758,-94.670389 29.430779999999999,-94.674924987623086 29.427889211977174,-94.680871144138621 29.42409972235215,-94.694158000000002 29.415631999999999,-94.708472999999998 29.403049000000003,-94.723958999999979 29.383268000000005,-94.730956033155138 29.369322304827527,-94.731047000000004 29.369140999999996,-94.731324722869132 29.369141342444962,-94.731537324603394 29.369141604592603,-94.742750849251038 29.369155431380086,-94.744595216508316 29.369157705569055,-94.744833999999997 29.369157999999999,-94.761491000000007 29.361882999999999,-94.772184717669788 29.3616343088914,-94.778690999999995 29.361483,-94.780073439975141 29.362532749099824,-94.782355999999993 29.364266,-94.782645420567292 29.368514320481975,-94.783130999999997 29.375641999999996,-94.766847999999996 29.393488999999999,-94.754099999999994 29.400999999999996,-94.743385419572206 29.410035318862811,-94.73704402931665 29.415382843516582,-94.727822669267709 29.423158969605012,-94.723817999999994 29.426535999999995,-94.716270519001597 29.430976788539081,-94.706539419927282 29.436702374764607,-94.706364999999991 29.436804999999996,-94.686385999999999 29.466508999999995,-94.681540999999996 29.471388999999999,-94.672399999999996 29.476842999999999,-94.665852999999998 29.478401000000002,-94.656737000000007 29.478032999999996,-94.645948000000004 29.473769,-94.628217000000006 29.475986000000002,-94.608557000000005 29.483344999999996,-94.594211 29.492127,-94.595122262498009 29.503650874486677,-94.595439999999996 29.507669,-94.591407000000004 29.513857999999999,-94.580274000000003 29.525295,-94.566674000000006 29.531987999999995,-94.553989999999985 29.529558999999999,-94.546993999999998 29.524379,-94.532347999999999 29.5178,-94.511044999999996 29.519649999999995,-94.495024999999984 29.525030999999998,-94.503428999999997 29.543249999999997,-94.509486999999993 29.542589999999997,-94.523742999999996 29.545987,-94.523871183237745 29.546315590042923,-94.5261306113389 29.55210749848424,-94.526336 29.552633999999998,-94.542531999999994 29.568999999999999,-94.546193009360195 29.571896121601313,-94.546385 29.572047999999995,-94.546803832691651 29.57214903106096,-94.55398799999999 29.573882,-94.570006000000006 29.572232,-94.578210999999982 29.567281,-94.593518000000003 29.561319,-94.625889999999998 29.552807999999999,-94.634988842169335 29.550728838088908,-94.643914431984982 29.54868926579681,-94.666855093063802 29.543447131924982,-94.691625000000002 29.537787000000002,-94.693243673136905 29.537529479678042,-94.718275999999989 29.533546999999995,-94.740699000000006 29.525857999999999,-94.757688999999999 29.524616999999999,-94.768675999999999 29.525659,-94.780938000000006 29.531093000000002,-94.785987568065153 29.540133852805589,-94.789123822994313 29.545749069554745,-94.789562096440733 29.546533763545689,-94.78971899677407 29.546814681200559,-94.790604999999999 29.548400999999998,-94.779438999999996 29.549472000000002,-94.772471009935998 29.548613672580952,-94.771052999999995 29.548438999999995,-94.762972090755014 29.555767305595641,-94.75523699999998 29.562781999999999,-94.750081379755628 29.56810096117977,-94.734626000000006 29.584046,-94.731874420576986 29.588423440241069,-94.724443803393115 29.600244680945409,-94.708741000000003 29.625226,-94.705273448792255 29.640626536822896,-94.703938528752261 29.6465553563269,-94.702680930363101 29.65214076491651,-94.702542126991759 29.652757236398369,-94.699660909360375 29.665553672721437,-94.69780371146922 29.673802100155214,-94.694887994254785 29.686751760487848,-94.693153999999993 29.694452999999999,-94.692434000000006 29.70361,-94.692611750388934 29.704808689927841,-94.695098387970873 29.721577752663908,-94.695317000000003 29.723051999999999,-94.695611486157915 29.72357178078331,-94.697558868014866 29.727008993840069,-94.705700105090941 29.741378628781629,-94.713878412983604 29.755813695314995,-94.714586470042065 29.757063446593907,-94.722078339612551 29.770286919851305,-94.724615999999983 29.774766,-94.735270999999997 29.785433,-94.738125273271791 29.786265833277604,-94.740919000000005 29.787080999999997,-94.749144589762409 29.783534045463153,-94.75591801041729 29.780613280409739,-94.771512 29.773888999999997,-94.792237999999998 29.767432999999997,-94.798897371247961 29.764438558858895,-94.816085 29.756710000000002,-94.81943931055217 29.753325616252695,-94.823987131664666 29.748737021482022,-94.851107999999996 29.721373000000003,-94.856932183541645 29.710462974624775,-94.860426638443812 29.703917062844585,-94.864167858487249 29.696908903620852,-94.865007000000006 29.695336999999999,-94.865123196353878 29.694545038919138,-94.867438000000007 29.678768000000002,-94.872550999999987 29.67125,-94.893107 29.661335999999999,-94.915413 29.656613999999998,-94.921317999999999 29.658177999999999,-94.928410408640929 29.669495826038883,-94.930071799099807 29.672147016790593,-94.930110565443542 29.672208878811933,-94.930656833967475 29.673080595662611,-94.931474856161643 29.67438596783704,-94.934166999999988 29.678681999999998,-94.935264231405057 29.686686879688732,-94.935319060033862 29.687086883348073,-94.935997030967087 29.692033037575822,-94.936088999999996 29.692703999999999,-94.936280063994801 29.692851065945039,-94.941277009519624 29.696697319220664,-94.942680999999993 29.697778,-94.942922907078852 29.697804516058127,-94.95311095436017 29.698921254167477,-94.965343618259496 29.700262107971746,-94.965962999999988 29.70033,-94.972666000000004 29.684869999999997,-94.980123280315652 29.679059463608382,-94.986438191421769 29.674139034277729,-94.988580124776774 29.672470090483102,-95.001800051879343 29.662169436052462,-95.002396227716986 29.661704909944582,-95.005398 29.659365999999995,-95.011683000000005 29.649802000000005,-95.013860566469219 29.644103309100927,-95.014229369455222 29.643138151779844,-95.015636 29.639457,-95.015582911847446 29.639202042718885,-95.014543866006605 29.634211997110764,-95.013498999999996 29.629193999999998,-95.006633444897872 29.623869765921089,-95.00056235200779 29.61916163683599,-95.000370188745762 29.619012614335521,-94.997782627529062 29.617005962082896,-94.997731096758997 29.616965999999998,-94.995478872439179 29.615219401320278,-94.993499353954022 29.613684285860323,-94.988871000000003 29.610095,-94.988045541621688 29.608923290953985,-94.982835617337045 29.60152798723708,-94.982705999999993 29.601344000000005,-94.982886347998431 29.601051719777942,-94.983895794498991 29.599415764569699,-94.98693593300419 29.594488776939745,-94.988992999999994 29.591155,-94.991605757589539 29.588791109774153,-94.991811610459919 29.588604864563266,-94.992208959522046 29.588245363334387,-95.006677600766466 29.575154872369662,-95.007235451984087 29.574650156950938,-95.007670000000005 29.574256999999996,-95.00815781845921 29.573398130166158,-95.016627 29.558487,-95.018253 29.554884999999999,-95.016926355758628 29.548485488141377,-95.015164999999996 29.539988999999998,-95.012091452887788 29.536262245236642,-95.011587670186657 29.535651395780732,-95.011086587278399 29.535043819893005,-95.001666768519442 29.523622047865974,-94.999580999999992 29.521093,-94.989064037839412 29.515168017977793,-94.982063906682782 29.511224326765198,-94.981915999999998 29.511140999999995,-94.981645984265953 29.511070508097891,-94.961088181447877 29.505703566689924,-94.958443000000003 29.505013000000002,-94.958183821928699 29.504969740154092,-94.957844913785792 29.504913172428417,-94.95747910332102 29.504852114391142,-94.955724072517796 29.504559179260749,-94.952845264169682 29.504078672538427,-94.930551536860648 29.500357589179547,-94.927405495678158 29.499832478177321,-94.909464999999997 29.496837999999997,-94.913072085311995 29.488019044482122,-94.913385000000005 29.487254,-94.917178632618899 29.481741136316387,-94.925104227340569 29.470223752399235,-94.925293406029382 29.469948840084836,-94.925914000000006 29.469047,-94.930860999999993 29.450503999999999,-94.923011455799639 29.448810114938265,-94.920334997737442 29.448232551169699,-94.919400999999993 29.448030999999997,-94.916063708203708 29.446327523795176,-94.890799999999984 29.433432,-94.888257132054065 29.420136433311271,-94.887299999999996 29.415132,-94.887087039327696 29.40154064293051,-94.886938304445962 29.392048238229908,-94.886925408340758 29.391225196262944,-94.886904215833582 29.389872669858736,-94.886764190565785 29.380936121184895,-94.886591910643261 29.369941049100753,-94.886536208040312 29.366386054846032,-94.886982892003275 29.364738908620176,-94.888420210858001 29.359438798199445,-94.888544709543254 29.358979709544975,-94.888781730376067 29.358105695694917,-94.894234145274325 29.337999926591962,-94.894147383920654 29.327241695272729,-94.894002695197727 29.309300588032027,-94.893993580875261 29.308170430590454,-94.891329624021282 29.304475264201969,-94.888683946869179 29.30080545353194,-94.886599269217157 29.297913803549264,-94.886536208040312 29.297826331584119,-94.885816422022174 29.297499155955627,-94.884216982863776 29.296772137788121,-94.876917125093229 29.293454018939102,-94.875951551627523 29.293015121686942,-94.86617837453683 29.293883848703121,-94.865126326153927 29.293977364132552,-94.861112574100105 29.294855372432302,-94.849730461009372 29.297345209778594,-94.825607939204673 29.30577638202961,-94.824952733476934 29.30600538596191,-94.823862547308252 29.313200608971236,-94.822547126780194 29.321882377573708,-94.82230657170463 29.344254498409398,-94.810695999999993 29.353434999999998,-94.797913847039041 29.344567105809805,-94.79693012269928 29.343884625840758,-94.784895000000006 29.335535,-94.779995 29.334935000000002,-94.777063999999996 29.336811,-94.773074869484503 29.336485139838025,-94.745528999999991 29.334235,-94.744945 29.33641,-94.731319999999997 29.338066,-94.722529999999992 29.331445999999996,-94.731082 29.331833,-94.769694999999999 29.304936,-94.780304129101268 29.295750693651897,-94.786095000000003 29.290737,-94.793321795438203 29.286014946162535,-94.795651468635626 29.284492716516493,-94.803695000000005 29.279236999999998,-94.809348860129617 29.275904173901317,-94.81020919937113 29.275397022855465,-94.819018398045671 29.270204194137058,-94.82210781776098 29.268383049216432,-94.825036245866656 29.266656805306088,-94.825782574142963 29.266216861214712,-94.826962003659688 29.265521613475173,-94.833188167130103 29.261851427154124,-94.844390135018429 29.255248113651685,-94.870677905110114 29.23975205180561,-94.881596387366812 29.233315846843187,-94.896165027201874 29.224727954332334,-94.925556066041452 29.207402583865772,-94.927613957028456 29.206189502425392,-94.940693735267132 29.198479261054111,-94.968741214129224 29.181945889621023,-94.978383546115566 29.176261947153485,-94.981700088962569 29.174306918145966,-95.026218999999998 29.148064000000002,-95.076832914261459 29.114498139229923,-95.081772999999998 29.111222,-95.084611040272236 29.108948681405003,-95.100241410561338 29.096428488590096,-95.110484 29.088224,-95.116308293211759 29.081343778536318,-95.119264367911811 29.077851775668329,-95.119484217932538 29.077592067446851,-95.122403192505772 29.074143890856067,-95.122524999999996 29.074000000000002,-95.122638295373392 29.073709965581063,-95.125134000000003 29.067321,-95.183550616106302 29.028323983126334,-95.191390999999996 29.023089999999996,-95.192301227546167 29.02243038040822,-95.237672480263356 28.989550945676651,-95.238923999999997 28.988644,-95.240558404572027 28.987315672512366,-95.251568580535192 28.978367386619187,-95.251619678822578 28.978325857575001,-95.272266000000002 28.961545999999995,-95.29656403895315 28.934716691525271,-95.297146999999981 28.934073,-95.309703999999996 28.928262,-95.334686660244515 28.911063042846731,-95.353450999999993 28.898145,-95.376979000000006 28.876159999999999,-95.377903963555724 28.874482723635413,-95.38239 28.866347999999999,-95.416173999999998 28.859482,-95.436326577581042 28.85908617652915,-95.439594 28.859022000000003,-95.449516932572138 28.854239851149391,-95.480746000949352 28.839189657836059,-95.485144835951402 28.837069731735976,-95.486768999999995 28.836286999999995,-95.506945757563287 28.824808612805594,-95.536465934189138 28.808014833314715,-95.564052739104355 28.79232093268277,-95.564094788066555 28.792297011382839,-95.564132228771385 28.792275711681647,-95.568135999999981 28.789997999999997,-95.576201168007842 28.785870627961152,-95.606319447682353 28.770457515020929,-95.613122366343802 28.766976102576891,-95.695711236705606 28.724711019702028,-95.715243498124195 28.714715330888584,-95.812504000000004 28.664942,-95.854124934570734 28.646410960033691,-95.884026000000006 28.633098,-95.920915435374582 28.618912188118028,-95.97832748198536 28.596834417485056,-96.000681999999983 28.588238,-96.000998496292368 28.588108377001081,-96.024040703743012 28.578671299526803,-96.035336417502748 28.574045070633311,-96.05294532761279 28.566833233429691,-96.077867999999995 28.556625999999998,-96.194412 28.502223999999998,-96.220123346321373 28.492065891861738,-96.220376184174313 28.491966,-96.226882700448613 28.487451845000788,-96.241923733725443 28.477016528665938,-96.244750999999994 28.475055,-96.270391000000004 28.461929999999999,-96.303212000000002 28.441870999999999,-96.321560000000005 28.425148,-96.328817 28.423658999999997,-96.341616999999999 28.417333999999997,-96.371116999999998 28.397660999999999,-96.372100999999986 28.393874999999998,-96.370716999999985 28.387667,-96.378616389014681 28.383909329746462,-96.379349732835649 28.386024690464755,-96.381702691108558 28.392811896356477,-96.381863685354148 28.393276290946375,-96.375880899310658 28.401794149460329,-96.37413840285555 28.404274990018202,-96.340801887331921 28.432913073072363,-96.338559687910475 28.434839257985413,-96.335119195902806 28.437794848703732,-96.312964581561445 28.451131053409146,-96.280819757359396 28.470480970729877,-96.274497619264608 28.474286648703266,-96.268341347214189 28.477992481854848,-96.252027698910211 28.484249764669329,-96.250247000000002 28.484932771712327,-96.223824788704931 28.495067307260509,-96.218978121459415 28.500382701101032,-96.21505000939203 28.509679222336811,-96.145447855080619 28.544740658174199,-96.10473518795402 28.559498996555909,-96.046210731424992 28.586980036018211,-96.032979113622659 28.589015683181284,-96.007533711461477 28.59970275682273,-95.986159544454679 28.60631857558586,-95.982088289576367 28.614461085342473,-95.98565064745685 28.621076904105603,-95.983106103295938 28.641942154390655,-95.97852589224803 28.650593590730978,-95.986065974637228 28.655467849280154,-95.996337701374344 28.658736120211515,-96.002953500413568 28.656191585912577,-96.006515878017979 28.648049056432036,-96.010005951759737 28.648641710656278,-96.010506546843942 28.648726717396318,-96.011440067305529 28.648885239790378,-96.014343010193883 28.649378192516537,-96.026200716522851 28.65139176594381,-96.03348799089656 28.652629228032097,-96.039323368019012 28.651170385770797,-96.047737442142406 28.649066870151618,-96.049244844336243 28.648218956037223,-96.052682972641108 28.646285007998213,-96.05836686193534 28.643087818836001,-96.072165030584017 28.635326345489485,-96.092812363862251 28.627145317384699,-96.098878916233431 28.624741586366319,-96.099137163186526 28.624639261986079,-96.099760206508392 28.62447226081035,-96.102639895829256 28.623700385909448,-96.141413249033207 28.613307536255487,-96.148501276515404 28.611407654045699,-96.187178316202875 28.593595864643298,-96.198374286842139 28.586980055742131,-96.221784081288092 28.580364246840958,-96.228908787187095 28.580873158631725,-96.233997875508891 28.596649310733014,-96.233997875508891 28.601738394123839,-96.222292978285921 28.607336389305434,-96.214150448805384 28.613443281484855,-96.212623728226021 28.62260364440889,-96.2309444244882 28.64143324753087,-96.208552463485731 28.662298487953962,-96.214659365527126 28.665351929112688,-96.192267404524671 28.68774389011514,-96.1912495908051 28.694359708878277,-96.195829762405154 28.698939880478335,-96.202445561444364 28.700975507917487,-96.208747675276499 28.700187749031503,-96.21684000834783 28.699176214258408,-96.221467818495611 28.69859774191346,-96.222801895007663 28.698430983480506,-96.223384071149837 28.698294,-96.224163927167865 28.698110503315906,-96.227000018566372 28.697443183508955,-96.229623268039219 28.696825944469072,-96.231453341209956 28.69639533631743,-96.233964222112746 28.695240331316239,-96.23422531976 28.695120226420762,-96.234426397558138 28.695027730650764,-96.243315632596989 28.690938683290845,-96.256898753233088 28.684690448956413,-96.263514562134276 28.683672635236839,-96.268603640594122 28.688761723558645,-96.287942160437836 28.68316371851509,-96.304227224329892 28.671458831154069,-96.305245042980445 28.660262850652849,-96.303866760710434 28.646480081370939,-96.303718312539132 28.644995605411349,-96.322902111893882 28.641863561491792,-96.322903115546453 28.641863397630402,-96.328654788116609 28.640924350533034,-96.373438710121519 28.626674919011112,-96.376492171004159 28.620059100247982,-96.384634680760783 28.615987845369677,-96.473693647496702 28.573239550803915,-96.48794308888057 28.569677192923439,-96.482854000558774 28.580364266564878,-96.480309456397848 28.596649335387912,-96.485907441717487 28.60784531588914,-96.490487633041468 28.610898766909834,-96.510843966604781 28.614970031650095,-96.510335069606953 28.617514575811001,-96.497612348802434 28.625148188569788,-96.496594535082863 28.630746183751381,-96.49964797624159 28.635835272073191,-96.506263795004728 28.638379806372129,-96.513590449607946 28.639711925390898,-96.518002756430107 28.640514162994929,-96.524548246905439 28.641704252172264,-96.541744210187403 28.644830790950802,-96.545449731689985 28.645504522133091,-96.555118991611849 28.64601343885484,-96.5632615210924 28.64448670841351,-96.564664053901609 28.647882315216158,-96.572092291837293 28.665866475800886,-96.572930781014264 28.667896502859467,-96.570386236853366 28.674003385176928,-96.559190266214102 28.687235002979271,-96.559699163211917 28.6913062775815,-96.561225893653244 28.696395346179383,-96.566823878972883 28.697922096344637,-96.575158129308363 28.702846874961025,-96.578019859474111 28.704537895383844,-96.57828826199534 28.705826226653553,-96.579938546079447 28.713747585140421,-96.580564403635009 28.716751699466613,-96.584126761515478 28.722858581784067,-96.584439828543964 28.722940967911413,-96.591359183115401 28.724761852179114,-96.593796021437342 28.725403125944972,-96.611342043876562 28.720366765465901,-96.616906294097589 28.718769618875786,-96.625254999999996 28.716373230030175,-96.632357663078409 28.714334501780041,-96.638120426114043 28.71268037463507,-96.643733366943522 28.711069252030907,-96.64589364157122 28.710449172933409,-96.648758110223909 28.709626963981723,-96.65548660082564 28.704200766225345,-96.664534272187169 28.696904262901135,-96.657918463285995 28.687743919701024,-96.642136214348383 28.67476740345478,-96.635017595423747 28.668914316579048,-96.634564255386636 28.662567599984854,-96.634358790297441 28.659691108644115,-96.634304719917793 28.658934128568227,-96.633999771842213 28.654664885057134,-96.627892869800831 28.650084693733149,-96.626425176648581 28.649921620227584,-96.623312698200763 28.64957579673532,-96.621378075676532 28.648286046719594,-96.615940371111847 28.64466090565978,-96.615679075580019 28.64448670841351,-96.614055987266909 28.642701311583636,-96.613585709918453 28.642184006591457,-96.613038272810982 28.641581825879328,-96.612716570908134 28.641227953848528,-96.611999586497333 28.640439271135588,-96.610589997120172 28.638888723093881,-96.610589997120172 28.638695619081329,-96.610589997120172 28.63634418879494,-96.61975034032028 28.62769274259265,-96.620390401117646 28.626519297452973,-96.620672695530928 28.626001757543317,-96.621575870071126 28.624345937066781,-96.622336527533278 28.62295139797671,-96.622803791340985 28.622094747411062,-96.621924089240224 28.619379144726071,-96.621515564809087 28.618118047314677,-96.621338841511317 28.617572510068054,-96.620571817957583 28.61520474122884,-96.620437729127232 28.614790814755992,-96.617253050911174 28.604959849584038,-96.615239196090883 28.598743166058551,-96.614649885719274 28.596923990196654,-96.613008078443599 28.591855801497097,-96.611528402529856 28.587288105363601,-96.611113505533794 28.586007336117376,-96.611098903979951 28.585962261746474,-96.608298572876635 28.583628658523324,-96.608045443097311 28.583417717585569,-96.607377235577218 28.583437664220053,-96.600365219155734 28.58364697962633,-96.593251058093557 28.583859344147964,-96.573948594733835 28.584435541167107,-96.565297148531556 28.582399903865994,-96.564279334811971 28.57629300182461,-96.563658896232639 28.575155527088082,-96.562968608029692 28.573889994257026,-96.561225893653244 28.570695006643017,-96.557566061723506 28.569051817003789,-96.543745727976315 28.562846769979732,-96.536289388489891 28.559499026141786,-96.535271536438941 28.559346348925885,-96.526111211846271 28.557972305562419,-96.524846286909124 28.55686549700842,-96.523547686998668 28.555729222873186,-96.522039937244045 28.554409942750958,-96.516783301381025 28.541093122164042,-96.514406314623301 28.535071417976255,-96.512075206364955 28.532603188828926,-96.505754868421008 28.525911074776143,-96.496773944100411 28.520225902118948,-96.493684489370622 28.518270192113103,-96.482894459981281 28.511439806078794,-96.464303363514816 28.49967112954555,-96.450283853050735 28.49079639296917,-96.41974938229167 28.46738661824714,-96.410828816467941 28.459457253614527,-96.410588999643707 28.459244083835621,-96.409758652296418 28.458206146634446,-96.408886828651134 28.457116363910039,-96.40506625078595 28.452340627696451,-96.402446489887097 28.449065917053971,-96.402758256176753 28.447714917044181,-96.403973200604497 28.442450108152798,-96.407195206365273 28.441281062045864,-96.417343901660857 28.437598792799108,-96.461479843413926 28.421584870195201,-96.476120924474287 28.411702150055138,-96.481836236149007 28.407844318412668,-96.504737094149291 28.397666161492985,-96.511137484289378 28.396220910815867,-96.520513236388609 28.394103803612502,-96.534249520963641 28.388796609353736,-96.542905217114992 28.385452367272176,-96.559699173073881 28.377818734789468,-96.57038624671533 28.368658381727396,-96.577905378446388 28.364719789411506,-96.5917603939982 28.357462401226169,-96.600411840200493 28.354408960067438,-96.650793747525029 28.34677533744669,-96.672676831253582 28.335579347083499,-96.688452973492915 28.347284234444516,-96.694559875534281 28.347284234444516,-96.698122233414779 28.342704062844462,-96.705246949175717 28.348810964885843,-96.700157860853906 28.369676195446971,-96.705755865897487 28.400210705653887,-96.710336037497541 28.406826524417021,-96.710425531143088 28.406841439843959,-96.711757514930511 28.407063434453107,-96.711949596522956 28.407095447664108,-96.71209813364915 28.407120203551969,-96.7125191933293 28.40719037931537,-96.712878460543081 28.407250256459115,-96.722549831718325 28.408862132132249,-96.749013067323034 28.408862132132249,-96.762244685125353 28.411915593014903,-96.76554491144303 28.411090543097366,-96.768351577304784 28.410388882297497,-96.775985199925543 28.405808690973519,-96.777118787058129 28.404067826336821,-96.778115367638478 28.402537364460464,-96.780337941159374 28.399124129135416,-96.780820705165937 28.398382742114745,-96.790234641309425 28.383925636830853,-96.794392274787313 28.366371177405831,-96.794814812909479 28.364587126849088,-96.794810066932399 28.364444747076842,-96.79477772408616 28.363474458555832,-96.794305906049686 28.349319871745632,-96.794064195689629 28.347593374049037,-96.792754716842737 28.338239980125699,-96.790743538307225 28.323874459722486,-96.791161640090152 28.319066463411133,-96.791737095961722 28.312448960638157,-96.791761391474679 28.312169572361466,-96.791798306096766 28.312130020933203,-96.806010803272656 28.29690232711997,-96.809573161153153 28.290286508356836,-96.806010803272656 28.282143978876302,-96.799480493673911 28.2729662335258,-96.799349781293685 28.272782529381054,-96.787181219874626 28.255680743271615,-96.787181219874626 28.250082757951983,-96.800412817953031 28.224128419345121,-96.810027933605966 28.21709297064087,-96.81015126416365 28.217002728792142,-96.823379937963566 28.207323213817581,-96.836184503007971 28.197954022244446,-96.84100213695676 28.194428925121734,-96.842143298799229 28.193593928862132,-96.847274602334139 28.190686192954498,-96.857267971405633 28.185023289193378,-96.872677809006134 28.176291056181483,-96.877474270970822 28.171878306563691,-96.886067200578026 28.1639728030657,-96.898123211167331 28.152881261735526,-96.906497631141988 28.149042991548708,-96.910337015250093 28.147283276415891,-96.926704620510804 28.131597659113019,-96.934764623415617 28.123873491831901,-96.962356663895278 28.123371819605953,-96.962754569737697 28.123364584972112,-96.979717515560068 28.129783000626698,-96.995398793779131 28.135716460690723,-97.000413785843605 28.137614026355994,-97.007520616950742 28.136091128354632,-97.007538501604586 28.136087295914667,-97.009222611239821 28.135094102666635,-97.00939982996681 28.134989589017771,-97.027385928308092 28.12438239869169,-97.028912648887456 28.117257682930727,-97.025203084589847 28.111384210119862,-97.023365428929196 28.108474590635566,-97.022805746846075 28.107588427939849,-97.02290356380766 28.107197159145706,-97.023379876854563 28.105291902342927,-97.02382356056566 28.10351716319958,-97.025496807419856 28.101530180660298,-97.031966099908146 28.09384788848477,-97.033883146887263 28.088918342142531,-97.035528457788629 28.084687545284659,-97.035528457788629 28.083043098067591,-97.035528457788629 28.081818766572983,-97.035528457788629 28.074000471643224,-97.033022532693735 28.061470870449408,-97.032801767679686 28.060367047518316,-97.031459273912688 28.053654591691117,-97.031457183186404 28.053644138079921,-97.025859197866765 28.041939250718904,-97.030948266464648 28.033287814378582,-97.03239348781301 28.032603236465789,-97.040617526386512 28.028707642778524,-97.041168915404441 28.028259640036232,-97.046718327422383 28.023750751173218,-97.048760075590963 28.022091833877354,-97.050263648357429 28.019142519014494,-97.059727497080047 28.000578821719444,-97.061991693393324 27.99613751499442,-97.06790259446116 27.99219690579767,-97.073772658186698 27.988283521554418,-97.075732208193486 27.986977152070377,-97.083740513918784 27.975854507337193,-97.090858162154831 27.965968886660271,-97.094600599978094 27.960771057335059,-97.101378519421061 27.951357282114685,-97.101544336287489 27.951126980954953,-97.101629253046639 27.951009041034034,-97.112670327945679 27.935674217691009,-97.118292397880069 27.927865788706086,-97.121533983365822 27.923363587495643,-97.122089895488358 27.923104160785101,-97.123659587861624 27.92237163470331,-97.129167576400675 27.91980122961516,-97.134800331352182 27.902469771509406,-97.13578341488774 27.899444915775788,-97.139044920333077 27.897526377912126,-97.141761509630356 27.895928379836029,-97.144434841366106 27.894355827453982,-97.155121915007527 27.880615312653809,-97.156735458496229 27.877916799393841,-97.171211094589736 27.85370753808861,-97.17159000749372 27.853073838716419,-97.18273536107327 27.834434189625789,-97.184638591770963 27.831251199324921,-97.187183135931861 27.824126483563962,-97.18941247112663 27.823657146727278,-97.196852395853725 27.822090836400886,-97.201135366472329 27.822090836400886,-97.208766105658313 27.822090836400886,-97.209575096934316 27.822090836400886,-97.21103842611052 27.822356897891609,-97.21191517248603 27.822516307306422,-97.214117494684729 27.822916731993345,-97.215541825234411 27.823175702780983,-97.217387510601711 27.823511284007832,-97.220771087297493 27.824126483563962,-97.222189700736266 27.82464074101355,-97.223091414240102 27.824967618564596,-97.225175600069406 27.825723150734085,-97.225442194074731 27.826156365185522,-97.225555528799433 27.826340533769983,-97.225696025109201 27.826568839847944,-97.22598639723725 27.82704069367685,-97.227317456819009 27.829203661466853,-97.227317456819009 27.832884543697009,-97.227317456819009 27.832951908184537,-97.22711696094737 27.834288541284948,-97.22651425924083 27.838306534493725,-97.227537582741903 27.841230302974814,-97.228388390382094 27.843661171179477,-97.233100025453197 27.847817700825228,-97.234045759551762 27.848652012430087,-97.234511621821596 27.849062988727319,-97.238500481248579 27.854279199579018,-97.239439164419366 27.855506710708827,-97.241127420860792 27.857714434929608,-97.24139627838295 27.858969111470945,-97.242350826195675 27.863423696705052,-97.242654131578206 27.86483913096664,-97.243132066142749 27.865496290124597,-97.244364366034702 27.867190700237273,-97.250796680782656 27.876035121329831,-97.263010484865433 27.88010639593206,-97.267085449659064 27.88068852838779,-97.272090543185925 27.881403535150675,-97.273697558506882 27.881633106649463,-97.276628649874411 27.881144591421538,-97.283916343274228 27.879929975854907,-97.291452123510041 27.878674012482271,-97.291709327200167 27.878631145200583,-97.295071705789752 27.87807074876898,-97.29826066531912 27.876989746639367,-97.302276298241679 27.875628516526195,-97.30641171632756 27.874226681314273,-97.315889353880934 27.871013926092836,-97.325097299274915 27.867892591849294,-97.326845878314657 27.866807265961079,-97.334190606350404 27.862248465187459,-97.346213303335873 27.854786094892546,-97.354613966176373 27.849571885725148,-97.359768343966266 27.850509060182219,-97.360211961357962 27.850589719168646,-97.360654441244435 27.850290746360063,-97.363614400263117 27.848290774636723,-97.376904444631478 27.839311017562139,-97.379041564479934 27.837867018088055,-97.379057154646048 27.837837708581311,-97.379081675001302 27.837791610322164,-97.37968928125764 27.836649310776913,-97.391764280353456 27.813948316782309,-97.391812130016405 27.812975373996721,-97.391812459346511 27.812968677620422,-97.39203202611381 27.808504155006624,-97.392068018906713 27.807772301822137,-97.392095751995882 27.807208395884746,-97.393123788240075 27.786304999999999,-97.393168763213623 27.785390509210199,-97.393291005863816 27.782904909577571,-97.393142269808052 27.782564941361908,-97.39298939956177 27.782215523565412,-97.390949955785928 27.777553936582201,-97.390465068726371 27.776445623015572,-97.390185233729682 27.775805999999999,-97.389524844304646 27.774296538065283,-97.38835420640342 27.771620793596586,-97.388306220610531 27.771511111755789,-97.388011229692253 27.770836846624743,-97.38704242749894 27.768622441036733,-97.386166290102864 27.766619840754537,-97.385225495384532 27.765302728148875,-97.378862356737287 27.756394334042721,-97.375764970087644 27.752057992733249,-97.373069654276961 27.748284550598278,-97.368354500700462 27.741683335591173,-97.365855345900911 27.739779218033028,-97.354970329043653 27.731485873530172,-97.352272255056832 27.729430198526604,-97.34997871774064 27.727682741876539,-97.347507961666906 27.725800261438444,-97.346980343555629 27.725398266768138,-97.343485766084669 27.723942192633796,-97.323096068004702 27.715446484002907,-97.316445853072636 27.712675560756566,-97.312489136070184 27.711663774861414,-97.307771479065892 27.710457406346261,-97.30518751069485 27.709796650788128,-97.285725857752936 27.704820043684109,-97.259850586867117 27.698203387982087,-97.253955150197811 27.696695845323848,-97.254014647303208 27.696526337654994,-97.255455364792269 27.692421723465429,-97.259957004258851 27.67959652118169,-97.261636792970123 27.679316557300702,-97.26241778482418 27.679186392412099,-97.266063906300232 27.678578707462119,-97.266172011465457 27.678349884642419,-97.272736281666539 27.664455499360063,-97.273042341106247 27.663807672923248,-97.273584380560237 27.662660354976065,-97.276535709391737 27.656413369610792,-97.277059923980644 27.655303780997631,-97.278846463786479 27.651522268106756,-97.280071982275985 27.648928251476995,-97.280889132874719 27.647198614380269,-97.282300269490932 27.644211705671331,-97.282869528026779 27.64300677394548,-97.287959956150573 27.632232024058997,-97.288756326795195 27.630546371240786,-97.290370933329072 27.627128784125372,-97.290610159422798 27.626622421740255,-97.291264204229464 27.625238025568656,-97.291996439564016 27.623688125953898,-97.292910903535031 27.621752508687905,-97.293983233844585 27.619482740684056,-97.29528946695001 27.616717877953022,-97.296598377059297 27.613947348891728,-97.297587499071795 27.609496333379006,-97.298634024222366 27.60478700569162,-97.29761621050281 27.598680093788271,-97.294053852622326 27.594099922188217,-97.294182769084571 27.593971005725969,-97.300049926927869 27.588103847882682,-97.302196382102863 27.585957392707677,-97.311120578488044 27.579146819865922,-97.321534901946578 27.571199044464009,-97.325080504595888 27.561034984604785,-97.336802147188081 27.527432946040641,-97.343417965951204 27.517763686118776,-97.347489240553443 27.503005347737066,-97.350542661988243 27.478577729709574,-97.359194108190536 27.458221396146271,-97.365809926953673 27.450587783387487,-97.371916828995055 27.425142361502377,-97.369881181831957 27.412419660421783,-97.372934622990698 27.401223670058592,-97.379550422029908 27.390027689557368,-97.399397858595393 27.344734850830708,-97.401942402756291 27.335574497768633,-97.404995863638931 27.329976512448997,-97.413138393119482 27.321325066246711,-97.42026310888042 27.317253791644482,-97.430441285524054 27.313691423902039,-97.450797599363412 27.313691423902039,-97.482858840011673 27.297915271800758,-97.508304242172855 27.275014394076553,-97.532222933616623 27.278576761818989,-97.544436737699399 27.284174747138625,-97.546981281860297 27.290790556039799,-97.536803105216677 27.289263825598471,-97.526624948296998 27.291808369759369,-97.524589320857856 27.297915271800758,-97.51746460509689 27.305039987561717,-97.504741884292372 27.305039987561717,-97.498126085253162 27.308602345442196,-97.502706237129289 27.322342870104325,-97.499143898972747 27.327940855423961,-97.483876634007316 27.33862793892736,-97.483876634007316 27.351350640007954,-97.486930094889971 27.358984272490666,-97.501688443133645 27.366617904973374,-97.514411144214236 27.361528796927644,-97.520518046255617 27.352877370449281,-97.538329835658018 27.335574478044709,-97.570899973304094 27.315727061203152,-97.584131581244463 27.309620159161771,-97.609068086407831 27.285192570720163,-97.621790807212349 27.287228188297352,-97.63146005727225 27.286210384439741,-97.63654914066305 27.282139109837512,-97.636657939024673 27.281797172172649,-97.640111498543547 27.270943129336285,-97.639093679892994 27.253131339933887,-97.635022415152719 27.247024437892502,-97.628915513111338 27.242953173152234,-97.597363199046811 27.242444266292445,-97.5826048606651 27.240408628991332,-97.573953414462821 27.238881903480983,-97.56123071338223 27.232775006370584,-97.542910007258072 27.229212648490105,-97.520009129533875 27.231248285791217,-97.509830972614182 27.235319550531486,-97.503215153851045 27.23989972213154,-97.500161712692318 27.244479898662579,-97.485148876501881 27.25084127385778,-97.467082638600573 27.253640266517596,-97.45843119239828 27.259492710198106,-97.450288657986775 27.262546171080761,-97.424079880742951 27.264072891660124,-97.422298701802717 27.257711541119829,-97.434766954384401 27.202240525749552,-97.444945121166043 27.144733882940127,-97.443672849085587 27.116235010034327,-97.452324285425917 27.115217201245734,-97.455886653168363 27.110382571284802,-97.456650008527049 27.09969549764336,-97.46173908698691 27.095624227972113,-97.475479621510999 27.098423220631929,-97.480568699970846 27.102494490303176,-97.491510231973166 27.101222218222723,-97.495835955074313 27.09409750739275,-97.4932914109134 27.078066891999608,-97.477515248950155 27.066107546277717,-97.479041969529504 27.06279964182713,-97.482256963728076 27.061942305056665,-97.48693005051112 27.057710553505324,-97.487693415731783 27.053639288765055,-97.486675602012198 27.034809685643079,-97.477515248950141 27.032519589981089,-97.473952881207694 27.029211690461484,-97.473443984209865 27.022850330059228,-97.478300083716704 27.000269498406993,-97.478533072531675 26.999186101907302,-97.480568690108868 26.997659376396957,-97.483967678435022 27.000330000000002,-97.484131057851314 27.000458369056773,-97.492988547644813 27.000330000000002,-97.49889841702128 27.000244349959733,-97.533497176854453 26.999742920066073,-97.536803065768822 26.999695008767091,-97.549271318350492 26.995878197456715,-97.555378215460905 26.990280207206101,-97.551052502221722 26.980865400714134,-97.549525776711377 26.965343697111763,-97.552324769371197 26.95211208177491,-97.555378205598956 26.947277449348487,-97.555378205598956 26.938880461507075,-97.540874325578116 26.906310323861007,-97.540110950495503 26.900966796902246,-97.547999041339082 26.895114353221743,-97.552324764440229 26.888498544320569,-97.552324764440229 26.875332999999998,-97.552324764440229 26.873831771434514,-97.552324764440229 26.871753101924,-97.552324764440229 26.867633303897481,-97.555396527456509 26.865969429990074,-97.558431656619632 26.864325399446898,-97.558453748966258 26.864224239771101,-97.559853702000524 26.857813929560987,-97.562641307980527 26.845049630589628,-97.563266286580571 26.842187886943357,-97.552579212939136 26.827938454188693,-97.547744582978211 26.824630549738107,-97.537566416196555 26.824885004400745,-97.509830908511418 26.8035108521869,-97.48438549155729 26.763561555211936,-97.478024141017002 26.757200199740662,-97.471662790476714 26.758726925251008,-97.468609339456009 26.740915130917632,-97.467337057513589 26.710126182073765,-97.444945096511148 26.633535472850511,-97.445708451869848 26.609362327976836,-97.441206258760758 26.5999011976768,-97.435205432977895 26.587290766879221,-97.432741093635642 26.582112082834445,-97.429217375703914 26.574707168454967,-97.428151110966368 26.572466467229631,-97.418145193925739 26.555638334425574,-97.416955130465126 26.553636864107652,-97.41864075483771 26.543121778291471,-97.42039414733226 26.532183948458435,-97.422284917775215 26.520389141863415,-97.422298667285844 26.520303371102887,-97.425861015304378 26.516741008291426,-97.430695645265303 26.506562841509776,-97.430695645265303 26.494603495787885,-97.42802638225659 26.488322868889494,-97.42636993202612 26.484425333937217,-97.429168909893022 26.478063961207511,-97.43553026043331 26.470175880225888,-97.441382709044788 26.466613522345408,-97.441382709044788 26.455417541844177,-97.43756589773443 26.449819546662585,-97.425861005442428 26.446002740283195,-97.421026375481503 26.446766095641895,-97.417209564171131 26.449819546662585,-97.411611568989528 26.447275002501684,-97.412883841069984 26.433025580841726,-97.421789740702152 26.417249413947498,-97.419499649971158 26.413178149207234,-97.406013578738921 26.409106884466965,-97.398125502688274 26.410888063407203,-97.394308686446919 26.414450416356704,-97.395072051667569 26.417249413947498,-97.382484933201752 26.411326066613285,-97.377769169124974 26.409106884466965,-97.369626639644437 26.394602999515151,-97.374461259743413 26.38086247238753,-97.388965149626202 26.365849678110436,-97.392018610508856 26.339386444971247,-97.391000786927322 26.332261729210284,-97.38794734576858 26.330480545339064,-97.376242448545611 26.336332993950553,-97.372171183805335 26.339895346900054,-97.36937219114553 26.348546788171358,-97.358176200782339 26.356434874083959,-97.343417852538664 26.35923386920927,-97.342332537534404 26.358759043566288,-97.335275323058127 26.355671510096041,-97.335020017473738 26.355402767481841,-97.331108052904881 26.351284911668415,-97.330440693097202 26.350582427937965,-97.333762617526986 26.340749518544904,-97.336802038706509 26.331752819885011,-97.343786761143846 26.325987658774913,-97.344677525679145 26.325252425399061,-97.352414066956698 26.31886671611711,-97.352832659030639 26.318521211944631,-97.354359379610003 26.313941040344577,-97.348998828460125 26.312092573442666,-97.347821984790102 26.311686765063648,-97.346980205488165 26.311396496183672,-97.34736083223585 26.297503848546928,-97.347437236753805 26.2947151295396,-97.347489122209922 26.292821341560611,-97.347051378510429 26.289694600417153,-97.344137846000223 26.268883651035111,-97.343926764329439 26.267375924606483,-97.342629246748771 26.266550231912309,-97.341127771669619 26.265594748131736,-97.335282658907644 26.265594748131736,-97.331967408745584 26.265594748131736,-97.330307576264516 26.266747410222209,-97.323817586106017 26.271254350355399,-97.322807065545476 26.271956101137519,-97.313207351206557 26.273518846137112,-97.312102101648151 26.273698770576502,-97.311865543405119 26.273737280077761,-97.307030913444194 26.253126493084562,-97.308048727163751 26.249055213551365,-97.321280340035131 26.236078054109896,-97.321280340035131 26.228698889850026,-97.304486359421333 26.202490107675235,-97.296598288301666 26.200708923804015,-97.294817109361432 26.192311940893585,-97.296089381441874 26.182388227541828,-97.303096384204423 26.167373221160254,-97.305986772892751 26.161179530923267,-97.306776455083323 26.159487354748606,-97.300965235160419 26.149753561518516,-97.296881711355638 26.142913659244432,-97.296598288301666 26.14243892563589,-97.285549237329036 26.12861437636975,-97.28536038956149 26.128378090441405,-97.284582435540926 26.126454238998875,-97.282094393487881 26.120301403270393,-97.282839179410786 26.118439442973433,-97.28311220967295 26.117756868971455,-97.285501587752023 26.116923364107649,-97.294053737977038 26.113940052730097,-97.295071554162092 26.108342057548505,-97.292023254217796 26.105090538920617,-97.291924538345086 26.104985242032239,-97.291541272704407 26.104576425513905,-97.287190793518263 26.099935916255493,-97.286650074642992 26.099359149688052,-97.286603231473521 26.09930918366079,-97.283195451762182 26.095674220102872,-97.282639002190891 26.095080674133143,-97.282108002623801 26.094514274823585,-97.280435495761154 26.092730268223651,-97.279905974795895 26.09216544608875,-97.27980430522237 26.092056998587434,-97.27089841052117 26.086459003405839,-97.267086875013263 26.085485845069449,-97.24859983335169 26.080765747704277,-97.246979719077387 26.080352101364454,-97.229515030031649 26.08000965739204,-97.220290685310772 26.079828788368793,-97.208048240752987 26.079588741074772,-97.205005053278043 26.078666562185607,-97.199651252911579 26.077044196913871,-97.199152512570265 26.073220535461079,-97.199134106850465 26.073079425477676,-97.198725011196004 26.069943037351702,-97.198302051934135 26.066700361972018,-97.196018989165054 26.049196947106083,-97.195939794821285 26.0485897927724,-97.195071061587612 26.04192952989985,-97.204994779870347 26.030224637607851,-97.214918488291119 26.030733549398622,-97.224842206573854 26.027425644948035,-97.226114478654296 26.024372193927345,-97.219244211392265 25.99612778184791,-97.216954125592238 25.993837693582392,-97.208557137750816 25.991802058746771,-97.195834416946283 25.993074335758202,-97.174460269663413 26.000071824804216,-97.167208324722026 26.007069313850227,-97.162755377371425 26.014575709756024,-97.16262814819099 26.023481604457221,-97.172042954682937 26.044728528107019,-97.178658763584124 26.045491893327686,-97.182730028324386 26.053125515948434,-97.164981847348457 26.063876207878327,-97.152009000000007 26.062107999999998,-97.152012551274964 26.062039393270581,-97.15321 26.038906,-97.151921999999999 26.017652999999999,-97.14747181118706 25.985075937251509,-97.145567 25.971132,-97.146880999999993 25.969781,-97.146293999999997 25.955606,-97.147784999999985 25.953132,-97.156608000000006 25.949021999999999,-97.160293999999993 25.950243,-97.168198638692317 25.959262149012673,-97.178362000000007 25.962114,-97.187583000000004 25.958174,-97.206945000000005 25.960899,-97.214339285966162 25.960186817526893,-97.227626420907342 25.958907063854085,-97.229225999999997 25.958753000000002,-97.239867000000004 25.954974,-97.244841570811701 25.950784663302475,-97.248032999999992 25.948097,-97.255343503388133 25.949129556975723,-97.276707000000002 25.952147,-97.28138899999999 25.948036999999996,-97.277163000000002 25.935438,-97.284201820237172 25.935775045516863,-97.290083634347766 25.936056689174489,-97.293963761326751 25.936242484429805,-97.303601999999998 25.936703999999999,-97.316138101068788 25.931602038234757,-97.320560999999984 25.929801999999999,-97.324914000000007 25.924040999999999,-97.332235861490744 25.923541683060932,-97.33463605770983 25.923378000829199,-97.338346 25.923124999999999,-97.339310160867683 25.923294280152341,-97.350397999999998 25.925241,-97.367642000000004 25.915679999999998,-97.369283543255307 25.913688286645449,-97.373641276386991 25.908400972256459,-97.374430000000004 25.907443999999998,-97.372365000000002 25.905015999999996,-97.365976000000003 25.902446999999999,-97.365883578347024 25.900015396466173,-97.365521 25.890476,-97.364300486696564 25.885628504434479,-97.362421560218849 25.878165998501085,-97.360082000000006 25.868874000000002,-97.364783621478566 25.852096838905283,-97.36542 25.849826,-97.372864000000007 25.840116999999996,-97.394513000000003 25.837377,-97.422635999999997 25.840377999999998,-97.42853949246836 25.842912007889609,-97.434188204901034 25.845336654308195,-97.441181027463472 25.848338244915578,-97.445113000000006 25.850026,-97.445601387363794 25.851485440010176,-97.447179184935308 25.856200346812667,-97.448271000000005 25.859463000000002,-97.449172000000004 25.871677999999996,-97.452166849899044 25.875807172885114,-97.453724626189043 25.87795496921364,-97.454727000000005 25.879337,-97.45488774919265 25.879394304385261,-97.462586893331732 25.882138919861518,-97.468261999999982 25.884162,-97.468599721544905 25.884059457735212,-97.481532785459223 25.880132596436578,-97.486059999999995 25.878758,-97.490359999998347 25.879275544671589,-97.494739403174762 25.879802646248233,-97.496860999999996 25.880057999999998,-97.519591990380178 25.88590026892226,-97.521761999999995 25.886458,-97.52344767329889 25.891064017588189,-97.524375103029939 25.893598172727145,-97.528116959024402 25.903822606212749,-97.528119935206945 25.903830738482007,-97.52812430798204 25.903842686870224,-97.528627999999998 25.905218999999999,-97.528849446448064 25.906732522417784,-97.530321999999998 25.916796999999999,-97.530415259581318 25.916820899843632,-97.539878370214808 25.919246032588486,-97.542957 25.920034999999999,-97.545169999999999 25.923974999999999,-97.545468770003851 25.926387609575503,-97.545470694802859 25.92640315259677,-97.546397824784293 25.933889856891241,-97.546420999999995 25.934076999999998,-97.546611329705271 25.934141994258589,-97.555160182125618 25.937061277530951,-97.555378999999988 25.937135999999999,-97.555477252221124 25.937015705749829,-97.559364000000002 25.932257,-97.582565000000002 25.937856999999997,-97.580418999999992 25.945115999999995,-97.583044 25.955442999999999,-97.598043000000004 25.957556,-97.5981230356591 25.957681442330628,-97.607733999999994 25.972745,-97.60783562843973 25.973457509771446,-97.607844088251909 25.973516820913719,-97.608283 25.976593999999999,-97.609461531117333 25.977846566488182,-97.613191727531174 25.981811093986448,-97.613466053312663 25.982102652924251,-97.616041456343709 25.984839842874308,-97.624938181905222 25.994295461083137,-97.627225999999993 25.996727,-97.634804000000003 25.999508999999996,-97.635072411453706 25.99971613545971,-97.639164724998494 26.00287420951236,-97.642117661027001 26.005153015998879,-97.644011365977178 26.006614404624422,-97.643848619841975 26.01214811069886,-97.643707610985203 26.016942704231127,-97.649175518723894 26.021499311673544,-97.65096419129361 26.02118629315062,-97.659123404318109 26.019758427116106,-97.661326460130226 26.019372891335045,-97.66298585459532 26.019511685247039,-97.668297999999993 26.019955999999997,-97.669519566971061 26.021667429940447,-97.671350987084779 26.024233271429612,-97.671567999996611 26.024226704244594,-97.691453959129774 26.023624920821636,-97.697068999999999 26.023454999999998,-97.703247203861338 26.030308742132775,-97.706066818770353 26.031284762516545,-97.709294717923569 26.032402112038366,-97.711145328137576 26.033042707775564,-97.719920000000002 26.030837999999999,-97.723585926686539 26.030959832537771,-97.729354247932832 26.031151535557555,-97.735180242251758 26.031345155270547,-97.758837769919694 26.032131383932391,-97.76309059882324 26.033650253079866,-97.763351431657455 26.034258862745556,-97.76491324062286 26.037903081983409,-97.769788888528993 26.041344719068825,-97.770077387482857 26.041548365582649,-97.776788595669075 26.042443189872706,-97.779190602367677 26.042763456191249,-97.784050976575529 26.040637041739476,-97.789822674626535 26.0424596835391,-97.792252861730461 26.04428232533872,-97.793102878401371 26.047342389307317,-97.793537334820812 26.048906434437896,-97.794638769549053 26.052871604582215,-97.795290594138677 26.055218176136449,-97.801344 26.060016999999998,-97.803973303988229 26.059548218630308,-97.8082126910423 26.058792373859696,-97.819424117916668 26.056793476786609,-97.820997703829306 26.056512920501468,-97.825546000000003 26.055702,-97.826721102251625 26.055271667399982,-97.830409376527257 26.053920989485444,-97.836607999999984 26.051650999999996,-97.848759348822554 26.052295281844582,-97.85186756815483 26.052460084066457,-97.859824237628374 26.052881958029587,-97.860225497621784 26.05290323340671,-97.860503999999992 26.052917999999998,-97.861874999990562 26.053580848914272,-97.869705222636284 26.057366592615971,-97.871187000000006 26.058082999999996,-97.876982999999996 26.064482999999999,-97.886529999999993 26.066338999999999,-97.901546631929207 26.060958662441269,-97.905109129229899 26.05968224852101,-97.913882 26.056539,-97.935419999999993 26.052687999999996,-97.944344999999984 26.059620999999996,-97.950095000000005 26.061827999999998,-97.96210735288345 26.054793018383155,-97.96735799999999 26.051718,-97.971403108419892 26.054550391225565,-97.978769 26.059707999999997,-97.979877702655912 26.062937323324391,-97.981335 26.067181999999995,-98.010970999999998 26.063862999999998,-98.015122209308288 26.064471399070538,-98.026123959861238 26.06608380989196,-98.028288992822496 26.066401115993269,-98.028758999999994 26.066469999999999,-98.029241090705753 26.065867136858621,-98.033102 26.061039,-98.034402999999998 26.051375,-98.034479464439173 26.051215303797409,-98.034525269179767 26.051119640464091,-98.039238999999981 26.041274999999995,-98.054365285842039 26.044575736209502,-98.070020999999997 26.047992,-98.070022345126233 26.049160242153427,-98.070025 26.051466,-98.071425788568789 26.055027814897404,-98.076094939927231 26.066900165398668,-98.076139697069991 26.067013970337847,-98.076205751241318 26.067181927684643,-98.076543999999998 26.068041999999998,-98.076994427275579 26.068371469710563,-98.080289992888041 26.070782045417982,-98.080494999999999 26.070931999999999,-98.080906883185932 26.070920010911959,-98.084755 26.070808,-98.085506402845155 26.069709056167966,-98.085848999999982 26.069208,-98.085628527723046 26.069048386721494,-98.081567000000007 26.066108,-98.081855064865067 26.063941606819231,-98.081884000000002 26.063724,-98.082307152201508 26.063513440869801,-98.091037999999998 26.059169,-98.093593108176947 26.058759459973995,-98.094431999999998 26.058624999999996,-98.095078111969258 26.058956205325877,-98.096949561841043 26.059915534659098,-98.097643000000005 26.060270999999997,-98.105504999999994 26.067537000000002,-98.122952624574893 26.063250384797335,-98.12786358062813 26.062043837809401,-98.128331000000003 26.061928999999999,-98.142925292417388 26.051941751725515,-98.14645163947533 26.049528582072455,-98.146621999999994 26.049412,-98.146852932570667 26.049588146033326,-98.149462999999997 26.051579,-98.149462999999997 26.055813,-98.151730999999998 26.058187,-98.158277994458601 26.062311711597108,-98.16142849281799 26.064296576133319,-98.161911645017582 26.064600969774318,-98.167608590156348 26.068190136655492,-98.172071527808072 26.071001859012309,-98.177897000000002 26.074672,-98.179863281323136 26.072661506851002,-98.189059999999998 26.063257999999998,-98.191534000000004 26.057117999999999,-98.197046 26.056152999999998,-98.200871000000006 26.059161,-98.203328791159265 26.063523594334541,-98.204415309491765 26.065452171017675,-98.20496 26.066419,-98.205720285634712 26.066905180236589,-98.2057544964389 26.066927057036718,-98.220672999999991 26.076467,-98.228363119990576 26.077028417928002,-98.230097 26.077155,-98.231072909449267 26.07694353295701,-98.240214327563166 26.074962705064888,-98.248806000000002 26.073101,-98.250234708208026 26.074229377516481,-98.260964088277859 26.082703320039151,-98.264514000000005 26.085506999999996,-98.272091468517374 26.0934369782697,-98.272527821536428 26.09389363077193,-98.277218000000005 26.098801999999999,-98.277020629370639 26.099144109090908,-98.272932087266241 26.106230915405163,-98.272897999999998 26.10629,-98.272099931737145 26.106512924095771,-98.270258188934392 26.107027377392626,-98.270033999999995 26.107089999999999,-98.269661374787887 26.108231250649609,-98.268046405073434 26.113177467856264,-98.266755660647689 26.117130670341034,-98.265753950746401 26.120198637935399,-98.265698 26.12037,-98.266046753689267 26.120369439652073,-98.268388964369507 26.120365676386069,-98.271048543344023 26.120361403199535,-98.2713587738927 26.120360904747326,-98.279433560913844 26.12034793086255,-98.289509742149562 26.120331741306838,-98.296194999999997 26.120321,-98.299522999999979 26.11749,-98.299575546893735 26.117376878214852,-98.299577897643644 26.117371817572689,-98.299619756950364 26.117281703787395,-98.301477861619162 26.113281617347607,-98.302978999999993 26.110049999999998,-98.307788398559808 26.112633359128559,-98.31093219000293 26.114322040617914,-98.314784784069062 26.116391454064445,-98.31781148535309 26.118017240801439,-98.323055746360907 26.120834185452331,-98.323827999999992 26.121248999999995,-98.324165904650499 26.121735183484471,-98.335204000000004 26.137616999999999,-98.337914801547555 26.149187638321976,-98.338210450252006 26.150449569219312,-98.338419999999999 26.151344000000002,-98.338123748811455 26.151776768193923,-98.337139471603692 26.153214615149455,-98.336278203634194 26.154472768358826,-98.335109254490916 26.156180386856505,-98.334230366689056 26.157464279382136,-98.333315999999996 26.158799999999999,-98.333279392301918 26.159609030127591,-98.333194378655719 26.161487831708563,-98.333156000000002 26.162336,-98.33332593363771 26.162525092143447,-98.336569396995017 26.166134227137082,-98.336837000000003 26.166432,-98.337709251548077 26.166391430160555,-98.345513373134324 26.166028447761192,-98.345781000000002 26.166015999999999,-98.345955918391979 26.165759937155421,-98.34781294946896 26.163041431373035,-98.354645000000005 26.15304,-98.380009845764519 26.156864235849298,-98.386243919298991 26.157804141722139,-98.386694000000006 26.157872,-98.386714843024777 26.157901012682096,-98.387178289965661 26.158546112849205,-98.389418830831929 26.161664858836595,-98.394322667090904 26.168490808715738,-98.402249554153599 26.179524728065878,-98.404432999999997 26.182563999999999,-98.41082579547016 26.183537375155975,-98.418120000000002 26.184647999999999,-98.44253599999999 26.199151,-98.444302622216625 26.201317032456906,-98.444376000000005 26.201407,-98.444366742625562 26.201566115583965,-98.444174812576264 26.204865005795593,-98.443681770155465 26.213339409994948,-98.45054565332704 26.219516919037407,-98.450975699346984 26.219903961344286,-98.465077324681431 26.222335272645303,-98.467962758220992 26.221802674698019,-98.47639547470331 26.220246150374404,-98.481645999999998 26.219277000000002,-98.483269000000007 26.216439,-98.496684404575589 26.212853148677059,-98.500574513964963 26.213825676024403,-98.503492081872309 26.214798198660183,-98.504399410834864 26.216045775617395,-98.509275818143593 26.222750833698164,-98.509327236533252 26.222821533963195,-98.516621175147847 26.223550930651591,-98.520846190978133 26.222726536052498,-98.524733007990875 26.221968131567948,-98.526589565145571 26.221605875956907,-98.528323413163747 26.222421776495104,-98.535240999999999 26.225677,-98.538016739096946 26.231331135295655,-98.538505426714039 26.231595841236214,-98.543851889046309 26.23449184328507,-98.556093449912439 26.231976454911809,-98.561600478976516 26.23084487397777,-98.564343479612191 26.231667774301364,-98.575891642961039 26.235132223865481,-98.57618836327309 26.235221239973473,-98.581780384919284 26.243001439905978,-98.583095590242166 26.247416774401941,-98.585184223567666 26.254428618568909,-98.588002268837087 26.255070784392117,-98.599153999999999 26.257611999999998,-98.610401443364651 26.253223367217647,-98.613465000000005 26.252027999999999,-98.617434734670965 26.252082931217494,-98.618976176235122 26.252104260920568,-98.625299999997523 26.252191766854153,-98.626653663614832 26.252210498179227,-98.633391522135483 26.243617562727948,-98.63418 26.242612,-98.636673745354344 26.241784277127035,-98.654221000000007 26.235959999999999,-98.669397000000004 26.236319999999996,-98.675206000000003 26.239989,-98.678410535728389 26.244637915883345,-98.679041999999995 26.245553999999998,-98.678977427258005 26.246060764449961,-98.677766000000005 26.255568,-98.679196310064967 26.258571609080832,-98.681167000000002 26.262709999999998,-98.687156000000002 26.26512,-98.698855915315121 26.265619481498664,-98.707451416076225 26.272152066874316,-98.710601999999994 26.279018,-98.709170532219119 26.284185773270103,-98.710647239525585 26.288123668959596,-98.711233447604599 26.289686894290245,-98.722550749196131 26.295571625529284,-98.729196000000002 26.299026999999999,-98.73263614407044 26.29899082409209,-98.734613221934339 26.298970033513189,-98.745271658069271 26.303095890935232,-98.745297595683382 26.304159357241051,-98.745599830797417 26.316551278053844,-98.745615470637418 26.317192526042046,-98.748245116157776 26.32061106368975,-98.74905366960931 26.321662182706675,-98.754840366886953 26.324877004144408,-98.755242435754027 26.32510037501579,-98.766685638772316 26.325769085950686,-98.779858354339893 26.326538865087553,-98.779911999999996 26.326541999999996,-98.779946859358333 26.326559704051515,-98.789821999999987 26.331575,-98.796251999999996 26.349104,-98.797592059971961 26.356670995104565,-98.798210999999995 26.360166,-98.807348000000005 26.369420999999999,-98.808280016253249 26.369491024329768,-98.813413043374013 26.369876679389535,-98.81818280466733 26.370235041528161,-98.81932575812273 26.370320914010964,-98.824571000000006 26.370715,-98.828353477559162 26.367368473620303,-98.832909 26.363337999999999,-98.838554497099707 26.360957856802237,-98.842229804437778 26.359408346173527,-98.844057000000006 26.358637999999999,-98.847707 26.359594999999999,-98.853132332741467 26.364754198689674,-98.853414999999998 26.365023,-98.853852117327648 26.365076242531281,-98.854321671505204 26.365133435992636,-98.861354000000006 26.365989999999996,-98.861661690067152 26.365902494757481,-98.869113443480302 26.363783259984523,-98.874117355796216 26.362360176799562,-98.876164212939671 26.361778062685843,-98.882912762903771 26.359858814831277,-98.890964919192157 26.357568829017531,-98.895015448091129 26.359360408468842,-98.900432100164338 26.361756234493352,-98.900829697862818 26.361932094951143,-98.905559653818443 26.364024190108832,-98.91296803413384 26.372226331500926,-98.915344992389564 26.37485796579432,-98.921277034399395 26.381425588572444,-98.922831447878195 26.38166472803821,-98.923508557916591 26.381768898347495,-98.924925720775448 26.381986922427696,-98.926689551972586 26.38116380140492,-98.934437533628781 26.377548077521784,-98.937555770591459 26.376092900630621,-98.942046463189357 26.375531566775365,-98.950185820407469 26.380302920861933,-98.952073083609605 26.383491745197549,-98.952938578460817 26.384954133189183,-98.953327659277917 26.385611545667039,-98.958325183064531 26.394055638388448,-98.960041959595969 26.394835991082342,-98.96758721887106 26.398265653180793,-98.981979903868819 26.396488780147621,-98.98323657723455 26.396333635432413,-98.985344372930967 26.396073413984297,-98.99032130527651 26.395458978465552,-99.008003378826189 26.395458978465552,-99.014739404125635 26.398826987036053,-99.018845438188137 26.404005475794783,-99.021934999999999 26.407902,-99.025336792347318 26.409271761295809,-99.030462148109507 26.411335530401477,-99.031104888479149 26.411594335405351,-99.032315999999994 26.412082000000002,-99.033086386506682 26.412180127570064,-99.037216923343138 26.412706252494743,-99.039107 26.412946999999999,-99.039645291109963 26.412681959983438,-99.045466000000005 26.409815999999999,-99.053184999999999 26.402006,-99.062093000000004 26.397371,-99.082001999999989 26.396509999999996,-99.085125999999988 26.398782,-99.089412999999979 26.408099999999997,-99.092044248326658 26.410330707587079,-99.0977332288968 26.415153685331873,-99.099649490160544 26.416778244479925,-99.110855 26.426278,-99.113807999999992 26.434002,-99.110485406379198 26.436329519428725,-99.103082999999998 26.441514999999999,-99.097481906444941 26.458865277747179,-99.094712087984234 26.467445230774196,-99.091634999999997 26.476977000000002,-99.105030999999997 26.500335,-99.114051328117867 26.510193091438737,-99.123438026388797 26.520451579672599,-99.126618350727256 26.523927276756307,-99.127319211298612 26.524693229780183,-99.127781999999996 26.525199,-99.128040494672888 26.525242991472329,-99.131554903978838 26.52584108518932,-99.136510932879688 26.526684518463242,-99.143658999999985 26.527901,-99.157083944984777 26.532657279516766,-99.166741999999985 26.536078999999997,-99.170704 26.540316,-99.171403999999995 26.549848,-99.167459686682065 26.559874693319248,-99.167410000000004 26.560001,-99.168618869529794 26.566870928153797,-99.16946034016965 26.571652951934592,-99.178064000000006 26.620546999999998,-99.200522000000007 26.656442999999999,-99.209947999999997 26.693937999999999,-99.208906999999982 26.724761,-99.240022999999979 26.745850999999998,-99.242444000000006 26.788262,-99.243132825912184 26.78921716914337,-99.262208 26.815667999999999,-99.268613000000002 26.843212999999999,-99.274832961326339 26.850997131057774,-99.280470999999991 26.858053000000002,-99.295146000000003 26.86544,-99.316753000000006 26.865831,-99.328801222539823 26.879647723469141,-99.328900000000004 26.879760999999998,-99.328852280051947 26.879943529980665,-99.328653604395157 26.88070346927794,-99.326247644284351 26.88990632616278,-99.321819000000005 26.906846000000002,-99.324684000000005 26.915973,-99.337297000000007 26.922758999999999,-99.361143999999996 26.928920999999999,-99.367053999999996 26.929033999999998,-99.379148999999998 26.934489999999997,-99.388253000000006 26.944216999999998,-99.393748000000002 26.960730000000002,-99.390189000000007 26.966348,-99.377312000000003 26.973818999999999,-99.376593 26.977716999999998,-99.378434999999996 26.980034,-99.385448615007036 26.981891053234623,-99.387366999999998 26.982399,-99.403694000000002 26.997355999999996,-99.407320999999996 27.005808999999999,-99.415475999999998 27.017239999999997,-99.420446999999996 27.016567999999999,-99.429379999999981 27.010833000000002,-99.432154999999995 27.010698999999995,-99.438721 27.01463,-99.445682828533535 27.022104842939122,-99.446523999999997 27.023008,-99.446589518313687 27.0234513503828,-99.446929167151652 27.025749691622671,-99.446969999999979 27.026026000000002,-99.446787747918748 27.026353589968604,-99.444062000000002 27.031253,-99.443973 27.036457999999996,-99.447729715193731 27.048260380671568,-99.452315999999996 27.062668999999996,-99.450282 27.067705,-99.439210578806851 27.075275465844946,-99.434470000000005 27.078517000000002,-99.429209 27.090981999999997,-99.430274999999995 27.094871999999999,-99.437646 27.100442,-99.442122999999995 27.106839,-99.441108999999997 27.110041999999996,-99.433369999999982 27.119218,-99.430581000000004 27.126611999999998,-99.431354999999996 27.13758,-99.438264999999987 27.144791999999995,-99.439971 27.151071999999996,-99.437950999999998 27.154121,-99.42998399999999 27.159148999999999,-99.426616441133064 27.174998569551711,-99.42634799999999 27.176261999999998,-99.426389092127664 27.176475083747437,-99.428025433058153 27.184960350328335,-99.432794999999999 27.209693,-99.441928000000004 27.217984999999995,-99.442101400955139 27.218265584747954,-99.445237999999989 27.223341,-99.443121431464945 27.230753685991843,-99.441406999999998 27.236757999999998,-99.441548999999995 27.249919999999999,-99.452207395848959 27.263806782859465,-99.452390999999992 27.264046,-99.452635348600225 27.264144272092288,-99.454218033886534 27.264780796280988,-99.462735864984637 27.268206496624611,-99.463308999999981 27.268436999999995,-99.463731957038988 27.268231398925973,-99.480688 27.259988999999997,-99.487909999999999 27.260721,-99.492407 27.264118,-99.496069429210138 27.270723950024919,-99.496615000000006 27.271707999999997,-99.496412995851571 27.272119287725655,-99.490870463706145 27.283404082904614,-99.487572835142558 27.290118173493504,-99.487513000000007 27.29024,-99.487552182270463 27.290674424182523,-99.487937000000002 27.294941,-99.493651777311726 27.30231355132117,-99.494603999999995 27.303542,-99.494999311050705 27.30367917804087,-99.501697839297435 27.306003653868146,-99.502036000000004 27.306121,-99.50260564894451 27.305998370990778,-99.511531000000005 27.304076999999999,-99.522353224815092 27.304131436852781,-99.523657999999983 27.304137999999995,-99.527521386758664 27.305370598210363,-99.529216737576675 27.305911493159478,-99.529653999999994 27.306051,-99.533911450776046 27.310119063512179,-99.536090758332008 27.312201427353024,-99.536443000000006 27.312538,-99.537771000000006 27.316072999999996,-99.53137599999998 27.323809,-99.52136037329538 27.324774325824137,-99.521259999999998 27.324784,-99.520793197388144 27.325167862222077,-99.515101491997058 27.329848278790703,-99.509737777509301 27.334258981108004,-99.504836999999995 27.338289,-99.507830999999996 27.348637,-99.507785758525344 27.353517859091919,-99.507778999999999 27.354247,-99.505884699626023 27.358359262089539,-99.503847413823948 27.362781925614613,-99.502763417847504 27.36513512979511,-99.502013099315448 27.366763966750881,-99.499076000000002 27.373139999999999,-99.492143999999996 27.380516999999998,-99.488110785984318 27.408328989964531,-99.487887470616073 27.409868914391197,-99.487633320470721 27.411621467383494,-99.487521 27.412396,-99.487591555014376 27.412624523015491,-99.489856740583164 27.419961308946796,-99.495313182879073 27.437634363915539,-99.495699000000002 27.438884000000002,-99.495681276107845 27.439260342274874,-99.495103999999998 27.451518,-99.489866073767956 27.458841813736395,-99.48498035355378 27.465673163249864,-99.484933241276849 27.465739036942171,-99.483818999999997 27.467296999999995,-99.483170086267094 27.470026063960816,-99.480813109028745 27.479938539705284,-99.480418999999998 27.481595999999996,-99.480219000000005 27.485795999999997,-99.483519 27.491095999999999,-99.494943552274876 27.498766770813134,-99.497518999999997 27.500495999999998,-99.501722168778215 27.500229993495459,-99.502529258718056 27.500178915086504,-99.513319999999993 27.499496,-99.516119999999361 27.498282666666942,-99.519319999999979 27.496896,-99.525819999999982 27.496696,-99.528319999999994 27.498895999999998,-99.525855930815595 27.516294999999385,-99.525849791073696 27.516338353233991,-99.525316190784537 27.520106149807926,-99.523876376642917 27.530272798702207,-99.522431296340699 27.540476632400054,-99.521918999999997 27.544094,-99.518818999999993 27.553194,-99.514319 27.556994,-99.511118999999994 27.564493999999996,-99.512219000000002 27.568093999999995,-99.515978000000004 27.572130999999999,-99.51621006287597 27.572263354504685,-99.516956092136581 27.572688844074506,-99.522907946893667 27.576083418863931,-99.530137999999994 27.580207,-99.536560517954015 27.595669560441458,-99.539721999999998 27.603280999999999,-99.549741780062789 27.610632655019803,-99.554405160028892 27.614054243170667,-99.554950000000005 27.614453999999999,-99.555217670042637 27.614437037021997,-99.556811999999994 27.614335999999998,-99.559466999999998 27.609075999999998,-99.562869000000006 27.607264,-99.580005999999997 27.602250999999995,-99.584175941853502 27.603675176957196,-99.584843000000006 27.603902999999999,-99.584876722760043 27.604178863233781,-99.585148000000004 27.606397999999999,-99.578360965974085 27.610254799100861,-99.578159999999983 27.610368999999999,-99.578158133228257 27.610639131051315,-99.578098999999995 27.619195999999999,-99.584782000000004 27.622006999999996,-99.591372000000007 27.627464,-99.592626330929548 27.632690692534315,-99.594037999999998 27.638573,-99.596231000000003 27.639857999999997,-99.603532999999999 27.641991999999998,-99.612907806834755 27.638651258855042,-99.615318942915422 27.637792043123689,-99.624515000000002 27.634515,-99.625321999999997 27.631136999999999,-99.638929000000005 27.626757999999999,-99.654323999999988 27.629615999999999,-99.665948 27.635967999999998,-99.665422000000007 27.640274999999999,-99.660175716081199 27.644678795569117,-99.659499999999994 27.645246,-99.659300532255756 27.646059100049566,-99.658294999999995 27.650158,-99.661845 27.655753,-99.668942 27.659973999999998,-99.672015651285406 27.660163655087903,-99.685812999999982 27.661014999999999,-99.699355999999995 27.655417,-99.704600999999997 27.654953999999996,-99.711511000000002 27.658365,-99.721518999999986 27.666154999999996,-99.723715999999996 27.673328,-99.727277746539684 27.678262316066267,-99.732288643517421 27.685204233237535,-99.732448000000005 27.685424999999999,-99.732610774853441 27.685596448480599,-99.757538999999994 27.711853,-99.758533999999997 27.717071,-99.770740000000004 27.732133999999999,-99.774900999999986 27.73354,-99.785365999999996 27.730354999999999,-99.788844999999981 27.730718,-99.796341999999981 27.735586,-99.801651000000007 27.741771,-99.805670000000006 27.758687999999999,-99.813085999999998 27.773952,-99.817390803736785 27.775433523363962,-99.819091999999998 27.776019000000002,-99.822192999999999 27.766855,-99.825793000000004 27.764373999999997,-99.835127 27.762881,-99.841707999999997 27.766463999999999,-99.843346625073153 27.773142384459568,-99.844736999999981 27.778808999999999,-99.849281022020321 27.790032142335203,-99.850876999999997 27.793973999999999,-99.857944055165163 27.794214491272228,-99.870065999999994 27.794626999999998,-99.877441689362087 27.799278597548025,-99.877677000000006 27.799427,-99.877679299916537 27.799779028327777,-99.877693551047656 27.801960325692491,-99.877840000000006 27.824375999999997,-99.876677795668783 27.832975173255242,-99.876002999999997 27.837968,-99.877201999999997 27.842179000000002,-99.882014999999996 27.850391999999996,-99.89364999999998 27.856193,-99.901486000000006 27.864162,-99.904385000000005 27.875283999999997,-99.901231999999993 27.884405999999995,-99.894091000000003 27.892949999999999,-99.893456 27.899208000000002,-99.895827999999995 27.904177999999998,-99.900080000000003 27.912141999999999,-99.905861237749605 27.914081496997749,-99.917461000000003 27.917973,-99.925935042520848 27.927688375003317,-99.93714199999998 27.940536999999999,-99.938541 27.954059,-99.932160999999979 27.96771,-99.931811999999994 27.980967,-99.962768999999994 27.983536,-99.984922999999995 27.990729000000002,-99.991446999999994 27.99456,-99.998749958954292 28.00705628754028,-100.000278657311796 28.009672084008166,-100.008630999999994 28.023963999999999,-100.012838999999985 28.037203000000002,-100.014975394500183 28.048814882934586,-100.016570970484992 28.057487270710915,-100.017914000000005 28.064786999999999,-100.028724999999994 28.073118,-100.046108000000004 28.079067999999999,-100.053122999999985 28.08473,-100.056983000000002 28.094207,-100.05559599999998 28.101140999999998,-100.056492999999989 28.104185999999995,-100.064147158981442 28.110644603904401,-100.067651999999995 28.113602,-100.075474 28.124881999999999,-100.083393 28.144034999999999,-100.090288999999984 28.148312999999998,-100.119627999999992 28.155588000000002,-100.12658652988236 28.159659080291213,-100.141098 28.168149,-100.159890345070792 28.168159605160877,-100.160589999999999 28.16816,-100.1644540887186 28.169825181963088,-100.168437999999995 28.171541999999999,-100.173949604741296 28.178834844700365,-100.174413 28.179448,-100.17569869464343 28.180169771489844,-100.185693999999998 28.185780999999999,-100.195825662217615 28.189941498404405,-100.196499000000003 28.190218000000002,-100.19841872968675 28.190245400986015,-100.202449991411854 28.190302940621361,-100.208059000000006 28.190382999999997,-100.21208061434919 28.196473071951928,-100.212104999999994 28.196509999999996,-100.212111438897693 28.196576571978802,-100.212136678181992 28.196837521783539,-100.213449999999995 28.210415999999999,-100.217564999999993 28.226934,-100.220284000000007 28.232209999999995,-100.22363 28.235223999999995,-100.227575000000002 28.235856999999999,-100.246200000000002 28.234092,-100.251633999999996 28.236177,-100.261135590980771 28.244561246718906,-100.267604000000006 28.250268999999999,-100.280518 28.267969,-100.289383999999998 28.273491,-100.293468000000004 28.278475,-100.294296000000003 28.284381,-100.287553999999986 28.301093000000002,-100.286470999999992 28.312295999999996,-100.288638999999989 28.316977999999995,-100.314198000000005 28.345859,-100.317245999999997 28.357382,-100.320392999999996 28.362116999999998,-100.341869000000003 28.384952999999996,-100.344399999999979 28.389662,-100.34934096344108 28.4019924953441,-100.349585999999988 28.402603999999997,-100.349394820211828 28.402858691740477,-100.345766407828719 28.407692501181913,-100.343945000000005 28.410119000000002,-100.337058999999996 28.427150999999995,-100.336185999999998 28.430180999999997,-100.337474638078888 28.440402915586755,-100.337648113426326 28.441778981052359,-100.337796999999995 28.442959999999999,-100.338752462381066 28.444650728533539,-100.341532999999998 28.449570999999995,-100.350785999999999 28.459246,-100.353875644654778 28.461269551534915,-100.357498000000007 28.463642,-100.35795880406117 28.464220845064407,-100.358193534884933 28.464515705266944,-100.367961112704847 28.47678537623738,-100.368288000000007 28.477195999999999,-100.368051363629903 28.477598261305609,-100.365982000000002 28.481116,-100.356642877924983 28.482149981508559,-100.352234999999979 28.482638,-100.344180999999992 28.486249,-100.337140000000005 28.491728999999999,-100.33381399999999 28.499251999999998,-100.338517999999993 28.501833,-100.362147999999991 28.508399,-100.379079000000004 28.511638999999999,-100.388859999999994 28.515747999999995,-100.405057999999983 28.535779999999999,-100.411413999999994 28.551898999999999,-100.40430324537553 28.563833042228197,-100.397270000000006 28.575637,-100.396799999999999 28.580400999999998,-100.398385000000005 28.584883999999999,-100.403243426032972 28.586668145075244,-100.425819035320046 28.594958517689108,-100.429856 28.596440999999995,-100.431892715674053 28.597943579291371,-100.447320000000005 28.609324999999998,-100.448648000000006 28.616773999999999,-100.447280739633683 28.625703494601449,-100.445528999999993 28.637143999999996,-100.44560646842767 28.637394606891831,-100.447014715516048 28.641950223113035,-100.447091 28.642196999999999,-100.447325484276334 28.642184618041064,-100.447599559425257 28.642170145483281,-100.456522261830528 28.641698981546444,-100.462866000000005 28.641363999999999,-100.474494000000007 28.647071,-100.479445543783555 28.654922981332383,-100.479495071011698 28.655001519842354,-100.479635999999999 28.655225000000002,-100.481416494659797 28.655591917738484,-100.492493911747701 28.657874710783531,-100.493322226012125 28.658045406716248,-100.495863 28.658568999999996,-100.496129521434568 28.658770241190073,-100.500353999999987 28.661960000000004,-100.502122125123847 28.667202406240314,-100.505211969634487 28.676363647108229,-100.509438609439442 28.688895431533517,-100.510054999999994 28.690722999999995,-100.510127443340068 28.69126843161186,-100.510538898440004 28.694366309458967,-100.51077198772829 28.696121257064849,-100.511998000000006 28.705352,-100.511351260759739 28.706743032691019,-100.510646631791559 28.708258576930099,-100.509872363628347 28.709923903942272,-100.509406561254394 28.710925770365975,-100.508636802312012 28.712581398765199,-100.507069450532313 28.715952521820881,-100.506701000000007 28.716745000000003,-100.506745928327234 28.717920131927187,-100.506786973330165 28.718993692782757,-100.507152057645129 28.728542729239727,-100.507513721430456 28.738002299344281,-100.507590113222051 28.740000380261673,-100.507613000000006 28.740599,-100.507694735304739 28.740708529390524,-100.51442566685138 28.749728313832868,-100.519226000000003 28.756160999999999,-100.533017 28.763279999999998,-100.537772000000004 28.780775999999996,-100.534846642084489 28.786410367511117,-100.532431000000003 28.791062999999998,-100.535830000000004 28.805887999999999,-100.546431879116881 28.824270186264151,-100.546968759195195 28.825201061771438,-100.547323999999989 28.825817,-100.548186025546428 28.826178082695296,-100.553129999999982 28.828249,-100.561442999999997 28.829174000000002,-100.570509999999999 28.826317,-100.574698999999995 28.828786999999998,-100.576846000000003 28.836168000000004,-100.572991999999999 28.848463999999996,-100.580501999999996 28.856007999999999,-100.591040000000007 28.863054000000002,-100.598061272695219 28.874286065303028,-100.598877000000002 28.875590999999996,-100.602654 28.887660000000004,-100.602394435759351 28.893839359355621,-100.602053999999995 28.901944,-100.615584686670886 28.902906942475386,-100.627205999999987 28.903734,-100.631611000000007 28.902838999999997,-100.633502414453218 28.905240591668694,-100.640568000000002 28.914211999999999,-100.639169999999979 28.916288999999999,-100.638857000000002 28.927621999999996,-100.651511999999997 28.943431999999998,-100.64789859018552 28.954344193790252,-100.646992999999995 28.957078999999997,-100.646600907687997 28.967547400926616,-100.64647463428885 28.970918751315974,-100.645893999999998 28.986421,-100.647406325643686 28.99295674936236,-100.647835962928511 28.994813493392339,-100.648681241069511 28.998466493719445,-100.65094599999999 29.008254000000004,-100.653757999999996 29.015356,-100.656109999999998 29.017223999999999,-100.660207999999997 29.031497000000002,-100.663212 29.048041999999995,-100.662508000000003 29.058106999999996,-100.664064999999994 29.073205999999999,-100.666359117032755 29.07896154562156,-100.668483863047285 29.084292168447689,-100.674655999999999 29.099777000000003,-100.684472 29.110657,-100.692326999999992 29.115227999999995,-100.70996599999998 29.119684000000003,-100.727461999999989 29.129122999999996,-100.737795000000006 29.139078999999999,-100.739115999999996 29.141658,-100.737590999999995 29.147406999999998,-100.739681000000004 29.150486000000004,-100.746139999999997 29.154149000000004,-100.752330696165359 29.155516457617566,-100.759726 29.157149999999998,-100.76337082361762 29.160348915845475,-100.772648999999987 29.168492,-100.775904999999995 29.173344,-100.772154104961558 29.17809434863841,-100.766030999999998 29.185848999999997,-100.767059000000003 29.195287,-100.768348510582513 29.197581465531123,-100.775064591152173 29.209531592641572,-100.785521000000003 29.228136999999997,-100.791371999999996 29.225944999999999,-100.795681000000002 29.227729999999998,-100.79704599999998 29.235585999999998,-100.795234211471239 29.241421249558652,-100.795010188783237 29.242142762180318,-100.794911999999997 29.242459,-100.795310930062826 29.24310735172228,-100.797670999999994 29.246943000000002,-100.805332448258866 29.251327106905226,-100.815767091023289 29.257298117587734,-100.823532999999998 29.261742000000002,-100.834039999999987 29.261399999999998,-100.839016 29.263259,-100.841581161127962 29.265429071012271,-100.848663999999999 29.271420999999997,-100.856469000000004 29.275663999999999,-100.864659000000003 29.276076,-100.874739696506666 29.279181633366278,-100.876048999999995 29.279585,-100.876625364221198 29.280115401513385,-100.878513170701353 29.281852663087207,-100.878882999999988 29.282193000000003,-100.879105716359817 29.283377353454046,-100.880504361011205 29.290815018226784,-100.882051999999987 29.299044999999996,-100.886842 29.307848,-100.895590728097048 29.309871687341737,-100.904835000000006 29.31201,-100.906461302333199 29.313095095005444,-100.914770068080642 29.318638836799305,-100.916744062319239 29.319955917421627,-100.92203960930695 29.323489191321695,-100.922232587658954 29.323617949573855,-100.924041970395777 29.324825198761538,-100.926468967605715 29.326444530233299,-100.926628772437255 29.326551154580446,-100.926677999999981 29.326584,-100.92692137104487 29.32669794102517,-100.927819078352698 29.327118228044156,-100.92782883100196 29.32712279402223,-100.930446231588661 29.328348203997709,-100.940614999999994 29.333109,-100.941560773525751 29.336361493535293,-100.943196 29.341985,-100.945807189162338 29.344363370184055,-100.948971999999998 29.347245999999998,-100.95603875001359 29.347290187325033,-100.964324999999988 29.347342,-100.971743000000004 29.351370999999997,-100.972915999999998 29.354545000000005,-100.995606999999993 29.363403000000005,-101.004206999999994 29.364771999999999,-101.010614000000004 29.368669,-101.010768998319776 29.36895846820963,-101.014103165002794 29.375185214807839,-101.024016000000003 29.393697999999997,-101.036603999999997 29.406107999999996,-101.038600000000002 29.410713999999999,-101.037642000000005 29.414681000000002,-101.043363999999997 29.42988,-101.056956999999983 29.440773,-101.06011415724447 29.458454662113137,-101.060150999999991 29.458660999999999,-101.063843258270609 29.460131584976065,-101.087148999999997 29.469414,-101.103699000000006 29.470549999999999,-101.115253999999993 29.468458999999996,-101.130037999999985 29.47842,-101.137502999999995 29.473541999999998,-101.144336999999993 29.473246,-101.151876999999999 29.477004999999998,-101.163854997623304 29.493316894569897,-101.168923969306405 29.50021992913986,-101.171662999999995 29.503950000000003,-101.173821000000004 29.514566000000002,-101.192719999999994 29.520285,-101.227418999999998 29.522349999999996,-101.235274999999987 29.524854,-101.254895000000005 29.520341999999996,-101.260836999999981 29.529933,-101.261174999999994 29.536777,-101.252755240314642 29.553001111955531,-101.244355179006547 29.569187266927752,-101.24384013276574 29.574337712700849,-101.242022713082847 29.59251185083151,-101.251352546644355 29.604174135250076,-101.252152766968493 29.604494220898598,-101.259127443101093 29.607284069726152,-101.265347312053251 29.607284069726152,-101.274677145614746 29.602619152945408,-101.277624046978673 29.599940160672645,-101.283229510623855 29.594844301688571,-101.297224215766221 29.587069435365102,-101.30733154801338 29.587846934050759,-101.312894947857018 29.594028488101586,-101.314328915651188 29.595621785307589,-101.313192213312618 29.602947206633093,-101.31110792457288 29.616379301091623,-101.30733154801338 29.640715970810437,-101.311218981175116 29.64849082206727,-101.316661381574889 29.655488204771718,-101.325213716450733 29.657820655628775,-101.350093282659174 29.654710721152696,-101.353062961800887 29.655502634567405,-101.361755552011104 29.657820655628775,-101.364595571422868 29.66106639883844,-101.367197952410862 29.664040554714198,-101.371300910394638 29.676075888592084,-101.372874548462477 29.680691889931673,-101.378860251896057 29.698249939417508,-101.396947999999995 29.713947,-101.398362000000006 29.717000000000002,-101.396293999999997 29.727055,-101.397008999999997 29.733962999999999,-101.400635999999992 29.738078999999999,-101.410024000000007 29.741498,-101.415583999999996 29.746534,-101.415509877418046 29.750619769974676,-101.415402087456428 29.756561346443686,-101.424731921017937 29.758116313681725,-101.430388403484372 29.756500180308258,-101.441059122217254 29.75345141196761,-101.446501522617027 29.755006409338922,-101.451652003139955 29.758440048234313,-101.453498905321467 29.759671311053037,-101.455223999999987 29.771874,-101.467493655663716 29.779885945414083,-101.475268506920557 29.780663444099741,-101.503223000000006 29.764581999999997,-101.522695143280473 29.759671311053037,-101.526552276219391 29.761451532447605,-101.532802460460985 29.764336242900427,-101.53746737724174 29.782995910023434,-101.53804719015173 29.783865628452077,-101.546797210803248 29.796990645299058,-101.56156944476453 29.794658179375361,-101.572592853930203 29.778735448896484,-101.575564187573463 29.774443514881042,-101.582561562744587 29.771333610538232,-101.598573641854728 29.773657690388074,-101.603680999999995 29.774398999999999,-101.607256216824311 29.773863608191139,-101.625957999999997 29.771063000000002,-101.630319 29.768729,-101.632632680380155 29.763891873249722,-101.63512799999998 29.758675,-101.646417999999997 29.754303999999998,-101.652400999999983 29.758794999999996,-101.65328091488901 29.761368862201802,-101.654578 29.765162999999998,-101.662452999999985 29.77128,-101.689992000000004 29.771212999999996,-101.706636000000003 29.762736999999998,-101.714223999999987 29.767659999999999,-101.735201999999987 29.771591999999998,-101.754322999999999 29.777661999999999,-101.760919284561496 29.782457957985276,-101.763273999999981 29.784169999999996,-101.776796131253491 29.789191504347542,-101.777161000000007 29.789327,-101.777360180704861 29.789301830227139,-101.785668 29.788251999999996,-101.791002820423358 29.783037559970925,-101.796869557069002 29.782618516634159,-101.806507764952315 29.786389987871868,-101.809441149516488 29.790161459109573,-101.813855730843954 29.79253854440006,-101.814888826583982 29.793094827432377,-101.818909248247508 29.792167038125061,-101.830044431332681 29.789597381341238,-101.831231874027822 29.789323356194672,-101.852603555202364 29.801894932400803,-101.862241763085706 29.800218726571018,-101.866487373818487 29.79821962567333,-101.875399999999985 29.794022999999999,-101.878152615094365 29.794637055896249,-101.892739000000006 29.797891,-101.912406000000004 29.797849999999997,-101.917556726002999 29.792675767854249,-101.917942403066036 29.792482929945557,-101.922585359733716 29.790161459109573,-101.929709258872364 29.789323356194672,-101.932572380438657 29.791613852338052,-101.938090312383324 29.796028195755184,-101.946471365894325 29.797704401584976,-101.952535620779244 29.796990962273608,-101.953595265032959 29.796866298670082,-101.959462001678588 29.799380623656123,-101.965427194081556 29.806464275410743,-101.966166845299441 29.8073426094683,-101.970357372054934 29.81027599403247,-101.974547898810414 29.81027599403247,-101.982165144097308 29.804870201524977,-101.987538526473998 29.801056829485908,-101.993568005272067 29.802652866652032,-102.001318622543394 29.804704498914084,-102.001786318660763 29.804828300723614,-102.021918999999997 29.802490999999996,-102.032489182844799 29.803756293694118,-102.034758999999994 29.804027999999999,-102.039012999999997 29.802655,-102.041088000000002 29.799609999999998,-102.038411999999994 29.792831999999997,-102.039226999999997 29.790977000000002,-102.041308736499772 29.78984019520162,-102.048982832584102 29.785649487466547,-102.050044 29.785069999999997,-102.053123037129694 29.785312127485501,-102.073645999999982 29.786926,-102.076299925656656 29.790865308882584,-102.077348 29.792421,-102.084438999999989 29.794962000000002,-102.091420021879856 29.792967151942147,-102.091815999999994 29.792853999999995,-102.098789196918744 29.792718427915432,-102.115682000000007 29.792389999999997,-102.142325999999997 29.802854,-102.159600999999995 29.814355999999997,-102.161673999999991 29.819486999999999,-102.181894 29.846033999999996,-102.182859740836193 29.846584944255238,-102.18326563789924 29.846816503951921,-102.184058205433814 29.847268654791659,-102.186149999999998 29.848461999999998,-102.187393471220204 29.848699156882201,-102.188384798592551 29.848888224473839,-102.188671999999997 29.848942999999998,-102.189026115519184 29.848805138880103,-102.189342793483831 29.848681852617602,-102.205381000000003 29.842438,-102.216284162639099 29.842976962035557,-102.227553 29.843533999999995,-102.261388999999994 29.853283,-102.264041000000006 29.855964,-102.261776999999995 29.864001999999999,-102.264954000000003 29.867805999999998,-102.268816999999984 29.867990999999996,-102.276754999999994 29.862977999999998,-102.281249000000003 29.863116999999999,-102.297330999999986 29.875194,-102.301381000000006 29.877673999999995,-102.315388999999996 29.879919999999998,-102.320618999999994 29.878979999999995,-102.320667125014978 29.878900015386019,-102.320698585434869 29.878847727619664,-102.324634000000003 29.872306999999996,-102.333383999999995 29.868046,-102.341032999999996 29.869305000000004,-102.349861000000004 29.862316999999997,-102.361383773688715 29.849029038788231,-102.364542 29.845386999999995,-102.363642671554629 29.839963091609825,-102.362514000000004 29.833155999999995,-102.369522000000003 29.820395,-102.377253999999994 29.800163,-102.377312999999987 29.789971,-102.385270832882995 29.770348713937391,-102.386677616883858 29.766879890389689,-102.391739211722737 29.765814289574276,-102.392906191083 29.765568609270456,-102.402175111261812 29.766775086101941,-102.412062000000006 29.768061999999997,-102.433301 29.776608,-102.460890018677347 29.77909171043791,-102.468946430597143 29.779816991558327,-102.469957868267898 29.780012383523857,-102.481595292961757 29.782260529257879,-102.490330613701886 29.783948039559665,-102.492674483475767 29.783853017496881,-102.508312776666344 29.783219030534834,-102.508509848222559 29.783087649355906,-102.512686811979108 29.780303003853621,-102.512942156326147 29.774953626291172,-102.513380999999995 29.76576,-102.526400256170959 29.758693706517125,-102.535832205630967 29.753574449155192,-102.539417050278132 29.751628749336795,-102.545492105079163 29.750899740311965,-102.551081152293932 29.752357753652575,-102.556670813570321 29.757783010503054,-102.559343229460382 29.760376824671383,-102.565661280990938 29.761591836573395,-102.572255912443325 29.757095496286663,-102.57574472309652 29.754716761401177,-102.57635337725236 29.754301769870359,-102.585948674897452 29.751239442391949,-102.587774480184081 29.750656738873374,-102.597160000000002 29.751608,-102.612879000000007 29.748181999999996,-102.622534000000002 29.736632,-102.630150999999984 29.734314999999999,-102.64566499999998 29.733910000000002,-102.661251958261417 29.736122779697027,-102.66726872436665 29.739732837494621,-102.670971460158171 29.741954477821469,-102.677191937153026 29.738261067251376,-102.678467215476147 29.736427653943998,-102.6852530581628 29.72667193704833,-102.688163999999986 29.722486999999997,-102.690237999999979 29.707481999999999,-102.695507594622001 29.699754690880447,-102.698346999999984 29.695590999999997,-102.699316999999994 29.685029,-102.693466 29.676507,-102.697798916570122 29.672550546488289,-102.711337549653422 29.6601882100483,-102.724231000000003 29.648415000000004,-102.736947999999984 29.641537999999997,-102.742030999999997 29.632142000000002,-102.74048425929719 29.62775763619268,-102.738427999999999 29.621928999999998,-102.739991000000003 29.599041,-102.746201999999997 29.592875000000003,-102.757065999999995 29.597798999999998,-102.761810999999994 29.598396999999999,-102.768340999999992 29.594733999999999,-102.766929734823805 29.591197739636346,-102.762241000000003 29.579448999999997,-102.766124000000005 29.572347999999998,-102.768792219428661 29.572598581791439,-102.773961 29.573084,-102.776343296957975 29.562015327831393,-102.777530999999996 29.556497,-102.77572499999998 29.552188999999995,-102.771428999999998 29.548545999999998,-102.79216136048494 29.533953841063816,-102.807296321997939 29.523301326891541,-102.808565712504773 29.522407885546979,-102.808691999999979 29.522319000000003,-102.808681334358837 29.522097795383676,-102.808577631171161 29.519946998869006,-102.807327 29.494009000000002,-102.813953999999995 29.482805999999997,-102.814096473430837 29.482483316434472,-102.814383778328263 29.481832608662831,-102.822314986984821 29.463869465126457,-102.82537225240516 29.456945161410285,-102.827007089548758 29.453242470491304,-102.830969999999979 29.444267,-102.832538999999997 29.433109000000002,-102.830570753051859 29.427471931628293,-102.827354999999983 29.418261999999995,-102.825211066354328 29.40389180477127,-102.824564449740322 29.399557712155943,-102.831802092379931 29.389471209449322,-102.832669213065941 29.388262775214326,-102.84047188579207 29.377388836904565,-102.840778422425643 29.376961642203423,-102.841560439245441 29.370344567434586,-102.842457529677418 29.362753791491347,-102.843015380341285 29.358033509958585,-102.843020777220957 29.357987843989019,-102.861629999999991 29.351638999999995,-102.871857000000006 29.352092999999996,-102.876866000000007 29.354058999999996,-102.879534000000007 29.353326999999997,-102.883721999999992 29.348058999999999,-102.881857488401977 29.34363024944906,-102.879805000000005 29.338754999999999,-102.890489000000002 29.309498999999995,-102.88922161316745 29.299205074185686,-102.888328 29.291947,-102.891022000000007 29.287113000000002,-102.902604999999994 29.279440999999998,-102.90311226801488 29.27677066200776,-102.906295999999998 29.260010999999995,-102.903188999999983 29.254028999999999,-102.887901999999997 29.245611999999998,-102.881135 29.246022,-102.871347 29.241624999999999,-102.870795537867835 29.239589944231255,-102.86823682221636 29.230147538772215,-102.866845999999995 29.225014999999999,-102.878020000000006 29.214697999999999,-102.890063999999995 29.208813999999997,-102.899231 29.208863,-102.908656596973657 29.219194069767902,-102.908787000000004 29.219336999999996,-102.909098471667448 29.219296482603067,-102.910575587951939 29.219104333804097,-102.912131000000002 29.218902,-102.912650757516516 29.218481184275788,-102.915803535402844 29.215928573746115,-102.915865999999994 29.215877999999996,-102.915845750043147 29.215583596781208,-102.915608148145267 29.212129230727648,-102.915554 29.211341999999998,-102.915202931298523 29.21076702044931,-102.914525807203304 29.209658028088604,-102.912447999999998 29.206254999999999,-102.91453363655873 29.20019781620671,-102.917367531146525 29.191967513425833,-102.917805 29.190697,-102.922897000000006 29.192704085059273,-102.925481999999988 29.193722999999995,-102.932612000000006 29.194113000000005,-102.944911000000005 29.188819999999996,-102.947155999999993 29.180776999999999,-102.95089 29.176834999999997,-102.953474999999997 29.176307999999995,-102.977266 29.186226,-102.981742305424802 29.185103060319207,-102.989431999999994 29.183174,-102.98978258837333 29.182935350109393,-102.991725524817895 29.181612768970929,-102.994653 29.17962,-102.994906329461855 29.17910907354543,-102.99809599999999 29.172675999999996,-102.995688 29.161218999999999,-103.00243399999998 29.150260999999997,-103.0050672680876 29.149386797638936,-103.008362000000005 29.148292999999995,-103.010324999999995 29.137821999999996,-103.015028 29.125769999999996,-103.016945338084582 29.124525732477775,-103.024896087692937 29.119366048020158,-103.032982999999987 29.114118,-103.033302941039096 29.107355634443419,-103.034095953658579 29.105913798143234,-103.035682683422891 29.103028844591982,-103.04044215980575 29.099351067768175,-103.049126083320303 29.097714968852063,-103.055369601981923 29.096538655622457,-103.061557539334615 29.093936906572154,-103.06671291432167 29.091769303506382,-103.074407490743866 29.088534080562461,-103.076354546596249 29.085721668416742,-103.076667707631657 29.079576983004682,-103.076847 29.076059,-103.091926967746744 29.064237268591206,-103.100265999999991 29.057699999999997,-103.101359249603803 29.049403674773888,-103.102531654124817 29.040506667933872,-103.100975335951205 29.030701853789079,-103.100368259199087 29.026877266486249,-103.101607999999999 29.018122999999999,-103.107810999999998 29.013812,-103.117237999999986 29.000208999999998,-103.113922000000002 28.988546999999997,-103.115062910480361 28.985887850893185,-103.115327999999991 28.98527,-103.115773294260094 28.985147329619764,-103.126748000000006 28.982123999999995,-103.134930999999995 28.983525,-103.143274000000005 28.978073999999999,-103.156645999999995 28.972830999999999,-103.163865 28.972099,-103.165923000000006 28.974001999999999,-103.166234999999986 28.978836000000005,-103.174329720990258 28.980505274886987,-103.182663652045193 28.982223879127538,-103.194928465619142 28.984753100989199,-103.195705106971403 28.984913258196226,-103.207825367468075 28.987412670652219,-103.227338454203803 28.991436614861634,-103.227579101883322 28.991486240676846,-103.227800999999999 28.991532000000003,-103.228011662384262 28.991347921912006,-103.228737472224623 28.990713704806197,-103.239108999999985 28.981650999999996,-103.245121150470112 28.980239630911282,-103.2474464632202 28.980649978816817,-103.249155161185584 28.980951512720708,-103.25190330878641 28.984768118238364,-103.253285000000005 28.986686999999996,-103.26030800838916 28.989731411362609,-103.266003072061508 28.990206003834011,-103.270357000000004 28.988113999999996,-103.270725571428585 28.987466542857135,-103.27232562100086 28.984655789108508,-103.273357000000004 28.982844,-103.273647076585334 28.982817854078331,-103.281189929980513 28.982137982403092,-103.282424051550748 28.983865752282551,-103.284749352823042 28.987121173462914,-103.285935817906974 28.994002716014545,-103.289257951411443 28.999697788883793,-103.296614077237592 29.004443676810233,-103.302399476821606 29.006455988366771,-103.312987409437454 29.010138745081029,-103.315449022736544 29.011725838031147,-103.323993942362023 29.017235063099889,-103.331021803791103 29.021766184756,-103.332920159881368 29.026986669752301,-103.332783823258595 29.028827200289001,-103.332445567409962 29.033393619832523,-103.334818511373186 29.039800579109659,-103.341462759988346 29.041224342728523,-103.347869719265475 29.037427630547988,-103.350815999999995 29.028566999999999,-103.355428000000003 29.021529,-103.355590463621823 29.021464336016578,-103.361777791205157 29.019001647792766,-103.361998 29.018913999999999,-103.382125000000002 29.024248999999998,-103.386095607142025 29.025822707722725,-103.399799910010643 29.031254261761571,-103.402689272115182 29.032399429564627,-103.427474921518822 29.04222295692054,-103.427754276336316 29.042333676218103,-103.430481680804888 29.047455485683194,-103.434668000000002 29.055316999999995,-103.439550459717495 29.058547821156772,-103.449722032594721 29.065278554178825,-103.453029264571228 29.067467015663059,-103.457386392383299 29.068596640465525,-103.460381908910477 29.067681344107211,-103.463195887793432 29.066821517562918,-103.469166763983068 29.069242141692889,-103.471264639062966 29.073115142802621,-103.471299587628792 29.074897490538035,-103.471426016715213 29.08134526859719,-103.474814887995407 29.086670637304994,-103.484429000000006 29.094524,-103.49531945696836 29.1087608679228,-103.500928937954981 29.116094025764934,-103.503236 29.119109999999996,-103.506163032831353 29.119368513261239,-103.513192088151087 29.119989313955617,-103.524613000000002 29.120998,-103.524225442342612 29.124905426308125,-103.523383999999993 29.133389,-103.525026999999994 29.137353999999998,-103.539240927934515 29.144791265038371,-103.551909954693073 29.151420179312847,-103.558678999999984 29.154961999999998,-103.579462000000007 29.149964999999998,-103.592359999999999 29.150259999999999,-103.598960126757959 29.155019048637598,-103.606437999999997 29.160411,-103.607894091053709 29.162314354517299,-103.610539999999986 29.165772999999998,-103.624537921955991 29.163185608071569,-103.629433693714475 29.1622806680118,-103.638195234739996 29.160661174732635,-103.645634999999999 29.159286000000002,-103.653180000000006 29.162863999999995,-103.656807999999984 29.169098999999999,-103.660202999999996 29.170933999999999,-103.667724667668963 29.172878689431396,-103.669696386484915 29.173388467437,-103.688670000000002 29.178293999999998,-103.688830238367032 29.178273608722382,-103.690116124218548 29.178109972160996,-103.697314000000006 29.177194,-103.699305464408098 29.178139630948273,-103.713769999999997 29.185008,-103.724743000000004 29.191469999999999,-103.73193762439729 29.198544108660482,-103.742175000000003 29.20861,-103.750912464183997 29.219357091602017,-103.755265634411842 29.22471149629115,-103.75594348727293 29.225545256136954,-103.768569999999997 29.227360999999995,-103.777623396259372 29.232265264832392,-103.780085146052983 29.242351446713872,-103.780352362214714 29.243446273985068,-103.781659908552058 29.248803500057083,-103.789034484601103 29.257501704713096,-103.792700821322356 29.259284649416337,-103.795120675584712 29.260461427946989,-103.80876361213285 29.267096007175422,-103.816641821688407 29.27092719156084,-103.818617217853202 29.271599921312173,-103.838302999999982 29.278303999999999,-103.854966933859771 29.281484400071786,-103.856892999999999 29.281852,-103.880606 29.284961999999997,-103.896615144488038 29.284634799403065,-103.910231251371073 29.284356508561018,-103.916269383748329 29.284233099060927,-103.91710599999999 29.284215999999997,-103.91776286712728 29.284516760669142,-103.918698764585329 29.284945281345607,-103.918909999999997 29.285042,-103.918905327188597 29.285488562070029,-103.918900778480648 29.285923264066316,-103.918857000000003 29.290106999999995,-103.924975999999987 29.293913000000003,-103.943697999999983 29.294945999999996,-103.965795999999983 29.298586999999998,-103.975234999999998 29.296016999999999,-103.983459597310627 29.299165977024781,-103.998789342279238 29.305035323921498,-104.012357062242771 29.310230038851625,-104.018558084893087 29.312604243583909,-104.038281999999995 29.320155999999997,-104.047006656168747 29.325575022319434,-104.055595999999994 29.330909999999996,-104.056467149578211 29.334496091467582,-104.057243999999997 29.337694000000003,-104.068917843404819 29.342306667996301,-104.075923999999986 29.345075,-104.082149999999999 29.345922999999996,-104.091021999999995 29.353691999999995,-104.093326000000005 29.359926000000002,-104.098377999999983 29.366755999999999,-104.106466999999981 29.373127,-104.122882935723638 29.379859019095424,-104.125474999999994 29.380922000000002,-104.132831527553293 29.381873417846823,-104.136236243923818 29.382313748953422,-104.143691999999987 29.383277999999997,-104.1467332019064 29.385415391432094,-104.148888696362661 29.386930297552944,-104.151718842950046 29.388919356896473,-104.157422367906094 29.392927859373117,-104.166562999999996 29.399352,-104.180069999999986 29.412763999999999,-104.181273000000004 29.426265,-104.182051945448123 29.427144615030393,-104.195989999999995 29.442884000000003,-104.208194000000006 29.448201,-104.212529153241931 29.452438774515159,-104.213947876032222 29.456222068892099,-104.21370324326665 29.462011765001886,-104.213238514637069 29.473010445135856,-104.218538498245692 29.476600759818915,-104.220568643482977 29.477976020723915,-104.227547514371139 29.480496161448666,-104.229081071868791 29.481049944541308,-104.233824999999996 29.486544999999996,-104.233486999999997 29.492733999999995,-104.235847000000007 29.496744,-104.238313284768751 29.498023301020304,-104.246870092866089 29.50246185307569,-104.254473621536903 29.506405923975272,-104.260293266516271 29.50942466611497,-104.26168489846043 29.511073814728768,-104.264155000000002 29.514001,-104.271046277211582 29.51559593462645,-104.274575430964404 29.516412730896519,-104.293481117436073 29.520788310787555,-104.306646311930564 29.523835296697214,-104.308812834933008 29.524336722260216,-104.311570786550874 29.52540915148019,-104.318073989469781 29.527937921306467,-104.320711000000003 29.526326414398167,-104.326090351466348 29.523039031981277,-104.327483437129615 29.522187701603762,-104.334811000000002 29.519462999999998,-104.338113000000007 29.519967,-104.353150868059984 29.530471948300562,-104.369085650105362 29.541603450512167,-104.37074044290263 29.542759433043344,-104.371174999999994 29.543062999999997,-104.371454921502831 29.543072731712495,-104.371996954766473 29.543091575966443,-104.375901661123379 29.543227326450971,-104.381040999999996 29.543405999999997,-104.394588999999982 29.556087000000002,-104.394583075653415 29.556197720561212,-104.394577025204526 29.556310797858156,-104.394552364240909 29.55677168847231,-104.394503136758885 29.55769170460702,-104.394351 29.560534999999998,-104.39571704642303 29.563607040276512,-104.39636925661604 29.56507376640522,-104.397848504811165 29.56840038104859,-104.399550133070164 29.572227096202102,-104.399591 29.572319,-104.399981791506633 29.572551361916329,-104.452301000000006 29.60366,-104.466520000000003 29.609296,-104.483502 29.627740999999997,-104.486693164979016 29.629712817604439,-104.493658999999994 29.634016999999997,-104.503232654335022 29.63787621670291,-104.507568060311556 29.63962385355849,-104.51068846437596 29.64315687341222,-104.513969549435132 29.646871821353749,-104.51818442992635 29.651644041921735,-104.53325150001281 29.668703453669117,-104.535568725458901 29.671327089370656,-104.539761023554547 29.676073741438437,-104.540155514025756 29.678572204873163,-104.540559188867974 29.681128836544634,-104.537934834631798 29.684482179324355,-104.535770155740693 29.687248158943191,-104.536302269386866 29.690440851131939,-104.537991394981006 29.693268523024599,-104.544269904764263 29.703779029587054,-104.545505621253113 29.70584767433138,-104.552240999999995 29.717122999999997,-104.555600999999996 29.731220999999998,-104.554914970831931 29.738152096413199,-104.554660236582549 29.740725729903364,-104.557361904757329 29.745049367744027,-104.565950999999998 29.758794999999996,-104.565687999999994 29.770461999999998,-104.571279565966023 29.778773775962186,-104.586447318468245 29.801320404476364,-104.592472 29.810276000000002,-104.594023000000007 29.809220999999997,-104.599148999999997 29.811007,-104.610166000000007 29.819117999999996,-104.610205623651026 29.819231101342197,-104.610356932717465 29.819662996386217,-104.613081011852316 29.827438579869643,-104.615248982559379 29.833626813172685,-104.619039 29.844444999999997,-104.624350000000007 29.845221999999996,-104.629290740007292 29.852171499068138,-104.629713747950376 29.852766489555783,-104.630103000000005 29.853313999999997,-104.630111961493199 29.853664893019587,-104.630290851730521 29.860669455113747,-104.630338938536084 29.862552324858758,-104.630359999999996 29.863376999999996,-104.630588419131911 29.86393398222631,-104.633274999999998 29.870484999999999,-104.63616345635748 29.872800876528242,-104.645854762904364 29.880571071602066,-104.65678299999999 29.889332999999997,-104.658422170930251 29.891285606400047,-104.65864999999998 29.891556999999999,-104.658665881124946 29.891956296855856,-104.659041999999999 29.901413000000002,-104.661965712024596 29.903547518850328,-104.666224133352003 29.906656470935726,-104.672326999999996 29.911111999999996,-104.679772 29.924658999999998,-104.680850906343153 29.932111041680564,-104.684321999999995 29.956085999999999,-104.679660999999982 29.975271999999997,-104.680379178583593 29.977083,-104.685479 29.989943,-104.689640999999995 30.014949999999999,-104.693591999999995 30.019077000000003,-104.701242868742796 30.021046973658397,-104.702310999999995 30.021321999999998,-104.702447580064685 30.021555813412469,-104.7030116881661 30.022521518330599,-104.703997999999999 30.02421,-104.703882705803636 30.024660825787098,-104.703121214098445 30.027638426639932,-104.701101999999992 30.035533999999998,-104.706873999999999 30.050685,-104.706630611705322 30.051708605996314,-104.703831250551389 30.063481739403372,-104.703581999999997 30.06453,-104.699792220462342 30.065066336345112,-104.698848962238912 30.065199827927678,-104.698233000000002 30.065286999999998,-104.697787990647399 30.065651654776563,-104.69277799999999 30.069756999999996,-104.687313590037505 30.080921966773531,-104.685080632167896 30.08548438075637,-104.685002999999995 30.085643,-104.685554782105299 30.093963293324606,-104.685687 30.095957000000002,-104.686861171517634 30.098036494960315,-104.692093999999983 30.107303999999996,-104.693655813605488 30.119154117533654,-104.695366000000007 30.13213,-104.692122999999995 30.138662999999998,-104.690080458880587 30.149079251722458,-104.687506999999997 30.162202999999998,-104.687296000000003 30.179464000000003,-104.702787999999998 30.211735999999995,-104.707897632633845 30.218501061672534,-104.711235999999985 30.222920999999999,-104.713166 30.237956999999998,-104.722357186598074 30.248308653999679,-104.724410584274111 30.250621311025988,-104.72532436157617 30.251650460675243,-104.73347160041142 30.260826359409911,-104.733822000000004 30.261220999999999,-104.734059376092361 30.261231667834558,-104.737359999999995 30.261379999999996,-104.740448 30.259454000000002,-104.749663999999996 30.26126,-104.751566999999994 30.263643999999999,-104.754655151309422 30.272796681105522,-104.757893999999993 30.282395999999999,-104.761634 30.301147999999998,-104.779356000000007 30.313188,-104.790279572675416 30.323632238875831,-104.797291 30.330335999999999,-104.809794338457337 30.334925849121163,-104.810755485390246 30.338091979227556,-104.81211787963197 30.342579864771171,-104.813478341684558 30.347061385458392,-104.814379749150064 30.356375955470707,-104.814778573671205 30.360497153782266,-104.817595751374526 30.365914799658352,-104.824313633436745 30.370465624210016,-104.837492999999995 30.373909,-104.849824017938076 30.383147747051474,-104.859521 30.390413000000002,-104.857439999999997 30.408957,-104.852419999999995 30.418792,-104.861074000000002 30.428896999999996,-104.86474141169117 30.441297336779865,-104.865463293164552 30.443738179024677,-104.868454614768496 30.453852504447951,-104.869872 30.458644999999997,-104.86871099999999 30.463229999999996,-104.866118999999983 30.46479,-104.866094000000004 30.467379999999999,-104.870137228360662 30.483875070981508,-104.873288503237063 30.496731258693877,-104.873335488188886 30.496922942181985,-104.876786999999979 30.511004000000003,-104.878566789651714 30.514416830422793,-104.880108146577356 30.517372454871531,-104.88208573587417 30.521164575423189,-104.889375999999999 30.535143999999995,-104.890392881954469 30.540947215529823,-104.892228000000003 30.551419999999997,-104.895440150997459 30.560421421221292,-104.899000999999998 30.570399999999996,-104.909330873116318 30.584188648619556,-104.909747767935556 30.584745133303247,-104.918689620637082 30.596681007395873,-104.924796 30.604831999999998,-104.927016167130404 30.604700501077968,-104.934922481779466 30.604232215677584,-104.939873000000006 30.603939,-104.953391370086464 30.606003357240429,-104.967167000000003 30.608106999999997,-104.971627504383378 30.61006529240159,-104.972071 30.61026,-104.972794851616513 30.611297344530712,-104.980135850742045 30.621817657146149,-104.980290999999994 30.622039999999995,-104.982191641583043 30.62882153037463,-104.983981 30.635206,-104.985513855292751 30.652294791670293,-104.9863 30.661059000000002,-105.001239999999996 30.672583000000003,-105.002056999999994 30.680971999999997,-105.006614566555172 30.685839873047019,-105.006800999999996 30.686039,-105.007528432885024 30.6859080282745,-105.007959930235828 30.685830338698263,-105.020141999999993 30.683637,-105.035888798004834 30.686138071331488,-105.042930223005172 30.687256464175281,-105.044973600167665 30.685364445024991,-105.049769587265445 30.680923708581364,-105.049884734287517 30.6808170907847,-105.050688284649809 30.681171184306308,-105.054688384336032 30.682933873306403,-105.062333999999993 30.686302999999995,-105.062477471553692 30.692159292631892,-105.062625999999995 30.698222,-105.084504902225902 30.710918832086001,-105.098281999999998 30.718914000000002,-105.108075999999997 30.730049999999995,-105.110705999999993 30.737749999999995,-105.110681999999983 30.743366000000002,-105.113815999999986 30.746001,-105.119547104826722 30.748125675649064,-105.123265000000004 30.749504000000005,-105.140207000000004 30.752502,-105.152361999999982 30.751451999999997,-105.157640215066564 30.754007791997694,-105.16015278062757 30.757058756266805,-105.160271207191187 30.758203550015399,-105.161229588477383 30.767467931854636,-105.164076390339474 30.771453450048199,-105.164818961888187 30.77249304906519,-105.164868027003308 30.772491740665838,-105.170370203038615 30.772345016388588,-105.178279098267282 30.772134113115257,-105.183436 30.776644999999995,-105.185930999999997 30.784391999999997,-105.195143999999999 30.792138,-105.195988495740664 30.791702299374609,-105.203522176185984 30.787815448176353,-105.206160999999994 30.786453999999996,-105.212916518294108 30.785414778041517,-105.215967484302155 30.786491589369188,-105.216685356202021 30.789542555377231,-105.215888956387687 30.792967070566242,-105.214890669496626 30.797259699168034,-105.218659510882389 30.801566944478708,-105.222008841883465 30.801829013843189,-105.231580057313238 30.802577916338681,-105.238364256021057 30.803108747911697,-105.249792715464977 30.799033957074698,-105.255416052233826 30.797028969328842,-105.261224946310648 30.798054073736733,-105.261360733612406 30.798078036329223,-105.27276013440985 30.808707209360072,-105.27887297001547 30.814407016614517,-105.283004544196217 30.818259431108679,-105.287237620233441 30.822206489243744,-105.289317685342255 30.822206489243744,-105.295630129130572 30.822206489243744,-105.300778681061615 30.818848737795758,-105.303672944509898 30.816961174571279,-105.314862960890409 30.816961174571279,-105.316949659843416 30.82296045428,-105.31766045482081 30.825003996727105,-105.320108268786385 30.827451797139727,-105.322675464925993 30.828439452154051,-105.330102631610075 30.831296841312803,-105.347695000000002 30.838065,-105.353219571709047 30.842032277683753,-105.358103536812379 30.84553952616983,-105.359771122039604 30.846737044096301,-105.360672052753856 30.84738401593513,-105.36720323988537 30.847875849249167,-105.377416999999994 30.848644999999998,-105.387780492422849 30.851314552204784,-105.394242074789418 30.852979003795937,-105.396689881978517 30.855426817761515,-105.396237319899697 30.858492407966825,-105.394628539050657 30.86939005724841,-105.394248999999988 30.871960999999999,-105.395681745186749 30.87649980844607,-105.399608999999998 30.888940999999996,-105.399828021807267 30.889112280223049,-105.402824820246408 30.891455847338634,-105.413505 30.899808,-105.430088999999995 30.905791999999998,-105.44547819369545 30.915748838601054,-105.448693870984556 30.917829388134351,-105.452149246331331 30.920065022782566,-105.4597280766598 30.924968540917344,-105.469954295993247 30.931584924947412,-105.472488639470896 30.933224650164071,-105.476269681741059 30.935670991952524,-105.488027000000002 30.943277999999999,-105.495516502166126 30.9493992090351,-105.4968561000139 30.950494069316512,-105.497422439936116 30.953962910943051,-105.497963910074574 30.957279424722472,-105.502256687477072 30.962680017552614,-105.507558525965123 30.966493977230062,-105.533087999999992 30.984859,-105.541468808393844 30.984769556162778,-105.543675999999991 30.984745999999998,-105.557430349577899 30.990228688381027,-105.570063935625512 31.008532833135739,-105.575218046011173 31.016000355201566,-105.578084306850855 31.020153131231776,-105.578407858220658 31.020621907958049,-105.57911399999999 31.021644999999999,-105.580554486932016 31.024917232759986,-105.581339666024604 31.026700857930102,-105.581404000000006 31.026847000000004,-105.581361569643192 31.027041810483581,-105.581235244876609 31.027621805343596,-105.579823718925667 31.034102543987302,-105.579541999999989 31.035395999999995,-105.579765234089464 31.036249085539566,-105.579847333127134 31.036562825712579,-105.585323000000002 31.057487999999996,-105.592709163135751 31.0626132919136,-105.595921000000004 31.064841999999999,-105.598772999999994 31.074925999999998,-105.60333 31.082624999999997,-105.627348999999995 31.098545,-105.641890000000004 31.098321999999996,-105.646730999999988 31.113907999999999,-105.647031366805422 31.114192798578223,-105.648833999999994 31.115902000000002,-105.662869191777489 31.12063916934996,-105.673930643060629 31.124372639388369,-105.709491 31.136374999999997,-105.717005999999998 31.141438,-105.717653520299876 31.143411480377267,-105.719539999999995 31.149160999999996,-105.742677999999998 31.164897,-105.763531 31.164121000000005,-105.773256999999987 31.166896999999999,-105.774148788612138 31.168976038235485,-105.780021000000005 31.182666,-105.779878030009812 31.18682806893737,-105.779724999999999 31.191282999999995,-105.782894999999996 31.197562999999999,-105.790659746923424 31.200723362140888,-105.794386000000003 31.20224,-105.818835000000007 31.230680999999997,-105.825806058218902 31.23733997673531,-105.835722000000004 31.246811999999995,-105.851073632158958 31.265902599748792,-105.86604427072389 31.284519412988434,-105.869353000000004 31.288633999999998,-105.869862116496506 31.288859823963843,-105.876014999999981 31.291588999999995,-105.890871999999987 31.290013999999996,-105.895034999999993 31.290977999999999,-105.903460999999993 31.306768999999999,-105.908770999999987 31.312773999999997,-105.914613899052299 31.312859252963214,-105.93196564998388 31.313112430054005,-105.932552999999999 31.313120999999995,-105.933375187723101 31.313903465142818,-105.938451999999984 31.318735,-105.948091000000005 31.340069,-105.945903 31.352809999999998,-105.953942999999995 31.364749,-105.970101 31.365936999999995,-105.997579969562565 31.386863626037869,-106.00418474278807 31.391893495117941,-106.004925999999998 31.392457999999998,-106.006143777923754 31.392558937255828,-106.022866323827969 31.393945009265412,-106.080091217088636 31.398688175961098,-106.080258 31.398702,-106.080335505244278 31.398768097394733,-106.096409750603954 31.412476405141465,-106.100621535494 31.416068265421309,-106.102641400977276 31.417790830744398,-106.10264993125142 31.41779810546371,-106.106876999999997 31.421403000000005,-106.112168999999994 31.423577999999996,-106.132782000000006 31.425367000000005,-106.143572676566535 31.431101721097118,-106.158218000000005 31.438885000000003,-106.175305198785026 31.455910533348611,-106.175674999999998 31.456278999999995,-106.17677981450808 31.456634312625521,-106.182946895641223 31.45861766980741,-106.20560859826729 31.465905761156737,-106.205826999999999 31.465975999999998,-106.205998876707866 31.466165148890862,-106.212686244283063 31.473524541419071,-106.218538531147885 31.479964934554566,-106.218843000000007 31.480299999999996,-106.218893022078106 31.480498686193428,-106.223908999999992 31.500422,-106.236804000000006 31.513376,-106.242649095206133 31.530650094003715,-106.245874455325477 31.540182047193959,-106.246202999999994 31.541153,-106.246406806009631 31.541315626597875,-106.254779999999997 31.547997000000002,-106.280345588488331 31.561810530102129,-106.280548572587122 31.561920205925162,-106.280811 31.562061999999997,-106.287785 31.584444999999999,-106.292254713772053 31.594651759250389,-106.295141086978958 31.601242900860864,-106.303535999999994 31.620412999999996,-106.308594276522342 31.627497440426588,-106.330970256390501 31.658836434185069,-106.33473699999999 31.664111999999999,-106.338265602146336 31.671883697950737,-106.346992532059133 31.691104641686092,-106.349537999999995 31.696711,-106.357472918704602 31.702103016258707,-106.368303742040567 31.709462886938788,-106.370138999999995 31.710709999999999,-106.373839000000004 31.714809999999996,-106.378039 31.72831,-106.381039 31.732109999999999,-106.38595139194058 31.734759025425479,-106.394642915450532 31.739445961452269,-106.404086535473255 31.744538468290354,-106.417940000000002 31.752009,-106.421739999999616 31.752623660686648,-106.431540999999996 31.754208999999996,-106.434644983693715 31.755853956158482,-106.444263765046571 31.76095142933643,-106.451540999999992 31.764807999999999,-106.467641999999998 31.759607999999997,-106.470742 31.753508,-106.472156160715315 31.752506597443457,-106.47367184987327 31.751433300058491,-106.475016438009845 31.750481163584279,-106.475542000000004 31.750108999999998,-106.48261401078824 31.748321568701869,-106.484641999999994 31.747809000000004,-106.486162292248409 31.747994847970777,-106.488078402545341 31.748229082678503,-106.489542 31.748407999999998,-106.507341999999994 31.761208,-106.509102011460428 31.762827435120251,-106.511609062807707 31.765134242258316,-106.523643000000007 31.776206999999996,-106.528643000000002 31.781807,-106.528542999999999 31.783906999999996,-106.528542999999999 31.784407000000002,-106.527996999999999 31.786944999999999,-106.527623000000006 31.789119000000003,-106.527737999999985 31.789760999999995,-106.527942999999993 31.790507000000002,-106.530514999999994 31.792103,-106.532480000000007 31.791913999999998,-106.533 31.791829,-106.533043000000006 31.791906999999995,-106.534743000000006 31.796106999999999,-106.535154000000006 31.797088999999996,-106.535342999999997 31.797507,-106.535842999999986 31.798607,-106.542096999999998 31.802145999999997,-106.542143999999993 31.802106999999996,-106.544713999999999 31.804286999999999,-106.545344 31.805007,-106.546561898485905 31.806561850400339,-106.546615562760394 31.806630361790774,-106.547143999999989 31.807304999999996,-106.551861034152338 31.808599471053657,-106.558443999999994 31.810406,-106.560680020141419 31.810752754512048,-106.560847305685968 31.810778696593822,-106.562944999999999 31.811104,-106.56344399999999 31.812605999999995,-106.566844000000003 31.813305999999997,-106.569123704016391 31.811582321353455,-106.570943999999997 31.810205999999997,-106.577243999999993 31.810406,-106.581344 31.813905999999996,-106.582144 31.815505999999999,-106.588044999999994 31.822105999999998,-106.589044999999984 31.822705999999997,-106.593826000000007 31.824901,-106.602727000000002 31.825023999999996,-106.605266999999998 31.827911999999998,-106.603310537982878 31.834798487166189,-106.601945 31.839604999999999,-106.60204499999999 31.844404999999998,-106.605244999999982 31.845904999999998,-106.605845000000002 31.846304999999997,-106.614637000000002 31.846489999999996,-106.621857000000006 31.852854,-106.625763000000006 31.856276,-106.627808000000002 31.860592999999998,-106.629708357956787 31.861913746439043,-106.635925999999998 31.866235,-106.635879999999986 31.871514,-106.634872999999999 31.874477999999996,-106.630798999999996 31.879696999999997,-106.629271361585637 31.8835303997664,-106.629197000000005 31.883717000000004,-106.629948941610351 31.885072003811555,-106.630443527558498 31.88596325099838,-106.630530381920593 31.886119763139838,-106.630691999999982 31.886410999999999,-106.633926999999986 31.889183999999997,-106.635073463799642 31.889856364267651,-106.636317332120683 31.890585853164694,-106.638154 31.891662999999998,-106.638364165758659 31.89171923904625,-106.642899999999983 31.892932999999999,-106.645296000000002 31.894859,-106.645645999999999 31.895648999999995,-106.645478999999995 31.898669999999999,-106.640839999999997 31.904598,-106.63512839833713 31.908732779117901,-106.633668 31.90979,-106.633408736085542 31.909871832166754,-106.625946999999996 31.912227,-106.62344499999999 31.914034,-106.618336531290581 31.916262323146238,-106.614677480394235 31.917858407661853,-106.614345999999998 31.918002999999995,-106.611846 31.920003,-106.616063629645311 31.921863544491501,-106.623932999999994 31.925334999999997,-106.624022586877501 31.92530240401349,-106.628663000000003 31.923614,-106.629746999999995 31.926570000000002,-106.625321999999983 31.930053000000004,-106.622529 31.934863000000004,-106.622117000000003 31.936620999999999,-106.622377 31.940863,-106.623659000000004 31.945509999999995,-106.616135999999983 31.948439,-106.614701999999994 31.956,-106.617707999999993 31.956008,-106.622819000000007 31.952891,-106.625123000000002 31.954530999999999,-106.625534999999985 31.957475999999996,-106.624298999999993 31.961054,-106.620453999999981 31.963402999999996,-106.619370999999987 31.964777000000005,-106.618745000000004 31.966954999999995,-106.619568999999998 31.971578,-106.621872999999994 31.972933,-106.623215999999999 31.972909999999999,-106.626465999999994 31.97069,-106.630114000000006 31.971257999999999,-106.638186000000005 31.976819999999996,-106.639528999999996 31.980347999999996,-106.63649199999999 31.985719,-106.631181999999995 31.989809,-106.629494617643616 31.990072722748106,-106.628337072326531 31.990253636712819,-106.62822051159516 31.990271854111079,-106.626910882874782 31.990476537349483,-106.623567999999992 31.990998999999999,-106.619448000000006 31.994733,-106.618486000000004 32.000494999999994,-106.599096000000003 32.000731000000002,-106.598639000000006 32.000753999999993,-106.595332999999997 32.000777999999997,-106.587971999999979 32.000748999999999,-106.582805114232855 32.000751357586125,-106.566056000000003 32.000759000000002,-106.565141999999994 32.000736000000003,-106.564298514026802 32.00073927393025,-106.562131862706067 32.000747683631808,-106.55942760630407 32.000758180008894,-106.517043115844388 32.000922692365819,-106.411074999999983 32.001334,-106.409326934223301 32.001349629127162,-106.409108574114072 32.001351581443814,-106.394297999999992 32.001483999999998,-106.376861000000005 32.001171999999997,-106.32356972407176 32.001457096670784,-106.313306999999995 32.001511999999998,-106.205915000000005 32.001761999999999,-106.200699 32.001784999999998,-106.18183999999998 32.002049999999997,-106.125534000000002 32.002532999999993,-106.05045734599986 32.002412317859424,-105.998002999999997 32.002327999999999,-105.900599999999997 32.002099999999992,-105.886159000000006 32.001969999999993,-105.854061000000002 32.00235,-105.750527000000005 32.002206,-105.731362000000004 32.001564000000002,-105.563520259526442 32.001015604709174,-105.429281000000003 32.000577,-105.428582000000006 32.000599999999999,-105.427048999999997 32.000638000000002,-105.390395999999981 32.000607000000002,-105.340142768272344 32.000583616714373,-105.200871148394683 32.000518812363367,-105.153993999999997 32.000497000000003,-105.150310000000005 32.000497000000003,-105.14824 32.000484999999998,-105.132915999999994 32.000518,-105.131377 32.000523999999999,-105.118039999999993 32.000484999999998,-105.078604999999996 32.000532999999997,-105.077045999999996 32.000578999999995,-104.918272000000002 32.000495999999991,-104.643525999999994 32.000442999999997,-104.640917999999999 32.000396000000002,-104.531936999999999 32.000311000000004,-104.531756 32.000117000000003,-104.024520999999993 32.000010000000003,-103.980179000000007 32.000124999999997,-103.875476000000006 32.000554,-103.748317 32.000197999999997,-103.72373965094468 32.000208021677786,-103.713395184678689 32.000212239744897,-103.713395184670219 32.000212239744904,-103.713395184654971 32.000212239744911,-103.713395184639609 32.000212239744918,-103.60161412595366 32.000257819670985,-103.326500999999993 32.00036999999999,-103.278520999999998 32.000419,-103.270382999999995 32.000326,-103.267707999999999 32.000323999999992,-103.267633000000004 32.000475000000002,-103.215641000000005 32.000512999999998,-103.133028835827503 32.000473953106116,-103.088697999999994 32.000452999999993,-103.085875999999985 32.000464999999998,-103.064422999999991 32.000518,-103.064344000000006 32.087051000000002,-103.064347999999995 32.123041,-103.064421999999993 32.145006000000002,-103.064695999999998 32.522193,-103.064761000000004 32.587983,-103.064787999999993 32.600397,-103.064761000000004 32.601863000000002,-103.064814999999996 32.624536999999997,-103.064633 32.646419999999992,-103.064864 32.682647000000003,-103.064797999999996 32.690761000000002,-103.064798999999994 32.708694,-103.064826999999994 32.726627999999998,-103.064807000000002 32.777302999999996,-103.064698000000007 32.783602000000002,-103.064711000000003 32.784593,-103.064699000000005 32.827531,-103.064672000000002 32.828470000000003,-103.064888999999994 32.849359,-103.064915999999982 32.857259999999997,-103.064807000000002 32.857695999999997,-103.064862000000005 32.868346000000003,-103.064700999999985 32.879354999999997,-103.064569000000006 32.900013999999999,-103.064656999999997 32.959097,-103.064678999999998 32.964373000000002,-103.064625000000007 32.999898999999999,-103.064452000000003 33.010289999999998,-103.06398 33.038693000000002,-103.063904999999991 33.042054999999998,-103.063382198608849 33.066417104805645,-103.0628188509327 33.092668632365545,-103.062136190569035 33.12448003074244,-103.060102999999984 33.219225000000002,-103.059719999999999 33.256262,-103.059241999999998 33.260370999999992,-103.057856 33.315233999999997,-103.057486999999995 33.32947699999999,-103.056655000000006 33.388437999999994,-103.052609999999987 33.570599,-103.051664000000002 33.629489,-103.051362999999995 33.64195,-103.051535 33.650486999999998,-103.051086999999981 33.658186,-103.050532000000004 33.672407999999997,-103.050147999999993 33.701971,-103.049608000000006 33.737766,-103.049096000000006 33.746270000000003,-103.047346000000005 33.824674999999999,-103.046907000000004 33.850299999999997,-103.045643999999996 33.901536999999998,-103.045698000000002 33.90629899999999,-103.044893000000002 33.945616999999999,-103.043949999999981 33.974629,-103.043616999999998 34.003633,-103.043531000000002 34.018014,-103.043554999999984 34.032713999999991,-103.043745999999999 34.037294000000003,-103.043771000000007 34.041538000000003,-103.043720999999991 34.042319999999997,-103.043767000000003 34.043544999999995,-103.043744000000004 34.049985999999997,-103.04368599999998 34.063077999999997,-103.043515999999983 34.079382000000003,-103.043569000000005 34.087947,-103.043571175003294 34.092846731402311,-103.043572866326429 34.096656853966635,-103.04358003846437 34.112813863799865,-103.043644 34.256903,-103.043718999999982 34.289440999999997,-103.043935999999988 34.302584999999993,-103.043978999999979 34.312763999999994,-103.043947553639484 34.376410480771497,-103.043947499824213 34.37651940122479,-103.043946000000005 34.379555000000003,-103.043943999999982 34.37966,-103.043919000000002 34.380915999999992,-103.043693000000005 34.383578,-103.043629999999993 34.384689999999999,-103.043614000000005 34.384968999999998,-103.043612999999993 34.388679000000003,-103.043612999999993 34.390442,-103.043606047260084 34.391254973944719,-103.043584999999993 34.393715999999998,-103.043610999999999 34.397105000000003,-103.043582999999998 34.400677999999999,-103.043537999999998 34.405462999999997,-103.043582 34.455657000000002,-103.043587999999986 34.459662000000002,-103.043588999999997 34.459774000000003,-103.043593999999985 34.46266,-103.043434927764125 34.510540742996007,-103.043071999999981 34.619782,-103.043277851519235 34.65183038816317,-103.0432796163159 34.65210514391012,-103.043285999999995 34.653098999999997,-103.042827000000003 34.671187999999994,-103.042768999999993 34.747360999999998,-103.042770000000004 34.792223999999997,-103.042781000000005 34.850242999999999,-103.042520999999979 34.899546,-103.0425974544018 35.032467348285799,-103.042641999999987 35.109912999999999,-103.043261 35.125058000000003,-103.042519999999996 35.135596,-103.042599999999993 35.142766000000002,-103.042710999999997 35.144734999999997,-103.042568000000003 35.159317999999999,-103.042394999999999 35.178573,-103.042338999999984 35.181922,-103.042366 35.182786,-103.042377000000002 35.183149,-103.042496999999997 35.211862000000004,-103.042775000000006 35.241236999999998,-103.042366 35.250056,-103.041554000000005 35.622487,-103.041484634909168 35.651235429903174,-103.041145999999998 35.791583000000003,-103.041916999999998 35.796441000000002,-103.041715999999994 35.814072000000003,-103.042186 35.825216999999995,-103.04130499999998 35.837693999999999,-103.040823999999986 36.055230999999992,-103.041387523024824 36.229129564686382,-103.041674 36.317534000000002,-103.041745000000006 36.318266999999999,-103.041923999999995 36.500439,-103.00243399999998 36.500397)),((-96.818513748151517 28.172441936006489,-96.816443421354066 28.174808025412563,-96.791958210781445 28.188687337716829,-96.733036581469989 28.190913261798631,-96.70383764358462 28.198245729538105,-96.697421731775194 28.2029594609741,-96.702659211994316 28.211208487181011,-96.703313894801497 28.216445964862743,-96.686815839850283 28.218410020896432,-96.662461568376486 28.227313732447904,-96.66062845144161 28.228884976259902,-96.663116248646261 28.233205895474203,-96.651855673914184 28.251275190431315,-96.607991796426646 28.277069769155677,-96.608122730450688 28.280081317680857,-96.611527096272326 28.281390688369981,-96.610479598706064 28.283092866206033,-96.592934048725994 28.296972182316367,-96.581018783574592 28.302209665072866,-96.553260151988255 28.302340591484768,-96.546975176740276 28.305614018207578,-96.542130508742858 28.315958034472228,-96.528905880514458 28.322504882843088,-96.476269225261575 28.330753906512612,-96.45099839278295 28.337038879223222,-96.434107525610045 28.344764159184386,-96.418918843885365 28.35484630740093,-96.415252604940861 28.362833452872817,-96.417216660974546 28.367154372087118,-96.412895739222876 28.36951123780511,-96.403206408302779 28.371475291301415,-96.401242352269094 28.366892498964241,-96.400558825492723 28.362187299887704,-96.398667286465624 28.349166496619617,-96.397846 28.343512999999998,-96.413700000000006 28.327342999999999,-96.439098999999999 28.319051999999999,-96.495600517783487 28.293964130304811,-96.547774000000004 28.270797999999999,-96.587113635820756 28.248878526668094,-96.611036668198281 28.235548960715661,-96.621533999999983 28.229699999999998,-96.694665999999998 28.18212,-96.758140999999995 28.136872999999998,-96.830820125734775 28.079724674840076,-96.849624000000006 28.064938999999999,-96.854049189790473 28.060788472935577,-96.855594496383262 28.059339080448503,-96.859762278796424 28.055429983997605,-96.896530613737951 28.020943786452513,-96.898080497387397 28.019490100997579,-96.929052999999996 27.990439999999996,-96.96699599999998 27.950531000000002,-97.001440999999986 27.911442,-97.031660000000002 27.869974999999997,-97.041798999999997 27.852925999999997,-97.045408776308051 27.837452569961062,-97.045409609838757 27.837448997003069,-97.04598 27.835004,-97.050599498412936 27.830109781194331,-97.058265753683145 27.821987615677948,-97.076304165860961 27.802876463727326,-97.079565315161531 27.799421374709375,-97.083535350812468 27.795215242050556,-97.085211615730273 27.793439290085495,-97.085394999999991 27.793244999999999,-97.11422230692618 27.755303327915222,-97.116276999999997 27.752599,-97.117304906633777 27.751048809529347,-97.118830196202964 27.748748513687826,-97.139140047561696 27.718119138409879,-97.139351757288111 27.717799858049549,-97.143807202733072 27.711080581371732,-97.165547551982726 27.678293865995041,-97.166583141799606 27.676732088482499,-97.166681999999994 27.676583,-97.184850261879149 27.644709535797791,-97.192144670654784 27.631912600211269,-97.198729900630283 27.620359811436909,-97.201865999999995 27.614857999999998,-97.211651066704889 27.596044174137351,-97.213608899397855 27.592279833590187,-97.221943360361436 27.576255098965802,-97.265194083077162 27.493096589152017,-97.265746568141566 27.492034321708481,-97.276090999999994 27.472145,-97.304469999999995 27.407734,-97.326522999999995 27.347611999999998,-97.347445832595042 27.277936119324231,-97.350397999999998 27.268104999999998,-97.363400999999996 27.210366,-97.370941000000002 27.161165999999998,-97.377001000000007 27.101020999999999,-97.379130000000004 27.047996,-97.378361999999996 26.992877,-97.370730999999992 26.909706,-97.365301177044699 26.875333999999995,-97.365282052674758 26.875212938438843,-97.364726000000005 26.871692999999997,-97.363633430415348 26.866515420001111,-97.352028350385282 26.811520085064032,-97.35141299999998 26.808603999999999,-97.350529648372714 26.805138580575584,-97.333027999999999 26.736478999999996,-97.304204860681779 26.646364129642233,-97.300690000000003 26.635375,-97.297812715808362 26.627503004299889,-97.297022484076606 26.625340999999999,-97.287871455917369 26.600304594305239,-97.275119000000004 26.565415000000002,-97.269391999999982 26.554046,-97.269132970349304 26.553256905349773,-97.257954534248029 26.519203490608863,-97.229844 26.433568999999999,-97.223724090442104 26.411478908273114,-97.206682644704898 26.34996703527348,-97.194643999999997 26.306512999999999,-97.185844000000003 26.267102999999995,-97.177979856301576 26.220346386353309,-97.177168840972797 26.215524458900923,-97.173264999999986 26.192314,-97.170387765328073 26.167037808112223,-97.169872392484734 26.162510314053797,-97.167099005951158 26.138146416702778,-97.161470999999992 26.088705,-97.158662630175101 26.080176913346069,-97.154270970414501 26.066840900880429,-97.161462285840642 26.067639941946975,-97.169842256221145 26.077853024187579,-97.171781452365479 26.102521767945923,-97.179531587141199 26.146202099560895,-97.178745972847352 26.177103221942961,-97.183983445454302 26.214289306886101,-97.194458400817808 26.271639686993655,-97.214884565299002 26.353606215503973,-97.226930759399721 26.385554824668418,-97.240286324189555 26.405980989149626,-97.240845398636537 26.411470089808617,-97.243166933615896 26.434263367616055,-97.247618791929028 26.456260775909261,-97.254165635225121 26.471187589585856,-97.262545605605609 26.482971915638458,-97.27642492679071 26.521729238684483,-97.292399243108349 26.528014213932472,-97.310730412457033 26.556558470596535,-97.308111681228326 26.5712234060755,-97.308635417324538 26.576722756880109,-97.317015387705027 26.597672667607057,-97.318434072834165 26.60022630157264,-97.324871601690262 26.611813856840271,-97.338489044677715 26.647428701777493,-97.33639404954522 26.666021744249065,-97.345821512417203 26.700589103038251,-97.363105189274393 26.710540307081217,-97.370437657013895 26.723895871871047,-97.370961403259614 26.736203954318924,-97.367557047587525 26.740393934434408,-97.364152671616353 26.758986971196869,-97.364646278833362 26.767121661774897,-97.368866408127118 26.774699404876429,-97.370437646864346 26.781508126370166,-97.368342661881371 26.795649318140761,-97.373056398392137 26.808481136684847,-97.387459455673451 26.820789208983193,-97.383531343606066 26.875520854055946,-97.385626348888096 26.88887641440536,-97.391649435788921 26.901970109878395,-97.389554460955466 26.945964918852653,-97.390340075249313 27.05228571820243,-97.389816329003565 27.067212531879022,-97.386411973331462 27.083186832972341,-97.387459455673422 27.090519300711819,-97.390601943297412 27.094185534581555,-97.390078197051665 27.156511519247964,-97.377508246555678 27.199458835730731,-97.379865109736301 27.202863196477598,-97.386673841379576 27.204696313412462,-97.382221972916923 27.229050589961044,-97.37488951532697 27.25026236588155,-97.373318276589728 27.276449754290233,-97.372896734486858 27.277942715507475,-97.367033301341749 27.298709035706306,-97.36467643816114 27.302637142698917,-97.359962701650375 27.304732132756659,-97.357605838469766 27.307874620380655,-97.362319574980518 27.32672953597509,-97.366771423144115 27.333276389420721,-97.36179581858525 27.359987519000377,-97.346607126710992 27.390364889744752,-97.336132171347501 27.402411088920228,-97.331156576938184 27.412362295500575,-97.329585328051422 27.418123524502818,-97.330894688591016 27.425455992242295,-97.329847196099536 27.434359703793774,-97.317277255753083 27.463689574751687,-97.293708603647858 27.497209429631152,-97.282971770086746 27.521563701104967,-97.267627232015485 27.541048841138782,-97.26651977444007 27.542455137362143,-97.266473727822444 27.542513609294531,-97.257831889393842 27.556392930479635,-97.261144559602045 27.562355746269706,-97.261759991311692 27.563463525096239,-97.260450620622564 27.56739163716362,-97.260303240478223 27.567589679048492,-97.252732825146552 27.577762415194865,-97.252070650242061 27.578652211895708,-97.247885553160842 27.581360217573209,-97.247618802078478 27.581532821322067,-97.236881968517352 27.598292751933528,-97.24107194863285 27.602482732049012,-97.241084821027414 27.602523494839662,-97.242643187370078 27.607458346757408,-97.231683715414945 27.631671123728168,-97.231553918442799 27.631957884363242,-97.231382612637987 27.632336350521356,-97.221955159915538 27.632860099304484,-97.221711030183002 27.632638163711842,-97.219074540339648 27.630241360463614,-97.217418907944051 27.630677052710489,-97.214098935780783 27.631550728615359,-97.200743370990949 27.650143776161688,-97.197339005169326 27.664546838517776,-97.19760088336696 27.678426154628117,-97.203474366386629 27.684532651921231,-97.20308902068453 27.688000774441392,-97.200450811776179 27.688974477466285,-97.190006537429824 27.692829222058965,-97.188284576858237 27.695272543577584,-97.170627865440125 27.720325976082009,-97.166176017276527 27.732372180332245,-97.161200407642937 27.734074342943998,-97.153606061705801 27.733288721037997,-97.147321086457822 27.735383711095739,-97.130823034043985 27.751619892924076,-97.127942424617643 27.75580987303956,-97.127680546420009 27.759999858229808,-97.125046985317312 27.763143140340585,-97.103326269871417 27.789067861139614,-97.102999946318647 27.791923200131116,-97.10255066693685 27.795854405604921,-97.102495980878558 27.796332909939515,-97.102278777379922 27.798233445813956,-97.100865886772965 27.802472121847156,-97.098874421707819 27.808446522979796,-97.095168997779496 27.812151946908138,-97.092851314507953 27.81446963017968,-97.092589446459854 27.819183356540908,-97.098874421707819 27.822849590410645,-97.104263831428213 27.822227735056668,-97.126109297533233 27.819707102786651,-97.130299287798252 27.820492727230029,-97.134489267913736 27.825206463740791,-97.132394272781227 27.827301438574235,-97.10670775348396 27.832389859144307,-97.087681973298601 27.836158807756469,-97.056712719518927 27.842293721800239,-97.055822986229373 27.843403727743151,-97.04322620548075 27.859119113080268,-97.013634476624247 27.906780143237341,-97.017955395838555 27.911493874673329,-97.016384146951765 27.917255079570445,-96.985744902767337 27.954048356415132,-96.977888688782102 27.976438572489602,-96.978805242174786 27.978271691961854,-96.980900237307296 27.978271691961854,-96.986006780964971 27.976176699366729,-96.986661461234775 27.980759491703903,-96.978281501003806 28.001709402430844,-96.967806540565562 28.020040576854303,-96.966759042999328 28.020367911280101,-96.965187799187319 28.013297317932185,-96.962569062883844 28.012380759464751,-96.952617853766114 28.01643980428749,-96.946987563862692 28.02652194996665,-96.932453562407773 28.035425661518129,-96.926430465357427 28.043412814602167,-96.929572952981431 28.051399967686208,-96.927085150701998 28.057292130712504,-96.906004298338829 28.076147047258459,-96.890946545563423 28.076801730065643,-96.886232814127425 28.084396073465374,-96.88832780925992 28.086622002621937,-96.889113433703315 28.099453823703399,-96.886887499471996 28.117130312782294,-96.879424092633712 28.131402425890027,-96.874972236857971 28.133235547899659,-96.87078225420511 28.13127149186597,-96.86462821551855 28.126295887307109,-96.857164811217643 28.115559058820768,-96.845380482627661 28.108881273888468,-96.830128556765757 28.111822717849165,-96.827049318353744 28.112416571196771,-96.816574357915513 28.119618104912195,-96.810420321766344 28.126034014184238,-96.810944073086844 28.136378030448888,-96.816836228500989 28.158048094801106,-96.820248352517055 28.163388807027481,-96.822859330626116 28.167475552598326,-96.818513748151517 28.172441936006489)))'));
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/country.postgresql_psycopg2.sql b/webapp/django/contrib/gis/tests/geoapp/sql/country.postgresql_psycopg2.sql
new file mode 100644
index 0000000..01c9e73
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/country.postgresql_psycopg2.sql
@@ -0,0 +1,4 @@
+-- New Zealand bondary courtesy of 'world_borders.shp', which was assembled from public domain sources by Schuyler Erle. See: http://mappinghacks.com/data/
+-- Texas boundary data is a data product from the U.S. Census Bureau.  See 'state.sql' for more information.
+INSERT INTO geoapp_country ("name", "mpoly") VALUES ('New Zealand', 'SRID=4326;MULTIPOLYGON (((174.616364000000004 -36.100861000000002,174.634978999999987 -36.124718,174.708862000000011 -36.205559,174.781096999999988 -36.266945,174.812744000000009 -36.339165,174.768311000000011 -36.34639,174.710784999999987 -36.525832999999999,174.708587999999992 -36.533332999999999,174.70773299999999 -36.541671999999998,174.714690999999988 -36.595832999999999,174.717194000000006 -36.603057999999997,174.774414000000007 -36.730277999999998,174.808319000000012 -36.805275000000002,174.854400999999996 -36.847777999999998,174.896636999999998 -36.878334000000002,175.011658000000011 -36.871941,175.020813000000004 -36.873610999999997,175.055542000000003 -36.880279999999999,175.076629999999994 -36.890839,175.082458000000003 -36.895279000000002,175.087463000000014 -36.900832999999999,175.091644000000002 -36.925559999999997,175.161652000000004 -36.955559,175.221069 -36.937775000000002,175.230255 -36.939438000000003,175.278320000000008 -36.965279000000002,175.310516000000007 -36.995002999999997,175.319976999999994 -37.005836000000002,175.323853000000014 -37.012222,175.328856999999999 -37.026947,175.330261000000007 -37.035277999999998,175.330535999999995 -37.044449,175.321899000000002 -37.06472,175.31942699999999 -37.095275999999998,175.317748999999992 -37.144165,175.319121999999993 -37.152495999999999,175.328856999999999 -37.168892,175.373290999999995 -37.216659999999997,175.385254000000003 -37.225830000000002,175.404967999999997 -37.228050000000003,175.579131999999987 -37.244446000000003,175.58914200000001 -37.169449,175.551636000000002 -37.024718999999997,175.547484999999995 -37.009171000000002,175.542480000000012 -36.994446000000003,175.536102 -36.980826999999998,175.524993999999992 -36.961669999999998,175.498566000000011 -36.927222999999998,175.484406000000007 -36.920279999999998,175.476348999999999 -36.917777999999998,175.464416999999997 -36.90889,175.435241999999988 -36.866942999999999,175.46691899999999 -36.809998,175.509430000000009 -36.776108,175.486358999999993 -36.679726000000002,175.463593000000003 -36.621383999999999,175.378296000000006 -36.570557,175.366364000000004 -36.561667999999997,175.361633000000012 -36.556389000000003,175.356628 -36.541671999999998,175.353850999999992 -36.525002,175.35244800000001 -36.489998,175.353577 -36.481940999999999,175.360229000000004 -36.478050000000003,175.538025000000005 -36.514724999999999,175.542755 -36.519996999999996,175.604950000000002 -36.622771999999998,175.631072999999986 -36.710555999999997,175.763610999999997 -36.713614999999997,175.840789999999998 -36.754173000000002,175.733582000000013 -36.805832000000002,175.701629999999994 -36.844161999999997,175.707458000000003 -36.869995000000003,175.709960999999993 -36.875275000000002,175.714690999999988 -36.880828999999999,175.720519999999993 -36.885277000000002,175.735779000000008 -36.891387999999999,175.74383499999999 -36.893889999999999,175.758330999999998 -36.876106,175.761382999999995 -36.869446000000003,175.757751000000013 -36.863059999999997,175.753051999999997 -36.857779999999998,175.749114999999989 -36.851394999999997,175.75 -36.843055999999997,175.752196999999995 -36.835555999999997,175.756378000000012 -36.830002,175.765533000000005 -36.828055999999997,175.808013999999986 -36.824173000000002,175.817200000000014 -36.825836000000002,175.833587999999992 -36.830832999999998,175.845519999999993 -36.839722000000002,175.849120999999997 -36.846107000000003,175.878570999999994 -36.914444000000003,175.881072999999986 -36.921669,175.918304000000006 -37.067504999999997,175.917480000000012 -37.075836000000002,175.915253000000007 -37.083061,175.898314999999997 -37.115004999999996,175.884154999999993 -37.168892,175.883330999999998 -37.176949,175.887206999999989 -37.244163999999998,175.892212 -37.249724999999998,175.921082000000013 -37.251671000000002,175.927185000000009 -37.256110999999997,175.93081699999999 -37.262504999999997,175.936371000000008 -37.278885000000002,175.940093999999988 -37.299717,175.974396000000013 -37.418059999999997,175.976074000000011 -37.453055999999997,176.026931999999988 -37.483108999999999,176.035583000000003 -37.487282,176.059417999999994 -37.502502,176.088287000000008 -37.525557999999997,176.093291999999991 -37.531112999999998,176.165526999999997 -37.613892,176.169433999999995 -37.620277000000002,176.167205999999993 -37.625832000000003,176.160247999999996 -37.624167999999997,176.082458000000003 -37.602500999999997,176.066924999999998 -37.59639,176.061095999999992 -37.591942000000003,176.057189999999991 -37.585555999999997,176.062744000000009 -37.580832999999998,176.070800999999989 -37.577781999999999,176.088287000000008 -37.580002,176.095245000000006 -37.576110999999997,176.090239999999994 -37.570838999999999,176.062468999999993 -37.546669,176.023087000000004 -37.528221000000002,176.018767999999994 -37.526057999999999,176.013931000000014 -37.524554999999999,176.007598999999999 -37.524222999999999,175.955535999999995 -37.521110999999998,175.946349999999995 -37.523055999999997,175.940796000000006 -37.527779000000002,175.953583000000009 -37.558891000000003,175.994415000000004 -37.638893000000003,176.071899000000002 -37.655273,176.14498900000001 -37.675277999999999,176.242187999999999 -37.709442000000003,176.267486999999988 -37.676392,176.488281 -37.756667999999998,176.521636999999998 -37.769447,176.527771 -37.773887999999999,176.537475999999998 -37.784447,176.549712999999997 -37.793334999999999,176.656646999999992 -37.855559999999997,176.671082000000013 -37.862502999999997,176.686645999999996 -37.868332000000002,176.759154999999993 -37.892775999999998,176.784149000000014 -37.900275999999998,176.80304000000001 -37.903328000000002,176.819702000000007 -37.904442000000003,176.838287000000008 -37.907501000000003,176.917755 -37.926108999999997,176.943848000000003 -37.932502999999997,177.08273299999999 -37.967216,177.107468000000011 -37.987220999999998,177.159424 -38.013336000000002,177.415253000000007 -37.982498,177.47357199999999 -37.962502,177.545806999999996 -37.919167000000002,177.552459999999996 -37.915000999999997,177.571625000000012 -37.902222000000002,177.599120999999997 -37.878051999999997,177.603577 -37.872498,177.646941999999996 -37.805,177.732178000000005 -37.682502999999997,177.738861000000014 -37.678336999999999,177.746917999999994 -37.675277999999999,177.791931000000005 -37.666946000000003,177.849396000000013 -37.657218999999998,177.858856000000003 -37.656661999999997,177.868010999999996 -37.654442000000003,177.875792999999987 -37.651389999999999,178.0 -37.592224000000002,178.006653 -37.588332999999999,178.012206999999989 -37.583328000000002,178.018004999999988 -37.550831000000002,178.05581699999999 -37.542777999999998,178.064972000000012 -37.542228999999999,178.187744000000009 -37.546951,178.281921000000011 -37.560828999999998,178.306915000000004 -37.568061999999998,178.311919999999986 -37.573334000000003,178.312468999999993 -37.578887999999999,178.306915000000004 -37.583610999999998,178.321075000000008 -37.602500999999997,178.336365 -37.618332000000002,178.34970100000001 -37.626944999999999,178.367737000000005 -37.630828999999999,178.448028999999991 -37.645279000000002,178.457458000000003 -37.646667,178.468018 -37.646949999999997,178.488861000000014 -37.644165,178.497192000000013 -37.646667,178.504424999999998 -37.649994,178.550536999999991 -37.6875,178.555542000000003 -37.692497000000003,178.559692000000013 -37.698883000000002,178.56552099999999 -37.713332999999999,178.562468999999993 -37.719994,178.483306999999996 -37.826393000000003,178.455230999999998 -37.860000999999997,178.449982000000006 -37.865004999999996,178.429687999999999 -37.876944999999999,178.419983000000002 -37.887779000000002,178.350525000000005 -38.004722999999998,178.347473000000008 -38.011116,178.347197999999992 -38.019722000000002,178.348846000000009 -38.027779000000002,178.354950000000002 -38.032218999999998,178.360229000000004 -38.037506,178.364136000000002 -38.043616999999998,178.375792999999987 -38.072777000000002,178.378296000000006 -38.089995999999999,178.377746999999999 -38.09861,178.353850999999992 -38.185555,178.319976999999994 -38.248055,178.318024000000008 -38.255561999999998,178.317474000000004 -38.263893000000003,178.320800999999989 -38.398612999999997,178.302459999999996 -38.528885000000002,178.300536999999991 -38.536391999999999,178.296356000000003 -38.541946000000003,178.158874999999995 -38.649169999999998,178.074982000000006 -38.713889999999999,178.068297999999999 -38.717773,178.060241999999988 -38.721107000000003,178.050812000000008 -38.721381999999998,178.044433999999995 -38.717216,177.928864000000004 -38.722220999999998,177.941070999999994 -38.793616999999998,177.923858999999993 -38.918334999999999,177.917786000000007 -38.942802,177.909697999999992 -38.969718999999998,177.897705000000002 -39.047942999999997,177.893859999999989 -39.064776999999999,177.906708000000009 -39.064278000000002,177.923034999999999 -39.089165,177.942200000000014 -39.091942000000003,177.967743000000013 -39.098334999999999,177.991332999999997 -39.115004999999996,177.996612999999996 -39.120277000000002,177.999390000000005 -39.127495000000003,177.909973000000008 -39.256950000000003,177.898865 -39.267502,177.874968999999993 -39.286118000000002,177.868010999999996 -39.290283000000002,177.861908 -39.285834999999999,177.844970999999987 -39.251396,177.839416999999997 -39.236946000000003,177.824127000000004 -39.193053999999997,177.823577999999998 -39.183883999999999,177.826629999999994 -39.177222999999998,177.841644000000002 -39.152779000000002,177.822021000000007 -39.114445000000003,177.823195999999996 -39.110115,177.82351700000001 -39.105110000000003,177.82119800000001 -39.101275999999999,177.816696000000007 -39.099274,177.680266999999986 -39.075279000000002,177.628845000000013 -39.071114,177.426085999999998 -39.064163,177.387755999999996 -39.077781999999999,177.246917999999994 -39.128334000000002,177.206085000000002 -39.143616000000002,177.149138999999991 -39.165000999999997,177.054961999999989 -39.204445,176.935790999999995 -39.349997999999999,176.931365999999997 -39.355559999999997,176.903870000000012 -39.398055999999997,176.898865 -39.412216,176.89776599999999 -39.438048999999999,176.899414000000007 -39.446387999999999,176.946625000000012 -39.664444000000003,177.01080300000001 -39.654998999999997,177.107178000000005 -39.660828000000002,177.116913000000011 -39.662216,177.120789000000002 -39.66861,177.119110000000006 -39.676108999999997,177.115783999999991 -39.682502999999997,177.08273299999999 -39.729996,177.073577999999998 -39.741385999999999,177.068024000000008 -39.746108999999997,177.059692000000013 -39.749167999999997,177.050262000000004 -39.751396,177.033874999999995 -39.757506999999997,177.028045999999989 -39.762504999999997,177.023590000000013 -39.768059,177.020263999999997 -39.774718999999997,176.894713999999993 -40.034728999999999,176.890533000000005 -40.049728000000002,176.889983999999998 -40.058052000000004,176.89498900000001 -40.082779000000002,176.893035999999995 -40.090279000000002,176.874114999999989 -40.121383999999999,176.834136999999998 -40.181671,176.808319000000012 -40.216659999999997,176.796935999999988 -40.226387000000003,176.687195000000003 -40.321387999999999,176.644135000000006 -40.379997000000003,176.628296000000006 -40.421944000000003,176.539977999999991 -40.495002999999997,176.521362000000011 -40.513893000000003,176.500823999999994 -40.535004,176.441924999999998 -40.600281000000003,176.405243000000013 -40.643889999999999,176.386108000000007 -40.675002999999997,176.35522499999999 -40.688606,176.349396000000013 -40.693610999999997,176.288574000000011 -40.793892,176.239136000000002 -40.90889,176.22079500000001 -40.931671,176.195526 -40.941665999999998,176.172760000000011 -40.952224999999999,176.158600000000007 -40.959999000000003,176.152771 -40.964722000000002,176.142212 -40.975273,176.134154999999993 -40.987502999999997,176.120789000000002 -41.013618,176.11300700000001 -41.035277999999998,176.098297000000002 -41.087218999999997,176.087463000000014 -41.116112,176.080811000000011 -41.129165999999998,176.062195000000003 -41.151938999999999,175.984679999999997 -41.231383999999998,175.955230999999998 -41.255279999999999,175.819121999999993 -41.347220999999998,175.743561 -41.392226999999998,175.736358999999993 -41.396110999999998,175.557738999999998 -41.485000999999997,175.471069 -41.541389000000002,175.427459999999996 -41.564444999999999,175.323028999999991 -41.614449,175.313292999999987 -41.616394,175.230804000000006 -41.620834000000002,175.222197999999992 -41.618332000000002,175.21691899999999 -41.612777999999999,175.184692000000013 -41.535834999999999,175.181915000000004 -41.519447,175.181091000000009 -41.500838999999999,175.188568000000004 -41.461112999999997,175.193024000000008 -41.446106,175.193848000000003 -41.437775000000002,175.191070999999994 -41.430557,175.186095999999992 -41.425002999999997,175.080261000000007 -41.385559,175.063018999999997 -41.380279999999999,175.05304000000001 -41.378608999999997,175.045532000000009 -41.378608999999997,175.027190999999988 -41.381667999999998,174.993286000000012 -41.393332999999998,174.985779000000008 -41.397224,174.972747999999996 -41.405830000000002,174.960509999999999 -41.415275999999999,174.949982000000006 -41.425559999999997,174.944976999999994 -41.431114,174.94165000000001 -41.437775000000002,174.936919999999986 -41.443328999999999,174.918578999999994 -41.448051,174.908600000000007 -41.448334000000003,174.872467 -41.429442999999999,174.86605800000001 -41.425002999999997,174.861084000000005 -41.419724000000002,174.861633000000012 -41.347496,174.863861000000014 -41.340279000000002,174.870789000000002 -41.327224999999999,174.87912 -41.315002,174.883881000000002 -41.309441,174.894440000000003 -41.290000999999997,174.89776599999999 -41.282501000000003,174.899993999999992 -41.275002,174.901916999999997 -41.258338999999999,174.901916999999997 -41.251114,174.898865 -41.234444000000003,174.89498900000001 -41.228050000000003,174.887482000000006 -41.224442000000003,174.827179 -41.218887000000002,174.818848000000003 -41.221938999999999,174.787475999999998 -41.244446000000003,174.778045999999989 -41.255836000000002,174.774414000000007 -41.262222,174.771087999999992 -41.278053,174.778594999999996 -41.281387000000002,174.796082000000013 -41.286949,174.818024000000008 -41.284728999999999,174.824127000000004 -41.289169,174.829407000000003 -41.294724000000002,174.833313000000004 -41.301108999999997,174.832184000000012 -41.309441,174.82995600000001 -41.316665999999998,174.826355000000007 -41.323334000000003,174.821625000000012 -41.328887999999999,174.815796000000006 -41.333610999999998,174.807189999999991 -41.336387999999999,174.744689999999991 -41.347496,174.700531000000012 -41.344444000000003,174.671906000000007 -41.338332999999999,174.654694000000006 -41.333061,174.648314999999997 -41.328612999999997,174.629669000000007 -41.315002,174.59191899999999 -41.27861,174.591644000000002 -41.271385000000002,174.594116000000014 -41.263893000000003,174.601074000000011 -41.250838999999999,174.608306999999996 -41.237777999999999,174.61300700000001 -41.232216,174.619110000000006 -41.23111,174.627746999999999 -41.233887000000003,174.637482000000006 -41.235557999999997,174.648590000000013 -41.234444000000003,174.666931000000005 -41.229720999999998,174.681365999999997 -41.221938999999999,174.694702000000007 -41.213614999999997,174.712738000000002 -41.199440000000003,174.718567000000007 -41.194716999999997,174.800812000000008 -41.100281000000003,174.844421000000011 -41.041671999999998,174.874390000000005 -41.018059,174.882721000000004 -41.015006999999997,174.892486999999988 -41.013061999999998,174.901093000000003 -41.010283999999999,174.908324999999991 -41.006393000000003,174.932189999999991 -40.987502999999997,174.94165000000001 -40.976387000000003,174.945251000000013 -40.969718999999998,174.947478999999987 -40.962218999999997,175.014983999999998 -40.84861,175.09857199999999 -40.755836000000002,175.112731999999994 -40.738892,175.120789000000002 -40.726944000000003,175.127746999999999 -40.713614999999997,175.164153999999996 -40.631943,175.169708000000014 -40.616942999999999,175.171906000000007 -40.609726000000002,175.187468999999993 -40.530830000000002,175.23800700000001 -40.329726999999998,175.23135400000001 -40.280830000000002,175.201629999999994 -40.181671,175.196349999999995 -40.166946000000003,175.178314 -40.134171000000002,175.15554800000001 -40.095832999999999,175.071625000000012 -40.003059,175.055542000000003 -39.987777999999999,175.022217000000012 -39.958053999999997,174.986358999999993 -39.93,174.974120999999997 -39.920836999999999,174.960784999999987 -39.912773,174.938873 -39.902222000000002,174.923034999999999 -39.895836000000003,174.836638999999991 -39.865004999999996,174.828307999999993 -39.862502999999997,174.790802000000014 -39.854720999999998,174.781096999999988 -39.853057999999997,174.751373 -39.865555,174.740509000000003 -39.866661,174.729674999999986 -39.865836999999999,174.57607999999999 -39.829169999999998,174.558013999999986 -39.824722,174.549408 -39.822226999999998,174.542205999999993 -39.818610999999997,174.523865 -39.805,174.421356000000003 -39.726944000000003,174.410521999999986 -39.716942000000003,174.376068000000004 -39.678612,174.353577 -39.639999000000003,174.348846000000009 -39.634444999999999,174.336638999999991 -39.625557,174.316070999999994 -39.613892,174.30886799999999 -39.610283000000003,174.217194000000006 -39.579726999999998,174.208862000000011 -39.577224999999999,174.040802000000014 -39.552779999999998,173.997741999999988 -39.551392,173.986908 -39.550552000000003,173.970245000000006 -39.545279999999998,173.963012999999989 -39.541671999999998,173.871062999999992 -39.483330000000002,173.851898000000006 -39.470551,173.839966000000004 -39.461387999999999,173.810790999999995 -39.4375,173.79525799999999 -39.421944000000003,173.786652000000004 -39.409996,173.775817999999987 -39.390839,173.769713999999993 -39.376944999999999,173.762206999999989 -39.354720999999998,173.754424999999998 -39.305,173.751923000000005 -39.288612,173.751647999999989 -39.269996999999996,173.781921000000011 -39.191383000000002,173.785247999999996 -39.184998,173.800536999999991 -39.169167000000002,173.82995600000001 -39.145836000000003,173.844421000000011 -39.138336000000002,173.868010999999996 -39.128883000000002,173.892761000000007 -39.120552000000004,174.011108000000007 -39.073334000000003,174.114685000000009 -39.024445,174.187744000000009 -38.988608999999997,174.209136999999998 -38.977218999999998,174.226623999999987 -38.972496,174.248016000000007 -38.970551,174.259978999999987 -38.970275999999998,174.281372000000005 -38.969994,174.293029999999987 -38.969994,174.313292999999987 -38.972496,174.351348999999999 -38.979438999999999,174.375244000000009 -38.979163999999997,174.384704999999997 -38.977218999999998,174.392761000000007 -38.974442000000003,174.456359999999989 -38.940277000000002,174.546082000000013 -38.871941,174.557738999999998 -38.860557999999997,174.568024000000008 -38.850281000000003,174.587738000000002 -38.828887999999999,174.594421000000011 -38.815834000000002,174.603302000000014 -38.786118000000002,174.608582000000013 -38.763061999999998,174.625518999999997 -38.677779999999998,174.642486999999988 -38.590836000000003,174.681091000000009 -38.379165999999998,174.724396000000013 -38.185828999999998,174.838561999999996 -38.157218999999998,174.848021999999986 -38.156944000000003,174.85635400000001 -38.154167,174.926636000000002 -38.116112,174.932465000000008 -38.111389000000003,174.940246999999999 -38.101112,174.898590000000013 -38.075004999999997,174.877166999999986 -38.064163,174.892486999999988 -37.976387000000003,174.893585000000002 -37.969994,174.868286000000012 -37.943610999999997,174.861084000000005 -37.939995000000003,174.85522499999999 -37.944716999999997,174.834686000000005 -37.963614999999997,174.830261000000007 -37.969161999999997,174.828033000000005 -37.976661999999997,174.828583000000009 -37.995002999999997,174.822754000000003 -37.999724999999998,174.814696999999995 -38.002502,174.804137999999995 -38.001944999999999,174.797211000000004 -37.998336999999999,174.791077 -37.993614,174.786376999999987 -37.988334999999999,174.783874999999995 -37.980826999999998,174.783600000000007 -37.971663999999997,174.788025000000005 -37.868332000000002,174.788879000000009 -37.860000999999997,174.791077 -37.852783000000002,174.795532000000009 -37.846947,174.819702000000007 -37.829169999999998,174.826629999999994 -37.825279000000002,174.841339000000005 -37.818610999999997,174.872741999999988 -37.806106999999997,174.883330999999998 -37.805,174.903045999999989 -37.807502999999997,174.945251000000013 -37.810555,174.967467999999997 -37.809165999999998,174.975525000000005 -37.806389000000003,174.974975999999998 -37.75,174.974670000000003 -37.740836999999999,174.966644000000002 -37.739998,174.951355000000007 -37.743057,174.94442699999999 -37.745002999999997,174.93081699999999 -37.752502,174.906921000000011 -37.774169999999998,174.870789000000002 -37.783057999999997,174.861633000000012 -37.785004,174.848297000000002 -37.769722000000002,174.828307999999993 -37.710830999999999,174.764160000000004 -37.527779000000002,174.744415000000004 -37.487502999999997,174.724975999999998 -37.447220000000002,174.717467999999997 -37.425002999999997,174.714690999999988 -37.408607000000003,174.714690999999988 -37.399445,174.719116000000014 -37.393616000000002,174.725799999999992 -37.389999000000003,174.744415000000004 -37.385834000000003,174.760528999999991 -37.380279999999999,174.767486999999988 -37.376389000000003,174.773041000000006 -37.371665999999998,174.831635000000006 -37.308052000000004,174.840789999999998 -37.296951,174.840515000000011 -37.291389000000002,174.82995600000001 -37.290557999999997,174.821899000000002 -37.291671999999998,174.812744000000009 -37.293616999999998,174.804687999999999 -37.296393999999999,174.797760000000011 -37.300277999999999,174.766083000000009 -37.321114,174.754700000000014 -37.330559,174.751373 -37.336945,174.744965000000008 -37.359169,174.740509000000003 -37.364722999999998,174.733582000000013 -37.368606999999997,174.724120999999997 -37.368889000000003,174.717194000000006 -37.365279999999998,174.711365 -37.360557999999997,174.701629999999994 -37.349724000000002,174.69442699999999 -37.336945,174.660187000000008 -37.273311999999997,174.645813000000004 -37.236389000000003,174.639709000000011 -37.224442000000003,174.599975999999998 -37.153885000000002,174.578307999999993 -37.115555,174.569976999999994 -37.103614999999998,174.555542000000003 -37.087502,174.551909999999992 -37.080832999999998,174.549712999999997 -37.073616,174.55304000000001 -37.067222999999998,174.558593999999999 -37.0625,174.568848000000003 -37.061385999999999,174.644135000000006 -37.061110999999997,174.661376999999987 -37.065551999999997,174.664977999999991 -37.071944999999999,174.666381999999999 -37.080283999999999,174.661925999999994 -37.085830999999999,174.650542999999999 -37.095275999999998,174.646087999999992 -37.100838000000003,174.648590000000013 -37.108055,174.703856999999999 -37.197777000000002,174.733856000000003 -37.196106,174.716644000000002 -37.154167,174.72357199999999 -37.150275999999998,174.87912 -37.088889999999999,174.887482000000006 -37.059165999999998,174.795532000000009 -37.023055999999997,174.804413000000011 -36.972220999999998,174.824982000000006 -36.960830999999999,174.829407000000003 -36.955002,174.83273299999999 -36.948608,174.828033000000005 -36.943053999999997,174.818848000000003 -36.941383000000002,174.770263999999997 -36.936661,174.696625000000012 -36.93972,174.686095999999992 -36.940834000000002,174.659697999999992 -36.947495000000004,174.653045999999989 -36.951393000000003,174.641662999999994 -36.960830999999999,174.622467 -36.982216,174.619110000000006 -36.988892,174.617187999999999 -36.996108999999997,174.600525000000005 -37.022224,174.524688999999995 -37.045555,174.515533000000005 -37.045555,174.508605999999986 -37.041946000000003,174.502472000000012 -37.037506,174.498016000000007 -37.031944000000003,174.490783999999991 -37.019165,174.484679999999997 -37.005561999999998,174.459228999999993 -36.944031000000003,174.451904000000013 -36.923889000000003,174.446930000000009 -36.909163999999997,174.443024000000008 -36.893616000000002,174.439147999999989 -36.868606999999997,174.436645999999996 -36.852226000000002,174.43386799999999 -36.835555999999997,174.427764999999994 -36.812775000000002,174.422760000000011 -36.798057999999997,174.416655999999989 -36.784171999999998,174.409697999999992 -36.771385000000002,174.406096999999988 -36.765006999999997,174.390533000000005 -36.740279999999998,174.344299000000007 -36.679336999999997,174.301085999999998 -36.62722,174.284973000000008 -36.612777999999999,174.267486999999988 -36.599167,174.236908 -36.568061999999998,174.208862000000011 -36.535277999999998,174.187744000000009 -36.496948000000003,174.17804000000001 -36.467498999999997,174.177764999999994 -36.458336000000003,174.178864000000004 -36.449997000000003,174.181091000000009 -36.442497000000003,174.184417999999994 -36.436110999999997,174.189972000000012 -36.431389000000003,174.196930000000009 -36.427779999999998,174.20495600000001 -36.428612,174.24383499999999 -36.440834000000002,174.251923000000005 -36.443610999999997,174.257751000000013 -36.448051,174.300262000000004 -36.515839,174.348846000000009 -36.601944000000003,174.367919999999998 -36.629165999999998,174.370728000000014 -36.6325,174.422484999999995 -36.667220999999998,174.430542000000003 -36.668059999999997,174.453033000000005 -36.651108,174.456359999999989 -36.644722000000002,174.465515000000011 -36.582779000000002,174.465515000000011 -36.532218999999998,174.442474000000004 -36.414718999999998,174.422211000000004 -36.366112,174.41885400000001 -36.370834000000002,174.391937000000013 -36.395004,174.384978999999987 -36.398887999999999,174.377166999999986 -36.401665,174.303864000000004 -36.395279000000002,174.296935999999988 -36.391669999999998,174.285247999999996 -36.3825,174.276916999999997 -36.370552000000004,174.26998900000001 -36.357779999999998,174.268585000000002 -36.349442000000003,174.268585000000002 -36.342224000000002,174.292205999999993 -36.316947999999996,174.299988000000013 -36.314163,174.308013999999986 -36.316947999999996,174.325531000000012 -36.330283999999999,174.334686000000005 -36.332222000000002,174.36883499999999 -36.331673000000002,174.376891999999998 -36.330832999999998,174.421248999999989 -36.310611999999999,174.50692699999999 -36.267220000000002,174.518311000000011 -36.258057,174.521636999999998 -36.251396,174.519135000000006 -36.245834000000002,174.505248999999992 -36.231383999999998,174.413299999999992 -36.263061999999998,174.378296000000006 -36.286667,174.364685000000009 -36.294167000000002,174.346619000000004 -36.298057999999997,174.336365 -36.298889000000003,174.305237000000005 -36.287506,174.365233999999987 -36.260002,174.442200000000014 -36.169724000000002,174.396087999999992 -36.144447,174.396362000000011 -36.151938999999999,174.394135000000006 -36.159163999999997,174.373290999999995 -36.206389999999999,174.369965000000008 -36.213057999999997,174.358856000000003 -36.222220999999998,174.345245000000006 -36.229720999999998,174.337463000000014 -36.232773000000002,174.33273299999999 -36.229163999999997,174.307738999999998 -36.176949,174.282745000000006 -36.121108999999997,174.274993999999992 -36.118332000000002,174.239409999999992 -36.111389000000003,174.229126000000008 -36.112502999999997,174.195251000000013 -36.131110999999997,174.188568000000004 -36.144165,174.185790999999995 -36.171944000000003,174.191345000000013 -36.176392,174.19830300000001 -36.18,174.217743000000013 -36.182502999999997,174.226898000000006 -36.182502999999997,174.236084000000005 -36.180557,174.244110000000006 -36.183059999999998,174.287749999999988 -36.210281000000002,174.312468999999993 -36.236663999999998,174.314696999999995 -36.243889000000003,174.267212 -36.270279000000002,174.259430000000009 -36.273055999999997,174.251373 -36.272499000000003,174.065796000000006 -36.168334999999999,173.999114999999989 -36.121108999999997,173.994415000000004 -36.115836999999999,173.99105800000001 -36.109444000000003,173.931091000000009 -35.981940999999999,173.938568000000004 -35.934998,173.947478999999987 -35.923889000000003,173.948577999999998 -35.915550000000003,173.946075000000008 -35.908051,173.913879000000009 -35.86972,173.908324999999991 -35.874442999999999,173.903870000000012 -35.879997000000003,173.904967999999997 -35.888336000000002,173.921356000000003 -36.003059,173.980804000000006 -36.121383999999999,173.987731999999994 -36.134171000000002,173.992461999999989 -36.139724999999999,174.124390000000005 -36.263618,174.176085999999998 -36.276947,174.180542000000003 -36.282501000000003,174.198853000000014 -36.343887000000002,174.199982000000006 -36.352226000000002,174.198028999999991 -36.368606999999997,174.194702000000007 -36.375275000000002,174.189147999999989 -36.379722999999998,174.115233999999987 -36.40361,174.089966000000004 -36.411385000000003,174.080811000000011 -36.409438999999999,174.06942699999999 -36.400275999999998,174.065796000000006 -36.393889999999999,174.057465000000008 -36.374718,174.049133000000012 -36.353614999999998,174.044433999999995 -36.338889999999999,174.039703000000003 -36.323334000000003,174.031096999999988 -36.293059999999997,174.020537999999988 -36.273887999999999,173.82607999999999 -36.032501000000003,173.737457000000006 -35.933608999999997,173.727172999999993 -35.923614999999998,173.590515000000011 -35.778053,173.398865 -35.573891000000003,173.395537999999988 -35.567504999999997,173.398865 -35.553612,173.446625000000012 -35.440277000000002,173.465789999999998 -35.429169000000002,173.501923000000005 -35.419724000000002,173.506378000000012 -35.425277999999999,173.540253000000007 -35.430832000000002,173.629943999999995 -35.356667000000002,173.65554800000001 -35.322502,173.65554800000001 -35.313332000000003,173.564147999999989 -35.278053,173.556091000000009 -35.280830000000002,173.551636000000002 -35.286391999999999,173.549712999999997 -35.302779999999998,173.549712999999997 -35.321114,173.551909999999992 -35.328612999999997,173.566924999999998 -35.344161999999997,173.568024000000008 -35.361671,173.566924999999998 -35.36972,173.559143000000006 -35.372771999999998,173.439696999999995 -35.376106,173.416077 -35.384444999999999,173.410247999999996 -35.388893000000003,173.391356999999999 -35.423057999999997,173.39498900000001 -35.449722,173.396087999999992 -35.458053999999997,173.392761000000007 -35.482773000000002,173.386382999999995 -35.523330999999999,173.380524000000008 -35.528053,173.37384 -35.524169999999998,173.306915000000004 -35.449165,173.237731999999994 -35.370277000000002,173.154144000000002 -35.276665,173.103302000000014 -35.226104999999997,173.09191899999999 -35.216942000000003,173.087463000000014 -35.211387999999999,173.09191899999999 -35.1875,173.098846000000009 -35.183608999999997,173.119110000000006 -35.185555,173.12802099999999 -35.1875,173.134704999999997 -35.191108999999997,173.14498900000001 -35.191940000000002,173.152771 -35.189163,173.163879000000009 -35.179169000000002,173.168578999999994 -35.173614999999998,173.18081699999999 -35.156104999999997,173.187468999999993 -35.143332999999998,173.191924999999998 -35.128334000000002,173.196349999999995 -35.104446000000003,173.197478999999987 -35.09639,173.198577999999998 -35.078887999999999,173.198577999999998 -35.051108999999997,173.193848000000003 -35.027222000000002,173.189423000000005 -35.012779000000002,173.179413000000011 -34.993332000000002,173.175812000000008 -34.986946000000003,173.159149000000014 -34.958336000000003,173.151093000000003 -34.946663,173.137755999999996 -34.93,172.947204999999997 -34.716942000000003,172.828033000000005 -34.584442000000003,172.812468999999993 -34.568893000000003,172.722473000000008 -34.495277000000002,172.739136000000002 -34.435555,172.900817999999987 -34.414718999999998,172.911925999999994 -34.414718999999998,173.020813000000004 -34.422226000000002,173.038879000000009 -34.436942999999999,173.043304000000006 -34.517775999999998,173.039977999999991 -34.522224,173.033324999999991 -34.525832999999999,173.024414000000007 -34.527779000000002,173.016662999999994 -34.52861,173.007476999999994 -34.526947,172.997467 -34.498336999999999,172.984130999999991 -34.472771000000002,172.961914000000007 -34.465279000000002,172.955230999999998 -34.468887000000002,172.908324999999991 -34.544167000000002,172.912749999999988 -34.549728000000002,172.923858999999993 -34.558891000000003,172.936095999999992 -34.567222999999998,172.973021999999986 -34.581116000000002,173.053314 -34.665550000000003,173.057738999999998 -34.680283000000003,173.110503999999992 -34.791389000000002,173.120789000000002 -34.810555,173.128570999999994 -34.822502,173.133026 -34.828055999999997,173.13857999999999 -34.832504,173.151916999999997 -34.839995999999999,173.213593000000003 -34.871941,173.242737000000005 -34.884726999999998,173.273314999999997 -34.940834000000002,173.268859999999989 -34.946387999999999,173.262206999999989 -34.959167,173.259978999999987 -34.966659999999997,173.258881000000002 -34.974716,173.259978999999987 -34.983055,173.264709000000011 -35.014449999999997,173.269135000000006 -35.019722000000002,173.317474000000004 -35.018889999999999,173.328583000000009 -35.009444999999999,173.358856000000003 -34.98111,173.36300700000001 -34.975555,173.366364000000004 -34.968887000000002,173.373259999999988 -34.936774999999997,173.371246000000014 -34.927444,173.400817999999987 -34.863334999999999,173.426085999999998 -34.82,173.450806 -34.807777000000002,173.500274999999988 -34.864722999999998,173.499114999999989 -34.871108999999997,173.492461999999989 -34.874718,173.452453999999989 -34.887779000000002,173.443297999999999 -34.889724999999999,173.433319000000012 -34.890555999999997,173.413025000000005 -34.888893000000003,173.405243000000013 -34.892502,173.399719000000005 -34.897224,173.399719000000005 -34.906387000000002,173.402190999999988 -34.913887000000003,173.411590999999987 -34.931778,173.419128 -34.945830999999998,173.426909999999992 -34.957779000000002,173.431641000000013 -34.963332999999999,173.44165000000001 -34.973328000000002,173.454131999999987 -34.981667000000002,173.467467999999997 -34.988892,173.475525000000005 -34.991669000000002,173.493286000000012 -34.995277000000002,173.541655999999989 -34.988608999999997,173.561645999999996 -34.958893000000003,173.562468999999993 -34.950836000000002,173.566924999999998 -34.936110999999997,173.572478999999987 -34.931389000000003,173.579131999999987 -34.927779999999998,173.589416999999997 -34.928612,173.83914200000001 -35.004173000000002,174.101074000000011 -35.121108999999997,174.098297000000002 -35.161667,174.091644000000002 -35.158051,174.056641000000013 -35.155555999999997,174.021911999999986 -35.164161999999997,174.008026 -35.207504,174.008026 -35.215004,174.011382999999995 -35.221381999999998,174.018311000000011 -35.224997999999999,174.093841999999995 -35.225273,174.100525000000005 -35.228881999999999,174.143585000000002 -35.328612999999997,174.208008000000007 -35.323334000000003,174.218018 -35.322226999999998,174.247741999999988 -35.27861,174.319976999999994 -35.232773000000002,174.383881000000002 -35.337775999999998,174.461638999999991 -35.445273999999998,174.491913000000011 -35.485275,174.575806 -35.601944000000003,174.577179 -35.610000999999997,174.577147999999994 -35.618088,174.569976999999994 -35.648055999999997,174.563292999999987 -35.651665,174.530272999999994 -35.649445,174.520263999999997 -35.648612999999997,174.513306 -35.645004,174.505248999999992 -35.642502,174.479126000000008 -35.641945,174.47357199999999 -35.646393000000003,174.474975999999998 -35.654716,174.518311000000011 -35.724167,174.523041000000006 -35.729438999999999,174.554137999999995 -35.750281999999999,174.561919999999986 -35.753059,174.583862000000011 -35.764724999999999,174.60244800000001 -35.844444000000003,174.596924 -35.849167,174.58914200000001 -35.851944000000003,174.577758999999986 -35.852226000000002,174.560790999999995 -35.847777999999998,174.554961999999989 -35.843330000000002,174.538574000000011 -35.819450000000003,174.523314999999997 -35.796669,174.519713999999993 -35.790283000000002,174.49105800000001 -35.769447,174.361908 -35.723328000000002,174.357451999999995 -35.72361,174.34857199999999 -35.734726000000002,174.346924 -35.833061,174.350525000000005 -35.839438999999999,174.35522499999999 -35.845001000000003,174.360779000000008 -35.849442000000003,174.381348000000003 -35.851112,174.384704999999997 -35.844718999999998,174.385528999999991 -35.828887999999999,174.391083000000009 -35.824173000000002,174.398865 -35.821387999999999,174.437468999999993 -35.822777000000002,174.476074000000011 -35.824173000000002,174.486358999999993 -35.824722,174.519713999999993 -35.844718999999998,174.525542999999999 -35.849167,174.524414000000007 -35.855559999999997,174.521362000000011 -35.862220999999998,174.501373 -35.889999000000003,174.496917999999994 -35.895553999999997,174.487182999999987 -35.915000999999997,174.495513999999986 -35.988608999999997,174.498016000000007 -35.994163999999998,174.514160000000004 -36.008614,174.56942699999999 -36.037224000000002,174.578583000000009 -36.038894999999997,174.587738000000002 -36.038894999999997,174.596619000000004 -36.036667,174.606902999999988 -36.037506,174.612731999999994 -36.042228999999999,174.622192000000013 -36.053055,174.62912 -36.065834000000002,174.629394999999988 -36.075004999999997,174.616364000000004 -36.100861000000002)),((171.185241999999988 -44.938332000000003,171.182129000000003 -44.94173,171.175017999999994 -44.949902000000002,171.167923000000002 -44.959850000000003,171.165436 -44.966599000000002,171.164703000000003 -44.970275999999998,171.163299999999992 -44.978332999999999,171.149719000000005 -44.996665999999998,171.07995600000001 -45.067222999999998,171.02664200000001 -45.103332999999999,170.975525000000005 -45.151108,170.966063999999989 -45.163055,170.961914000000007 -45.169167000000002,170.921630999999991 -45.243057,170.873566000000011 -45.358055,170.873290999999995 -45.367218,170.876891999999998 -45.373885999999999,170.871338000000009 -45.424171,170.859955000000014 -45.487502999999997,170.855804000000006 -45.493889000000003,170.750274999999988 -45.61972,170.674682999999987 -45.745002999999997,170.616913000000011 -45.839438999999999,170.55886799999999 -45.881667999999998,170.554413000000011 -45.888053999999997,170.555542000000003 -45.896110999999998,170.591063999999989 -45.894165,170.600525000000005 -45.891669999999998,170.608582000000013 -45.888053999999997,170.658600000000007 -45.858612,170.718018 -45.817504999999997,170.724670000000003 -45.813057,170.773314999999997 -45.782775999999998,170.781096999999988 -45.786391999999999,170.790802000000014 -45.806946000000003,170.790802000000014 -45.84639,170.788879000000009 -45.863892,170.783051 -45.878334000000002,170.776366999999993 -45.882773999999998,170.699982000000006 -45.911667,170.664429000000013 -45.908332999999999,170.57330300000001 -45.916663999999997,170.550536999999991 -45.919167000000002,170.484406000000007 -45.926949,170.452453999999989 -45.931946000000003,170.424408 -45.939438000000003,170.382721000000004 -45.956108,170.342467999999997 -45.97361,170.315246999999999 -45.991385999999999,170.309692000000013 -45.996948000000003,170.294433999999995 -46.013893000000003,170.281646999999992 -46.029442000000003,170.263610999999997 -46.051940999999999,170.256378000000012 -46.065551999999997,170.253051999999997 -46.081947,170.252472000000012 -46.09111,170.254424999999998 -46.107779999999998,170.252777000000009 -46.115836999999999,170.240783999999991 -46.146949999999997,170.237731999999994 -46.154167,170.226623999999987 -46.165000999999997,170.214416999999997 -46.174720999999998,170.193848000000003 -46.188048999999999,170.169433999999995 -46.198608,170.067748999999992 -46.246665999999998,169.911925999999994 -46.340279000000002,169.863585999999998 -46.371383999999999,169.858001999999999 -46.376663,169.849396000000013 -46.389442000000003,169.848021999999986 -46.416946000000003,169.849975999999998 -46.433326999999998,169.852172999999993 -46.440834000000002,169.853850999999992 -46.457504,169.850799999999992 -46.464722000000002,169.845245000000006 -46.469994,169.701904000000013 -46.558052000000004,169.631348000000003 -46.581947,169.458008000000007 -46.623328999999998,169.266388000000006 -46.656387000000002,169.133026 -46.670836999999999,169.107727000000011 -46.669167000000002,169.097197999999992 -46.666946000000003,169.084411999999986 -46.657501000000003,169.067200000000014 -46.635002,169.061919999999986 -46.675002999999997,169.053864000000004 -46.678612,169.008026 -46.680832000000002,168.883330999999998 -46.667777999999998,168.878296000000006 -46.661942000000003,168.861908 -46.628334000000002,168.862457000000006 -46.619446000000003,168.864409999999992 -46.611114999999998,168.864959999999996 -46.603889000000002,168.844970999999987 -46.563614,168.835784999999987 -46.560555,168.823853000000014 -46.561110999999997,168.733306999999996 -46.577499000000003,168.640533000000005 -46.603889000000002,168.633605999999986 -46.606392,168.614685000000009 -46.611114999999998,168.593018 -46.614165999999997,168.568848000000003 -46.615004999999996,168.516937000000013 -46.614165999999997,168.492737000000005 -46.613334999999999,168.442138999999997 -46.601500999999999,168.436630000000008 -46.599666999999997,168.446625000000012 -46.584003000000003,168.442200000000014 -46.575004999999997,168.454407000000003 -46.574447999999997,168.490509000000003 -46.573059,168.502472000000012 -46.574173000000002,168.506103999999993 -46.578887999999999,168.499114999999989 -46.583328000000002,168.505553999999989 -46.588051,168.551636000000002 -46.594444000000003,168.561371000000008 -46.591942000000003,168.566924999999998 -46.586661999999997,168.563599000000011 -46.580002,168.550812000000008 -46.570557,168.541655999999989 -46.567504999999997,168.391356999999999 -46.540000999999997,168.361908 -46.544449,168.353577 -46.547783000000003,168.351623999999987 -46.556106999999997,168.352172999999993 -46.564444999999999,168.362731999999994 -46.583885000000002,168.348236000000014 -46.582165000000003,168.352904999999993 -46.584499,168.359267999999986 -46.585830999999999,168.365082 -46.592666999999999,168.367248999999987 -46.596668,168.367599000000013 -46.601497999999999,168.364928999999989 -46.605331,168.35775799999999 -46.604500000000002,168.351409999999987 -46.603164999999997,168.275269000000009 -46.557777000000002,168.269135000000006 -46.535561,168.268311000000011 -46.529167,168.27664200000001 -46.525832999999999,168.286102 -46.523330999999999,168.307738999999998 -46.520553999999997,168.318297999999999 -46.520836000000003,168.318848000000003 -46.529167,168.321075000000008 -46.536667,168.328856999999999 -46.540557999999997,168.339416999999997 -46.539169,168.386658000000011 -46.497779999999999,168.392486999999988 -46.492226000000002,168.395537999999988 -46.485000999999997,168.396087999999992 -46.477775999999999,168.394135000000006 -46.470275999999998,168.37384 -46.421944000000003,168.36883499999999 -46.416106999999997,168.359679999999997 -46.415000999999997,168.350249999999988 -46.417503000000004,168.250274999999988 -46.400832999999999,168.211090000000013 -46.355277999999998,168.206085000000002 -46.351394999999997,168.194702000000007 -46.345551,168.185516000000007 -46.342498999999997,168.174988000000013 -46.340279000000002,168.116364000000004 -46.343612999999998,168.063873 -46.351669,167.955535999999995 -46.371383999999999,167.893035999999995 -46.387222,167.850799999999992 -46.399445,167.832184000000012 -46.398612999999997,167.824401999999992 -46.394447,167.753875999999991 -46.333885000000002,167.776916999999997 -46.312775000000002,167.781372000000005 -46.306389000000003,167.783600000000007 -46.298340000000003,167.781372000000005 -46.290840000000003,167.778045999999989 -46.284171999999998,167.701904000000013 -46.209442000000003,167.596924 -46.166389000000002,167.556641000000013 -46.156387000000002,167.546356000000003 -46.154167,167.534424 -46.152779000000002,167.483032000000009 -46.149726999999999,167.471069 -46.149994,167.460236000000009 -46.151389999999999,167.451904000000013 -46.154716,167.446075000000008 -46.159996,167.415526999999997 -46.204720000000002,167.356628 -46.254447999999996,167.280272999999994 -46.273055999999997,167.261108000000007 -46.267775999999998,167.238555999999988 -46.263893000000003,167.086638999999991 -46.240555,167.001373 -46.229163999999997,166.966063999999989 -46.224716,166.949982000000006 -46.223885000000003,166.915253000000007 -46.226104999999997,166.883026 -46.229996,166.836365 -46.232498,166.823028999999991 -46.231667000000002,166.768035999999995 -46.22361,166.726348999999999 -46.214165,166.717467999999997 -46.210830999999999,166.705230999999998 -46.201110999999997,166.670806999999996 -46.161667,166.67025799999999 -46.15361,166.684417999999994 -46.145004,166.693848000000003 -46.142775999999998,166.709411999999986 -46.135277000000002,166.738861000000014 -46.119163999999998,166.761230000000012 -46.093612999999998,166.784911999999991 -46.064945000000002,166.804748999999987 -46.033279,166.82995600000001 -46.003891000000003,166.854674999999986 -45.994163999999998,166.886932000000002 -45.990279999999998,166.943297999999999 -45.956108,166.949127000000004 -45.950836000000002,166.946930000000009 -45.945273999999998,166.939147999999989 -45.944716999999997,166.929687999999999 -45.947220000000002,166.836365 -45.981383999999998,166.828033000000005 -45.984444000000003,166.791350999999992 -46.005004999999997,166.785797000000002 -46.010283999999999,166.781096999999988 -46.016396,166.759308000000004 -46.035553,166.762969999999996 -46.038387,166.764969000000008 -46.042392999999997,166.763656999999995 -46.047221999999998,166.760162000000008 -46.050392000000002,166.740982000000002 -46.066059000000003,166.737793000000011 -46.066558999999998,166.670532000000009 -46.087218999999997,166.615783999999991 -46.090836000000003,166.613585999999998 -46.086387999999999,166.617461999999989 -46.059722999999998,166.621062999999992 -46.052498,166.640807999999993 -46.015006999999997,166.661652000000004 -45.991942999999999,166.625792999999987 -45.967216,166.492461999999989 -46.013061999999998,166.484406000000007 -46.014449999999997,166.474975999999998 -46.002785000000003,166.467194000000006 -45.990555,166.465239999999994 -45.983055,166.464690999999988 -45.839438999999999,166.468841999999995 -45.823059,166.472473000000008 -45.815834000000002,166.476898000000006 -45.809722999999998,166.537475999999998 -45.798889000000003,166.613861000000014 -45.801108999999997,166.652190999999988 -45.800277999999999,166.699982000000006 -45.798889000000003,166.881348000000003 -45.779998999999997,166.890807999999993 -45.777779000000002,166.974120999999997 -45.735000999999997,166.987182999999987 -45.709724,166.923034999999999 -45.705832999999998,166.912475999999998 -45.705275999999998,166.887482000000006 -45.705002,166.854126000000008 -45.707779000000002,166.825806 -45.714722000000002,166.809417999999994 -45.721381999999998,166.787475999999998 -45.689995000000003,166.775817999999987 -45.662773,166.81153900000001 -45.617942999999997,166.811217999999997 -45.613109999999999,166.812531000000007 -45.608111999999998,166.816710999999998 -45.605606000000002,166.869689999999991 -45.588779000000002,166.881026999999989 -45.586112999999997,166.88736 -45.585278000000002,166.895203000000009 -45.585608999999998,166.901366999999993 -45.587108999999998,166.912871999999993 -45.590946000000002,166.980255 -45.578612999999997,166.991913000000011 -45.580002,167.0 -45.576949999999997,167.005829000000006 -45.571671000000002,167.032470999999987 -45.527779000000002,167.041350999999992 -45.501396,166.989685000000009 -45.519165,166.891693000000004 -45.544724000000002,166.796875 -45.569389,166.791199000000006 -45.570720999999999,166.784836000000013 -45.571556,166.777023000000014 -45.571219999999997,166.710509999999999 -45.579445,166.704407000000003 -45.574447999999997,166.697204999999997 -45.554718,166.699127000000004 -45.546669,166.757476999999994 -45.425277999999999,166.801361000000014 -45.353614999999998,166.821625000000012 -45.320557,166.86883499999999 -45.279724000000002,166.880797999999999 -45.279167,167.008330999999998 -45.341667,167.038299999999992 -45.357779999999998,167.146941999999996 -45.427222999999998,167.16885400000001 -45.472496,167.205230999999998 -45.477775999999999,167.211914000000007 -45.475273,167.21414200000001 -45.467216,167.209411999999986 -45.461387999999999,167.173584000000005 -45.422775,167.158019999999993 -45.406661999999997,167.134978999999987 -45.386116,167.12912 -45.381385999999999,167.115509000000003 -45.372222999999998,167.097747999999996 -45.366112,167.087463000000014 -45.363616999999998,167.061645999999996 -45.345001000000003,167.051085999999998 -45.333328000000002,167.081421000000006 -45.325333,167.08407600000001 -45.321666999999998,167.092407000000009 -45.316498000000003,167.097243999999989 -45.314498999999998,167.114227 -45.310333,167.163574000000011 -45.302833999999997,167.169922000000014 -45.302998000000002,167.173584000000005 -45.305999999999997,167.176422000000002 -45.309330000000003,167.17756700000001 -45.313834999999997,167.212738000000002 -45.313332000000003,167.218841999999995 -45.318336000000002,167.232178000000005 -45.327224999999999,167.239685000000009 -45.331116000000002,167.248566000000011 -45.334167,167.260254000000003 -45.335830999999999,167.270813000000004 -45.334442000000003,167.301636000000002 -45.329445,167.309692000000013 -45.326110999999997,167.307738999999998 -45.318610999999997,167.300262000000004 -45.314444999999999,167.19464099999999 -45.271445999999997,167.138290000000012 -45.268943999999998,167.099471999999992 -45.272114000000002,167.094146999999992 -45.271278000000002,167.08964499999999 -45.268776000000003,167.002196999999995 -45.201110999999997,166.996917999999994 -45.145836000000003,167.146362000000011 -45.001671000000002,167.198577999999998 -44.956108,167.204407000000003 -44.951110999999997,167.228302000000014 -44.930832000000002,167.24105800000001 -44.921387000000003,167.260528999999991 -44.907501000000003,167.267486999999988 -44.903053,167.312744000000009 -44.875,167.320800999999989 -44.871383999999999,167.393462999999997 -44.862999000000002,167.398987000000005 -44.861496000000002,167.404312000000004 -44.863498999999997,167.421798999999993 -44.894168999999998,167.422974000000011 -44.898665999999999,167.420638999999994 -44.908496999999997,167.417968999999999 -44.912166999999997,167.440796000000006 -44.928612,167.439972000000012 -44.9375,167.441924999999998 -44.945,167.459686000000005 -44.99472,167.497741999999988 -45.003891000000003,167.507202000000007 -45.001396,167.508224000000013 -45.0,167.511658000000011 -44.995277000000002,167.511108000000007 -44.986946000000003,167.47908000000001 -44.903446000000002,167.465912000000003 -44.876441999999997,167.462752999999992 -44.867947,167.461578000000003 -44.863444999999999,167.460097999999988 -44.853946999999998,167.459411999999986 -44.843944999999998,167.459914999999995 -44.838444000000003,167.448577999999998 -44.795279999999998,167.453033000000005 -44.788894999999997,167.458587999999992 -44.783614999999998,167.59970100000001 -44.683883999999999,167.743010999999996 -44.611671,167.838866999999993 -44.498610999999997,167.850249999999988 -44.488052000000003,167.949982000000006 -44.40361,167.963593000000003 -44.395004,168.034973000000008 -44.353614999999998,168.12802099999999 -44.316947999999996,168.141662999999994 -44.308052000000004,168.144713999999993 -44.300834999999999,168.144135000000006 -44.292503000000004,168.124099999999999 -44.251404,168.143311000000011 -44.253059,168.153594999999996 -44.251396,168.169708000000014 -44.24472,168.288299999999992 -44.172775,168.29385400000001 -44.167503000000004,168.336638999999991 -44.123885999999999,168.339966000000004 -44.116661,168.337738000000002 -44.109169,168.334411999999986 -44.102783000000002,168.336365 -44.094444000000003,168.369689999999991 -44.043334999999999,168.374968999999993 -44.037781000000003,168.383026 -44.034447,168.402771 -44.029724000000002,168.672211000000004 -43.987777999999999,168.676909999999992 -43.993614,168.683043999999995 -43.998336999999999,168.690246999999999 -44.002228000000002,168.715239999999994 -44.012222,168.723021999999986 -44.012504999999997,168.753875999999991 -44.010002,168.764160000000004 -44.008614,168.824401999999992 -43.988334999999999,168.858582000000013 -43.976661999999997,168.866364000000004 -43.973328000000002,168.879669000000007 -43.964447,168.885254000000003 -43.959167,168.961914000000007 -43.90361,169.080765000000014 -43.848472999999998,169.142212 -43.794167000000002,169.224396000000013 -43.743332000000002,169.271636999999998 -43.722496,169.387482000000006 -43.679169000000002,169.491318000000007 -43.643467,169.539153999999996 -43.633614,169.62661700000001 -43.613892,169.64498900000001 -43.608893999999999,169.652771 -43.605559999999997,169.660521999999986 -43.601944000000003,169.721619000000004 -43.573334000000003,169.728302000000014 -43.568893000000003,169.739136000000002 -43.558052000000004,169.767486999999988 -43.522773999999998,169.790526999999997 -43.496665999999998,169.871062999999992 -43.406661999999997,169.884154999999993 -43.397781000000002,169.961638999999991 -43.371941,170.021911999999986 -43.352500999999997,170.028594999999996 -43.347777999999998,170.033874999999995 -43.342498999999997,170.038025000000005 -43.336112999999997,170.049408 -43.306946000000003,170.111358999999993 -43.254173000000002,170.288299999999992 -43.107779999999998,170.418029999999987 -43.052498,170.523041000000006 -43.010559,170.531921000000011 -43.008057,170.583037999999988 -42.990555,170.674347000000012 -42.958739999999999,170.704407000000003 -42.945830999999998,170.750549000000007 -42.924720999999998,170.781096999999988 -42.910553,170.794128 -42.901389999999999,171.065796000000006 -42.648055999999997,171.108306999999996 -42.608055,171.149719000000005 -42.563614,171.153594999999996 -42.55722,171.196075000000008 -42.476661999999997,171.225799999999992 -42.433608999999997,171.230255 -42.40889,171.235779000000008 -42.394165,171.247467 -42.375,171.260254000000003 -42.366112,171.270537999999988 -42.355003000000004,171.297760000000011 -42.310279999999999,171.304413000000011 -42.296669,171.309692000000013 -42.281944000000003,171.31665000000001 -42.249724999999998,171.321075000000008 -42.224716,171.322754000000003 -42.207222000000002,171.324401999999992 -42.18972,171.326355000000007 -42.172226000000002,171.329131999999987 -42.155830000000002,171.343841999999995 -42.110832000000002,171.361084000000005 -42.067779999999999,171.461638999999991 -41.859726000000002,171.51080300000001 -41.764449999999997,171.533051 -41.766396,171.557738999999998 -41.766663,171.569121999999993 -41.766112999999997,171.650817999999987 -41.761391000000003,171.663025000000005 -41.757781999999999,171.685790999999995 -41.746948000000003,171.790526999999997 -41.696387999999999,171.85522499999999 -41.652779000000002,171.886658000000011 -41.629997000000003,171.942200000000014 -41.550277999999999,172.02276599999999 -41.443053999999997,172.053864000000004 -41.417503000000004,172.064972000000012 -41.40361,172.122192000000013 -41.277779000000002,172.111633000000012 -41.236114999999998,172.10522499999999 -41.153053,172.106078999999994 -40.911385000000003,172.10635400000001 -40.893059,172.108856000000003 -40.885559,172.113861000000014 -40.879997000000003,172.186645999999996 -40.813332000000003,172.218567000000007 -40.785834999999999,172.22470100000001 -40.781109,172.255248999999992 -40.776947,172.263884999999988 -40.774169999999998,172.271362000000011 -40.770553999999997,172.299408 -40.755004999999997,172.348297000000002 -40.727493000000003,172.382721000000004 -40.698334000000003,172.426909999999992 -40.657775999999998,172.478302000000014 -40.613892,172.513320999999991 -40.598441999999999,172.517639000000003 -40.596783000000002,172.523482999999999 -40.597946,172.522644000000014 -40.602943000000003,172.521132999999992 -40.607277000000003,172.520813000000004 -40.625,172.519440000000003 -40.631385999999999,172.525542999999999 -40.6325,172.534149000000014 -40.631667999999998,172.571899000000002 -40.617775000000002,172.596343999999988 -40.601394999999997,172.62802099999999 -40.573891000000003,172.631621999999993 -40.567222999999998,172.631621999999993 -40.559998,172.608582000000013 -40.556946000000003,172.601348999999999 -40.558891000000003,172.597014999999999 -40.553333000000002,172.589690999999988 -40.558838000000002,172.583862000000011 -40.560004999999997,172.581024000000014 -40.556671,172.581848000000008 -40.551665999999997,172.589843999999999 -40.541172000000003,172.627166999999986 -40.511947999999997,172.633330999999998 -40.509171000000002,172.661376999999987 -40.502785000000003,172.712188999999995 -40.495552000000004,172.817748999999992 -40.504173000000002,172.861358999999993 -40.507781999999999,172.981628 -40.527222000000002,172.991332999999997 -40.529167,172.989959999999996 -40.53389,172.978026999999997 -40.53389,172.945251000000013 -40.530830000000002,172.895263999999997 -40.524445,172.797211000000004 -40.516112999999997,172.739959999999996 -40.516945,172.731628 -40.519722000000002,172.656921000000011 -40.653328000000002,172.701355000000007 -40.748336999999999,172.855804000000006 -40.853057999999997,172.865509000000003 -40.853057999999997,172.875244000000009 -40.851112,172.907195999999999 -40.828887999999999,172.930266999999986 -40.802222999999998,172.935241999999988 -40.796669,172.976623999999987 -40.781944000000003,172.985229000000004 -40.781112999999998,173.002196999999995 -40.786667,173.008330999999998 -40.791114999999998,173.013306 -40.796669,173.020537999999988 -40.809722999999998,173.051085999999998 -40.869446000000003,173.059692000000013 -40.962775999999998,173.059692000000013 -40.971938999999999,173.056091000000009 -40.978606999999997,173.031646999999992 -41.027495999999999,173.075806 -41.291114999999998,173.079680999999994 -41.297500999999997,173.085784999999987 -41.302222999999998,173.105529999999987 -41.313332000000003,173.168029999999987 -41.316108999999997,173.188873 -41.313332000000003,173.198853000000014 -41.311385999999999,173.207184000000012 -41.308608999999997,173.272217000000012 -41.274445,173.278320000000008 -41.269722000000002,173.32607999999999 -41.222496,173.340515000000011 -41.205832999999998,173.351623999999987 -41.195549,173.377166999999986 -41.178055,173.426085999999998 -41.150275999999998,173.598021999999986 -41.053612,173.606628 -41.052498,173.639709000000011 -41.073616,173.672760000000011 -41.070557,173.720519999999993 -41.060279999999999,173.727753000000007 -41.056389000000003,173.739959999999996 -41.047226000000002,173.744689999999991 -41.032501000000003,173.743286000000012 -41.024169999999998,173.738281 -41.018608,173.72744800000001 -41.019447,173.718841999999995 -41.022499000000003,173.696930000000009 -41.033614999999998,173.690796000000006 -41.038338000000003,173.682189999999991 -41.041114999999998,173.676085999999998 -41.036391999999999,173.673584000000005 -41.029167,173.674682999999987 -41.020836000000003,173.678314 -41.014449999999997,173.696625000000012 -41.000281999999999,173.751373 -40.976944000000003,173.800262000000004 -40.969161999999997,173.913299999999992 -40.931671,173.984679999999997 -40.896949999999997,173.994415000000004 -40.896667,174.02276599999999 -40.913055,174.027771 -40.91861,174.030272999999994 -40.925834999999999,174.03054800000001 -40.935271999999998,174.02941899999999 -40.943610999999997,174.022217000000012 -40.947220000000002,173.929961999999989 -40.992226000000002,173.832184000000012 -40.995002999999997,173.821075000000008 -40.994163999999998,173.782195999999999 -41.009171000000002,173.778594999999996 -41.015555999999997,173.769713999999993 -41.09861,173.778594999999996 -41.114449,173.794433999999995 -41.109444000000003,173.822204999999997 -41.080832999999998,173.821899000000002 -41.062218,173.836638999999991 -41.055,173.846343999999988 -41.053055,173.93081699999999 -41.049446000000003,173.946625000000012 -41.055832000000002,173.953033000000005 -41.060555,173.917755 -41.087502,173.887482000000006 -41.103332999999999,173.848846000000009 -41.144165,173.820526 -41.245834000000002,173.763306 -41.267502,173.76080300000001 -41.273055999999997,173.775817999999987 -41.289726000000002,173.788025000000005 -41.290557999999997,173.806365999999997 -41.289444000000003,174.03720100000001 -41.218330000000002,174.09970100000001 -41.198334000000003,174.128845000000013 -41.187218,174.133605999999986 -41.181671,174.133605999999986 -41.176108999999997,174.126068000000004 -41.174171,174.008605999999986 -41.175277999999999,174.001099000000011 -41.178885999999999,174.001373 -41.186385999999999,174.000274999999988 -41.194716999999997,173.993010999999996 -41.198334000000003,173.981902999999988 -41.199440000000003,173.932738999999998 -41.199997000000003,173.908324999999991 -41.199997000000003,173.899719000000005 -41.197495000000004,173.893585000000002 -41.192771999999998,173.887206999999989 -41.169724000000002,173.88580300000001 -41.161667,173.888031000000012 -41.154167,173.89776599999999 -41.133614,173.902466000000004 -41.128334000000002,174.032745000000006 -40.999724999999998,174.084411999999986 -41.021385000000002,174.094116000000014 -41.023330999999999,174.246338000000009 -41.044724000000002,174.258330999999998 -41.035277999999998,174.299408 -41.003616,174.315246999999999 -41.000557,174.323853000000014 -41.003334000000002,174.323853000000014 -41.010834000000003,174.321625000000012 -41.018059,174.209960999999993 -41.197495000000004,174.161376999999987 -41.225555,174.152771 -41.226661999999997,174.114685000000009 -41.231383999999998,174.052185000000009 -41.235000999999997,174.02664200000001 -41.236114999999998,174.053864000000004 -41.254173000000002,174.206359999999989 -41.269447,174.214966000000004 -41.266663,174.291655999999989 -41.238892,174.303588999999988 -41.229720999999998,174.320800999999989 -41.220275999999998,174.326904000000013 -41.222771000000002,174.288574000000011 -41.276947,174.249114999999989 -41.322502,174.241637999999995 -41.326110999999997,174.231902999999988 -41.328055999999997,174.208587999999992 -41.329445,174.193572999999986 -41.320281999999999,174.155243000000013 -41.305,174.148041000000006 -41.308608999999997,174.111633000000012 -41.336661999999997,174.052764999999994 -41.421112,174.049133000000012 -41.427779999999998,174.044433999999995 -41.442497000000003,174.045806999999996 -41.450836000000002,174.049988000000013 -41.466392999999997,174.063873 -41.493057,174.084136999999998 -41.526108,174.097473000000008 -41.519447,174.096069 -41.511116,174.100799999999992 -41.505561999999998,174.108306999999996 -41.509171000000002,174.114685000000009 -41.513893000000003,174.125792999999987 -41.523887999999999,174.151093000000003 -41.551392,174.176085999999998 -41.578612999999997,174.178864000000004 -41.586112999999997,174.179961999999989 -41.594444000000003,174.179137999999995 -41.602783000000002,174.174133000000012 -41.608336999999999,174.163299999999992 -41.618606999999997,174.157195999999999 -41.623328999999998,174.193024000000008 -41.685555,174.287749999999988 -41.734444000000003,174.291655999999989 -41.740836999999999,174.289153999999996 -41.748336999999999,174.283324999999991 -41.762222,174.236358999999993 -41.837218999999997,174.212188999999995 -41.865279999999998,174.201355000000007 -41.875557,174.184143000000006 -41.890555999999997,174.17804000000001 -41.895004,174.164703000000003 -41.90361,174.157195999999999 -41.907218999999998,174.143585000000002 -41.915832999999999,174.088561999999996 -41.957779000000002,174.009154999999993 -42.027495999999999,173.979674999999986 -42.061110999999997,173.965239999999994 -42.086945,173.959136999999998 -42.100838000000003,173.954407000000003 -42.115555,173.953307999999993 -42.123885999999999,173.953583000000009 -42.133330999999998,173.956359999999989 -42.166389000000002,173.933319000000012 -42.196944999999999,173.928314 -42.202499000000003,173.884154999999993 -42.243614,173.87802099999999 -42.248055,173.870513999999986 -42.251944999999999,173.86300700000001 -42.255561999999998,173.834686000000005 -42.271385000000002,173.801361000000014 -42.293059999999997,173.794983000000002 -42.297500999999997,173.568572999999986 -42.476944000000003,173.558593999999999 -42.487777999999999,173.541350999999992 -42.511947999999997,173.533874999999995 -42.525002,173.531372000000005 -42.532218999999998,173.500823999999994 -42.599724000000002,173.480804000000006 -42.621941,173.466063999999989 -42.656944000000003,173.459960999999993 -42.670836999999999,173.448853000000014 -42.690277000000002,173.387755999999996 -42.793616999999998,173.351623999999987 -42.840836000000003,173.328033000000005 -42.898887999999999,173.328033000000005 -42.906387000000002,173.325806 -42.913612,173.285521999999986 -42.958053999999997,173.106902999999988 -43.057777000000002,173.099396000000013 -43.061385999999999,173.090515000000011 -43.064444999999999,173.026366999999993 -43.081947,172.975799999999992 -43.09111,172.953033000000005 -43.092773,172.935516000000007 -43.098334999999999,172.92025799999999 -43.105834999999999,172.838012999999989 -43.148055999999997,172.818024000000008 -43.160828000000002,172.797760000000011 -43.183059999999998,172.772217000000012 -43.219718999999998,172.76080300000001 -43.239165999999997,172.758026 -43.246665999999998,172.726944000000003 -43.415539000000003,172.726593000000008 -43.423355,172.775817999999987 -43.612220999999998,172.894135000000006 -43.61972,172.90554800000001 -43.620834000000002,173.059692000000013 -43.653053,173.100525000000005 -43.697220000000002,173.105529999999987 -43.703612999999997,173.114409999999992 -43.741385999999999,173.116913000000011 -43.762504999999997,173.116913000000011 -43.769996999999996,173.112182999999987 -43.825004999999997,173.110779000000008 -43.833328000000002,173.091644000000002 -43.856392,173.058593999999999 -43.871108999999997,173.006088000000005 -43.869498999999998,173.002242999999993 -43.868999000000002,172.999236999999994 -43.865668999999997,172.990905999999995 -43.849670000000003,172.965239999999994 -43.802222999999998,172.961365 -43.764449999999997,172.958862000000011 -43.756950000000003,172.951355000000007 -43.755279999999999,172.939972000000012 -43.756110999999997,172.927185000000009 -43.766112999999997,172.921906000000007 -43.771667,172.920532000000009 -43.824173000000002,172.920532000000009 -43.833328000000002,172.917572000000007 -43.869221000000003,172.923584000000005 -43.875884999999997,172.931243999999992 -43.881390000000003,172.937408000000005 -43.887886000000002,172.938904000000008 -43.892384,172.938247999999987 -43.896220999999997,172.870789000000002 -43.904442000000003,172.861633000000012 -43.901389999999999,172.811919999999986 -43.882216999999997,172.804413000000011 -43.878334000000002,172.745789000000002 -43.837775999999998,172.740783999999991 -43.832222000000002,172.736908 -43.825836000000002,172.715239999999994 -43.808334000000002,172.642761000000007 -43.772224,172.513031000000012 -43.729438999999999,172.495238999999998 -43.723885000000003,172.483582000000013 -43.722771000000002,172.472197999999992 -43.72361,172.424988000000013 -43.733612,172.413299999999992 -43.743614,172.390258999999986 -43.763893000000003,172.384978999999987 -43.77861,172.382445999999987 -43.795006,172.383330999999998 -43.8125,172.384704999999997 -43.820838999999999,172.394713999999993 -43.850281000000003,172.393311000000011 -43.858612,172.386932000000002 -43.863334999999999,172.367461999999989 -43.867775000000002,172.297211000000004 -43.881110999999997,172.286925999999994 -43.883057,172.275542999999999 -43.883887999999999,172.189696999999995 -43.909163999999997,172.050812000000008 -43.965279000000002,171.978577 -43.995834000000002,171.955230999999998 -44.006667999999998,171.941070999999994 -44.015006999999997,171.782470999999987 -44.076949999999997,171.654694000000006 -44.122498,171.583587999999992 -44.153885000000002,171.547211000000004 -44.173889000000003,171.538483000000014 -44.178775999999999,171.355559999999997 -44.285491999999998,171.346465999999992 -44.292186999999998,171.342467999999997 -44.295555,171.319976999999994 -44.316391000000003,171.293578999999994 -44.343612999999998,171.285521999999986 -44.356392,171.278594999999996 -44.369995000000003,171.271911999999986 -44.383887999999999,171.269135000000006 -44.391112999999997,171.275542999999999 -44.395836000000003,171.279144000000002 -44.402495999999999,171.278594999999996 -44.420836999999999,171.277190999999988 -44.428885999999999,171.275542999999999 -44.437218,171.26998900000001 -44.451942000000003,171.263306 -44.465553,171.254974000000004 -44.478332999999999,171.214966000000004 -44.533057999999997,171.208313000000004 -44.537506,171.200531000000012 -44.541114999999998,171.196075000000008 -44.560279999999999,171.192200000000014 -44.645836000000003,171.193024000000008 -44.663330000000002,171.20495600000001 -44.700279000000002,171.21414200000001 -44.739165999999997,171.215239999999994 -44.747498,171.207184000000012 -44.851112,171.198577999999998 -44.919998,171.195800999999989 -44.927498,171.185241999999988 -44.938332000000003)))');
+INSERT INTO geoapp_country ("name", "mpoly") VALUES ('Texas', 'SRID=4326;MULTIPOLYGON (((-103.00243399999998 36.500397,-102.90421904194784 36.500393342967676,-102.8402359524855 36.500390960558398,-102.840235952479716 36.500390960558398,-102.840235952474345 36.500390960558398,-102.840235952468362 36.500390960558398,-102.840235952461725 36.500390960558398,-102.840235952455885 36.500390960558398,-102.792077446284736 36.500389167377229,-102.643207699865854 36.500383624214699,-102.366462330167067 36.500373319605465,-102.250452999999979 36.500368999999999,-102.24499 36.500703999999999,-102.162463000000002 36.500326,-102.12545 36.500323999999999,-102.124752896301885 36.500398159967887,-102.122066000000004 36.500684,-101.930244999999999 36.500526,-101.925344139375468 36.500484781341967,-101.914929315957153 36.500397187533892,-101.826564999999988 36.499653999999992,-101.826498 36.499535000000002,-101.81449312121488 36.499579719643286,-101.788110000000003 36.499678000000003,-101.783359000000004 36.499709000000003,-101.781987 36.499718,-101.780609999999982 36.499727,-101.779435000000007 36.499733999999997,-101.773235954788092 36.499732939140301,-101.709314000000006 36.499721999999998,-101.698684999999998 36.499507999999999,-101.653707999999995 36.499572999999998,-101.649966000000006 36.499572999999998,-101.623914999999997 36.499527999999998,-101.414793008557069 36.499417763984319,-101.392608849457574 36.499406069885133,-101.340061173170298 36.499378370041477,-101.085155999999984 36.499243999999997,-101.052418000000003 36.499562999999995,-101.04533099999999 36.499540000000003,-100.977087999999995 36.499594999999999,-100.936058000000003 36.499602000000003,-100.918513000000004 36.499620999999998,-100.884174000000002 36.499682,-100.884079999999997 36.499682,-100.859656999999984 36.499687000000002,-100.850840000000005 36.49969999999999,-100.824235999999999 36.499617999999998,-100.824218000000002 36.499617999999998,-100.80619 36.499673999999999,-100.806172000000004 36.499634,-100.802909 36.499620999999998,-100.802886 36.499620999999998,-100.761810999999994 36.499617999999998,-100.761810999999994 36.499580000000002,-100.724361999999999 36.499580000000002,-100.724361000000002 36.499558,-100.708625999999995 36.499552999999999,-100.708628000000004 36.499520999999994,-100.657762999999989 36.499482999999991,-100.657762999999989 36.499499999999998,-100.648342999999997 36.499495000000003,-100.648343999999994 36.499462999999999,-100.592613999999998 36.499468999999998,-100.592555999999988 36.499468999999998,-100.592551 36.499428999999999,-100.583539000000002 36.499482999999991,-100.583378999999994 36.499442999999999,-100.578113999999999 36.499462999999999,-100.578113999999999 36.499439000000002,-100.546144999999996 36.499343000000003,-100.531215000000003 36.499341,-100.531215000000003 36.499290000000002,-100.530478000000002 36.49924,-100.530314000000004 36.499357000000003,-100.522227 36.499290999999999,-100.441064999999995 36.499490000000002,-100.441063999999997 36.499462,-100.433959000000002 36.499456000000002,-100.421327999999988 36.499447000000004,-100.421300999999985 36.499487999999999,-100.413634000000002 36.499443999999997,-100.41355 36.499468999999998,-100.378634000000005 36.499516999999997,-100.378591999999998 36.499445,-100.35185199999998 36.499487000000002,-100.351841999999991 36.499473000000002,-100.334463999999997 36.49942,-100.334440999999998 36.49944,-100.324150000000003 36.499679,-100.311244999999985 36.499631,-100.311018000000004 36.499687999999999,-100.310642999999985 36.499642,-100.253572851827684 36.499638031344489,-100.181220999999994 36.499633000000003,-100.090020999999993 36.499634,-100.000405999999984 36.499701999999999,-100.0004059967807 36.499497793115623,-100.00040222345956 36.260147946939995,-100.000399000000002 36.055677000000003,-100.000396170268971 35.879197994164429,-100.000394020347557 35.745115995014778,-100.000391999999991 35.619115,-100.000390396259149 35.519130234823749,-100.000386875554753 35.299632926398459,-100.000386874882437 35.299591010324292,-100.000386852473085 35.298193905884737,-100.000384999999994 35.182701999999999,-100.000381972929958 34.852568985943549,-100.000381605014198 34.812443999872983,-100.000381000000004 34.746460999999996,-100.000381000000004 34.570853999999997,-100.000381000000004 34.570647,-100.000381000000004 34.560509000000003,-99.998254592787575 34.560446149085699,-99.997501461048799 34.560423888524269,-99.985833 34.560079000000002,-99.974761999999998 34.561317999999993,-99.971554999999995 34.562179,-99.965608000000003 34.565843999999998,-99.958898000000005 34.571271000000003,-99.957540999999992 34.572708999999996,-99.95755299999999 34.574168999999998,-99.956716999999998 34.576523999999992,-99.954566999999997 34.578195,-99.94571999999998 34.579273,-99.930492488760507 34.576894921075187,-99.930189904388058 34.576847666503667,-99.929333999999997 34.576714000000003,-99.923210999999995 34.574551999999997,-99.921801000000002 34.570253,-99.915771000000007 34.565975000000002,-99.914151070156151 34.564995899308187,-99.898943000000003 34.555804000000002,-99.896006999999997 34.555529999999997,-99.89376 34.554219000000003,-99.887146999999999 34.549047000000002,-99.885392392967745 34.547401436342639,-99.884583851343237 34.546643143067669,-99.87806651563541 34.540530839522475,-99.87650823800611 34.539069404005723,-99.874403 34.537095,-99.873254000000003 34.535350999999999,-99.872356999999994 34.532096000000003,-99.868953000000005 34.52761499999999,-99.867217250163094 34.525864500605081,-99.853065999999998 34.511592999999998,-99.832903999999985 34.500067999999999,-99.825324999999992 34.497596,-99.818185999999997 34.487839999999991,-99.818738999999979 34.484975999999996,-99.814544624457952 34.476663062301249,-99.814312999999984 34.476204000000003,-99.793683999999999 34.453893999999998,-99.783787954821193 34.445078397966533,-99.782985999999994 34.444364,-99.775743000000006 34.444225000000003,-99.774224411180043 34.443216449834381,-99.765598999999995 34.437488000000002,-99.764825999999999 34.436433999999998,-99.764881999999986 34.435265999999999,-99.767647999999994 34.431854,-99.767234000000002 34.430501999999997,-99.754248000000004 34.421288999999994,-99.740907000000007 34.414763,-99.735679661059166 34.413018903486261,-99.730348000000006 34.411239999999992,-99.720258999999999 34.406295,-99.719721039768913 34.405807854123296,-99.716415999999995 34.402814999999997,-99.715089000000006 34.400753999999999,-99.714231999999996 34.397821999999998,-99.714838 34.394523999999997,-99.712682 34.390928000000002,-99.707900999999993 34.387538999999997,-99.696461999999997 34.381036000000002,-99.678282999999979 34.379798999999998,-99.672337448339604 34.378003970284972,-99.671377000000007 34.377713999999997,-99.666676988468737 34.374633899592595,-99.665992000000003 34.374184999999997,-99.665404581506792 34.374094751646162,-99.662705000000003 34.373679999999993,-99.659863615570984 34.374283464835351,-99.659362000000002 34.374389999999998,-99.654194000000004 34.376519000000002,-99.649662000000006 34.379885000000002,-99.630904999999998 34.376007,-99.628541546335526 34.375150829397036,-99.624196999999995 34.373576999999997,-99.600026 34.374687999999999,-99.596322999999998 34.377136999999998,-99.587595999999991 34.385866999999998,-99.587235087741874 34.386377538370702,-99.585718954359294 34.388522226586467,-99.585441999999986 34.388914,-99.584530999999984 34.391204999999999,-99.585306000000003 34.398122,-99.584479999999985 34.407673000000003,-99.580059999999989 34.416652999999997,-99.574366999999995 34.418281,-99.569695999999993 34.418418000000003,-99.563067665646059 34.417445690943012,-99.562203999999994 34.417318999999999,-99.561530791054494 34.417028950664999,-99.555986000000004 34.414639999999999,-99.549242000000007 34.412714999999992,-99.529786 34.411451999999997,-99.528744576810823 34.411579971493573,-99.523649999999989 34.412205999999998,-99.517623999999998 34.414493999999991,-99.514279999999999 34.414034999999998,-99.499874999999989 34.409607999999999,-99.497090999999983 34.407730999999991,-99.494103999999993 34.404755000000002,-99.490425999999999 34.399693999999997,-99.487218999999982 34.397955000000003,-99.477547 34.396355,-99.477019613816751 34.396364300212412,-99.474810232095294 34.396403261641368,-99.472297823530695 34.396447566809115,-99.470968999999997 34.396470999999991,-99.463286816319666 34.393024688790533,-99.452647999999996 34.388252,-99.445020999999983 34.379891999999998,-99.440759999999997 34.374122999999997,-99.430994999999982 34.373413999999997,-99.43081720973791 34.373532661492725,-99.420432000000005 34.380464000000003,-99.408847999999992 34.372776000000002,-99.407167999999999 34.372605,-99.406018176721332 34.372844364351735,-99.404336527339453 34.373194441551952,-99.402959999999979 34.373480999999998,-99.399602999999999 34.375078999999999,-99.397253000000006 34.377870999999999,-99.396160718377317 34.383134276834824,-99.391492 34.405631,-99.393918999999997 34.415273999999989,-99.396488000000005 34.417290999999999,-99.396901999999997 34.418688000000003,-99.397009999999995 34.424002999999999,-99.395768462359129 34.43494110377263,-99.394955999999993 34.442098999999999,-99.381011 34.456935999999999,-99.376037841709419 34.458617501802458,-99.375365000000002 34.458844999999997,-99.369609999999994 34.458699000000003,-99.358795 34.455862999999994,-99.354671999999994 34.451856999999997,-99.35478257092818 34.450383391084422,-99.354837000000003 34.449657999999999,-99.356770999999995 34.446542,-99.357101999999998 34.444915000000002,-99.356712999999999 34.442143999999999,-99.350407000000004 34.437083,-99.342020261837703 34.431514649700844,-99.341336999999996 34.431061,-99.341016600261696 34.430906286427735,-99.334036999999995 34.427536000000003,-99.331050066208874 34.424666026137302,-99.328674000000007 34.422383000000004,-99.325094009617374 34.416010263301388,-99.324222000000006 34.414458000000003,-99.321411663781888 34.411055277053073,-99.319798627189357 34.409102230797522,-99.319605999999979 34.408869000000003,-99.318363000000005 34.408295999999993,-99.316372999999999 34.408204999999995,-99.308273999999997 34.410013999999997,-99.299098 34.414227999999994,-99.294647999999981 34.415373000000002,-99.289922000000004 34.414731000000003,-99.287844819286008 34.413958196831629,-99.264167 34.405149000000002,-99.261320999999981 34.403498999999996,-99.261255940568432 34.403158389836314,-99.260996786434447 34.401801622187399,-99.259199386422964 34.392391568987605,-99.258998120407611 34.391337867029385,-99.258979999999994 34.391243000000003,-99.259239630132384 34.391043961974496,-99.260703756811225 34.389921531074158,-99.261190999999997 34.389547999999998,-99.262646013804954 34.388906249865343,-99.264243556741917 34.388201635660714,-99.264508000000006 34.388084999999997,-99.271031915197597 34.387722560266795,-99.271781628057255 34.38768090955238,-99.273607516746409 34.387579471291865,-99.273957999999993 34.38756,-99.27534 34.386598999999997,-99.274925999999994 34.384903999999999,-99.271845396288441 34.382114976063626,-99.271280999999988 34.381603999999996,-99.258696 34.372633999999998,-99.254722 34.372405,-99.251407999999984 34.375079999999997,-99.248969000000002 34.375984000000003,-99.242944999999992 34.372667999999997,-99.239138083830497 34.366035888164781,-99.237232999999989 34.362716999999996,-99.237183660287812 34.362563767173611,-99.235448627455725 34.357175329079247,-99.234251999999984 34.353459,-99.233273999999994 34.344101000000002,-99.23260599999999 34.342379999999999,-99.229993999999991 34.340538000000002,-99.226152999999982 34.339725999999999,-99.221975 34.340020000000003,-99.219768999999999 34.341377,-99.217335000000006 34.341520000000003,-99.213134999999994 34.340369000000003,-99.210957832415772 34.336710386428308,-99.210716000000005 34.336303999999998,-99.20972399999998 34.324934999999996,-99.211600000000004 34.313969999999998,-99.213476 34.310671999999997,-99.213233598142949 34.308226764636807,-99.211647999999997 34.292231999999991,-99.211468055040228 34.291676209875057,-99.209990337717599 34.287112032604114,-99.209742000000006 34.286344999999997,-99.209514950796304 34.286049346749877,-99.207560999999998 34.283504999999998,-99.203681000000003 34.281925999999999,-99.200221999999997 34.281151999999999,-99.196259999999995 34.281463000000002,-99.196052113016066 34.281264951942028,-99.19571031750732 34.280939333014615,-99.195605 34.280839,-99.194569999999985 34.272424,-99.196926000000005 34.260928999999997,-99.197153 34.244298,-99.19555299999999 34.24006,-99.191138999999993 34.23234,-99.190145999999984 34.229660000000003,-99.190036000000006 34.227186000000003,-99.192076 34.222192,-99.192683000000002 34.218825000000002,-99.192104 34.216693999999997,-99.189758414718312 34.214539281858485,-99.189510999999996 34.214312,-99.188483307800709 34.214128939694163,-99.159015999999994 34.20888,-99.143985 34.214762999999998,-99.138220000000004 34.219158999999998,-99.130609000000007 34.219408,-99.128513999999996 34.218766000000002,-99.127549000000002 34.217986000000003,-99.126614000000004 34.21532899999999,-99.127525000000006 34.213771,-99.130089999999996 34.212192000000002,-99.131552999999997 34.209352000000003,-99.131884999999997 34.207382000000003,-99.129791999999995 34.204402999999999,-99.126566999999994 34.203004,-99.119203999999996 34.201746999999997,-99.108757999999995 34.203400999999999,-99.102001344898341 34.205813362825268,-99.092190999999985 34.209316,-99.08119261238302 34.211229594305671,-99.079534999999993 34.211517999999991,-99.075978000000006 34.211221000000002,-99.06646499999998 34.208404000000002,-99.060343999999986 34.204760999999991,-99.059158999999994 34.202928999999997,-99.058800000000005 34.201256,-99.058083999999994 34.200569000000002,-99.048792000000006 34.198208999999999,-99.043470999999997 34.198208,-99.040961999999993 34.200842000000002,-99.039004000000006 34.204667,-99.037458999999998 34.206454,-99.036272999999994 34.206912000000003,-99.013074999999986 34.203221999999997,-99.005790000000005 34.206646999999997,-99.002916243275195 34.208781598893673,-99.002945441244265 34.209102775846141,-99.003147197273819 34.211322087284138,-99.003432988816769 34.214465787333673,-99.000760999999997 34.217643000000002,-98.99085199999999 34.221632999999997,-98.987293999999991 34.221223000000002,-98.981363999999999 34.217582999999991,-98.978684999999984 34.210231,-98.976586999999995 34.206291,-98.974131999999983 34.203566000000002,-98.969003 34.201298999999999,-98.966301999999999 34.201323000000002,-98.962469999999996 34.204667999999998,-98.962085000000002 34.206386000000002,-98.962306999999981 34.211312,-98.960791 34.213029999999996,-98.958474999999993 34.213854999999995,-98.952512999999982 34.212649999999996,-98.950395999999984 34.21168,-98.940219999999997 34.203685999999998,-98.928145 34.192689,-98.927456000000006 34.191155000000002,-98.923128999999989 34.185977999999999,-98.920704 34.183435000000003,-98.918333000000004 34.181831000000003,-98.909348999999992 34.177498999999997,-98.892677318093561 34.17250349095427,-98.87651287834953 34.167659972141138,-98.872921999999988 34.166584,-98.871543000000003 34.165026999999995,-98.871211000000002 34.163012000000002,-98.872229000000004 34.160446,-98.874954999999986 34.157031000000003,-98.874871999999996 34.155656999999998,-98.873271000000003 34.153596,-98.868116 34.149635000000004,-98.862549999999999 34.149110999999998,-98.860124999999996 34.149912999999998,-98.858418999999998 34.152732,-98.8579 34.159627,-98.857321999999982 34.161093999999999,-98.855585000000005 34.161620999999997,-98.854264541670545 34.16164976192438,-98.831114999999983 34.162154,-98.812953999999991 34.158444000000003,-98.806809999999984 34.155901,-98.804411553093104 34.153928907629435,-98.792015000000006 34.143735999999997,-98.779288744496085 34.140194111533035,-98.773070373738221 34.138463455122455,-98.767587610783494 34.136937528280072,-98.765569999999983 34.136375999999998,-98.764702233233265 34.135780085954792,-98.763778343962841 34.135145631382905,-98.761796999999987 34.133785000000003,-98.760558000000003 34.132387999999999,-98.759485999999995 34.128881999999997,-98.759653 34.126911999999997,-98.757118934362524 34.12470437936247,-98.757036999999983 34.124633000000003,-98.753813984496389 34.124468645349353,-98.749290999999999 34.124237999999998,-98.741966000000005 34.125529999999998,-98.740191287161664 34.126850584722824,-98.739461000000006 34.127394000000002,-98.737231999999992 34.130991999999999,-98.736819999999994 34.133374000000003,-98.735471000000004 34.135207999999999,-98.734286999999995 34.135758000000003,-98.730242646678789 34.1359250861193,-98.717536999999993 34.136450000000004,-98.716104 34.135947000000002,-98.70640034274598 34.134745066348501,-98.696517999999998 34.133521000000002,-98.690291400890658 34.133167457450512,-98.690072 34.133155000000002,-98.688275858887323 34.134465065675442,-98.685589983550884 34.136424083851644,-98.676900633591032 34.14276190388366,-98.676457484208683 34.143085127260051,-98.670573548505118 34.147376740066704,-98.655654999999982 34.158257999999996,-98.650582999999997 34.163113000000003,-98.648072999999997 34.164440999999997,-98.643223000000006 34.164530999999997,-98.635729999999995 34.161617999999997,-98.634085211037615 34.161100728840964,-98.630950281399748 34.160114822001631,-98.621666000000005 34.157195000000002,-98.620507214282355 34.157012478916968,-98.617663812339856 34.156564612849806,-98.616732999999996 34.156418000000002,-98.615748434938936 34.156446107485429,-98.612133570686254 34.156549305078279,-98.611829 34.156557999999997,-98.610173632571488 34.157093658210222,-98.610154152422197 34.157099961766605,-98.608852999999996 34.157521000000003,-98.603977999999998 34.160249,-98.599789 34.160570999999997,-98.577135999999996 34.148961999999997,-98.572451 34.145091,-98.560191000000003 34.133201999999997,-98.558593000000002 34.128253999999998,-98.550916999999998 34.119334000000002,-98.536257000000006 34.107343,-98.530610999999993 34.099843,-98.528199999999998 34.094960999999998,-98.504182 34.072370999999997,-98.487068052145446 34.063003092954936,-98.486783271268621 34.06284720836274,-98.486328 34.062598,-98.483944186894661 34.06241565608709,-98.482821069121968 34.062329745958955,-98.482039999999998 34.062269999999998,-98.475065999999998 34.064269000000003,-98.449033999999983 34.073461999999999,-98.446378999999993 34.075429999999997,-98.445784000000003 34.076827000000002,-98.445590305319797 34.079232123390703,-98.445584999999994 34.079298,-98.445259148452962 34.079797720749731,-98.443724000000003 34.082152,-98.442807999999999 34.083143999999997,-98.442148160210323 34.083427517317581,-98.441104460406791 34.083875970068213,-98.440092000000007 34.084311,-98.439068026005657 34.084479541105658,-98.434822808733685 34.08517828308225,-98.432126999999994 34.085622,-98.43151641213494 34.085605425226575,-98.43092946822253 34.085589492282431,-98.428479999999993 34.085523000000002,-98.425229999999999 34.084798999999997,-98.422252999999998 34.083036999999997,-98.419995 34.082487999999998,-98.419161945519861 34.082694545588339,-98.41804644206556 34.082971120917755,-98.417812999999995 34.083029000000003,-98.414426000000006 34.085073999999999,-98.400747497198822 34.098985940284976,-98.399776999999986 34.099972999999999,-98.398505572550647 34.104180252359392,-98.39838899999998 34.104565999999998,-98.398160000000004 34.121395999999997,-98.400493999999995 34.121777999999999,-98.400966999999994 34.122236,-98.398441000000005 34.128456,-98.384381000000005 34.146317000000003,-98.381237999999996 34.149453999999999,-98.367493999999994 34.156190999999993,-98.366862955318183 34.156357896864854,-98.364023000000003 34.157108999999998,-98.34173552164826 34.153594120579292,-98.339428832109121 34.153230340726623,-98.331172907733077 34.151928328079421,-98.326986688030772 34.151268134169193,-98.325445000000002 34.151024999999997,-98.324621914768684 34.150650086831803,-98.323612587945547 34.150190341106089,-98.322580000000002 34.149720000000002,-98.320651676675396 34.148059023851737,-98.318749999999994 34.146420999999997,-98.315432139066189 34.144301906683673,-98.312023538956254 34.142124858924547,-98.300208999999995 34.134579000000002,-98.299345719035045 34.134365643147696,-98.29862570169189 34.134187693395319,-98.293901000000005 34.133020000000002,-98.280321 34.130749999999999,-98.258217018239392 34.129574098564007,-98.256467 34.129480999999998,-98.254901718278489 34.129708262798985,-98.247953999999993 34.13071699999999,-98.241012999999995 34.133102999999998,-98.225282000000007 34.127245000000002,-98.223600000000005 34.125093,-98.216463000000005 34.121820999999997,-98.203710999999998 34.117676000000003,-98.200074999999998 34.116782999999998,-98.191455000000005 34.115752999999998,-98.169120000000007 34.114170999999999,-98.157411999999994 34.120466999999998,-98.154353999999998 34.122734,-98.142753999999996 34.136358999999999,-98.136769999999999 34.144992000000002,-98.130815999999996 34.150531999999998,-98.123377000000005 34.154539999999997,-98.114506000000006 34.154727,-98.109461999999979 34.154110999999993,-98.107064999999992 34.152531000000003,-98.101937000000007 34.146829999999994,-98.092021474678845 34.132735952269094,-98.090223999999992 34.130181,-98.089754999999982 34.128211,-98.090659999999986 34.12198,-98.092421000000002 34.116917,-98.095117999999999 34.11119,-98.096177285423778 34.109455137055363,-98.096466125075011 34.108982084942461,-98.099327999999986 34.104295,-98.101378023037029 34.101786489578267,-98.103538246996251 34.099143131812454,-98.104308999999986 34.098199999999999,-98.119416999999999 34.084474,-98.121038999999996 34.081265999999999,-98.120207999999991 34.072127000000002,-98.11802999999999 34.067064999999999,-98.114587 34.06228,-98.100919767943822 34.050244792175462,-98.099096110217346 34.048638900093685,-98.096177018664264 34.044625138601674,-98.096541898037387 34.040976263553816,-98.09727167092565 34.038969381040054,-98.097731364247636 34.038509687718062,-98.098001443813914 34.038239608151798,-98.102015208841422 34.03732738850595,-98.104022094890695 34.036232725638037,-98.104083244997014 34.036133356900422,-98.105481647738245 34.033860956680144,-98.105481647738245 34.032444902147553,-98.105481647738245 34.031306746267951,-98.103616999999986 34.029206999999992,-98.088202999999993 34.005481000000003,-98.085260000000005 34.003259,-98.082839000000007 34.002412,-98.055197000000007 33.995840999999999,-98.050169864666017 33.994989457544634,-98.041117 33.993456000000002,-98.027671999999981 33.993357000000003,-98.019485000000003 33.993803999999997,-98.018481521828946 33.993960861546498,-98.005667000000003 33.995964,-97.987387999999996 33.999822999999999,-97.982805999999997 34.001949000000003,-97.978243000000006 34.005386999999999,-97.974597608872358 34.00657735007583,-97.974172999999993 34.006715999999997,-97.973934144800623 34.006593661859519,-97.971670000000003 34.005434,-97.968339999999998 34.000529999999998,-97.965354903485249 33.996992503283089,-97.963375425210828 33.994646717187933,-97.96302799999998 33.994235000000003,-97.962715090700769 33.994009516348072,-97.958325000000002 33.990845999999998,-97.955849999999998 33.990136,-97.952687999999995 33.990113999999998,-97.947571999999994 33.991053,-97.946472999999997 33.990731999999994,-97.945729999999998 33.989839000000003,-97.945949999999982 33.988395999999995,-97.952184120103468 33.971402949359636,-97.95307606469359 33.968971674482539,-97.95691699999999 33.958502000000003,-97.960351000000003 33.951928000000002,-97.965737000000004 33.947392,-97.972662 33.944527,-97.974172999999993 33.942832000000003,-97.974062000000004 33.940289,-97.972493999999998 33.937907000000003,-97.971175000000002 33.937128999999999,-97.965952999999999 33.936191,-97.963425 33.936236999999998,-97.955511 33.938186000000002,-97.954466999999994 33.937773999999997,-97.953395 33.936444999999999,-97.952679000000003 33.929482,-97.953694999999996 33.924373000000003,-97.957155 33.914453999999999,-97.960615000000004 33.910353999999998,-97.961188664141474 33.909913087050903,-97.963139679674441 33.908413554571595,-97.964461 33.907398,-97.964803587866868 33.907309441163022,-97.9693952279504 33.906122503898267,-97.969873000000007 33.905999,-97.970298415583201 33.906261144464871,-97.973142999999993 33.908014,-97.976962999999998 33.912548999999999,-97.978803999999997 33.912548,-97.979984999999999 33.911402000000002,-97.983551999999989 33.904001999999991,-97.984539999999996 33.900703,-97.984566 33.899076999999998,-97.984416725907181 33.89872544733722,-97.984025057628415 33.897803036597892,-97.98383498894799 33.897355409354304,-97.983768999999995 33.897199999999991,-97.977858999999995 33.889929000000002,-97.974177999999995 33.886642999999999,-97.967776999999998 33.882429999999999,-97.958438 33.879179,-97.951215000000005 33.878424000000003,-97.946463999999992 33.878883000000002,-97.942729999999997 33.879845000000003,-97.938801999999995 33.879891,-97.936743000000007 33.879204,-97.933120450042608 33.877388671138185,-97.918328311832767 33.869976048610916,-97.905467000000002 33.863530999999995,-97.896737999999985 33.857984999999999,-97.877386999999999 33.850236000000002,-97.871447000000003 33.849001,-97.865764999999982 33.849392999999999,-97.835425213046037 33.857383352392631,-97.834333 33.857671000000003,-97.833886750888084 33.857971936447115,-97.833218553718808 33.858422547723912,-97.806802470257153 33.876236728393856,-97.805423000000005 33.877167,-97.803472999999997 33.880189999999999,-97.801578000000006 33.885137999999998,-97.784656999999982 33.890631999999997,-97.78061799999999 33.895533,-97.779683000000006 33.899242999999998,-97.780339999999995 33.904833000000004,-97.783716999999996 33.910559999999997,-97.772672 33.914382000000003,-97.765445999999997 33.913531999999989,-97.763769999999994 33.914240999999997,-97.762914903547767 33.914953098088951,-97.761142192227695 33.916429357685161,-97.760223999999994 33.917194000000002,-97.759399000000002 33.91881999999999,-97.759833999999984 33.92521,-97.762660999999994 33.930846000000003,-97.762767999999994 33.934396,-97.752956999999995 33.937049000000002,-97.738478 33.937421,-97.736553999999998 33.936574999999998,-97.735919542935619 33.936533987763056,-97.734773489745407 33.936459905200778,-97.733722999999998 33.936391999999998,-97.732266999999993 33.936691000000003,-97.725289000000004 33.941045000000003,-97.720699142354164 33.94461309292862,-97.716772000000006 33.947665999999998,-97.714693355370301 33.94981590741822,-97.712051708440285 33.952548118711093,-97.709683999999996 33.954996999999999,-97.708350195107343 33.95701014009046,-97.70415899999999 33.963335999999998,-97.69792099999998 33.977331,-97.69310999999999 33.983699,-97.688023 33.986606999999999,-97.671772000000004 33.991370000000003,-97.661489000000003 33.990817999999997,-97.656210000000002 33.989488,-97.633778000000007 33.981256999999999,-97.609091000000006 33.968093000000003,-97.589597999999995 33.953553999999997,-97.588828000000007 33.951881999999998,-97.591270649549756 33.930345579062646,-97.591514000000004 33.928199999999997,-97.595084 33.922953999999997,-97.596154999999996 33.922105999999999,-97.59697899999999 33.920228000000002,-97.597115000000002 33.917867999999999,-97.596955673755872 33.917077348335745,-97.596288999999985 33.913769000000002,-97.593782375104212 33.910260437761373,-97.589253999999997 33.903922,-97.587440999999984 33.902479,-97.582744000000005 33.900784999999999,-97.578907598302408 33.900207204108142,-97.558269999999993 33.897098999999997,-97.555002000000002 33.897281999999997,-97.551541 33.897947000000002,-97.543245999999996 33.901288999999998,-97.533617322522971 33.906127586572126,-97.532723000000004 33.906576999999999,-97.525277000000003 33.911750999999995,-97.519170999999986 33.913637999999999,-97.504870374844515 33.918353570482601,-97.500960000000006 33.919643,-97.495648860558163 33.919307898609453,-97.494857999999979 33.919257999999999,-97.492061582842766 33.918500058129531,-97.487115891787269 33.917159576320657,-97.48650499999998 33.916993999999995,-97.484158940985964 33.915822631562747,-97.460375999999982 33.903948,-97.458068999999995 33.901634999999999,-97.451065249608234 33.891558064966901,-97.450953999999996 33.891398000000002,-97.451469000000003 33.87093,-97.452287410342421 33.86882620086994,-97.455665873415143 33.860141550511862,-97.457616999999999 33.855125999999998,-97.459565999999995 33.853316,-97.461485999999994 33.849559999999997,-97.462857 33.841771999999999,-97.459067999999988 33.834581,-97.453056999999987 33.828536,-97.444192999999999 33.823773000000003,-97.426492999999994 33.819398,-97.410387 33.818845000000003,-97.403235695189224 33.818961304668854,-97.384901622687948 33.819259479377855,-97.372940999999997 33.819454,-97.368744000000007 33.821471000000003,-97.365506999999994 33.823762999999992,-97.358512999999988 33.830018000000003,-97.348337999999984 33.843876000000002,-97.340900078515631 33.860236176367188,-97.339391593410966 33.867629740388111,-97.337846311291798 33.870430566802547,-97.336524008254173 33.872827243260353,-97.33293952159849 33.874440259476913,-97.329175814777756 33.874440259476913,-97.327562805507441 33.873902588562437,-97.326564370247013 33.872737756024428,-97.326487449786001 33.872648016149064,-97.324157539016809 33.866016724171544,-97.322365295688968 33.864941382342593,-97.318243141591921 33.865120602507631,-97.31654836796514 33.865642075591225,-97.315913230822716 33.865837504006514,-97.314412999999988 33.866988999999997,-97.310479256695203 33.873361218982971,-97.307489695517361 33.878203969770759,-97.302471419756401 33.880175433263638,-97.299245387323282 33.880175433263638,-97.295170524880618 33.877119286431629,-97.294227111562321 33.876411726442917,-97.286921603026471 33.869423850720118,-97.28598279642199 33.868525862052032,-97.284253187903744 33.867526845294535,-97.279107999999979 33.864555000000003,-97.275347999999994 33.863225,-97.271531999999993 33.862560000000002,-97.257971626565464 33.863220416657512,-97.256624999999985 33.863286000000002,-97.255635999999996 33.863697999999999,-97.254234999999994 33.865322999999997,-97.249208999999993 33.875100999999994,-97.246418496348156 33.898356425448434,-97.246179999999981 33.900343999999997,-97.245398270620598 33.902084836575838,-97.245057441245748 33.90284383100218,-97.244945999999999 33.903092,-97.242092 33.906277000000003,-97.241794392023195 33.906436890220043,-97.238755934556053 33.908069304909361,-97.226522000000003 33.914642,-97.210920999999999 33.916063999999999,-97.210512235443105 33.915911440173737,-97.206141000000002 33.914279999999998,-97.185457999999997 33.9007,-97.180845000000005 33.895203999999993,-97.179608999999999 33.892249999999997,-97.170773789281327 33.861660975771436,-97.166629 33.847310999999998,-97.166824000000005 33.840395,-97.171627 33.835335,-97.180939422624874 33.831550006302521,-97.181369999999987 33.831375,-97.186254000000005 33.830894,-97.193690000000004 33.831307000000002,-97.195830999999998 33.830803000000003,-97.197477000000006 33.829794999999997,-97.199700000000007 33.827322000000002,-97.203513999999998 33.821824999999997,-97.204994999999997 33.81886999999999,-97.205652 33.809823999999999,-97.205556910941183 33.806237292333442,-97.205445103342427 33.802019970418343,-97.205431000000004 33.801487999999999,-97.205114487332324 33.800890302957832,-97.203236000000004 33.797342999999998,-97.194785999999993 33.785344000000002,-97.190397000000004 33.781153000000003,-97.187792000000002 33.769702000000002,-97.181842999999986 33.755869999999994,-97.173532726140948 33.740090726508434,-97.172577000695028 33.738276026602087,-97.172191999999995 33.737544999999997,-97.168438536634085 33.734131892706188,-97.163454368039083 33.729599677915004,-97.163149000000004 33.729322000000003,-97.162807288850388 33.729115696596551,-97.155066000000005 33.724442000000003,-97.152609597300682 33.723370138808036,-97.150103410774264 33.72227655424301,-97.149393999999987 33.721966999999999,-97.137529999999998 33.718663999999997,-97.126102000000003 33.716940999999998,-97.121101999999993 33.717174,-97.119522126797463 33.717502594273334,-97.114921749218269 33.718459416457094,-97.113264999999998 33.718803999999999,-97.112398501853761 33.719102240295193,-97.110065570752283 33.719905212653977,-97.108936 33.720294000000003,-97.108097026518521 33.720734123472262,-97.106518853348803 33.721562029324609,-97.104524999999995 33.722608,-97.097154000000003 33.727809,-97.094085000000007 33.730992,-97.092697209381924 33.732891057656268,-97.092130098039192 33.733667094850453,-97.091071999999983 33.735115,-97.089936943375889 33.737167271747261,-97.087911027802278 33.740830286618703,-97.086195000000004 33.743932999999998,-97.084820762198987 33.752363244406453,-97.084693 33.753146999999998,-97.08461299999999 33.759993,-97.085217999999998 33.765512,-97.087362453285593 33.77250304797397,-97.087851999999998 33.774099,-97.093101265647221 33.787040841586602,-97.093917000000005 33.789051999999998,-97.094675961767678 33.791977368936216,-97.095047178759813 33.793408200769441,-97.095235999999986 33.794136000000002,-97.095080023591905 33.79561056406444,-97.094877682854474 33.797523445530629,-97.094770999999994 33.798532000000002,-97.093897185962049 33.800360798466031,-97.09266432242093 33.802941048788071,-97.092111999999986 33.804096999999999,-97.087998999999982 33.808746999999997,-97.078589999999991 33.812755999999993,-97.067977124183287 33.814475679891196,-97.064604445188394 33.815487484896828,-97.062631847535258 33.816079264957295,-97.058622892638837 33.818751903281317,-97.055415722506638 33.823829921794093,-97.055412197115942 33.8238546000754,-97.055148464371385 33.82570077017467,-97.055682980641905 33.830778788687446,-97.057821087157734 33.834520485448607,-97.058282726048489 33.836367011192308,-97.058622892638837 33.837727655580807,-97.057553829022481 33.840133030590344,-97.055415722506638 33.841202089027483,-97.052208542016004 33.841736615656437,-97.048734113748537 33.840934820533782,-97.045339940802535 33.839496399893775,-97.041245000000004 33.837761,-97.038858000000005 33.838264000000002,-97.023899 33.844213000000003,-97.017857000000006 33.850141999999998,-97.010381749407998 33.858564100233409,-96.999664164722446 33.87063922351804,-96.985567000000003 33.886521999999999,-96.983970999999997 33.892082999999992,-96.984938999999997 33.904865999999991,-96.985275905099471 33.906070041818985,-96.988744999999994 33.918467999999997,-96.993996999999979 33.928978999999998,-96.995022999999989 33.932034999999999,-96.995140238436761 33.933014648420269,-96.996024643022366 33.940404763634284,-96.996183000000002 33.941727999999998,-96.996167702736543 33.941832622020257,-96.995421139189489 33.946938567064805,-96.995367999999999 33.947302,-96.994947208134789 33.948043840473474,-96.994456760007211 33.948908482357652,-96.994287999999983 33.949205999999997,-96.990835000000004 33.952700999999998,-96.988126301178397 33.954514162310069,-96.987892000000002 33.954670999999998,-96.982723774786024 33.956016867344054,-96.981537499896135 33.956325787441237,-96.981336999999982 33.956377999999994,-96.979415000000003 33.956178,-96.979347000000004 33.955129999999997,-96.980675999999988 33.951813999999999,-96.981031000000002 33.949159999999999,-96.97981799999998 33.941588000000003,-96.976955000000004 33.937452999999998,-96.973806999999979 33.935696999999998,-96.97254199999999 33.935794999999999,-96.952313000000004 33.944581999999997,-96.944610999999995 33.949216999999997,-96.933309804512817 33.955134148312766,-96.932252000000005 33.955688000000002,-96.924267999999998 33.959159,-96.922113999999979 33.959578999999998,-96.921429967464036 33.959451233053208,-96.919039990098355 33.959004821377064,-96.918617999999995 33.958925999999998,-96.91833921313939 33.958790334953079,-96.917063225391544 33.958169405626251,-96.916299999999993 33.957797999999997,-96.91417790611122 33.956157267456653,-96.911732563120111 33.95426660943896,-96.911336000000006 33.953960000000002,-96.910857206749995 33.953482904168467,-96.908421363636307 33.951055696608989,-96.907387 33.950024999999997,-96.905252999999988 33.947218999999997,-96.902433999999985 33.942017999999997,-96.901946611333699 33.940667581536225,-96.899441999999993 33.933728000000002,-96.896468999999996 33.91331799999999,-96.897193999999999 33.902954,-96.895728000000005 33.896414,-96.887761838797758 33.878628251663962,-96.883009999999999 33.868018999999997,-96.875280999999987 33.860505000000003,-96.87198767019855 33.857765462058182,-96.866438000000002 33.853149000000002,-96.85608999999998 33.84749,-96.850593000000003 33.847211,-96.845895999999996 33.848974999999996,-96.841592000000006 33.852893999999999,-96.840818999999996 33.863644999999998,-96.839777999999995 33.868395999999997,-96.837412999999984 33.871349000000002,-96.833926235310372 33.873661568818115,-96.832156999999995 33.874834999999997,-96.812777999999994 33.872646000000003,-96.794275999999996 33.868886000000003,-96.786859371055769 33.865207582975678,-96.783484999999999 33.863533999999994,-96.780568999999986 33.860098,-96.779588000000004 33.857939000000002,-96.777202000000003 33.848162000000002,-96.776765999999995 33.841976000000003,-96.770675999999995 33.829621000000003,-96.769378000000003 33.827477000000002,-96.766316855179326 33.825510582121247,-96.766234999999995 33.825457999999998,-96.761588000000003 33.824406000000003,-96.754041 33.824657999999999,-96.746233969152598 33.825673509073113,-96.746037999999984 33.825699,-96.741799282455162 33.826447231494264,-96.71318112067361 33.831498997677379,-96.712421999999989 33.831632999999997,-96.708134 33.833060000000003,-96.704457000000005 33.835020999999998,-96.700318655907978 33.838434731313264,-96.699573999999998 33.839049000000003,-96.695480719177567 33.844085960723298,-96.693127324791789 33.84698191524042,-96.690708 33.849958999999998,-96.688190999999989 33.854613,-96.687524326814838 33.85620885855986,-96.684726999999995 33.862904999999998,-96.682762564556768 33.871464102957781,-96.682209 33.873876000000003,-96.682102999999998 33.876645000000003,-96.683464 33.884217,-96.681051007513375 33.895708672998403,-96.680947000000003 33.89620399999999,-96.675306000000006 33.909114000000002,-96.673449000000005 33.912278,-96.670618000000005 33.914913999999996,-96.667186999999998 33.916939999999997,-96.665308436653305 33.917161206414967,-96.66440999999999 33.917267000000002,-96.659896000000003 33.916665999999999,-96.65150600931733 33.910998546998165,-96.644049999999979 33.905962000000002,-96.630116999999998 33.895422000000003,-96.628293999999997 33.894477000000002,-96.616355751891987 33.894625565889051,-96.614680358047494 33.89464641537834,-96.611821556077771 33.89468199182577,-96.607562 33.894734999999997,-96.592948000000007 33.895615999999997,-96.588319642127203 33.894847991673281,-96.587934000000004 33.894784,-96.58760387584924 33.894318075382706,-96.585452000000004 33.891280999999999,-96.585359999999994 33.888947999999999,-96.587494000000007 33.884250999999999,-96.590112000000005 33.880665,-96.597347999999982 33.875100999999994,-96.601685999999987 33.872822999999997,-96.611969999999999 33.869016000000002,-96.625399000000002 33.856541999999997,-96.628968999999998 33.852406999999999,-96.629746999999995 33.850866000000003,-96.630021999999983 33.847541,-96.629842405402627 33.847037300944812,-96.629577623992816 33.846294683138318,-96.629289999999997 33.845488000000003,-96.627812273090953 33.844523322531259,-96.626623854929747 33.84374750920842,-96.623154999999997 33.84148299999999,-96.622548607895212 33.841284829387497,-96.620258613641042 33.840536452948584,-96.605267599881515 33.835637348301233,-96.601258 33.834327000000002,-96.599141379811712 33.83346048638235,-96.597030984690946 33.832596521217091,-96.595164098773168 33.831832245189069,-96.592925999999991 33.830916000000002,-96.587067000000005 33.828009000000002,-96.573054340771023 33.81917200025552,-96.572936999999996 33.819097999999997,-96.568822993124115 33.818734252140963,-96.566549213959448 33.818533211567136,-96.566298000000003 33.818511,-96.551222999999993 33.81912899999999,-96.541502252916899 33.82118138128849,-96.537683599711926 33.821987629236112,-96.532865 33.823005000000002,-96.532141353898353 33.822830017549641,-96.529233999999988 33.822127000000002,-96.526655000000005 33.820891000000003,-96.526331240434345 33.820568979830284,-96.523863000000006 33.818114,-96.519910999999993 33.811346999999998,-96.517492044660074 33.805400310572544,-96.516583999999995 33.803167999999999,-96.515958999999995 33.798933999999996,-96.515952403498957 33.797370629253059,-96.5159410675722 33.794684014612457,-96.515912 33.787795000000003,-96.51191399999999 33.781477999999993,-96.502285999999998 33.773459999999993,-96.500268000000005 33.772582999999997,-96.486059999999995 33.773009999999999,-96.459153999999998 33.775232000000003,-96.456254 33.776035,-96.450509999999994 33.780588000000002,-96.448044999999993 33.781030999999999,-96.436454999999995 33.780050000000003,-96.430214000000007 33.778654000000003,-96.423664429058576 33.776393528613141,-96.422642999999994 33.776040999999999,-96.422322840041474 33.775682043625913,-96.420980388055867 33.774176915691271,-96.419961 33.773034000000003,-96.419583102042878 33.772404537625398,-96.417562000000004 33.769038000000002,-96.416145999999998 33.76609899999999,-96.413408000000004 33.757714,-96.411885201063754 33.755703128434462,-96.408468999999997 33.751191999999996,-96.403507000000005 33.746288999999997,-96.384116000000006 33.730141000000003,-96.383299027856694 33.729391180874664,-96.380090129695702 33.726446045924753,-96.379450023740389 33.7258585550397,-96.370956555983966 33.718063228581727,-96.370761536889887 33.717884239557762,-96.369590000000002 33.716808999999998,-96.369084597701828 33.715741445126696,-96.366945 33.711221999999999,-96.363253 33.701050000000002,-96.363143372320295 33.69469995601051,-96.363135 33.694215,-96.362964209763192 33.693778090504111,-96.362198000000006 33.691817999999998,-96.356236230636398 33.68737146600408,-96.355945999999989 33.687154999999997,-96.355455421824701 33.68710517164083,-96.352724507664888 33.686827790830883,-96.348305999999994 33.686378999999995,-96.346643697131185 33.686554630652331,-96.344174978865311 33.686815463144171,-96.342664999999997 33.686974999999997,-96.337175125435976 33.689043696356201,-96.321102999999994 33.695099999999996,-96.318759999999997 33.696753,-96.318590686098233 33.696960051986665,-96.318010443675675 33.697669623646739,-96.316924999999998 33.698996999999999,-96.314798583555884 33.702507526903553,-96.309963999999994 33.710489000000003,-96.308342766341951 33.715746247280322,-96.307034999999985 33.719987000000003,-96.307001890234133 33.720499786556005,-96.306595999999999 33.726785999999997,-96.307389 33.735005,-96.3061 33.741002000000002,-96.30525491425243 33.743702118680943,-96.304087485467235 33.747432149959735,-96.303009000000003 33.750878,-96.301705999999982 33.753756000000003,-96.294866999999996 33.764771000000003,-96.292482000000007 33.766418999999999,-96.277269000000004 33.769734999999997,-96.269895999999989 33.768405,-96.251497151236435 33.760405611313516,-96.248231999999987 33.758986,-96.23960043273749 33.754058875473291,-96.229595766085112 33.748347949873668,-96.229022999999998 33.748021,-96.220521000000005 33.747390000000003,-96.1999 33.752116999999998,-96.196336040977513 33.753254070097242,-96.186553999999987 33.756374999999998,-96.178059000000005 33.760517999999998,-96.174632999999986 33.763699000000003,-96.169932696734321 33.769534234627457,-96.169452000000007 33.770130999999999,-96.167888847884015 33.774482610028038,-96.162756999999985 33.788769000000002,-96.162122572851359 33.796140263149638,-96.162213638666273 33.796174412747511,-96.166837334419654 33.79790829445497,-96.170373408451042 33.799381659586444,-96.173025461119408 33.800560352833699,-96.175150000000002 33.801951000000003,-96.17734 33.805117000000003,-96.17895107878303 33.810509748931381,-96.178963999999993 33.810552999999999,-96.176910000000007 33.813934000000003,-96.175889999999981 33.814627000000002,-96.164217431250009 33.817001137011715,-96.150765000000007 33.816986999999997,-96.148792 33.819197000000003,-96.151629999999983 33.831945999999995,-96.150147000000004 33.835856,-96.148457006953691 33.837436961236868,-96.14806999999999 33.83779899999999,-96.147446683377808 33.837891494337825,-96.138904999999994 33.839159000000002,-96.128108733462625 33.839703753325978,-96.122951 33.839963999999995,-96.118168999999995 33.837883999999995,-96.109992999999989 33.832396000000003,-96.104074999999995 33.830730000000003,-96.099360000000004 33.830469999999998,-96.097448 33.832724999999996,-96.097637999999989 33.837935000000002,-96.099152999999987 33.842409000000004,-96.100785000000002 33.844230000000003,-96.101348999999999 33.845720999999998,-96.101472999999999 33.846708999999997,-96.100094999999996 33.847971,-96.084626 33.846656000000003,-96.063924 33.841522999999995,-96.055357999999984 33.838262,-96.049381559404907 33.836618570443349,-96.048833999999999 33.836468000000004,-96.044074587870469 33.838420736557822,-96.037191000000007 33.841245,-96.031783693249977 33.849934429642978,-96.031271075997878 33.850758194920559,-96.029462717056688 33.852402158173604,-96.025188419607474 33.852073366797306,-96.022229284477689 33.850922593794486,-96.021900493101384 33.849114234853282,-96.022507000000004 33.846130000000002,-96.022064891975305 33.843195970965255,-96.021407302851145 33.841880802274289,-96.019950829321616 33.840821548098475,-96.019598947095744 33.84056563358331,-96.005296 33.845505000000003,-96.000534603789163 33.849305889934179,-95.998351 33.851049000000003,-95.997709 33.852181999999992,-95.997673906338932 33.852568581878202,-95.997405462294296 33.855525685805766,-95.9977342536706 33.860950759443568,-95.997376655326022 33.862202357114477,-95.996747879541701 33.864403078452035,-95.993624351909531 33.866211440579008,-95.991487204777812 33.866869023331596,-95.988856861024331 33.866869023331596,-95.984753921632091 33.864671017651808,-95.984253769013037 33.864403078452035,-95.980965842506947 33.859306796190523,-95.9735403792467 33.856832331211713,-95.972155999999998 33.856371000000003,-95.971744371228908 33.856383941655046,-95.951609000000005 33.857016999999999,-95.945502988542614 33.859346036998218,-95.944283999999982 33.859811,-95.943359355023844 33.860365112733476,-95.941777921153459 33.861312819872232,-95.941266999999996 33.861618999999997,-95.936631000000006 33.870615,-95.93550004724635 33.874497995518659,-95.935325000000006 33.875098999999999,-95.935308000000006 33.878723999999998,-95.935637 33.880370999999997,-95.936817000000005 33.882385999999997,-95.937201999999999 33.884652000000003,-95.936131999999986 33.886825999999999,-95.935198 33.887100999999994,-95.922712000000004 33.883758,-95.915960999999996 33.881148000000003,-95.905343000000002 33.875629000000004,-95.893305999999995 33.868161,-95.887490999999997 33.863855999999998,-95.881292000000002 33.860627,-95.859469000000004 33.852455999999997,-95.849863999999997 33.844951999999999,-95.843772999999999 33.838949,-95.841300369514457 33.837329726167006,-95.840012000000002 33.836486,-95.839442445999168 33.836292954052603,-95.838335071878717 33.835917618112738,-95.837515999999994 33.835639999999998,-95.831947999999997 33.835160999999999,-95.828244999999995 33.836053999999997,-95.827967044704152 33.836191602640042,-95.826538854622555 33.836898632614485,-95.822787000000005 33.838755999999989,-95.821905415666805 33.839551758599306,-95.821112514659319 33.840267467546653,-95.820784000000003 33.840564,-95.819357999999994 33.842784999999999,-95.818975999999992 33.844456,-95.819524999999999 33.848438999999999,-95.820676999999989 33.850750999999995,-95.821665999999979 33.855443,-95.821665999999979 33.856633000000002,-95.82138191533943 33.857119395418813,-95.820824189768416 33.858074304994595,-95.820595999999995 33.858464999999995,-95.820256321913618 33.858527429344676,-95.805149 33.861303999999997,-95.800842000000003 33.861212000000002,-95.790314669347865 33.857829825250164,-95.789867 33.857685999999994,-95.789358977006231 33.85733891951336,-95.788304168820886 33.85661827626933,-95.787891000000002 33.856335999999999,-95.776255000000006 33.845145000000002,-95.773281999999995 33.843834,-95.772067000000007 33.843817,-95.763621999999984 33.847954,-95.758311274366889 33.849968021173019,-95.758015999999998 33.850079999999998,-95.757640875431136 33.850475976069447,-95.754310000000004 33.853991999999998,-95.753512999999984 33.856464000000003,-95.753688987366843 33.856976705401074,-95.75729390188404 33.867478931648478,-95.757457999999986 33.86795699999999,-95.758009454152003 33.868443703186436,-95.760805000000005 33.870911,-95.762558999999996 33.874366999999992,-95.76194240701966 33.883030946465368,-95.761915999999999 33.883401999999997,-95.758343999999994 33.890610999999993,-95.756366999999997 33.892625000000002,-95.747335000000007 33.895755999999999,-95.737508000000005 33.895966999999999,-95.729445045960333 33.893952819075864,-95.728448999999998 33.893704,-95.723226300470785 33.890698381785455,-95.717160861060378 33.887207774089354,-95.713910181462765 33.885337036216413,-95.713539999999981 33.885123999999998,-95.710877999999994 33.884551999999999,-95.696961999999999 33.885218000000002,-95.684831000000003 33.890231999999997,-95.676924999999983 33.897236999999997,-95.669978 33.905844000000002,-95.665338000000006 33.908132000000002,-95.659818 33.909092,-95.647272999999998 33.905976000000003,-95.636977999999999 33.906613,-95.609439392746168 33.923623282239362,-95.603656999999998 33.927194999999998,-95.599677999999983 33.934246999999999,-95.585944999999981 33.93448,-95.570311428427317 33.932892416047835,-95.564667905744443 33.932319318211334,-95.563423999999998 33.932192999999998,-95.562724847986416 33.932007581530534,-95.561592737930383 33.931707340510293,-95.561007000000004 33.931551999999996,-95.560415995740641 33.931042615914556,-95.559931936825777 33.930625407571753,-95.559414000000004 33.930179000000003,-95.558286100391328 33.928753215740784,-95.557777967458279 33.928110882033096,-95.556914999999989 33.927019999999999,-95.551147999999984 33.914566,-95.549144999999996 33.90795,-95.549475 33.901310999999993,-95.552330999999981 33.894419999999997,-95.55209457427955 33.888655441173519,-95.552085000000005 33.888421999999998,-95.551943532854764 33.888208369560985,-95.548485831718622 33.882986873004867,-95.548324999999991 33.882744000000002,-95.547838962671932 33.882363312195096,-95.545708294665019 33.880694470565629,-95.545197000000002 33.880293999999999,-95.54352178779898 33.880173169084813,-95.541265054919734 33.880010393826282,-95.539789999999996 33.879904000000003,-95.537358049249164 33.88037416967029,-95.534038375697051 33.881015963020303,-95.533282999999997 33.881161999999996,-95.531798241123994 33.881968630089013,-95.525321999999989 33.885486999999998,-95.521418133191162 33.888379988113826,-95.520137966641357 33.88932866459119,-95.515301759339067 33.891142240377064,-95.510062536063273 33.890134704348199,-95.506233872599807 33.886306036979761,-95.506495 33.878588999999998,-95.506084999999999 33.87639,-95.502407477038815 33.874787101867227,-95.502303999999995 33.874741999999998,-95.492028000000005 33.874822000000002,-95.480004545492946 33.87882505156746,-95.478574999999992 33.879300999999998,-95.477829321179073 33.879890044047791,-95.469962325642697 33.886104525088022,-95.467351237093553 33.886417854985297,-95.464924614258621 33.886709049048328,-95.462909526581015 33.885903021006229,-95.461498966768687 33.883686425341857,-95.46277824472287 33.878821065729895,-95.464211000000006 33.873372000000003,-95.463346 33.872312999999998,-95.461127233926518 33.871832054399569,-95.447370000000006 33.868850000000002,-95.418546279096461 33.866998581211959,-95.411345060268999 33.866536029139695,-95.407794999999979 33.866307999999989,-95.406882133018115 33.866362247208706,-95.404325916920058 33.866514150597617,-95.375232999999994 33.868243,-95.352338000000003 33.867789000000002,-95.339561303488324 33.868836967540759,-95.339121999999989 33.868873,-95.339014688391742 33.869073090388603,-95.33835013321854 33.870312202400832,-95.334854000000007 33.876830999999996,-95.334836460323601 33.877305631062114,-95.334523000000004 33.885787999999998,-95.333451999999994 33.886285999999998,-95.325571999999994 33.885703999999997,-95.310579050797429 33.880679668661742,-95.294789354523203 33.875388337067108,-95.287864786488143 33.87494634339312,-95.28344485260331 33.877745636185885,-95.281676877907344 33.882902226669891,-95.281529544303439 33.887616824907447,-95.281317419351268 33.889260797911334,-95.280350898312903 33.896751357029835,-95.279761569607459 33.899108654721076,-95.277846267017765 33.900876629417048,-95.275341635722626 33.901760616765031,-95.272542342929853 33.902055281117747,-95.267212735027385 33.900338966530455,-95.263849803053915 33.899255988324974,-95.261050510261143 33.899992642069066,-95.255746586173245 33.902939265610648,-95.253094626984378 33.90544389690578,-95.250884657186859 33.913105118684925,-95.250737329293145 33.917083057468233,-95.251326652288412 33.924154956252103,-95.253020000000006 33.927236999999998,-95.253623000000005 33.92971,-95.252905999999982 33.933647999999998,-95.250453815364224 33.936614470603772,-95.23166760862577 33.959340626388752,-95.231194814374604 33.959912577712174,-95.230491 33.960763999999998,-95.226393000000002 33.961953999999999,-95.219358 33.961567000000002,-95.184075000000007 33.950353,-95.174181557651636 33.944707625858101,-95.173657196254922 33.944408415920272,-95.168745999999999 33.941605999999993,-95.166685999999984 33.939728000000002,-95.161108999999982 33.937598,-95.149462 33.936335999999997,-95.131725657216535 33.936903570678005,-95.131056 33.936924999999995,-95.130760550144942 33.936820411866918,-95.124700000000004 33.934674999999991,-95.121184 33.931306999999997,-95.121974867397924 33.925542192115131,-95.122499622273722 33.921717137430115,-95.122365486317321 33.918632002634986,-95.119951031304154 33.915815139752631,-95.110963896232136 33.912998276870283,-95.103318123323447 33.913668959251616,-95.10214780889666 33.912991409673538,-95.100769532353866 33.912193461131935,-95.098489218495843 33.909913139475762,-95.095001673232161 33.904815960136006,-95.095247706914634 33.899772255341666,-95.095269945144935 33.899316370327696,-95.09392858558104 33.895962961020395,-95.090441035118587 33.893280234094433,-95.084002493615529 33.893280234094433,-95.079139333602001 33.898143394107954,-95.078905311676394 33.898377416033576,-95.074957661870556 33.900039583313315,-95.073630040977179 33.900598581227868,-95.071259538767663 33.901596686785098,-95.065491679645973 33.899584642240477,-95.06106518008815 33.895292278639054,-95.058834000000004 33.886812999999997,-95.049025 33.864089999999997,-95.046567999999994 33.862564999999996,-95.038661112238941 33.860609605793528,-95.037206999999995 33.86025,-95.033518790033554 33.860141698175291,-95.03143098776043 33.86008039125462,-95.030255193062573 33.860045864827867,-95.022324999999995 33.859813000000003,-95.016999191469623 33.861237606415294,-95.016422000000006 33.861392000000002,-95.008375999999984 33.866088999999995,-95.000223000000005 33.862504999999999,-94.995524000000003 33.857438000000002,-94.992810330111539 33.852698351540766,-94.992671 33.852454999999999,-94.992523097811741 33.852403566519136,-94.990494037024106 33.851697953840834,-94.988486999999992 33.850999999999999,-94.98739725328582 33.851074415574232,-94.983303000000006 33.851354,-94.981650000000002 33.852283999999997,-94.976208 33.859846999999995,-94.973410999999999 33.861730999999999,-94.971435 33.862122999999997,-94.968895000000003 33.860916000000003,-94.965888000000007 33.848421999999999,-94.964400999999995 33.837020999999993,-94.957676000000006 33.835003999999998,-94.949533421399437 33.825707838785306,-94.949112883549958 33.821754768331147,-94.948729542346143 33.818151347643564,-94.948715939727023 33.818023482549535,-94.944301522854289 33.81213759866646,-94.939560116480934 33.810502632153295,-94.935799688114457 33.810339132650462,-94.932366255585293 33.810993121156741,-94.928442330884351 33.812628087669893,-94.92451840618341 33.812791587172725,-94.924196338046286 33.812670811231236,-94.921902464831703 33.811810605997493,-94.919450010309433 33.810175636315982,-94.917815040627914 33.808704169305649,-94.917091634856007 33.805689966907131,-94.916834062621035 33.804616745101868,-94.916997555787162 33.801510305241678,-94.91961350347556 33.794152948011565,-94.920034399525505 33.790224602097751,-94.920103995647338 33.789575041141042,-94.920095560257593 33.789518805381888,-94.91961350347556 33.786305103362189,-94.913003475392784 33.779908559849432,-94.912450337640749 33.77937328682863,-94.911427000000003 33.778382999999998,-94.906244999999998 33.778191999999997,-94.902276 33.776288999999998,-94.89497736748055 33.771540270803243,-94.89019868072495 33.768431100796676,-94.888367999999986 33.76724,-94.887910246679809 33.766674529711281,-94.886225692565191 33.764593571999796,-94.885411379435553 33.764756432942491,-94.881447983999394 33.765549103837166,-94.879218389137634 33.764912090842074,-94.876033253179955 33.760771407616105,-94.875653319149677 33.757021753168047,-94.875534806260347 33.755852122792213,-94.875497398046861 33.755482932714841,-94.877080000000007 33.75222,-94.874668 33.749164,-94.870299604394191 33.746484207390097,-94.869443369718425 33.745958950164457,-94.869299999999996 33.745871,-94.8570941233355 33.742035460072337,-94.849295999999981 33.739584999999991,-94.841633779899112 33.739430990835892,-94.830804318260235 33.740068022348083,-94.828875382311935 33.74092532536806,-94.827937698058648 33.741342073027738,-94.826026615866809 33.743890180559411,-94.824752565187154 33.749304914465036,-94.82447272313469 33.749460382205008,-94.821885938813196 33.750897483986968,-94.817426749089677 33.752171534666616,-94.815635414888177 33.752066164468857,-94.813744972719192 33.751954964523563,-94.81275807295215 33.751896912919612,-94.812012015184067 33.751853028169073,-94.80914539498248 33.749304914465036,-94.798634446013509 33.744527205899239,-94.789716054221742 33.746119775421171,-94.777638928565466 33.753471071068567,-94.775064434371529 33.755038154868203,-94.770923763490302 33.754401129528375,-94.768057130944001 33.753445597691005,-94.766464573766783 33.750897483986968,-94.766146067269247 33.748030863785381,-94.766818924318841 33.746124416643802,-94.768057130944001 33.742616129879757,-94.767738636791165 33.737519908644046,-94.767244154304578 33.736926531576607,-94.76296091588064 33.731786662068515,-94.759138751496963 33.729557067206756,-94.758159820145337 33.729557067206756,-94.753087004596253 33.729557067206756,-94.750011775433265 33.728811557489699,-94.742576055627282 33.727008959675082,-94.742176780415733 33.726449974997927,-94.739390916583417 33.72254976995157,-94.737479828219207 33.716179498036198,-94.737788227808608 33.71500758055268,-94.73907239774114 33.71012773879076,-94.73746132453816 33.705563045258067,-94.73716130937693 33.704713004885136,-94.732383613155861 33.700253815161624,-94.728242929929891 33.699616789821789,-94.725694828570582 33.702483410023376,-94.724525908047042 33.704821269192259,-94.724102271393392 33.705668549067234,-94.721872664186904 33.707261118589173,-94.719006043985303 33.708216656598914,-94.714865360759347 33.707261118589173,-94.711043208720398 33.705668549067234,-94.709450639198465 33.699616789821789,-94.710289486124168 33.697309952648205,-94.710724689878106 33.696113138108018,-94.710724689878106 33.691653948384499,-94.710106194192988 33.688252279047049,-94.71008765219355 33.688150299756906,-94.707858069676533 33.686876245991066,-94.691547961569825 33.685092048879412,-94.684792000000002 33.684353000000002,-94.659166999999997 33.692138,-94.652265035786613 33.690979104454883,-94.649628372726468 33.688049476940073,-94.649099284135872 33.686462209886628,-94.648456523423718 33.684533926193204,-94.64818493525776 33.682632803768527,-94.647928021538007 33.680834402751707,-94.647870600191638 33.680432452214262,-94.648456523423718 33.673401362074948,-94.647827859209684 33.672301196274027,-94.646112824818204 33.669299876741562,-94.642890235687361 33.668420997570671,-94.635273213800133 33.669885811328072,-94.631328876730365 33.67284406472757,-94.630585813750528 33.673401362074948,-94.627656194751552 33.677795791992715,-94.62121101648988 33.681018386800773,-94.616816575217669 33.679553573043371,-94.614284398758912 33.677302743466427,-94.611543254774574 33.674866164477912,-94.611424034353576 33.674789522931938,-94.607441775118403 33.672229504256364,-94.60304734520065 33.671350625085473,-94.596895128555005 33.671350625085473,-94.593672545101384 33.673987285307021,-94.590449961647764 33.677502836053897,-94.590316660066918 33.67755410593854,-94.586641449284855 33.678967649811298,-94.579620000000006 33.677622999999997,-94.576973687569549 33.673401362074948,-94.5728722135906 33.669885811328072,-94.571305222138406 33.668005422800071,-94.569942586075811 33.666370260581196,-94.569356662843745 33.663440621711956,-94.571445361022185 33.660423619728157,-94.571993323065286 33.659632120703485,-94.572286279004103 33.656995454804722,-94.570821465246695 33.654944723492456,-94.568770728257221 33.65465176187643,-94.564669254278257 33.655823608340576,-94.563858010166513 33.65591721375597,-94.557052229552454 33.656702498865904,-94.552071876402621 33.653479904057846,-94.551192985877293 33.650257320604226,-94.551311999999982 33.644569999999995,-94.553536678805585 33.642054372646328,-94.552657799634687 33.638245860283412,-94.549142248887819 33.635902161677912,-94.543868917090279 33.635902161677912,-94.538888563940446 33.637952898667386,-94.538195599937964 33.637916426989378,-94.537583502619341 33.637884211439605,-94.533322276204103 33.637659937051346,-94.529220802225154 33.63443734792051,-94.528408204203203 33.630103504051213,-94.528341911699826 33.629749945032266,-94.52980672545722 33.627406252103981,-94.528927834931892 33.621839964367631,-94.526291174710352 33.619203298468861,-94.521363727720257 33.61686924674752,-94.520724886974008 33.61656663824732,-94.504615 33.620682000000002,-94.493418698303032 33.624467326832118,-94.492501061148843 33.624777568252533,-94.491502999999994 33.625115,-94.491295462081894 33.62531395337146,-94.487514000000004 33.628939000000003,-94.485874999999993 33.637867,-94.481313 33.638818999999998,-94.476415000000003 33.638947000000002,-94.466075000000004 33.636262000000002,-94.464185999999998 33.637655000000002,-94.461453000000006 33.643615999999994,-94.459197999999986 33.645145999999997,-94.454819999999998 33.644902999999999,-94.448637000000005 33.642766000000002,-94.446871000000002 33.640177999999999,-94.447513999999998 33.636254999999991,-94.448451000000006 33.634497000000003,-94.458816999999982 33.632444,-94.462736000000007 33.63091,-94.461129 33.625414999999997,-94.460285999999996 33.624420999999998,-94.45525499999998 33.622917,-94.452710999999994 33.622621000000002,-94.452325000000002 33.618817,-94.452961000000002 33.616985999999997,-94.454768999999999 33.615155999999992,-94.462335999999993 33.610567000000003,-94.469451000000007 33.60731599999999,-94.472166 33.604199,-94.471974000000003 33.602665000000002,-94.471151999999989 33.601588,-94.468086 33.599435999999997,-94.461794602929331 33.598691554192769,-94.458900358388505 33.598349085232492,-94.458231999999995 33.598269999999999,-94.454858239556387 33.593453869357283,-94.453995999999989 33.592222999999997,-94.453435550445548 33.592019500625121,-94.452150252013013 33.591552808439438,-94.451622 33.591360999999999,-94.449112 33.590893999999992,-94.442363999999998 33.591242999999999,-94.441536999999997 33.591501999999991,-94.439518000000007 33.594154000000003,-94.430358101189597 33.59122600196271,-94.430038999999994 33.591124,-94.429672337173542 33.590855074196774,-94.427920122643982 33.589569927010331,-94.427577999999983 33.589319000000003,-94.425982000000005 33.586424999999998,-94.413155000000003 33.569367999999997,-94.412481642075306 33.56890283335202,-94.412480771235352 33.568902231761562,-94.412480202418593 33.568901838813659,-94.412175000000005 33.568691,-94.408900999999986 33.568196999999998,-94.403341999999995 33.568424,-94.397341999999981 33.571607999999998,-94.385926999999995 33.581887999999999,-94.382886999999997 33.58326799999999,-94.379649 33.580607,-94.378075999999993 33.577019,-94.377759999999981 33.574609000000002,-94.378561000000005 33.571328999999999,-94.380090999999993 33.568942999999997,-94.382534000000007 33.567056999999998,-94.388052000000002 33.565511,-94.392357000000004 33.565286999999998,-94.394655618773015 33.564059042448399,-94.397398454287298 33.562313601959417,-94.399227012370631 33.559903231990447,-94.399393244337958 33.557077279687135,-94.399143896386974 33.555498071165481,-94.397957000000005 33.554389999999998,-94.392572999999999 33.551141999999999,-94.389515000000003 33.546778000000003,-94.386086000000006 33.544922999999997,-94.381666999999993 33.544035,-94.373392999999993 33.544471,-94.371597999999992 33.545000999999999,-94.363297000000003 33.544956999999997,-94.361350999999999 33.544612999999998,-94.358969999999999 33.54323,-94.355945000000006 33.54318,-94.348944999999986 33.548358999999998,-94.347382999999979 33.55107799999999,-94.34729 33.552197,-94.352653000000004 33.560611000000002,-94.352433000000005 33.56217199999999,-94.345512999999997 33.567312999999999,-94.344023000000007 33.567824000000002,-94.340576999999996 33.567878,-94.340047258358467 33.56768232744934,-94.338972839399958 33.567285465504582,-94.33842199999998 33.567081999999999,-94.337996277272822 33.566655299162022,-94.334939999999989 33.563592,-94.334379999999996 33.562536,-94.333929800646288 33.557825151092565,-94.333894999999998 33.557461000000004,-94.333202999999997 33.555365999999992,-94.331833000000003 33.553348,-94.33059 33.552692,-94.323660000000004 33.549835000000002,-94.319491999999997 33.548864000000002,-94.309582000000006 33.551673,-94.30641 33.555616,-94.306214999999995 33.557676,-94.307180999999986 33.559797000000003,-94.303577000000004 33.56828,-94.301022999999986 33.573022000000002,-94.298392000000007 33.576217999999997,-94.293257999999994 33.580418999999999,-94.289129000000003 33.582143999999992,-94.287025 33.582410000000003,-94.283581999999996 33.581890999999999,-94.282647999999995 33.580978000000002,-94.280849000000003 33.577187000000002,-94.280604999999994 33.574907999999994,-94.282171999999989 33.572989,-94.290372000000005 33.567905000000003,-94.291686999999996 33.563481000000003,-94.290901000000005 33.558872,-94.289439999999999 33.557634999999998,-94.287571999999997 33.557178,-94.279089999999997 33.557026,-94.275600999999995 33.557963999999998,-94.274473 33.558652000000002,-94.271997999999996 33.561517999999992,-94.270978999999997 33.563220999999999,-94.270853000000002 33.564782999999998,-94.265668999999988 33.573588999999998,-94.262754999999999 33.577354,-94.257801 33.582507999999997,-94.257524288354617 33.582703553652586,-94.252656000000002 33.586143999999997,-94.245931999999996 33.589113999999995,-94.242777000000004 33.589708999999999,-94.240178999999998 33.589536000000003,-94.236971999999994 33.587411000000003,-94.236362999999997 33.585991999999997,-94.236835999999997 33.580914,-94.237975000000006 33.577756999999998,-94.238867999999997 33.576721999999997,-94.244365999999999 33.573549,-94.251108000000002 33.56528,-94.252330999999984 33.561855,-94.252283000000006 33.560445,-94.251569000000003 33.558188,-94.250197 33.556764999999999,-94.237903999999986 33.552675,-94.233128263729824 33.552212399803537,-94.233017493976078 33.552201670126067,-94.231843999999981 33.552087999999998,-94.226392000000004 33.552911999999999,-94.222920999999999 33.554088,-94.21922099999999 33.556095999999997,-94.213604000000004 33.563133999999998,-94.21268334130005 33.563763266722709,-94.208078 33.566910999999998,-94.205634000000003 33.567228999999998,-94.203593999999981 33.566546000000002,-94.202594978382763 33.562850001484037,-94.201237000000006 33.557825999999999,-94.199485999999993 33.556085000000003,-94.197816999999986 33.555238000000003,-94.196394999999995 33.555123000000002,-94.193247999999997 33.556153999999999,-94.191332999999986 33.55766599999999,-94.189883999999992 33.562454000000002,-94.192482999999996 33.570425,-94.194399000000004 33.573678,-94.196366991504703 33.574779501237479,-94.201105911663163 33.575851400157113,-94.204265191768783 33.575005164570705,-94.207404999999994 33.574353000000002,-94.209665 33.573509999999999,-94.211329000000006 33.573774,-94.216140999999993 33.576391999999998,-94.217408000000006 33.579259999999998,-94.217197999999982 33.580736999999999,-94.214431000000005 33.583187000000002,-94.212997 33.583486999999991,-94.210966999999997 33.583143,-94.205788416261612 33.581380140341984,-94.203588205048902 33.580815984742067,-94.199751933850294 33.581098061448763,-94.196536237091394 33.581718635888464,-94.194464999999994 33.582886000000002,-94.190890999999979 33.587474,-94.183913000000004 33.594681999999999,-94.180879999999988 33.592612000000003,-94.176327 33.591076999999999,-94.162266000000002 33.588906,-94.161081999999993 33.587972,-94.162009999999995 33.580877,-94.161276999999998 33.579270999999999,-94.156782000000007 33.575749000000002,-94.152625999999998 33.575923000000003,-94.148731999999995 33.580196999999998,-94.146047999999993 33.581975,-94.144383000000005 33.582097999999995,-94.142160000000004 33.581389999999999,-94.141852 33.579590000000003,-94.143023999999983 33.577725,-94.145668999999984 33.575599999999994,-94.149506000000002 33.573602,-94.151257 33.571793,-94.151754999999994 33.569476000000002,-94.151455999999996 33.568387,-94.148520000000005 33.565677999999991,-94.145239000000004 33.564987000000002,-94.143401999999995 33.565504999999995,-94.136863999999989 33.570999999999998,-94.136045999999993 33.571387999999999,-94.135142000000002 33.571033,-94.134308000000004 33.569209,-94.133047999999988 33.557952999999998,-94.131382000000002 33.552934,-94.128658 33.550952000000002,-94.126897999999983 33.550646999999991,-94.123897999999997 33.552100000000003,-94.122878999999983 33.553111999999999,-94.12071899999998 33.560555,-94.120354999999989 33.5655,-94.119902152897509 33.566998927274319,-94.112842999999998 33.566991000000002,-94.103176000000005 33.570349999999998,-94.100106999999994 33.57256799999999,-94.097439999999992 33.573718999999997,-94.088943 33.575322,-94.082640999999995 33.575491999999997,-94.072670000000002 33.572234000000002,-94.072231491265512 33.572605318678747,-94.072031926011121 33.573523317998088,-94.072031926011121 33.573846369634623,-94.072031926011121 33.574161925883949,-94.071815412538413 33.574459631515609,-94.071712621294751 33.574600969288895,-94.071353404455635 33.574840447439463,-94.070395493400298 33.574561056392717,-94.069534727631535 33.574169799087244,-94.069517406590393 33.574161925883949,-94.068559493988133 33.573563230894273,-94.068280102941401 33.571966710019424,-94.06782332144887 33.570215714974232,-94.067801146640278 33.570130711574109,-94.066845999999998 33.568908999999998,-94.061283000000003 33.568804999999998,-94.056597999999994 33.567824999999999,-94.056095999999997 33.567252000000003,-94.055662999999996 33.561886999999999,-94.056442000000004 33.560997999999991,-94.059849999999997 33.559249,-94.061179999999993 33.559159,-94.066685000000007 33.560953999999995,-94.067984999999993 33.560960999999999,-94.071719999999999 33.559682000000002,-94.073744000000005 33.558284999999998,-94.073825999999997 33.555833999999997,-94.072156000000007 33.553863999999997,-94.069091999999998 33.553406000000003,-94.06547999999998 33.550908999999997,-94.061896000000004 33.549764000000003,-94.056095999999997 33.550725999999997,-94.051882000000006 33.552585,-94.050211999999988 33.551082999999998,-94.046040000000005 33.551321000000002,-94.043449999999993 33.552253,-94.043428000000006 33.551424999999995,-94.043374999999997 33.542315000000002,-94.043020107474533 33.494534442391668,-94.043008999999998 33.493039000000003,-94.043278999999998 33.491029999999995,-94.043271947583932 33.489425304099555,-94.043188 33.470323999999991,-94.043130608695648 33.460424000000003,-94.043089437732434 33.453322008844353,-94.043061045958495 33.448424427841935,-94.043010021810147 33.439622762252007,-94.042987999999994 33.435823999999997,-94.042987999999994 33.434442436873745,-94.042987999999994 33.431023999999994,-94.042886999999993 33.420225000000002,-94.042890126641851 33.419424334827802,-94.042891364631132 33.419107312620362,-94.042967439944888 33.399626074590046,-94.043053 33.377715999999999,-94.042868999999996 33.371169999999999,-94.043127999999996 33.358756999999997,-94.043066999999979 33.352097,-94.043066999999979 33.347351000000003,-94.043066999999979 33.339614667914582,-94.043066999999979 33.330497999999999,-94.042990000000003 33.271227000000003,-94.043049999999994 33.260903999999996,-94.043003999999996 33.250127999999997,-94.042730000000006 33.241822999999997,-94.042876000000007 33.215218999999998,-94.042891999999995 33.202666,-94.042874999999995 33.199784999999999,-94.042718999999991 33.160290999999994,-94.043184999999994 33.143476,-94.043076999999982 33.138162,-94.043007000000003 33.13389,-94.042951563372725 33.117233519058104,-94.042869999999994 33.092726999999996,-94.043036 33.079484999999998,-94.042963999999998 33.019219,-94.042986850316112 33.007494023677346,-94.043068075862834 32.965815492539427,-94.043087999999997 32.955592000000003,-94.043066999999979 32.937902999999999,-94.043092 32.910021,-94.042884999999998 32.898910999999998,-94.042859000000007 32.892771000000003,-94.042885999999996 32.880965000000003,-94.043025 32.880445999999999,-94.042784999999995 32.871485999999997,-94.042921087938623 32.829694015190334,-94.043025999999983 32.797476000000003,-94.042747000000006 32.786973000000003,-94.042828999999998 32.785277,-94.042937999999992 32.780557999999999,-94.043026999999995 32.776862999999999,-94.042946999999998 32.767991000000002,-94.042974715046569 32.757603400545236,-94.04314699999999 32.693030999999998,-94.042912999999999 32.655126999999993,-94.042779999999993 32.643465999999997,-94.042823999999996 32.640304999999998,-94.042925999999994 32.622014999999998,-94.042929 32.618259999999992,-94.042918999999998 32.610142000000003,-94.042939007208048 32.604544739553475,-94.043082999999996 32.564261000000002,-94.043142000000003 32.559502000000002,-94.043081 32.513612999999999,-94.042884999999998 32.505144999999999,-94.042911000000004 32.492851999999999,-94.043088999999995 32.486561000000002,-94.043071999999995 32.48429999999999,-94.042955000000006 32.480260999999999,-94.042995000000005 32.478003999999999,-94.042901999999998 32.472905999999995,-94.042874999999995 32.471347999999992,-94.042902999999981 32.470385999999998,-94.042907999999997 32.439890999999996,-94.042985999999999 32.435507,-94.042898999999991 32.400658999999997,-94.042923000000002 32.399918,-94.042900999999986 32.392282999999999,-94.042762999999994 32.373331999999998,-94.042738999999997 32.363559000000002,-94.042733519218956 32.277818574933548,-94.042732999999998 32.269696000000003,-94.042732 32.269620000000003,-94.042671451745775 32.225096273752321,-94.042662000000007 32.218145999999997,-94.042600205901905 32.185155675879351,-94.042565999999994 32.166893999999999,-94.042538999999991 32.166826,-94.042591000000002 32.158096999999998,-94.042681000000002 32.137956000000003,-94.042751999999993 32.125163,-94.042337000000003 32.119914,-94.042699999999996 32.056012000000003,-94.042717288248511 32.00695918811028,-94.042720000000003 31.999265,-94.042490448495869 31.997488887291052,-94.042251674184627 31.995641414801661,-94.041832999999997 31.992401999999998,-94.038411999999994 31.992436999999999,-94.029282999999992 31.995864999999998,-94.027080554152732 31.994823406342874,-94.018664 31.990842999999998,-94.011671046736083 31.979908989829021,-94.008352361284565 31.974719974671689,-94.002944198469422 31.966263903968002,-93.995504541226836 31.954631438414648,-93.994147015257326 31.952508844111783,-93.977461000000005 31.926418999999996,-93.971711999999982 31.920383999999995,-93.953546000000003 31.910562999999996,-93.943541310721315 31.908563758569336,-93.938002035663573 31.906916949339585,-93.935007833635339 31.903773037645127,-93.932462763507019 31.895538979891644,-93.931327794714704 31.894581351390723,-93.92767203678045 31.891496810199779,-93.923929283519882 31.889849995167665,-93.919587694495533 31.890748256066246,-93.915948999999998 31.892861000000003,-93.909557114944889 31.893143619429534,-93.905252294448232 31.890856686636408,-93.90476638821832 31.890598549301192,-93.901173350426333 31.885957535142037,-93.901888 31.880063,-93.898135577976262 31.874953416991548,-93.896981462364707 31.873381885463036,-93.889196542313442 31.867692899288475,-93.888241004857136 31.85786451213389,-93.888148571748644 31.856913771406646,-93.887306164689562 31.854968889155742,-93.884117000000003 31.847605999999995,-93.880377455095243 31.844791786271248,-93.879654915472827 31.84424803536659,-93.874821999999995 31.840611000000003,-93.874804231839249 31.835091218914506,-93.874787826198073 31.829994712349503,-93.874761000000007 31.821660999999999,-93.870917000000006 31.816836999999996,-93.868473098390325 31.815251608244314,-93.853390000000005 31.805467,-93.846187999999998 31.802021,-93.839950728453459 31.798597132180646,-93.836868453653821 31.794158659336233,-93.836868453653821 31.791454071635616,-93.836868453653821 31.788733862378688,-93.834649214842401 31.783309060642711,-93.831197070889573 31.780226788232302,-93.827450999999996 31.777740999999999,-93.823442999999997 31.775098,-93.822597999999985 31.773558999999995,-93.826519525540022 31.761832440276638,-93.827342999999999 31.759369999999997,-93.830112066651125 31.754555168030393,-93.830647423185951 31.745811043570992,-93.824579 31.734396999999998,-93.819048075401312 31.72885814427071,-93.818932598107111 31.728523867973351,-93.815657495541259 31.719043310199801,-93.815835943108667 31.711905251886723,-93.815525624652665 31.710796971318612,-93.814600367558683 31.707492480599399,-93.814586782471608 31.707443962415162,-93.811060073548262 31.705827553684028,-93.810303944025605 31.705480994217723,-93.807270273132957 31.704231833580664,-93.806045429297654 31.703104120446881,-93.803419352361757 31.700686292667093,-93.802693549340276 31.697783082925291,-93.802451615781152 31.693186330065117,-93.804479 31.685663999999999,-93.812820813246589 31.676953615984285,-93.81562111199878 31.674029590143711,-93.817425 31.672146,-93.821829497696953 31.673879806810671,-93.822051000000002 31.673966999999998,-93.822341750589956 31.673502431839047,-93.826462000000006 31.666919,-93.8257324849111 31.66154827530681,-93.825660999999997 31.661021999999996,-93.825228912080746 31.660277861177896,-93.81803699999999 31.647891999999999,-93.817707248836442 31.6409111211136,-93.816838000000004 31.622509,-93.818717000000007 31.614555999999997,-93.823976999999999 31.614227999999997,-93.825414416100287 31.615089707767993,-93.827851999999993 31.616550999999998,-93.838056999999992 31.606795000000002,-93.839382999999998 31.599074999999999,-93.837534908858984 31.593743346167731,-93.834924 31.586210999999999,-93.822958 31.568129999999996,-93.822219025006859 31.564792487143556,-93.820763999999997 31.558221000000003,-93.818582000000006 31.554825999999998,-93.798086999999995 31.534044000000002,-93.787687000000005 31.527343999999996,-93.781574079702807 31.525595412174177,-93.780834999999996 31.525383999999999,-93.777170583402579 31.525128039451072,-93.760062000000005 31.523933,-93.753860000000003 31.525331,-93.751899169046524 31.525601857922521,-93.749869902733366 31.526210635456998,-93.746826003263621 31.526007705679731,-93.743376259969125 31.525196002300419,-93.742401241878753 31.523787647735123,-93.74154991556837 31.522557958452786,-93.741111000000004 31.520101,-93.740752889151466 31.518711098615515,-93.740332360499409 31.517078940980245,-93.739317727342822 31.515049678599539,-93.734411826534469 31.513527159467717,-93.733432858180635 31.513223342063657,-93.726736285639134 31.511599931372594,-93.725924582259807 31.504091651519342,-93.728765551952293 31.496786301443361,-93.730997740177827 31.492118989316349,-93.733996137544537 31.48847587643743,-93.737167999999997 31.484621999999998,-93.741884999999982 31.483535,-93.745608448194673 31.481972669547908,-93.746355058504165 31.481633300507966,-93.747840636420193 31.480958036391328,-93.749869902733366 31.478928770078173,-93.749869902733366 31.475276095040186,-93.749626709600278 31.47120988033301,-93.749476 31.468689999999999,-93.709416000000004 31.442995,-93.706857276389258 31.44142369846492,-93.700929751125955 31.437783629836048,-93.697919763270235 31.429300939077926,-93.697603150134782 31.428408665937056,-93.704678 31.418899999999997,-93.704697874245824 31.418107106580852,-93.704878999999991 31.410881,-93.701611 31.409333999999998,-93.695865999999995 31.409391999999997,-93.689953513429003 31.406208353384852,-93.678362516190631 31.399967047179565,-93.675064666986117 31.398191282223291,-93.674659331220113 31.397973024503138,-93.674116999999981 31.397680999999995,-93.671643999999986 31.393352,-93.670181999999983 31.387184,-93.668532759396427 31.379357124595749,-93.668145986696857 31.37510269235548,-93.669064113561134 31.373151679996884,-93.669693055010129 31.371815184369147,-93.669512094168894 31.370548454097019,-93.668919524600994 31.366400452767671,-93.667402247962755 31.365414223393856,-93.665051865060306 31.363886475190469,-93.663891561951601 31.361952641672623,-93.663698175601809 31.360018811902275,-93.664665092360735 31.357698213179859,-93.665825387974422 31.355184231855155,-93.668439000000006 31.353011999999996,-93.669515978941746 31.350266666374935,-93.673736148309771 31.339509006758242,-93.677277000000004 31.330482999999997,-93.687850999999995 31.309835,-93.686922292404276 31.305369360695714,-93.686880000000002 31.305166,-93.686723586265984 31.304979085312567,-93.684737187533131 31.30260533533086,-93.684038999999999 31.301770999999995,-93.683824154244718 31.301752735987076,-93.675439999999995 31.30104,-93.668927999999994 31.297974999999997,-93.657003999999986 31.281735999999999,-93.647719584117951 31.27389987096868,-93.642516 31.269508000000002,-93.632650200244299 31.270182983909681,-93.620343000000005 31.271025000000002,-93.615257056394739 31.261768439618621,-93.61394199999998 31.259374999999995,-93.614287999999988 31.251631,-93.616308000000004 31.244595000000004,-93.616007481020262 31.233959925788763,-93.613835693061347 31.232449117569455,-93.609977782626956 31.229765355202261,-93.609827614285464 31.229660890324059,-93.608033931702224 31.227867209671889,-93.60740940488401 31.227242683526022,-93.605259887151632 31.224152751460338,-93.604319472818304 31.220794125122111,-93.604319472818304 31.215285983654958,-93.607287999999997 31.205403,-93.602442999999994 31.182541,-93.600307999999998 31.176157999999997,-93.598827999999997 31.174679,-93.595531708436056 31.171774432382691,-93.588772842417583 31.16581877494577,-93.588502999999989 31.165581,-93.588046655571759 31.165671453282986,-93.583339301771971 31.166604510813709,-93.579215000000005 31.167421999999995,-93.578993496784307 31.167654977688123,-93.574136071231791 31.172764031170193,-93.569563000000002 31.177574,-93.560942999999995 31.182481999999997,-93.552649000000002 31.185575,-93.548930999999996 31.186601,-93.535096999999993 31.185614,-93.533756450961803 31.184752004501149,-93.533306999999994 31.184463,-93.5330935917342 31.183965183917415,-93.531744000000003 31.180816999999998,-93.533193520062923 31.174490811082034,-93.53417786817559 31.170194787673282,-93.536829999999981 31.158620000000003,-93.540253000000007 31.156578999999997,-93.544009577425854 31.153014849431809,-93.544887639546317 31.148844041597808,-93.544887639546317 31.143136612291205,-93.544701999999987 31.135888999999999,-93.540277800652078 31.128868068802213,-93.539619249807799 31.121843550568837,-93.541375382556595 31.113501939154769,-93.541635919885238 31.113241401693255,-93.548470239502265 31.106407078590973,-93.549716998224596 31.105160319232844,-93.55112206776522 31.099540038044921,-93.551692642249563 31.097257738879012,-93.551034091405285 31.091111287020031,-93.546643772295099 31.082989189009115,-93.540128999999993 31.078002999999995,-93.53104031045666 31.074698717981779,-93.527873992025093 31.072210897922254,-93.526043656150705 31.070772777782928,-93.524020490083288 31.067083472240864,-93.523009982318626 31.065240780256033,-93.523659621286654 31.063941504256789,-93.525329858273139 31.060601035263321,-93.529255791555698 31.057567354514948,-93.532069000000007 31.055264,-93.531218761655126 31.051678447674814,-93.523247999999995 31.037841999999998,-93.516942620821894 31.032584114108545,-93.516407263768343 31.029550433360171,-93.516883288197775 31.024314186160638,-93.516942620821894 31.023661529978199,-93.539525999999995 31.008497999999999,-93.540062152267268 31.008345085566372,-93.540618575989114 31.008186389569964,-93.555580999999989 31.003918999999996,-93.562626264226125 31.00599480945781,-93.566016847371429 31.004567194682853,-93.567979815741779 31.001533515663564,-93.569764334642755 30.996715319472376,-93.571101253513504 30.991033414001794,-93.571905755076102 30.987614282198351,-93.567971999999997 30.977981,-93.560533000000007 30.971285999999999,-93.55046299120518 30.967360467203815,-93.549841 30.967117999999996,-93.539153617393822 30.956968324013513,-93.532549000000003 30.950695999999997,-93.526524876707626 30.939912016599852,-93.526293050708773 30.939497017171423,-93.526245000000003 30.939411,-93.526242458076936 30.939167805401102,-93.526231146824912 30.938085618677029,-93.526146999999995 30.930035,-93.526269219450654 30.929894609689271,-93.530935999999983 30.924533999999998,-93.542488999999989 30.920064,-93.54502991280485 30.920837107400992,-93.546884259495414 30.92151141825828,-93.549244331161987 30.921005686748707,-93.550358562122057 30.920030731622223,-93.551941554990407 30.918645608548566,-93.555650241837967 30.911228247920597,-93.555751501305451 30.910053639118178,-93.555774257662236 30.909789665608852,-93.556493125509377 30.9014508058257,-93.562447641167196 30.896531852982324,-93.563812214002311 30.895404595987301,-93.564247644832776 30.895044891882932,-93.567787752332634 30.888301832311882,-93.567450600170787 30.878524390216981,-93.566008182600839 30.875519355165832,-93.565853452041281 30.875197,-93.565427680666076 30.874309976760035,-93.563763247930751 30.87311591407202,-93.559394659034922 30.869981891957959,-93.55904186947815 30.86972880101742,-93.558616999999984 30.869423999999999,-93.558608112367665 30.868835818489011,-93.558593354020289 30.867859114376206,-93.558393833586933 30.854654896933653,-93.558352334289978 30.851908482785802,-93.558231866260058 30.843935935637496,-93.558171999999999 30.839973999999998,-93.553625999999994 30.835139999999999,-93.55374115920948 30.832414921630001,-93.554057 30.824940999999995,-93.561666000000002 30.807738999999998,-93.563243 30.806218000000005,-93.564501487304341 30.805543276361082,-93.569303000000005 30.802969,-93.578395 30.802046999999998,-93.584264999999988 30.796662999999995,-93.588934854633479 30.787551489258888,-93.589380999999989 30.786681000000002,-93.589895999999996 30.77776,-93.591925627378814 30.768225181611253,-93.592827999999997 30.763985999999996,-93.607757000000007 30.757656999999995,-93.611581311334461 30.752392350515215,-93.615058988962588 30.747604886281291,-93.619129 30.742001999999996,-93.617688 30.738479000000005,-93.609908791486006 30.729403419430973,-93.609718999999998 30.729181999999998,-93.609544 30.723138999999996,-93.61030547238029 30.720788970554505,-93.611192000000003 30.718053,-93.61618399999999 30.713980000000003,-93.616977218405893 30.712276394979256,-93.620773999999997 30.704122000000005,-93.621061387132315 30.696047232392139,-93.621092999999988 30.695159,-93.62235785978659 30.692974242186811,-93.629903999999996 30.679939999999995,-93.632922525899005 30.677439880221801,-93.638212999999993 30.673057999999997,-93.646373493696458 30.671658473870171,-93.653439445062318 30.670446661945991,-93.654970999999989 30.670183999999999,-93.666219386787546 30.661299653678171,-93.670353999999989 30.658033999999997,-93.670860468306827 30.657347728689221,-93.683099999999996 30.640763000000003,-93.685120999999981 30.625201,-93.684323003112922 30.617258061147268,-93.683396999999985 30.608040999999997,-93.680812614601606 30.602993111696524,-93.680648411741274 30.602453589051585,-93.679828117977763 30.599758343304948,-93.681234543283509 30.596101640780542,-93.683902548646543 30.593069810094963,-93.684328672415049 30.59258557751615,-93.684347894395486 30.592579170189346,-93.687282162286593 30.59160108089231,-93.689533999999995 30.592759,-93.692869000000002 30.594382000000003,-93.712453999999994 30.588479,-93.72107859525056 30.580404159651369,-93.727657631584904 30.574244488790981,-93.727844000000005 30.574069999999995,-93.727840097341868 30.573768021870688,-93.72780696123904 30.571204031383882,-93.727747245613443 30.566583382517752,-93.727745999999996 30.566486999999999,-93.725846999999987 30.556978,-93.728764326223569 30.546403128121515,-93.729195000000004 30.544841999999999,-93.736587760607577 30.541316766984647,-93.740252999999996 30.539569,-93.738909526480768 30.537838512460276,-93.732793 30.529960000000003,-93.727721000000003 30.525671000000003,-93.718711305261792 30.520890798500346,-93.714321999999996 30.518561999999996,-93.710116999999997 30.506399999999996,-93.713193644304937 30.50058809182816,-93.716678000000002 30.494005999999995,-93.71365216083376 30.483878530555742,-93.711446941284677 30.476497671106777,-93.710595424186792 30.473647647388944,-93.709703157003446 30.47066123332699,-93.708899372668625 30.467970970942378,-93.705844999999997 30.457747999999999,-93.697828 30.443837999999996,-93.6978 30.440583,-93.698862234241474 30.438260713588438,-93.702220303997905 30.430919206922557,-93.702664999999996 30.429947000000002,-93.722313999999997 30.420729,-93.729486046484141 30.413342592858086,-93.738025291703323 30.404548123662593,-93.738321805525445 30.404242747530638,-93.745333000000002 30.397022,-93.751243378615428 30.396311282781173,-93.751436999999996 30.396287999999998,-93.754787283332149 30.393127406185759,-93.75746720581121 30.390599218098316,-93.757654000000002 30.390422999999995,-93.757872622462301 30.389610210267922,-93.758470934573069 30.387385818798332,-93.75855399999999 30.387077,-93.758091991038413 30.3842338214119,-93.758032188807945 30.383865801664729,-93.757931393201204 30.383245510859378,-93.75589426835937 30.370709152880856,-93.756044740613035 30.365928314513319,-93.75610723110799 30.3639428524199,-93.756352000000007 30.356166000000002,-93.758519945992674 30.350935458285047,-93.760658351649255 30.34577618769989,-93.763244572034736 30.339536487238696,-93.765822 30.333317999999995,-93.764264999999995 30.330222999999997,-93.760690955159149 30.32995156504764,-93.760328 30.329923999999998,-93.747921244232074 30.314935395431327,-93.743830002049762 30.309992764786195,-93.741160171732417 30.306767342150266,-93.738698999999997 30.303793999999996,-93.734966161369201 30.301561360829975,-93.729390287632427 30.298226388348422,-93.724220000000003 30.295133999999997,-93.718684474451791 30.295009979388311,-93.714319430116035 30.294282471059141,-93.71311219174963 30.293184979315004,-93.711118400234781 30.291372437742464,-93.709949692759622 30.289928741213533,-93.708644873043468 30.288316906143507,-93.708448001046747 30.287627854154977,-93.707590519980414 30.284626670422831,-93.706607851977495 30.281187332412603,-93.706635817233519 30.280914670488997,-93.707189856385114 30.275512775340033,-93.709131999999997 30.271826999999995,-93.707538803456245 30.253087036355307,-93.707271000000006 30.249936999999996,-93.705637767078656 30.244573755694763,-93.705083000000002 30.242751999999996,-93.707646217538425 30.23733474070027,-93.713358999999997 30.225261,-93.71802168481895 30.219915738218987,-93.719219999999993 30.218541999999999,-93.720945999999998 30.209852,-93.717397000000005 30.193439,-93.710467999999992 30.180670999999997,-93.706634735424259 30.17682001000631,-93.705927274531248 30.176109277739844,-93.705791510460429 30.175972885881706,-93.703764000000007 30.173936,-93.703646997347349 30.173527735424756,-93.702964616901454 30.171146663230584,-93.701744610591902 30.166889619937699,-93.701686103512344 30.166685467574972,-93.697748000000004 30.152943999999998,-93.696083741705934 30.150925109485563,-93.688211999999979 30.141376,-93.69286799999999 30.135216999999997,-93.69498 30.135185,-93.698276000000007 30.138608000000005,-93.700984936503929 30.137486558544058,-93.701251999999997 30.137376,-93.7012922571502 30.136537706048752,-93.701585086407604 30.130439981942867,-93.701656556414648 30.128951727699913,-93.701742498922442 30.127162105630983,-93.701985639262489 30.122099077688652,-93.702366286953335 30.114172668214064,-93.702403861450691 30.11339023643033,-93.702436000000006 30.112720999999997,-93.70268530105453 30.112503701678254,-93.704703872918159 30.110744253531749,-93.710410303455276 30.105770356484715,-93.714491639657382 30.10221294069715,-93.723764999999986 30.094129999999996,-93.727140999999989 30.092110594495406,-93.7293848599641 30.090768395691203,-93.72996305770063 30.09042253796256,-93.732484999999997 30.088913999999995,-93.734084999999979 30.086129999999997,-93.731705540540531 30.081478540540548,-93.731605000000002 30.081282000000002,-93.729179922109864 30.079341937687897,-93.727017487667368 30.077611990133899,-93.71640499999998 30.069121999999997,-93.716151269697463 30.069056930886212,-93.707507094464489 30.066840132907302,-93.702179999999998 30.065473999999995,-93.700580000000002 30.063666,-93.699479012508235 30.0595596142199,-93.699395999999993 30.059249999999995,-93.699786698153744 30.05843348475733,-93.700658293446523 30.056611948527472,-93.700819999999993 30.056273999999998,-93.702099264262131 30.055460929156467,-93.703267223154896 30.054718601437116,-93.703940000000003 30.054290999999999,-93.704473210548429 30.054251542735575,-93.709782747672762 30.053858640136632,-93.710785394684464 30.05378444485228,-93.720804999999999 30.053042999999995,-93.729054152595779 30.045230570163486,-93.729990027439044 30.044344241966268,-93.737446000000006 30.037282999999999,-93.739158000000003 30.032626999999998,-93.739733999999999 30.023987000000002,-93.741078000000002 30.021571000000002,-93.744068611359822 30.019549890100706,-93.74834924745744 30.01665695787004,-93.753252045558341 30.013343557169065,-93.766227014667976 30.004574835541469,-93.782835629207284 29.993350429819579,-93.786934999999986 29.990579999999998,-93.789430999999993 29.987812000000002,-93.803328792953494 29.962666096659486,-93.807814999999991 29.954549,-93.813734999999994 29.935126,-93.816550000000007 29.920725999999995,-93.818997999999993 29.914822,-93.830374000000006 29.894358999999998,-93.838374000000002 29.882854999999999,-93.853129483564672 29.866348149842587,-93.854474509531912 29.864843479256791,-93.855140000000006 29.864098999999996,-93.857517787207271 29.862146563102172,-93.862474802662518 29.858076283033213,-93.863569999999996 29.857177,-93.864820388168837 29.856398395289631,-93.872445999999997 29.851650000000003,-93.890679000000006 29.843159000000004,-93.900728 29.836967,-93.911111176241661 29.828996955749506,-93.916359999999997 29.824967999999998,-93.922743999999994 29.818808,-93.927992000000003 29.809640000000002,-93.929208000000003 29.802952,-93.928808000000004 29.79708,-93.926503999999994 29.789559999999998,-93.922407000000007 29.785048,-93.898470000000003 29.771576999999997,-93.893861999999999 29.767289000000002,-93.890820999999988 29.761672999999995,-93.891780610698319 29.758916671398389,-93.892526767476923 29.756773455119472,-93.893828999999997 29.753032999999999,-93.891732576672823 29.744984915009951,-93.891637000000003 29.744618000000003,-93.891484462723341 29.744488863328282,-93.888820999999993 29.742234000000003,-93.873941000000002 29.737770000000005,-93.870019999999997 29.735482,-93.863203999999996 29.724059,-93.837970999999982 29.690618999999998,-93.852868 29.675885,-93.866980999999996 29.673085,-93.889989999999997 29.674012999999999,-93.930999999999997 29.679611999999999,-93.955443390383635 29.680262610936268,-93.955453232202885 29.68026287289646,-93.991585827226885 29.681224615973395,-94.000169999999997 29.681453101326589,-94.000222586816207 29.681454501032487,-94.001406000000003 29.681486,-94.010062765207763 29.679864152681674,-94.056505999999999 29.671163,-94.132576999999984 29.646217,-94.354166823921716 29.561457673765378,-94.370794193562546 29.555097613439198,-94.391123278008692 29.54732162684321,-94.45341877657637 29.523493256060661,-94.456196753642018 29.522430664556182,-94.45805240375158 29.521720868184531,-94.499046371673685 29.506040450016997,-94.499089575343746 29.506023924375612,-94.500455432020999 29.505501476685335,-94.500806999999995 29.505367,-94.552043946167103 29.48495633977835,-94.552044379602123 29.484956167115939,-94.568074121423052 29.478570587212708,-94.593696728539513 29.46836361027578,-94.594852999999986 29.467903,-94.599458690353401 29.465813271763974,-94.62931993394271 29.452264405230761,-94.631084 29.451464,-94.634656044789836 29.449584234717392,-94.661528069434993 29.435443006940758,-94.670389 29.430779999999999,-94.674924987623086 29.427889211977174,-94.680871144138621 29.42409972235215,-94.694158000000002 29.415631999999999,-94.708472999999998 29.403049000000003,-94.723958999999979 29.383268000000005,-94.730956033155138 29.369322304827527,-94.731047000000004 29.369140999999996,-94.731324722869132 29.369141342444962,-94.731537324603394 29.369141604592603,-94.742750849251038 29.369155431380086,-94.744595216508316 29.369157705569055,-94.744833999999997 29.369157999999999,-94.761491000000007 29.361882999999999,-94.772184717669788 29.3616343088914,-94.778690999999995 29.361483,-94.780073439975141 29.362532749099824,-94.782355999999993 29.364266,-94.782645420567292 29.368514320481975,-94.783130999999997 29.375641999999996,-94.766847999999996 29.393488999999999,-94.754099999999994 29.400999999999996,-94.743385419572206 29.410035318862811,-94.73704402931665 29.415382843516582,-94.727822669267709 29.423158969605012,-94.723817999999994 29.426535999999995,-94.716270519001597 29.430976788539081,-94.706539419927282 29.436702374764607,-94.706364999999991 29.436804999999996,-94.686385999999999 29.466508999999995,-94.681540999999996 29.471388999999999,-94.672399999999996 29.476842999999999,-94.665852999999998 29.478401000000002,-94.656737000000007 29.478032999999996,-94.645948000000004 29.473769,-94.628217000000006 29.475986000000002,-94.608557000000005 29.483344999999996,-94.594211 29.492127,-94.595122262498009 29.503650874486677,-94.595439999999996 29.507669,-94.591407000000004 29.513857999999999,-94.580274000000003 29.525295,-94.566674000000006 29.531987999999995,-94.553989999999985 29.529558999999999,-94.546993999999998 29.524379,-94.532347999999999 29.5178,-94.511044999999996 29.519649999999995,-94.495024999999984 29.525030999999998,-94.503428999999997 29.543249999999997,-94.509486999999993 29.542589999999997,-94.523742999999996 29.545987,-94.523871183237745 29.546315590042923,-94.5261306113389 29.55210749848424,-94.526336 29.552633999999998,-94.542531999999994 29.568999999999999,-94.546193009360195 29.571896121601313,-94.546385 29.572047999999995,-94.546803832691651 29.57214903106096,-94.55398799999999 29.573882,-94.570006000000006 29.572232,-94.578210999999982 29.567281,-94.593518000000003 29.561319,-94.625889999999998 29.552807999999999,-94.634988842169335 29.550728838088908,-94.643914431984982 29.54868926579681,-94.666855093063802 29.543447131924982,-94.691625000000002 29.537787000000002,-94.693243673136905 29.537529479678042,-94.718275999999989 29.533546999999995,-94.740699000000006 29.525857999999999,-94.757688999999999 29.524616999999999,-94.768675999999999 29.525659,-94.780938000000006 29.531093000000002,-94.785987568065153 29.540133852805589,-94.789123822994313 29.545749069554745,-94.789562096440733 29.546533763545689,-94.78971899677407 29.546814681200559,-94.790604999999999 29.548400999999998,-94.779438999999996 29.549472000000002,-94.772471009935998 29.548613672580952,-94.771052999999995 29.548438999999995,-94.762972090755014 29.555767305595641,-94.75523699999998 29.562781999999999,-94.750081379755628 29.56810096117977,-94.734626000000006 29.584046,-94.731874420576986 29.588423440241069,-94.724443803393115 29.600244680945409,-94.708741000000003 29.625226,-94.705273448792255 29.640626536822896,-94.703938528752261 29.6465553563269,-94.702680930363101 29.65214076491651,-94.702542126991759 29.652757236398369,-94.699660909360375 29.665553672721437,-94.69780371146922 29.673802100155214,-94.694887994254785 29.686751760487848,-94.693153999999993 29.694452999999999,-94.692434000000006 29.70361,-94.692611750388934 29.704808689927841,-94.695098387970873 29.721577752663908,-94.695317000000003 29.723051999999999,-94.695611486157915 29.72357178078331,-94.697558868014866 29.727008993840069,-94.705700105090941 29.741378628781629,-94.713878412983604 29.755813695314995,-94.714586470042065 29.757063446593907,-94.722078339612551 29.770286919851305,-94.724615999999983 29.774766,-94.735270999999997 29.785433,-94.738125273271791 29.786265833277604,-94.740919000000005 29.787080999999997,-94.749144589762409 29.783534045463153,-94.75591801041729 29.780613280409739,-94.771512 29.773888999999997,-94.792237999999998 29.767432999999997,-94.798897371247961 29.764438558858895,-94.816085 29.756710000000002,-94.81943931055217 29.753325616252695,-94.823987131664666 29.748737021482022,-94.851107999999996 29.721373000000003,-94.856932183541645 29.710462974624775,-94.860426638443812 29.703917062844585,-94.864167858487249 29.696908903620852,-94.865007000000006 29.695336999999999,-94.865123196353878 29.694545038919138,-94.867438000000007 29.678768000000002,-94.872550999999987 29.67125,-94.893107 29.661335999999999,-94.915413 29.656613999999998,-94.921317999999999 29.658177999999999,-94.928410408640929 29.669495826038883,-94.930071799099807 29.672147016790593,-94.930110565443542 29.672208878811933,-94.930656833967475 29.673080595662611,-94.931474856161643 29.67438596783704,-94.934166999999988 29.678681999999998,-94.935264231405057 29.686686879688732,-94.935319060033862 29.687086883348073,-94.935997030967087 29.692033037575822,-94.936088999999996 29.692703999999999,-94.936280063994801 29.692851065945039,-94.941277009519624 29.696697319220664,-94.942680999999993 29.697778,-94.942922907078852 29.697804516058127,-94.95311095436017 29.698921254167477,-94.965343618259496 29.700262107971746,-94.965962999999988 29.70033,-94.972666000000004 29.684869999999997,-94.980123280315652 29.679059463608382,-94.986438191421769 29.674139034277729,-94.988580124776774 29.672470090483102,-95.001800051879343 29.662169436052462,-95.002396227716986 29.661704909944582,-95.005398 29.659365999999995,-95.011683000000005 29.649802000000005,-95.013860566469219 29.644103309100927,-95.014229369455222 29.643138151779844,-95.015636 29.639457,-95.015582911847446 29.639202042718885,-95.014543866006605 29.634211997110764,-95.013498999999996 29.629193999999998,-95.006633444897872 29.623869765921089,-95.00056235200779 29.61916163683599,-95.000370188745762 29.619012614335521,-94.997782627529062 29.617005962082896,-94.997731096758997 29.616965999999998,-94.995478872439179 29.615219401320278,-94.993499353954022 29.613684285860323,-94.988871000000003 29.610095,-94.988045541621688 29.608923290953985,-94.982835617337045 29.60152798723708,-94.982705999999993 29.601344000000005,-94.982886347998431 29.601051719777942,-94.983895794498991 29.599415764569699,-94.98693593300419 29.594488776939745,-94.988992999999994 29.591155,-94.991605757589539 29.588791109774153,-94.991811610459919 29.588604864563266,-94.992208959522046 29.588245363334387,-95.006677600766466 29.575154872369662,-95.007235451984087 29.574650156950938,-95.007670000000005 29.574256999999996,-95.00815781845921 29.573398130166158,-95.016627 29.558487,-95.018253 29.554884999999999,-95.016926355758628 29.548485488141377,-95.015164999999996 29.539988999999998,-95.012091452887788 29.536262245236642,-95.011587670186657 29.535651395780732,-95.011086587278399 29.535043819893005,-95.001666768519442 29.523622047865974,-94.999580999999992 29.521093,-94.989064037839412 29.515168017977793,-94.982063906682782 29.511224326765198,-94.981915999999998 29.511140999999995,-94.981645984265953 29.511070508097891,-94.961088181447877 29.505703566689924,-94.958443000000003 29.505013000000002,-94.958183821928699 29.504969740154092,-94.957844913785792 29.504913172428417,-94.95747910332102 29.504852114391142,-94.955724072517796 29.504559179260749,-94.952845264169682 29.504078672538427,-94.930551536860648 29.500357589179547,-94.927405495678158 29.499832478177321,-94.909464999999997 29.496837999999997,-94.913072085311995 29.488019044482122,-94.913385000000005 29.487254,-94.917178632618899 29.481741136316387,-94.925104227340569 29.470223752399235,-94.925293406029382 29.469948840084836,-94.925914000000006 29.469047,-94.930860999999993 29.450503999999999,-94.923011455799639 29.448810114938265,-94.920334997737442 29.448232551169699,-94.919400999999993 29.448030999999997,-94.916063708203708 29.446327523795176,-94.890799999999984 29.433432,-94.888257132054065 29.420136433311271,-94.887299999999996 29.415132,-94.887087039327696 29.40154064293051,-94.886938304445962 29.392048238229908,-94.886925408340758 29.391225196262944,-94.886904215833582 29.389872669858736,-94.886764190565785 29.380936121184895,-94.886591910643261 29.369941049100753,-94.886536208040312 29.366386054846032,-94.886982892003275 29.364738908620176,-94.888420210858001 29.359438798199445,-94.888544709543254 29.358979709544975,-94.888781730376067 29.358105695694917,-94.894234145274325 29.337999926591962,-94.894147383920654 29.327241695272729,-94.894002695197727 29.309300588032027,-94.893993580875261 29.308170430590454,-94.891329624021282 29.304475264201969,-94.888683946869179 29.30080545353194,-94.886599269217157 29.297913803549264,-94.886536208040312 29.297826331584119,-94.885816422022174 29.297499155955627,-94.884216982863776 29.296772137788121,-94.876917125093229 29.293454018939102,-94.875951551627523 29.293015121686942,-94.86617837453683 29.293883848703121,-94.865126326153927 29.293977364132552,-94.861112574100105 29.294855372432302,-94.849730461009372 29.297345209778594,-94.825607939204673 29.30577638202961,-94.824952733476934 29.30600538596191,-94.823862547308252 29.313200608971236,-94.822547126780194 29.321882377573708,-94.82230657170463 29.344254498409398,-94.810695999999993 29.353434999999998,-94.797913847039041 29.344567105809805,-94.79693012269928 29.343884625840758,-94.784895000000006 29.335535,-94.779995 29.334935000000002,-94.777063999999996 29.336811,-94.773074869484503 29.336485139838025,-94.745528999999991 29.334235,-94.744945 29.33641,-94.731319999999997 29.338066,-94.722529999999992 29.331445999999996,-94.731082 29.331833,-94.769694999999999 29.304936,-94.780304129101268 29.295750693651897,-94.786095000000003 29.290737,-94.793321795438203 29.286014946162535,-94.795651468635626 29.284492716516493,-94.803695000000005 29.279236999999998,-94.809348860129617 29.275904173901317,-94.81020919937113 29.275397022855465,-94.819018398045671 29.270204194137058,-94.82210781776098 29.268383049216432,-94.825036245866656 29.266656805306088,-94.825782574142963 29.266216861214712,-94.826962003659688 29.265521613475173,-94.833188167130103 29.261851427154124,-94.844390135018429 29.255248113651685,-94.870677905110114 29.23975205180561,-94.881596387366812 29.233315846843187,-94.896165027201874 29.224727954332334,-94.925556066041452 29.207402583865772,-94.927613957028456 29.206189502425392,-94.940693735267132 29.198479261054111,-94.968741214129224 29.181945889621023,-94.978383546115566 29.176261947153485,-94.981700088962569 29.174306918145966,-95.026218999999998 29.148064000000002,-95.076832914261459 29.114498139229923,-95.081772999999998 29.111222,-95.084611040272236 29.108948681405003,-95.100241410561338 29.096428488590096,-95.110484 29.088224,-95.116308293211759 29.081343778536318,-95.119264367911811 29.077851775668329,-95.119484217932538 29.077592067446851,-95.122403192505772 29.074143890856067,-95.122524999999996 29.074000000000002,-95.122638295373392 29.073709965581063,-95.125134000000003 29.067321,-95.183550616106302 29.028323983126334,-95.191390999999996 29.023089999999996,-95.192301227546167 29.02243038040822,-95.237672480263356 28.989550945676651,-95.238923999999997 28.988644,-95.240558404572027 28.987315672512366,-95.251568580535192 28.978367386619187,-95.251619678822578 28.978325857575001,-95.272266000000002 28.961545999999995,-95.29656403895315 28.934716691525271,-95.297146999999981 28.934073,-95.309703999999996 28.928262,-95.334686660244515 28.911063042846731,-95.353450999999993 28.898145,-95.376979000000006 28.876159999999999,-95.377903963555724 28.874482723635413,-95.38239 28.866347999999999,-95.416173999999998 28.859482,-95.436326577581042 28.85908617652915,-95.439594 28.859022000000003,-95.449516932572138 28.854239851149391,-95.480746000949352 28.839189657836059,-95.485144835951402 28.837069731735976,-95.486768999999995 28.836286999999995,-95.506945757563287 28.824808612805594,-95.536465934189138 28.808014833314715,-95.564052739104355 28.79232093268277,-95.564094788066555 28.792297011382839,-95.564132228771385 28.792275711681647,-95.568135999999981 28.789997999999997,-95.576201168007842 28.785870627961152,-95.606319447682353 28.770457515020929,-95.613122366343802 28.766976102576891,-95.695711236705606 28.724711019702028,-95.715243498124195 28.714715330888584,-95.812504000000004 28.664942,-95.854124934570734 28.646410960033691,-95.884026000000006 28.633098,-95.920915435374582 28.618912188118028,-95.97832748198536 28.596834417485056,-96.000681999999983 28.588238,-96.000998496292368 28.588108377001081,-96.024040703743012 28.578671299526803,-96.035336417502748 28.574045070633311,-96.05294532761279 28.566833233429691,-96.077867999999995 28.556625999999998,-96.194412 28.502223999999998,-96.220123346321373 28.492065891861738,-96.220376184174313 28.491966,-96.226882700448613 28.487451845000788,-96.241923733725443 28.477016528665938,-96.244750999999994 28.475055,-96.270391000000004 28.461929999999999,-96.303212000000002 28.441870999999999,-96.321560000000005 28.425148,-96.328817 28.423658999999997,-96.341616999999999 28.417333999999997,-96.371116999999998 28.397660999999999,-96.372100999999986 28.393874999999998,-96.370716999999985 28.387667,-96.378616389014681 28.383909329746462,-96.379349732835649 28.386024690464755,-96.381702691108558 28.392811896356477,-96.381863685354148 28.393276290946375,-96.375880899310658 28.401794149460329,-96.37413840285555 28.404274990018202,-96.340801887331921 28.432913073072363,-96.338559687910475 28.434839257985413,-96.335119195902806 28.437794848703732,-96.312964581561445 28.451131053409146,-96.280819757359396 28.470480970729877,-96.274497619264608 28.474286648703266,-96.268341347214189 28.477992481854848,-96.252027698910211 28.484249764669329,-96.250247000000002 28.484932771712327,-96.223824788704931 28.495067307260509,-96.218978121459415 28.500382701101032,-96.21505000939203 28.509679222336811,-96.145447855080619 28.544740658174199,-96.10473518795402 28.559498996555909,-96.046210731424992 28.586980036018211,-96.032979113622659 28.589015683181284,-96.007533711461477 28.59970275682273,-95.986159544454679 28.60631857558586,-95.982088289576367 28.614461085342473,-95.98565064745685 28.621076904105603,-95.983106103295938 28.641942154390655,-95.97852589224803 28.650593590730978,-95.986065974637228 28.655467849280154,-95.996337701374344 28.658736120211515,-96.002953500413568 28.656191585912577,-96.006515878017979 28.648049056432036,-96.010005951759737 28.648641710656278,-96.010506546843942 28.648726717396318,-96.011440067305529 28.648885239790378,-96.014343010193883 28.649378192516537,-96.026200716522851 28.65139176594381,-96.03348799089656 28.652629228032097,-96.039323368019012 28.651170385770797,-96.047737442142406 28.649066870151618,-96.049244844336243 28.648218956037223,-96.052682972641108 28.646285007998213,-96.05836686193534 28.643087818836001,-96.072165030584017 28.635326345489485,-96.092812363862251 28.627145317384699,-96.098878916233431 28.624741586366319,-96.099137163186526 28.624639261986079,-96.099760206508392 28.62447226081035,-96.102639895829256 28.623700385909448,-96.141413249033207 28.613307536255487,-96.148501276515404 28.611407654045699,-96.187178316202875 28.593595864643298,-96.198374286842139 28.586980055742131,-96.221784081288092 28.580364246840958,-96.228908787187095 28.580873158631725,-96.233997875508891 28.596649310733014,-96.233997875508891 28.601738394123839,-96.222292978285921 28.607336389305434,-96.214150448805384 28.613443281484855,-96.212623728226021 28.62260364440889,-96.2309444244882 28.64143324753087,-96.208552463485731 28.662298487953962,-96.214659365527126 28.665351929112688,-96.192267404524671 28.68774389011514,-96.1912495908051 28.694359708878277,-96.195829762405154 28.698939880478335,-96.202445561444364 28.700975507917487,-96.208747675276499 28.700187749031503,-96.21684000834783 28.699176214258408,-96.221467818495611 28.69859774191346,-96.222801895007663 28.698430983480506,-96.223384071149837 28.698294,-96.224163927167865 28.698110503315906,-96.227000018566372 28.697443183508955,-96.229623268039219 28.696825944469072,-96.231453341209956 28.69639533631743,-96.233964222112746 28.695240331316239,-96.23422531976 28.695120226420762,-96.234426397558138 28.695027730650764,-96.243315632596989 28.690938683290845,-96.256898753233088 28.684690448956413,-96.263514562134276 28.683672635236839,-96.268603640594122 28.688761723558645,-96.287942160437836 28.68316371851509,-96.304227224329892 28.671458831154069,-96.305245042980445 28.660262850652849,-96.303866760710434 28.646480081370939,-96.303718312539132 28.644995605411349,-96.322902111893882 28.641863561491792,-96.322903115546453 28.641863397630402,-96.328654788116609 28.640924350533034,-96.373438710121519 28.626674919011112,-96.376492171004159 28.620059100247982,-96.384634680760783 28.615987845369677,-96.473693647496702 28.573239550803915,-96.48794308888057 28.569677192923439,-96.482854000558774 28.580364266564878,-96.480309456397848 28.596649335387912,-96.485907441717487 28.60784531588914,-96.490487633041468 28.610898766909834,-96.510843966604781 28.614970031650095,-96.510335069606953 28.617514575811001,-96.497612348802434 28.625148188569788,-96.496594535082863 28.630746183751381,-96.49964797624159 28.635835272073191,-96.506263795004728 28.638379806372129,-96.513590449607946 28.639711925390898,-96.518002756430107 28.640514162994929,-96.524548246905439 28.641704252172264,-96.541744210187403 28.644830790950802,-96.545449731689985 28.645504522133091,-96.555118991611849 28.64601343885484,-96.5632615210924 28.64448670841351,-96.564664053901609 28.647882315216158,-96.572092291837293 28.665866475800886,-96.572930781014264 28.667896502859467,-96.570386236853366 28.674003385176928,-96.559190266214102 28.687235002979271,-96.559699163211917 28.6913062775815,-96.561225893653244 28.696395346179383,-96.566823878972883 28.697922096344637,-96.575158129308363 28.702846874961025,-96.578019859474111 28.704537895383844,-96.57828826199534 28.705826226653553,-96.579938546079447 28.713747585140421,-96.580564403635009 28.716751699466613,-96.584126761515478 28.722858581784067,-96.584439828543964 28.722940967911413,-96.591359183115401 28.724761852179114,-96.593796021437342 28.725403125944972,-96.611342043876562 28.720366765465901,-96.616906294097589 28.718769618875786,-96.625254999999996 28.716373230030175,-96.632357663078409 28.714334501780041,-96.638120426114043 28.71268037463507,-96.643733366943522 28.711069252030907,-96.64589364157122 28.710449172933409,-96.648758110223909 28.709626963981723,-96.65548660082564 28.704200766225345,-96.664534272187169 28.696904262901135,-96.657918463285995 28.687743919701024,-96.642136214348383 28.67476740345478,-96.635017595423747 28.668914316579048,-96.634564255386636 28.662567599984854,-96.634358790297441 28.659691108644115,-96.634304719917793 28.658934128568227,-96.633999771842213 28.654664885057134,-96.627892869800831 28.650084693733149,-96.626425176648581 28.649921620227584,-96.623312698200763 28.64957579673532,-96.621378075676532 28.648286046719594,-96.615940371111847 28.64466090565978,-96.615679075580019 28.64448670841351,-96.614055987266909 28.642701311583636,-96.613585709918453 28.642184006591457,-96.613038272810982 28.641581825879328,-96.612716570908134 28.641227953848528,-96.611999586497333 28.640439271135588,-96.610589997120172 28.638888723093881,-96.610589997120172 28.638695619081329,-96.610589997120172 28.63634418879494,-96.61975034032028 28.62769274259265,-96.620390401117646 28.626519297452973,-96.620672695530928 28.626001757543317,-96.621575870071126 28.624345937066781,-96.622336527533278 28.62295139797671,-96.622803791340985 28.622094747411062,-96.621924089240224 28.619379144726071,-96.621515564809087 28.618118047314677,-96.621338841511317 28.617572510068054,-96.620571817957583 28.61520474122884,-96.620437729127232 28.614790814755992,-96.617253050911174 28.604959849584038,-96.615239196090883 28.598743166058551,-96.614649885719274 28.596923990196654,-96.613008078443599 28.591855801497097,-96.611528402529856 28.587288105363601,-96.611113505533794 28.586007336117376,-96.611098903979951 28.585962261746474,-96.608298572876635 28.583628658523324,-96.608045443097311 28.583417717585569,-96.607377235577218 28.583437664220053,-96.600365219155734 28.58364697962633,-96.593251058093557 28.583859344147964,-96.573948594733835 28.584435541167107,-96.565297148531556 28.582399903865994,-96.564279334811971 28.57629300182461,-96.563658896232639 28.575155527088082,-96.562968608029692 28.573889994257026,-96.561225893653244 28.570695006643017,-96.557566061723506 28.569051817003789,-96.543745727976315 28.562846769979732,-96.536289388489891 28.559499026141786,-96.535271536438941 28.559346348925885,-96.526111211846271 28.557972305562419,-96.524846286909124 28.55686549700842,-96.523547686998668 28.555729222873186,-96.522039937244045 28.554409942750958,-96.516783301381025 28.541093122164042,-96.514406314623301 28.535071417976255,-96.512075206364955 28.532603188828926,-96.505754868421008 28.525911074776143,-96.496773944100411 28.520225902118948,-96.493684489370622 28.518270192113103,-96.482894459981281 28.511439806078794,-96.464303363514816 28.49967112954555,-96.450283853050735 28.49079639296917,-96.41974938229167 28.46738661824714,-96.410828816467941 28.459457253614527,-96.410588999643707 28.459244083835621,-96.409758652296418 28.458206146634446,-96.408886828651134 28.457116363910039,-96.40506625078595 28.452340627696451,-96.402446489887097 28.449065917053971,-96.402758256176753 28.447714917044181,-96.403973200604497 28.442450108152798,-96.407195206365273 28.441281062045864,-96.417343901660857 28.437598792799108,-96.461479843413926 28.421584870195201,-96.476120924474287 28.411702150055138,-96.481836236149007 28.407844318412668,-96.504737094149291 28.397666161492985,-96.511137484289378 28.396220910815867,-96.520513236388609 28.394103803612502,-96.534249520963641 28.388796609353736,-96.542905217114992 28.385452367272176,-96.559699173073881 28.377818734789468,-96.57038624671533 28.368658381727396,-96.577905378446388 28.364719789411506,-96.5917603939982 28.357462401226169,-96.600411840200493 28.354408960067438,-96.650793747525029 28.34677533744669,-96.672676831253582 28.335579347083499,-96.688452973492915 28.347284234444516,-96.694559875534281 28.347284234444516,-96.698122233414779 28.342704062844462,-96.705246949175717 28.348810964885843,-96.700157860853906 28.369676195446971,-96.705755865897487 28.400210705653887,-96.710336037497541 28.406826524417021,-96.710425531143088 28.406841439843959,-96.711757514930511 28.407063434453107,-96.711949596522956 28.407095447664108,-96.71209813364915 28.407120203551969,-96.7125191933293 28.40719037931537,-96.712878460543081 28.407250256459115,-96.722549831718325 28.408862132132249,-96.749013067323034 28.408862132132249,-96.762244685125353 28.411915593014903,-96.76554491144303 28.411090543097366,-96.768351577304784 28.410388882297497,-96.775985199925543 28.405808690973519,-96.777118787058129 28.404067826336821,-96.778115367638478 28.402537364460464,-96.780337941159374 28.399124129135416,-96.780820705165937 28.398382742114745,-96.790234641309425 28.383925636830853,-96.794392274787313 28.366371177405831,-96.794814812909479 28.364587126849088,-96.794810066932399 28.364444747076842,-96.79477772408616 28.363474458555832,-96.794305906049686 28.349319871745632,-96.794064195689629 28.347593374049037,-96.792754716842737 28.338239980125699,-96.790743538307225 28.323874459722486,-96.791161640090152 28.319066463411133,-96.791737095961722 28.312448960638157,-96.791761391474679 28.312169572361466,-96.791798306096766 28.312130020933203,-96.806010803272656 28.29690232711997,-96.809573161153153 28.290286508356836,-96.806010803272656 28.282143978876302,-96.799480493673911 28.2729662335258,-96.799349781293685 28.272782529381054,-96.787181219874626 28.255680743271615,-96.787181219874626 28.250082757951983,-96.800412817953031 28.224128419345121,-96.810027933605966 28.21709297064087,-96.81015126416365 28.217002728792142,-96.823379937963566 28.207323213817581,-96.836184503007971 28.197954022244446,-96.84100213695676 28.194428925121734,-96.842143298799229 28.193593928862132,-96.847274602334139 28.190686192954498,-96.857267971405633 28.185023289193378,-96.872677809006134 28.176291056181483,-96.877474270970822 28.171878306563691,-96.886067200578026 28.1639728030657,-96.898123211167331 28.152881261735526,-96.906497631141988 28.149042991548708,-96.910337015250093 28.147283276415891,-96.926704620510804 28.131597659113019,-96.934764623415617 28.123873491831901,-96.962356663895278 28.123371819605953,-96.962754569737697 28.123364584972112,-96.979717515560068 28.129783000626698,-96.995398793779131 28.135716460690723,-97.000413785843605 28.137614026355994,-97.007520616950742 28.136091128354632,-97.007538501604586 28.136087295914667,-97.009222611239821 28.135094102666635,-97.00939982996681 28.134989589017771,-97.027385928308092 28.12438239869169,-97.028912648887456 28.117257682930727,-97.025203084589847 28.111384210119862,-97.023365428929196 28.108474590635566,-97.022805746846075 28.107588427939849,-97.02290356380766 28.107197159145706,-97.023379876854563 28.105291902342927,-97.02382356056566 28.10351716319958,-97.025496807419856 28.101530180660298,-97.031966099908146 28.09384788848477,-97.033883146887263 28.088918342142531,-97.035528457788629 28.084687545284659,-97.035528457788629 28.083043098067591,-97.035528457788629 28.081818766572983,-97.035528457788629 28.074000471643224,-97.033022532693735 28.061470870449408,-97.032801767679686 28.060367047518316,-97.031459273912688 28.053654591691117,-97.031457183186404 28.053644138079921,-97.025859197866765 28.041939250718904,-97.030948266464648 28.033287814378582,-97.03239348781301 28.032603236465789,-97.040617526386512 28.028707642778524,-97.041168915404441 28.028259640036232,-97.046718327422383 28.023750751173218,-97.048760075590963 28.022091833877354,-97.050263648357429 28.019142519014494,-97.059727497080047 28.000578821719444,-97.061991693393324 27.99613751499442,-97.06790259446116 27.99219690579767,-97.073772658186698 27.988283521554418,-97.075732208193486 27.986977152070377,-97.083740513918784 27.975854507337193,-97.090858162154831 27.965968886660271,-97.094600599978094 27.960771057335059,-97.101378519421061 27.951357282114685,-97.101544336287489 27.951126980954953,-97.101629253046639 27.951009041034034,-97.112670327945679 27.935674217691009,-97.118292397880069 27.927865788706086,-97.121533983365822 27.923363587495643,-97.122089895488358 27.923104160785101,-97.123659587861624 27.92237163470331,-97.129167576400675 27.91980122961516,-97.134800331352182 27.902469771509406,-97.13578341488774 27.899444915775788,-97.139044920333077 27.897526377912126,-97.141761509630356 27.895928379836029,-97.144434841366106 27.894355827453982,-97.155121915007527 27.880615312653809,-97.156735458496229 27.877916799393841,-97.171211094589736 27.85370753808861,-97.17159000749372 27.853073838716419,-97.18273536107327 27.834434189625789,-97.184638591770963 27.831251199324921,-97.187183135931861 27.824126483563962,-97.18941247112663 27.823657146727278,-97.196852395853725 27.822090836400886,-97.201135366472329 27.822090836400886,-97.208766105658313 27.822090836400886,-97.209575096934316 27.822090836400886,-97.21103842611052 27.822356897891609,-97.21191517248603 27.822516307306422,-97.214117494684729 27.822916731993345,-97.215541825234411 27.823175702780983,-97.217387510601711 27.823511284007832,-97.220771087297493 27.824126483563962,-97.222189700736266 27.82464074101355,-97.223091414240102 27.824967618564596,-97.225175600069406 27.825723150734085,-97.225442194074731 27.826156365185522,-97.225555528799433 27.826340533769983,-97.225696025109201 27.826568839847944,-97.22598639723725 27.82704069367685,-97.227317456819009 27.829203661466853,-97.227317456819009 27.832884543697009,-97.227317456819009 27.832951908184537,-97.22711696094737 27.834288541284948,-97.22651425924083 27.838306534493725,-97.227537582741903 27.841230302974814,-97.228388390382094 27.843661171179477,-97.233100025453197 27.847817700825228,-97.234045759551762 27.848652012430087,-97.234511621821596 27.849062988727319,-97.238500481248579 27.854279199579018,-97.239439164419366 27.855506710708827,-97.241127420860792 27.857714434929608,-97.24139627838295 27.858969111470945,-97.242350826195675 27.863423696705052,-97.242654131578206 27.86483913096664,-97.243132066142749 27.865496290124597,-97.244364366034702 27.867190700237273,-97.250796680782656 27.876035121329831,-97.263010484865433 27.88010639593206,-97.267085449659064 27.88068852838779,-97.272090543185925 27.881403535150675,-97.273697558506882 27.881633106649463,-97.276628649874411 27.881144591421538,-97.283916343274228 27.879929975854907,-97.291452123510041 27.878674012482271,-97.291709327200167 27.878631145200583,-97.295071705789752 27.87807074876898,-97.29826066531912 27.876989746639367,-97.302276298241679 27.875628516526195,-97.30641171632756 27.874226681314273,-97.315889353880934 27.871013926092836,-97.325097299274915 27.867892591849294,-97.326845878314657 27.866807265961079,-97.334190606350404 27.862248465187459,-97.346213303335873 27.854786094892546,-97.354613966176373 27.849571885725148,-97.359768343966266 27.850509060182219,-97.360211961357962 27.850589719168646,-97.360654441244435 27.850290746360063,-97.363614400263117 27.848290774636723,-97.376904444631478 27.839311017562139,-97.379041564479934 27.837867018088055,-97.379057154646048 27.837837708581311,-97.379081675001302 27.837791610322164,-97.37968928125764 27.836649310776913,-97.391764280353456 27.813948316782309,-97.391812130016405 27.812975373996721,-97.391812459346511 27.812968677620422,-97.39203202611381 27.808504155006624,-97.392068018906713 27.807772301822137,-97.392095751995882 27.807208395884746,-97.393123788240075 27.786304999999999,-97.393168763213623 27.785390509210199,-97.393291005863816 27.782904909577571,-97.393142269808052 27.782564941361908,-97.39298939956177 27.782215523565412,-97.390949955785928 27.777553936582201,-97.390465068726371 27.776445623015572,-97.390185233729682 27.775805999999999,-97.389524844304646 27.774296538065283,-97.38835420640342 27.771620793596586,-97.388306220610531 27.771511111755789,-97.388011229692253 27.770836846624743,-97.38704242749894 27.768622441036733,-97.386166290102864 27.766619840754537,-97.385225495384532 27.765302728148875,-97.378862356737287 27.756394334042721,-97.375764970087644 27.752057992733249,-97.373069654276961 27.748284550598278,-97.368354500700462 27.741683335591173,-97.365855345900911 27.739779218033028,-97.354970329043653 27.731485873530172,-97.352272255056832 27.729430198526604,-97.34997871774064 27.727682741876539,-97.347507961666906 27.725800261438444,-97.346980343555629 27.725398266768138,-97.343485766084669 27.723942192633796,-97.323096068004702 27.715446484002907,-97.316445853072636 27.712675560756566,-97.312489136070184 27.711663774861414,-97.307771479065892 27.710457406346261,-97.30518751069485 27.709796650788128,-97.285725857752936 27.704820043684109,-97.259850586867117 27.698203387982087,-97.253955150197811 27.696695845323848,-97.254014647303208 27.696526337654994,-97.255455364792269 27.692421723465429,-97.259957004258851 27.67959652118169,-97.261636792970123 27.679316557300702,-97.26241778482418 27.679186392412099,-97.266063906300232 27.678578707462119,-97.266172011465457 27.678349884642419,-97.272736281666539 27.664455499360063,-97.273042341106247 27.663807672923248,-97.273584380560237 27.662660354976065,-97.276535709391737 27.656413369610792,-97.277059923980644 27.655303780997631,-97.278846463786479 27.651522268106756,-97.280071982275985 27.648928251476995,-97.280889132874719 27.647198614380269,-97.282300269490932 27.644211705671331,-97.282869528026779 27.64300677394548,-97.287959956150573 27.632232024058997,-97.288756326795195 27.630546371240786,-97.290370933329072 27.627128784125372,-97.290610159422798 27.626622421740255,-97.291264204229464 27.625238025568656,-97.291996439564016 27.623688125953898,-97.292910903535031 27.621752508687905,-97.293983233844585 27.619482740684056,-97.29528946695001 27.616717877953022,-97.296598377059297 27.613947348891728,-97.297587499071795 27.609496333379006,-97.298634024222366 27.60478700569162,-97.29761621050281 27.598680093788271,-97.294053852622326 27.594099922188217,-97.294182769084571 27.593971005725969,-97.300049926927869 27.588103847882682,-97.302196382102863 27.585957392707677,-97.311120578488044 27.579146819865922,-97.321534901946578 27.571199044464009,-97.325080504595888 27.561034984604785,-97.336802147188081 27.527432946040641,-97.343417965951204 27.517763686118776,-97.347489240553443 27.503005347737066,-97.350542661988243 27.478577729709574,-97.359194108190536 27.458221396146271,-97.365809926953673 27.450587783387487,-97.371916828995055 27.425142361502377,-97.369881181831957 27.412419660421783,-97.372934622990698 27.401223670058592,-97.379550422029908 27.390027689557368,-97.399397858595393 27.344734850830708,-97.401942402756291 27.335574497768633,-97.404995863638931 27.329976512448997,-97.413138393119482 27.321325066246711,-97.42026310888042 27.317253791644482,-97.430441285524054 27.313691423902039,-97.450797599363412 27.313691423902039,-97.482858840011673 27.297915271800758,-97.508304242172855 27.275014394076553,-97.532222933616623 27.278576761818989,-97.544436737699399 27.284174747138625,-97.546981281860297 27.290790556039799,-97.536803105216677 27.289263825598471,-97.526624948296998 27.291808369759369,-97.524589320857856 27.297915271800758,-97.51746460509689 27.305039987561717,-97.504741884292372 27.305039987561717,-97.498126085253162 27.308602345442196,-97.502706237129289 27.322342870104325,-97.499143898972747 27.327940855423961,-97.483876634007316 27.33862793892736,-97.483876634007316 27.351350640007954,-97.486930094889971 27.358984272490666,-97.501688443133645 27.366617904973374,-97.514411144214236 27.361528796927644,-97.520518046255617 27.352877370449281,-97.538329835658018 27.335574478044709,-97.570899973304094 27.315727061203152,-97.584131581244463 27.309620159161771,-97.609068086407831 27.285192570720163,-97.621790807212349 27.287228188297352,-97.63146005727225 27.286210384439741,-97.63654914066305 27.282139109837512,-97.636657939024673 27.281797172172649,-97.640111498543547 27.270943129336285,-97.639093679892994 27.253131339933887,-97.635022415152719 27.247024437892502,-97.628915513111338 27.242953173152234,-97.597363199046811 27.242444266292445,-97.5826048606651 27.240408628991332,-97.573953414462821 27.238881903480983,-97.56123071338223 27.232775006370584,-97.542910007258072 27.229212648490105,-97.520009129533875 27.231248285791217,-97.509830972614182 27.235319550531486,-97.503215153851045 27.23989972213154,-97.500161712692318 27.244479898662579,-97.485148876501881 27.25084127385778,-97.467082638600573 27.253640266517596,-97.45843119239828 27.259492710198106,-97.450288657986775 27.262546171080761,-97.424079880742951 27.264072891660124,-97.422298701802717 27.257711541119829,-97.434766954384401 27.202240525749552,-97.444945121166043 27.144733882940127,-97.443672849085587 27.116235010034327,-97.452324285425917 27.115217201245734,-97.455886653168363 27.110382571284802,-97.456650008527049 27.09969549764336,-97.46173908698691 27.095624227972113,-97.475479621510999 27.098423220631929,-97.480568699970846 27.102494490303176,-97.491510231973166 27.101222218222723,-97.495835955074313 27.09409750739275,-97.4932914109134 27.078066891999608,-97.477515248950155 27.066107546277717,-97.479041969529504 27.06279964182713,-97.482256963728076 27.061942305056665,-97.48693005051112 27.057710553505324,-97.487693415731783 27.053639288765055,-97.486675602012198 27.034809685643079,-97.477515248950141 27.032519589981089,-97.473952881207694 27.029211690461484,-97.473443984209865 27.022850330059228,-97.478300083716704 27.000269498406993,-97.478533072531675 26.999186101907302,-97.480568690108868 26.997659376396957,-97.483967678435022 27.000330000000002,-97.484131057851314 27.000458369056773,-97.492988547644813 27.000330000000002,-97.49889841702128 27.000244349959733,-97.533497176854453 26.999742920066073,-97.536803065768822 26.999695008767091,-97.549271318350492 26.995878197456715,-97.555378215460905 26.990280207206101,-97.551052502221722 26.980865400714134,-97.549525776711377 26.965343697111763,-97.552324769371197 26.95211208177491,-97.555378205598956 26.947277449348487,-97.555378205598956 26.938880461507075,-97.540874325578116 26.906310323861007,-97.540110950495503 26.900966796902246,-97.547999041339082 26.895114353221743,-97.552324764440229 26.888498544320569,-97.552324764440229 26.875332999999998,-97.552324764440229 26.873831771434514,-97.552324764440229 26.871753101924,-97.552324764440229 26.867633303897481,-97.555396527456509 26.865969429990074,-97.558431656619632 26.864325399446898,-97.558453748966258 26.864224239771101,-97.559853702000524 26.857813929560987,-97.562641307980527 26.845049630589628,-97.563266286580571 26.842187886943357,-97.552579212939136 26.827938454188693,-97.547744582978211 26.824630549738107,-97.537566416196555 26.824885004400745,-97.509830908511418 26.8035108521869,-97.48438549155729 26.763561555211936,-97.478024141017002 26.757200199740662,-97.471662790476714 26.758726925251008,-97.468609339456009 26.740915130917632,-97.467337057513589 26.710126182073765,-97.444945096511148 26.633535472850511,-97.445708451869848 26.609362327976836,-97.441206258760758 26.5999011976768,-97.435205432977895 26.587290766879221,-97.432741093635642 26.582112082834445,-97.429217375703914 26.574707168454967,-97.428151110966368 26.572466467229631,-97.418145193925739 26.555638334425574,-97.416955130465126 26.553636864107652,-97.41864075483771 26.543121778291471,-97.42039414733226 26.532183948458435,-97.422284917775215 26.520389141863415,-97.422298667285844 26.520303371102887,-97.425861015304378 26.516741008291426,-97.430695645265303 26.506562841509776,-97.430695645265303 26.494603495787885,-97.42802638225659 26.488322868889494,-97.42636993202612 26.484425333937217,-97.429168909893022 26.478063961207511,-97.43553026043331 26.470175880225888,-97.441382709044788 26.466613522345408,-97.441382709044788 26.455417541844177,-97.43756589773443 26.449819546662585,-97.425861005442428 26.446002740283195,-97.421026375481503 26.446766095641895,-97.417209564171131 26.449819546662585,-97.411611568989528 26.447275002501684,-97.412883841069984 26.433025580841726,-97.421789740702152 26.417249413947498,-97.419499649971158 26.413178149207234,-97.406013578738921 26.409106884466965,-97.398125502688274 26.410888063407203,-97.394308686446919 26.414450416356704,-97.395072051667569 26.417249413947498,-97.382484933201752 26.411326066613285,-97.377769169124974 26.409106884466965,-97.369626639644437 26.394602999515151,-97.374461259743413 26.38086247238753,-97.388965149626202 26.365849678110436,-97.392018610508856 26.339386444971247,-97.391000786927322 26.332261729210284,-97.38794734576858 26.330480545339064,-97.376242448545611 26.336332993950553,-97.372171183805335 26.339895346900054,-97.36937219114553 26.348546788171358,-97.358176200782339 26.356434874083959,-97.343417852538664 26.35923386920927,-97.342332537534404 26.358759043566288,-97.335275323058127 26.355671510096041,-97.335020017473738 26.355402767481841,-97.331108052904881 26.351284911668415,-97.330440693097202 26.350582427937965,-97.333762617526986 26.340749518544904,-97.336802038706509 26.331752819885011,-97.343786761143846 26.325987658774913,-97.344677525679145 26.325252425399061,-97.352414066956698 26.31886671611711,-97.352832659030639 26.318521211944631,-97.354359379610003 26.313941040344577,-97.348998828460125 26.312092573442666,-97.347821984790102 26.311686765063648,-97.346980205488165 26.311396496183672,-97.34736083223585 26.297503848546928,-97.347437236753805 26.2947151295396,-97.347489122209922 26.292821341560611,-97.347051378510429 26.289694600417153,-97.344137846000223 26.268883651035111,-97.343926764329439 26.267375924606483,-97.342629246748771 26.266550231912309,-97.341127771669619 26.265594748131736,-97.335282658907644 26.265594748131736,-97.331967408745584 26.265594748131736,-97.330307576264516 26.266747410222209,-97.323817586106017 26.271254350355399,-97.322807065545476 26.271956101137519,-97.313207351206557 26.273518846137112,-97.312102101648151 26.273698770576502,-97.311865543405119 26.273737280077761,-97.307030913444194 26.253126493084562,-97.308048727163751 26.249055213551365,-97.321280340035131 26.236078054109896,-97.321280340035131 26.228698889850026,-97.304486359421333 26.202490107675235,-97.296598288301666 26.200708923804015,-97.294817109361432 26.192311940893585,-97.296089381441874 26.182388227541828,-97.303096384204423 26.167373221160254,-97.305986772892751 26.161179530923267,-97.306776455083323 26.159487354748606,-97.300965235160419 26.149753561518516,-97.296881711355638 26.142913659244432,-97.296598288301666 26.14243892563589,-97.285549237329036 26.12861437636975,-97.28536038956149 26.128378090441405,-97.284582435540926 26.126454238998875,-97.282094393487881 26.120301403270393,-97.282839179410786 26.118439442973433,-97.28311220967295 26.117756868971455,-97.285501587752023 26.116923364107649,-97.294053737977038 26.113940052730097,-97.295071554162092 26.108342057548505,-97.292023254217796 26.105090538920617,-97.291924538345086 26.104985242032239,-97.291541272704407 26.104576425513905,-97.287190793518263 26.099935916255493,-97.286650074642992 26.099359149688052,-97.286603231473521 26.09930918366079,-97.283195451762182 26.095674220102872,-97.282639002190891 26.095080674133143,-97.282108002623801 26.094514274823585,-97.280435495761154 26.092730268223651,-97.279905974795895 26.09216544608875,-97.27980430522237 26.092056998587434,-97.27089841052117 26.086459003405839,-97.267086875013263 26.085485845069449,-97.24859983335169 26.080765747704277,-97.246979719077387 26.080352101364454,-97.229515030031649 26.08000965739204,-97.220290685310772 26.079828788368793,-97.208048240752987 26.079588741074772,-97.205005053278043 26.078666562185607,-97.199651252911579 26.077044196913871,-97.199152512570265 26.073220535461079,-97.199134106850465 26.073079425477676,-97.198725011196004 26.069943037351702,-97.198302051934135 26.066700361972018,-97.196018989165054 26.049196947106083,-97.195939794821285 26.0485897927724,-97.195071061587612 26.04192952989985,-97.204994779870347 26.030224637607851,-97.214918488291119 26.030733549398622,-97.224842206573854 26.027425644948035,-97.226114478654296 26.024372193927345,-97.219244211392265 25.99612778184791,-97.216954125592238 25.993837693582392,-97.208557137750816 25.991802058746771,-97.195834416946283 25.993074335758202,-97.174460269663413 26.000071824804216,-97.167208324722026 26.007069313850227,-97.162755377371425 26.014575709756024,-97.16262814819099 26.023481604457221,-97.172042954682937 26.044728528107019,-97.178658763584124 26.045491893327686,-97.182730028324386 26.053125515948434,-97.164981847348457 26.063876207878327,-97.152009000000007 26.062107999999998,-97.152012551274964 26.062039393270581,-97.15321 26.038906,-97.151921999999999 26.017652999999999,-97.14747181118706 25.985075937251509,-97.145567 25.971132,-97.146880999999993 25.969781,-97.146293999999997 25.955606,-97.147784999999985 25.953132,-97.156608000000006 25.949021999999999,-97.160293999999993 25.950243,-97.168198638692317 25.959262149012673,-97.178362000000007 25.962114,-97.187583000000004 25.958174,-97.206945000000005 25.960899,-97.214339285966162 25.960186817526893,-97.227626420907342 25.958907063854085,-97.229225999999997 25.958753000000002,-97.239867000000004 25.954974,-97.244841570811701 25.950784663302475,-97.248032999999992 25.948097,-97.255343503388133 25.949129556975723,-97.276707000000002 25.952147,-97.28138899999999 25.948036999999996,-97.277163000000002 25.935438,-97.284201820237172 25.935775045516863,-97.290083634347766 25.936056689174489,-97.293963761326751 25.936242484429805,-97.303601999999998 25.936703999999999,-97.316138101068788 25.931602038234757,-97.320560999999984 25.929801999999999,-97.324914000000007 25.924040999999999,-97.332235861490744 25.923541683060932,-97.33463605770983 25.923378000829199,-97.338346 25.923124999999999,-97.339310160867683 25.923294280152341,-97.350397999999998 25.925241,-97.367642000000004 25.915679999999998,-97.369283543255307 25.913688286645449,-97.373641276386991 25.908400972256459,-97.374430000000004 25.907443999999998,-97.372365000000002 25.905015999999996,-97.365976000000003 25.902446999999999,-97.365883578347024 25.900015396466173,-97.365521 25.890476,-97.364300486696564 25.885628504434479,-97.362421560218849 25.878165998501085,-97.360082000000006 25.868874000000002,-97.364783621478566 25.852096838905283,-97.36542 25.849826,-97.372864000000007 25.840116999999996,-97.394513000000003 25.837377,-97.422635999999997 25.840377999999998,-97.42853949246836 25.842912007889609,-97.434188204901034 25.845336654308195,-97.441181027463472 25.848338244915578,-97.445113000000006 25.850026,-97.445601387363794 25.851485440010176,-97.447179184935308 25.856200346812667,-97.448271000000005 25.859463000000002,-97.449172000000004 25.871677999999996,-97.452166849899044 25.875807172885114,-97.453724626189043 25.87795496921364,-97.454727000000005 25.879337,-97.45488774919265 25.879394304385261,-97.462586893331732 25.882138919861518,-97.468261999999982 25.884162,-97.468599721544905 25.884059457735212,-97.481532785459223 25.880132596436578,-97.486059999999995 25.878758,-97.490359999998347 25.879275544671589,-97.494739403174762 25.879802646248233,-97.496860999999996 25.880057999999998,-97.519591990380178 25.88590026892226,-97.521761999999995 25.886458,-97.52344767329889 25.891064017588189,-97.524375103029939 25.893598172727145,-97.528116959024402 25.903822606212749,-97.528119935206945 25.903830738482007,-97.52812430798204 25.903842686870224,-97.528627999999998 25.905218999999999,-97.528849446448064 25.906732522417784,-97.530321999999998 25.916796999999999,-97.530415259581318 25.916820899843632,-97.539878370214808 25.919246032588486,-97.542957 25.920034999999999,-97.545169999999999 25.923974999999999,-97.545468770003851 25.926387609575503,-97.545470694802859 25.92640315259677,-97.546397824784293 25.933889856891241,-97.546420999999995 25.934076999999998,-97.546611329705271 25.934141994258589,-97.555160182125618 25.937061277530951,-97.555378999999988 25.937135999999999,-97.555477252221124 25.937015705749829,-97.559364000000002 25.932257,-97.582565000000002 25.937856999999997,-97.580418999999992 25.945115999999995,-97.583044 25.955442999999999,-97.598043000000004 25.957556,-97.5981230356591 25.957681442330628,-97.607733999999994 25.972745,-97.60783562843973 25.973457509771446,-97.607844088251909 25.973516820913719,-97.608283 25.976593999999999,-97.609461531117333 25.977846566488182,-97.613191727531174 25.981811093986448,-97.613466053312663 25.982102652924251,-97.616041456343709 25.984839842874308,-97.624938181905222 25.994295461083137,-97.627225999999993 25.996727,-97.634804000000003 25.999508999999996,-97.635072411453706 25.99971613545971,-97.639164724998494 26.00287420951236,-97.642117661027001 26.005153015998879,-97.644011365977178 26.006614404624422,-97.643848619841975 26.01214811069886,-97.643707610985203 26.016942704231127,-97.649175518723894 26.021499311673544,-97.65096419129361 26.02118629315062,-97.659123404318109 26.019758427116106,-97.661326460130226 26.019372891335045,-97.66298585459532 26.019511685247039,-97.668297999999993 26.019955999999997,-97.669519566971061 26.021667429940447,-97.671350987084779 26.024233271429612,-97.671567999996611 26.024226704244594,-97.691453959129774 26.023624920821636,-97.697068999999999 26.023454999999998,-97.703247203861338 26.030308742132775,-97.706066818770353 26.031284762516545,-97.709294717923569 26.032402112038366,-97.711145328137576 26.033042707775564,-97.719920000000002 26.030837999999999,-97.723585926686539 26.030959832537771,-97.729354247932832 26.031151535557555,-97.735180242251758 26.031345155270547,-97.758837769919694 26.032131383932391,-97.76309059882324 26.033650253079866,-97.763351431657455 26.034258862745556,-97.76491324062286 26.037903081983409,-97.769788888528993 26.041344719068825,-97.770077387482857 26.041548365582649,-97.776788595669075 26.042443189872706,-97.779190602367677 26.042763456191249,-97.784050976575529 26.040637041739476,-97.789822674626535 26.0424596835391,-97.792252861730461 26.04428232533872,-97.793102878401371 26.047342389307317,-97.793537334820812 26.048906434437896,-97.794638769549053 26.052871604582215,-97.795290594138677 26.055218176136449,-97.801344 26.060016999999998,-97.803973303988229 26.059548218630308,-97.8082126910423 26.058792373859696,-97.819424117916668 26.056793476786609,-97.820997703829306 26.056512920501468,-97.825546000000003 26.055702,-97.826721102251625 26.055271667399982,-97.830409376527257 26.053920989485444,-97.836607999999984 26.051650999999996,-97.848759348822554 26.052295281844582,-97.85186756815483 26.052460084066457,-97.859824237628374 26.052881958029587,-97.860225497621784 26.05290323340671,-97.860503999999992 26.052917999999998,-97.861874999990562 26.053580848914272,-97.869705222636284 26.057366592615971,-97.871187000000006 26.058082999999996,-97.876982999999996 26.064482999999999,-97.886529999999993 26.066338999999999,-97.901546631929207 26.060958662441269,-97.905109129229899 26.05968224852101,-97.913882 26.056539,-97.935419999999993 26.052687999999996,-97.944344999999984 26.059620999999996,-97.950095000000005 26.061827999999998,-97.96210735288345 26.054793018383155,-97.96735799999999 26.051718,-97.971403108419892 26.054550391225565,-97.978769 26.059707999999997,-97.979877702655912 26.062937323324391,-97.981335 26.067181999999995,-98.010970999999998 26.063862999999998,-98.015122209308288 26.064471399070538,-98.026123959861238 26.06608380989196,-98.028288992822496 26.066401115993269,-98.028758999999994 26.066469999999999,-98.029241090705753 26.065867136858621,-98.033102 26.061039,-98.034402999999998 26.051375,-98.034479464439173 26.051215303797409,-98.034525269179767 26.051119640464091,-98.039238999999981 26.041274999999995,-98.054365285842039 26.044575736209502,-98.070020999999997 26.047992,-98.070022345126233 26.049160242153427,-98.070025 26.051466,-98.071425788568789 26.055027814897404,-98.076094939927231 26.066900165398668,-98.076139697069991 26.067013970337847,-98.076205751241318 26.067181927684643,-98.076543999999998 26.068041999999998,-98.076994427275579 26.068371469710563,-98.080289992888041 26.070782045417982,-98.080494999999999 26.070931999999999,-98.080906883185932 26.070920010911959,-98.084755 26.070808,-98.085506402845155 26.069709056167966,-98.085848999999982 26.069208,-98.085628527723046 26.069048386721494,-98.081567000000007 26.066108,-98.081855064865067 26.063941606819231,-98.081884000000002 26.063724,-98.082307152201508 26.063513440869801,-98.091037999999998 26.059169,-98.093593108176947 26.058759459973995,-98.094431999999998 26.058624999999996,-98.095078111969258 26.058956205325877,-98.096949561841043 26.059915534659098,-98.097643000000005 26.060270999999997,-98.105504999999994 26.067537000000002,-98.122952624574893 26.063250384797335,-98.12786358062813 26.062043837809401,-98.128331000000003 26.061928999999999,-98.142925292417388 26.051941751725515,-98.14645163947533 26.049528582072455,-98.146621999999994 26.049412,-98.146852932570667 26.049588146033326,-98.149462999999997 26.051579,-98.149462999999997 26.055813,-98.151730999999998 26.058187,-98.158277994458601 26.062311711597108,-98.16142849281799 26.064296576133319,-98.161911645017582 26.064600969774318,-98.167608590156348 26.068190136655492,-98.172071527808072 26.071001859012309,-98.177897000000002 26.074672,-98.179863281323136 26.072661506851002,-98.189059999999998 26.063257999999998,-98.191534000000004 26.057117999999999,-98.197046 26.056152999999998,-98.200871000000006 26.059161,-98.203328791159265 26.063523594334541,-98.204415309491765 26.065452171017675,-98.20496 26.066419,-98.205720285634712 26.066905180236589,-98.2057544964389 26.066927057036718,-98.220672999999991 26.076467,-98.228363119990576 26.077028417928002,-98.230097 26.077155,-98.231072909449267 26.07694353295701,-98.240214327563166 26.074962705064888,-98.248806000000002 26.073101,-98.250234708208026 26.074229377516481,-98.260964088277859 26.082703320039151,-98.264514000000005 26.085506999999996,-98.272091468517374 26.0934369782697,-98.272527821536428 26.09389363077193,-98.277218000000005 26.098801999999999,-98.277020629370639 26.099144109090908,-98.272932087266241 26.106230915405163,-98.272897999999998 26.10629,-98.272099931737145 26.106512924095771,-98.270258188934392 26.107027377392626,-98.270033999999995 26.107089999999999,-98.269661374787887 26.108231250649609,-98.268046405073434 26.113177467856264,-98.266755660647689 26.117130670341034,-98.265753950746401 26.120198637935399,-98.265698 26.12037,-98.266046753689267 26.120369439652073,-98.268388964369507 26.120365676386069,-98.271048543344023 26.120361403199535,-98.2713587738927 26.120360904747326,-98.279433560913844 26.12034793086255,-98.289509742149562 26.120331741306838,-98.296194999999997 26.120321,-98.299522999999979 26.11749,-98.299575546893735 26.117376878214852,-98.299577897643644 26.117371817572689,-98.299619756950364 26.117281703787395,-98.301477861619162 26.113281617347607,-98.302978999999993 26.110049999999998,-98.307788398559808 26.112633359128559,-98.31093219000293 26.114322040617914,-98.314784784069062 26.116391454064445,-98.31781148535309 26.118017240801439,-98.323055746360907 26.120834185452331,-98.323827999999992 26.121248999999995,-98.324165904650499 26.121735183484471,-98.335204000000004 26.137616999999999,-98.337914801547555 26.149187638321976,-98.338210450252006 26.150449569219312,-98.338419999999999 26.151344000000002,-98.338123748811455 26.151776768193923,-98.337139471603692 26.153214615149455,-98.336278203634194 26.154472768358826,-98.335109254490916 26.156180386856505,-98.334230366689056 26.157464279382136,-98.333315999999996 26.158799999999999,-98.333279392301918 26.159609030127591,-98.333194378655719 26.161487831708563,-98.333156000000002 26.162336,-98.33332593363771 26.162525092143447,-98.336569396995017 26.166134227137082,-98.336837000000003 26.166432,-98.337709251548077 26.166391430160555,-98.345513373134324 26.166028447761192,-98.345781000000002 26.166015999999999,-98.345955918391979 26.165759937155421,-98.34781294946896 26.163041431373035,-98.354645000000005 26.15304,-98.380009845764519 26.156864235849298,-98.386243919298991 26.157804141722139,-98.386694000000006 26.157872,-98.386714843024777 26.157901012682096,-98.387178289965661 26.158546112849205,-98.389418830831929 26.161664858836595,-98.394322667090904 26.168490808715738,-98.402249554153599 26.179524728065878,-98.404432999999997 26.182563999999999,-98.41082579547016 26.183537375155975,-98.418120000000002 26.184647999999999,-98.44253599999999 26.199151,-98.444302622216625 26.201317032456906,-98.444376000000005 26.201407,-98.444366742625562 26.201566115583965,-98.444174812576264 26.204865005795593,-98.443681770155465 26.213339409994948,-98.45054565332704 26.219516919037407,-98.450975699346984 26.219903961344286,-98.465077324681431 26.222335272645303,-98.467962758220992 26.221802674698019,-98.47639547470331 26.220246150374404,-98.481645999999998 26.219277000000002,-98.483269000000007 26.216439,-98.496684404575589 26.212853148677059,-98.500574513964963 26.213825676024403,-98.503492081872309 26.214798198660183,-98.504399410834864 26.216045775617395,-98.509275818143593 26.222750833698164,-98.509327236533252 26.222821533963195,-98.516621175147847 26.223550930651591,-98.520846190978133 26.222726536052498,-98.524733007990875 26.221968131567948,-98.526589565145571 26.221605875956907,-98.528323413163747 26.222421776495104,-98.535240999999999 26.225677,-98.538016739096946 26.231331135295655,-98.538505426714039 26.231595841236214,-98.543851889046309 26.23449184328507,-98.556093449912439 26.231976454911809,-98.561600478976516 26.23084487397777,-98.564343479612191 26.231667774301364,-98.575891642961039 26.235132223865481,-98.57618836327309 26.235221239973473,-98.581780384919284 26.243001439905978,-98.583095590242166 26.247416774401941,-98.585184223567666 26.254428618568909,-98.588002268837087 26.255070784392117,-98.599153999999999 26.257611999999998,-98.610401443364651 26.253223367217647,-98.613465000000005 26.252027999999999,-98.617434734670965 26.252082931217494,-98.618976176235122 26.252104260920568,-98.625299999997523 26.252191766854153,-98.626653663614832 26.252210498179227,-98.633391522135483 26.243617562727948,-98.63418 26.242612,-98.636673745354344 26.241784277127035,-98.654221000000007 26.235959999999999,-98.669397000000004 26.236319999999996,-98.675206000000003 26.239989,-98.678410535728389 26.244637915883345,-98.679041999999995 26.245553999999998,-98.678977427258005 26.246060764449961,-98.677766000000005 26.255568,-98.679196310064967 26.258571609080832,-98.681167000000002 26.262709999999998,-98.687156000000002 26.26512,-98.698855915315121 26.265619481498664,-98.707451416076225 26.272152066874316,-98.710601999999994 26.279018,-98.709170532219119 26.284185773270103,-98.710647239525585 26.288123668959596,-98.711233447604599 26.289686894290245,-98.722550749196131 26.295571625529284,-98.729196000000002 26.299026999999999,-98.73263614407044 26.29899082409209,-98.734613221934339 26.298970033513189,-98.745271658069271 26.303095890935232,-98.745297595683382 26.304159357241051,-98.745599830797417 26.316551278053844,-98.745615470637418 26.317192526042046,-98.748245116157776 26.32061106368975,-98.74905366960931 26.321662182706675,-98.754840366886953 26.324877004144408,-98.755242435754027 26.32510037501579,-98.766685638772316 26.325769085950686,-98.779858354339893 26.326538865087553,-98.779911999999996 26.326541999999996,-98.779946859358333 26.326559704051515,-98.789821999999987 26.331575,-98.796251999999996 26.349104,-98.797592059971961 26.356670995104565,-98.798210999999995 26.360166,-98.807348000000005 26.369420999999999,-98.808280016253249 26.369491024329768,-98.813413043374013 26.369876679389535,-98.81818280466733 26.370235041528161,-98.81932575812273 26.370320914010964,-98.824571000000006 26.370715,-98.828353477559162 26.367368473620303,-98.832909 26.363337999999999,-98.838554497099707 26.360957856802237,-98.842229804437778 26.359408346173527,-98.844057000000006 26.358637999999999,-98.847707 26.359594999999999,-98.853132332741467 26.364754198689674,-98.853414999999998 26.365023,-98.853852117327648 26.365076242531281,-98.854321671505204 26.365133435992636,-98.861354000000006 26.365989999999996,-98.861661690067152 26.365902494757481,-98.869113443480302 26.363783259984523,-98.874117355796216 26.362360176799562,-98.876164212939671 26.361778062685843,-98.882912762903771 26.359858814831277,-98.890964919192157 26.357568829017531,-98.895015448091129 26.359360408468842,-98.900432100164338 26.361756234493352,-98.900829697862818 26.361932094951143,-98.905559653818443 26.364024190108832,-98.91296803413384 26.372226331500926,-98.915344992389564 26.37485796579432,-98.921277034399395 26.381425588572444,-98.922831447878195 26.38166472803821,-98.923508557916591 26.381768898347495,-98.924925720775448 26.381986922427696,-98.926689551972586 26.38116380140492,-98.934437533628781 26.377548077521784,-98.937555770591459 26.376092900630621,-98.942046463189357 26.375531566775365,-98.950185820407469 26.380302920861933,-98.952073083609605 26.383491745197549,-98.952938578460817 26.384954133189183,-98.953327659277917 26.385611545667039,-98.958325183064531 26.394055638388448,-98.960041959595969 26.394835991082342,-98.96758721887106 26.398265653180793,-98.981979903868819 26.396488780147621,-98.98323657723455 26.396333635432413,-98.985344372930967 26.396073413984297,-98.99032130527651 26.395458978465552,-99.008003378826189 26.395458978465552,-99.014739404125635 26.398826987036053,-99.018845438188137 26.404005475794783,-99.021934999999999 26.407902,-99.025336792347318 26.409271761295809,-99.030462148109507 26.411335530401477,-99.031104888479149 26.411594335405351,-99.032315999999994 26.412082000000002,-99.033086386506682 26.412180127570064,-99.037216923343138 26.412706252494743,-99.039107 26.412946999999999,-99.039645291109963 26.412681959983438,-99.045466000000005 26.409815999999999,-99.053184999999999 26.402006,-99.062093000000004 26.397371,-99.082001999999989 26.396509999999996,-99.085125999999988 26.398782,-99.089412999999979 26.408099999999997,-99.092044248326658 26.410330707587079,-99.0977332288968 26.415153685331873,-99.099649490160544 26.416778244479925,-99.110855 26.426278,-99.113807999999992 26.434002,-99.110485406379198 26.436329519428725,-99.103082999999998 26.441514999999999,-99.097481906444941 26.458865277747179,-99.094712087984234 26.467445230774196,-99.091634999999997 26.476977000000002,-99.105030999999997 26.500335,-99.114051328117867 26.510193091438737,-99.123438026388797 26.520451579672599,-99.126618350727256 26.523927276756307,-99.127319211298612 26.524693229780183,-99.127781999999996 26.525199,-99.128040494672888 26.525242991472329,-99.131554903978838 26.52584108518932,-99.136510932879688 26.526684518463242,-99.143658999999985 26.527901,-99.157083944984777 26.532657279516766,-99.166741999999985 26.536078999999997,-99.170704 26.540316,-99.171403999999995 26.549848,-99.167459686682065 26.559874693319248,-99.167410000000004 26.560001,-99.168618869529794 26.566870928153797,-99.16946034016965 26.571652951934592,-99.178064000000006 26.620546999999998,-99.200522000000007 26.656442999999999,-99.209947999999997 26.693937999999999,-99.208906999999982 26.724761,-99.240022999999979 26.745850999999998,-99.242444000000006 26.788262,-99.243132825912184 26.78921716914337,-99.262208 26.815667999999999,-99.268613000000002 26.843212999999999,-99.274832961326339 26.850997131057774,-99.280470999999991 26.858053000000002,-99.295146000000003 26.86544,-99.316753000000006 26.865831,-99.328801222539823 26.879647723469141,-99.328900000000004 26.879760999999998,-99.328852280051947 26.879943529980665,-99.328653604395157 26.88070346927794,-99.326247644284351 26.88990632616278,-99.321819000000005 26.906846000000002,-99.324684000000005 26.915973,-99.337297000000007 26.922758999999999,-99.361143999999996 26.928920999999999,-99.367053999999996 26.929033999999998,-99.379148999999998 26.934489999999997,-99.388253000000006 26.944216999999998,-99.393748000000002 26.960730000000002,-99.390189000000007 26.966348,-99.377312000000003 26.973818999999999,-99.376593 26.977716999999998,-99.378434999999996 26.980034,-99.385448615007036 26.981891053234623,-99.387366999999998 26.982399,-99.403694000000002 26.997355999999996,-99.407320999999996 27.005808999999999,-99.415475999999998 27.017239999999997,-99.420446999999996 27.016567999999999,-99.429379999999981 27.010833000000002,-99.432154999999995 27.010698999999995,-99.438721 27.01463,-99.445682828533535 27.022104842939122,-99.446523999999997 27.023008,-99.446589518313687 27.0234513503828,-99.446929167151652 27.025749691622671,-99.446969999999979 27.026026000000002,-99.446787747918748 27.026353589968604,-99.444062000000002 27.031253,-99.443973 27.036457999999996,-99.447729715193731 27.048260380671568,-99.452315999999996 27.062668999999996,-99.450282 27.067705,-99.439210578806851 27.075275465844946,-99.434470000000005 27.078517000000002,-99.429209 27.090981999999997,-99.430274999999995 27.094871999999999,-99.437646 27.100442,-99.442122999999995 27.106839,-99.441108999999997 27.110041999999996,-99.433369999999982 27.119218,-99.430581000000004 27.126611999999998,-99.431354999999996 27.13758,-99.438264999999987 27.144791999999995,-99.439971 27.151071999999996,-99.437950999999998 27.154121,-99.42998399999999 27.159148999999999,-99.426616441133064 27.174998569551711,-99.42634799999999 27.176261999999998,-99.426389092127664 27.176475083747437,-99.428025433058153 27.184960350328335,-99.432794999999999 27.209693,-99.441928000000004 27.217984999999995,-99.442101400955139 27.218265584747954,-99.445237999999989 27.223341,-99.443121431464945 27.230753685991843,-99.441406999999998 27.236757999999998,-99.441548999999995 27.249919999999999,-99.452207395848959 27.263806782859465,-99.452390999999992 27.264046,-99.452635348600225 27.264144272092288,-99.454218033886534 27.264780796280988,-99.462735864984637 27.268206496624611,-99.463308999999981 27.268436999999995,-99.463731957038988 27.268231398925973,-99.480688 27.259988999999997,-99.487909999999999 27.260721,-99.492407 27.264118,-99.496069429210138 27.270723950024919,-99.496615000000006 27.271707999999997,-99.496412995851571 27.272119287725655,-99.490870463706145 27.283404082904614,-99.487572835142558 27.290118173493504,-99.487513000000007 27.29024,-99.487552182270463 27.290674424182523,-99.487937000000002 27.294941,-99.493651777311726 27.30231355132117,-99.494603999999995 27.303542,-99.494999311050705 27.30367917804087,-99.501697839297435 27.306003653868146,-99.502036000000004 27.306121,-99.50260564894451 27.305998370990778,-99.511531000000005 27.304076999999999,-99.522353224815092 27.304131436852781,-99.523657999999983 27.304137999999995,-99.527521386758664 27.305370598210363,-99.529216737576675 27.305911493159478,-99.529653999999994 27.306051,-99.533911450776046 27.310119063512179,-99.536090758332008 27.312201427353024,-99.536443000000006 27.312538,-99.537771000000006 27.316072999999996,-99.53137599999998 27.323809,-99.52136037329538 27.324774325824137,-99.521259999999998 27.324784,-99.520793197388144 27.325167862222077,-99.515101491997058 27.329848278790703,-99.509737777509301 27.334258981108004,-99.504836999999995 27.338289,-99.507830999999996 27.348637,-99.507785758525344 27.353517859091919,-99.507778999999999 27.354247,-99.505884699626023 27.358359262089539,-99.503847413823948 27.362781925614613,-99.502763417847504 27.36513512979511,-99.502013099315448 27.366763966750881,-99.499076000000002 27.373139999999999,-99.492143999999996 27.380516999999998,-99.488110785984318 27.408328989964531,-99.487887470616073 27.409868914391197,-99.487633320470721 27.411621467383494,-99.487521 27.412396,-99.487591555014376 27.412624523015491,-99.489856740583164 27.419961308946796,-99.495313182879073 27.437634363915539,-99.495699000000002 27.438884000000002,-99.495681276107845 27.439260342274874,-99.495103999999998 27.451518,-99.489866073767956 27.458841813736395,-99.48498035355378 27.465673163249864,-99.484933241276849 27.465739036942171,-99.483818999999997 27.467296999999995,-99.483170086267094 27.470026063960816,-99.480813109028745 27.479938539705284,-99.480418999999998 27.481595999999996,-99.480219000000005 27.485795999999997,-99.483519 27.491095999999999,-99.494943552274876 27.498766770813134,-99.497518999999997 27.500495999999998,-99.501722168778215 27.500229993495459,-99.502529258718056 27.500178915086504,-99.513319999999993 27.499496,-99.516119999999361 27.498282666666942,-99.519319999999979 27.496896,-99.525819999999982 27.496696,-99.528319999999994 27.498895999999998,-99.525855930815595 27.516294999999385,-99.525849791073696 27.516338353233991,-99.525316190784537 27.520106149807926,-99.523876376642917 27.530272798702207,-99.522431296340699 27.540476632400054,-99.521918999999997 27.544094,-99.518818999999993 27.553194,-99.514319 27.556994,-99.511118999999994 27.564493999999996,-99.512219000000002 27.568093999999995,-99.515978000000004 27.572130999999999,-99.51621006287597 27.572263354504685,-99.516956092136581 27.572688844074506,-99.522907946893667 27.576083418863931,-99.530137999999994 27.580207,-99.536560517954015 27.595669560441458,-99.539721999999998 27.603280999999999,-99.549741780062789 27.610632655019803,-99.554405160028892 27.614054243170667,-99.554950000000005 27.614453999999999,-99.555217670042637 27.614437037021997,-99.556811999999994 27.614335999999998,-99.559466999999998 27.609075999999998,-99.562869000000006 27.607264,-99.580005999999997 27.602250999999995,-99.584175941853502 27.603675176957196,-99.584843000000006 27.603902999999999,-99.584876722760043 27.604178863233781,-99.585148000000004 27.606397999999999,-99.578360965974085 27.610254799100861,-99.578159999999983 27.610368999999999,-99.578158133228257 27.610639131051315,-99.578098999999995 27.619195999999999,-99.584782000000004 27.622006999999996,-99.591372000000007 27.627464,-99.592626330929548 27.632690692534315,-99.594037999999998 27.638573,-99.596231000000003 27.639857999999997,-99.603532999999999 27.641991999999998,-99.612907806834755 27.638651258855042,-99.615318942915422 27.637792043123689,-99.624515000000002 27.634515,-99.625321999999997 27.631136999999999,-99.638929000000005 27.626757999999999,-99.654323999999988 27.629615999999999,-99.665948 27.635967999999998,-99.665422000000007 27.640274999999999,-99.660175716081199 27.644678795569117,-99.659499999999994 27.645246,-99.659300532255756 27.646059100049566,-99.658294999999995 27.650158,-99.661845 27.655753,-99.668942 27.659973999999998,-99.672015651285406 27.660163655087903,-99.685812999999982 27.661014999999999,-99.699355999999995 27.655417,-99.704600999999997 27.654953999999996,-99.711511000000002 27.658365,-99.721518999999986 27.666154999999996,-99.723715999999996 27.673328,-99.727277746539684 27.678262316066267,-99.732288643517421 27.685204233237535,-99.732448000000005 27.685424999999999,-99.732610774853441 27.685596448480599,-99.757538999999994 27.711853,-99.758533999999997 27.717071,-99.770740000000004 27.732133999999999,-99.774900999999986 27.73354,-99.785365999999996 27.730354999999999,-99.788844999999981 27.730718,-99.796341999999981 27.735586,-99.801651000000007 27.741771,-99.805670000000006 27.758687999999999,-99.813085999999998 27.773952,-99.817390803736785 27.775433523363962,-99.819091999999998 27.776019000000002,-99.822192999999999 27.766855,-99.825793000000004 27.764373999999997,-99.835127 27.762881,-99.841707999999997 27.766463999999999,-99.843346625073153 27.773142384459568,-99.844736999999981 27.778808999999999,-99.849281022020321 27.790032142335203,-99.850876999999997 27.793973999999999,-99.857944055165163 27.794214491272228,-99.870065999999994 27.794626999999998,-99.877441689362087 27.799278597548025,-99.877677000000006 27.799427,-99.877679299916537 27.799779028327777,-99.877693551047656 27.801960325692491,-99.877840000000006 27.824375999999997,-99.876677795668783 27.832975173255242,-99.876002999999997 27.837968,-99.877201999999997 27.842179000000002,-99.882014999999996 27.850391999999996,-99.89364999999998 27.856193,-99.901486000000006 27.864162,-99.904385000000005 27.875283999999997,-99.901231999999993 27.884405999999995,-99.894091000000003 27.892949999999999,-99.893456 27.899208000000002,-99.895827999999995 27.904177999999998,-99.900080000000003 27.912141999999999,-99.905861237749605 27.914081496997749,-99.917461000000003 27.917973,-99.925935042520848 27.927688375003317,-99.93714199999998 27.940536999999999,-99.938541 27.954059,-99.932160999999979 27.96771,-99.931811999999994 27.980967,-99.962768999999994 27.983536,-99.984922999999995 27.990729000000002,-99.991446999999994 27.99456,-99.998749958954292 28.00705628754028,-100.000278657311796 28.009672084008166,-100.008630999999994 28.023963999999999,-100.012838999999985 28.037203000000002,-100.014975394500183 28.048814882934586,-100.016570970484992 28.057487270710915,-100.017914000000005 28.064786999999999,-100.028724999999994 28.073118,-100.046108000000004 28.079067999999999,-100.053122999999985 28.08473,-100.056983000000002 28.094207,-100.05559599999998 28.101140999999998,-100.056492999999989 28.104185999999995,-100.064147158981442 28.110644603904401,-100.067651999999995 28.113602,-100.075474 28.124881999999999,-100.083393 28.144034999999999,-100.090288999999984 28.148312999999998,-100.119627999999992 28.155588000000002,-100.12658652988236 28.159659080291213,-100.141098 28.168149,-100.159890345070792 28.168159605160877,-100.160589999999999 28.16816,-100.1644540887186 28.169825181963088,-100.168437999999995 28.171541999999999,-100.173949604741296 28.178834844700365,-100.174413 28.179448,-100.17569869464343 28.180169771489844,-100.185693999999998 28.185780999999999,-100.195825662217615 28.189941498404405,-100.196499000000003 28.190218000000002,-100.19841872968675 28.190245400986015,-100.202449991411854 28.190302940621361,-100.208059000000006 28.190382999999997,-100.21208061434919 28.196473071951928,-100.212104999999994 28.196509999999996,-100.212111438897693 28.196576571978802,-100.212136678181992 28.196837521783539,-100.213449999999995 28.210415999999999,-100.217564999999993 28.226934,-100.220284000000007 28.232209999999995,-100.22363 28.235223999999995,-100.227575000000002 28.235856999999999,-100.246200000000002 28.234092,-100.251633999999996 28.236177,-100.261135590980771 28.244561246718906,-100.267604000000006 28.250268999999999,-100.280518 28.267969,-100.289383999999998 28.273491,-100.293468000000004 28.278475,-100.294296000000003 28.284381,-100.287553999999986 28.301093000000002,-100.286470999999992 28.312295999999996,-100.288638999999989 28.316977999999995,-100.314198000000005 28.345859,-100.317245999999997 28.357382,-100.320392999999996 28.362116999999998,-100.341869000000003 28.384952999999996,-100.344399999999979 28.389662,-100.34934096344108 28.4019924953441,-100.349585999999988 28.402603999999997,-100.349394820211828 28.402858691740477,-100.345766407828719 28.407692501181913,-100.343945000000005 28.410119000000002,-100.337058999999996 28.427150999999995,-100.336185999999998 28.430180999999997,-100.337474638078888 28.440402915586755,-100.337648113426326 28.441778981052359,-100.337796999999995 28.442959999999999,-100.338752462381066 28.444650728533539,-100.341532999999998 28.449570999999995,-100.350785999999999 28.459246,-100.353875644654778 28.461269551534915,-100.357498000000007 28.463642,-100.35795880406117 28.464220845064407,-100.358193534884933 28.464515705266944,-100.367961112704847 28.47678537623738,-100.368288000000007 28.477195999999999,-100.368051363629903 28.477598261305609,-100.365982000000002 28.481116,-100.356642877924983 28.482149981508559,-100.352234999999979 28.482638,-100.344180999999992 28.486249,-100.337140000000005 28.491728999999999,-100.33381399999999 28.499251999999998,-100.338517999999993 28.501833,-100.362147999999991 28.508399,-100.379079000000004 28.511638999999999,-100.388859999999994 28.515747999999995,-100.405057999999983 28.535779999999999,-100.411413999999994 28.551898999999999,-100.40430324537553 28.563833042228197,-100.397270000000006 28.575637,-100.396799999999999 28.580400999999998,-100.398385000000005 28.584883999999999,-100.403243426032972 28.586668145075244,-100.425819035320046 28.594958517689108,-100.429856 28.596440999999995,-100.431892715674053 28.597943579291371,-100.447320000000005 28.609324999999998,-100.448648000000006 28.616773999999999,-100.447280739633683 28.625703494601449,-100.445528999999993 28.637143999999996,-100.44560646842767 28.637394606891831,-100.447014715516048 28.641950223113035,-100.447091 28.642196999999999,-100.447325484276334 28.642184618041064,-100.447599559425257 28.642170145483281,-100.456522261830528 28.641698981546444,-100.462866000000005 28.641363999999999,-100.474494000000007 28.647071,-100.479445543783555 28.654922981332383,-100.479495071011698 28.655001519842354,-100.479635999999999 28.655225000000002,-100.481416494659797 28.655591917738484,-100.492493911747701 28.657874710783531,-100.493322226012125 28.658045406716248,-100.495863 28.658568999999996,-100.496129521434568 28.658770241190073,-100.500353999999987 28.661960000000004,-100.502122125123847 28.667202406240314,-100.505211969634487 28.676363647108229,-100.509438609439442 28.688895431533517,-100.510054999999994 28.690722999999995,-100.510127443340068 28.69126843161186,-100.510538898440004 28.694366309458967,-100.51077198772829 28.696121257064849,-100.511998000000006 28.705352,-100.511351260759739 28.706743032691019,-100.510646631791559 28.708258576930099,-100.509872363628347 28.709923903942272,-100.509406561254394 28.710925770365975,-100.508636802312012 28.712581398765199,-100.507069450532313 28.715952521820881,-100.506701000000007 28.716745000000003,-100.506745928327234 28.717920131927187,-100.506786973330165 28.718993692782757,-100.507152057645129 28.728542729239727,-100.507513721430456 28.738002299344281,-100.507590113222051 28.740000380261673,-100.507613000000006 28.740599,-100.507694735304739 28.740708529390524,-100.51442566685138 28.749728313832868,-100.519226000000003 28.756160999999999,-100.533017 28.763279999999998,-100.537772000000004 28.780775999999996,-100.534846642084489 28.786410367511117,-100.532431000000003 28.791062999999998,-100.535830000000004 28.805887999999999,-100.546431879116881 28.824270186264151,-100.546968759195195 28.825201061771438,-100.547323999999989 28.825817,-100.548186025546428 28.826178082695296,-100.553129999999982 28.828249,-100.561442999999997 28.829174000000002,-100.570509999999999 28.826317,-100.574698999999995 28.828786999999998,-100.576846000000003 28.836168000000004,-100.572991999999999 28.848463999999996,-100.580501999999996 28.856007999999999,-100.591040000000007 28.863054000000002,-100.598061272695219 28.874286065303028,-100.598877000000002 28.875590999999996,-100.602654 28.887660000000004,-100.602394435759351 28.893839359355621,-100.602053999999995 28.901944,-100.615584686670886 28.902906942475386,-100.627205999999987 28.903734,-100.631611000000007 28.902838999999997,-100.633502414453218 28.905240591668694,-100.640568000000002 28.914211999999999,-100.639169999999979 28.916288999999999,-100.638857000000002 28.927621999999996,-100.651511999999997 28.943431999999998,-100.64789859018552 28.954344193790252,-100.646992999999995 28.957078999999997,-100.646600907687997 28.967547400926616,-100.64647463428885 28.970918751315974,-100.645893999999998 28.986421,-100.647406325643686 28.99295674936236,-100.647835962928511 28.994813493392339,-100.648681241069511 28.998466493719445,-100.65094599999999 29.008254000000004,-100.653757999999996 29.015356,-100.656109999999998 29.017223999999999,-100.660207999999997 29.031497000000002,-100.663212 29.048041999999995,-100.662508000000003 29.058106999999996,-100.664064999999994 29.073205999999999,-100.666359117032755 29.07896154562156,-100.668483863047285 29.084292168447689,-100.674655999999999 29.099777000000003,-100.684472 29.110657,-100.692326999999992 29.115227999999995,-100.70996599999998 29.119684000000003,-100.727461999999989 29.129122999999996,-100.737795000000006 29.139078999999999,-100.739115999999996 29.141658,-100.737590999999995 29.147406999999998,-100.739681000000004 29.150486000000004,-100.746139999999997 29.154149000000004,-100.752330696165359 29.155516457617566,-100.759726 29.157149999999998,-100.76337082361762 29.160348915845475,-100.772648999999987 29.168492,-100.775904999999995 29.173344,-100.772154104961558 29.17809434863841,-100.766030999999998 29.185848999999997,-100.767059000000003 29.195287,-100.768348510582513 29.197581465531123,-100.775064591152173 29.209531592641572,-100.785521000000003 29.228136999999997,-100.791371999999996 29.225944999999999,-100.795681000000002 29.227729999999998,-100.79704599999998 29.235585999999998,-100.795234211471239 29.241421249558652,-100.795010188783237 29.242142762180318,-100.794911999999997 29.242459,-100.795310930062826 29.24310735172228,-100.797670999999994 29.246943000000002,-100.805332448258866 29.251327106905226,-100.815767091023289 29.257298117587734,-100.823532999999998 29.261742000000002,-100.834039999999987 29.261399999999998,-100.839016 29.263259,-100.841581161127962 29.265429071012271,-100.848663999999999 29.271420999999997,-100.856469000000004 29.275663999999999,-100.864659000000003 29.276076,-100.874739696506666 29.279181633366278,-100.876048999999995 29.279585,-100.876625364221198 29.280115401513385,-100.878513170701353 29.281852663087207,-100.878882999999988 29.282193000000003,-100.879105716359817 29.283377353454046,-100.880504361011205 29.290815018226784,-100.882051999999987 29.299044999999996,-100.886842 29.307848,-100.895590728097048 29.309871687341737,-100.904835000000006 29.31201,-100.906461302333199 29.313095095005444,-100.914770068080642 29.318638836799305,-100.916744062319239 29.319955917421627,-100.92203960930695 29.323489191321695,-100.922232587658954 29.323617949573855,-100.924041970395777 29.324825198761538,-100.926468967605715 29.326444530233299,-100.926628772437255 29.326551154580446,-100.926677999999981 29.326584,-100.92692137104487 29.32669794102517,-100.927819078352698 29.327118228044156,-100.92782883100196 29.32712279402223,-100.930446231588661 29.328348203997709,-100.940614999999994 29.333109,-100.941560773525751 29.336361493535293,-100.943196 29.341985,-100.945807189162338 29.344363370184055,-100.948971999999998 29.347245999999998,-100.95603875001359 29.347290187325033,-100.964324999999988 29.347342,-100.971743000000004 29.351370999999997,-100.972915999999998 29.354545000000005,-100.995606999999993 29.363403000000005,-101.004206999999994 29.364771999999999,-101.010614000000004 29.368669,-101.010768998319776 29.36895846820963,-101.014103165002794 29.375185214807839,-101.024016000000003 29.393697999999997,-101.036603999999997 29.406107999999996,-101.038600000000002 29.410713999999999,-101.037642000000005 29.414681000000002,-101.043363999999997 29.42988,-101.056956999999983 29.440773,-101.06011415724447 29.458454662113137,-101.060150999999991 29.458660999999999,-101.063843258270609 29.460131584976065,-101.087148999999997 29.469414,-101.103699000000006 29.470549999999999,-101.115253999999993 29.468458999999996,-101.130037999999985 29.47842,-101.137502999999995 29.473541999999998,-101.144336999999993 29.473246,-101.151876999999999 29.477004999999998,-101.163854997623304 29.493316894569897,-101.168923969306405 29.50021992913986,-101.171662999999995 29.503950000000003,-101.173821000000004 29.514566000000002,-101.192719999999994 29.520285,-101.227418999999998 29.522349999999996,-101.235274999999987 29.524854,-101.254895000000005 29.520341999999996,-101.260836999999981 29.529933,-101.261174999999994 29.536777,-101.252755240314642 29.553001111955531,-101.244355179006547 29.569187266927752,-101.24384013276574 29.574337712700849,-101.242022713082847 29.59251185083151,-101.251352546644355 29.604174135250076,-101.252152766968493 29.604494220898598,-101.259127443101093 29.607284069726152,-101.265347312053251 29.607284069726152,-101.274677145614746 29.602619152945408,-101.277624046978673 29.599940160672645,-101.283229510623855 29.594844301688571,-101.297224215766221 29.587069435365102,-101.30733154801338 29.587846934050759,-101.312894947857018 29.594028488101586,-101.314328915651188 29.595621785307589,-101.313192213312618 29.602947206633093,-101.31110792457288 29.616379301091623,-101.30733154801338 29.640715970810437,-101.311218981175116 29.64849082206727,-101.316661381574889 29.655488204771718,-101.325213716450733 29.657820655628775,-101.350093282659174 29.654710721152696,-101.353062961800887 29.655502634567405,-101.361755552011104 29.657820655628775,-101.364595571422868 29.66106639883844,-101.367197952410862 29.664040554714198,-101.371300910394638 29.676075888592084,-101.372874548462477 29.680691889931673,-101.378860251896057 29.698249939417508,-101.396947999999995 29.713947,-101.398362000000006 29.717000000000002,-101.396293999999997 29.727055,-101.397008999999997 29.733962999999999,-101.400635999999992 29.738078999999999,-101.410024000000007 29.741498,-101.415583999999996 29.746534,-101.415509877418046 29.750619769974676,-101.415402087456428 29.756561346443686,-101.424731921017937 29.758116313681725,-101.430388403484372 29.756500180308258,-101.441059122217254 29.75345141196761,-101.446501522617027 29.755006409338922,-101.451652003139955 29.758440048234313,-101.453498905321467 29.759671311053037,-101.455223999999987 29.771874,-101.467493655663716 29.779885945414083,-101.475268506920557 29.780663444099741,-101.503223000000006 29.764581999999997,-101.522695143280473 29.759671311053037,-101.526552276219391 29.761451532447605,-101.532802460460985 29.764336242900427,-101.53746737724174 29.782995910023434,-101.53804719015173 29.783865628452077,-101.546797210803248 29.796990645299058,-101.56156944476453 29.794658179375361,-101.572592853930203 29.778735448896484,-101.575564187573463 29.774443514881042,-101.582561562744587 29.771333610538232,-101.598573641854728 29.773657690388074,-101.603680999999995 29.774398999999999,-101.607256216824311 29.773863608191139,-101.625957999999997 29.771063000000002,-101.630319 29.768729,-101.632632680380155 29.763891873249722,-101.63512799999998 29.758675,-101.646417999999997 29.754303999999998,-101.652400999999983 29.758794999999996,-101.65328091488901 29.761368862201802,-101.654578 29.765162999999998,-101.662452999999985 29.77128,-101.689992000000004 29.771212999999996,-101.706636000000003 29.762736999999998,-101.714223999999987 29.767659999999999,-101.735201999999987 29.771591999999998,-101.754322999999999 29.777661999999999,-101.760919284561496 29.782457957985276,-101.763273999999981 29.784169999999996,-101.776796131253491 29.789191504347542,-101.777161000000007 29.789327,-101.777360180704861 29.789301830227139,-101.785668 29.788251999999996,-101.791002820423358 29.783037559970925,-101.796869557069002 29.782618516634159,-101.806507764952315 29.786389987871868,-101.809441149516488 29.790161459109573,-101.813855730843954 29.79253854440006,-101.814888826583982 29.793094827432377,-101.818909248247508 29.792167038125061,-101.830044431332681 29.789597381341238,-101.831231874027822 29.789323356194672,-101.852603555202364 29.801894932400803,-101.862241763085706 29.800218726571018,-101.866487373818487 29.79821962567333,-101.875399999999985 29.794022999999999,-101.878152615094365 29.794637055896249,-101.892739000000006 29.797891,-101.912406000000004 29.797849999999997,-101.917556726002999 29.792675767854249,-101.917942403066036 29.792482929945557,-101.922585359733716 29.790161459109573,-101.929709258872364 29.789323356194672,-101.932572380438657 29.791613852338052,-101.938090312383324 29.796028195755184,-101.946471365894325 29.797704401584976,-101.952535620779244 29.796990962273608,-101.953595265032959 29.796866298670082,-101.959462001678588 29.799380623656123,-101.965427194081556 29.806464275410743,-101.966166845299441 29.8073426094683,-101.970357372054934 29.81027599403247,-101.974547898810414 29.81027599403247,-101.982165144097308 29.804870201524977,-101.987538526473998 29.801056829485908,-101.993568005272067 29.802652866652032,-102.001318622543394 29.804704498914084,-102.001786318660763 29.804828300723614,-102.021918999999997 29.802490999999996,-102.032489182844799 29.803756293694118,-102.034758999999994 29.804027999999999,-102.039012999999997 29.802655,-102.041088000000002 29.799609999999998,-102.038411999999994 29.792831999999997,-102.039226999999997 29.790977000000002,-102.041308736499772 29.78984019520162,-102.048982832584102 29.785649487466547,-102.050044 29.785069999999997,-102.053123037129694 29.785312127485501,-102.073645999999982 29.786926,-102.076299925656656 29.790865308882584,-102.077348 29.792421,-102.084438999999989 29.794962000000002,-102.091420021879856 29.792967151942147,-102.091815999999994 29.792853999999995,-102.098789196918744 29.792718427915432,-102.115682000000007 29.792389999999997,-102.142325999999997 29.802854,-102.159600999999995 29.814355999999997,-102.161673999999991 29.819486999999999,-102.181894 29.846033999999996,-102.182859740836193 29.846584944255238,-102.18326563789924 29.846816503951921,-102.184058205433814 29.847268654791659,-102.186149999999998 29.848461999999998,-102.187393471220204 29.848699156882201,-102.188384798592551 29.848888224473839,-102.188671999999997 29.848942999999998,-102.189026115519184 29.848805138880103,-102.189342793483831 29.848681852617602,-102.205381000000003 29.842438,-102.216284162639099 29.842976962035557,-102.227553 29.843533999999995,-102.261388999999994 29.853283,-102.264041000000006 29.855964,-102.261776999999995 29.864001999999999,-102.264954000000003 29.867805999999998,-102.268816999999984 29.867990999999996,-102.276754999999994 29.862977999999998,-102.281249000000003 29.863116999999999,-102.297330999999986 29.875194,-102.301381000000006 29.877673999999995,-102.315388999999996 29.879919999999998,-102.320618999999994 29.878979999999995,-102.320667125014978 29.878900015386019,-102.320698585434869 29.878847727619664,-102.324634000000003 29.872306999999996,-102.333383999999995 29.868046,-102.341032999999996 29.869305000000004,-102.349861000000004 29.862316999999997,-102.361383773688715 29.849029038788231,-102.364542 29.845386999999995,-102.363642671554629 29.839963091609825,-102.362514000000004 29.833155999999995,-102.369522000000003 29.820395,-102.377253999999994 29.800163,-102.377312999999987 29.789971,-102.385270832882995 29.770348713937391,-102.386677616883858 29.766879890389689,-102.391739211722737 29.765814289574276,-102.392906191083 29.765568609270456,-102.402175111261812 29.766775086101941,-102.412062000000006 29.768061999999997,-102.433301 29.776608,-102.460890018677347 29.77909171043791,-102.468946430597143 29.779816991558327,-102.469957868267898 29.780012383523857,-102.481595292961757 29.782260529257879,-102.490330613701886 29.783948039559665,-102.492674483475767 29.783853017496881,-102.508312776666344 29.783219030534834,-102.508509848222559 29.783087649355906,-102.512686811979108 29.780303003853621,-102.512942156326147 29.774953626291172,-102.513380999999995 29.76576,-102.526400256170959 29.758693706517125,-102.535832205630967 29.753574449155192,-102.539417050278132 29.751628749336795,-102.545492105079163 29.750899740311965,-102.551081152293932 29.752357753652575,-102.556670813570321 29.757783010503054,-102.559343229460382 29.760376824671383,-102.565661280990938 29.761591836573395,-102.572255912443325 29.757095496286663,-102.57574472309652 29.754716761401177,-102.57635337725236 29.754301769870359,-102.585948674897452 29.751239442391949,-102.587774480184081 29.750656738873374,-102.597160000000002 29.751608,-102.612879000000007 29.748181999999996,-102.622534000000002 29.736632,-102.630150999999984 29.734314999999999,-102.64566499999998 29.733910000000002,-102.661251958261417 29.736122779697027,-102.66726872436665 29.739732837494621,-102.670971460158171 29.741954477821469,-102.677191937153026 29.738261067251376,-102.678467215476147 29.736427653943998,-102.6852530581628 29.72667193704833,-102.688163999999986 29.722486999999997,-102.690237999999979 29.707481999999999,-102.695507594622001 29.699754690880447,-102.698346999999984 29.695590999999997,-102.699316999999994 29.685029,-102.693466 29.676507,-102.697798916570122 29.672550546488289,-102.711337549653422 29.6601882100483,-102.724231000000003 29.648415000000004,-102.736947999999984 29.641537999999997,-102.742030999999997 29.632142000000002,-102.74048425929719 29.62775763619268,-102.738427999999999 29.621928999999998,-102.739991000000003 29.599041,-102.746201999999997 29.592875000000003,-102.757065999999995 29.597798999999998,-102.761810999999994 29.598396999999999,-102.768340999999992 29.594733999999999,-102.766929734823805 29.591197739636346,-102.762241000000003 29.579448999999997,-102.766124000000005 29.572347999999998,-102.768792219428661 29.572598581791439,-102.773961 29.573084,-102.776343296957975 29.562015327831393,-102.777530999999996 29.556497,-102.77572499999998 29.552188999999995,-102.771428999999998 29.548545999999998,-102.79216136048494 29.533953841063816,-102.807296321997939 29.523301326891541,-102.808565712504773 29.522407885546979,-102.808691999999979 29.522319000000003,-102.808681334358837 29.522097795383676,-102.808577631171161 29.519946998869006,-102.807327 29.494009000000002,-102.813953999999995 29.482805999999997,-102.814096473430837 29.482483316434472,-102.814383778328263 29.481832608662831,-102.822314986984821 29.463869465126457,-102.82537225240516 29.456945161410285,-102.827007089548758 29.453242470491304,-102.830969999999979 29.444267,-102.832538999999997 29.433109000000002,-102.830570753051859 29.427471931628293,-102.827354999999983 29.418261999999995,-102.825211066354328 29.40389180477127,-102.824564449740322 29.399557712155943,-102.831802092379931 29.389471209449322,-102.832669213065941 29.388262775214326,-102.84047188579207 29.377388836904565,-102.840778422425643 29.376961642203423,-102.841560439245441 29.370344567434586,-102.842457529677418 29.362753791491347,-102.843015380341285 29.358033509958585,-102.843020777220957 29.357987843989019,-102.861629999999991 29.351638999999995,-102.871857000000006 29.352092999999996,-102.876866000000007 29.354058999999996,-102.879534000000007 29.353326999999997,-102.883721999999992 29.348058999999999,-102.881857488401977 29.34363024944906,-102.879805000000005 29.338754999999999,-102.890489000000002 29.309498999999995,-102.88922161316745 29.299205074185686,-102.888328 29.291947,-102.891022000000007 29.287113000000002,-102.902604999999994 29.279440999999998,-102.90311226801488 29.27677066200776,-102.906295999999998 29.260010999999995,-102.903188999999983 29.254028999999999,-102.887901999999997 29.245611999999998,-102.881135 29.246022,-102.871347 29.241624999999999,-102.870795537867835 29.239589944231255,-102.86823682221636 29.230147538772215,-102.866845999999995 29.225014999999999,-102.878020000000006 29.214697999999999,-102.890063999999995 29.208813999999997,-102.899231 29.208863,-102.908656596973657 29.219194069767902,-102.908787000000004 29.219336999999996,-102.909098471667448 29.219296482603067,-102.910575587951939 29.219104333804097,-102.912131000000002 29.218902,-102.912650757516516 29.218481184275788,-102.915803535402844 29.215928573746115,-102.915865999999994 29.215877999999996,-102.915845750043147 29.215583596781208,-102.915608148145267 29.212129230727648,-102.915554 29.211341999999998,-102.915202931298523 29.21076702044931,-102.914525807203304 29.209658028088604,-102.912447999999998 29.206254999999999,-102.91453363655873 29.20019781620671,-102.917367531146525 29.191967513425833,-102.917805 29.190697,-102.922897000000006 29.192704085059273,-102.925481999999988 29.193722999999995,-102.932612000000006 29.194113000000005,-102.944911000000005 29.188819999999996,-102.947155999999993 29.180776999999999,-102.95089 29.176834999999997,-102.953474999999997 29.176307999999995,-102.977266 29.186226,-102.981742305424802 29.185103060319207,-102.989431999999994 29.183174,-102.98978258837333 29.182935350109393,-102.991725524817895 29.181612768970929,-102.994653 29.17962,-102.994906329461855 29.17910907354543,-102.99809599999999 29.172675999999996,-102.995688 29.161218999999999,-103.00243399999998 29.150260999999997,-103.0050672680876 29.149386797638936,-103.008362000000005 29.148292999999995,-103.010324999999995 29.137821999999996,-103.015028 29.125769999999996,-103.016945338084582 29.124525732477775,-103.024896087692937 29.119366048020158,-103.032982999999987 29.114118,-103.033302941039096 29.107355634443419,-103.034095953658579 29.105913798143234,-103.035682683422891 29.103028844591982,-103.04044215980575 29.099351067768175,-103.049126083320303 29.097714968852063,-103.055369601981923 29.096538655622457,-103.061557539334615 29.093936906572154,-103.06671291432167 29.091769303506382,-103.074407490743866 29.088534080562461,-103.076354546596249 29.085721668416742,-103.076667707631657 29.079576983004682,-103.076847 29.076059,-103.091926967746744 29.064237268591206,-103.100265999999991 29.057699999999997,-103.101359249603803 29.049403674773888,-103.102531654124817 29.040506667933872,-103.100975335951205 29.030701853789079,-103.100368259199087 29.026877266486249,-103.101607999999999 29.018122999999999,-103.107810999999998 29.013812,-103.117237999999986 29.000208999999998,-103.113922000000002 28.988546999999997,-103.115062910480361 28.985887850893185,-103.115327999999991 28.98527,-103.115773294260094 28.985147329619764,-103.126748000000006 28.982123999999995,-103.134930999999995 28.983525,-103.143274000000005 28.978073999999999,-103.156645999999995 28.972830999999999,-103.163865 28.972099,-103.165923000000006 28.974001999999999,-103.166234999999986 28.978836000000005,-103.174329720990258 28.980505274886987,-103.182663652045193 28.982223879127538,-103.194928465619142 28.984753100989199,-103.195705106971403 28.984913258196226,-103.207825367468075 28.987412670652219,-103.227338454203803 28.991436614861634,-103.227579101883322 28.991486240676846,-103.227800999999999 28.991532000000003,-103.228011662384262 28.991347921912006,-103.228737472224623 28.990713704806197,-103.239108999999985 28.981650999999996,-103.245121150470112 28.980239630911282,-103.2474464632202 28.980649978816817,-103.249155161185584 28.980951512720708,-103.25190330878641 28.984768118238364,-103.253285000000005 28.986686999999996,-103.26030800838916 28.989731411362609,-103.266003072061508 28.990206003834011,-103.270357000000004 28.988113999999996,-103.270725571428585 28.987466542857135,-103.27232562100086 28.984655789108508,-103.273357000000004 28.982844,-103.273647076585334 28.982817854078331,-103.281189929980513 28.982137982403092,-103.282424051550748 28.983865752282551,-103.284749352823042 28.987121173462914,-103.285935817906974 28.994002716014545,-103.289257951411443 28.999697788883793,-103.296614077237592 29.004443676810233,-103.302399476821606 29.006455988366771,-103.312987409437454 29.010138745081029,-103.315449022736544 29.011725838031147,-103.323993942362023 29.017235063099889,-103.331021803791103 29.021766184756,-103.332920159881368 29.026986669752301,-103.332783823258595 29.028827200289001,-103.332445567409962 29.033393619832523,-103.334818511373186 29.039800579109659,-103.341462759988346 29.041224342728523,-103.347869719265475 29.037427630547988,-103.350815999999995 29.028566999999999,-103.355428000000003 29.021529,-103.355590463621823 29.021464336016578,-103.361777791205157 29.019001647792766,-103.361998 29.018913999999999,-103.382125000000002 29.024248999999998,-103.386095607142025 29.025822707722725,-103.399799910010643 29.031254261761571,-103.402689272115182 29.032399429564627,-103.427474921518822 29.04222295692054,-103.427754276336316 29.042333676218103,-103.430481680804888 29.047455485683194,-103.434668000000002 29.055316999999995,-103.439550459717495 29.058547821156772,-103.449722032594721 29.065278554178825,-103.453029264571228 29.067467015663059,-103.457386392383299 29.068596640465525,-103.460381908910477 29.067681344107211,-103.463195887793432 29.066821517562918,-103.469166763983068 29.069242141692889,-103.471264639062966 29.073115142802621,-103.471299587628792 29.074897490538035,-103.471426016715213 29.08134526859719,-103.474814887995407 29.086670637304994,-103.484429000000006 29.094524,-103.49531945696836 29.1087608679228,-103.500928937954981 29.116094025764934,-103.503236 29.119109999999996,-103.506163032831353 29.119368513261239,-103.513192088151087 29.119989313955617,-103.524613000000002 29.120998,-103.524225442342612 29.124905426308125,-103.523383999999993 29.133389,-103.525026999999994 29.137353999999998,-103.539240927934515 29.144791265038371,-103.551909954693073 29.151420179312847,-103.558678999999984 29.154961999999998,-103.579462000000007 29.149964999999998,-103.592359999999999 29.150259999999999,-103.598960126757959 29.155019048637598,-103.606437999999997 29.160411,-103.607894091053709 29.162314354517299,-103.610539999999986 29.165772999999998,-103.624537921955991 29.163185608071569,-103.629433693714475 29.1622806680118,-103.638195234739996 29.160661174732635,-103.645634999999999 29.159286000000002,-103.653180000000006 29.162863999999995,-103.656807999999984 29.169098999999999,-103.660202999999996 29.170933999999999,-103.667724667668963 29.172878689431396,-103.669696386484915 29.173388467437,-103.688670000000002 29.178293999999998,-103.688830238367032 29.178273608722382,-103.690116124218548 29.178109972160996,-103.697314000000006 29.177194,-103.699305464408098 29.178139630948273,-103.713769999999997 29.185008,-103.724743000000004 29.191469999999999,-103.73193762439729 29.198544108660482,-103.742175000000003 29.20861,-103.750912464183997 29.219357091602017,-103.755265634411842 29.22471149629115,-103.75594348727293 29.225545256136954,-103.768569999999997 29.227360999999995,-103.777623396259372 29.232265264832392,-103.780085146052983 29.242351446713872,-103.780352362214714 29.243446273985068,-103.781659908552058 29.248803500057083,-103.789034484601103 29.257501704713096,-103.792700821322356 29.259284649416337,-103.795120675584712 29.260461427946989,-103.80876361213285 29.267096007175422,-103.816641821688407 29.27092719156084,-103.818617217853202 29.271599921312173,-103.838302999999982 29.278303999999999,-103.854966933859771 29.281484400071786,-103.856892999999999 29.281852,-103.880606 29.284961999999997,-103.896615144488038 29.284634799403065,-103.910231251371073 29.284356508561018,-103.916269383748329 29.284233099060927,-103.91710599999999 29.284215999999997,-103.91776286712728 29.284516760669142,-103.918698764585329 29.284945281345607,-103.918909999999997 29.285042,-103.918905327188597 29.285488562070029,-103.918900778480648 29.285923264066316,-103.918857000000003 29.290106999999995,-103.924975999999987 29.293913000000003,-103.943697999999983 29.294945999999996,-103.965795999999983 29.298586999999998,-103.975234999999998 29.296016999999999,-103.983459597310627 29.299165977024781,-103.998789342279238 29.305035323921498,-104.012357062242771 29.310230038851625,-104.018558084893087 29.312604243583909,-104.038281999999995 29.320155999999997,-104.047006656168747 29.325575022319434,-104.055595999999994 29.330909999999996,-104.056467149578211 29.334496091467582,-104.057243999999997 29.337694000000003,-104.068917843404819 29.342306667996301,-104.075923999999986 29.345075,-104.082149999999999 29.345922999999996,-104.091021999999995 29.353691999999995,-104.093326000000005 29.359926000000002,-104.098377999999983 29.366755999999999,-104.106466999999981 29.373127,-104.122882935723638 29.379859019095424,-104.125474999999994 29.380922000000002,-104.132831527553293 29.381873417846823,-104.136236243923818 29.382313748953422,-104.143691999999987 29.383277999999997,-104.1467332019064 29.385415391432094,-104.148888696362661 29.386930297552944,-104.151718842950046 29.388919356896473,-104.157422367906094 29.392927859373117,-104.166562999999996 29.399352,-104.180069999999986 29.412763999999999,-104.181273000000004 29.426265,-104.182051945448123 29.427144615030393,-104.195989999999995 29.442884000000003,-104.208194000000006 29.448201,-104.212529153241931 29.452438774515159,-104.213947876032222 29.456222068892099,-104.21370324326665 29.462011765001886,-104.213238514637069 29.473010445135856,-104.218538498245692 29.476600759818915,-104.220568643482977 29.477976020723915,-104.227547514371139 29.480496161448666,-104.229081071868791 29.481049944541308,-104.233824999999996 29.486544999999996,-104.233486999999997 29.492733999999995,-104.235847000000007 29.496744,-104.238313284768751 29.498023301020304,-104.246870092866089 29.50246185307569,-104.254473621536903 29.506405923975272,-104.260293266516271 29.50942466611497,-104.26168489846043 29.511073814728768,-104.264155000000002 29.514001,-104.271046277211582 29.51559593462645,-104.274575430964404 29.516412730896519,-104.293481117436073 29.520788310787555,-104.306646311930564 29.523835296697214,-104.308812834933008 29.524336722260216,-104.311570786550874 29.52540915148019,-104.318073989469781 29.527937921306467,-104.320711000000003 29.526326414398167,-104.326090351466348 29.523039031981277,-104.327483437129615 29.522187701603762,-104.334811000000002 29.519462999999998,-104.338113000000007 29.519967,-104.353150868059984 29.530471948300562,-104.369085650105362 29.541603450512167,-104.37074044290263 29.542759433043344,-104.371174999999994 29.543062999999997,-104.371454921502831 29.543072731712495,-104.371996954766473 29.543091575966443,-104.375901661123379 29.543227326450971,-104.381040999999996 29.543405999999997,-104.394588999999982 29.556087000000002,-104.394583075653415 29.556197720561212,-104.394577025204526 29.556310797858156,-104.394552364240909 29.55677168847231,-104.394503136758885 29.55769170460702,-104.394351 29.560534999999998,-104.39571704642303 29.563607040276512,-104.39636925661604 29.56507376640522,-104.397848504811165 29.56840038104859,-104.399550133070164 29.572227096202102,-104.399591 29.572319,-104.399981791506633 29.572551361916329,-104.452301000000006 29.60366,-104.466520000000003 29.609296,-104.483502 29.627740999999997,-104.486693164979016 29.629712817604439,-104.493658999999994 29.634016999999997,-104.503232654335022 29.63787621670291,-104.507568060311556 29.63962385355849,-104.51068846437596 29.64315687341222,-104.513969549435132 29.646871821353749,-104.51818442992635 29.651644041921735,-104.53325150001281 29.668703453669117,-104.535568725458901 29.671327089370656,-104.539761023554547 29.676073741438437,-104.540155514025756 29.678572204873163,-104.540559188867974 29.681128836544634,-104.537934834631798 29.684482179324355,-104.535770155740693 29.687248158943191,-104.536302269386866 29.690440851131939,-104.537991394981006 29.693268523024599,-104.544269904764263 29.703779029587054,-104.545505621253113 29.70584767433138,-104.552240999999995 29.717122999999997,-104.555600999999996 29.731220999999998,-104.554914970831931 29.738152096413199,-104.554660236582549 29.740725729903364,-104.557361904757329 29.745049367744027,-104.565950999999998 29.758794999999996,-104.565687999999994 29.770461999999998,-104.571279565966023 29.778773775962186,-104.586447318468245 29.801320404476364,-104.592472 29.810276000000002,-104.594023000000007 29.809220999999997,-104.599148999999997 29.811007,-104.610166000000007 29.819117999999996,-104.610205623651026 29.819231101342197,-104.610356932717465 29.819662996386217,-104.613081011852316 29.827438579869643,-104.615248982559379 29.833626813172685,-104.619039 29.844444999999997,-104.624350000000007 29.845221999999996,-104.629290740007292 29.852171499068138,-104.629713747950376 29.852766489555783,-104.630103000000005 29.853313999999997,-104.630111961493199 29.853664893019587,-104.630290851730521 29.860669455113747,-104.630338938536084 29.862552324858758,-104.630359999999996 29.863376999999996,-104.630588419131911 29.86393398222631,-104.633274999999998 29.870484999999999,-104.63616345635748 29.872800876528242,-104.645854762904364 29.880571071602066,-104.65678299999999 29.889332999999997,-104.658422170930251 29.891285606400047,-104.65864999999998 29.891556999999999,-104.658665881124946 29.891956296855856,-104.659041999999999 29.901413000000002,-104.661965712024596 29.903547518850328,-104.666224133352003 29.906656470935726,-104.672326999999996 29.911111999999996,-104.679772 29.924658999999998,-104.680850906343153 29.932111041680564,-104.684321999999995 29.956085999999999,-104.679660999999982 29.975271999999997,-104.680379178583593 29.977083,-104.685479 29.989943,-104.689640999999995 30.014949999999999,-104.693591999999995 30.019077000000003,-104.701242868742796 30.021046973658397,-104.702310999999995 30.021321999999998,-104.702447580064685 30.021555813412469,-104.7030116881661 30.022521518330599,-104.703997999999999 30.02421,-104.703882705803636 30.024660825787098,-104.703121214098445 30.027638426639932,-104.701101999999992 30.035533999999998,-104.706873999999999 30.050685,-104.706630611705322 30.051708605996314,-104.703831250551389 30.063481739403372,-104.703581999999997 30.06453,-104.699792220462342 30.065066336345112,-104.698848962238912 30.065199827927678,-104.698233000000002 30.065286999999998,-104.697787990647399 30.065651654776563,-104.69277799999999 30.069756999999996,-104.687313590037505 30.080921966773531,-104.685080632167896 30.08548438075637,-104.685002999999995 30.085643,-104.685554782105299 30.093963293324606,-104.685687 30.095957000000002,-104.686861171517634 30.098036494960315,-104.692093999999983 30.107303999999996,-104.693655813605488 30.119154117533654,-104.695366000000007 30.13213,-104.692122999999995 30.138662999999998,-104.690080458880587 30.149079251722458,-104.687506999999997 30.162202999999998,-104.687296000000003 30.179464000000003,-104.702787999999998 30.211735999999995,-104.707897632633845 30.218501061672534,-104.711235999999985 30.222920999999999,-104.713166 30.237956999999998,-104.722357186598074 30.248308653999679,-104.724410584274111 30.250621311025988,-104.72532436157617 30.251650460675243,-104.73347160041142 30.260826359409911,-104.733822000000004 30.261220999999999,-104.734059376092361 30.261231667834558,-104.737359999999995 30.261379999999996,-104.740448 30.259454000000002,-104.749663999999996 30.26126,-104.751566999999994 30.263643999999999,-104.754655151309422 30.272796681105522,-104.757893999999993 30.282395999999999,-104.761634 30.301147999999998,-104.779356000000007 30.313188,-104.790279572675416 30.323632238875831,-104.797291 30.330335999999999,-104.809794338457337 30.334925849121163,-104.810755485390246 30.338091979227556,-104.81211787963197 30.342579864771171,-104.813478341684558 30.347061385458392,-104.814379749150064 30.356375955470707,-104.814778573671205 30.360497153782266,-104.817595751374526 30.365914799658352,-104.824313633436745 30.370465624210016,-104.837492999999995 30.373909,-104.849824017938076 30.383147747051474,-104.859521 30.390413000000002,-104.857439999999997 30.408957,-104.852419999999995 30.418792,-104.861074000000002 30.428896999999996,-104.86474141169117 30.441297336779865,-104.865463293164552 30.443738179024677,-104.868454614768496 30.453852504447951,-104.869872 30.458644999999997,-104.86871099999999 30.463229999999996,-104.866118999999983 30.46479,-104.866094000000004 30.467379999999999,-104.870137228360662 30.483875070981508,-104.873288503237063 30.496731258693877,-104.873335488188886 30.496922942181985,-104.876786999999979 30.511004000000003,-104.878566789651714 30.514416830422793,-104.880108146577356 30.517372454871531,-104.88208573587417 30.521164575423189,-104.889375999999999 30.535143999999995,-104.890392881954469 30.540947215529823,-104.892228000000003 30.551419999999997,-104.895440150997459 30.560421421221292,-104.899000999999998 30.570399999999996,-104.909330873116318 30.584188648619556,-104.909747767935556 30.584745133303247,-104.918689620637082 30.596681007395873,-104.924796 30.604831999999998,-104.927016167130404 30.604700501077968,-104.934922481779466 30.604232215677584,-104.939873000000006 30.603939,-104.953391370086464 30.606003357240429,-104.967167000000003 30.608106999999997,-104.971627504383378 30.61006529240159,-104.972071 30.61026,-104.972794851616513 30.611297344530712,-104.980135850742045 30.621817657146149,-104.980290999999994 30.622039999999995,-104.982191641583043 30.62882153037463,-104.983981 30.635206,-104.985513855292751 30.652294791670293,-104.9863 30.661059000000002,-105.001239999999996 30.672583000000003,-105.002056999999994 30.680971999999997,-105.006614566555172 30.685839873047019,-105.006800999999996 30.686039,-105.007528432885024 30.6859080282745,-105.007959930235828 30.685830338698263,-105.020141999999993 30.683637,-105.035888798004834 30.686138071331488,-105.042930223005172 30.687256464175281,-105.044973600167665 30.685364445024991,-105.049769587265445 30.680923708581364,-105.049884734287517 30.6808170907847,-105.050688284649809 30.681171184306308,-105.054688384336032 30.682933873306403,-105.062333999999993 30.686302999999995,-105.062477471553692 30.692159292631892,-105.062625999999995 30.698222,-105.084504902225902 30.710918832086001,-105.098281999999998 30.718914000000002,-105.108075999999997 30.730049999999995,-105.110705999999993 30.737749999999995,-105.110681999999983 30.743366000000002,-105.113815999999986 30.746001,-105.119547104826722 30.748125675649064,-105.123265000000004 30.749504000000005,-105.140207000000004 30.752502,-105.152361999999982 30.751451999999997,-105.157640215066564 30.754007791997694,-105.16015278062757 30.757058756266805,-105.160271207191187 30.758203550015399,-105.161229588477383 30.767467931854636,-105.164076390339474 30.771453450048199,-105.164818961888187 30.77249304906519,-105.164868027003308 30.772491740665838,-105.170370203038615 30.772345016388588,-105.178279098267282 30.772134113115257,-105.183436 30.776644999999995,-105.185930999999997 30.784391999999997,-105.195143999999999 30.792138,-105.195988495740664 30.791702299374609,-105.203522176185984 30.787815448176353,-105.206160999999994 30.786453999999996,-105.212916518294108 30.785414778041517,-105.215967484302155 30.786491589369188,-105.216685356202021 30.789542555377231,-105.215888956387687 30.792967070566242,-105.214890669496626 30.797259699168034,-105.218659510882389 30.801566944478708,-105.222008841883465 30.801829013843189,-105.231580057313238 30.802577916338681,-105.238364256021057 30.803108747911697,-105.249792715464977 30.799033957074698,-105.255416052233826 30.797028969328842,-105.261224946310648 30.798054073736733,-105.261360733612406 30.798078036329223,-105.27276013440985 30.808707209360072,-105.27887297001547 30.814407016614517,-105.283004544196217 30.818259431108679,-105.287237620233441 30.822206489243744,-105.289317685342255 30.822206489243744,-105.295630129130572 30.822206489243744,-105.300778681061615 30.818848737795758,-105.303672944509898 30.816961174571279,-105.314862960890409 30.816961174571279,-105.316949659843416 30.82296045428,-105.31766045482081 30.825003996727105,-105.320108268786385 30.827451797139727,-105.322675464925993 30.828439452154051,-105.330102631610075 30.831296841312803,-105.347695000000002 30.838065,-105.353219571709047 30.842032277683753,-105.358103536812379 30.84553952616983,-105.359771122039604 30.846737044096301,-105.360672052753856 30.84738401593513,-105.36720323988537 30.847875849249167,-105.377416999999994 30.848644999999998,-105.387780492422849 30.851314552204784,-105.394242074789418 30.852979003795937,-105.396689881978517 30.855426817761515,-105.396237319899697 30.858492407966825,-105.394628539050657 30.86939005724841,-105.394248999999988 30.871960999999999,-105.395681745186749 30.87649980844607,-105.399608999999998 30.888940999999996,-105.399828021807267 30.889112280223049,-105.402824820246408 30.891455847338634,-105.413505 30.899808,-105.430088999999995 30.905791999999998,-105.44547819369545 30.915748838601054,-105.448693870984556 30.917829388134351,-105.452149246331331 30.920065022782566,-105.4597280766598 30.924968540917344,-105.469954295993247 30.931584924947412,-105.472488639470896 30.933224650164071,-105.476269681741059 30.935670991952524,-105.488027000000002 30.943277999999999,-105.495516502166126 30.9493992090351,-105.4968561000139 30.950494069316512,-105.497422439936116 30.953962910943051,-105.497963910074574 30.957279424722472,-105.502256687477072 30.962680017552614,-105.507558525965123 30.966493977230062,-105.533087999999992 30.984859,-105.541468808393844 30.984769556162778,-105.543675999999991 30.984745999999998,-105.557430349577899 30.990228688381027,-105.570063935625512 31.008532833135739,-105.575218046011173 31.016000355201566,-105.578084306850855 31.020153131231776,-105.578407858220658 31.020621907958049,-105.57911399999999 31.021644999999999,-105.580554486932016 31.024917232759986,-105.581339666024604 31.026700857930102,-105.581404000000006 31.026847000000004,-105.581361569643192 31.027041810483581,-105.581235244876609 31.027621805343596,-105.579823718925667 31.034102543987302,-105.579541999999989 31.035395999999995,-105.579765234089464 31.036249085539566,-105.579847333127134 31.036562825712579,-105.585323000000002 31.057487999999996,-105.592709163135751 31.0626132919136,-105.595921000000004 31.064841999999999,-105.598772999999994 31.074925999999998,-105.60333 31.082624999999997,-105.627348999999995 31.098545,-105.641890000000004 31.098321999999996,-105.646730999999988 31.113907999999999,-105.647031366805422 31.114192798578223,-105.648833999999994 31.115902000000002,-105.662869191777489 31.12063916934996,-105.673930643060629 31.124372639388369,-105.709491 31.136374999999997,-105.717005999999998 31.141438,-105.717653520299876 31.143411480377267,-105.719539999999995 31.149160999999996,-105.742677999999998 31.164897,-105.763531 31.164121000000005,-105.773256999999987 31.166896999999999,-105.774148788612138 31.168976038235485,-105.780021000000005 31.182666,-105.779878030009812 31.18682806893737,-105.779724999999999 31.191282999999995,-105.782894999999996 31.197562999999999,-105.790659746923424 31.200723362140888,-105.794386000000003 31.20224,-105.818835000000007 31.230680999999997,-105.825806058218902 31.23733997673531,-105.835722000000004 31.246811999999995,-105.851073632158958 31.265902599748792,-105.86604427072389 31.284519412988434,-105.869353000000004 31.288633999999998,-105.869862116496506 31.288859823963843,-105.876014999999981 31.291588999999995,-105.890871999999987 31.290013999999996,-105.895034999999993 31.290977999999999,-105.903460999999993 31.306768999999999,-105.908770999999987 31.312773999999997,-105.914613899052299 31.312859252963214,-105.93196564998388 31.313112430054005,-105.932552999999999 31.313120999999995,-105.933375187723101 31.313903465142818,-105.938451999999984 31.318735,-105.948091000000005 31.340069,-105.945903 31.352809999999998,-105.953942999999995 31.364749,-105.970101 31.365936999999995,-105.997579969562565 31.386863626037869,-106.00418474278807 31.391893495117941,-106.004925999999998 31.392457999999998,-106.006143777923754 31.392558937255828,-106.022866323827969 31.393945009265412,-106.080091217088636 31.398688175961098,-106.080258 31.398702,-106.080335505244278 31.398768097394733,-106.096409750603954 31.412476405141465,-106.100621535494 31.416068265421309,-106.102641400977276 31.417790830744398,-106.10264993125142 31.41779810546371,-106.106876999999997 31.421403000000005,-106.112168999999994 31.423577999999996,-106.132782000000006 31.425367000000005,-106.143572676566535 31.431101721097118,-106.158218000000005 31.438885000000003,-106.175305198785026 31.455910533348611,-106.175674999999998 31.456278999999995,-106.17677981450808 31.456634312625521,-106.182946895641223 31.45861766980741,-106.20560859826729 31.465905761156737,-106.205826999999999 31.465975999999998,-106.205998876707866 31.466165148890862,-106.212686244283063 31.473524541419071,-106.218538531147885 31.479964934554566,-106.218843000000007 31.480299999999996,-106.218893022078106 31.480498686193428,-106.223908999999992 31.500422,-106.236804000000006 31.513376,-106.242649095206133 31.530650094003715,-106.245874455325477 31.540182047193959,-106.246202999999994 31.541153,-106.246406806009631 31.541315626597875,-106.254779999999997 31.547997000000002,-106.280345588488331 31.561810530102129,-106.280548572587122 31.561920205925162,-106.280811 31.562061999999997,-106.287785 31.584444999999999,-106.292254713772053 31.594651759250389,-106.295141086978958 31.601242900860864,-106.303535999999994 31.620412999999996,-106.308594276522342 31.627497440426588,-106.330970256390501 31.658836434185069,-106.33473699999999 31.664111999999999,-106.338265602146336 31.671883697950737,-106.346992532059133 31.691104641686092,-106.349537999999995 31.696711,-106.357472918704602 31.702103016258707,-106.368303742040567 31.709462886938788,-106.370138999999995 31.710709999999999,-106.373839000000004 31.714809999999996,-106.378039 31.72831,-106.381039 31.732109999999999,-106.38595139194058 31.734759025425479,-106.394642915450532 31.739445961452269,-106.404086535473255 31.744538468290354,-106.417940000000002 31.752009,-106.421739999999616 31.752623660686648,-106.431540999999996 31.754208999999996,-106.434644983693715 31.755853956158482,-106.444263765046571 31.76095142933643,-106.451540999999992 31.764807999999999,-106.467641999999998 31.759607999999997,-106.470742 31.753508,-106.472156160715315 31.752506597443457,-106.47367184987327 31.751433300058491,-106.475016438009845 31.750481163584279,-106.475542000000004 31.750108999999998,-106.48261401078824 31.748321568701869,-106.484641999999994 31.747809000000004,-106.486162292248409 31.747994847970777,-106.488078402545341 31.748229082678503,-106.489542 31.748407999999998,-106.507341999999994 31.761208,-106.509102011460428 31.762827435120251,-106.511609062807707 31.765134242258316,-106.523643000000007 31.776206999999996,-106.528643000000002 31.781807,-106.528542999999999 31.783906999999996,-106.528542999999999 31.784407000000002,-106.527996999999999 31.786944999999999,-106.527623000000006 31.789119000000003,-106.527737999999985 31.789760999999995,-106.527942999999993 31.790507000000002,-106.530514999999994 31.792103,-106.532480000000007 31.791913999999998,-106.533 31.791829,-106.533043000000006 31.791906999999995,-106.534743000000006 31.796106999999999,-106.535154000000006 31.797088999999996,-106.535342999999997 31.797507,-106.535842999999986 31.798607,-106.542096999999998 31.802145999999997,-106.542143999999993 31.802106999999996,-106.544713999999999 31.804286999999999,-106.545344 31.805007,-106.546561898485905 31.806561850400339,-106.546615562760394 31.806630361790774,-106.547143999999989 31.807304999999996,-106.551861034152338 31.808599471053657,-106.558443999999994 31.810406,-106.560680020141419 31.810752754512048,-106.560847305685968 31.810778696593822,-106.562944999999999 31.811104,-106.56344399999999 31.812605999999995,-106.566844000000003 31.813305999999997,-106.569123704016391 31.811582321353455,-106.570943999999997 31.810205999999997,-106.577243999999993 31.810406,-106.581344 31.813905999999996,-106.582144 31.815505999999999,-106.588044999999994 31.822105999999998,-106.589044999999984 31.822705999999997,-106.593826000000007 31.824901,-106.602727000000002 31.825023999999996,-106.605266999999998 31.827911999999998,-106.603310537982878 31.834798487166189,-106.601945 31.839604999999999,-106.60204499999999 31.844404999999998,-106.605244999999982 31.845904999999998,-106.605845000000002 31.846304999999997,-106.614637000000002 31.846489999999996,-106.621857000000006 31.852854,-106.625763000000006 31.856276,-106.627808000000002 31.860592999999998,-106.629708357956787 31.861913746439043,-106.635925999999998 31.866235,-106.635879999999986 31.871514,-106.634872999999999 31.874477999999996,-106.630798999999996 31.879696999999997,-106.629271361585637 31.8835303997664,-106.629197000000005 31.883717000000004,-106.629948941610351 31.885072003811555,-106.630443527558498 31.88596325099838,-106.630530381920593 31.886119763139838,-106.630691999999982 31.886410999999999,-106.633926999999986 31.889183999999997,-106.635073463799642 31.889856364267651,-106.636317332120683 31.890585853164694,-106.638154 31.891662999999998,-106.638364165758659 31.89171923904625,-106.642899999999983 31.892932999999999,-106.645296000000002 31.894859,-106.645645999999999 31.895648999999995,-106.645478999999995 31.898669999999999,-106.640839999999997 31.904598,-106.63512839833713 31.908732779117901,-106.633668 31.90979,-106.633408736085542 31.909871832166754,-106.625946999999996 31.912227,-106.62344499999999 31.914034,-106.618336531290581 31.916262323146238,-106.614677480394235 31.917858407661853,-106.614345999999998 31.918002999999995,-106.611846 31.920003,-106.616063629645311 31.921863544491501,-106.623932999999994 31.925334999999997,-106.624022586877501 31.92530240401349,-106.628663000000003 31.923614,-106.629746999999995 31.926570000000002,-106.625321999999983 31.930053000000004,-106.622529 31.934863000000004,-106.622117000000003 31.936620999999999,-106.622377 31.940863,-106.623659000000004 31.945509999999995,-106.616135999999983 31.948439,-106.614701999999994 31.956,-106.617707999999993 31.956008,-106.622819000000007 31.952891,-106.625123000000002 31.954530999999999,-106.625534999999985 31.957475999999996,-106.624298999999993 31.961054,-106.620453999999981 31.963402999999996,-106.619370999999987 31.964777000000005,-106.618745000000004 31.966954999999995,-106.619568999999998 31.971578,-106.621872999999994 31.972933,-106.623215999999999 31.972909999999999,-106.626465999999994 31.97069,-106.630114000000006 31.971257999999999,-106.638186000000005 31.976819999999996,-106.639528999999996 31.980347999999996,-106.63649199999999 31.985719,-106.631181999999995 31.989809,-106.629494617643616 31.990072722748106,-106.628337072326531 31.990253636712819,-106.62822051159516 31.990271854111079,-106.626910882874782 31.990476537349483,-106.623567999999992 31.990998999999999,-106.619448000000006 31.994733,-106.618486000000004 32.000494999999994,-106.599096000000003 32.000731000000002,-106.598639000000006 32.000753999999993,-106.595332999999997 32.000777999999997,-106.587971999999979 32.000748999999999,-106.582805114232855 32.000751357586125,-106.566056000000003 32.000759000000002,-106.565141999999994 32.000736000000003,-106.564298514026802 32.00073927393025,-106.562131862706067 32.000747683631808,-106.55942760630407 32.000758180008894,-106.517043115844388 32.000922692365819,-106.411074999999983 32.001334,-106.409326934223301 32.001349629127162,-106.409108574114072 32.001351581443814,-106.394297999999992 32.001483999999998,-106.376861000000005 32.001171999999997,-106.32356972407176 32.001457096670784,-106.313306999999995 32.001511999999998,-106.205915000000005 32.001761999999999,-106.200699 32.001784999999998,-106.18183999999998 32.002049999999997,-106.125534000000002 32.002532999999993,-106.05045734599986 32.002412317859424,-105.998002999999997 32.002327999999999,-105.900599999999997 32.002099999999992,-105.886159000000006 32.001969999999993,-105.854061000000002 32.00235,-105.750527000000005 32.002206,-105.731362000000004 32.001564000000002,-105.563520259526442 32.001015604709174,-105.429281000000003 32.000577,-105.428582000000006 32.000599999999999,-105.427048999999997 32.000638000000002,-105.390395999999981 32.000607000000002,-105.340142768272344 32.000583616714373,-105.200871148394683 32.000518812363367,-105.153993999999997 32.000497000000003,-105.150310000000005 32.000497000000003,-105.14824 32.000484999999998,-105.132915999999994 32.000518,-105.131377 32.000523999999999,-105.118039999999993 32.000484999999998,-105.078604999999996 32.000532999999997,-105.077045999999996 32.000578999999995,-104.918272000000002 32.000495999999991,-104.643525999999994 32.000442999999997,-104.640917999999999 32.000396000000002,-104.531936999999999 32.000311000000004,-104.531756 32.000117000000003,-104.024520999999993 32.000010000000003,-103.980179000000007 32.000124999999997,-103.875476000000006 32.000554,-103.748317 32.000197999999997,-103.72373965094468 32.000208021677786,-103.713395184678689 32.000212239744897,-103.713395184670219 32.000212239744904,-103.713395184654971 32.000212239744911,-103.713395184639609 32.000212239744918,-103.60161412595366 32.000257819670985,-103.326500999999993 32.00036999999999,-103.278520999999998 32.000419,-103.270382999999995 32.000326,-103.267707999999999 32.000323999999992,-103.267633000000004 32.000475000000002,-103.215641000000005 32.000512999999998,-103.133028835827503 32.000473953106116,-103.088697999999994 32.000452999999993,-103.085875999999985 32.000464999999998,-103.064422999999991 32.000518,-103.064344000000006 32.087051000000002,-103.064347999999995 32.123041,-103.064421999999993 32.145006000000002,-103.064695999999998 32.522193,-103.064761000000004 32.587983,-103.064787999999993 32.600397,-103.064761000000004 32.601863000000002,-103.064814999999996 32.624536999999997,-103.064633 32.646419999999992,-103.064864 32.682647000000003,-103.064797999999996 32.690761000000002,-103.064798999999994 32.708694,-103.064826999999994 32.726627999999998,-103.064807000000002 32.777302999999996,-103.064698000000007 32.783602000000002,-103.064711000000003 32.784593,-103.064699000000005 32.827531,-103.064672000000002 32.828470000000003,-103.064888999999994 32.849359,-103.064915999999982 32.857259999999997,-103.064807000000002 32.857695999999997,-103.064862000000005 32.868346000000003,-103.064700999999985 32.879354999999997,-103.064569000000006 32.900013999999999,-103.064656999999997 32.959097,-103.064678999999998 32.964373000000002,-103.064625000000007 32.999898999999999,-103.064452000000003 33.010289999999998,-103.06398 33.038693000000002,-103.063904999999991 33.042054999999998,-103.063382198608849 33.066417104805645,-103.0628188509327 33.092668632365545,-103.062136190569035 33.12448003074244,-103.060102999999984 33.219225000000002,-103.059719999999999 33.256262,-103.059241999999998 33.260370999999992,-103.057856 33.315233999999997,-103.057486999999995 33.32947699999999,-103.056655000000006 33.388437999999994,-103.052609999999987 33.570599,-103.051664000000002 33.629489,-103.051362999999995 33.64195,-103.051535 33.650486999999998,-103.051086999999981 33.658186,-103.050532000000004 33.672407999999997,-103.050147999999993 33.701971,-103.049608000000006 33.737766,-103.049096000000006 33.746270000000003,-103.047346000000005 33.824674999999999,-103.046907000000004 33.850299999999997,-103.045643999999996 33.901536999999998,-103.045698000000002 33.90629899999999,-103.044893000000002 33.945616999999999,-103.043949999999981 33.974629,-103.043616999999998 34.003633,-103.043531000000002 34.018014,-103.043554999999984 34.032713999999991,-103.043745999999999 34.037294000000003,-103.043771000000007 34.041538000000003,-103.043720999999991 34.042319999999997,-103.043767000000003 34.043544999999995,-103.043744000000004 34.049985999999997,-103.04368599999998 34.063077999999997,-103.043515999999983 34.079382000000003,-103.043569000000005 34.087947,-103.043571175003294 34.092846731402311,-103.043572866326429 34.096656853966635,-103.04358003846437 34.112813863799865,-103.043644 34.256903,-103.043718999999982 34.289440999999997,-103.043935999999988 34.302584999999993,-103.043978999999979 34.312763999999994,-103.043947553639484 34.376410480771497,-103.043947499824213 34.37651940122479,-103.043946000000005 34.379555000000003,-103.043943999999982 34.37966,-103.043919000000002 34.380915999999992,-103.043693000000005 34.383578,-103.043629999999993 34.384689999999999,-103.043614000000005 34.384968999999998,-103.043612999999993 34.388679000000003,-103.043612999999993 34.390442,-103.043606047260084 34.391254973944719,-103.043584999999993 34.393715999999998,-103.043610999999999 34.397105000000003,-103.043582999999998 34.400677999999999,-103.043537999999998 34.405462999999997,-103.043582 34.455657000000002,-103.043587999999986 34.459662000000002,-103.043588999999997 34.459774000000003,-103.043593999999985 34.46266,-103.043434927764125 34.510540742996007,-103.043071999999981 34.619782,-103.043277851519235 34.65183038816317,-103.0432796163159 34.65210514391012,-103.043285999999995 34.653098999999997,-103.042827000000003 34.671187999999994,-103.042768999999993 34.747360999999998,-103.042770000000004 34.792223999999997,-103.042781000000005 34.850242999999999,-103.042520999999979 34.899546,-103.0425974544018 35.032467348285799,-103.042641999999987 35.109912999999999,-103.043261 35.125058000000003,-103.042519999999996 35.135596,-103.042599999999993 35.142766000000002,-103.042710999999997 35.144734999999997,-103.042568000000003 35.159317999999999,-103.042394999999999 35.178573,-103.042338999999984 35.181922,-103.042366 35.182786,-103.042377000000002 35.183149,-103.042496999999997 35.211862000000004,-103.042775000000006 35.241236999999998,-103.042366 35.250056,-103.041554000000005 35.622487,-103.041484634909168 35.651235429903174,-103.041145999999998 35.791583000000003,-103.041916999999998 35.796441000000002,-103.041715999999994 35.814072000000003,-103.042186 35.825216999999995,-103.04130499999998 35.837693999999999,-103.040823999999986 36.055230999999992,-103.041387523024824 36.229129564686382,-103.041674 36.317534000000002,-103.041745000000006 36.318266999999999,-103.041923999999995 36.500439,-103.00243399999998 36.500397)),((-96.818513748151517 28.172441936006489,-96.816443421354066 28.174808025412563,-96.791958210781445 28.188687337716829,-96.733036581469989 28.190913261798631,-96.70383764358462 28.198245729538105,-96.697421731775194 28.2029594609741,-96.702659211994316 28.211208487181011,-96.703313894801497 28.216445964862743,-96.686815839850283 28.218410020896432,-96.662461568376486 28.227313732447904,-96.66062845144161 28.228884976259902,-96.663116248646261 28.233205895474203,-96.651855673914184 28.251275190431315,-96.607991796426646 28.277069769155677,-96.608122730450688 28.280081317680857,-96.611527096272326 28.281390688369981,-96.610479598706064 28.283092866206033,-96.592934048725994 28.296972182316367,-96.581018783574592 28.302209665072866,-96.553260151988255 28.302340591484768,-96.546975176740276 28.305614018207578,-96.542130508742858 28.315958034472228,-96.528905880514458 28.322504882843088,-96.476269225261575 28.330753906512612,-96.45099839278295 28.337038879223222,-96.434107525610045 28.344764159184386,-96.418918843885365 28.35484630740093,-96.415252604940861 28.362833452872817,-96.417216660974546 28.367154372087118,-96.412895739222876 28.36951123780511,-96.403206408302779 28.371475291301415,-96.401242352269094 28.366892498964241,-96.400558825492723 28.362187299887704,-96.398667286465624 28.349166496619617,-96.397846 28.343512999999998,-96.413700000000006 28.327342999999999,-96.439098999999999 28.319051999999999,-96.495600517783487 28.293964130304811,-96.547774000000004 28.270797999999999,-96.587113635820756 28.248878526668094,-96.611036668198281 28.235548960715661,-96.621533999999983 28.229699999999998,-96.694665999999998 28.18212,-96.758140999999995 28.136872999999998,-96.830820125734775 28.079724674840076,-96.849624000000006 28.064938999999999,-96.854049189790473 28.060788472935577,-96.855594496383262 28.059339080448503,-96.859762278796424 28.055429983997605,-96.896530613737951 28.020943786452513,-96.898080497387397 28.019490100997579,-96.929052999999996 27.990439999999996,-96.96699599999998 27.950531000000002,-97.001440999999986 27.911442,-97.031660000000002 27.869974999999997,-97.041798999999997 27.852925999999997,-97.045408776308051 27.837452569961062,-97.045409609838757 27.837448997003069,-97.04598 27.835004,-97.050599498412936 27.830109781194331,-97.058265753683145 27.821987615677948,-97.076304165860961 27.802876463727326,-97.079565315161531 27.799421374709375,-97.083535350812468 27.795215242050556,-97.085211615730273 27.793439290085495,-97.085394999999991 27.793244999999999,-97.11422230692618 27.755303327915222,-97.116276999999997 27.752599,-97.117304906633777 27.751048809529347,-97.118830196202964 27.748748513687826,-97.139140047561696 27.718119138409879,-97.139351757288111 27.717799858049549,-97.143807202733072 27.711080581371732,-97.165547551982726 27.678293865995041,-97.166583141799606 27.676732088482499,-97.166681999999994 27.676583,-97.184850261879149 27.644709535797791,-97.192144670654784 27.631912600211269,-97.198729900630283 27.620359811436909,-97.201865999999995 27.614857999999998,-97.211651066704889 27.596044174137351,-97.213608899397855 27.592279833590187,-97.221943360361436 27.576255098965802,-97.265194083077162 27.493096589152017,-97.265746568141566 27.492034321708481,-97.276090999999994 27.472145,-97.304469999999995 27.407734,-97.326522999999995 27.347611999999998,-97.347445832595042 27.277936119324231,-97.350397999999998 27.268104999999998,-97.363400999999996 27.210366,-97.370941000000002 27.161165999999998,-97.377001000000007 27.101020999999999,-97.379130000000004 27.047996,-97.378361999999996 26.992877,-97.370730999999992 26.909706,-97.365301177044699 26.875333999999995,-97.365282052674758 26.875212938438843,-97.364726000000005 26.871692999999997,-97.363633430415348 26.866515420001111,-97.352028350385282 26.811520085064032,-97.35141299999998 26.808603999999999,-97.350529648372714 26.805138580575584,-97.333027999999999 26.736478999999996,-97.304204860681779 26.646364129642233,-97.300690000000003 26.635375,-97.297812715808362 26.627503004299889,-97.297022484076606 26.625340999999999,-97.287871455917369 26.600304594305239,-97.275119000000004 26.565415000000002,-97.269391999999982 26.554046,-97.269132970349304 26.553256905349773,-97.257954534248029 26.519203490608863,-97.229844 26.433568999999999,-97.223724090442104 26.411478908273114,-97.206682644704898 26.34996703527348,-97.194643999999997 26.306512999999999,-97.185844000000003 26.267102999999995,-97.177979856301576 26.220346386353309,-97.177168840972797 26.215524458900923,-97.173264999999986 26.192314,-97.170387765328073 26.167037808112223,-97.169872392484734 26.162510314053797,-97.167099005951158 26.138146416702778,-97.161470999999992 26.088705,-97.158662630175101 26.080176913346069,-97.154270970414501 26.066840900880429,-97.161462285840642 26.067639941946975,-97.169842256221145 26.077853024187579,-97.171781452365479 26.102521767945923,-97.179531587141199 26.146202099560895,-97.178745972847352 26.177103221942961,-97.183983445454302 26.214289306886101,-97.194458400817808 26.271639686993655,-97.214884565299002 26.353606215503973,-97.226930759399721 26.385554824668418,-97.240286324189555 26.405980989149626,-97.240845398636537 26.411470089808617,-97.243166933615896 26.434263367616055,-97.247618791929028 26.456260775909261,-97.254165635225121 26.471187589585856,-97.262545605605609 26.482971915638458,-97.27642492679071 26.521729238684483,-97.292399243108349 26.528014213932472,-97.310730412457033 26.556558470596535,-97.308111681228326 26.5712234060755,-97.308635417324538 26.576722756880109,-97.317015387705027 26.597672667607057,-97.318434072834165 26.60022630157264,-97.324871601690262 26.611813856840271,-97.338489044677715 26.647428701777493,-97.33639404954522 26.666021744249065,-97.345821512417203 26.700589103038251,-97.363105189274393 26.710540307081217,-97.370437657013895 26.723895871871047,-97.370961403259614 26.736203954318924,-97.367557047587525 26.740393934434408,-97.364152671616353 26.758986971196869,-97.364646278833362 26.767121661774897,-97.368866408127118 26.774699404876429,-97.370437646864346 26.781508126370166,-97.368342661881371 26.795649318140761,-97.373056398392137 26.808481136684847,-97.387459455673451 26.820789208983193,-97.383531343606066 26.875520854055946,-97.385626348888096 26.88887641440536,-97.391649435788921 26.901970109878395,-97.389554460955466 26.945964918852653,-97.390340075249313 27.05228571820243,-97.389816329003565 27.067212531879022,-97.386411973331462 27.083186832972341,-97.387459455673422 27.090519300711819,-97.390601943297412 27.094185534581555,-97.390078197051665 27.156511519247964,-97.377508246555678 27.199458835730731,-97.379865109736301 27.202863196477598,-97.386673841379576 27.204696313412462,-97.382221972916923 27.229050589961044,-97.37488951532697 27.25026236588155,-97.373318276589728 27.276449754290233,-97.372896734486858 27.277942715507475,-97.367033301341749 27.298709035706306,-97.36467643816114 27.302637142698917,-97.359962701650375 27.304732132756659,-97.357605838469766 27.307874620380655,-97.362319574980518 27.32672953597509,-97.366771423144115 27.333276389420721,-97.36179581858525 27.359987519000377,-97.346607126710992 27.390364889744752,-97.336132171347501 27.402411088920228,-97.331156576938184 27.412362295500575,-97.329585328051422 27.418123524502818,-97.330894688591016 27.425455992242295,-97.329847196099536 27.434359703793774,-97.317277255753083 27.463689574751687,-97.293708603647858 27.497209429631152,-97.282971770086746 27.521563701104967,-97.267627232015485 27.541048841138782,-97.26651977444007 27.542455137362143,-97.266473727822444 27.542513609294531,-97.257831889393842 27.556392930479635,-97.261144559602045 27.562355746269706,-97.261759991311692 27.563463525096239,-97.260450620622564 27.56739163716362,-97.260303240478223 27.567589679048492,-97.252732825146552 27.577762415194865,-97.252070650242061 27.578652211895708,-97.247885553160842 27.581360217573209,-97.247618802078478 27.581532821322067,-97.236881968517352 27.598292751933528,-97.24107194863285 27.602482732049012,-97.241084821027414 27.602523494839662,-97.242643187370078 27.607458346757408,-97.231683715414945 27.631671123728168,-97.231553918442799 27.631957884363242,-97.231382612637987 27.632336350521356,-97.221955159915538 27.632860099304484,-97.221711030183002 27.632638163711842,-97.219074540339648 27.630241360463614,-97.217418907944051 27.630677052710489,-97.214098935780783 27.631550728615359,-97.200743370990949 27.650143776161688,-97.197339005169326 27.664546838517776,-97.19760088336696 27.678426154628117,-97.203474366386629 27.684532651921231,-97.20308902068453 27.688000774441392,-97.200450811776179 27.688974477466285,-97.190006537429824 27.692829222058965,-97.188284576858237 27.695272543577584,-97.170627865440125 27.720325976082009,-97.166176017276527 27.732372180332245,-97.161200407642937 27.734074342943998,-97.153606061705801 27.733288721037997,-97.147321086457822 27.735383711095739,-97.130823034043985 27.751619892924076,-97.127942424617643 27.75580987303956,-97.127680546420009 27.759999858229808,-97.125046985317312 27.763143140340585,-97.103326269871417 27.789067861139614,-97.102999946318647 27.791923200131116,-97.10255066693685 27.795854405604921,-97.102495980878558 27.796332909939515,-97.102278777379922 27.798233445813956,-97.100865886772965 27.802472121847156,-97.098874421707819 27.808446522979796,-97.095168997779496 27.812151946908138,-97.092851314507953 27.81446963017968,-97.092589446459854 27.819183356540908,-97.098874421707819 27.822849590410645,-97.104263831428213 27.822227735056668,-97.126109297533233 27.819707102786651,-97.130299287798252 27.820492727230029,-97.134489267913736 27.825206463740791,-97.132394272781227 27.827301438574235,-97.10670775348396 27.832389859144307,-97.087681973298601 27.836158807756469,-97.056712719518927 27.842293721800239,-97.055822986229373 27.843403727743151,-97.04322620548075 27.859119113080268,-97.013634476624247 27.906780143237341,-97.017955395838555 27.911493874673329,-97.016384146951765 27.917255079570445,-96.985744902767337 27.954048356415132,-96.977888688782102 27.976438572489602,-96.978805242174786 27.978271691961854,-96.980900237307296 27.978271691961854,-96.986006780964971 27.976176699366729,-96.986661461234775 27.980759491703903,-96.978281501003806 28.001709402430844,-96.967806540565562 28.020040576854303,-96.966759042999328 28.020367911280101,-96.965187799187319 28.013297317932185,-96.962569062883844 28.012380759464751,-96.952617853766114 28.01643980428749,-96.946987563862692 28.02652194996665,-96.932453562407773 28.035425661518129,-96.926430465357427 28.043412814602167,-96.929572952981431 28.051399967686208,-96.927085150701998 28.057292130712504,-96.906004298338829 28.076147047258459,-96.890946545563423 28.076801730065643,-96.886232814127425 28.084396073465374,-96.88832780925992 28.086622002621937,-96.889113433703315 28.099453823703399,-96.886887499471996 28.117130312782294,-96.879424092633712 28.131402425890027,-96.874972236857971 28.133235547899659,-96.87078225420511 28.13127149186597,-96.86462821551855 28.126295887307109,-96.857164811217643 28.115559058820768,-96.845380482627661 28.108881273888468,-96.830128556765757 28.111822717849165,-96.827049318353744 28.112416571196771,-96.816574357915513 28.119618104912195,-96.810420321766344 28.126034014184238,-96.810944073086844 28.136378030448888,-96.816836228500989 28.158048094801106,-96.820248352517055 28.163388807027481,-96.822859330626116 28.167475552598326,-96.818513748151517 28.172441936006489)))');
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/ks.wkt b/webapp/django/contrib/gis/tests/geoapp/sql/ks.wkt
new file mode 100644
index 0000000..8bfd38c
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/ks.wkt
@@ -0,0 +1 @@
+POLYGON ((-102.051743999999999 40.003078000000002,-101.916696000000002 40.003141999999997,-101.904176000000007 40.003162000000003,-101.861740775252272 40.002907997451267,-101.841025000000002 40.002783999999991,-101.832160999999999 40.002932999999999,-101.807687 40.002797999999999,-101.804861999999986 40.002752,-101.783266423091504 40.002735966476642,-101.748492901329186 40.002710149056902,-101.627071 40.00262,-101.625809000000004 40.002710999999998,-101.579641080501318 40.002654627564297,-101.54227299999998 40.002608999999993,-101.417209 40.002423999999998,-101.411050023557621 40.002364583193085,-101.409952999999987 40.002353999999997,-101.387325211262052 40.00246006676732,-101.374325999999996 40.002520999999994,-101.342859000000004 40.002580000000002,-101.324035999999992 40.002695999999993,-101.293991000000005 40.002558999999998,-101.286555000000007 40.002558999999998,-101.248672999999997 40.002543000000003,-101.215033000000005 40.002555,-101.19221899999998 40.002490999999999,-101.186892990733696 40.002481867883319,-101.178804999999997 40.002468,-101.168704000000005 40.002547,-101.130906999999993 40.002426999999997,-101.104950380573442 40.002382874850099,-101.104950380567658 40.002382874850092,-101.060316999999998 40.002307000000002,-101.027686000000003 40.002255999999996,-100.962089380046322 40.00217532965339,-100.937427 40.002144999999999,-100.764559455237134 40.002296963384197,-100.758829999999989 40.002301999999993,-100.752183000000002 40.002127999999992,-100.7388309887763 40.002228385746484,-100.733295999999996 40.002270000000003,-100.729904000000005 40.002110999999999,-100.721127999999993 40.002068999999999,-100.683435000000003 40.002234,-100.660229999999984 40.002161999999998,-100.645444999999995 40.001882999999999,-100.626504856699498 40.001892789287538,-100.600944999999996 40.001905999999998,-100.594756999999987 40.001976999999997,-100.567238000000003 40.001888999999998,-100.551885999999996 40.001888999999998,-100.514429898999168 40.001844039098764,-100.511064999999988 40.00184,-100.487159000000005 40.001767,-100.477018 40.001752000000003,-100.475853999999998 40.001767999999998,-100.468772999999985 40.001724000000003,-100.447071999999991 40.001795,-100.439081000000002 40.001773999999997,-100.402449685831499 40.001800164690437,-100.390079999999998 40.001809000000002,-100.290126736823893 40.001691651381378,-100.231651999999997 40.001623000000002,-100.229478999999998 40.001692999999996,-100.215406000000002 40.001629,-100.196958999999993 40.001494,-100.19359 40.001573,-100.190323000000006 40.001586000000003,-100.188181 40.001541000000003,-100.177823000000004 40.001593,-99.990926000000002 40.001503,-99.986610999999996 40.001550000000002,-99.948166999999998 40.001812999999999,-99.944417 40.001584,-99.930432999999979 40.001516000000002,-99.906657999999993 40.001511999999998,-99.850154757615712 40.001444140609848,-99.813400999999999 40.001399999999997,-99.775639999999981 40.001646999999998,-99.772120999999984 40.001804,-99.764213999999996 40.001550999999999,-99.756834999999995 40.001342,-99.746628 40.001820000000002,-99.737774855821357 40.001824224692157,-99.731959000000003 40.001826999999992,-99.719639 40.001807999999997,-99.628345999999993 40.001866,-99.625979999999984 40.001865000000002,-99.515340365578794 40.002008435606839,-99.501791999999995 40.002026,-99.498998999999984 40.00195699999999,-99.497659999999982 40.001911999999997,-99.493464999999986 40.001936999999998,-99.480727999999999 40.001942,-99.423564999999996 40.002270000000003,-99.412644999999998 40.001867999999995,-99.403389000000004 40.001969000000003,-99.366747146128873 40.001962496644857,-99.290702999999979 40.001949000000003,-99.286655999999994 40.002017000000002,-99.282966999999999 40.001879000000002,-99.254012000000003 40.002074,-99.25036999999999 40.00195699999999,-99.216375999999997 40.002015999999998,-99.197591999999986 40.002032999999997,-99.188905000000005 40.002023,-99.186961999999994 40.001976999999997,-99.178965000000005 40.001976999999997,-99.169815999999997 40.001925,-99.123032999999992 40.002164999999998,-99.113510000000005 40.002192999999998,-99.085596999999993 40.002132999999994,-99.067047050731574 40.00217023690761,-99.020337999999995 40.00226399999999,-99.018700999999993 40.002333,-98.992135000000005 40.002192,-98.972286999999994 40.002245000000002,-98.971721000000002 40.002268,-98.961009000000004 40.002316999999998,-98.96091899999999 40.002271,-98.953888072580213 40.002253239016738,-98.934791999999987 40.002204999999996,-98.8435956659672 40.002348607685946,-98.842134005327992 40.002350909376077,-98.834455999999989 40.002363000000003,-98.820589999999982 40.002319,-98.777203 40.002358999999998,-98.774940999999998 40.002336,-98.729330606936671 40.002229113826232,-98.726294999999993 40.002222000000003,-98.710403999999997 40.002180000000003,-98.693095999999997 40.002372999999999,-98.691443000000007 40.002504999999999,-98.690286999999998 40.002547999999997,-98.672819000000004 40.002364,-98.669723999999988 40.002409999999998,-98.653832999999992 40.002268999999998,-98.652494000000004 40.002245000000002,-98.640709999999984 40.002493,-98.616372379820518 40.002409030470169,-98.613754999999998 40.002400000000002,-98.593342000000007 40.002475999999994,-98.575219000000004 40.002479999999991,-98.560578000000007 40.002274,-98.543186000000006 40.002285,-98.523053000000004 40.002336,-98.506634585466017 40.002329436673158,-98.504454999999979 40.002328565375151,-98.50084801790743 40.002327123469641,-98.490532999999999 40.002322999999997,-98.441997554675297 40.002366263566756,-98.391848301995964 40.002410965650498,-98.274015000000006 40.002516,-98.268218000000005 40.002490000000002,-98.25000799999998 40.002307000000002,-98.213290432425865 40.002506421375415,-98.193483 40.002614,-98.179315000000003 40.002482999999998,-98.172269 40.002437999999991,-98.156873151934732 40.002445128178877,-98.142031000000003 40.002451999999998,-98.099659000000003 40.002226999999998,-98.076034000000007 40.002300999999996,-98.068701000000004 40.002355,-98.050056999999981 40.002277999999997,-98.047469000000007 40.002186000000002,-98.042767978165202 40.002191261754177,-98.014411999999979 40.002223,-98.010157000000007 40.002153,-97.972185999999994 40.002113999999999,-97.931810999999996 40.002049999999997,-97.876261 40.002102,-97.85745 40.002065000000002,-97.838378999999989 40.001909999999995,-97.821597999999994 40.002003999999992,-97.819426000000007 40.001957999999995,-97.777154999999993 40.002167,-97.770775999999998 40.001976999999997,-97.769204000000002 40.001995,-97.767746000000002 40.001994000000003,-97.714825952022949 40.001974503868432,-97.706952472912022 40.001971603221314,-97.701160424072398 40.001969469388285,-97.61370959051284 40.001937251863488,-97.595964207410262 40.001930714334961,-97.593671575073259 40.001929869712491,-97.51530799999999 40.001900999999997,-97.511381 40.001899000000002,-97.510264000000006 40.001835,-97.48896951184885 40.0019310946697,-97.481234094494141 40.001966001936331,-97.463284999999999 40.00204699999999,-97.444661999999994 40.001957999999995,-97.425443 40.002048000000002,-97.417825999999991 40.002023999999999,-97.415833000000006 40.002000999999993,-97.369102999999996 40.00206,-97.350896000000006 40.001930000000002,-97.350272000000004 40.001975999999999,-97.256541388870858 40.001563097676062,-97.24516899999999 40.001513000000003,-97.245080000000002 40.001466999999998,-97.202309999999997 40.00144199999999,-97.200190000000006 40.001548999999997,-97.181775000000002 40.001550000000002,-97.165136038800085 40.001526729909067,-97.164288093539042 40.001525544031956,-97.157705785150654 40.001516338474417,-97.144150390621661 40.001497380844818,-97.142447999999987 40.001494999999998,-97.137865999999988 40.001814000000003,-97.049662999999995 40.001322999999999,-97.030802999999992 40.001342,-97.009164999999996 40.001463,-96.918187714380807 40.001505032225388,-96.916093000000004 40.001505999999999,-96.880459000000002 40.001448000000003,-96.878253 40.001466,-96.875056999999998 40.001448000000003,-96.873812 40.001449999999998,-96.868892342573133 40.001444286089438,-96.805301797100199 40.001370429180717,-96.693246065483095 40.001240282633297,-96.622400999999996 40.001157999999997,-96.610348999999999 40.000881,-96.604883999999984 40.000891000000003,-96.581788013355691 40.000963078853125,-96.580851999999993 40.000965999999998,-96.570853999999997 40.001090999999995,-96.557862999999998 40.000968,-96.538977000000003 40.000850999999997,-96.527110999999991 40.001030999999998,-96.469944999999996 40.000965999999998,-96.467535999999996 40.001035000000002,-96.463639999999998 40.000967000000003,-96.354812913341547 40.000735780492882,-96.350953725714731 40.00072758106856,-96.341811057717251 40.000708156095854,-96.304554999999993 40.000629000000004,-96.301066000000006 40.000632000000003,-96.239171999999996 40.000691000000003,-96.223838999999998 40.000729,-96.220170999999993 40.00072,-96.154364999999984 40.000495,-96.154246 40.00045,-96.147166999999982 40.000478999999999,-96.125936999999979 40.000432000000004,-96.125788 40.000467,-96.089781000000002 40.000518999999997,-96.081394999999986 40.000602999999998,-96.051691000000005 40.000726999999998,-96.02409 40.000718999999997,-96.014716997898134 40.000662392993569,-96.010677999999999 40.000638000000002,-95.995389500007406 40.000603953777215,-95.958139000000003 40.000520999999999,-95.901560435593936 40.000482839492363,-95.882524000000004 40.00047,-95.788023999999993 40.000452000000003,-95.784575000000004 40.000463000000003,-95.672891827756033 40.000336669594915,-95.658762261555324 40.000320686938032,-95.63965170807073 40.000299070038061,-95.565216789143676 40.000214872989645,-95.463103327781397 40.00009936736172,-95.455130658279359 40.000090349077695,-95.452048066669519 40.000086862204618,-95.438655850967621 40.000071713601649,-95.436011808705814 40.000068722793607,-95.426269559489981 40.00005770284973,-95.42148745056565 40.000052293567869,-95.41484447973599 40.000044779372317,-95.375257000000005 40.0,-95.339895999999982 39.999999000000003,-95.326448603970363 39.999998574530281,-95.30829 39.999997999999998,-95.308403999999996 39.993758,-95.307779999999994 39.990617999999998,-95.307111000000006 39.989114,-95.302506999999991 39.984357000000003,-95.289715 39.977705999999998,-95.274756999999994 39.972115000000002,-95.269885999999985 39.969396000000003,-95.261854 39.960617999999997,-95.257651999999993 39.954886000000002,-95.250253999999998 39.948644000000002,-95.241382999999999 39.944949,-95.236761 39.943930999999999,-95.231114000000005 39.943784,-95.220212000000004 39.944432999999997,-95.216440000000006 39.943953,-95.213736999999995 39.943205999999996,-95.204427999999993 39.938949,-95.201277000000005 39.934193999999998,-95.200689999999994 39.928154999999997,-95.20201 39.922438,-95.205744999999993 39.915168999999999,-95.206326000000004 39.912120999999999,-95.206195999999991 39.909557,-95.205732999999981 39.908275000000003,-95.202631127107011 39.904826841138963,-95.201935000000006 39.904052999999998,-95.19982446963148 39.902956959499498,-95.199773390195176 39.902930432929807,-95.199730682369619 39.902908253904485,-95.199347000000003 39.902709000000002,-95.193815999999984 39.900689999999997,-95.189565000000002 39.899959000000003,-95.179452999999995 39.900061999999991,-95.172296000000003 39.902025999999999,-95.159833999999989 39.906984,-95.156023999999988 39.907243,-95.153185481864639 39.906665666721331,-95.151701132402337 39.906363761184394,-95.149656999999991 39.905947999999995,-95.148243978290679 39.905255611516672,-95.146055000000004 39.904183000000003,-95.143801999999994 39.901917999999995,-95.142562999999981 39.897992000000002,-95.142444999999995 39.895419999999994,-95.143403000000006 39.889355999999992,-95.142718000000002 39.885888999999992,-95.140601000000004 39.88168799999999,-95.137091999999996 39.878350999999995,-95.134747000000004 39.876852,-95.128165999999993 39.874164999999998,-95.105912000000004 39.869163999999998,-95.090958483530287 39.863446088154532,-95.090158000000002 39.86314,-95.085003 39.861882999999999,-95.081534000000005 39.861718000000003,-95.079786043666886 39.861878094210859,-95.052535000000006 39.864373999999998,-95.042141999999998 39.864804999999997,-95.037767000000002 39.865541999999998,-95.034318031759739 39.867229060943565,-95.032053000000005 39.868336999999997,-95.031002514960235 39.869148692103728,-95.027930999999981 39.871521999999999,-95.025918959417425 39.87568321107333,-95.025422000000006 39.876711,-95.025119000000004 39.878833,-95.02586205726584 39.885935119809076,-95.025947000000002 39.886747,-95.025771840138887 39.887478608302466,-95.025475064075451 39.888718183571669,-95.025239999999997 39.889699999999998,-95.024388999999999 39.891202,-95.021897459019584 39.893924778577606,-95.019088516216428 39.896994416745422,-95.018742999999986 39.89737199999999,-95.018224596337973 39.897611313155366,-95.013151999999991 39.899952999999996,-95.010684182587667 39.900289758615472,-95.008439999999993 39.900596,-95.003818999999993 39.900400999999995,-94.990284000000003 39.897010000000002,-94.989784913598129 39.896958718834505,-94.987823822157509 39.896757216540813,-94.986975 39.89667,-94.985308455245701 39.896814869812808,-94.979390624873346 39.897329296428744,-94.977748999999989 39.897472,-94.963345000000004 39.901136,-94.959276000000003 39.901671,-94.958440298615102 39.901548064610132,-94.95153999999998 39.900532999999996,-94.943866999999983 39.898130000000002,-94.935306395585215 39.893779379194363,-94.934493000000003 39.893366,-94.929574000000002 39.888753999999992,-94.927897000000002 39.88611199999999,-94.927358999999996 39.883966,-94.927251999999996 39.880257999999991,-94.928466 39.876344000000003,-94.931084167287821 39.873075003673321,-94.931462999999994 39.872602,-94.938790999999995 39.866954,-94.940742999999998 39.864409999999999,-94.942407000000003 39.861065999999994,-94.942566999999983 39.856601999999995,-94.939767000000003 39.851930000000003,-94.937655000000007 39.849786000000002,-94.926149999999993 39.841321999999998,-94.916917999999995 39.836137999999998,-94.909941999999987 39.834426,-94.903156999999979 39.833849999999998,-94.892677000000006 39.834377999999994,-94.889493000000002 39.834026,-94.886932999999999 39.833098,-94.881012999999996 39.828921999999991,-94.878676999999996 39.826521999999997,-94.877043999999998 39.823754,-94.876543999999996 39.820594,-94.875944000000004 39.813293999999999,-94.87632679569893 39.807169268817198,-94.876344000000003 39.806894,-94.876705972386588 39.80614007495069,-94.880932 39.797338000000003,-94.884084 39.794234000000003,-94.890292000000002 39.791626,-94.892965000000004 39.791097999999991,-94.912908274541266 39.790276806342419,-94.92474489359239 39.789789416146199,-94.925605000000004 39.789753999999995,-94.925940683661906 39.789631963361245,-94.927258709273417 39.789152799691166,-94.929653999999999 39.788281999999995,-94.93035270914757 39.787827111232048,-94.930442023078356 39.787768964141691,-94.930979872832452 39.787418801541357,-94.932726000000002 39.786282,-94.932913349551853 39.786043884763131,-94.935059195246907 39.783316584105528,-94.935205999999994 39.78313,-94.935782000000003 39.778905999999999,-94.935301999999993 39.77561,-94.935036741896766 39.775108050050804,-94.934624304242575 39.774327591105198,-94.934262000000004 39.773642000000002,-94.929652999999988 39.769098,-94.929421387607832 39.768921584953624,-94.928626586797606 39.768316199289764,-94.926229000000006 39.76648999999999,-94.923991330811134 39.765173947104167,-94.916788999999994 39.760937999999996,-94.912293000000005 39.759337999999993,-94.906244 39.759417999999997,-94.905921454535701 39.759501730763866,-94.900921941190049 39.760799572828766,-94.899156000000005 39.761257999999998,-94.899025621234756 39.761323457651685,-94.895268000000002 39.76321,-94.895041000000006 39.763350000000003,-94.894070999999997 39.763945999999997,-94.893918999999997 39.76404,-94.893724000000006 39.764159999999997,-94.893646000000004 39.764208000000004,-94.883923999999993 39.770186000000002,-94.881460000000004 39.771258000000003,-94.881422 39.771258000000003,-94.874706321154179 39.772392308082928,-94.871144 39.772993999999997,-94.869643999999994 39.772894,-94.867142999999999 39.771693999999997,-94.865243000000007 39.770094,-94.863142999999994 39.767294,-94.860742999999999 39.763094000000002,-94.859442999999999 39.753694000000003,-94.860369889104035 39.749534984666809,-94.860371 39.74953,-94.862942999999987 39.742994000000003,-94.870142999999999 39.734594,-94.875642999999997 39.730494,-94.884142999999995 39.726793999999998,-94.891743999999989 39.724893999999999,-94.899315999999999 39.724041999999997,-94.900553640444031 39.724102079633198,-94.901582061073228 39.724152002964722,-94.902612000000005 39.724201999999998,-94.906055088082866 39.724933471502588,-94.907014260749904 39.725137244236571,-94.907785666538786 39.725301126582274,-94.910067999999995 39.725785999999999,-94.911087398893699 39.726157408899255,-94.918323999999998 39.728793999999994,-94.93000499999998 39.735370000000003,-94.939221000000003 39.74157799999999,-94.944740999999979 39.744377,-94.948658825773634 39.745572502168315,-94.948680784417533 39.745579202723142,-94.948725999999994 39.745593,-94.952629999999999 39.745961,-94.955286 39.745688999999999,-94.960086000000004 39.743065,-94.963779819772341 39.740240978767318,-94.964692434782606 39.73954326086956,-94.965317999999982 39.739064999999989,-94.965565209393333 39.738728671232884,-94.970224508542714 39.732389687437191,-94.970421999999985 39.732120999999999,-94.971205999999981 39.729304999999997,-94.971078000000006 39.723146,-94.968452999999997 39.707402000000002,-94.968980999999999 39.692954,-94.969909 39.689050000000002,-94.971316999999999 39.686410000000002,-94.976096392737759 39.68160006801152,-94.976325000000003 39.68137,-94.981556999999995 39.678634000000002,-94.984149000000002 39.677849999999992,-94.986445080691666 39.677537608069159,-94.990587390516794 39.676974028501114,-94.993556999999996 39.676569999999998,-94.998766892420107 39.676509388876212,-95.001379 39.676479,-95.004602740773237 39.676177881356345,-95.008105239221649 39.675850724907868,-95.009022999999999 39.675764999999998,-95.010225986948086 39.675477408241932,-95.013209713780839 39.674764104372102,-95.015309999999985 39.674261999999999,-95.018317999999994 39.672868999999999,-95.021521942351953 39.670631293568427,-95.024595000000005 39.668484999999997,-95.027643999999995 39.665453999999997,-95.037464 39.652904999999997,-95.039049000000006 39.649639,-95.044554000000005 39.644370000000002,-95.049518000000006 39.637875999999999,-95.053366999999994 39.630347,-95.054924999999997 39.624994999999991,-95.055024819926729 39.623527163368095,-95.055152000000007 39.621656999999992,-95.054958456554544 39.620961328886679,-95.053131423647116 39.614394255464305,-95.053011999999981 39.613965,-95.052555891387243 39.613278556984888,-95.047910999999999 39.606287999999999,-95.046445000000006 39.601605999999997,-95.046361000000005 39.599556999999997,-95.047165000000007 39.595117000000002,-95.049277000000004 39.589582999999998,-95.054804000000004 39.582487999999998,-95.056897000000006 39.580567000000002,-95.059518999999995 39.579132,-95.064519000000004 39.577114999999999,-95.066275551338904 39.576786470694117,-95.068266439890465 39.576414113098046,-95.069315000000003 39.576217999999997,-95.072159999999982 39.576121999999991,-95.075842551355763 39.576644128527029,-95.076688000000004 39.576763999999997,-95.088569515113861 39.580713698327401,-95.089515000000006 39.581028000000003,-95.09068217809525 39.58095107619048,-95.095736000000002 39.580618,-95.099095000000005 39.579690999999997,-95.100375015351446 39.579100080742663,-95.10182940536555 39.578428661399109,-95.103228 39.577782999999997,-95.106109962410699 39.575487768136732,-95.106244982404746 39.575380236480051,-95.106274453941239 39.575356764970024,-95.106406000000007 39.575251999999999,-95.107454000000004 39.573842999999997,-95.108931052511622 39.56997896968771,-95.109155613535791 39.569391508783276,-95.112830712234896 39.559777298955126,-95.112877844119652 39.559653999999995,-95.113077000000004 39.559132999999996,-95.113262990573148 39.557121201967142,-95.113516735173974 39.554376531201555,-95.113557 39.553940999999995,-95.113330390574859 39.553319942050457,-95.109694540741444 39.543355336910984,-95.109303999999995 39.542284999999993,-95.106595999999996 39.537657000000003,-95.106363136618171 39.537386330858773,-95.106309238275287 39.537323682029822,-95.102887999999993 39.533346999999999,-95.096713422649174 39.527826015970483,-95.095319522838992 39.526579663685382,-95.092703999999998 39.524241000000004,-95.082713999999996 39.516711999999998,-95.077440999999993 39.513551999999997,-95.059460999999985 39.506143000000002,-95.05637999999999 39.503971999999997,-95.052176999999986 39.499995999999996,-95.050551999999996 39.497514000000002,-95.049844999999991 39.494414999999989,-95.048370000000006 39.480420000000002,-95.047133000000002 39.474970999999996,-95.045715999999999 39.472459,-95.040779999999998 39.466386999999997,-95.03749999999998 39.463689000000002,-95.033407999999994 39.460875999999992,-95.028497999999999 39.458286999999999,-95.015825000000007 39.452809000000002,-94.995767999999998 39.448174000000002,-94.990172 39.446192000000003,-94.982144000000005 39.440551999999997,-94.978797999999998 39.436241000000003,-94.976606000000004 39.426701,-94.972952000000006 39.421705000000003,-94.968547467194298 39.418879728230785,-94.966981164652054 39.417875029083376,-94.966065999999998 39.417287999999999,-94.965430539155946 39.417093446959996,-94.954817000000006 39.413843999999997,-94.951209000000006 39.411706999999993,-94.947863999999996 39.408603999999997,-94.946292999999983 39.405645999999997,-94.946662000000003 39.399717000000003,-94.946226999999993 39.395648,-94.945577 39.393850999999998,-94.942038999999994 39.389499,-94.939696999999995 39.387949999999996,-94.938205659338905 39.38711651736979,-94.938199994953891 39.387113351650086,-94.938198708293527 39.387112632559479,-94.937157999999982 39.386530999999998,-94.933651999999995 39.385545999999998,-94.932170703908099 39.385397898493565,-94.923109999999994 39.384492000000002,-94.919224999999997 39.385173999999999,-94.915858999999998 39.386347999999998,-94.909581000000003 39.388865000000003,-94.901822999999993 39.392797999999999,-94.896448416922993 39.39340032396553,-94.894979000000006 39.393565000000002,-94.891845000000004 39.393312999999999,-94.888971999999995 39.392431999999999,-94.888058227506249 39.391822741147728,-94.885025999999996 39.389800999999999,-94.880978999999996 39.383899,-94.879281000000006 39.37977999999999,-94.879087999999996 39.375702999999994,-94.881359999999987 39.370382999999997,-94.885216 39.366911000000002,-94.890928000000002 39.364030999999997,-94.896832000000003 39.363135,-94.899023999999997 39.362431,-94.902496999999997 39.360382999999999,-94.90716104958679 39.35683832231404,-94.907297 39.356735,-94.907510470967722 39.356484333333356,-94.909408999999997 39.354254999999995,-94.910016999999996 39.352542999999997,-94.91007929967077 39.352122876579188,-94.910166635146069 39.351533921963672,-94.910234386079424 39.351077037464393,-94.910640999999998 39.348334999999999,-94.910055514481613 39.342727430625168,-94.908683540921714 39.329587162119807,-94.908064999999993 39.323663000000003,-94.906599414484603 39.317389801180319,-94.905982468129508 39.31474906332776,-94.905548856768945 39.312893060899633,-94.905328999999995 39.311951999999998,-94.904604536115073 39.31007473956825,-94.903592654247163 39.307452709910535,-94.903137 39.306272,-94.902341179156608 39.304705098857582,-94.900693838394318 39.301461629999167,-94.900362755471093 39.300809756886117,-94.900048999999996 39.300192000000003,-94.895217000000002 39.29420799999999,-94.889432625546704 39.288730528394183,-94.887056 39.286479999999997,-94.882576 39.283327999999997,-94.881425972827699 39.282735692772164,-94.879585687759075 39.281787876778168,-94.878319999999988 39.281135999999996,-94.869470269042495 39.278423959123423,-94.867567999999991 39.277841000000002,-94.866576416802303 39.277461598502107,-94.857072000000002 39.273825000000002,-94.850573678793964 39.270595179638669,-94.850470600187833 39.270543947117169,-94.846320000000006 39.268481,-94.844203868589133 39.266965084952687,-94.840994595225254 39.264666085108807,-94.837855000000005 39.262416999999999,-94.836102527271095 39.260730409704507,-94.834879550067882 39.259553409087879,-94.832501320107042 39.257264586268427,-94.832102355305352 39.256880620143498,-94.831470999999993 39.256273,-94.827487000000005 39.249888999999996,-94.826571473591798 39.245793223963304,-94.825663000000006 39.241728999999999,-94.826110999999983 39.238289000000002,-94.826405091238243 39.237538367125239,-94.827108391663188 39.2357432765168,-94.827791000000005 39.234000999999999,-94.828117769197533 39.233533772937683,-94.83244435695299 39.227347452739551,-94.834698551534771 39.224124319346686,-94.834896 39.223841999999998,-94.834917496024659 39.223414229109203,-94.835039139715306 39.220993519665384,-94.835046603087861 39.220844998551456,-94.835055999999994 39.220658,-94.833551999999997 39.217793999999998,-94.831678999999994 39.215938,-94.823791 39.209873999999999,-94.820687000000007 39.208626000000002,-94.811662999999996 39.206594000000003,-94.800359054554335 39.206051410618606,-94.799662999999995 39.206018,-94.798924306591658 39.206116812235138,-94.793913945984244 39.206787029303406,-94.788135068391796 39.207560047994349,-94.787343000000007 39.207666000000003,-94.783838000000003 39.207154000000003,-94.781518000000005 39.206145999999997,-94.780294078498926 39.205273290755756,-94.778971577769184 39.204330290235411,-94.777838000000003 39.203522,-94.775537999999997 39.200602000000003,-94.770897097034492 39.191141697801093,-94.770859400196969 39.191064854247678,-94.770337999999995 39.190002,-94.763137999999998 39.179903000000003,-94.75233799999998 39.173202999999994,-94.74193799999999 39.170203,-94.736536999999998 39.169203000000003,-94.723636999999997 39.169002999999989,-94.714136999999994 39.170403,-94.696331999999998 39.178562999999997,-94.687235999999999 39.183503000000002,-94.680335999999983 39.184303,-94.669134999999997 39.182003000000002,-94.663835000000006 39.179102999999998,-94.660314999999997 39.168050999999991,-94.662434999999988 39.157602999999995,-94.650734999999983 39.154102999999999,-94.640034999999997 39.153102999999994,-94.623934000000006 39.156602999999997,-94.615834000000007 39.160003000000003,-94.608834000000002 39.160502999999999,-94.601732999999996 39.15960299999999,-94.596033000000006 39.157702999999998,-94.591932999999997 39.155003,-94.589933000000002 39.140402999999999,-94.592533000000003 39.135902999999992,-94.600433999999993 39.128503000000002,-94.605733999999998 39.122204000000004,-94.607033999999999 39.119404000000003,-94.607354 39.113444,-94.607234000000005 39.089604,-94.607333999999994 39.081703999999995,-94.607275518421304 39.072346947409343,-94.607234000000005 39.065703999999997,-94.607342812841125 39.057404745686583,-94.60738379566331 39.05427894858029,-94.607437239929951 39.050202705779334,-94.607518499034526 39.044004999999999,-94.607559479691474 39.040879368039988,-94.607612854426819 39.036808428453341,-94.60764748233197 39.034167326647299,-94.607654028188094 39.033668068249817,-94.60769507925167 39.030537066312085,-94.607898722639391 39.015005000000002,-94.607914652765047 39.013789994834404,-94.607991843462372 39.007902590176151,-94.608087526605189 39.000604749887366,-94.608092759229436 39.000205652880325,-94.608190956218394 38.992716079262479,-94.608212339138063 38.991085184540211,-94.608264438806202 38.98711149548862,-94.608279957450691 38.985927874365181,-94.608301211867541 38.984306780669819,-94.608333999999999 38.981805999999999,-94.608294286905348 38.97390309416464,-94.608273484679671 38.969763451253407,-94.608249262127771 38.964943163424849,-94.608207879518076 38.956708024096379,-94.608134000000007 38.942005999999999,-94.608134000000007 38.940005999999997,-94.607866 38.937398000000002,-94.607977999999989 38.936869999999992,-94.608002838442587 38.912906322207348,-94.608006216770249 38.909646973100827,-94.608010407202343 38.90560412040071,-94.608022064178897 38.894357681354862,-94.60802273861259 38.893706999999999,-94.608033000000006 38.883806999999997,-94.608033000000006 38.869207000000003,-94.608033000000006 38.868107000000002,-94.607992999999993 38.867271000000002,-94.608033000000006 38.861207,-94.608033000000006 38.855007,-94.608033000000006 38.850107,-94.608033000000006 38.847206999999997,-94.607624999999999 38.827559999999991,-94.607668973053535 38.825816299300072,-94.608041 38.811064000000002,-94.608617609754887 38.781926100280451,-94.609398999999996 38.742440000000002,-94.60945599999998 38.74069999999999,-94.609507757106428 38.73815999467709,-94.609625656590424 38.7323740198146,-94.610322172686637 38.698192151600097,-94.61071084056907 38.679118085101081,-94.61073851283922 38.677760054904219,-94.611602000000005 38.635384000000002,-94.611464999999995 38.625011,-94.611857999999998 38.620485000000002,-94.611908 38.609271999999997,-94.611905562149673 38.605890005062435,-94.611886999999996 38.580139000000003,-94.611902 38.580109999999998,-94.612176000000005 38.576546,-94.612156999999996 38.549816999999997,-94.612272000000004 38.547916999999998,-94.612464742072774 38.518760616499996,-94.612644000000003 38.491644,-94.612725999999995 38.484366999999999,-94.612696 38.483153999999999,-94.612865999999997 38.477570999999998,-94.613365000000002 38.403421999999999,-94.613264999999998 38.392426,-94.613275404637193 38.388718047420433,-94.613328999999993 38.369617999999996,-94.613311999999993 38.364407,-94.613085455228386 38.3436360393057,-94.612999999999985 38.335800999999996,-94.612825 38.324387000000002,-94.612787999999995 38.320141999999997,-94.612673 38.314832000000003,-94.612673 38.302526999999998,-94.612689368276676 38.301464114946214,-94.612843999999996 38.291422999999995,-94.612848999999997 38.289914000000003,-94.612707829046002 38.272362044447966,-94.612691999999996 38.270394000000003,-94.612613999999994 38.237766,-94.612634999999997 38.226987,-94.612658999999994 38.219251,-94.61265866950464 38.21872154645218,-94.612657999999982 38.217649000000002,-94.612821999999994 38.203918000000002,-94.612848 38.200713999999998,-94.613073 38.190551999999997,-94.61341774677895 38.168183959706163,-94.613422 38.16790799999999,-94.613748 38.160632999999997,-94.613855999999998 38.149768999999999,-94.613889466360249 38.136312911169284,-94.613919497343275 38.124238112111762,-94.614061000000007 38.067343,-94.614088999999993 38.065900999999997,-94.614054999999993 38.060088,-94.613980999999995 38.036949,-94.614211999999981 37.992462000000003,-94.614464999999996 37.987798999999995,-94.614511123427164 37.979395512107736,-94.614514360688489 37.978805697169918,-94.614557000000005 37.971036999999995,-94.614561999999992 37.951517000000003,-94.614593999999997 37.949977999999994,-94.614611999999994 37.944361999999998,-94.614754000000005 37.940769000000003,-94.614834999999999 37.936700000000002,-94.614778 37.934199999999997,-94.615181000000007 37.915944000000003,-94.615392999999983 37.906391999999997,-94.61546899999999 37.901775,-94.615706000000003 37.886842999999999,-94.615921 37.878331000000003,-94.615834000000007 37.872509999999998,-94.616 37.863126,-94.616282760205394 37.851281931678621,-94.616426000000004 37.845281999999997,-94.616433230053673 37.842955730230052,-94.61645 37.837560000000003,-94.616861999999998 37.819456000000002,-94.6176681324215 37.775831003788085,-94.617720999999989 37.77297,-94.617737774720197 37.764628336555312,-94.617744979193901 37.761045725680312,-94.617807999999997 37.729706999999998,-94.617975 37.722175999999997,-94.61780499999999 37.690178000000003,-94.617650999999995 37.687671000000002,-94.617687000000004 37.686652999999993,-94.617885 37.682214000000002,-94.617733999999999 37.673127,-94.617576 37.653671000000003,-94.617517909436387 37.643988652624088,-94.61747699999998 37.637169999999998,-94.617472819127315 37.636539916507168,-94.6173 37.610495,-94.617428000000004 37.609521999999998,-94.617283 37.571896000000002,-94.617315000000005 37.571498999999996,-94.617080999999999 37.567013000000003,-94.61711240153133 37.563155381499406,-94.617159999999984 37.557307999999999,-94.617186000000004 37.553485000000002,-94.617167532949537 37.551779056391354,-94.616988484457494 37.535238968895172,-94.616907999999981 37.527804000000003,-94.616788999999997 37.521509999999999,-94.616880369657522 37.506771761864755,-94.617022999999989 37.483764999999998,-94.617182999999997 37.469664999999999,-94.617180000000005 37.465203000000002,-94.617221999999998 37.460476,-94.617204999999984 37.46037299999999,-94.617200999999994 37.454788,-94.617131999999998 37.439818000000002,-94.617265000000003 37.425535999999994,-94.617510999999993 37.410908999999997,-94.617557000000005 37.396374999999999,-94.61759158917468 37.381725975861251,-94.617625000000004 37.367576,-94.617626 37.367444999999989,-94.617536999999999 37.364355000000003,-94.617636000000005 37.338417,-94.617694999999998 37.336841999999997,-94.617648000000003 37.323588999999998,-94.61807499999999 37.240436000000003,-94.618157999999994 37.237596999999994,-94.618122999999997 37.229334,-94.61815 37.228121000000002,-94.618218999999996 37.207771999999999,-94.618305000000007 37.207337000000003,-94.618319 37.188774000000002,-94.618504999999985 37.181184000000002,-94.618472999999994 37.174782,-94.618351000000004 37.160210999999997,-94.618071999999998 37.132345,-94.61807499999999 37.129755000000003,-94.61816441512984 37.118929895303054,-94.618212 37.113168999999992,-94.618150999999997 37.103968000000002,-94.618059000000002 37.096676000000002,-94.618088 37.093670999999993,-94.618089999999995 37.093494,-94.618085255103864 37.089305442941992,-94.618082 37.086432000000002,-94.61811999999999 37.085934000000002,-94.617981999999998 37.075077,-94.617954311863897 37.070346986543974,-94.617947706480578 37.069218577181687,-94.617910161110728 37.062804634983031,-94.617893975984089 37.060039701061122,-94.617874999999998 37.056798,-94.617877538275181 37.056339390079508,-94.617964999999998 37.040537,-94.617972200190749 37.032971759572447,-94.617994999999979 37.009015999999995,-94.618027702303792 37.004829720380044,-94.618080000000006 36.998134999999998,-94.625223999999989 36.998671999999999,-94.699735000000004 36.998804999999997,-94.701796999999999 36.998814000000003,-94.711286363060864 36.99879670415919,-94.712770000000006 36.99879399999999,-94.722629184733563 36.998741903378082,-94.732834603466486 36.998687977231512,-94.736330645670293 36.998669503899912,-94.737183000000002 36.998665000000003,-94.739323999999996 36.998686999999997,-94.745992043692311 36.998700535427304,-94.749560781475736 36.99870777958963,-94.749834600019099 36.998708335412474,-94.777257000000006 36.998764,-94.831280000000007 36.998812,-94.831539962039543 36.998812565955092,-94.840925999999996 36.998832999999998,-94.846637705524785 36.998860673615503,-94.849800999999999 36.998875999999996,-94.853196999999994 36.998874,-94.896852168601683 36.999075231107383,-94.904605402657381 36.99911097010289,-94.9407882710602 36.999277757196154,-94.995293000000004 36.999528999999995,-95.007620000000003 36.999513999999998,-95.011432999999997 36.999535000000002,-95.030323999999993 36.999516999999997,-95.037857000000002 36.999496999999998,-95.049498999999983 36.999580000000002,-95.073509 36.999509000000003,-95.1405498515593 36.999533623834409,-95.155186999999998 36.999538999999999,-95.155372 36.999540000000003,-95.159067907556633 36.999536629205572,-95.177300999999986 36.999519999999997,-95.195307 36.999564999999997,-95.267905305061163 36.999446910377756,-95.285983101167361 36.999417504731007,-95.322564999999997 36.999357999999994,-95.328057999999999 36.999364999999997,-95.328326999999987 36.999366000000002,-95.331209999999999 36.999380000000002,-95.377252424658963 36.999296311678272,-95.381753803085687 36.999288129815376,-95.407683000000006 36.999240999999998,-95.511578 36.999234999999999,-95.522414951940931 36.999281058114107,-95.534401000000003 36.999332000000003,-95.573598000000004 36.999309999999994,-95.601517312742303 36.999317968253862,-95.612139999999997 36.999321000000002,-95.615933999999996 36.999364999999997,-95.621011943860609 36.999361983160732,-95.624350000000007 36.999360000000003,-95.630078999999995 36.999319999999997,-95.638122589416028 36.999320470082949,-95.664300999999995 36.999321999999999,-95.674044398562955 36.999333876292773,-95.686452000000003 36.999349000000002,-95.696658999999997 36.999215,-95.71038 36.999370999999996,-95.710782524132014 36.999362783399121,-95.714887000000004 36.999279,-95.718053999999995 36.999254999999998,-95.741907999999995 36.999243999999997,-95.746466244276931 36.999250838506164,-95.759905000000003 36.999270999999993,-95.768719000000004 36.999205000000003,-95.786761999999996 36.999309999999994,-95.807979999999986 36.999124000000002,-95.819364496908179 36.999150471530008,-95.866899000000004 36.999260999999997,-95.873943999999995 36.999299999999998,-95.875256999999991 36.999302,-95.877150999999998 36.999304000000002,-95.910179999999997 36.999336,-95.928122000000002 36.999245000000002,-95.936991999999989 36.999267999999994,-95.964270378114222 36.999093604402042,-96.00081 36.99886,-96.095164142267308 36.998935940299688,-96.14121 36.998972999999999,-96.143207000000004 36.999133999999998,-96.147143 36.999021999999997,-96.149709 36.99904,-96.152383999999998 36.999050999999994,-96.154016999999982 36.999161,-96.184768000000005 36.999211000000003,-96.200028000000003 36.999028000000003,-96.217571000000007 36.999070000000003,-96.235320025971774 36.999130675786525,-96.27480962492784 36.999265672629733,-96.276368000000005 36.999270999999993,-96.279078999999996 36.999271999999991,-96.381556872639493 36.999226629434901,-96.394272 36.999220999999999,-96.415412000000003 36.999113,-96.500287999999998 36.998643,-96.525212323286397 36.998711038495294,-96.525495980566973 36.998711812823821,-96.551130926932458 36.998781791180214,-96.551130927020779 36.998781791180456,-96.624487489749981 36.998982040153741,-96.705431000000004 36.999203,-96.710481999999999 36.999270999999993,-96.731983006833033 36.99928335311408,-96.736589999999993 36.999285999999998,-96.741269999999986 36.999239000000003,-96.749837999999997 36.998987999999997,-96.792060000000006 36.999179999999996,-96.795198999999997 36.99886,-96.822790999999995 36.999181999999998,-96.867517000000007 36.999217000000002,-96.876289999999997 36.999232999999997,-96.902083000000005 36.999155000000002,-96.903509999999997 36.999132000000003,-96.917092999999994 36.999181999999998,-96.921914999999998 36.999150999999998,-96.924934279563146 36.999131784030439,-96.934641999999997 36.999070000000003,-96.967371 36.999066999999997,-96.975561999999996 36.999018999999997,-97.030081999999979 36.998928999999997,-97.039783999999983 36.999000000000002,-97.045562883576096 36.99899981011751,-97.100651999999997 36.998998,-97.104275999999999 36.999020000000002,-97.120284999999996 36.999014000000003,-97.122596999999999 36.999035999999997,-97.147721000000004 36.999110999999999,-97.202000013134437 36.999050609464689,-97.255829185181881 36.998990719420135,-97.342808466604069 36.998893946743877,-97.362376892203329 36.998872175019791,-97.364929972745273 36.99886933447624,-97.372421000000003 36.998860999999998,-97.384924999999996 36.998843,-97.462279999999993 36.998685000000002,-97.472860999999995 36.998721000000003,-97.527292000000003 36.998749999999994,-97.545899999999989 36.998708999999991,-97.546497999999985 36.998746999999995,-97.564536000000004 36.998711,-97.582460039051355 36.99869862770732,-97.606549 36.998682000000002,-97.637136999999996 36.999090000000002,-97.650465999999994 36.999003999999999,-97.692180007144742 36.998844793059916,-97.697103999999982 36.998826,-97.768704 36.998749999999994,-97.783432000000005 36.998961,-97.783489000000003 36.998846999999998,-97.802297999999979 36.998713000000002,-97.965379045838461 36.998468720211747,-98.033955000000006 36.998365999999997,-98.03989 36.998348999999997,-98.045341999999991 36.998327000000003,-98.111985000000004 36.998133000000003,-98.128185436781749 36.99814624647324,-98.147452 36.998162,-98.177595999999994 36.998008999999996,-98.190367496841162 36.998003995168112,-98.208218000000002 36.997996999999998,-98.219498999999999 36.997824,-98.237712000000002 36.99797199999999,-98.346187999999984 36.997962,-98.347186011230875 36.997961873429141,-98.354073 36.997960999999997,-98.408991 36.998513000000003,-98.418267999999998 36.998538000000003,-98.420209 36.998516000000002,-98.476584655565659 36.998733519956424,-98.485495952453391 36.998767903324406,-98.544871999999984 36.998997000000003,-98.622244241689657 36.999025734091177,-98.714511999999999 36.99906,-98.718464999999995 36.999179999999996,-98.761596999999995 36.999425000000002,-98.791936000000007 36.999254999999998,-98.793711000000002 36.999226999999991,-98.797451999999993 36.999228999999993,-98.811832237742053 36.99924038482925,-98.869449000000003 36.999285999999998,-98.880009 36.999262999999999,-98.880579999999995 36.999308999999997,-98.994371 36.999493,-99.000846251360556 36.99951188908193,-99.029336999999998 36.999594999999999,-99.044703416105833 36.999312701167916,-99.049695 36.999220999999999,-99.124882999999997 36.99942,-99.12944899999998 36.999422000000003,-99.215429691089184 36.999525607779709,-99.221470798208784 36.999532887387339,-99.22594390512576 36.999538277535649,-99.248119999999986 36.999564999999997,-99.277506000000002 36.999578999999997,-99.375390999999993 37.000176999999994,-99.375813215185289 37.000169016042221,-99.396673054015949 36.999774562980598,-99.407015 36.999578999999997,-99.456202999999988 36.999471,-99.484333000000007 36.999625999999999,-99.500394999999983 36.99957599999999,-99.500394999999983 36.999637,-99.502664999999993 36.999645,-99.504092999999997 36.999648,-99.508573999999982 36.999657999999997,-99.541115670095081 36.999572526667627,-99.558068000000006 36.999527999999998,-99.625399000000002 36.999670999999999,-99.648651999999998 36.999603999999998,-99.657657999999998 37.000197,-99.675479899119665 37.000294824261658,-99.700804554289192 37.000433831091229,-99.722499410223932 37.000552913981863,-99.774254999999997 37.000836999999997,-99.774816 37.000841,-99.786016000000004 37.000931,-99.875408999999991 37.001658999999997,-99.904897139036905 37.001652107487203,-99.995200999999994 37.001631000000003,-100.001285999999993 37.001699000000002,-100.002562999999995 37.001705999999999,-100.005706000000004 37.001725999999998,-100.08949117994996 37.002091554886341,-100.115721999999991 37.002206,-100.187546999999995 37.002082,-100.19237099999998 37.002035999999997,-100.193753999999998 37.002133,-100.201675999999992 37.002080999999997,-100.269984573601874 37.001795796937508,-100.395563941387664 37.001271475927872,-100.434302684862132 37.001109733298897,-100.434343961694367 37.0011095609592,-100.436759028295029 37.001099477534027,-100.462594151135718 37.000991610310841,-100.526354155903263 37.000725398506596,-100.551597999999998 37.000619999999998,-100.552683000000002 37.000734999999999,-100.591328000000004 37.000376000000003,-100.591413000000003 37.000399000000002,-100.629769999999994 37.000025,-100.63332699999998 36.999935999999998,-100.675551999999996 36.999687999999999,-100.734516999999997 36.999059000000003,-100.756894000000003 36.999356999999996,-100.759718826764541 36.999297806889686,-100.765484 36.999177000000003,-100.806116000000003 36.999091,-100.814277000000004 36.999085,-100.850054835707368 36.998687920265262,-100.855633999999981 36.998626000000002,-100.891659999999987 36.998604,-100.904274 36.998745,-100.904588000000004 36.998561000000002,-100.945565999999985 36.998151999999997,-100.958261085233985 36.99812508251128,-100.996501999999992 36.998044,-101.012641000000002 36.998176,-101.053589000000002 36.997966999999996,-101.066742000000005 36.997920999999998,-101.096255470166753 36.997758490771822,-101.211485999999979 36.997123999999999,-101.212908999999996 36.997044000000002,-101.283204233333976 36.996668964004151,-101.357796999999991 36.996271,-101.359673999999998 36.996231999999999,-101.37818 36.996164,-101.413867999999994 36.996008000000003,-101.415004999999994 36.995966000000003,-101.485326 36.995610999999997,-101.519065999999995 36.99554599999999,-101.555239 36.99541399999999,-101.600396000000003 36.995152999999995,-101.601592999999994 36.995094999999999,-101.672152845644291 36.994768289529276,-101.672152845650672 36.994768289529254,-101.718235173867967 36.994554916342196,-101.761767880686108 36.994353348566563,-101.826607533764985 36.994053124077894,-101.862548907230888 36.993886706153717,-101.881050066963184 36.993801040963412,-101.899294480822903 36.993716564573397,-101.902439999999999 36.993701999999999,-101.905152836625547 36.993689460946754,-101.93521516037174 36.99355050931414,-102.000446999999994 36.993248999999992,-102.000446999999994 36.993271999999997,-102.028206999999981 36.993124999999999,-102.042240000000007 36.993082999999999,-102.041951999999995 37.024741999999996,-102.04195 37.030805,-102.041921000000002 37.032178000000002,-102.041748999999996 37.034396999999998,-102.04191999999999 37.035083,-102.041983000000002 37.106551000000003,-102.041808999999986 37.111972999999999,-102.042091999999997 37.125020999999997,-102.042135000000002 37.125020999999997,-102.042121535383529 37.12671399835564,-102.042001999999997 37.141744000000003,-102.041962999999996 37.258164,-102.041663999999997 37.29764999999999,-102.041816999999995 37.309489999999997,-102.041973999999996 37.352612999999998,-102.042089000000004 37.352818999999997,-102.041523999999995 37.375017999999997,-102.041585760607518 37.389190434149839,-102.041675999999981 37.409897999999991,-102.041668999999999 37.434739999999998,-102.041754999999995 37.434854999999992,-102.041800999999992 37.469487999999998,-102.041786000000002 37.506065999999997,-102.04201599999999 37.535260999999998,-102.041899 37.541186000000003,-102.041893999999999 37.557977,-102.041618 37.607868000000003,-102.041584999999998 37.644281999999997,-102.041581999999991 37.654494999999997,-102.041694000000007 37.665680999999999,-102.041573999999997 37.680436,-102.041876000000002 37.723875,-102.041989965869121 37.73854062916552,-102.042158 37.760164000000003,-102.042668000000006 37.788758,-102.042952999999997 37.803534999999997,-102.043032999999994 37.824145999999999,-102.043218999999993 37.86792899999999,-102.043714531331204 37.914003914798144,-102.043845000000005 37.926135000000002,-102.043844000000007 37.928101999999996,-102.044644000000005 38.045532,-102.044255000000007 38.113010999999993,-102.044450868202546 38.120049353793199,-102.044589000000002 38.125012999999996,-102.044415729020699 38.133607343100145,-102.044251000000003 38.141777999999995,-102.044296878804843 38.175558844899406,-102.044398 38.250014999999998,-102.044510721728557 38.262483349316234,-102.044567999999998 38.268819,-102.044612999999998 38.312323999999997,-102.044944 38.384419,-102.044441999999989 38.415801999999999,-102.044936000000007 38.41968,-102.045323999999979 38.453646999999997,-102.045262999999991 38.505395,-102.045261999999994 38.505531999999995,-102.045112000000003 38.523783999999999,-102.045222999999993 38.543796999999998,-102.045188999999979 38.558731999999992,-102.045210999999995 38.581608999999993,-102.045287999999999 38.615248999999999,-102.045074 38.669617000000002,-102.045102 38.674945999999998,-102.045159999999996 38.675221,-102.045126999999994 38.686725000000003,-102.045156000000006 38.688555,-102.045211999999992 38.697566999999999,-102.045375000000007 38.754338999999995,-102.045287000000002 38.755527999999998,-102.045371000000003 38.770063999999998,-102.045447999999993 38.783453000000002,-102.045333999999997 38.799463000000003,-102.045387999999988 38.813391999999993,-102.046570999999986 39.047038,-102.047133999999986 39.129700999999997,-102.047188612927897 39.133146793270186,-102.047250000000005 39.13702,-102.047851021058236 39.220289738242592,-102.048449000000005 39.30313799999999,-102.04895999999998 39.37371199999999,-102.049100972149461 39.394064428437375,-102.049166999999983 39.403596999999998,-102.049369999999996 39.418210000000002,-102.049368999999999 39.423333,-102.049678999999998 39.506183,-102.049672999999999 39.536690999999998,-102.049553999999986 39.538932000000003,-102.049763758475066 39.568170000775439,-102.04980599999999 39.574058,-102.049954 39.592331,-102.050258163748609 39.627242889069393,-102.050421999999983 39.646047999999993,-102.050099000000003 39.653812000000002,-102.05059399999999 39.67559399999999,-102.050898693231389 39.741794606053567,-102.051254 39.818992,-102.051317999999995 39.833311000000002,-102.051362999999995 39.843471,-102.051569 39.849805000000003,-102.051743999999999 40.003078000000002))
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/nz.wkt b/webapp/django/contrib/gis/tests/geoapp/sql/nz.wkt
new file mode 100644
index 0000000..7e7b593
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/nz.wkt
@@ -0,0 +1 @@
+MULTIPOLYGON (((174.616364000000004 -36.100861000000002,174.634978999999987 -36.124718,174.708862000000011 -36.205559,174.781096999999988 -36.266945,174.812744000000009 -36.339165,174.768311000000011 -36.34639,174.710784999999987 -36.525832999999999,174.708587999999992 -36.533332999999999,174.70773299999999 -36.541671999999998,174.714690999999988 -36.595832999999999,174.717194000000006 -36.603057999999997,174.774414000000007 -36.730277999999998,174.808319000000012 -36.805275000000002,174.854400999999996 -36.847777999999998,174.896636999999998 -36.878334000000002,175.011658000000011 -36.871941,175.020813000000004 -36.873610999999997,175.055542000000003 -36.880279999999999,175.076629999999994 -36.890839,175.082458000000003 -36.895279000000002,175.087463000000014 -36.900832999999999,175.091644000000002 -36.925559999999997,175.161652000000004 -36.955559,175.221069 -36.937775000000002,175.230255 -36.939438000000003,175.278320000000008 -36.965279000000002,175.310516000000007 -36.995002999999997,175.319976999999994 -37.005836000000002,175.323853000000014 -37.012222,175.328856999999999 -37.026947,175.330261000000007 -37.035277999999998,175.330535999999995 -37.044449,175.321899000000002 -37.06472,175.31942699999999 -37.095275999999998,175.317748999999992 -37.144165,175.319121999999993 -37.152495999999999,175.328856999999999 -37.168892,175.373290999999995 -37.216659999999997,175.385254000000003 -37.225830000000002,175.404967999999997 -37.228050000000003,175.579131999999987 -37.244446000000003,175.58914200000001 -37.169449,175.551636000000002 -37.024718999999997,175.547484999999995 -37.009171000000002,175.542480000000012 -36.994446000000003,175.536102 -36.980826999999998,175.524993999999992 -36.961669999999998,175.498566000000011 -36.927222999999998,175.484406000000007 -36.920279999999998,175.476348999999999 -36.917777999999998,175.464416999999997 -36.90889,175.435241999999988 -36.866942999999999,175.46691899999999 -36.809998,175.509430000000009 -36.776108,175.486358999999993 -36.679726000000002,175.463593000000003 -36.621383999999999,175.378296000000006 -36.570557,175.366364000000004 -36.561667999999997,175.361633000000012 -36.556389000000003,175.356628 -36.541671999999998,175.353850999999992 -36.525002,175.35244800000001 -36.489998,175.353577 -36.481940999999999,175.360229000000004 -36.478050000000003,175.538025000000005 -36.514724999999999,175.542755 -36.519996999999996,175.604950000000002 -36.622771999999998,175.631072999999986 -36.710555999999997,175.763610999999997 -36.713614999999997,175.840789999999998 -36.754173000000002,175.733582000000013 -36.805832000000002,175.701629999999994 -36.844161999999997,175.707458000000003 -36.869995000000003,175.709960999999993 -36.875275000000002,175.714690999999988 -36.880828999999999,175.720519999999993 -36.885277000000002,175.735779000000008 -36.891387999999999,175.74383499999999 -36.893889999999999,175.758330999999998 -36.876106,175.761382999999995 -36.869446000000003,175.757751000000013 -36.863059999999997,175.753051999999997 -36.857779999999998,175.749114999999989 -36.851394999999997,175.75 -36.843055999999997,175.752196999999995 -36.835555999999997,175.756378000000012 -36.830002,175.765533000000005 -36.828055999999997,175.808013999999986 -36.824173000000002,175.817200000000014 -36.825836000000002,175.833587999999992 -36.830832999999998,175.845519999999993 -36.839722000000002,175.849120999999997 -36.846107000000003,175.878570999999994 -36.914444000000003,175.881072999999986 -36.921669,175.918304000000006 -37.067504999999997,175.917480000000012 -37.075836000000002,175.915253000000007 -37.083061,175.898314999999997 -37.115004999999996,175.884154999999993 -37.168892,175.883330999999998 -37.176949,175.887206999999989 -37.244163999999998,175.892212 -37.249724999999998,175.921082000000013 -37.251671000000002,175.927185000000009 -37.256110999999997,175.93081699999999 -37.262504999999997,175.936371000000008 -37.278885000000002,175.940093999999988 -37.299717,175.974396000000013 -37.418059999999997,175.976074000000011 -37.453055999999997,176.026931999999988 -37.483108999999999,176.035583000000003 -37.487282,176.059417999999994 -37.502502,176.088287000000008 -37.525557999999997,176.093291999999991 -37.531112999999998,176.165526999999997 -37.613892,176.169433999999995 -37.620277000000002,176.167205999999993 -37.625832000000003,176.160247999999996 -37.624167999999997,176.082458000000003 -37.602500999999997,176.066924999999998 -37.59639,176.061095999999992 -37.591942000000003,176.057189999999991 -37.585555999999997,176.062744000000009 -37.580832999999998,176.070800999999989 -37.577781999999999,176.088287000000008 -37.580002,176.095245000000006 -37.576110999999997,176.090239999999994 -37.570838999999999,176.062468999999993 -37.546669,176.023087000000004 -37.528221000000002,176.018767999999994 -37.526057999999999,176.013931000000014 -37.524554999999999,176.007598999999999 -37.524222999999999,175.955535999999995 -37.521110999999998,175.946349999999995 -37.523055999999997,175.940796000000006 -37.527779000000002,175.953583000000009 -37.558891000000003,175.994415000000004 -37.638893000000003,176.071899000000002 -37.655273,176.14498900000001 -37.675277999999999,176.242187999999999 -37.709442000000003,176.267486999999988 -37.676392,176.488281 -37.756667999999998,176.521636999999998 -37.769447,176.527771 -37.773887999999999,176.537475999999998 -37.784447,176.549712999999997 -37.793334999999999,176.656646999999992 -37.855559999999997,176.671082000000013 -37.862502999999997,176.686645999999996 -37.868332000000002,176.759154999999993 -37.892775999999998,176.784149000000014 -37.900275999999998,176.80304000000001 -37.903328000000002,176.819702000000007 -37.904442000000003,176.838287000000008 -37.907501000000003,176.917755 -37.926108999999997,176.943848000000003 -37.932502999999997,177.08273299999999 -37.967216,177.107468000000011 -37.987220999999998,177.159424 -38.013336000000002,177.415253000000007 -37.982498,177.47357199999999 -37.962502,177.545806999999996 -37.919167000000002,177.552459999999996 -37.915000999999997,177.571625000000012 -37.902222000000002,177.599120999999997 -37.878051999999997,177.603577 -37.872498,177.646941999999996 -37.805,177.732178000000005 -37.682502999999997,177.738861000000014 -37.678336999999999,177.746917999999994 -37.675277999999999,177.791931000000005 -37.666946000000003,177.849396000000013 -37.657218999999998,177.858856000000003 -37.656661999999997,177.868010999999996 -37.654442000000003,177.875792999999987 -37.651389999999999,178.0 -37.592224000000002,178.006653 -37.588332999999999,178.012206999999989 -37.583328000000002,178.018004999999988 -37.550831000000002,178.05581699999999 -37.542777999999998,178.064972000000012 -37.542228999999999,178.187744000000009 -37.546951,178.281921000000011 -37.560828999999998,178.306915000000004 -37.568061999999998,178.311919999999986 -37.573334000000003,178.312468999999993 -37.578887999999999,178.306915000000004 -37.583610999999998,178.321075000000008 -37.602500999999997,178.336365 -37.618332000000002,178.34970100000001 -37.626944999999999,178.367737000000005 -37.630828999999999,178.448028999999991 -37.645279000000002,178.457458000000003 -37.646667,178.468018 -37.646949999999997,178.488861000000014 -37.644165,178.497192000000013 -37.646667,178.504424999999998 -37.649994,178.550536999999991 -37.6875,178.555542000000003 -37.692497000000003,178.559692000000013 -37.698883000000002,178.56552099999999 -37.713332999999999,178.562468999999993 -37.719994,178.483306999999996 -37.826393000000003,178.455230999999998 -37.860000999999997,178.449982000000006 -37.865004999999996,178.429687999999999 -37.876944999999999,178.419983000000002 -37.887779000000002,178.350525000000005 -38.004722999999998,178.347473000000008 -38.011116,178.347197999999992 -38.019722000000002,178.348846000000009 -38.027779000000002,178.354950000000002 -38.032218999999998,178.360229000000004 -38.037506,178.364136000000002 -38.043616999999998,178.375792999999987 -38.072777000000002,178.378296000000006 -38.089995999999999,178.377746999999999 -38.09861,178.353850999999992 -38.185555,178.319976999999994 -38.248055,178.318024000000008 -38.255561999999998,178.317474000000004 -38.263893000000003,178.320800999999989 -38.398612999999997,178.302459999999996 -38.528885000000002,178.300536999999991 -38.536391999999999,178.296356000000003 -38.541946000000003,178.158874999999995 -38.649169999999998,178.074982000000006 -38.713889999999999,178.068297999999999 -38.717773,178.060241999999988 -38.721107000000003,178.050812000000008 -38.721381999999998,178.044433999999995 -38.717216,177.928864000000004 -38.722220999999998,177.941070999999994 -38.793616999999998,177.923858999999993 -38.918334999999999,177.917786000000007 -38.942802,177.909697999999992 -38.969718999999998,177.897705000000002 -39.047942999999997,177.893859999999989 -39.064776999999999,177.906708000000009 -39.064278000000002,177.923034999999999 -39.089165,177.942200000000014 -39.091942000000003,177.967743000000013 -39.098334999999999,177.991332999999997 -39.115004999999996,177.996612999999996 -39.120277000000002,177.999390000000005 -39.127495000000003,177.909973000000008 -39.256950000000003,177.898865 -39.267502,177.874968999999993 -39.286118000000002,177.868010999999996 -39.290283000000002,177.861908 -39.285834999999999,177.844970999999987 -39.251396,177.839416999999997 -39.236946000000003,177.824127000000004 -39.193053999999997,177.823577999999998 -39.183883999999999,177.826629999999994 -39.177222999999998,177.841644000000002 -39.152779000000002,177.822021000000007 -39.114445000000003,177.823195999999996 -39.110115,177.82351700000001 -39.105110000000003,177.82119800000001 -39.101275999999999,177.816696000000007 -39.099274,177.680266999999986 -39.075279000000002,177.628845000000013 -39.071114,177.426085999999998 -39.064163,177.387755999999996 -39.077781999999999,177.246917999999994 -39.128334000000002,177.206085000000002 -39.143616000000002,177.149138999999991 -39.165000999999997,177.054961999999989 -39.204445,176.935790999999995 -39.349997999999999,176.931365999999997 -39.355559999999997,176.903870000000012 -39.398055999999997,176.898865 -39.412216,176.89776599999999 -39.438048999999999,176.899414000000007 -39.446387999999999,176.946625000000012 -39.664444000000003,177.01080300000001 -39.654998999999997,177.107178000000005 -39.660828000000002,177.116913000000011 -39.662216,177.120789000000002 -39.66861,177.119110000000006 -39.676108999999997,177.115783999999991 -39.682502999999997,177.08273299999999 -39.729996,177.073577999999998 -39.741385999999999,177.068024000000008 -39.746108999999997,177.059692000000013 -39.749167999999997,177.050262000000004 -39.751396,177.033874999999995 -39.757506999999997,177.028045999999989 -39.762504999999997,177.023590000000013 -39.768059,177.020263999999997 -39.774718999999997,176.894713999999993 -40.034728999999999,176.890533000000005 -40.049728000000002,176.889983999999998 -40.058052000000004,176.89498900000001 -40.082779000000002,176.893035999999995 -40.090279000000002,176.874114999999989 -40.121383999999999,176.834136999999998 -40.181671,176.808319000000012 -40.216659999999997,176.796935999999988 -40.226387000000003,176.687195000000003 -40.321387999999999,176.644135000000006 -40.379997000000003,176.628296000000006 -40.421944000000003,176.539977999999991 -40.495002999999997,176.521362000000011 -40.513893000000003,176.500823999999994 -40.535004,176.441924999999998 -40.600281000000003,176.405243000000013 -40.643889999999999,176.386108000000007 -40.675002999999997,176.35522499999999 -40.688606,176.349396000000013 -40.693610999999997,176.288574000000011 -40.793892,176.239136000000002 -40.90889,176.22079500000001 -40.931671,176.195526 -40.941665999999998,176.172760000000011 -40.952224999999999,176.158600000000007 -40.959999000000003,176.152771 -40.964722000000002,176.142212 -40.975273,176.134154999999993 -40.987502999999997,176.120789000000002 -41.013618,176.11300700000001 -41.035277999999998,176.098297000000002 -41.087218999999997,176.087463000000014 -41.116112,176.080811000000011 -41.129165999999998,176.062195000000003 -41.151938999999999,175.984679999999997 -41.231383999999998,175.955230999999998 -41.255279999999999,175.819121999999993 -41.347220999999998,175.743561 -41.392226999999998,175.736358999999993 -41.396110999999998,175.557738999999998 -41.485000999999997,175.471069 -41.541389000000002,175.427459999999996 -41.564444999999999,175.323028999999991 -41.614449,175.313292999999987 -41.616394,175.230804000000006 -41.620834000000002,175.222197999999992 -41.618332000000002,175.21691899999999 -41.612777999999999,175.184692000000013 -41.535834999999999,175.181915000000004 -41.519447,175.181091000000009 -41.500838999999999,175.188568000000004 -41.461112999999997,175.193024000000008 -41.446106,175.193848000000003 -41.437775000000002,175.191070999999994 -41.430557,175.186095999999992 -41.425002999999997,175.080261000000007 -41.385559,175.063018999999997 -41.380279999999999,175.05304000000001 -41.378608999999997,175.045532000000009 -41.378608999999997,175.027190999999988 -41.381667999999998,174.993286000000012 -41.393332999999998,174.985779000000008 -41.397224,174.972747999999996 -41.405830000000002,174.960509999999999 -41.415275999999999,174.949982000000006 -41.425559999999997,174.944976999999994 -41.431114,174.94165000000001 -41.437775000000002,174.936919999999986 -41.443328999999999,174.918578999999994 -41.448051,174.908600000000007 -41.448334000000003,174.872467 -41.429442999999999,174.86605800000001 -41.425002999999997,174.861084000000005 -41.419724000000002,174.861633000000012 -41.347496,174.863861000000014 -41.340279000000002,174.870789000000002 -41.327224999999999,174.87912 -41.315002,174.883881000000002 -41.309441,174.894440000000003 -41.290000999999997,174.89776599999999 -41.282501000000003,174.899993999999992 -41.275002,174.901916999999997 -41.258338999999999,174.901916999999997 -41.251114,174.898865 -41.234444000000003,174.89498900000001 -41.228050000000003,174.887482000000006 -41.224442000000003,174.827179 -41.218887000000002,174.818848000000003 -41.221938999999999,174.787475999999998 -41.244446000000003,174.778045999999989 -41.255836000000002,174.774414000000007 -41.262222,174.771087999999992 -41.278053,174.778594999999996 -41.281387000000002,174.796082000000013 -41.286949,174.818024000000008 -41.284728999999999,174.824127000000004 -41.289169,174.829407000000003 -41.294724000000002,174.833313000000004 -41.301108999999997,174.832184000000012 -41.309441,174.82995600000001 -41.316665999999998,174.826355000000007 -41.323334000000003,174.821625000000012 -41.328887999999999,174.815796000000006 -41.333610999999998,174.807189999999991 -41.336387999999999,174.744689999999991 -41.347496,174.700531000000012 -41.344444000000003,174.671906000000007 -41.338332999999999,174.654694000000006 -41.333061,174.648314999999997 -41.328612999999997,174.629669000000007 -41.315002,174.59191899999999 -41.27861,174.591644000000002 -41.271385000000002,174.594116000000014 -41.263893000000003,174.601074000000011 -41.250838999999999,174.608306999999996 -41.237777999999999,174.61300700000001 -41.232216,174.619110000000006 -41.23111,174.627746999999999 -41.233887000000003,174.637482000000006 -41.235557999999997,174.648590000000013 -41.234444000000003,174.666931000000005 -41.229720999999998,174.681365999999997 -41.221938999999999,174.694702000000007 -41.213614999999997,174.712738000000002 -41.199440000000003,174.718567000000007 -41.194716999999997,174.800812000000008 -41.100281000000003,174.844421000000011 -41.041671999999998,174.874390000000005 -41.018059,174.882721000000004 -41.015006999999997,174.892486999999988 -41.013061999999998,174.901093000000003 -41.010283999999999,174.908324999999991 -41.006393000000003,174.932189999999991 -40.987502999999997,174.94165000000001 -40.976387000000003,174.945251000000013 -40.969718999999998,174.947478999999987 -40.962218999999997,175.014983999999998 -40.84861,175.09857199999999 -40.755836000000002,175.112731999999994 -40.738892,175.120789000000002 -40.726944000000003,175.127746999999999 -40.713614999999997,175.164153999999996 -40.631943,175.169708000000014 -40.616942999999999,175.171906000000007 -40.609726000000002,175.187468999999993 -40.530830000000002,175.23800700000001 -40.329726999999998,175.23135400000001 -40.280830000000002,175.201629999999994 -40.181671,175.196349999999995 -40.166946000000003,175.178314 -40.134171000000002,175.15554800000001 -40.095832999999999,175.071625000000012 -40.003059,175.055542000000003 -39.987777999999999,175.022217000000012 -39.958053999999997,174.986358999999993 -39.93,174.974120999999997 -39.920836999999999,174.960784999999987 -39.912773,174.938873 -39.902222000000002,174.923034999999999 -39.895836000000003,174.836638999999991 -39.865004999999996,174.828307999999993 -39.862502999999997,174.790802000000014 -39.854720999999998,174.781096999999988 -39.853057999999997,174.751373 -39.865555,174.740509000000003 -39.866661,174.729674999999986 -39.865836999999999,174.57607999999999 -39.829169999999998,174.558013999999986 -39.824722,174.549408 -39.822226999999998,174.542205999999993 -39.818610999999997,174.523865 -39.805,174.421356000000003 -39.726944000000003,174.410521999999986 -39.716942000000003,174.376068000000004 -39.678612,174.353577 -39.639999000000003,174.348846000000009 -39.634444999999999,174.336638999999991 -39.625557,174.316070999999994 -39.613892,174.30886799999999 -39.610283000000003,174.217194000000006 -39.579726999999998,174.208862000000011 -39.577224999999999,174.040802000000014 -39.552779999999998,173.997741999999988 -39.551392,173.986908 -39.550552000000003,173.970245000000006 -39.545279999999998,173.963012999999989 -39.541671999999998,173.871062999999992 -39.483330000000002,173.851898000000006 -39.470551,173.839966000000004 -39.461387999999999,173.810790999999995 -39.4375,173.79525799999999 -39.421944000000003,173.786652000000004 -39.409996,173.775817999999987 -39.390839,173.769713999999993 -39.376944999999999,173.762206999999989 -39.354720999999998,173.754424999999998 -39.305,173.751923000000005 -39.288612,173.751647999999989 -39.269996999999996,173.781921000000011 -39.191383000000002,173.785247999999996 -39.184998,173.800536999999991 -39.169167000000002,173.82995600000001 -39.145836000000003,173.844421000000011 -39.138336000000002,173.868010999999996 -39.128883000000002,173.892761000000007 -39.120552000000004,174.011108000000007 -39.073334000000003,174.114685000000009 -39.024445,174.187744000000009 -38.988608999999997,174.209136999999998 -38.977218999999998,174.226623999999987 -38.972496,174.248016000000007 -38.970551,174.259978999999987 -38.970275999999998,174.281372000000005 -38.969994,174.293029999999987 -38.969994,174.313292999999987 -38.972496,174.351348999999999 -38.979438999999999,174.375244000000009 -38.979163999999997,174.384704999999997 -38.977218999999998,174.392761000000007 -38.974442000000003,174.456359999999989 -38.940277000000002,174.546082000000013 -38.871941,174.557738999999998 -38.860557999999997,174.568024000000008 -38.850281000000003,174.587738000000002 -38.828887999999999,174.594421000000011 -38.815834000000002,174.603302000000014 -38.786118000000002,174.608582000000013 -38.763061999999998,174.625518999999997 -38.677779999999998,174.642486999999988 -38.590836000000003,174.681091000000009 -38.379165999999998,174.724396000000013 -38.185828999999998,174.838561999999996 -38.157218999999998,174.848021999999986 -38.156944000000003,174.85635400000001 -38.154167,174.926636000000002 -38.116112,174.932465000000008 -38.111389000000003,174.940246999999999 -38.101112,174.898590000000013 -38.075004999999997,174.877166999999986 -38.064163,174.892486999999988 -37.976387000000003,174.893585000000002 -37.969994,174.868286000000012 -37.943610999999997,174.861084000000005 -37.939995000000003,174.85522499999999 -37.944716999999997,174.834686000000005 -37.963614999999997,174.830261000000007 -37.969161999999997,174.828033000000005 -37.976661999999997,174.828583000000009 -37.995002999999997,174.822754000000003 -37.999724999999998,174.814696999999995 -38.002502,174.804137999999995 -38.001944999999999,174.797211000000004 -37.998336999999999,174.791077 -37.993614,174.786376999999987 -37.988334999999999,174.783874999999995 -37.980826999999998,174.783600000000007 -37.971663999999997,174.788025000000005 -37.868332000000002,174.788879000000009 -37.860000999999997,174.791077 -37.852783000000002,174.795532000000009 -37.846947,174.819702000000007 -37.829169999999998,174.826629999999994 -37.825279000000002,174.841339000000005 -37.818610999999997,174.872741999999988 -37.806106999999997,174.883330999999998 -37.805,174.903045999999989 -37.807502999999997,174.945251000000013 -37.810555,174.967467999999997 -37.809165999999998,174.975525000000005 -37.806389000000003,174.974975999999998 -37.75,174.974670000000003 -37.740836999999999,174.966644000000002 -37.739998,174.951355000000007 -37.743057,174.94442699999999 -37.745002999999997,174.93081699999999 -37.752502,174.906921000000011 -37.774169999999998,174.870789000000002 -37.783057999999997,174.861633000000012 -37.785004,174.848297000000002 -37.769722000000002,174.828307999999993 -37.710830999999999,174.764160000000004 -37.527779000000002,174.744415000000004 -37.487502999999997,174.724975999999998 -37.447220000000002,174.717467999999997 -37.425002999999997,174.714690999999988 -37.408607000000003,174.714690999999988 -37.399445,174.719116000000014 -37.393616000000002,174.725799999999992 -37.389999000000003,174.744415000000004 -37.385834000000003,174.760528999999991 -37.380279999999999,174.767486999999988 -37.376389000000003,174.773041000000006 -37.371665999999998,174.831635000000006 -37.308052000000004,174.840789999999998 -37.296951,174.840515000000011 -37.291389000000002,174.82995600000001 -37.290557999999997,174.821899000000002 -37.291671999999998,174.812744000000009 -37.293616999999998,174.804687999999999 -37.296393999999999,174.797760000000011 -37.300277999999999,174.766083000000009 -37.321114,174.754700000000014 -37.330559,174.751373 -37.336945,174.744965000000008 -37.359169,174.740509000000003 -37.364722999999998,174.733582000000013 -37.368606999999997,174.724120999999997 -37.368889000000003,174.717194000000006 -37.365279999999998,174.711365 -37.360557999999997,174.701629999999994 -37.349724000000002,174.69442699999999 -37.336945,174.660187000000008 -37.273311999999997,174.645813000000004 -37.236389000000003,174.639709000000011 -37.224442000000003,174.599975999999998 -37.153885000000002,174.578307999999993 -37.115555,174.569976999999994 -37.103614999999998,174.555542000000003 -37.087502,174.551909999999992 -37.080832999999998,174.549712999999997 -37.073616,174.55304000000001 -37.067222999999998,174.558593999999999 -37.0625,174.568848000000003 -37.061385999999999,174.644135000000006 -37.061110999999997,174.661376999999987 -37.065551999999997,174.664977999999991 -37.071944999999999,174.666381999999999 -37.080283999999999,174.661925999999994 -37.085830999999999,174.650542999999999 -37.095275999999998,174.646087999999992 -37.100838000000003,174.648590000000013 -37.108055,174.703856999999999 -37.197777000000002,174.733856000000003 -37.196106,174.716644000000002 -37.154167,174.72357199999999 -37.150275999999998,174.87912 -37.088889999999999,174.887482000000006 -37.059165999999998,174.795532000000009 -37.023055999999997,174.804413000000011 -36.972220999999998,174.824982000000006 -36.960830999999999,174.829407000000003 -36.955002,174.83273299999999 -36.948608,174.828033000000005 -36.943053999999997,174.818848000000003 -36.941383000000002,174.770263999999997 -36.936661,174.696625000000012 -36.93972,174.686095999999992 -36.940834000000002,174.659697999999992 -36.947495000000004,174.653045999999989 -36.951393000000003,174.641662999999994 -36.960830999999999,174.622467 -36.982216,174.619110000000006 -36.988892,174.617187999999999 -36.996108999999997,174.600525000000005 -37.022224,174.524688999999995 -37.045555,174.515533000000005 -37.045555,174.508605999999986 -37.041946000000003,174.502472000000012 -37.037506,174.498016000000007 -37.031944000000003,174.490783999999991 -37.019165,174.484679999999997 -37.005561999999998,174.459228999999993 -36.944031000000003,174.451904000000013 -36.923889000000003,174.446930000000009 -36.909163999999997,174.443024000000008 -36.893616000000002,174.439147999999989 -36.868606999999997,174.436645999999996 -36.852226000000002,174.43386799999999 -36.835555999999997,174.427764999999994 -36.812775000000002,174.422760000000011 -36.798057999999997,174.416655999999989 -36.784171999999998,174.409697999999992 -36.771385000000002,174.406096999999988 -36.765006999999997,174.390533000000005 -36.740279999999998,174.344299000000007 -36.679336999999997,174.301085999999998 -36.62722,174.284973000000008 -36.612777999999999,174.267486999999988 -36.599167,174.236908 -36.568061999999998,174.208862000000011 -36.535277999999998,174.187744000000009 -36.496948000000003,174.17804000000001 -36.467498999999997,174.177764999999994 -36.458336000000003,174.178864000000004 -36.449997000000003,174.181091000000009 -36.442497000000003,174.184417999999994 -36.436110999999997,174.189972000000012 -36.431389000000003,174.196930000000009 -36.427779999999998,174.20495600000001 -36.428612,174.24383499999999 -36.440834000000002,174.251923000000005 -36.443610999999997,174.257751000000013 -36.448051,174.300262000000004 -36.515839,174.348846000000009 -36.601944000000003,174.367919999999998 -36.629165999999998,174.370728000000014 -36.6325,174.422484999999995 -36.667220999999998,174.430542000000003 -36.668059999999997,174.453033000000005 -36.651108,174.456359999999989 -36.644722000000002,174.465515000000011 -36.582779000000002,174.465515000000011 -36.532218999999998,174.442474000000004 -36.414718999999998,174.422211000000004 -36.366112,174.41885400000001 -36.370834000000002,174.391937000000013 -36.395004,174.384978999999987 -36.398887999999999,174.377166999999986 -36.401665,174.303864000000004 -36.395279000000002,174.296935999999988 -36.391669999999998,174.285247999999996 -36.3825,174.276916999999997 -36.370552000000004,174.26998900000001 -36.357779999999998,174.268585000000002 -36.349442000000003,174.268585000000002 -36.342224000000002,174.292205999999993 -36.316947999999996,174.299988000000013 -36.314163,174.308013999999986 -36.316947999999996,174.325531000000012 -36.330283999999999,174.334686000000005 -36.332222000000002,174.36883499999999 -36.331673000000002,174.376891999999998 -36.330832999999998,174.421248999999989 -36.310611999999999,174.50692699999999 -36.267220000000002,174.518311000000011 -36.258057,174.521636999999998 -36.251396,174.519135000000006 -36.245834000000002,174.505248999999992 -36.231383999999998,174.413299999999992 -36.263061999999998,174.378296000000006 -36.286667,174.364685000000009 -36.294167000000002,174.346619000000004 -36.298057999999997,174.336365 -36.298889000000003,174.305237000000005 -36.287506,174.365233999999987 -36.260002,174.442200000000014 -36.169724000000002,174.396087999999992 -36.144447,174.396362000000011 -36.151938999999999,174.394135000000006 -36.159163999999997,174.373290999999995 -36.206389999999999,174.369965000000008 -36.213057999999997,174.358856000000003 -36.222220999999998,174.345245000000006 -36.229720999999998,174.337463000000014 -36.232773000000002,174.33273299999999 -36.229163999999997,174.307738999999998 -36.176949,174.282745000000006 -36.121108999999997,174.274993999999992 -36.118332000000002,174.239409999999992 -36.111389000000003,174.229126000000008 -36.112502999999997,174.195251000000013 -36.131110999999997,174.188568000000004 -36.144165,174.185790999999995 -36.171944000000003,174.191345000000013 -36.176392,174.19830300000001 -36.18,174.217743000000013 -36.182502999999997,174.226898000000006 -36.182502999999997,174.236084000000005 -36.180557,174.244110000000006 -36.183059999999998,174.287749999999988 -36.210281000000002,174.312468999999993 -36.236663999999998,174.314696999999995 -36.243889000000003,174.267212 -36.270279000000002,174.259430000000009 -36.273055999999997,174.251373 -36.272499000000003,174.065796000000006 -36.168334999999999,173.999114999999989 -36.121108999999997,173.994415000000004 -36.115836999999999,173.99105800000001 -36.109444000000003,173.931091000000009 -35.981940999999999,173.938568000000004 -35.934998,173.947478999999987 -35.923889000000003,173.948577999999998 -35.915550000000003,173.946075000000008 -35.908051,173.913879000000009 -35.86972,173.908324999999991 -35.874442999999999,173.903870000000012 -35.879997000000003,173.904967999999997 -35.888336000000002,173.921356000000003 -36.003059,173.980804000000006 -36.121383999999999,173.987731999999994 -36.134171000000002,173.992461999999989 -36.139724999999999,174.124390000000005 -36.263618,174.176085999999998 -36.276947,174.180542000000003 -36.282501000000003,174.198853000000014 -36.343887000000002,174.199982000000006 -36.352226000000002,174.198028999999991 -36.368606999999997,174.194702000000007 -36.375275000000002,174.189147999999989 -36.379722999999998,174.115233999999987 -36.40361,174.089966000000004 -36.411385000000003,174.080811000000011 -36.409438999999999,174.06942699999999 -36.400275999999998,174.065796000000006 -36.393889999999999,174.057465000000008 -36.374718,174.049133000000012 -36.353614999999998,174.044433999999995 -36.338889999999999,174.039703000000003 -36.323334000000003,174.031096999999988 -36.293059999999997,174.020537999999988 -36.273887999999999,173.82607999999999 -36.032501000000003,173.737457000000006 -35.933608999999997,173.727172999999993 -35.923614999999998,173.590515000000011 -35.778053,173.398865 -35.573891000000003,173.395537999999988 -35.567504999999997,173.398865 -35.553612,173.446625000000012 -35.440277000000002,173.465789999999998 -35.429169000000002,173.501923000000005 -35.419724000000002,173.506378000000012 -35.425277999999999,173.540253000000007 -35.430832000000002,173.629943999999995 -35.356667000000002,173.65554800000001 -35.322502,173.65554800000001 -35.313332000000003,173.564147999999989 -35.278053,173.556091000000009 -35.280830000000002,173.551636000000002 -35.286391999999999,173.549712999999997 -35.302779999999998,173.549712999999997 -35.321114,173.551909999999992 -35.328612999999997,173.566924999999998 -35.344161999999997,173.568024000000008 -35.361671,173.566924999999998 -35.36972,173.559143000000006 -35.372771999999998,173.439696999999995 -35.376106,173.416077 -35.384444999999999,173.410247999999996 -35.388893000000003,173.391356999999999 -35.423057999999997,173.39498900000001 -35.449722,173.396087999999992 -35.458053999999997,173.392761000000007 -35.482773000000002,173.386382999999995 -35.523330999999999,173.380524000000008 -35.528053,173.37384 -35.524169999999998,173.306915000000004 -35.449165,173.237731999999994 -35.370277000000002,173.154144000000002 -35.276665,173.103302000000014 -35.226104999999997,173.09191899999999 -35.216942000000003,173.087463000000014 -35.211387999999999,173.09191899999999 -35.1875,173.098846000000009 -35.183608999999997,173.119110000000006 -35.185555,173.12802099999999 -35.1875,173.134704999999997 -35.191108999999997,173.14498900000001 -35.191940000000002,173.152771 -35.189163,173.163879000000009 -35.179169000000002,173.168578999999994 -35.173614999999998,173.18081699999999 -35.156104999999997,173.187468999999993 -35.143332999999998,173.191924999999998 -35.128334000000002,173.196349999999995 -35.104446000000003,173.197478999999987 -35.09639,173.198577999999998 -35.078887999999999,173.198577999999998 -35.051108999999997,173.193848000000003 -35.027222000000002,173.189423000000005 -35.012779000000002,173.179413000000011 -34.993332000000002,173.175812000000008 -34.986946000000003,173.159149000000014 -34.958336000000003,173.151093000000003 -34.946663,173.137755999999996 -34.93,172.947204999999997 -34.716942000000003,172.828033000000005 -34.584442000000003,172.812468999999993 -34.568893000000003,172.722473000000008 -34.495277000000002,172.739136000000002 -34.435555,172.900817999999987 -34.414718999999998,172.911925999999994 -34.414718999999998,173.020813000000004 -34.422226000000002,173.038879000000009 -34.436942999999999,173.043304000000006 -34.517775999999998,173.039977999999991 -34.522224,173.033324999999991 -34.525832999999999,173.024414000000007 -34.527779000000002,173.016662999999994 -34.52861,173.007476999999994 -34.526947,172.997467 -34.498336999999999,172.984130999999991 -34.472771000000002,172.961914000000007 -34.465279000000002,172.955230999999998 -34.468887000000002,172.908324999999991 -34.544167000000002,172.912749999999988 -34.549728000000002,172.923858999999993 -34.558891000000003,172.936095999999992 -34.567222999999998,172.973021999999986 -34.581116000000002,173.053314 -34.665550000000003,173.057738999999998 -34.680283000000003,173.110503999999992 -34.791389000000002,173.120789000000002 -34.810555,173.128570999999994 -34.822502,173.133026 -34.828055999999997,173.13857999999999 -34.832504,173.151916999999997 -34.839995999999999,173.213593000000003 -34.871941,173.242737000000005 -34.884726999999998,173.273314999999997 -34.940834000000002,173.268859999999989 -34.946387999999999,173.262206999999989 -34.959167,173.259978999999987 -34.966659999999997,173.258881000000002 -34.974716,173.259978999999987 -34.983055,173.264709000000011 -35.014449999999997,173.269135000000006 -35.019722000000002,173.317474000000004 -35.018889999999999,173.328583000000009 -35.009444999999999,173.358856000000003 -34.98111,173.36300700000001 -34.975555,173.366364000000004 -34.968887000000002,173.373259999999988 -34.936774999999997,173.371246000000014 -34.927444,173.400817999999987 -34.863334999999999,173.426085999999998 -34.82,173.450806 -34.807777000000002,173.500274999999988 -34.864722999999998,173.499114999999989 -34.871108999999997,173.492461999999989 -34.874718,173.452453999999989 -34.887779000000002,173.443297999999999 -34.889724999999999,173.433319000000012 -34.890555999999997,173.413025000000005 -34.888893000000003,173.405243000000013 -34.892502,173.399719000000005 -34.897224,173.399719000000005 -34.906387000000002,173.402190999999988 -34.913887000000003,173.411590999999987 -34.931778,173.419128 -34.945830999999998,173.426909999999992 -34.957779000000002,173.431641000000013 -34.963332999999999,173.44165000000001 -34.973328000000002,173.454131999999987 -34.981667000000002,173.467467999999997 -34.988892,173.475525000000005 -34.991669000000002,173.493286000000012 -34.995277000000002,173.541655999999989 -34.988608999999997,173.561645999999996 -34.958893000000003,173.562468999999993 -34.950836000000002,173.566924999999998 -34.936110999999997,173.572478999999987 -34.931389000000003,173.579131999999987 -34.927779999999998,173.589416999999997 -34.928612,173.83914200000001 -35.004173000000002,174.101074000000011 -35.121108999999997,174.098297000000002 -35.161667,174.091644000000002 -35.158051,174.056641000000013 -35.155555999999997,174.021911999999986 -35.164161999999997,174.008026 -35.207504,174.008026 -35.215004,174.011382999999995 -35.221381999999998,174.018311000000011 -35.224997999999999,174.093841999999995 -35.225273,174.100525000000005 -35.228881999999999,174.143585000000002 -35.328612999999997,174.208008000000007 -35.323334000000003,174.218018 -35.322226999999998,174.247741999999988 -35.27861,174.319976999999994 -35.232773000000002,174.383881000000002 -35.337775999999998,174.461638999999991 -35.445273999999998,174.491913000000011 -35.485275,174.575806 -35.601944000000003,174.577179 -35.610000999999997,174.577147999999994 -35.618088,174.569976999999994 -35.648055999999997,174.563292999999987 -35.651665,174.530272999999994 -35.649445,174.520263999999997 -35.648612999999997,174.513306 -35.645004,174.505248999999992 -35.642502,174.479126000000008 -35.641945,174.47357199999999 -35.646393000000003,174.474975999999998 -35.654716,174.518311000000011 -35.724167,174.523041000000006 -35.729438999999999,174.554137999999995 -35.750281999999999,174.561919999999986 -35.753059,174.583862000000011 -35.764724999999999,174.60244800000001 -35.844444000000003,174.596924 -35.849167,174.58914200000001 -35.851944000000003,174.577758999999986 -35.852226000000002,174.560790999999995 -35.847777999999998,174.554961999999989 -35.843330000000002,174.538574000000011 -35.819450000000003,174.523314999999997 -35.796669,174.519713999999993 -35.790283000000002,174.49105800000001 -35.769447,174.361908 -35.723328000000002,174.357451999999995 -35.72361,174.34857199999999 -35.734726000000002,174.346924 -35.833061,174.350525000000005 -35.839438999999999,174.35522499999999 -35.845001000000003,174.360779000000008 -35.849442000000003,174.381348000000003 -35.851112,174.384704999999997 -35.844718999999998,174.385528999999991 -35.828887999999999,174.391083000000009 -35.824173000000002,174.398865 -35.821387999999999,174.437468999999993 -35.822777000000002,174.476074000000011 -35.824173000000002,174.486358999999993 -35.824722,174.519713999999993 -35.844718999999998,174.525542999999999 -35.849167,174.524414000000007 -35.855559999999997,174.521362000000011 -35.862220999999998,174.501373 -35.889999000000003,174.496917999999994 -35.895553999999997,174.487182999999987 -35.915000999999997,174.495513999999986 -35.988608999999997,174.498016000000007 -35.994163999999998,174.514160000000004 -36.008614,174.56942699999999 -36.037224000000002,174.578583000000009 -36.038894999999997,174.587738000000002 -36.038894999999997,174.596619000000004 -36.036667,174.606902999999988 -36.037506,174.612731999999994 -36.042228999999999,174.622192000000013 -36.053055,174.62912 -36.065834000000002,174.629394999999988 -36.075004999999997,174.616364000000004 -36.100861000000002)),((171.185241999999988 -44.938332000000003,171.182129000000003 -44.94173,171.175017999999994 -44.949902000000002,171.167923000000002 -44.959850000000003,171.165436 -44.966599000000002,171.164703000000003 -44.970275999999998,171.163299999999992 -44.978332999999999,171.149719000000005 -44.996665999999998,171.07995600000001 -45.067222999999998,171.02664200000001 -45.103332999999999,170.975525000000005 -45.151108,170.966063999999989 -45.163055,170.961914000000007 -45.169167000000002,170.921630999999991 -45.243057,170.873566000000011 -45.358055,170.873290999999995 -45.367218,170.876891999999998 -45.373885999999999,170.871338000000009 -45.424171,170.859955000000014 -45.487502999999997,170.855804000000006 -45.493889000000003,170.750274999999988 -45.61972,170.674682999999987 -45.745002999999997,170.616913000000011 -45.839438999999999,170.55886799999999 -45.881667999999998,170.554413000000011 -45.888053999999997,170.555542000000003 -45.896110999999998,170.591063999999989 -45.894165,170.600525000000005 -45.891669999999998,170.608582000000013 -45.888053999999997,170.658600000000007 -45.858612,170.718018 -45.817504999999997,170.724670000000003 -45.813057,170.773314999999997 -45.782775999999998,170.781096999999988 -45.786391999999999,170.790802000000014 -45.806946000000003,170.790802000000014 -45.84639,170.788879000000009 -45.863892,170.783051 -45.878334000000002,170.776366999999993 -45.882773999999998,170.699982000000006 -45.911667,170.664429000000013 -45.908332999999999,170.57330300000001 -45.916663999999997,170.550536999999991 -45.919167000000002,170.484406000000007 -45.926949,170.452453999999989 -45.931946000000003,170.424408 -45.939438000000003,170.382721000000004 -45.956108,170.342467999999997 -45.97361,170.315246999999999 -45.991385999999999,170.309692000000013 -45.996948000000003,170.294433999999995 -46.013893000000003,170.281646999999992 -46.029442000000003,170.263610999999997 -46.051940999999999,170.256378000000012 -46.065551999999997,170.253051999999997 -46.081947,170.252472000000012 -46.09111,170.254424999999998 -46.107779999999998,170.252777000000009 -46.115836999999999,170.240783999999991 -46.146949999999997,170.237731999999994 -46.154167,170.226623999999987 -46.165000999999997,170.214416999999997 -46.174720999999998,170.193848000000003 -46.188048999999999,170.169433999999995 -46.198608,170.067748999999992 -46.246665999999998,169.911925999999994 -46.340279000000002,169.863585999999998 -46.371383999999999,169.858001999999999 -46.376663,169.849396000000013 -46.389442000000003,169.848021999999986 -46.416946000000003,169.849975999999998 -46.433326999999998,169.852172999999993 -46.440834000000002,169.853850999999992 -46.457504,169.850799999999992 -46.464722000000002,169.845245000000006 -46.469994,169.701904000000013 -46.558052000000004,169.631348000000003 -46.581947,169.458008000000007 -46.623328999999998,169.266388000000006 -46.656387000000002,169.133026 -46.670836999999999,169.107727000000011 -46.669167000000002,169.097197999999992 -46.666946000000003,169.084411999999986 -46.657501000000003,169.067200000000014 -46.635002,169.061919999999986 -46.675002999999997,169.053864000000004 -46.678612,169.008026 -46.680832000000002,168.883330999999998 -46.667777999999998,168.878296000000006 -46.661942000000003,168.861908 -46.628334000000002,168.862457000000006 -46.619446000000003,168.864409999999992 -46.611114999999998,168.864959999999996 -46.603889000000002,168.844970999999987 -46.563614,168.835784999999987 -46.560555,168.823853000000014 -46.561110999999997,168.733306999999996 -46.577499000000003,168.640533000000005 -46.603889000000002,168.633605999999986 -46.606392,168.614685000000009 -46.611114999999998,168.593018 -46.614165999999997,168.568848000000003 -46.615004999999996,168.516937000000013 -46.614165999999997,168.492737000000005 -46.613334999999999,168.442138999999997 -46.601500999999999,168.436630000000008 -46.599666999999997,168.446625000000012 -46.584003000000003,168.442200000000014 -46.575004999999997,168.454407000000003 -46.574447999999997,168.490509000000003 -46.573059,168.502472000000012 -46.574173000000002,168.506103999999993 -46.578887999999999,168.499114999999989 -46.583328000000002,168.505553999999989 -46.588051,168.551636000000002 -46.594444000000003,168.561371000000008 -46.591942000000003,168.566924999999998 -46.586661999999997,168.563599000000011 -46.580002,168.550812000000008 -46.570557,168.541655999999989 -46.567504999999997,168.391356999999999 -46.540000999999997,168.361908 -46.544449,168.353577 -46.547783000000003,168.351623999999987 -46.556106999999997,168.352172999999993 -46.564444999999999,168.362731999999994 -46.583885000000002,168.348236000000014 -46.582165000000003,168.352904999999993 -46.584499,168.359267999999986 -46.585830999999999,168.365082 -46.592666999999999,168.367248999999987 -46.596668,168.367599000000013 -46.601497999999999,168.364928999999989 -46.605331,168.35775799999999 -46.604500000000002,168.351409999999987 -46.603164999999997,168.275269000000009 -46.557777000000002,168.269135000000006 -46.535561,168.268311000000011 -46.529167,168.27664200000001 -46.525832999999999,168.286102 -46.523330999999999,168.307738999999998 -46.520553999999997,168.318297999999999 -46.520836000000003,168.318848000000003 -46.529167,168.321075000000008 -46.536667,168.328856999999999 -46.540557999999997,168.339416999999997 -46.539169,168.386658000000011 -46.497779999999999,168.392486999999988 -46.492226000000002,168.395537999999988 -46.485000999999997,168.396087999999992 -46.477775999999999,168.394135000000006 -46.470275999999998,168.37384 -46.421944000000003,168.36883499999999 -46.416106999999997,168.359679999999997 -46.415000999999997,168.350249999999988 -46.417503000000004,168.250274999999988 -46.400832999999999,168.211090000000013 -46.355277999999998,168.206085000000002 -46.351394999999997,168.194702000000007 -46.345551,168.185516000000007 -46.342498999999997,168.174988000000013 -46.340279000000002,168.116364000000004 -46.343612999999998,168.063873 -46.351669,167.955535999999995 -46.371383999999999,167.893035999999995 -46.387222,167.850799999999992 -46.399445,167.832184000000012 -46.398612999999997,167.824401999999992 -46.394447,167.753875999999991 -46.333885000000002,167.776916999999997 -46.312775000000002,167.781372000000005 -46.306389000000003,167.783600000000007 -46.298340000000003,167.781372000000005 -46.290840000000003,167.778045999999989 -46.284171999999998,167.701904000000013 -46.209442000000003,167.596924 -46.166389000000002,167.556641000000013 -46.156387000000002,167.546356000000003 -46.154167,167.534424 -46.152779000000002,167.483032000000009 -46.149726999999999,167.471069 -46.149994,167.460236000000009 -46.151389999999999,167.451904000000013 -46.154716,167.446075000000008 -46.159996,167.415526999999997 -46.204720000000002,167.356628 -46.254447999999996,167.280272999999994 -46.273055999999997,167.261108000000007 -46.267775999999998,167.238555999999988 -46.263893000000003,167.086638999999991 -46.240555,167.001373 -46.229163999999997,166.966063999999989 -46.224716,166.949982000000006 -46.223885000000003,166.915253000000007 -46.226104999999997,166.883026 -46.229996,166.836365 -46.232498,166.823028999999991 -46.231667000000002,166.768035999999995 -46.22361,166.726348999999999 -46.214165,166.717467999999997 -46.210830999999999,166.705230999999998 -46.201110999999997,166.670806999999996 -46.161667,166.67025799999999 -46.15361,166.684417999999994 -46.145004,166.693848000000003 -46.142775999999998,166.709411999999986 -46.135277000000002,166.738861000000014 -46.119163999999998,166.761230000000012 -46.093612999999998,166.784911999999991 -46.064945000000002,166.804748999999987 -46.033279,166.82995600000001 -46.003891000000003,166.854674999999986 -45.994163999999998,166.886932000000002 -45.990279999999998,166.943297999999999 -45.956108,166.949127000000004 -45.950836000000002,166.946930000000009 -45.945273999999998,166.939147999999989 -45.944716999999997,166.929687999999999 -45.947220000000002,166.836365 -45.981383999999998,166.828033000000005 -45.984444000000003,166.791350999999992 -46.005004999999997,166.785797000000002 -46.010283999999999,166.781096999999988 -46.016396,166.759308000000004 -46.035553,166.762969999999996 -46.038387,166.764969000000008 -46.042392999999997,166.763656999999995 -46.047221999999998,166.760162000000008 -46.050392000000002,166.740982000000002 -46.066059000000003,166.737793000000011 -46.066558999999998,166.670532000000009 -46.087218999999997,166.615783999999991 -46.090836000000003,166.613585999999998 -46.086387999999999,166.617461999999989 -46.059722999999998,166.621062999999992 -46.052498,166.640807999999993 -46.015006999999997,166.661652000000004 -45.991942999999999,166.625792999999987 -45.967216,166.492461999999989 -46.013061999999998,166.484406000000007 -46.014449999999997,166.474975999999998 -46.002785000000003,166.467194000000006 -45.990555,166.465239999999994 -45.983055,166.464690999999988 -45.839438999999999,166.468841999999995 -45.823059,166.472473000000008 -45.815834000000002,166.476898000000006 -45.809722999999998,166.537475999999998 -45.798889000000003,166.613861000000014 -45.801108999999997,166.652190999999988 -45.800277999999999,166.699982000000006 -45.798889000000003,166.881348000000003 -45.779998999999997,166.890807999999993 -45.777779000000002,166.974120999999997 -45.735000999999997,166.987182999999987 -45.709724,166.923034999999999 -45.705832999999998,166.912475999999998 -45.705275999999998,166.887482000000006 -45.705002,166.854126000000008 -45.707779000000002,166.825806 -45.714722000000002,166.809417999999994 -45.721381999999998,166.787475999999998 -45.689995000000003,166.775817999999987 -45.662773,166.81153900000001 -45.617942999999997,166.811217999999997 -45.613109999999999,166.812531000000007 -45.608111999999998,166.816710999999998 -45.605606000000002,166.869689999999991 -45.588779000000002,166.881026999999989 -45.586112999999997,166.88736 -45.585278000000002,166.895203000000009 -45.585608999999998,166.901366999999993 -45.587108999999998,166.912871999999993 -45.590946000000002,166.980255 -45.578612999999997,166.991913000000011 -45.580002,167.0 -45.576949999999997,167.005829000000006 -45.571671000000002,167.032470999999987 -45.527779000000002,167.041350999999992 -45.501396,166.989685000000009 -45.519165,166.891693000000004 -45.544724000000002,166.796875 -45.569389,166.791199000000006 -45.570720999999999,166.784836000000013 -45.571556,166.777023000000014 -45.571219999999997,166.710509999999999 -45.579445,166.704407000000003 -45.574447999999997,166.697204999999997 -45.554718,166.699127000000004 -45.546669,166.757476999999994 -45.425277999999999,166.801361000000014 -45.353614999999998,166.821625000000012 -45.320557,166.86883499999999 -45.279724000000002,166.880797999999999 -45.279167,167.008330999999998 -45.341667,167.038299999999992 -45.357779999999998,167.146941999999996 -45.427222999999998,167.16885400000001 -45.472496,167.205230999999998 -45.477775999999999,167.211914000000007 -45.475273,167.21414200000001 -45.467216,167.209411999999986 -45.461387999999999,167.173584000000005 -45.422775,167.158019999999993 -45.406661999999997,167.134978999999987 -45.386116,167.12912 -45.381385999999999,167.115509000000003 -45.372222999999998,167.097747999999996 -45.366112,167.087463000000014 -45.363616999999998,167.061645999999996 -45.345001000000003,167.051085999999998 -45.333328000000002,167.081421000000006 -45.325333,167.08407600000001 -45.321666999999998,167.092407000000009 -45.316498000000003,167.097243999999989 -45.314498999999998,167.114227 -45.310333,167.163574000000011 -45.302833999999997,167.169922000000014 -45.302998000000002,167.173584000000005 -45.305999999999997,167.176422000000002 -45.309330000000003,167.17756700000001 -45.313834999999997,167.212738000000002 -45.313332000000003,167.218841999999995 -45.318336000000002,167.232178000000005 -45.327224999999999,167.239685000000009 -45.331116000000002,167.248566000000011 -45.334167,167.260254000000003 -45.335830999999999,167.270813000000004 -45.334442000000003,167.301636000000002 -45.329445,167.309692000000013 -45.326110999999997,167.307738999999998 -45.318610999999997,167.300262000000004 -45.314444999999999,167.19464099999999 -45.271445999999997,167.138290000000012 -45.268943999999998,167.099471999999992 -45.272114000000002,167.094146999999992 -45.271278000000002,167.08964499999999 -45.268776000000003,167.002196999999995 -45.201110999999997,166.996917999999994 -45.145836000000003,167.146362000000011 -45.001671000000002,167.198577999999998 -44.956108,167.204407000000003 -44.951110999999997,167.228302000000014 -44.930832000000002,167.24105800000001 -44.921387000000003,167.260528999999991 -44.907501000000003,167.267486999999988 -44.903053,167.312744000000009 -44.875,167.320800999999989 -44.871383999999999,167.393462999999997 -44.862999000000002,167.398987000000005 -44.861496000000002,167.404312000000004 -44.863498999999997,167.421798999999993 -44.894168999999998,167.422974000000011 -44.898665999999999,167.420638999999994 -44.908496999999997,167.417968999999999 -44.912166999999997,167.440796000000006 -44.928612,167.439972000000012 -44.9375,167.441924999999998 -44.945,167.459686000000005 -44.99472,167.497741999999988 -45.003891000000003,167.507202000000007 -45.001396,167.508224000000013 -45.0,167.511658000000011 -44.995277000000002,167.511108000000007 -44.986946000000003,167.47908000000001 -44.903446000000002,167.465912000000003 -44.876441999999997,167.462752999999992 -44.867947,167.461578000000003 -44.863444999999999,167.460097999999988 -44.853946999999998,167.459411999999986 -44.843944999999998,167.459914999999995 -44.838444000000003,167.448577999999998 -44.795279999999998,167.453033000000005 -44.788894999999997,167.458587999999992 -44.783614999999998,167.59970100000001 -44.683883999999999,167.743010999999996 -44.611671,167.838866999999993 -44.498610999999997,167.850249999999988 -44.488052000000003,167.949982000000006 -44.40361,167.963593000000003 -44.395004,168.034973000000008 -44.353614999999998,168.12802099999999 -44.316947999999996,168.141662999999994 -44.308052000000004,168.144713999999993 -44.300834999999999,168.144135000000006 -44.292503000000004,168.124099999999999 -44.251404,168.143311000000011 -44.253059,168.153594999999996 -44.251396,168.169708000000014 -44.24472,168.288299999999992 -44.172775,168.29385400000001 -44.167503000000004,168.336638999999991 -44.123885999999999,168.339966000000004 -44.116661,168.337738000000002 -44.109169,168.334411999999986 -44.102783000000002,168.336365 -44.094444000000003,168.369689999999991 -44.043334999999999,168.374968999999993 -44.037781000000003,168.383026 -44.034447,168.402771 -44.029724000000002,168.672211000000004 -43.987777999999999,168.676909999999992 -43.993614,168.683043999999995 -43.998336999999999,168.690246999999999 -44.002228000000002,168.715239999999994 -44.012222,168.723021999999986 -44.012504999999997,168.753875999999991 -44.010002,168.764160000000004 -44.008614,168.824401999999992 -43.988334999999999,168.858582000000013 -43.976661999999997,168.866364000000004 -43.973328000000002,168.879669000000007 -43.964447,168.885254000000003 -43.959167,168.961914000000007 -43.90361,169.080765000000014 -43.848472999999998,169.142212 -43.794167000000002,169.224396000000013 -43.743332000000002,169.271636999999998 -43.722496,169.387482000000006 -43.679169000000002,169.491318000000007 -43.643467,169.539153999999996 -43.633614,169.62661700000001 -43.613892,169.64498900000001 -43.608893999999999,169.652771 -43.605559999999997,169.660521999999986 -43.601944000000003,169.721619000000004 -43.573334000000003,169.728302000000014 -43.568893000000003,169.739136000000002 -43.558052000000004,169.767486999999988 -43.522773999999998,169.790526999999997 -43.496665999999998,169.871062999999992 -43.406661999999997,169.884154999999993 -43.397781000000002,169.961638999999991 -43.371941,170.021911999999986 -43.352500999999997,170.028594999999996 -43.347777999999998,170.033874999999995 -43.342498999999997,170.038025000000005 -43.336112999999997,170.049408 -43.306946000000003,170.111358999999993 -43.254173000000002,170.288299999999992 -43.107779999999998,170.418029999999987 -43.052498,170.523041000000006 -43.010559,170.531921000000011 -43.008057,170.583037999999988 -42.990555,170.674347000000012 -42.958739999999999,170.704407000000003 -42.945830999999998,170.750549000000007 -42.924720999999998,170.781096999999988 -42.910553,170.794128 -42.901389999999999,171.065796000000006 -42.648055999999997,171.108306999999996 -42.608055,171.149719000000005 -42.563614,171.153594999999996 -42.55722,171.196075000000008 -42.476661999999997,171.225799999999992 -42.433608999999997,171.230255 -42.40889,171.235779000000008 -42.394165,171.247467 -42.375,171.260254000000003 -42.366112,171.270537999999988 -42.355003000000004,171.297760000000011 -42.310279999999999,171.304413000000011 -42.296669,171.309692000000013 -42.281944000000003,171.31665000000001 -42.249724999999998,171.321075000000008 -42.224716,171.322754000000003 -42.207222000000002,171.324401999999992 -42.18972,171.326355000000007 -42.172226000000002,171.329131999999987 -42.155830000000002,171.343841999999995 -42.110832000000002,171.361084000000005 -42.067779999999999,171.461638999999991 -41.859726000000002,171.51080300000001 -41.764449999999997,171.533051 -41.766396,171.557738999999998 -41.766663,171.569121999999993 -41.766112999999997,171.650817999999987 -41.761391000000003,171.663025000000005 -41.757781999999999,171.685790999999995 -41.746948000000003,171.790526999999997 -41.696387999999999,171.85522499999999 -41.652779000000002,171.886658000000011 -41.629997000000003,171.942200000000014 -41.550277999999999,172.02276599999999 -41.443053999999997,172.053864000000004 -41.417503000000004,172.064972000000012 -41.40361,172.122192000000013 -41.277779000000002,172.111633000000012 -41.236114999999998,172.10522499999999 -41.153053,172.106078999999994 -40.911385000000003,172.10635400000001 -40.893059,172.108856000000003 -40.885559,172.113861000000014 -40.879997000000003,172.186645999999996 -40.813332000000003,172.218567000000007 -40.785834999999999,172.22470100000001 -40.781109,172.255248999999992 -40.776947,172.263884999999988 -40.774169999999998,172.271362000000011 -40.770553999999997,172.299408 -40.755004999999997,172.348297000000002 -40.727493000000003,172.382721000000004 -40.698334000000003,172.426909999999992 -40.657775999999998,172.478302000000014 -40.613892,172.513320999999991 -40.598441999999999,172.517639000000003 -40.596783000000002,172.523482999999999 -40.597946,172.522644000000014 -40.602943000000003,172.521132999999992 -40.607277000000003,172.520813000000004 -40.625,172.519440000000003 -40.631385999999999,172.525542999999999 -40.6325,172.534149000000014 -40.631667999999998,172.571899000000002 -40.617775000000002,172.596343999999988 -40.601394999999997,172.62802099999999 -40.573891000000003,172.631621999999993 -40.567222999999998,172.631621999999993 -40.559998,172.608582000000013 -40.556946000000003,172.601348999999999 -40.558891000000003,172.597014999999999 -40.553333000000002,172.589690999999988 -40.558838000000002,172.583862000000011 -40.560004999999997,172.581024000000014 -40.556671,172.581848000000008 -40.551665999999997,172.589843999999999 -40.541172000000003,172.627166999999986 -40.511947999999997,172.633330999999998 -40.509171000000002,172.661376999999987 -40.502785000000003,172.712188999999995 -40.495552000000004,172.817748999999992 -40.504173000000002,172.861358999999993 -40.507781999999999,172.981628 -40.527222000000002,172.991332999999997 -40.529167,172.989959999999996 -40.53389,172.978026999999997 -40.53389,172.945251000000013 -40.530830000000002,172.895263999999997 -40.524445,172.797211000000004 -40.516112999999997,172.739959999999996 -40.516945,172.731628 -40.519722000000002,172.656921000000011 -40.653328000000002,172.701355000000007 -40.748336999999999,172.855804000000006 -40.853057999999997,172.865509000000003 -40.853057999999997,172.875244000000009 -40.851112,172.907195999999999 -40.828887999999999,172.930266999999986 -40.802222999999998,172.935241999999988 -40.796669,172.976623999999987 -40.781944000000003,172.985229000000004 -40.781112999999998,173.002196999999995 -40.786667,173.008330999999998 -40.791114999999998,173.013306 -40.796669,173.020537999999988 -40.809722999999998,173.051085999999998 -40.869446000000003,173.059692000000013 -40.962775999999998,173.059692000000013 -40.971938999999999,173.056091000000009 -40.978606999999997,173.031646999999992 -41.027495999999999,173.075806 -41.291114999999998,173.079680999999994 -41.297500999999997,173.085784999999987 -41.302222999999998,173.105529999999987 -41.313332000000003,173.168029999999987 -41.316108999999997,173.188873 -41.313332000000003,173.198853000000014 -41.311385999999999,173.207184000000012 -41.308608999999997,173.272217000000012 -41.274445,173.278320000000008 -41.269722000000002,173.32607999999999 -41.222496,173.340515000000011 -41.205832999999998,173.351623999999987 -41.195549,173.377166999999986 -41.178055,173.426085999999998 -41.150275999999998,173.598021999999986 -41.053612,173.606628 -41.052498,173.639709000000011 -41.073616,173.672760000000011 -41.070557,173.720519999999993 -41.060279999999999,173.727753000000007 -41.056389000000003,173.739959999999996 -41.047226000000002,173.744689999999991 -41.032501000000003,173.743286000000012 -41.024169999999998,173.738281 -41.018608,173.72744800000001 -41.019447,173.718841999999995 -41.022499000000003,173.696930000000009 -41.033614999999998,173.690796000000006 -41.038338000000003,173.682189999999991 -41.041114999999998,173.676085999999998 -41.036391999999999,173.673584000000005 -41.029167,173.674682999999987 -41.020836000000003,173.678314 -41.014449999999997,173.696625000000012 -41.000281999999999,173.751373 -40.976944000000003,173.800262000000004 -40.969161999999997,173.913299999999992 -40.931671,173.984679999999997 -40.896949999999997,173.994415000000004 -40.896667,174.02276599999999 -40.913055,174.027771 -40.91861,174.030272999999994 -40.925834999999999,174.03054800000001 -40.935271999999998,174.02941899999999 -40.943610999999997,174.022217000000012 -40.947220000000002,173.929961999999989 -40.992226000000002,173.832184000000012 -40.995002999999997,173.821075000000008 -40.994163999999998,173.782195999999999 -41.009171000000002,173.778594999999996 -41.015555999999997,173.769713999999993 -41.09861,173.778594999999996 -41.114449,173.794433999999995 -41.109444000000003,173.822204999999997 -41.080832999999998,173.821899000000002 -41.062218,173.836638999999991 -41.055,173.846343999999988 -41.053055,173.93081699999999 -41.049446000000003,173.946625000000012 -41.055832000000002,173.953033000000005 -41.060555,173.917755 -41.087502,173.887482000000006 -41.103332999999999,173.848846000000009 -41.144165,173.820526 -41.245834000000002,173.763306 -41.267502,173.76080300000001 -41.273055999999997,173.775817999999987 -41.289726000000002,173.788025000000005 -41.290557999999997,173.806365999999997 -41.289444000000003,174.03720100000001 -41.218330000000002,174.09970100000001 -41.198334000000003,174.128845000000013 -41.187218,174.133605999999986 -41.181671,174.133605999999986 -41.176108999999997,174.126068000000004 -41.174171,174.008605999999986 -41.175277999999999,174.001099000000011 -41.178885999999999,174.001373 -41.186385999999999,174.000274999999988 -41.194716999999997,173.993010999999996 -41.198334000000003,173.981902999999988 -41.199440000000003,173.932738999999998 -41.199997000000003,173.908324999999991 -41.199997000000003,173.899719000000005 -41.197495000000004,173.893585000000002 -41.192771999999998,173.887206999999989 -41.169724000000002,173.88580300000001 -41.161667,173.888031000000012 -41.154167,173.89776599999999 -41.133614,173.902466000000004 -41.128334000000002,174.032745000000006 -40.999724999999998,174.084411999999986 -41.021385000000002,174.094116000000014 -41.023330999999999,174.246338000000009 -41.044724000000002,174.258330999999998 -41.035277999999998,174.299408 -41.003616,174.315246999999999 -41.000557,174.323853000000014 -41.003334000000002,174.323853000000014 -41.010834000000003,174.321625000000012 -41.018059,174.209960999999993 -41.197495000000004,174.161376999999987 -41.225555,174.152771 -41.226661999999997,174.114685000000009 -41.231383999999998,174.052185000000009 -41.235000999999997,174.02664200000001 -41.236114999999998,174.053864000000004 -41.254173000000002,174.206359999999989 -41.269447,174.214966000000004 -41.266663,174.291655999999989 -41.238892,174.303588999999988 -41.229720999999998,174.320800999999989 -41.220275999999998,174.326904000000013 -41.222771000000002,174.288574000000011 -41.276947,174.249114999999989 -41.322502,174.241637999999995 -41.326110999999997,174.231902999999988 -41.328055999999997,174.208587999999992 -41.329445,174.193572999999986 -41.320281999999999,174.155243000000013 -41.305,174.148041000000006 -41.308608999999997,174.111633000000012 -41.336661999999997,174.052764999999994 -41.421112,174.049133000000012 -41.427779999999998,174.044433999999995 -41.442497000000003,174.045806999999996 -41.450836000000002,174.049988000000013 -41.466392999999997,174.063873 -41.493057,174.084136999999998 -41.526108,174.097473000000008 -41.519447,174.096069 -41.511116,174.100799999999992 -41.505561999999998,174.108306999999996 -41.509171000000002,174.114685000000009 -41.513893000000003,174.125792999999987 -41.523887999999999,174.151093000000003 -41.551392,174.176085999999998 -41.578612999999997,174.178864000000004 -41.586112999999997,174.179961999999989 -41.594444000000003,174.179137999999995 -41.602783000000002,174.174133000000012 -41.608336999999999,174.163299999999992 -41.618606999999997,174.157195999999999 -41.623328999999998,174.193024000000008 -41.685555,174.287749999999988 -41.734444000000003,174.291655999999989 -41.740836999999999,174.289153999999996 -41.748336999999999,174.283324999999991 -41.762222,174.236358999999993 -41.837218999999997,174.212188999999995 -41.865279999999998,174.201355000000007 -41.875557,174.184143000000006 -41.890555999999997,174.17804000000001 -41.895004,174.164703000000003 -41.90361,174.157195999999999 -41.907218999999998,174.143585000000002 -41.915832999999999,174.088561999999996 -41.957779000000002,174.009154999999993 -42.027495999999999,173.979674999999986 -42.061110999999997,173.965239999999994 -42.086945,173.959136999999998 -42.100838000000003,173.954407000000003 -42.115555,173.953307999999993 -42.123885999999999,173.953583000000009 -42.133330999999998,173.956359999999989 -42.166389000000002,173.933319000000012 -42.196944999999999,173.928314 -42.202499000000003,173.884154999999993 -42.243614,173.87802099999999 -42.248055,173.870513999999986 -42.251944999999999,173.86300700000001 -42.255561999999998,173.834686000000005 -42.271385000000002,173.801361000000014 -42.293059999999997,173.794983000000002 -42.297500999999997,173.568572999999986 -42.476944000000003,173.558593999999999 -42.487777999999999,173.541350999999992 -42.511947999999997,173.533874999999995 -42.525002,173.531372000000005 -42.532218999999998,173.500823999999994 -42.599724000000002,173.480804000000006 -42.621941,173.466063999999989 -42.656944000000003,173.459960999999993 -42.670836999999999,173.448853000000014 -42.690277000000002,173.387755999999996 -42.793616999999998,173.351623999999987 -42.840836000000003,173.328033000000005 -42.898887999999999,173.328033000000005 -42.906387000000002,173.325806 -42.913612,173.285521999999986 -42.958053999999997,173.106902999999988 -43.057777000000002,173.099396000000013 -43.061385999999999,173.090515000000011 -43.064444999999999,173.026366999999993 -43.081947,172.975799999999992 -43.09111,172.953033000000005 -43.092773,172.935516000000007 -43.098334999999999,172.92025799999999 -43.105834999999999,172.838012999999989 -43.148055999999997,172.818024000000008 -43.160828000000002,172.797760000000011 -43.183059999999998,172.772217000000012 -43.219718999999998,172.76080300000001 -43.239165999999997,172.758026 -43.246665999999998,172.726944000000003 -43.415539000000003,172.726593000000008 -43.423355,172.775817999999987 -43.612220999999998,172.894135000000006 -43.61972,172.90554800000001 -43.620834000000002,173.059692000000013 -43.653053,173.100525000000005 -43.697220000000002,173.105529999999987 -43.703612999999997,173.114409999999992 -43.741385999999999,173.116913000000011 -43.762504999999997,173.116913000000011 -43.769996999999996,173.112182999999987 -43.825004999999997,173.110779000000008 -43.833328000000002,173.091644000000002 -43.856392,173.058593999999999 -43.871108999999997,173.006088000000005 -43.869498999999998,173.002242999999993 -43.868999000000002,172.999236999999994 -43.865668999999997,172.990905999999995 -43.849670000000003,172.965239999999994 -43.802222999999998,172.961365 -43.764449999999997,172.958862000000011 -43.756950000000003,172.951355000000007 -43.755279999999999,172.939972000000012 -43.756110999999997,172.927185000000009 -43.766112999999997,172.921906000000007 -43.771667,172.920532000000009 -43.824173000000002,172.920532000000009 -43.833328000000002,172.917572000000007 -43.869221000000003,172.923584000000005 -43.875884999999997,172.931243999999992 -43.881390000000003,172.937408000000005 -43.887886000000002,172.938904000000008 -43.892384,172.938247999999987 -43.896220999999997,172.870789000000002 -43.904442000000003,172.861633000000012 -43.901389999999999,172.811919999999986 -43.882216999999997,172.804413000000011 -43.878334000000002,172.745789000000002 -43.837775999999998,172.740783999999991 -43.832222000000002,172.736908 -43.825836000000002,172.715239999999994 -43.808334000000002,172.642761000000007 -43.772224,172.513031000000012 -43.729438999999999,172.495238999999998 -43.723885000000003,172.483582000000013 -43.722771000000002,172.472197999999992 -43.72361,172.424988000000013 -43.733612,172.413299999999992 -43.743614,172.390258999999986 -43.763893000000003,172.384978999999987 -43.77861,172.382445999999987 -43.795006,172.383330999999998 -43.8125,172.384704999999997 -43.820838999999999,172.394713999999993 -43.850281000000003,172.393311000000011 -43.858612,172.386932000000002 -43.863334999999999,172.367461999999989 -43.867775000000002,172.297211000000004 -43.881110999999997,172.286925999999994 -43.883057,172.275542999999999 -43.883887999999999,172.189696999999995 -43.909163999999997,172.050812000000008 -43.965279000000002,171.978577 -43.995834000000002,171.955230999999998 -44.006667999999998,171.941070999999994 -44.015006999999997,171.782470999999987 -44.076949999999997,171.654694000000006 -44.122498,171.583587999999992 -44.153885000000002,171.547211000000004 -44.173889000000003,171.538483000000014 -44.178775999999999,171.355559999999997 -44.285491999999998,171.346465999999992 -44.292186999999998,171.342467999999997 -44.295555,171.319976999999994 -44.316391000000003,171.293578999999994 -44.343612999999998,171.285521999999986 -44.356392,171.278594999999996 -44.369995000000003,171.271911999999986 -44.383887999999999,171.269135000000006 -44.391112999999997,171.275542999999999 -44.395836000000003,171.279144000000002 -44.402495999999999,171.278594999999996 -44.420836999999999,171.277190999999988 -44.428885999999999,171.275542999999999 -44.437218,171.26998900000001 -44.451942000000003,171.263306 -44.465553,171.254974000000004 -44.478332999999999,171.214966000000004 -44.533057999999997,171.208313000000004 -44.537506,171.200531000000012 -44.541114999999998,171.196075000000008 -44.560279999999999,171.192200000000014 -44.645836000000003,171.193024000000008 -44.663330000000002,171.20495600000001 -44.700279000000002,171.21414200000001 -44.739165999999997,171.215239999999994 -44.747498,171.207184000000012 -44.851112,171.198577999999998 -44.919998,171.195800999999989 -44.927498,171.185241999999988 -44.938332000000003)))
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/state.mysql.sql b/webapp/django/contrib/gis/tests/geoapp/sql/state.mysql.sql
new file mode 100644
index 0000000..0796306
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/state.mysql.sql
@@ -0,0 +1,5 @@
+-- State border data courtesy of U.S. Census Bureau Cartographic Boundary Files: http://www.census.gov/geo/www/cob/st2000.html
+-- Boundary file data is a product of the U.S. federal government and is public domain.  See 17 U.S.C. 105.
+-- INSERT INTO geoapp_state (`name`, `poly`) VALUES ('Puerto Rico', NULL); MySQL spatial indices can't handle NULL values :-/
+INSERT INTO geoapp_state (`name`, `poly`) VALUES ('Colorado', GeomFromText('POLYGON ((-107.918420999999981 41.002035999999997,-107.69133582431418 41.002104250342249,-107.625624000000002 41.002124000000002,-107.521505363272311 41.002506710525772,-107.367442999999994 41.003073,-107.317794462401125 41.002967213367114,-107.305312956219666 41.00294061889776,-107.241193999999993 41.002803999999998,-107.000606000000005 41.003443999999995,-106.857772999999995 41.002662999999991,-106.453858999999994 41.002056999999994,-106.439563000000007 41.001978,-106.437419000000006 41.001794999999994,-106.430949999999996 41.001751999999996,-106.391852 41.001176,-106.386356000000006 41.001143999999996,-106.321164999999993 40.999122999999997,-106.217573000000002 40.997734,-106.194624254510543 40.99762614711792,-106.190540579491184 40.997606954952467,-106.061180999999991 40.996999000000002,-105.764246857267409 40.99689755617932,-105.730421000000007 40.996886000000003,-105.724804000000006 40.99691,-105.554417704421283 40.997390710823062,-105.412220703167577 40.997791891195448,-105.277137999999979 40.998173,-105.256527000000006 40.998190999999998,-105.254778999999999 40.99821,-105.173435761678107 40.998177015252317,-104.943370680568208 40.998083723679372,-104.855272999999997 40.998047999999997,-104.829503999999986 40.999270000000003,-104.675999000000004 41.000957,-104.497148999999993 41.001828000000003,-104.497057999999996 41.001804999999997,-104.467671999999979 41.001472999999997,-104.214691999999999 41.001657000000002,-104.214191 41.001567999999999,-104.211472999999998 41.001590999999998,-104.123585999999989 41.001625999999995,-104.104590000000002 41.001542999999991,-104.086067999999983 41.001562999999997,-104.066960999999992 41.001503999999997,-104.053248999999994 41.001405999999996,-104.039237999999997 41.001502000000002,-104.023382999999981 41.001887000000004,-104.018223000000006 41.001617000000003,-104.010804886779724 41.00161667450854,-103.972641999999979 41.001615,-103.971373 41.001524000000003,-103.953524999999999 41.001595999999999,-103.906323999999998 41.001387,-103.896207000000004 41.00175,-103.877966999999998 41.00167299999999,-103.858448999999993 41.001680999999998,-103.750497999999993 41.002054,-103.574522000000002 41.001721000000003,-103.497446999999994 41.001635,-103.486697000000007 41.001913999999999,-103.421975000000003 41.002006999999999,-103.421925000000002 41.001968999999995,-103.396990999999986 41.002558,-103.365313999999984 41.001846,-103.362978999999996 41.001843999999991,-103.077804 41.002298000000003,-103.076536000000004 41.002253000000003,-103.059537999999989 41.002367999999997,-103.057997999999998 41.002367999999997,-103.043443999999994 41.002344,-103.038703999999996 41.002251,-103.002026 41.002485999999998,-103.000101999999984 41.002400000000002,-102.982690000000005 41.002156999999997,-102.981482999999997 41.002111999999997,-102.963668999999982 41.002185999999995,-102.962522000000007 41.002071999999998,-102.960706000000002 41.002058999999996,-102.959623999999991 41.002094999999997,-102.944829999999996 41.002302999999998,-102.943109000000007 41.002051000000002,-102.925567999999998 41.002279999999999,-102.924029000000004 41.002141999999999,-102.906546999999989 41.002275999999995,-102.904796000000005 41.002206999999999,-102.887406999999982 41.002178,-102.885745999999997 41.002130999999999,-102.867822000000004 41.002183000000002,-102.865783999999991 41.001987999999997,-102.849262999999993 41.002301000000003,-102.846455000000006 41.002256000000003,-102.830302999999986 41.002350999999997,-102.827280000000002 41.002142999999997,-102.773545999999996 41.002414000000002,-102.766722999999999 41.00227499999999,-102.754616999999996 41.002360999999993,-102.739623999999992 41.002229999999997,-102.653462999999988 41.002332000000003,-102.621032999999997 41.002597000000002,-102.578695999999994 41.002291,-102.575738 41.002268,-102.575496 41.002200000000002,-102.566047999999995 41.002200000000002,-102.556788999999995 41.002218999999997,-102.517701071582451 41.002347335877943,-102.487954999999985 41.002444999999994,-102.470536999999979 41.002381999999997,-102.469223 41.002423999999998,-102.460334593696913 41.00241180236555,-102.387750989484957 41.002312195277327,-102.380372991932845 41.002302070389462,-102.379593 41.002301000000003,-102.364065999999994 41.002173999999997,-102.292833000000002 41.002206999999999,-102.292621999999994 41.002229999999997,-102.292552999999998 41.002206999999999,-102.291353999999998 41.002206999999999,-102.277803455573988 41.002233743569548,-102.272099999999995 41.002245000000002,-102.267811999999992 41.002383000000002,-102.231931000000003 41.002327,-102.212199999999982 41.002462,-102.209361 41.002442000000002,-102.209083936251005 41.002440229332002,-102.207776055197755 41.002431870883314,-102.191209999999998 41.002325999999996,-102.124972 41.002338000000002,-102.070598000000004 41.002423,-102.051614 41.002377000000003,-102.051291999999989 40.749591000000002,-102.051634432607003 40.582129592617228,-102.051725000000005 40.537838999999991,-102.051518999999999 40.520094,-102.051464999999993 40.440007999999999,-102.051839999999999 40.396396000000003,-102.051571999999993 40.393079999999998,-102.051797999999991 40.360069000000003,-102.051585542616536 40.350646145741024,-102.051309000000003 40.338380999999998,-102.051922000000005 40.235343999999998,-102.05189399999999 40.229192999999995,-102.051908999999995 40.162674000000003,-102.052001000000004 40.148358999999999,-102.051852600888665 40.064469617536822,-102.051743999999999 40.003078000000002,-102.051715564657869 39.978173027456265,-102.051569 39.849805000000003,-102.051362999999995 39.843471,-102.051317999999995 39.833311000000002,-102.051254 39.818992,-102.05059399999999 39.67559399999999,-102.050099000000003 39.653812000000002,-102.050421999999983 39.646047999999993,-102.049954 39.592331,-102.04980599999999 39.574058,-102.049553999999986 39.538932000000003,-102.049672999999999 39.536690999999998,-102.049678999999998 39.506183,-102.049368999999999 39.423333,-102.049369999999996 39.418210000000002,-102.049166999999983 39.403596999999998,-102.04895999999998 39.37371199999999,-102.048449000000005 39.30313799999999,-102.047250000000005 39.13702,-102.047133999999986 39.129700999999997,-102.046570999999986 39.047038,-102.045387999999988 38.813391999999993,-102.045333999999997 38.799463000000003,-102.045447999999993 38.783453000000002,-102.045371000000003 38.770063999999998,-102.045287000000002 38.755527999999998,-102.045375000000007 38.754338999999995,-102.045211999999992 38.697566999999999,-102.045156000000006 38.688555,-102.045126999999994 38.686725000000003,-102.045159999999996 38.675221,-102.045102 38.674945999999998,-102.045074 38.669617000000002,-102.045287999999999 38.615248999999999,-102.045210999999995 38.581608999999993,-102.045188999999979 38.558731999999992,-102.045222999999993 38.543796999999998,-102.045112000000003 38.523783999999999,-102.045261999999994 38.505531999999995,-102.045262999999991 38.505395,-102.045323999999979 38.453646999999997,-102.044936000000007 38.41968,-102.044441999999989 38.415801999999999,-102.044944 38.384419,-102.044612999999998 38.312323999999997,-102.044567999999998 38.268819,-102.044398 38.250014999999998,-102.044251000000003 38.141777999999995,-102.044535323623649 38.127675380028528,-102.044589000000002 38.125012999999996,-102.044540277332047 38.123262193231092,-102.044255000000007 38.113010999999993,-102.04462354493468 38.04908029653749,-102.044631007072184 38.047785855466316,-102.044644000000005 38.045532,-102.044620085883125 38.042021706570637,-102.044539342086111 38.030169526464491,-102.043844000000007 37.928101999999996,-102.043845000000005 37.926135000000002,-102.043218999999993 37.86792899999999,-102.043032999999994 37.824145999999999,-102.042952999999997 37.803534999999997,-102.042668000000006 37.788758,-102.042158 37.760164000000003,-102.041876000000002 37.723875,-102.041573999999997 37.680436,-102.041694000000007 37.665680999999999,-102.041581999999991 37.654494999999997,-102.041584999999998 37.644281999999997,-102.041618 37.607868000000003,-102.041779405839492 37.578691555295826,-102.041893999999999 37.557977,-102.041899 37.541186000000003,-102.04201599999999 37.535260999999998,-102.041786000000002 37.506065999999997,-102.041800999999992 37.469487999999998,-102.041754999999995 37.434854999999992,-102.041668999999999 37.434739999999998,-102.041675999999981 37.409897999999991,-102.041523999999995 37.375017999999997,-102.042089000000004 37.352818999999997,-102.041973999999996 37.352612999999998,-102.041816999999995 37.309489999999997,-102.041663999999997 37.29764999999999,-102.041962999999996 37.258164,-102.042001999999997 37.141744000000003,-102.042135000000002 37.125020999999997,-102.042091999999997 37.125020999999997,-102.041808999999986 37.111972999999999,-102.041983000000002 37.106551000000003,-102.04191999999999 37.035083,-102.041748999999996 37.034396999999998,-102.041921000000002 37.032178000000002,-102.04195 37.030805,-102.041951999999995 37.024741999999996,-102.042240000000007 36.993082999999999,-102.054502999999997 36.993108999999997,-102.184270999999995 36.993592999999997,-102.208315999999996 36.993729999999999,-102.260789000000003 36.994388,-102.270345681835295 36.994399933337462,-102.307593650497381 36.994446444520669,-102.355288000000002 36.994505999999994,-102.355367 36.994574999999998,-102.698142000000004 36.995148999999998,-102.742059999999981 36.997689,-102.759860000000003 37.000019000000002,-102.77856899999999 36.999242000000002,-102.806762000000006 37.000019000000002,-102.814616 37.000782999999998,-102.841988999999998 36.999597999999999,-102.979613 36.998548999999997,-102.985806999999994 36.998570999999998,-102.986975999999999 36.998524000000003,-103.002199000000005 37.000104,-103.086104969413952 37.000173865694038,-103.10540536532865 37.000189936488113,-103.155922000000004 37.000231999999997,-103.200631728472104 37.000060386509688,-103.327177769406262 36.999574653124313,-103.425678872433053 36.999196567220693,-103.733247000000006 36.998015999999993,-103.734363999999985 36.998041,-104.007854999999992 36.996239000000003,-104.215475488463966 36.994874432196589,-104.250535999999983 36.994644,-104.29757064295984 36.994053250381747,-104.338832999999994 36.993535,-104.355650525350313 36.993556531771581,-104.366447685535107 36.993570355564437,-104.399202882083287 36.993612292614962,-104.429769386650008 36.993651427444888,-104.480610316975273 36.993716519976395,-104.519256999999996 36.993765999999994,-104.624555999999998 36.994376999999993,-104.625545000000002 36.993599000000003,-104.645028999999994 36.993377999999993,-104.706112207267154 36.993426444188657,-104.732031000000006 36.993447000000003,-104.732119999999981 36.993484000000002,-104.839990412520109 36.993395592828207,-105.00055399999998 36.993264000000003,-105.029227999999989 36.99272899999999,-105.120800000000003 36.995427999999997,-105.155041964101514 36.995339147158163,-105.220613 36.995168999999997,-105.251295999999996 36.995604999999998,-105.419309999999996 36.995856000000003,-105.438102743613229 36.995968030697597,-105.442458999999999 36.995994000000003,-105.447254999999998 36.996016999999995,-105.465181999999999 36.995990999999997,-105.47087670692585 36.995978476706256,-105.508835999999988 36.99589499999999,-105.512484999999998 36.995776999999997,-105.533922000000004 36.995874999999998,-105.627469999999988 36.995679000000003,-105.664719999999988 36.995874,-105.716470999999999 36.995848999999993,-105.718407304549174 36.995846016149208,-105.996159000000006 36.995418,-105.997472000000002 36.995417000000003,-106.006633999999991 36.995342999999998,-106.099805867433119 36.994759106704976,-106.163971382218094 36.994356991615014,-106.201468999999989 36.994121999999997,-106.247704999999996 36.994266000000003,-106.248675000000006 36.99428799999999,-106.293278999999998 36.99389,-106.32542867882475 36.994109231664673,-106.343138999999979 36.994230000000002,-106.476277952851959 36.993839335051021,-106.500589000000005 36.993767999999996,-106.617159 36.992967,-106.617124999999987 36.993003999999999,-106.628652000000002 36.993175,-106.628732999999983 36.993160999999994,-106.661344 36.993243,-106.675625999999994 36.993122999999997,-106.750591 36.992460999999999,-106.782095289714647 36.992451749967366,-106.869795999999994 36.992425999999995,-106.877291999999983 37.00013899999999,-106.918886463342702 37.000128747161924,-106.95601836457638 37.000119594324254,-107.107262626744514 37.000082313330452,-107.255202723469637 37.000045846797775,-107.420912999999999 37.000004999999994,-107.422415013680663 37.000004989636103,-107.442181999144324 37.000004853243873,-107.481737001398656 37.00000458031429,-107.524086846417021 37.000004288100286,-107.600713640777798 37.000003759375268,-107.712477900838564 37.000002988201679,-107.855695499501934 37.000002000000002,-107.866308937617532 37.000001926767261,-107.869139908586362 37.000001907233546,-107.869180699306327 37.0000019069521,-108.000623000000004 37.000000999999997,-108.179187075278463 36.999293161624927,-108.187139540298872 36.999261637591275,-108.249358 36.999015,-108.250634999999988 36.999561,-108.288086000000007 36.999555,-108.288399999999996 36.999519999999997,-108.320464 36.999499,-108.320720999999992 36.99951,-108.379165570428881 36.999458977707043,-108.619688999999994 36.999248999999999,-108.620309000000006 36.999287000000002,-108.749269825405847 36.999139933822768,-108.954403999999997 36.998905999999998,-108.958867999999995 36.998913000000002,-109.045222999999993 36.999084000000003,-109.04516599999998 37.072741999999998,-109.045057999999997 37.074660999999999,-109.044995 37.086429000000003,-109.045188999999993 37.096270999999994,-109.045173000000005 37.109464000000003,-109.045202999999987 37.111957999999994,-109.045155999999992 37.112063999999997,-109.045995000000005 37.177278999999999,-109.045978000000005 37.201830999999999,-109.045801505106283 37.205070813598866,-109.045486999999994 37.210844000000002,-109.045559879533187 37.239775672002708,-109.04556019774752 37.239901996533845,-109.045583999999991 37.249350999999997,-109.046038999999993 37.249993000000003,-109.045898042273308 37.32693499054853,-109.045810000000003 37.374993000000003,-109.043799132325617 37.469028334242019,-109.043463783260819 37.484710450871816,-109.043424942780035 37.486526770085334,-109.043137000000002 37.499991999999999,-109.041915000000003 37.530653,-109.041865 37.530726,-109.041805999999994 37.604171,-109.042130999999998 37.617662000000003,-109.042089000000004 37.623795,-109.042269000000005 37.666066999999998,-109.041731999999996 37.711213999999998,-109.041759999999996 37.713182000000003,-109.041635999999997 37.740209999999998,-109.042097999999996 37.749989999999997,-109.042042148900066 37.754383999799849,-109.041460999999998 37.800105000000002,-109.041753999999997 37.83582599999999,-109.04172299999999 37.842050999999998,-109.041843999999998 37.872788,-109.041652818578953 37.881166902788557,-109.041058000000007 37.907235999999997,-109.043120999999985 37.97426,-109.042818999999994 37.997067999999999,-109.042819999999992 37.999301000000003,-109.041972403965843 38.131799166817459,-109.041836656974709 38.153019449536792,-109.041761999999991 38.16469,-109.054648 38.244920999999998,-109.060061999999988 38.275489,-109.059961999999999 38.49998699999999,-109.060253000000003 38.599327999999993,-109.059540999999996 38.719887999999997,-109.057388000000003 38.795455999999994,-109.057216044916757 38.799730849597076,-109.054188999999994 38.874983999999998,-109.05394299999999 38.904414000000003,-109.053797000000003 38.905283999999995,-109.053233000000006 38.942467,-109.053291999999985 38.942878,-109.052435999999986 38.999985000000002,-109.051587912503535 39.115734257770079,-109.051583515738272 39.116334340093104,-109.051580780636755 39.116707634089543,-109.051512000000002 39.126094999999999,-109.050764999999998 39.366677000000003,-109.051362999999981 39.497674000000004,-109.051040248333237 39.660472011844121,-109.050614999999993 39.874969999999998,-109.050872999999996 40.058914999999999,-109.050813000000005 40.059578999999992,-109.050944 40.180711999999993,-109.050972999999999 40.180849000000002,-109.050968715822648 40.22266241227041,-109.050945999999996 40.444367999999997,-109.050314 40.495092,-109.050697999999983 40.499963,-109.049954999999997 40.539901,-109.050073999999995 40.540357999999998,-109.050071964046666 40.540437104308737,-109.048044000000004 40.619230999999999,-109.048248999999998 40.653600999999995,-109.049087999999998 40.714562,-109.048455000000004 40.826081000000002,-109.050076000000004 41.000658999999999,-108.884137999999993 41.000093999999997,-108.631107999999998 41.00015599999999,-108.526667000000003 40.999608000000002,-108.500658999999999 41.000112,-108.250648999999996 41.000114000000004,-108.181227000000007 41.000454999999995,-108.089219003138552 41.001554139247368,-108.046538999999996 41.002063999999997,-107.923234122395939 41.0020370519008,-107.918420999999981 41.002035999999997))'));
+INSERT INTO geoapp_state (`name`, `poly`) VALUES ('Kansas', GeomFromText('POLYGON ((-102.051743999999999 40.003078000000002,-101.916696000000002 40.003141999999997,-101.904176000000007 40.003162000000003,-101.861740775252272 40.002907997451267,-101.841025000000002 40.002783999999991,-101.832160999999999 40.002932999999999,-101.807687 40.002797999999999,-101.804861999999986 40.002752,-101.783266423091504 40.002735966476642,-101.748492901329186 40.002710149056902,-101.627071 40.00262,-101.625809000000004 40.002710999999998,-101.579641080501318 40.002654627564297,-101.54227299999998 40.002608999999993,-101.417209 40.002423999999998,-101.411050023557621 40.002364583193085,-101.409952999999987 40.002353999999997,-101.387325211262052 40.00246006676732,-101.374325999999996 40.002520999999994,-101.342859000000004 40.002580000000002,-101.324035999999992 40.002695999999993,-101.293991000000005 40.002558999999998,-101.286555000000007 40.002558999999998,-101.248672999999997 40.002543000000003,-101.215033000000005 40.002555,-101.19221899999998 40.002490999999999,-101.186892990733696 40.002481867883319,-101.178804999999997 40.002468,-101.168704000000005 40.002547,-101.130906999999993 40.002426999999997,-101.104950380573442 40.002382874850099,-101.104950380567658 40.002382874850092,-101.060316999999998 40.002307000000002,-101.027686000000003 40.002255999999996,-100.962089380046322 40.00217532965339,-100.937427 40.002144999999999,-100.764559455237134 40.002296963384197,-100.758829999999989 40.002301999999993,-100.752183000000002 40.002127999999992,-100.7388309887763 40.002228385746484,-100.733295999999996 40.002270000000003,-100.729904000000005 40.002110999999999,-100.721127999999993 40.002068999999999,-100.683435000000003 40.002234,-100.660229999999984 40.002161999999998,-100.645444999999995 40.001882999999999,-100.626504856699498 40.001892789287538,-100.600944999999996 40.001905999999998,-100.594756999999987 40.001976999999997,-100.567238000000003 40.001888999999998,-100.551885999999996 40.001888999999998,-100.514429898999168 40.001844039098764,-100.511064999999988 40.00184,-100.487159000000005 40.001767,-100.477018 40.001752000000003,-100.475853999999998 40.001767999999998,-100.468772999999985 40.001724000000003,-100.447071999999991 40.001795,-100.439081000000002 40.001773999999997,-100.402449685831499 40.001800164690437,-100.390079999999998 40.001809000000002,-100.290126736823893 40.001691651381378,-100.231651999999997 40.001623000000002,-100.229478999999998 40.001692999999996,-100.215406000000002 40.001629,-100.196958999999993 40.001494,-100.19359 40.001573,-100.190323000000006 40.001586000000003,-100.188181 40.001541000000003,-100.177823000000004 40.001593,-99.990926000000002 40.001503,-99.986610999999996 40.001550000000002,-99.948166999999998 40.001812999999999,-99.944417 40.001584,-99.930432999999979 40.001516000000002,-99.906657999999993 40.001511999999998,-99.850154757615712 40.001444140609848,-99.813400999999999 40.001399999999997,-99.775639999999981 40.001646999999998,-99.772120999999984 40.001804,-99.764213999999996 40.001550999999999,-99.756834999999995 40.001342,-99.746628 40.001820000000002,-99.737774855821357 40.001824224692157,-99.731959000000003 40.001826999999992,-99.719639 40.001807999999997,-99.628345999999993 40.001866,-99.625979999999984 40.001865000000002,-99.515340365578794 40.002008435606839,-99.501791999999995 40.002026,-99.498998999999984 40.00195699999999,-99.497659999999982 40.001911999999997,-99.493464999999986 40.001936999999998,-99.480727999999999 40.001942,-99.423564999999996 40.002270000000003,-99.412644999999998 40.001867999999995,-99.403389000000004 40.001969000000003,-99.366747146128873 40.001962496644857,-99.290702999999979 40.001949000000003,-99.286655999999994 40.002017000000002,-99.282966999999999 40.001879000000002,-99.254012000000003 40.002074,-99.25036999999999 40.00195699999999,-99.216375999999997 40.002015999999998,-99.197591999999986 40.002032999999997,-99.188905000000005 40.002023,-99.186961999999994 40.001976999999997,-99.178965000000005 40.001976999999997,-99.169815999999997 40.001925,-99.123032999999992 40.002164999999998,-99.113510000000005 40.002192999999998,-99.085596999999993 40.002132999999994,-99.067047050731574 40.00217023690761,-99.020337999999995 40.00226399999999,-99.018700999999993 40.002333,-98.992135000000005 40.002192,-98.972286999999994 40.002245000000002,-98.971721000000002 40.002268,-98.961009000000004 40.002316999999998,-98.96091899999999 40.002271,-98.953888072580213 40.002253239016738,-98.934791999999987 40.002204999999996,-98.8435956659672 40.002348607685946,-98.842134005327992 40.002350909376077,-98.834455999999989 40.002363000000003,-98.820589999999982 40.002319,-98.777203 40.002358999999998,-98.774940999999998 40.002336,-98.729330606936671 40.002229113826232,-98.726294999999993 40.002222000000003,-98.710403999999997 40.002180000000003,-98.693095999999997 40.002372999999999,-98.691443000000007 40.002504999999999,-98.690286999999998 40.002547999999997,-98.672819000000004 40.002364,-98.669723999999988 40.002409999999998,-98.653832999999992 40.002268999999998,-98.652494000000004 40.002245000000002,-98.640709999999984 40.002493,-98.616372379820518 40.002409030470169,-98.613754999999998 40.002400000000002,-98.593342000000007 40.002475999999994,-98.575219000000004 40.002479999999991,-98.560578000000007 40.002274,-98.543186000000006 40.002285,-98.523053000000004 40.002336,-98.506634585466017 40.002329436673158,-98.504454999999979 40.002328565375151,-98.50084801790743 40.002327123469641,-98.490532999999999 40.002322999999997,-98.441997554675297 40.002366263566756,-98.391848301995964 40.002410965650498,-98.274015000000006 40.002516,-98.268218000000005 40.002490000000002,-98.25000799999998 40.002307000000002,-98.213290432425865 40.002506421375415,-98.193483 40.002614,-98.179315000000003 40.002482999999998,-98.172269 40.002437999999991,-98.156873151934732 40.002445128178877,-98.142031000000003 40.002451999999998,-98.099659000000003 40.002226999999998,-98.076034000000007 40.002300999999996,-98.068701000000004 40.002355,-98.050056999999981 40.002277999999997,-98.047469000000007 40.002186000000002,-98.042767978165202 40.002191261754177,-98.014411999999979 40.002223,-98.010157000000007 40.002153,-97.972185999999994 40.002113999999999,-97.931810999999996 40.002049999999997,-97.876261 40.002102,-97.85745 40.002065000000002,-97.838378999999989 40.001909999999995,-97.821597999999994 40.002003999999992,-97.819426000000007 40.001957999999995,-97.777154999999993 40.002167,-97.770775999999998 40.001976999999997,-97.769204000000002 40.001995,-97.767746000000002 40.001994000000003,-97.714825952022949 40.001974503868432,-97.706952472912022 40.001971603221314,-97.701160424072398 40.001969469388285,-97.61370959051284 40.001937251863488,-97.595964207410262 40.001930714334961,-97.593671575073259 40.001929869712491,-97.51530799999999 40.001900999999997,-97.511381 40.001899000000002,-97.510264000000006 40.001835,-97.48896951184885 40.0019310946697,-97.481234094494141 40.001966001936331,-97.463284999999999 40.00204699999999,-97.444661999999994 40.001957999999995,-97.425443 40.002048000000002,-97.417825999999991 40.002023999999999,-97.415833000000006 40.002000999999993,-97.369102999999996 40.00206,-97.350896000000006 40.001930000000002,-97.350272000000004 40.001975999999999,-97.256541388870858 40.001563097676062,-97.24516899999999 40.001513000000003,-97.245080000000002 40.001466999999998,-97.202309999999997 40.00144199999999,-97.200190000000006 40.001548999999997,-97.181775000000002 40.001550000000002,-97.165136038800085 40.001526729909067,-97.164288093539042 40.001525544031956,-97.157705785150654 40.001516338474417,-97.144150390621661 40.001497380844818,-97.142447999999987 40.001494999999998,-97.137865999999988 40.001814000000003,-97.049662999999995 40.001322999999999,-97.030802999999992 40.001342,-97.009164999999996 40.001463,-96.918187714380807 40.001505032225388,-96.916093000000004 40.001505999999999,-96.880459000000002 40.001448000000003,-96.878253 40.001466,-96.875056999999998 40.001448000000003,-96.873812 40.001449999999998,-96.868892342573133 40.001444286089438,-96.805301797100199 40.001370429180717,-96.693246065483095 40.001240282633297,-96.622400999999996 40.001157999999997,-96.610348999999999 40.000881,-96.604883999999984 40.000891000000003,-96.581788013355691 40.000963078853125,-96.580851999999993 40.000965999999998,-96.570853999999997 40.001090999999995,-96.557862999999998 40.000968,-96.538977000000003 40.000850999999997,-96.527110999999991 40.001030999999998,-96.469944999999996 40.000965999999998,-96.467535999999996 40.001035000000002,-96.463639999999998 40.000967000000003,-96.354812913341547 40.000735780492882,-96.350953725714731 40.00072758106856,-96.341811057717251 40.000708156095854,-96.304554999999993 40.000629000000004,-96.301066000000006 40.000632000000003,-96.239171999999996 40.000691000000003,-96.223838999999998 40.000729,-96.220170999999993 40.00072,-96.154364999999984 40.000495,-96.154246 40.00045,-96.147166999999982 40.000478999999999,-96.125936999999979 40.000432000000004,-96.125788 40.000467,-96.089781000000002 40.000518999999997,-96.081394999999986 40.000602999999998,-96.051691000000005 40.000726999999998,-96.02409 40.000718999999997,-96.014716997898134 40.000662392993569,-96.010677999999999 40.000638000000002,-95.995389500007406 40.000603953777215,-95.958139000000003 40.000520999999999,-95.901560435593936 40.000482839492363,-95.882524000000004 40.00047,-95.788023999999993 40.000452000000003,-95.784575000000004 40.000463000000003,-95.672891827756033 40.000336669594915,-95.658762261555324 40.000320686938032,-95.63965170807073 40.000299070038061,-95.565216789143676 40.000214872989645,-95.463103327781397 40.00009936736172,-95.455130658279359 40.000090349077695,-95.452048066669519 40.000086862204618,-95.438655850967621 40.000071713601649,-95.436011808705814 40.000068722793607,-95.426269559489981 40.00005770284973,-95.42148745056565 40.000052293567869,-95.41484447973599 40.000044779372317,-95.375257000000005 40.0,-95.339895999999982 39.999999000000003,-95.326448603970363 39.999998574530281,-95.30829 39.999997999999998,-95.308403999999996 39.993758,-95.307779999999994 39.990617999999998,-95.307111000000006 39.989114,-95.302506999999991 39.984357000000003,-95.289715 39.977705999999998,-95.274756999999994 39.972115000000002,-95.269885999999985 39.969396000000003,-95.261854 39.960617999999997,-95.257651999999993 39.954886000000002,-95.250253999999998 39.948644000000002,-95.241382999999999 39.944949,-95.236761 39.943930999999999,-95.231114000000005 39.943784,-95.220212000000004 39.944432999999997,-95.216440000000006 39.943953,-95.213736999999995 39.943205999999996,-95.204427999999993 39.938949,-95.201277000000005 39.934193999999998,-95.200689999999994 39.928154999999997,-95.20201 39.922438,-95.205744999999993 39.915168999999999,-95.206326000000004 39.912120999999999,-95.206195999999991 39.909557,-95.205732999999981 39.908275000000003,-95.202631127107011 39.904826841138963,-95.201935000000006 39.904052999999998,-95.19982446963148 39.902956959499498,-95.199773390195176 39.902930432929807,-95.199730682369619 39.902908253904485,-95.199347000000003 39.902709000000002,-95.193815999999984 39.900689999999997,-95.189565000000002 39.899959000000003,-95.179452999999995 39.900061999999991,-95.172296000000003 39.902025999999999,-95.159833999999989 39.906984,-95.156023999999988 39.907243,-95.153185481864639 39.906665666721331,-95.151701132402337 39.906363761184394,-95.149656999999991 39.905947999999995,-95.148243978290679 39.905255611516672,-95.146055000000004 39.904183000000003,-95.143801999999994 39.901917999999995,-95.142562999999981 39.897992000000002,-95.142444999999995 39.895419999999994,-95.143403000000006 39.889355999999992,-95.142718000000002 39.885888999999992,-95.140601000000004 39.88168799999999,-95.137091999999996 39.878350999999995,-95.134747000000004 39.876852,-95.128165999999993 39.874164999999998,-95.105912000000004 39.869163999999998,-95.090958483530287 39.863446088154532,-95.090158000000002 39.86314,-95.085003 39.861882999999999,-95.081534000000005 39.861718000000003,-95.079786043666886 39.861878094210859,-95.052535000000006 39.864373999999998,-95.042141999999998 39.864804999999997,-95.037767000000002 39.865541999999998,-95.034318031759739 39.867229060943565,-95.032053000000005 39.868336999999997,-95.031002514960235 39.869148692103728,-95.027930999999981 39.871521999999999,-95.025918959417425 39.87568321107333,-95.025422000000006 39.876711,-95.025119000000004 39.878833,-95.02586205726584 39.885935119809076,-95.025947000000002 39.886747,-95.025771840138887 39.887478608302466,-95.025475064075451 39.888718183571669,-95.025239999999997 39.889699999999998,-95.024388999999999 39.891202,-95.021897459019584 39.893924778577606,-95.019088516216428 39.896994416745422,-95.018742999999986 39.89737199999999,-95.018224596337973 39.897611313155366,-95.013151999999991 39.899952999999996,-95.010684182587667 39.900289758615472,-95.008439999999993 39.900596,-95.003818999999993 39.900400999999995,-94.990284000000003 39.897010000000002,-94.989784913598129 39.896958718834505,-94.987823822157509 39.896757216540813,-94.986975 39.89667,-94.985308455245701 39.896814869812808,-94.979390624873346 39.897329296428744,-94.977748999999989 39.897472,-94.963345000000004 39.901136,-94.959276000000003 39.901671,-94.958440298615102 39.901548064610132,-94.95153999999998 39.900532999999996,-94.943866999999983 39.898130000000002,-94.935306395585215 39.893779379194363,-94.934493000000003 39.893366,-94.929574000000002 39.888753999999992,-94.927897000000002 39.88611199999999,-94.927358999999996 39.883966,-94.927251999999996 39.880257999999991,-94.928466 39.876344000000003,-94.931084167287821 39.873075003673321,-94.931462999999994 39.872602,-94.938790999999995 39.866954,-94.940742999999998 39.864409999999999,-94.942407000000003 39.861065999999994,-94.942566999999983 39.856601999999995,-94.939767000000003 39.851930000000003,-94.937655000000007 39.849786000000002,-94.926149999999993 39.841321999999998,-94.916917999999995 39.836137999999998,-94.909941999999987 39.834426,-94.903156999999979 39.833849999999998,-94.892677000000006 39.834377999999994,-94.889493000000002 39.834026,-94.886932999999999 39.833098,-94.881012999999996 39.828921999999991,-94.878676999999996 39.826521999999997,-94.877043999999998 39.823754,-94.876543999999996 39.820594,-94.875944000000004 39.813293999999999,-94.87632679569893 39.807169268817198,-94.876344000000003 39.806894,-94.876705972386588 39.80614007495069,-94.880932 39.797338000000003,-94.884084 39.794234000000003,-94.890292000000002 39.791626,-94.892965000000004 39.791097999999991,-94.912908274541266 39.790276806342419,-94.92474489359239 39.789789416146199,-94.925605000000004 39.789753999999995,-94.925940683661906 39.789631963361245,-94.927258709273417 39.789152799691166,-94.929653999999999 39.788281999999995,-94.93035270914757 39.787827111232048,-94.930442023078356 39.787768964141691,-94.930979872832452 39.787418801541357,-94.932726000000002 39.786282,-94.932913349551853 39.786043884763131,-94.935059195246907 39.783316584105528,-94.935205999999994 39.78313,-94.935782000000003 39.778905999999999,-94.935301999999993 39.77561,-94.935036741896766 39.775108050050804,-94.934624304242575 39.774327591105198,-94.934262000000004 39.773642000000002,-94.929652999999988 39.769098,-94.929421387607832 39.768921584953624,-94.928626586797606 39.768316199289764,-94.926229000000006 39.76648999999999,-94.923991330811134 39.765173947104167,-94.916788999999994 39.760937999999996,-94.912293000000005 39.759337999999993,-94.906244 39.759417999999997,-94.905921454535701 39.759501730763866,-94.900921941190049 39.760799572828766,-94.899156000000005 39.761257999999998,-94.899025621234756 39.761323457651685,-94.895268000000002 39.76321,-94.895041000000006 39.763350000000003,-94.894070999999997 39.763945999999997,-94.893918999999997 39.76404,-94.893724000000006 39.764159999999997,-94.893646000000004 39.764208000000004,-94.883923999999993 39.770186000000002,-94.881460000000004 39.771258000000003,-94.881422 39.771258000000003,-94.874706321154179 39.772392308082928,-94.871144 39.772993999999997,-94.869643999999994 39.772894,-94.867142999999999 39.771693999999997,-94.865243000000007 39.770094,-94.863142999999994 39.767294,-94.860742999999999 39.763094000000002,-94.859442999999999 39.753694000000003,-94.860369889104035 39.749534984666809,-94.860371 39.74953,-94.862942999999987 39.742994000000003,-94.870142999999999 39.734594,-94.875642999999997 39.730494,-94.884142999999995 39.726793999999998,-94.891743999999989 39.724893999999999,-94.899315999999999 39.724041999999997,-94.900553640444031 39.724102079633198,-94.901582061073228 39.724152002964722,-94.902612000000005 39.724201999999998,-94.906055088082866 39.724933471502588,-94.907014260749904 39.725137244236571,-94.907785666538786 39.725301126582274,-94.910067999999995 39.725785999999999,-94.911087398893699 39.726157408899255,-94.918323999999998 39.728793999999994,-94.93000499999998 39.735370000000003,-94.939221000000003 39.74157799999999,-94.944740999999979 39.744377,-94.948658825773634 39.745572502168315,-94.948680784417533 39.745579202723142,-94.948725999999994 39.745593,-94.952629999999999 39.745961,-94.955286 39.745688999999999,-94.960086000000004 39.743065,-94.963779819772341 39.740240978767318,-94.964692434782606 39.73954326086956,-94.965317999999982 39.739064999999989,-94.965565209393333 39.738728671232884,-94.970224508542714 39.732389687437191,-94.970421999999985 39.732120999999999,-94.971205999999981 39.729304999999997,-94.971078000000006 39.723146,-94.968452999999997 39.707402000000002,-94.968980999999999 39.692954,-94.969909 39.689050000000002,-94.971316999999999 39.686410000000002,-94.976096392737759 39.68160006801152,-94.976325000000003 39.68137,-94.981556999999995 39.678634000000002,-94.984149000000002 39.677849999999992,-94.986445080691666 39.677537608069159,-94.990587390516794 39.676974028501114,-94.993556999999996 39.676569999999998,-94.998766892420107 39.676509388876212,-95.001379 39.676479,-95.004602740773237 39.676177881356345,-95.008105239221649 39.675850724907868,-95.009022999999999 39.675764999999998,-95.010225986948086 39.675477408241932,-95.013209713780839 39.674764104372102,-95.015309999999985 39.674261999999999,-95.018317999999994 39.672868999999999,-95.021521942351953 39.670631293568427,-95.024595000000005 39.668484999999997,-95.027643999999995 39.665453999999997,-95.037464 39.652904999999997,-95.039049000000006 39.649639,-95.044554000000005 39.644370000000002,-95.049518000000006 39.637875999999999,-95.053366999999994 39.630347,-95.054924999999997 39.624994999999991,-95.055024819926729 39.623527163368095,-95.055152000000007 39.621656999999992,-95.054958456554544 39.620961328886679,-95.053131423647116 39.614394255464305,-95.053011999999981 39.613965,-95.052555891387243 39.613278556984888,-95.047910999999999 39.606287999999999,-95.046445000000006 39.601605999999997,-95.046361000000005 39.599556999999997,-95.047165000000007 39.595117000000002,-95.049277000000004 39.589582999999998,-95.054804000000004 39.582487999999998,-95.056897000000006 39.580567000000002,-95.059518999999995 39.579132,-95.064519000000004 39.577114999999999,-95.066275551338904 39.576786470694117,-95.068266439890465 39.576414113098046,-95.069315000000003 39.576217999999997,-95.072159999999982 39.576121999999991,-95.075842551355763 39.576644128527029,-95.076688000000004 39.576763999999997,-95.088569515113861 39.580713698327401,-95.089515000000006 39.581028000000003,-95.09068217809525 39.58095107619048,-95.095736000000002 39.580618,-95.099095000000005 39.579690999999997,-95.100375015351446 39.579100080742663,-95.10182940536555 39.578428661399109,-95.103228 39.577782999999997,-95.106109962410699 39.575487768136732,-95.106244982404746 39.575380236480051,-95.106274453941239 39.575356764970024,-95.106406000000007 39.575251999999999,-95.107454000000004 39.573842999999997,-95.108931052511622 39.56997896968771,-95.109155613535791 39.569391508783276,-95.112830712234896 39.559777298955126,-95.112877844119652 39.559653999999995,-95.113077000000004 39.559132999999996,-95.113262990573148 39.557121201967142,-95.113516735173974 39.554376531201555,-95.113557 39.553940999999995,-95.113330390574859 39.553319942050457,-95.109694540741444 39.543355336910984,-95.109303999999995 39.542284999999993,-95.106595999999996 39.537657000000003,-95.106363136618171 39.537386330858773,-95.106309238275287 39.537323682029822,-95.102887999999993 39.533346999999999,-95.096713422649174 39.527826015970483,-95.095319522838992 39.526579663685382,-95.092703999999998 39.524241000000004,-95.082713999999996 39.516711999999998,-95.077440999999993 39.513551999999997,-95.059460999999985 39.506143000000002,-95.05637999999999 39.503971999999997,-95.052176999999986 39.499995999999996,-95.050551999999996 39.497514000000002,-95.049844999999991 39.494414999999989,-95.048370000000006 39.480420000000002,-95.047133000000002 39.474970999999996,-95.045715999999999 39.472459,-95.040779999999998 39.466386999999997,-95.03749999999998 39.463689000000002,-95.033407999999994 39.460875999999992,-95.028497999999999 39.458286999999999,-95.015825000000007 39.452809000000002,-94.995767999999998 39.448174000000002,-94.990172 39.446192000000003,-94.982144000000005 39.440551999999997,-94.978797999999998 39.436241000000003,-94.976606000000004 39.426701,-94.972952000000006 39.421705000000003,-94.968547467194298 39.418879728230785,-94.966981164652054 39.417875029083376,-94.966065999999998 39.417287999999999,-94.965430539155946 39.417093446959996,-94.954817000000006 39.413843999999997,-94.951209000000006 39.411706999999993,-94.947863999999996 39.408603999999997,-94.946292999999983 39.405645999999997,-94.946662000000003 39.399717000000003,-94.946226999999993 39.395648,-94.945577 39.393850999999998,-94.942038999999994 39.389499,-94.939696999999995 39.387949999999996,-94.938205659338905 39.38711651736979,-94.938199994953891 39.387113351650086,-94.938198708293527 39.387112632559479,-94.937157999999982 39.386530999999998,-94.933651999999995 39.385545999999998,-94.932170703908099 39.385397898493565,-94.923109999999994 39.384492000000002,-94.919224999999997 39.385173999999999,-94.915858999999998 39.386347999999998,-94.909581000000003 39.388865000000003,-94.901822999999993 39.392797999999999,-94.896448416922993 39.39340032396553,-94.894979000000006 39.393565000000002,-94.891845000000004 39.393312999999999,-94.888971999999995 39.392431999999999,-94.888058227506249 39.391822741147728,-94.885025999999996 39.389800999999999,-94.880978999999996 39.383899,-94.879281000000006 39.37977999999999,-94.879087999999996 39.375702999999994,-94.881359999999987 39.370382999999997,-94.885216 39.366911000000002,-94.890928000000002 39.364030999999997,-94.896832000000003 39.363135,-94.899023999999997 39.362431,-94.902496999999997 39.360382999999999,-94.90716104958679 39.35683832231404,-94.907297 39.356735,-94.907510470967722 39.356484333333356,-94.909408999999997 39.354254999999995,-94.910016999999996 39.352542999999997,-94.91007929967077 39.352122876579188,-94.910166635146069 39.351533921963672,-94.910234386079424 39.351077037464393,-94.910640999999998 39.348334999999999,-94.910055514481613 39.342727430625168,-94.908683540921714 39.329587162119807,-94.908064999999993 39.323663000000003,-94.906599414484603 39.317389801180319,-94.905982468129508 39.31474906332776,-94.905548856768945 39.312893060899633,-94.905328999999995 39.311951999999998,-94.904604536115073 39.31007473956825,-94.903592654247163 39.307452709910535,-94.903137 39.306272,-94.902341179156608 39.304705098857582,-94.900693838394318 39.301461629999167,-94.900362755471093 39.300809756886117,-94.900048999999996 39.300192000000003,-94.895217000000002 39.29420799999999,-94.889432625546704 39.288730528394183,-94.887056 39.286479999999997,-94.882576 39.283327999999997,-94.881425972827699 39.282735692772164,-94.879585687759075 39.281787876778168,-94.878319999999988 39.281135999999996,-94.869470269042495 39.278423959123423,-94.867567999999991 39.277841000000002,-94.866576416802303 39.277461598502107,-94.857072000000002 39.273825000000002,-94.850573678793964 39.270595179638669,-94.850470600187833 39.270543947117169,-94.846320000000006 39.268481,-94.844203868589133 39.266965084952687,-94.840994595225254 39.264666085108807,-94.837855000000005 39.262416999999999,-94.836102527271095 39.260730409704507,-94.834879550067882 39.259553409087879,-94.832501320107042 39.257264586268427,-94.832102355305352 39.256880620143498,-94.831470999999993 39.256273,-94.827487000000005 39.249888999999996,-94.826571473591798 39.245793223963304,-94.825663000000006 39.241728999999999,-94.826110999999983 39.238289000000002,-94.826405091238243 39.237538367125239,-94.827108391663188 39.2357432765168,-94.827791000000005 39.234000999999999,-94.828117769197533 39.233533772937683,-94.83244435695299 39.227347452739551,-94.834698551534771 39.224124319346686,-94.834896 39.223841999999998,-94.834917496024659 39.223414229109203,-94.835039139715306 39.220993519665384,-94.835046603087861 39.220844998551456,-94.835055999999994 39.220658,-94.833551999999997 39.217793999999998,-94.831678999999994 39.215938,-94.823791 39.209873999999999,-94.820687000000007 39.208626000000002,-94.811662999999996 39.206594000000003,-94.800359054554335 39.206051410618606,-94.799662999999995 39.206018,-94.798924306591658 39.206116812235138,-94.793913945984244 39.206787029303406,-94.788135068391796 39.207560047994349,-94.787343000000007 39.207666000000003,-94.783838000000003 39.207154000000003,-94.781518000000005 39.206145999999997,-94.780294078498926 39.205273290755756,-94.778971577769184 39.204330290235411,-94.777838000000003 39.203522,-94.775537999999997 39.200602000000003,-94.770897097034492 39.191141697801093,-94.770859400196969 39.191064854247678,-94.770337999999995 39.190002,-94.763137999999998 39.179903000000003,-94.75233799999998 39.173202999999994,-94.74193799999999 39.170203,-94.736536999999998 39.169203000000003,-94.723636999999997 39.169002999999989,-94.714136999999994 39.170403,-94.696331999999998 39.178562999999997,-94.687235999999999 39.183503000000002,-94.680335999999983 39.184303,-94.669134999999997 39.182003000000002,-94.663835000000006 39.179102999999998,-94.660314999999997 39.168050999999991,-94.662434999999988 39.157602999999995,-94.650734999999983 39.154102999999999,-94.640034999999997 39.153102999999994,-94.623934000000006 39.156602999999997,-94.615834000000007 39.160003000000003,-94.608834000000002 39.160502999999999,-94.601732999999996 39.15960299999999,-94.596033000000006 39.157702999999998,-94.591932999999997 39.155003,-94.589933000000002 39.140402999999999,-94.592533000000003 39.135902999999992,-94.600433999999993 39.128503000000002,-94.605733999999998 39.122204000000004,-94.607033999999999 39.119404000000003,-94.607354 39.113444,-94.607234000000005 39.089604,-94.607333999999994 39.081703999999995,-94.607275518421304 39.072346947409343,-94.607234000000005 39.065703999999997,-94.607342812841125 39.057404745686583,-94.60738379566331 39.05427894858029,-94.607437239929951 39.050202705779334,-94.607518499034526 39.044004999999999,-94.607559479691474 39.040879368039988,-94.607612854426819 39.036808428453341,-94.60764748233197 39.034167326647299,-94.607654028188094 39.033668068249817,-94.60769507925167 39.030537066312085,-94.607898722639391 39.015005000000002,-94.607914652765047 39.013789994834404,-94.607991843462372 39.007902590176151,-94.608087526605189 39.000604749887366,-94.608092759229436 39.000205652880325,-94.608190956218394 38.992716079262479,-94.608212339138063 38.991085184540211,-94.608264438806202 38.98711149548862,-94.608279957450691 38.985927874365181,-94.608301211867541 38.984306780669819,-94.608333999999999 38.981805999999999,-94.608294286905348 38.97390309416464,-94.608273484679671 38.969763451253407,-94.608249262127771 38.964943163424849,-94.608207879518076 38.956708024096379,-94.608134000000007 38.942005999999999,-94.608134000000007 38.940005999999997,-94.607866 38.937398000000002,-94.607977999999989 38.936869999999992,-94.608002838442587 38.912906322207348,-94.608006216770249 38.909646973100827,-94.608010407202343 38.90560412040071,-94.608022064178897 38.894357681354862,-94.60802273861259 38.893706999999999,-94.608033000000006 38.883806999999997,-94.608033000000006 38.869207000000003,-94.608033000000006 38.868107000000002,-94.607992999999993 38.867271000000002,-94.608033000000006 38.861207,-94.608033000000006 38.855007,-94.608033000000006 38.850107,-94.608033000000006 38.847206999999997,-94.607624999999999 38.827559999999991,-94.607668973053535 38.825816299300072,-94.608041 38.811064000000002,-94.608617609754887 38.781926100280451,-94.609398999999996 38.742440000000002,-94.60945599999998 38.74069999999999,-94.609507757106428 38.73815999467709,-94.609625656590424 38.7323740198146,-94.610322172686637 38.698192151600097,-94.61071084056907 38.679118085101081,-94.61073851283922 38.677760054904219,-94.611602000000005 38.635384000000002,-94.611464999999995 38.625011,-94.611857999999998 38.620485000000002,-94.611908 38.609271999999997,-94.611905562149673 38.605890005062435,-94.611886999999996 38.580139000000003,-94.611902 38.580109999999998,-94.612176000000005 38.576546,-94.612156999999996 38.549816999999997,-94.612272000000004 38.547916999999998,-94.612464742072774 38.518760616499996,-94.612644000000003 38.491644,-94.612725999999995 38.484366999999999,-94.612696 38.483153999999999,-94.612865999999997 38.477570999999998,-94.613365000000002 38.403421999999999,-94.613264999999998 38.392426,-94.613275404637193 38.388718047420433,-94.613328999999993 38.369617999999996,-94.613311999999993 38.364407,-94.613085455228386 38.3436360393057,-94.612999999999985 38.335800999999996,-94.612825 38.324387000000002,-94.612787999999995 38.320141999999997,-94.612673 38.314832000000003,-94.612673 38.302526999999998,-94.612689368276676 38.301464114946214,-94.612843999999996 38.291422999999995,-94.612848999999997 38.289914000000003,-94.612707829046002 38.272362044447966,-94.612691999999996 38.270394000000003,-94.612613999999994 38.237766,-94.612634999999997 38.226987,-94.612658999999994 38.219251,-94.61265866950464 38.21872154645218,-94.612657999999982 38.217649000000002,-94.612821999999994 38.203918000000002,-94.612848 38.200713999999998,-94.613073 38.190551999999997,-94.61341774677895 38.168183959706163,-94.613422 38.16790799999999,-94.613748 38.160632999999997,-94.613855999999998 38.149768999999999,-94.613889466360249 38.136312911169284,-94.613919497343275 38.124238112111762,-94.614061000000007 38.067343,-94.614088999999993 38.065900999999997,-94.614054999999993 38.060088,-94.613980999999995 38.036949,-94.614211999999981 37.992462000000003,-94.614464999999996 37.987798999999995,-94.614511123427164 37.979395512107736,-94.614514360688489 37.978805697169918,-94.614557000000005 37.971036999999995,-94.614561999999992 37.951517000000003,-94.614593999999997 37.949977999999994,-94.614611999999994 37.944361999999998,-94.614754000000005 37.940769000000003,-94.614834999999999 37.936700000000002,-94.614778 37.934199999999997,-94.615181000000007 37.915944000000003,-94.615392999999983 37.906391999999997,-94.61546899999999 37.901775,-94.615706000000003 37.886842999999999,-94.615921 37.878331000000003,-94.615834000000007 37.872509999999998,-94.616 37.863126,-94.616282760205394 37.851281931678621,-94.616426000000004 37.845281999999997,-94.616433230053673 37.842955730230052,-94.61645 37.837560000000003,-94.616861999999998 37.819456000000002,-94.6176681324215 37.775831003788085,-94.617720999999989 37.77297,-94.617737774720197 37.764628336555312,-94.617744979193901 37.761045725680312,-94.617807999999997 37.729706999999998,-94.617975 37.722175999999997,-94.61780499999999 37.690178000000003,-94.617650999999995 37.687671000000002,-94.617687000000004 37.686652999999993,-94.617885 37.682214000000002,-94.617733999999999 37.673127,-94.617576 37.653671000000003,-94.617517909436387 37.643988652624088,-94.61747699999998 37.637169999999998,-94.617472819127315 37.636539916507168,-94.6173 37.610495,-94.617428000000004 37.609521999999998,-94.617283 37.571896000000002,-94.617315000000005 37.571498999999996,-94.617080999999999 37.567013000000003,-94.61711240153133 37.563155381499406,-94.617159999999984 37.557307999999999,-94.617186000000004 37.553485000000002,-94.617167532949537 37.551779056391354,-94.616988484457494 37.535238968895172,-94.616907999999981 37.527804000000003,-94.616788999999997 37.521509999999999,-94.616880369657522 37.506771761864755,-94.617022999999989 37.483764999999998,-94.617182999999997 37.469664999999999,-94.617180000000005 37.465203000000002,-94.617221999999998 37.460476,-94.617204999999984 37.46037299999999,-94.617200999999994 37.454788,-94.617131999999998 37.439818000000002,-94.617265000000003 37.425535999999994,-94.617510999999993 37.410908999999997,-94.617557000000005 37.396374999999999,-94.61759158917468 37.381725975861251,-94.617625000000004 37.367576,-94.617626 37.367444999999989,-94.617536999999999 37.364355000000003,-94.617636000000005 37.338417,-94.617694999999998 37.336841999999997,-94.617648000000003 37.323588999999998,-94.61807499999999 37.240436000000003,-94.618157999999994 37.237596999999994,-94.618122999999997 37.229334,-94.61815 37.228121000000002,-94.618218999999996 37.207771999999999,-94.618305000000007 37.207337000000003,-94.618319 37.188774000000002,-94.618504999999985 37.181184000000002,-94.618472999999994 37.174782,-94.618351000000004 37.160210999999997,-94.618071999999998 37.132345,-94.61807499999999 37.129755000000003,-94.61816441512984 37.118929895303054,-94.618212 37.113168999999992,-94.618150999999997 37.103968000000002,-94.618059000000002 37.096676000000002,-94.618088 37.093670999999993,-94.618089999999995 37.093494,-94.618085255103864 37.089305442941992,-94.618082 37.086432000000002,-94.61811999999999 37.085934000000002,-94.617981999999998 37.075077,-94.617954311863897 37.070346986543974,-94.617947706480578 37.069218577181687,-94.617910161110728 37.062804634983031,-94.617893975984089 37.060039701061122,-94.617874999999998 37.056798,-94.617877538275181 37.056339390079508,-94.617964999999998 37.040537,-94.617972200190749 37.032971759572447,-94.617994999999979 37.009015999999995,-94.618027702303792 37.004829720380044,-94.618080000000006 36.998134999999998,-94.625223999999989 36.998671999999999,-94.699735000000004 36.998804999999997,-94.701796999999999 36.998814000000003,-94.711286363060864 36.99879670415919,-94.712770000000006 36.99879399999999,-94.722629184733563 36.998741903378082,-94.732834603466486 36.998687977231512,-94.736330645670293 36.998669503899912,-94.737183000000002 36.998665000000003,-94.739323999999996 36.998686999999997,-94.745992043692311 36.998700535427304,-94.749560781475736 36.99870777958963,-94.749834600019099 36.998708335412474,-94.777257000000006 36.998764,-94.831280000000007 36.998812,-94.831539962039543 36.998812565955092,-94.840925999999996 36.998832999999998,-94.846637705524785 36.998860673615503,-94.849800999999999 36.998875999999996,-94.853196999999994 36.998874,-94.896852168601683 36.999075231107383,-94.904605402657381 36.99911097010289,-94.9407882710602 36.999277757196154,-94.995293000000004 36.999528999999995,-95.007620000000003 36.999513999999998,-95.011432999999997 36.999535000000002,-95.030323999999993 36.999516999999997,-95.037857000000002 36.999496999999998,-95.049498999999983 36.999580000000002,-95.073509 36.999509000000003,-95.1405498515593 36.999533623834409,-95.155186999999998 36.999538999999999,-95.155372 36.999540000000003,-95.159067907556633 36.999536629205572,-95.177300999999986 36.999519999999997,-95.195307 36.999564999999997,-95.267905305061163 36.999446910377756,-95.285983101167361 36.999417504731007,-95.322564999999997 36.999357999999994,-95.328057999999999 36.999364999999997,-95.328326999999987 36.999366000000002,-95.331209999999999 36.999380000000002,-95.377252424658963 36.999296311678272,-95.381753803085687 36.999288129815376,-95.407683000000006 36.999240999999998,-95.511578 36.999234999999999,-95.522414951940931 36.999281058114107,-95.534401000000003 36.999332000000003,-95.573598000000004 36.999309999999994,-95.601517312742303 36.999317968253862,-95.612139999999997 36.999321000000002,-95.615933999999996 36.999364999999997,-95.621011943860609 36.999361983160732,-95.624350000000007 36.999360000000003,-95.630078999999995 36.999319999999997,-95.638122589416028 36.999320470082949,-95.664300999999995 36.999321999999999,-95.674044398562955 36.999333876292773,-95.686452000000003 36.999349000000002,-95.696658999999997 36.999215,-95.71038 36.999370999999996,-95.710782524132014 36.999362783399121,-95.714887000000004 36.999279,-95.718053999999995 36.999254999999998,-95.741907999999995 36.999243999999997,-95.746466244276931 36.999250838506164,-95.759905000000003 36.999270999999993,-95.768719000000004 36.999205000000003,-95.786761999999996 36.999309999999994,-95.807979999999986 36.999124000000002,-95.819364496908179 36.999150471530008,-95.866899000000004 36.999260999999997,-95.873943999999995 36.999299999999998,-95.875256999999991 36.999302,-95.877150999999998 36.999304000000002,-95.910179999999997 36.999336,-95.928122000000002 36.999245000000002,-95.936991999999989 36.999267999999994,-95.964270378114222 36.999093604402042,-96.00081 36.99886,-96.095164142267308 36.998935940299688,-96.14121 36.998972999999999,-96.143207000000004 36.999133999999998,-96.147143 36.999021999999997,-96.149709 36.99904,-96.152383999999998 36.999050999999994,-96.154016999999982 36.999161,-96.184768000000005 36.999211000000003,-96.200028000000003 36.999028000000003,-96.217571000000007 36.999070000000003,-96.235320025971774 36.999130675786525,-96.27480962492784 36.999265672629733,-96.276368000000005 36.999270999999993,-96.279078999999996 36.999271999999991,-96.381556872639493 36.999226629434901,-96.394272 36.999220999999999,-96.415412000000003 36.999113,-96.500287999999998 36.998643,-96.525212323286397 36.998711038495294,-96.525495980566973 36.998711812823821,-96.551130926932458 36.998781791180214,-96.551130927020779 36.998781791180456,-96.624487489749981 36.998982040153741,-96.705431000000004 36.999203,-96.710481999999999 36.999270999999993,-96.731983006833033 36.99928335311408,-96.736589999999993 36.999285999999998,-96.741269999999986 36.999239000000003,-96.749837999999997 36.998987999999997,-96.792060000000006 36.999179999999996,-96.795198999999997 36.99886,-96.822790999999995 36.999181999999998,-96.867517000000007 36.999217000000002,-96.876289999999997 36.999232999999997,-96.902083000000005 36.999155000000002,-96.903509999999997 36.999132000000003,-96.917092999999994 36.999181999999998,-96.921914999999998 36.999150999999998,-96.924934279563146 36.999131784030439,-96.934641999999997 36.999070000000003,-96.967371 36.999066999999997,-96.975561999999996 36.999018999999997,-97.030081999999979 36.998928999999997,-97.039783999999983 36.999000000000002,-97.045562883576096 36.99899981011751,-97.100651999999997 36.998998,-97.104275999999999 36.999020000000002,-97.120284999999996 36.999014000000003,-97.122596999999999 36.999035999999997,-97.147721000000004 36.999110999999999,-97.202000013134437 36.999050609464689,-97.255829185181881 36.998990719420135,-97.342808466604069 36.998893946743877,-97.362376892203329 36.998872175019791,-97.364929972745273 36.99886933447624,-97.372421000000003 36.998860999999998,-97.384924999999996 36.998843,-97.462279999999993 36.998685000000002,-97.472860999999995 36.998721000000003,-97.527292000000003 36.998749999999994,-97.545899999999989 36.998708999999991,-97.546497999999985 36.998746999999995,-97.564536000000004 36.998711,-97.582460039051355 36.99869862770732,-97.606549 36.998682000000002,-97.637136999999996 36.999090000000002,-97.650465999999994 36.999003999999999,-97.692180007144742 36.998844793059916,-97.697103999999982 36.998826,-97.768704 36.998749999999994,-97.783432000000005 36.998961,-97.783489000000003 36.998846999999998,-97.802297999999979 36.998713000000002,-97.965379045838461 36.998468720211747,-98.033955000000006 36.998365999999997,-98.03989 36.998348999999997,-98.045341999999991 36.998327000000003,-98.111985000000004 36.998133000000003,-98.128185436781749 36.99814624647324,-98.147452 36.998162,-98.177595999999994 36.998008999999996,-98.190367496841162 36.998003995168112,-98.208218000000002 36.997996999999998,-98.219498999999999 36.997824,-98.237712000000002 36.99797199999999,-98.346187999999984 36.997962,-98.347186011230875 36.997961873429141,-98.354073 36.997960999999997,-98.408991 36.998513000000003,-98.418267999999998 36.998538000000003,-98.420209 36.998516000000002,-98.476584655565659 36.998733519956424,-98.485495952453391 36.998767903324406,-98.544871999999984 36.998997000000003,-98.622244241689657 36.999025734091177,-98.714511999999999 36.99906,-98.718464999999995 36.999179999999996,-98.761596999999995 36.999425000000002,-98.791936000000007 36.999254999999998,-98.793711000000002 36.999226999999991,-98.797451999999993 36.999228999999993,-98.811832237742053 36.99924038482925,-98.869449000000003 36.999285999999998,-98.880009 36.999262999999999,-98.880579999999995 36.999308999999997,-98.994371 36.999493,-99.000846251360556 36.99951188908193,-99.029336999999998 36.999594999999999,-99.044703416105833 36.999312701167916,-99.049695 36.999220999999999,-99.124882999999997 36.99942,-99.12944899999998 36.999422000000003,-99.215429691089184 36.999525607779709,-99.221470798208784 36.999532887387339,-99.22594390512576 36.999538277535649,-99.248119999999986 36.999564999999997,-99.277506000000002 36.999578999999997,-99.375390999999993 37.000176999999994,-99.375813215185289 37.000169016042221,-99.396673054015949 36.999774562980598,-99.407015 36.999578999999997,-99.456202999999988 36.999471,-99.484333000000007 36.999625999999999,-99.500394999999983 36.99957599999999,-99.500394999999983 36.999637,-99.502664999999993 36.999645,-99.504092999999997 36.999648,-99.508573999999982 36.999657999999997,-99.541115670095081 36.999572526667627,-99.558068000000006 36.999527999999998,-99.625399000000002 36.999670999999999,-99.648651999999998 36.999603999999998,-99.657657999999998 37.000197,-99.675479899119665 37.000294824261658,-99.700804554289192 37.000433831091229,-99.722499410223932 37.000552913981863,-99.774254999999997 37.000836999999997,-99.774816 37.000841,-99.786016000000004 37.000931,-99.875408999999991 37.001658999999997,-99.904897139036905 37.001652107487203,-99.995200999999994 37.001631000000003,-100.001285999999993 37.001699000000002,-100.002562999999995 37.001705999999999,-100.005706000000004 37.001725999999998,-100.08949117994996 37.002091554886341,-100.115721999999991 37.002206,-100.187546999999995 37.002082,-100.19237099999998 37.002035999999997,-100.193753999999998 37.002133,-100.201675999999992 37.002080999999997,-100.269984573601874 37.001795796937508,-100.395563941387664 37.001271475927872,-100.434302684862132 37.001109733298897,-100.434343961694367 37.0011095609592,-100.436759028295029 37.001099477534027,-100.462594151135718 37.000991610310841,-100.526354155903263 37.000725398506596,-100.551597999999998 37.000619999999998,-100.552683000000002 37.000734999999999,-100.591328000000004 37.000376000000003,-100.591413000000003 37.000399000000002,-100.629769999999994 37.000025,-100.63332699999998 36.999935999999998,-100.675551999999996 36.999687999999999,-100.734516999999997 36.999059000000003,-100.756894000000003 36.999356999999996,-100.759718826764541 36.999297806889686,-100.765484 36.999177000000003,-100.806116000000003 36.999091,-100.814277000000004 36.999085,-100.850054835707368 36.998687920265262,-100.855633999999981 36.998626000000002,-100.891659999999987 36.998604,-100.904274 36.998745,-100.904588000000004 36.998561000000002,-100.945565999999985 36.998151999999997,-100.958261085233985 36.99812508251128,-100.996501999999992 36.998044,-101.012641000000002 36.998176,-101.053589000000002 36.997966999999996,-101.066742000000005 36.997920999999998,-101.096255470166753 36.997758490771822,-101.211485999999979 36.997123999999999,-101.212908999999996 36.997044000000002,-101.283204233333976 36.996668964004151,-101.357796999999991 36.996271,-101.359673999999998 36.996231999999999,-101.37818 36.996164,-101.413867999999994 36.996008000000003,-101.415004999999994 36.995966000000003,-101.485326 36.995610999999997,-101.519065999999995 36.99554599999999,-101.555239 36.99541399999999,-101.600396000000003 36.995152999999995,-101.601592999999994 36.995094999999999,-101.672152845644291 36.994768289529276,-101.672152845650672 36.994768289529254,-101.718235173867967 36.994554916342196,-101.761767880686108 36.994353348566563,-101.826607533764985 36.994053124077894,-101.862548907230888 36.993886706153717,-101.881050066963184 36.993801040963412,-101.899294480822903 36.993716564573397,-101.902439999999999 36.993701999999999,-101.905152836625547 36.993689460946754,-101.93521516037174 36.99355050931414,-102.000446999999994 36.993248999999992,-102.000446999999994 36.993271999999997,-102.028206999999981 36.993124999999999,-102.042240000000007 36.993082999999999,-102.041951999999995 37.024741999999996,-102.04195 37.030805,-102.041921000000002 37.032178000000002,-102.041748999999996 37.034396999999998,-102.04191999999999 37.035083,-102.041983000000002 37.106551000000003,-102.041808999999986 37.111972999999999,-102.042091999999997 37.125020999999997,-102.042135000000002 37.125020999999997,-102.042121535383529 37.12671399835564,-102.042001999999997 37.141744000000003,-102.041962999999996 37.258164,-102.041663999999997 37.29764999999999,-102.041816999999995 37.309489999999997,-102.041973999999996 37.352612999999998,-102.042089000000004 37.352818999999997,-102.041523999999995 37.375017999999997,-102.041585760607518 37.389190434149839,-102.041675999999981 37.409897999999991,-102.041668999999999 37.434739999999998,-102.041754999999995 37.434854999999992,-102.041800999999992 37.469487999999998,-102.041786000000002 37.506065999999997,-102.04201599999999 37.535260999999998,-102.041899 37.541186000000003,-102.041893999999999 37.557977,-102.041618 37.607868000000003,-102.041584999999998 37.644281999999997,-102.041581999999991 37.654494999999997,-102.041694000000007 37.665680999999999,-102.041573999999997 37.680436,-102.041876000000002 37.723875,-102.041989965869121 37.73854062916552,-102.042158 37.760164000000003,-102.042668000000006 37.788758,-102.042952999999997 37.803534999999997,-102.043032999999994 37.824145999999999,-102.043218999999993 37.86792899999999,-102.043714531331204 37.914003914798144,-102.043845000000005 37.926135000000002,-102.043844000000007 37.928101999999996,-102.044644000000005 38.045532,-102.044255000000007 38.113010999999993,-102.044450868202546 38.120049353793199,-102.044589000000002 38.125012999999996,-102.044415729020699 38.133607343100145,-102.044251000000003 38.141777999999995,-102.044296878804843 38.175558844899406,-102.044398 38.250014999999998,-102.044510721728557 38.262483349316234,-102.044567999999998 38.268819,-102.044612999999998 38.312323999999997,-102.044944 38.384419,-102.044441999999989 38.415801999999999,-102.044936000000007 38.41968,-102.045323999999979 38.453646999999997,-102.045262999999991 38.505395,-102.045261999999994 38.505531999999995,-102.045112000000003 38.523783999999999,-102.045222999999993 38.543796999999998,-102.045188999999979 38.558731999999992,-102.045210999999995 38.581608999999993,-102.045287999999999 38.615248999999999,-102.045074 38.669617000000002,-102.045102 38.674945999999998,-102.045159999999996 38.675221,-102.045126999999994 38.686725000000003,-102.045156000000006 38.688555,-102.045211999999992 38.697566999999999,-102.045375000000007 38.754338999999995,-102.045287000000002 38.755527999999998,-102.045371000000003 38.770063999999998,-102.045447999999993 38.783453000000002,-102.045333999999997 38.799463000000003,-102.045387999999988 38.813391999999993,-102.046570999999986 39.047038,-102.047133999999986 39.129700999999997,-102.047188612927897 39.133146793270186,-102.047250000000005 39.13702,-102.047851021058236 39.220289738242592,-102.048449000000005 39.30313799999999,-102.04895999999998 39.37371199999999,-102.049100972149461 39.394064428437375,-102.049166999999983 39.403596999999998,-102.049369999999996 39.418210000000002,-102.049368999999999 39.423333,-102.049678999999998 39.506183,-102.049672999999999 39.536690999999998,-102.049553999999986 39.538932000000003,-102.049763758475066 39.568170000775439,-102.04980599999999 39.574058,-102.049954 39.592331,-102.050258163748609 39.627242889069393,-102.050421999999983 39.646047999999993,-102.050099000000003 39.653812000000002,-102.05059399999999 39.67559399999999,-102.050898693231389 39.741794606053567,-102.051254 39.818992,-102.051317999999995 39.833311000000002,-102.051362999999995 39.843471,-102.051569 39.849805000000003,-102.051743999999999 40.003078000000002))'));
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/state.postgresql_psycopg2.sql b/webapp/django/contrib/gis/tests/geoapp/sql/state.postgresql_psycopg2.sql
new file mode 100644
index 0000000..d27af33
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/state.postgresql_psycopg2.sql
@@ -0,0 +1,5 @@
+-- State border data courtesy of U.S. Census Bureau Cartographic Boundary Files: http://www.census.gov/geo/www/cob/st2000.html
+-- Boundary file data is a product of the U.S. federal government and is public domain.  See 17 U.S.C. 105.
+INSERT INTO geoapp_state ("name", "poly") VALUES ('Puerto Rico', NULL);
+INSERT INTO geoapp_state ("name", "poly") VALUES ('Colorado', 'SRID=4326;POLYGON ((-107.918420999999981 41.002035999999997,-107.69133582431418 41.002104250342249,-107.625624000000002 41.002124000000002,-107.521505363272311 41.002506710525772,-107.367442999999994 41.003073,-107.317794462401125 41.002967213367114,-107.305312956219666 41.00294061889776,-107.241193999999993 41.002803999999998,-107.000606000000005 41.003443999999995,-106.857772999999995 41.002662999999991,-106.453858999999994 41.002056999999994,-106.439563000000007 41.001978,-106.437419000000006 41.001794999999994,-106.430949999999996 41.001751999999996,-106.391852 41.001176,-106.386356000000006 41.001143999999996,-106.321164999999993 40.999122999999997,-106.217573000000002 40.997734,-106.194624254510543 40.99762614711792,-106.190540579491184 40.997606954952467,-106.061180999999991 40.996999000000002,-105.764246857267409 40.99689755617932,-105.730421000000007 40.996886000000003,-105.724804000000006 40.99691,-105.554417704421283 40.997390710823062,-105.412220703167577 40.997791891195448,-105.277137999999979 40.998173,-105.256527000000006 40.998190999999998,-105.254778999999999 40.99821,-105.173435761678107 40.998177015252317,-104.943370680568208 40.998083723679372,-104.855272999999997 40.998047999999997,-104.829503999999986 40.999270000000003,-104.675999000000004 41.000957,-104.497148999999993 41.001828000000003,-104.497057999999996 41.001804999999997,-104.467671999999979 41.001472999999997,-104.214691999999999 41.001657000000002,-104.214191 41.001567999999999,-104.211472999999998 41.001590999999998,-104.123585999999989 41.001625999999995,-104.104590000000002 41.001542999999991,-104.086067999999983 41.001562999999997,-104.066960999999992 41.001503999999997,-104.053248999999994 41.001405999999996,-104.039237999999997 41.001502000000002,-104.023382999999981 41.001887000000004,-104.018223000000006 41.001617000000003,-104.010804886779724 41.00161667450854,-103.972641999999979 41.001615,-103.971373 41.001524000000003,-103.953524999999999 41.001595999999999,-103.906323999999998 41.001387,-103.896207000000004 41.00175,-103.877966999999998 41.00167299999999,-103.858448999999993 41.001680999999998,-103.750497999999993 41.002054,-103.574522000000002 41.001721000000003,-103.497446999999994 41.001635,-103.486697000000007 41.001913999999999,-103.421975000000003 41.002006999999999,-103.421925000000002 41.001968999999995,-103.396990999999986 41.002558,-103.365313999999984 41.001846,-103.362978999999996 41.001843999999991,-103.077804 41.002298000000003,-103.076536000000004 41.002253000000003,-103.059537999999989 41.002367999999997,-103.057997999999998 41.002367999999997,-103.043443999999994 41.002344,-103.038703999999996 41.002251,-103.002026 41.002485999999998,-103.000101999999984 41.002400000000002,-102.982690000000005 41.002156999999997,-102.981482999999997 41.002111999999997,-102.963668999999982 41.002185999999995,-102.962522000000007 41.002071999999998,-102.960706000000002 41.002058999999996,-102.959623999999991 41.002094999999997,-102.944829999999996 41.002302999999998,-102.943109000000007 41.002051000000002,-102.925567999999998 41.002279999999999,-102.924029000000004 41.002141999999999,-102.906546999999989 41.002275999999995,-102.904796000000005 41.002206999999999,-102.887406999999982 41.002178,-102.885745999999997 41.002130999999999,-102.867822000000004 41.002183000000002,-102.865783999999991 41.001987999999997,-102.849262999999993 41.002301000000003,-102.846455000000006 41.002256000000003,-102.830302999999986 41.002350999999997,-102.827280000000002 41.002142999999997,-102.773545999999996 41.002414000000002,-102.766722999999999 41.00227499999999,-102.754616999999996 41.002360999999993,-102.739623999999992 41.002229999999997,-102.653462999999988 41.002332000000003,-102.621032999999997 41.002597000000002,-102.578695999999994 41.002291,-102.575738 41.002268,-102.575496 41.002200000000002,-102.566047999999995 41.002200000000002,-102.556788999999995 41.002218999999997,-102.517701071582451 41.002347335877943,-102.487954999999985 41.002444999999994,-102.470536999999979 41.002381999999997,-102.469223 41.002423999999998,-102.460334593696913 41.00241180236555,-102.387750989484957 41.002312195277327,-102.380372991932845 41.002302070389462,-102.379593 41.002301000000003,-102.364065999999994 41.002173999999997,-102.292833000000002 41.002206999999999,-102.292621999999994 41.002229999999997,-102.292552999999998 41.002206999999999,-102.291353999999998 41.002206999999999,-102.277803455573988 41.002233743569548,-102.272099999999995 41.002245000000002,-102.267811999999992 41.002383000000002,-102.231931000000003 41.002327,-102.212199999999982 41.002462,-102.209361 41.002442000000002,-102.209083936251005 41.002440229332002,-102.207776055197755 41.002431870883314,-102.191209999999998 41.002325999999996,-102.124972 41.002338000000002,-102.070598000000004 41.002423,-102.051614 41.002377000000003,-102.051291999999989 40.749591000000002,-102.051634432607003 40.582129592617228,-102.051725000000005 40.537838999999991,-102.051518999999999 40.520094,-102.051464999999993 40.440007999999999,-102.051839999999999 40.396396000000003,-102.051571999999993 40.393079999999998,-102.051797999999991 40.360069000000003,-102.051585542616536 40.350646145741024,-102.051309000000003 40.338380999999998,-102.051922000000005 40.235343999999998,-102.05189399999999 40.229192999999995,-102.051908999999995 40.162674000000003,-102.052001000000004 40.148358999999999,-102.051852600888665 40.064469617536822,-102.051743999999999 40.003078000000002,-102.051715564657869 39.978173027456265,-102.051569 39.849805000000003,-102.051362999999995 39.843471,-102.051317999999995 39.833311000000002,-102.051254 39.818992,-102.05059399999999 39.67559399999999,-102.050099000000003 39.653812000000002,-102.050421999999983 39.646047999999993,-102.049954 39.592331,-102.04980599999999 39.574058,-102.049553999999986 39.538932000000003,-102.049672999999999 39.536690999999998,-102.049678999999998 39.506183,-102.049368999999999 39.423333,-102.049369999999996 39.418210000000002,-102.049166999999983 39.403596999999998,-102.04895999999998 39.37371199999999,-102.048449000000005 39.30313799999999,-102.047250000000005 39.13702,-102.047133999999986 39.129700999999997,-102.046570999999986 39.047038,-102.045387999999988 38.813391999999993,-102.045333999999997 38.799463000000003,-102.045447999999993 38.783453000000002,-102.045371000000003 38.770063999999998,-102.045287000000002 38.755527999999998,-102.045375000000007 38.754338999999995,-102.045211999999992 38.697566999999999,-102.045156000000006 38.688555,-102.045126999999994 38.686725000000003,-102.045159999999996 38.675221,-102.045102 38.674945999999998,-102.045074 38.669617000000002,-102.045287999999999 38.615248999999999,-102.045210999999995 38.581608999999993,-102.045188999999979 38.558731999999992,-102.045222999999993 38.543796999999998,-102.045112000000003 38.523783999999999,-102.045261999999994 38.505531999999995,-102.045262999999991 38.505395,-102.045323999999979 38.453646999999997,-102.044936000000007 38.41968,-102.044441999999989 38.415801999999999,-102.044944 38.384419,-102.044612999999998 38.312323999999997,-102.044567999999998 38.268819,-102.044398 38.250014999999998,-102.044251000000003 38.141777999999995,-102.044535323623649 38.127675380028528,-102.044589000000002 38.125012999999996,-102.044540277332047 38.123262193231092,-102.044255000000007 38.113010999999993,-102.04462354493468 38.04908029653749,-102.044631007072184 38.047785855466316,-102.044644000000005 38.045532,-102.044620085883125 38.042021706570637,-102.044539342086111 38.030169526464491,-102.043844000000007 37.928101999999996,-102.043845000000005 37.926135000000002,-102.043218999999993 37.86792899999999,-102.043032999999994 37.824145999999999,-102.042952999999997 37.803534999999997,-102.042668000000006 37.788758,-102.042158 37.760164000000003,-102.041876000000002 37.723875,-102.041573999999997 37.680436,-102.041694000000007 37.665680999999999,-102.041581999999991 37.654494999999997,-102.041584999999998 37.644281999999997,-102.041618 37.607868000000003,-102.041779405839492 37.578691555295826,-102.041893999999999 37.557977,-102.041899 37.541186000000003,-102.04201599999999 37.535260999999998,-102.041786000000002 37.506065999999997,-102.041800999999992 37.469487999999998,-102.041754999999995 37.434854999999992,-102.041668999999999 37.434739999999998,-102.041675999999981 37.409897999999991,-102.041523999999995 37.375017999999997,-102.042089000000004 37.352818999999997,-102.041973999999996 37.352612999999998,-102.041816999999995 37.309489999999997,-102.041663999999997 37.29764999999999,-102.041962999999996 37.258164,-102.042001999999997 37.141744000000003,-102.042135000000002 37.125020999999997,-102.042091999999997 37.125020999999997,-102.041808999999986 37.111972999999999,-102.041983000000002 37.106551000000003,-102.04191999999999 37.035083,-102.041748999999996 37.034396999999998,-102.041921000000002 37.032178000000002,-102.04195 37.030805,-102.041951999999995 37.024741999999996,-102.042240000000007 36.993082999999999,-102.054502999999997 36.993108999999997,-102.184270999999995 36.993592999999997,-102.208315999999996 36.993729999999999,-102.260789000000003 36.994388,-102.270345681835295 36.994399933337462,-102.307593650497381 36.994446444520669,-102.355288000000002 36.994505999999994,-102.355367 36.994574999999998,-102.698142000000004 36.995148999999998,-102.742059999999981 36.997689,-102.759860000000003 37.000019000000002,-102.77856899999999 36.999242000000002,-102.806762000000006 37.000019000000002,-102.814616 37.000782999999998,-102.841988999999998 36.999597999999999,-102.979613 36.998548999999997,-102.985806999999994 36.998570999999998,-102.986975999999999 36.998524000000003,-103.002199000000005 37.000104,-103.086104969413952 37.000173865694038,-103.10540536532865 37.000189936488113,-103.155922000000004 37.000231999999997,-103.200631728472104 37.000060386509688,-103.327177769406262 36.999574653124313,-103.425678872433053 36.999196567220693,-103.733247000000006 36.998015999999993,-103.734363999999985 36.998041,-104.007854999999992 36.996239000000003,-104.215475488463966 36.994874432196589,-104.250535999999983 36.994644,-104.29757064295984 36.994053250381747,-104.338832999999994 36.993535,-104.355650525350313 36.993556531771581,-104.366447685535107 36.993570355564437,-104.399202882083287 36.993612292614962,-104.429769386650008 36.993651427444888,-104.480610316975273 36.993716519976395,-104.519256999999996 36.993765999999994,-104.624555999999998 36.994376999999993,-104.625545000000002 36.993599000000003,-104.645028999999994 36.993377999999993,-104.706112207267154 36.993426444188657,-104.732031000000006 36.993447000000003,-104.732119999999981 36.993484000000002,-104.839990412520109 36.993395592828207,-105.00055399999998 36.993264000000003,-105.029227999999989 36.99272899999999,-105.120800000000003 36.995427999999997,-105.155041964101514 36.995339147158163,-105.220613 36.995168999999997,-105.251295999999996 36.995604999999998,-105.419309999999996 36.995856000000003,-105.438102743613229 36.995968030697597,-105.442458999999999 36.995994000000003,-105.447254999999998 36.996016999999995,-105.465181999999999 36.995990999999997,-105.47087670692585 36.995978476706256,-105.508835999999988 36.99589499999999,-105.512484999999998 36.995776999999997,-105.533922000000004 36.995874999999998,-105.627469999999988 36.995679000000003,-105.664719999999988 36.995874,-105.716470999999999 36.995848999999993,-105.718407304549174 36.995846016149208,-105.996159000000006 36.995418,-105.997472000000002 36.995417000000003,-106.006633999999991 36.995342999999998,-106.099805867433119 36.994759106704976,-106.163971382218094 36.994356991615014,-106.201468999999989 36.994121999999997,-106.247704999999996 36.994266000000003,-106.248675000000006 36.99428799999999,-106.293278999999998 36.99389,-106.32542867882475 36.994109231664673,-106.343138999999979 36.994230000000002,-106.476277952851959 36.993839335051021,-106.500589000000005 36.993767999999996,-106.617159 36.992967,-106.617124999999987 36.993003999999999,-106.628652000000002 36.993175,-106.628732999999983 36.993160999999994,-106.661344 36.993243,-106.675625999999994 36.993122999999997,-106.750591 36.992460999999999,-106.782095289714647 36.992451749967366,-106.869795999999994 36.992425999999995,-106.877291999999983 37.00013899999999,-106.918886463342702 37.000128747161924,-106.95601836457638 37.000119594324254,-107.107262626744514 37.000082313330452,-107.255202723469637 37.000045846797775,-107.420912999999999 37.000004999999994,-107.422415013680663 37.000004989636103,-107.442181999144324 37.000004853243873,-107.481737001398656 37.00000458031429,-107.524086846417021 37.000004288100286,-107.600713640777798 37.000003759375268,-107.712477900838564 37.000002988201679,-107.855695499501934 37.000002000000002,-107.866308937617532 37.000001926767261,-107.869139908586362 37.000001907233546,-107.869180699306327 37.0000019069521,-108.000623000000004 37.000000999999997,-108.179187075278463 36.999293161624927,-108.187139540298872 36.999261637591275,-108.249358 36.999015,-108.250634999999988 36.999561,-108.288086000000007 36.999555,-108.288399999999996 36.999519999999997,-108.320464 36.999499,-108.320720999999992 36.99951,-108.379165570428881 36.999458977707043,-108.619688999999994 36.999248999999999,-108.620309000000006 36.999287000000002,-108.749269825405847 36.999139933822768,-108.954403999999997 36.998905999999998,-108.958867999999995 36.998913000000002,-109.045222999999993 36.999084000000003,-109.04516599999998 37.072741999999998,-109.045057999999997 37.074660999999999,-109.044995 37.086429000000003,-109.045188999999993 37.096270999999994,-109.045173000000005 37.109464000000003,-109.045202999999987 37.111957999999994,-109.045155999999992 37.112063999999997,-109.045995000000005 37.177278999999999,-109.045978000000005 37.201830999999999,-109.045801505106283 37.205070813598866,-109.045486999999994 37.210844000000002,-109.045559879533187 37.239775672002708,-109.04556019774752 37.239901996533845,-109.045583999999991 37.249350999999997,-109.046038999999993 37.249993000000003,-109.045898042273308 37.32693499054853,-109.045810000000003 37.374993000000003,-109.043799132325617 37.469028334242019,-109.043463783260819 37.484710450871816,-109.043424942780035 37.486526770085334,-109.043137000000002 37.499991999999999,-109.041915000000003 37.530653,-109.041865 37.530726,-109.041805999999994 37.604171,-109.042130999999998 37.617662000000003,-109.042089000000004 37.623795,-109.042269000000005 37.666066999999998,-109.041731999999996 37.711213999999998,-109.041759999999996 37.713182000000003,-109.041635999999997 37.740209999999998,-109.042097999999996 37.749989999999997,-109.042042148900066 37.754383999799849,-109.041460999999998 37.800105000000002,-109.041753999999997 37.83582599999999,-109.04172299999999 37.842050999999998,-109.041843999999998 37.872788,-109.041652818578953 37.881166902788557,-109.041058000000007 37.907235999999997,-109.043120999999985 37.97426,-109.042818999999994 37.997067999999999,-109.042819999999992 37.999301000000003,-109.041972403965843 38.131799166817459,-109.041836656974709 38.153019449536792,-109.041761999999991 38.16469,-109.054648 38.244920999999998,-109.060061999999988 38.275489,-109.059961999999999 38.49998699999999,-109.060253000000003 38.599327999999993,-109.059540999999996 38.719887999999997,-109.057388000000003 38.795455999999994,-109.057216044916757 38.799730849597076,-109.054188999999994 38.874983999999998,-109.05394299999999 38.904414000000003,-109.053797000000003 38.905283999999995,-109.053233000000006 38.942467,-109.053291999999985 38.942878,-109.052435999999986 38.999985000000002,-109.051587912503535 39.115734257770079,-109.051583515738272 39.116334340093104,-109.051580780636755 39.116707634089543,-109.051512000000002 39.126094999999999,-109.050764999999998 39.366677000000003,-109.051362999999981 39.497674000000004,-109.051040248333237 39.660472011844121,-109.050614999999993 39.874969999999998,-109.050872999999996 40.058914999999999,-109.050813000000005 40.059578999999992,-109.050944 40.180711999999993,-109.050972999999999 40.180849000000002,-109.050968715822648 40.22266241227041,-109.050945999999996 40.444367999999997,-109.050314 40.495092,-109.050697999999983 40.499963,-109.049954999999997 40.539901,-109.050073999999995 40.540357999999998,-109.050071964046666 40.540437104308737,-109.048044000000004 40.619230999999999,-109.048248999999998 40.653600999999995,-109.049087999999998 40.714562,-109.048455000000004 40.826081000000002,-109.050076000000004 41.000658999999999,-108.884137999999993 41.000093999999997,-108.631107999999998 41.00015599999999,-108.526667000000003 40.999608000000002,-108.500658999999999 41.000112,-108.250648999999996 41.000114000000004,-108.181227000000007 41.000454999999995,-108.089219003138552 41.001554139247368,-108.046538999999996 41.002063999999997,-107.923234122395939 41.0020370519008,-107.918420999999981 41.002035999999997))');
+INSERT INTO geoapp_state ("name", "poly") VALUES ('Kansas', 'SRID=4326;POLYGON ((-102.051743999999999 40.003078000000002,-101.916696000000002 40.003141999999997,-101.904176000000007 40.003162000000003,-101.861740775252272 40.002907997451267,-101.841025000000002 40.002783999999991,-101.832160999999999 40.002932999999999,-101.807687 40.002797999999999,-101.804861999999986 40.002752,-101.783266423091504 40.002735966476642,-101.748492901329186 40.002710149056902,-101.627071 40.00262,-101.625809000000004 40.002710999999998,-101.579641080501318 40.002654627564297,-101.54227299999998 40.002608999999993,-101.417209 40.002423999999998,-101.411050023557621 40.002364583193085,-101.409952999999987 40.002353999999997,-101.387325211262052 40.00246006676732,-101.374325999999996 40.002520999999994,-101.342859000000004 40.002580000000002,-101.324035999999992 40.002695999999993,-101.293991000000005 40.002558999999998,-101.286555000000007 40.002558999999998,-101.248672999999997 40.002543000000003,-101.215033000000005 40.002555,-101.19221899999998 40.002490999999999,-101.186892990733696 40.002481867883319,-101.178804999999997 40.002468,-101.168704000000005 40.002547,-101.130906999999993 40.002426999999997,-101.104950380573442 40.002382874850099,-101.104950380567658 40.002382874850092,-101.060316999999998 40.002307000000002,-101.027686000000003 40.002255999999996,-100.962089380046322 40.00217532965339,-100.937427 40.002144999999999,-100.764559455237134 40.002296963384197,-100.758829999999989 40.002301999999993,-100.752183000000002 40.002127999999992,-100.7388309887763 40.002228385746484,-100.733295999999996 40.002270000000003,-100.729904000000005 40.002110999999999,-100.721127999999993 40.002068999999999,-100.683435000000003 40.002234,-100.660229999999984 40.002161999999998,-100.645444999999995 40.001882999999999,-100.626504856699498 40.001892789287538,-100.600944999999996 40.001905999999998,-100.594756999999987 40.001976999999997,-100.567238000000003 40.001888999999998,-100.551885999999996 40.001888999999998,-100.514429898999168 40.001844039098764,-100.511064999999988 40.00184,-100.487159000000005 40.001767,-100.477018 40.001752000000003,-100.475853999999998 40.001767999999998,-100.468772999999985 40.001724000000003,-100.447071999999991 40.001795,-100.439081000000002 40.001773999999997,-100.402449685831499 40.001800164690437,-100.390079999999998 40.001809000000002,-100.290126736823893 40.001691651381378,-100.231651999999997 40.001623000000002,-100.229478999999998 40.001692999999996,-100.215406000000002 40.001629,-100.196958999999993 40.001494,-100.19359 40.001573,-100.190323000000006 40.001586000000003,-100.188181 40.001541000000003,-100.177823000000004 40.001593,-99.990926000000002 40.001503,-99.986610999999996 40.001550000000002,-99.948166999999998 40.001812999999999,-99.944417 40.001584,-99.930432999999979 40.001516000000002,-99.906657999999993 40.001511999999998,-99.850154757615712 40.001444140609848,-99.813400999999999 40.001399999999997,-99.775639999999981 40.001646999999998,-99.772120999999984 40.001804,-99.764213999999996 40.001550999999999,-99.756834999999995 40.001342,-99.746628 40.001820000000002,-99.737774855821357 40.001824224692157,-99.731959000000003 40.001826999999992,-99.719639 40.001807999999997,-99.628345999999993 40.001866,-99.625979999999984 40.001865000000002,-99.515340365578794 40.002008435606839,-99.501791999999995 40.002026,-99.498998999999984 40.00195699999999,-99.497659999999982 40.001911999999997,-99.493464999999986 40.001936999999998,-99.480727999999999 40.001942,-99.423564999999996 40.002270000000003,-99.412644999999998 40.001867999999995,-99.403389000000004 40.001969000000003,-99.366747146128873 40.001962496644857,-99.290702999999979 40.001949000000003,-99.286655999999994 40.002017000000002,-99.282966999999999 40.001879000000002,-99.254012000000003 40.002074,-99.25036999999999 40.00195699999999,-99.216375999999997 40.002015999999998,-99.197591999999986 40.002032999999997,-99.188905000000005 40.002023,-99.186961999999994 40.001976999999997,-99.178965000000005 40.001976999999997,-99.169815999999997 40.001925,-99.123032999999992 40.002164999999998,-99.113510000000005 40.002192999999998,-99.085596999999993 40.002132999999994,-99.067047050731574 40.00217023690761,-99.020337999999995 40.00226399999999,-99.018700999999993 40.002333,-98.992135000000005 40.002192,-98.972286999999994 40.002245000000002,-98.971721000000002 40.002268,-98.961009000000004 40.002316999999998,-98.96091899999999 40.002271,-98.953888072580213 40.002253239016738,-98.934791999999987 40.002204999999996,-98.8435956659672 40.002348607685946,-98.842134005327992 40.002350909376077,-98.834455999999989 40.002363000000003,-98.820589999999982 40.002319,-98.777203 40.002358999999998,-98.774940999999998 40.002336,-98.729330606936671 40.002229113826232,-98.726294999999993 40.002222000000003,-98.710403999999997 40.002180000000003,-98.693095999999997 40.002372999999999,-98.691443000000007 40.002504999999999,-98.690286999999998 40.002547999999997,-98.672819000000004 40.002364,-98.669723999999988 40.002409999999998,-98.653832999999992 40.002268999999998,-98.652494000000004 40.002245000000002,-98.640709999999984 40.002493,-98.616372379820518 40.002409030470169,-98.613754999999998 40.002400000000002,-98.593342000000007 40.002475999999994,-98.575219000000004 40.002479999999991,-98.560578000000007 40.002274,-98.543186000000006 40.002285,-98.523053000000004 40.002336,-98.506634585466017 40.002329436673158,-98.504454999999979 40.002328565375151,-98.50084801790743 40.002327123469641,-98.490532999999999 40.002322999999997,-98.441997554675297 40.002366263566756,-98.391848301995964 40.002410965650498,-98.274015000000006 40.002516,-98.268218000000005 40.002490000000002,-98.25000799999998 40.002307000000002,-98.213290432425865 40.002506421375415,-98.193483 40.002614,-98.179315000000003 40.002482999999998,-98.172269 40.002437999999991,-98.156873151934732 40.002445128178877,-98.142031000000003 40.002451999999998,-98.099659000000003 40.002226999999998,-98.076034000000007 40.002300999999996,-98.068701000000004 40.002355,-98.050056999999981 40.002277999999997,-98.047469000000007 40.002186000000002,-98.042767978165202 40.002191261754177,-98.014411999999979 40.002223,-98.010157000000007 40.002153,-97.972185999999994 40.002113999999999,-97.931810999999996 40.002049999999997,-97.876261 40.002102,-97.85745 40.002065000000002,-97.838378999999989 40.001909999999995,-97.821597999999994 40.002003999999992,-97.819426000000007 40.001957999999995,-97.777154999999993 40.002167,-97.770775999999998 40.001976999999997,-97.769204000000002 40.001995,-97.767746000000002 40.001994000000003,-97.714825952022949 40.001974503868432,-97.706952472912022 40.001971603221314,-97.701160424072398 40.001969469388285,-97.61370959051284 40.001937251863488,-97.595964207410262 40.001930714334961,-97.593671575073259 40.001929869712491,-97.51530799999999 40.001900999999997,-97.511381 40.001899000000002,-97.510264000000006 40.001835,-97.48896951184885 40.0019310946697,-97.481234094494141 40.001966001936331,-97.463284999999999 40.00204699999999,-97.444661999999994 40.001957999999995,-97.425443 40.002048000000002,-97.417825999999991 40.002023999999999,-97.415833000000006 40.002000999999993,-97.369102999999996 40.00206,-97.350896000000006 40.001930000000002,-97.350272000000004 40.001975999999999,-97.256541388870858 40.001563097676062,-97.24516899999999 40.001513000000003,-97.245080000000002 40.001466999999998,-97.202309999999997 40.00144199999999,-97.200190000000006 40.001548999999997,-97.181775000000002 40.001550000000002,-97.165136038800085 40.001526729909067,-97.164288093539042 40.001525544031956,-97.157705785150654 40.001516338474417,-97.144150390621661 40.001497380844818,-97.142447999999987 40.001494999999998,-97.137865999999988 40.001814000000003,-97.049662999999995 40.001322999999999,-97.030802999999992 40.001342,-97.009164999999996 40.001463,-96.918187714380807 40.001505032225388,-96.916093000000004 40.001505999999999,-96.880459000000002 40.001448000000003,-96.878253 40.001466,-96.875056999999998 40.001448000000003,-96.873812 40.001449999999998,-96.868892342573133 40.001444286089438,-96.805301797100199 40.001370429180717,-96.693246065483095 40.001240282633297,-96.622400999999996 40.001157999999997,-96.610348999999999 40.000881,-96.604883999999984 40.000891000000003,-96.581788013355691 40.000963078853125,-96.580851999999993 40.000965999999998,-96.570853999999997 40.001090999999995,-96.557862999999998 40.000968,-96.538977000000003 40.000850999999997,-96.527110999999991 40.001030999999998,-96.469944999999996 40.000965999999998,-96.467535999999996 40.001035000000002,-96.463639999999998 40.000967000000003,-96.354812913341547 40.000735780492882,-96.350953725714731 40.00072758106856,-96.341811057717251 40.000708156095854,-96.304554999999993 40.000629000000004,-96.301066000000006 40.000632000000003,-96.239171999999996 40.000691000000003,-96.223838999999998 40.000729,-96.220170999999993 40.00072,-96.154364999999984 40.000495,-96.154246 40.00045,-96.147166999999982 40.000478999999999,-96.125936999999979 40.000432000000004,-96.125788 40.000467,-96.089781000000002 40.000518999999997,-96.081394999999986 40.000602999999998,-96.051691000000005 40.000726999999998,-96.02409 40.000718999999997,-96.014716997898134 40.000662392993569,-96.010677999999999 40.000638000000002,-95.995389500007406 40.000603953777215,-95.958139000000003 40.000520999999999,-95.901560435593936 40.000482839492363,-95.882524000000004 40.00047,-95.788023999999993 40.000452000000003,-95.784575000000004 40.000463000000003,-95.672891827756033 40.000336669594915,-95.658762261555324 40.000320686938032,-95.63965170807073 40.000299070038061,-95.565216789143676 40.000214872989645,-95.463103327781397 40.00009936736172,-95.455130658279359 40.000090349077695,-95.452048066669519 40.000086862204618,-95.438655850967621 40.000071713601649,-95.436011808705814 40.000068722793607,-95.426269559489981 40.00005770284973,-95.42148745056565 40.000052293567869,-95.41484447973599 40.000044779372317,-95.375257000000005 40.0,-95.339895999999982 39.999999000000003,-95.326448603970363 39.999998574530281,-95.30829 39.999997999999998,-95.308403999999996 39.993758,-95.307779999999994 39.990617999999998,-95.307111000000006 39.989114,-95.302506999999991 39.984357000000003,-95.289715 39.977705999999998,-95.274756999999994 39.972115000000002,-95.269885999999985 39.969396000000003,-95.261854 39.960617999999997,-95.257651999999993 39.954886000000002,-95.250253999999998 39.948644000000002,-95.241382999999999 39.944949,-95.236761 39.943930999999999,-95.231114000000005 39.943784,-95.220212000000004 39.944432999999997,-95.216440000000006 39.943953,-95.213736999999995 39.943205999999996,-95.204427999999993 39.938949,-95.201277000000005 39.934193999999998,-95.200689999999994 39.928154999999997,-95.20201 39.922438,-95.205744999999993 39.915168999999999,-95.206326000000004 39.912120999999999,-95.206195999999991 39.909557,-95.205732999999981 39.908275000000003,-95.202631127107011 39.904826841138963,-95.201935000000006 39.904052999999998,-95.19982446963148 39.902956959499498,-95.199773390195176 39.902930432929807,-95.199730682369619 39.902908253904485,-95.199347000000003 39.902709000000002,-95.193815999999984 39.900689999999997,-95.189565000000002 39.899959000000003,-95.179452999999995 39.900061999999991,-95.172296000000003 39.902025999999999,-95.159833999999989 39.906984,-95.156023999999988 39.907243,-95.153185481864639 39.906665666721331,-95.151701132402337 39.906363761184394,-95.149656999999991 39.905947999999995,-95.148243978290679 39.905255611516672,-95.146055000000004 39.904183000000003,-95.143801999999994 39.901917999999995,-95.142562999999981 39.897992000000002,-95.142444999999995 39.895419999999994,-95.143403000000006 39.889355999999992,-95.142718000000002 39.885888999999992,-95.140601000000004 39.88168799999999,-95.137091999999996 39.878350999999995,-95.134747000000004 39.876852,-95.128165999999993 39.874164999999998,-95.105912000000004 39.869163999999998,-95.090958483530287 39.863446088154532,-95.090158000000002 39.86314,-95.085003 39.861882999999999,-95.081534000000005 39.861718000000003,-95.079786043666886 39.861878094210859,-95.052535000000006 39.864373999999998,-95.042141999999998 39.864804999999997,-95.037767000000002 39.865541999999998,-95.034318031759739 39.867229060943565,-95.032053000000005 39.868336999999997,-95.031002514960235 39.869148692103728,-95.027930999999981 39.871521999999999,-95.025918959417425 39.87568321107333,-95.025422000000006 39.876711,-95.025119000000004 39.878833,-95.02586205726584 39.885935119809076,-95.025947000000002 39.886747,-95.025771840138887 39.887478608302466,-95.025475064075451 39.888718183571669,-95.025239999999997 39.889699999999998,-95.024388999999999 39.891202,-95.021897459019584 39.893924778577606,-95.019088516216428 39.896994416745422,-95.018742999999986 39.89737199999999,-95.018224596337973 39.897611313155366,-95.013151999999991 39.899952999999996,-95.010684182587667 39.900289758615472,-95.008439999999993 39.900596,-95.003818999999993 39.900400999999995,-94.990284000000003 39.897010000000002,-94.989784913598129 39.896958718834505,-94.987823822157509 39.896757216540813,-94.986975 39.89667,-94.985308455245701 39.896814869812808,-94.979390624873346 39.897329296428744,-94.977748999999989 39.897472,-94.963345000000004 39.901136,-94.959276000000003 39.901671,-94.958440298615102 39.901548064610132,-94.95153999999998 39.900532999999996,-94.943866999999983 39.898130000000002,-94.935306395585215 39.893779379194363,-94.934493000000003 39.893366,-94.929574000000002 39.888753999999992,-94.927897000000002 39.88611199999999,-94.927358999999996 39.883966,-94.927251999999996 39.880257999999991,-94.928466 39.876344000000003,-94.931084167287821 39.873075003673321,-94.931462999999994 39.872602,-94.938790999999995 39.866954,-94.940742999999998 39.864409999999999,-94.942407000000003 39.861065999999994,-94.942566999999983 39.856601999999995,-94.939767000000003 39.851930000000003,-94.937655000000007 39.849786000000002,-94.926149999999993 39.841321999999998,-94.916917999999995 39.836137999999998,-94.909941999999987 39.834426,-94.903156999999979 39.833849999999998,-94.892677000000006 39.834377999999994,-94.889493000000002 39.834026,-94.886932999999999 39.833098,-94.881012999999996 39.828921999999991,-94.878676999999996 39.826521999999997,-94.877043999999998 39.823754,-94.876543999999996 39.820594,-94.875944000000004 39.813293999999999,-94.87632679569893 39.807169268817198,-94.876344000000003 39.806894,-94.876705972386588 39.80614007495069,-94.880932 39.797338000000003,-94.884084 39.794234000000003,-94.890292000000002 39.791626,-94.892965000000004 39.791097999999991,-94.912908274541266 39.790276806342419,-94.92474489359239 39.789789416146199,-94.925605000000004 39.789753999999995,-94.925940683661906 39.789631963361245,-94.927258709273417 39.789152799691166,-94.929653999999999 39.788281999999995,-94.93035270914757 39.787827111232048,-94.930442023078356 39.787768964141691,-94.930979872832452 39.787418801541357,-94.932726000000002 39.786282,-94.932913349551853 39.786043884763131,-94.935059195246907 39.783316584105528,-94.935205999999994 39.78313,-94.935782000000003 39.778905999999999,-94.935301999999993 39.77561,-94.935036741896766 39.775108050050804,-94.934624304242575 39.774327591105198,-94.934262000000004 39.773642000000002,-94.929652999999988 39.769098,-94.929421387607832 39.768921584953624,-94.928626586797606 39.768316199289764,-94.926229000000006 39.76648999999999,-94.923991330811134 39.765173947104167,-94.916788999999994 39.760937999999996,-94.912293000000005 39.759337999999993,-94.906244 39.759417999999997,-94.905921454535701 39.759501730763866,-94.900921941190049 39.760799572828766,-94.899156000000005 39.761257999999998,-94.899025621234756 39.761323457651685,-94.895268000000002 39.76321,-94.895041000000006 39.763350000000003,-94.894070999999997 39.763945999999997,-94.893918999999997 39.76404,-94.893724000000006 39.764159999999997,-94.893646000000004 39.764208000000004,-94.883923999999993 39.770186000000002,-94.881460000000004 39.771258000000003,-94.881422 39.771258000000003,-94.874706321154179 39.772392308082928,-94.871144 39.772993999999997,-94.869643999999994 39.772894,-94.867142999999999 39.771693999999997,-94.865243000000007 39.770094,-94.863142999999994 39.767294,-94.860742999999999 39.763094000000002,-94.859442999999999 39.753694000000003,-94.860369889104035 39.749534984666809,-94.860371 39.74953,-94.862942999999987 39.742994000000003,-94.870142999999999 39.734594,-94.875642999999997 39.730494,-94.884142999999995 39.726793999999998,-94.891743999999989 39.724893999999999,-94.899315999999999 39.724041999999997,-94.900553640444031 39.724102079633198,-94.901582061073228 39.724152002964722,-94.902612000000005 39.724201999999998,-94.906055088082866 39.724933471502588,-94.907014260749904 39.725137244236571,-94.907785666538786 39.725301126582274,-94.910067999999995 39.725785999999999,-94.911087398893699 39.726157408899255,-94.918323999999998 39.728793999999994,-94.93000499999998 39.735370000000003,-94.939221000000003 39.74157799999999,-94.944740999999979 39.744377,-94.948658825773634 39.745572502168315,-94.948680784417533 39.745579202723142,-94.948725999999994 39.745593,-94.952629999999999 39.745961,-94.955286 39.745688999999999,-94.960086000000004 39.743065,-94.963779819772341 39.740240978767318,-94.964692434782606 39.73954326086956,-94.965317999999982 39.739064999999989,-94.965565209393333 39.738728671232884,-94.970224508542714 39.732389687437191,-94.970421999999985 39.732120999999999,-94.971205999999981 39.729304999999997,-94.971078000000006 39.723146,-94.968452999999997 39.707402000000002,-94.968980999999999 39.692954,-94.969909 39.689050000000002,-94.971316999999999 39.686410000000002,-94.976096392737759 39.68160006801152,-94.976325000000003 39.68137,-94.981556999999995 39.678634000000002,-94.984149000000002 39.677849999999992,-94.986445080691666 39.677537608069159,-94.990587390516794 39.676974028501114,-94.993556999999996 39.676569999999998,-94.998766892420107 39.676509388876212,-95.001379 39.676479,-95.004602740773237 39.676177881356345,-95.008105239221649 39.675850724907868,-95.009022999999999 39.675764999999998,-95.010225986948086 39.675477408241932,-95.013209713780839 39.674764104372102,-95.015309999999985 39.674261999999999,-95.018317999999994 39.672868999999999,-95.021521942351953 39.670631293568427,-95.024595000000005 39.668484999999997,-95.027643999999995 39.665453999999997,-95.037464 39.652904999999997,-95.039049000000006 39.649639,-95.044554000000005 39.644370000000002,-95.049518000000006 39.637875999999999,-95.053366999999994 39.630347,-95.054924999999997 39.624994999999991,-95.055024819926729 39.623527163368095,-95.055152000000007 39.621656999999992,-95.054958456554544 39.620961328886679,-95.053131423647116 39.614394255464305,-95.053011999999981 39.613965,-95.052555891387243 39.613278556984888,-95.047910999999999 39.606287999999999,-95.046445000000006 39.601605999999997,-95.046361000000005 39.599556999999997,-95.047165000000007 39.595117000000002,-95.049277000000004 39.589582999999998,-95.054804000000004 39.582487999999998,-95.056897000000006 39.580567000000002,-95.059518999999995 39.579132,-95.064519000000004 39.577114999999999,-95.066275551338904 39.576786470694117,-95.068266439890465 39.576414113098046,-95.069315000000003 39.576217999999997,-95.072159999999982 39.576121999999991,-95.075842551355763 39.576644128527029,-95.076688000000004 39.576763999999997,-95.088569515113861 39.580713698327401,-95.089515000000006 39.581028000000003,-95.09068217809525 39.58095107619048,-95.095736000000002 39.580618,-95.099095000000005 39.579690999999997,-95.100375015351446 39.579100080742663,-95.10182940536555 39.578428661399109,-95.103228 39.577782999999997,-95.106109962410699 39.575487768136732,-95.106244982404746 39.575380236480051,-95.106274453941239 39.575356764970024,-95.106406000000007 39.575251999999999,-95.107454000000004 39.573842999999997,-95.108931052511622 39.56997896968771,-95.109155613535791 39.569391508783276,-95.112830712234896 39.559777298955126,-95.112877844119652 39.559653999999995,-95.113077000000004 39.559132999999996,-95.113262990573148 39.557121201967142,-95.113516735173974 39.554376531201555,-95.113557 39.553940999999995,-95.113330390574859 39.553319942050457,-95.109694540741444 39.543355336910984,-95.109303999999995 39.542284999999993,-95.106595999999996 39.537657000000003,-95.106363136618171 39.537386330858773,-95.106309238275287 39.537323682029822,-95.102887999999993 39.533346999999999,-95.096713422649174 39.527826015970483,-95.095319522838992 39.526579663685382,-95.092703999999998 39.524241000000004,-95.082713999999996 39.516711999999998,-95.077440999999993 39.513551999999997,-95.059460999999985 39.506143000000002,-95.05637999999999 39.503971999999997,-95.052176999999986 39.499995999999996,-95.050551999999996 39.497514000000002,-95.049844999999991 39.494414999999989,-95.048370000000006 39.480420000000002,-95.047133000000002 39.474970999999996,-95.045715999999999 39.472459,-95.040779999999998 39.466386999999997,-95.03749999999998 39.463689000000002,-95.033407999999994 39.460875999999992,-95.028497999999999 39.458286999999999,-95.015825000000007 39.452809000000002,-94.995767999999998 39.448174000000002,-94.990172 39.446192000000003,-94.982144000000005 39.440551999999997,-94.978797999999998 39.436241000000003,-94.976606000000004 39.426701,-94.972952000000006 39.421705000000003,-94.968547467194298 39.418879728230785,-94.966981164652054 39.417875029083376,-94.966065999999998 39.417287999999999,-94.965430539155946 39.417093446959996,-94.954817000000006 39.413843999999997,-94.951209000000006 39.411706999999993,-94.947863999999996 39.408603999999997,-94.946292999999983 39.405645999999997,-94.946662000000003 39.399717000000003,-94.946226999999993 39.395648,-94.945577 39.393850999999998,-94.942038999999994 39.389499,-94.939696999999995 39.387949999999996,-94.938205659338905 39.38711651736979,-94.938199994953891 39.387113351650086,-94.938198708293527 39.387112632559479,-94.937157999999982 39.386530999999998,-94.933651999999995 39.385545999999998,-94.932170703908099 39.385397898493565,-94.923109999999994 39.384492000000002,-94.919224999999997 39.385173999999999,-94.915858999999998 39.386347999999998,-94.909581000000003 39.388865000000003,-94.901822999999993 39.392797999999999,-94.896448416922993 39.39340032396553,-94.894979000000006 39.393565000000002,-94.891845000000004 39.393312999999999,-94.888971999999995 39.392431999999999,-94.888058227506249 39.391822741147728,-94.885025999999996 39.389800999999999,-94.880978999999996 39.383899,-94.879281000000006 39.37977999999999,-94.879087999999996 39.375702999999994,-94.881359999999987 39.370382999999997,-94.885216 39.366911000000002,-94.890928000000002 39.364030999999997,-94.896832000000003 39.363135,-94.899023999999997 39.362431,-94.902496999999997 39.360382999999999,-94.90716104958679 39.35683832231404,-94.907297 39.356735,-94.907510470967722 39.356484333333356,-94.909408999999997 39.354254999999995,-94.910016999999996 39.352542999999997,-94.91007929967077 39.352122876579188,-94.910166635146069 39.351533921963672,-94.910234386079424 39.351077037464393,-94.910640999999998 39.348334999999999,-94.910055514481613 39.342727430625168,-94.908683540921714 39.329587162119807,-94.908064999999993 39.323663000000003,-94.906599414484603 39.317389801180319,-94.905982468129508 39.31474906332776,-94.905548856768945 39.312893060899633,-94.905328999999995 39.311951999999998,-94.904604536115073 39.31007473956825,-94.903592654247163 39.307452709910535,-94.903137 39.306272,-94.902341179156608 39.304705098857582,-94.900693838394318 39.301461629999167,-94.900362755471093 39.300809756886117,-94.900048999999996 39.300192000000003,-94.895217000000002 39.29420799999999,-94.889432625546704 39.288730528394183,-94.887056 39.286479999999997,-94.882576 39.283327999999997,-94.881425972827699 39.282735692772164,-94.879585687759075 39.281787876778168,-94.878319999999988 39.281135999999996,-94.869470269042495 39.278423959123423,-94.867567999999991 39.277841000000002,-94.866576416802303 39.277461598502107,-94.857072000000002 39.273825000000002,-94.850573678793964 39.270595179638669,-94.850470600187833 39.270543947117169,-94.846320000000006 39.268481,-94.844203868589133 39.266965084952687,-94.840994595225254 39.264666085108807,-94.837855000000005 39.262416999999999,-94.836102527271095 39.260730409704507,-94.834879550067882 39.259553409087879,-94.832501320107042 39.257264586268427,-94.832102355305352 39.256880620143498,-94.831470999999993 39.256273,-94.827487000000005 39.249888999999996,-94.826571473591798 39.245793223963304,-94.825663000000006 39.241728999999999,-94.826110999999983 39.238289000000002,-94.826405091238243 39.237538367125239,-94.827108391663188 39.2357432765168,-94.827791000000005 39.234000999999999,-94.828117769197533 39.233533772937683,-94.83244435695299 39.227347452739551,-94.834698551534771 39.224124319346686,-94.834896 39.223841999999998,-94.834917496024659 39.223414229109203,-94.835039139715306 39.220993519665384,-94.835046603087861 39.220844998551456,-94.835055999999994 39.220658,-94.833551999999997 39.217793999999998,-94.831678999999994 39.215938,-94.823791 39.209873999999999,-94.820687000000007 39.208626000000002,-94.811662999999996 39.206594000000003,-94.800359054554335 39.206051410618606,-94.799662999999995 39.206018,-94.798924306591658 39.206116812235138,-94.793913945984244 39.206787029303406,-94.788135068391796 39.207560047994349,-94.787343000000007 39.207666000000003,-94.783838000000003 39.207154000000003,-94.781518000000005 39.206145999999997,-94.780294078498926 39.205273290755756,-94.778971577769184 39.204330290235411,-94.777838000000003 39.203522,-94.775537999999997 39.200602000000003,-94.770897097034492 39.191141697801093,-94.770859400196969 39.191064854247678,-94.770337999999995 39.190002,-94.763137999999998 39.179903000000003,-94.75233799999998 39.173202999999994,-94.74193799999999 39.170203,-94.736536999999998 39.169203000000003,-94.723636999999997 39.169002999999989,-94.714136999999994 39.170403,-94.696331999999998 39.178562999999997,-94.687235999999999 39.183503000000002,-94.680335999999983 39.184303,-94.669134999999997 39.182003000000002,-94.663835000000006 39.179102999999998,-94.660314999999997 39.168050999999991,-94.662434999999988 39.157602999999995,-94.650734999999983 39.154102999999999,-94.640034999999997 39.153102999999994,-94.623934000000006 39.156602999999997,-94.615834000000007 39.160003000000003,-94.608834000000002 39.160502999999999,-94.601732999999996 39.15960299999999,-94.596033000000006 39.157702999999998,-94.591932999999997 39.155003,-94.589933000000002 39.140402999999999,-94.592533000000003 39.135902999999992,-94.600433999999993 39.128503000000002,-94.605733999999998 39.122204000000004,-94.607033999999999 39.119404000000003,-94.607354 39.113444,-94.607234000000005 39.089604,-94.607333999999994 39.081703999999995,-94.607275518421304 39.072346947409343,-94.607234000000005 39.065703999999997,-94.607342812841125 39.057404745686583,-94.60738379566331 39.05427894858029,-94.607437239929951 39.050202705779334,-94.607518499034526 39.044004999999999,-94.607559479691474 39.040879368039988,-94.607612854426819 39.036808428453341,-94.60764748233197 39.034167326647299,-94.607654028188094 39.033668068249817,-94.60769507925167 39.030537066312085,-94.607898722639391 39.015005000000002,-94.607914652765047 39.013789994834404,-94.607991843462372 39.007902590176151,-94.608087526605189 39.000604749887366,-94.608092759229436 39.000205652880325,-94.608190956218394 38.992716079262479,-94.608212339138063 38.991085184540211,-94.608264438806202 38.98711149548862,-94.608279957450691 38.985927874365181,-94.608301211867541 38.984306780669819,-94.608333999999999 38.981805999999999,-94.608294286905348 38.97390309416464,-94.608273484679671 38.969763451253407,-94.608249262127771 38.964943163424849,-94.608207879518076 38.956708024096379,-94.608134000000007 38.942005999999999,-94.608134000000007 38.940005999999997,-94.607866 38.937398000000002,-94.607977999999989 38.936869999999992,-94.608002838442587 38.912906322207348,-94.608006216770249 38.909646973100827,-94.608010407202343 38.90560412040071,-94.608022064178897 38.894357681354862,-94.60802273861259 38.893706999999999,-94.608033000000006 38.883806999999997,-94.608033000000006 38.869207000000003,-94.608033000000006 38.868107000000002,-94.607992999999993 38.867271000000002,-94.608033000000006 38.861207,-94.608033000000006 38.855007,-94.608033000000006 38.850107,-94.608033000000006 38.847206999999997,-94.607624999999999 38.827559999999991,-94.607668973053535 38.825816299300072,-94.608041 38.811064000000002,-94.608617609754887 38.781926100280451,-94.609398999999996 38.742440000000002,-94.60945599999998 38.74069999999999,-94.609507757106428 38.73815999467709,-94.609625656590424 38.7323740198146,-94.610322172686637 38.698192151600097,-94.61071084056907 38.679118085101081,-94.61073851283922 38.677760054904219,-94.611602000000005 38.635384000000002,-94.611464999999995 38.625011,-94.611857999999998 38.620485000000002,-94.611908 38.609271999999997,-94.611905562149673 38.605890005062435,-94.611886999999996 38.580139000000003,-94.611902 38.580109999999998,-94.612176000000005 38.576546,-94.612156999999996 38.549816999999997,-94.612272000000004 38.547916999999998,-94.612464742072774 38.518760616499996,-94.612644000000003 38.491644,-94.612725999999995 38.484366999999999,-94.612696 38.483153999999999,-94.612865999999997 38.477570999999998,-94.613365000000002 38.403421999999999,-94.613264999999998 38.392426,-94.613275404637193 38.388718047420433,-94.613328999999993 38.369617999999996,-94.613311999999993 38.364407,-94.613085455228386 38.3436360393057,-94.612999999999985 38.335800999999996,-94.612825 38.324387000000002,-94.612787999999995 38.320141999999997,-94.612673 38.314832000000003,-94.612673 38.302526999999998,-94.612689368276676 38.301464114946214,-94.612843999999996 38.291422999999995,-94.612848999999997 38.289914000000003,-94.612707829046002 38.272362044447966,-94.612691999999996 38.270394000000003,-94.612613999999994 38.237766,-94.612634999999997 38.226987,-94.612658999999994 38.219251,-94.61265866950464 38.21872154645218,-94.612657999999982 38.217649000000002,-94.612821999999994 38.203918000000002,-94.612848 38.200713999999998,-94.613073 38.190551999999997,-94.61341774677895 38.168183959706163,-94.613422 38.16790799999999,-94.613748 38.160632999999997,-94.613855999999998 38.149768999999999,-94.613889466360249 38.136312911169284,-94.613919497343275 38.124238112111762,-94.614061000000007 38.067343,-94.614088999999993 38.065900999999997,-94.614054999999993 38.060088,-94.613980999999995 38.036949,-94.614211999999981 37.992462000000003,-94.614464999999996 37.987798999999995,-94.614511123427164 37.979395512107736,-94.614514360688489 37.978805697169918,-94.614557000000005 37.971036999999995,-94.614561999999992 37.951517000000003,-94.614593999999997 37.949977999999994,-94.614611999999994 37.944361999999998,-94.614754000000005 37.940769000000003,-94.614834999999999 37.936700000000002,-94.614778 37.934199999999997,-94.615181000000007 37.915944000000003,-94.615392999999983 37.906391999999997,-94.61546899999999 37.901775,-94.615706000000003 37.886842999999999,-94.615921 37.878331000000003,-94.615834000000007 37.872509999999998,-94.616 37.863126,-94.616282760205394 37.851281931678621,-94.616426000000004 37.845281999999997,-94.616433230053673 37.842955730230052,-94.61645 37.837560000000003,-94.616861999999998 37.819456000000002,-94.6176681324215 37.775831003788085,-94.617720999999989 37.77297,-94.617737774720197 37.764628336555312,-94.617744979193901 37.761045725680312,-94.617807999999997 37.729706999999998,-94.617975 37.722175999999997,-94.61780499999999 37.690178000000003,-94.617650999999995 37.687671000000002,-94.617687000000004 37.686652999999993,-94.617885 37.682214000000002,-94.617733999999999 37.673127,-94.617576 37.653671000000003,-94.617517909436387 37.643988652624088,-94.61747699999998 37.637169999999998,-94.617472819127315 37.636539916507168,-94.6173 37.610495,-94.617428000000004 37.609521999999998,-94.617283 37.571896000000002,-94.617315000000005 37.571498999999996,-94.617080999999999 37.567013000000003,-94.61711240153133 37.563155381499406,-94.617159999999984 37.557307999999999,-94.617186000000004 37.553485000000002,-94.617167532949537 37.551779056391354,-94.616988484457494 37.535238968895172,-94.616907999999981 37.527804000000003,-94.616788999999997 37.521509999999999,-94.616880369657522 37.506771761864755,-94.617022999999989 37.483764999999998,-94.617182999999997 37.469664999999999,-94.617180000000005 37.465203000000002,-94.617221999999998 37.460476,-94.617204999999984 37.46037299999999,-94.617200999999994 37.454788,-94.617131999999998 37.439818000000002,-94.617265000000003 37.425535999999994,-94.617510999999993 37.410908999999997,-94.617557000000005 37.396374999999999,-94.61759158917468 37.381725975861251,-94.617625000000004 37.367576,-94.617626 37.367444999999989,-94.617536999999999 37.364355000000003,-94.617636000000005 37.338417,-94.617694999999998 37.336841999999997,-94.617648000000003 37.323588999999998,-94.61807499999999 37.240436000000003,-94.618157999999994 37.237596999999994,-94.618122999999997 37.229334,-94.61815 37.228121000000002,-94.618218999999996 37.207771999999999,-94.618305000000007 37.207337000000003,-94.618319 37.188774000000002,-94.618504999999985 37.181184000000002,-94.618472999999994 37.174782,-94.618351000000004 37.160210999999997,-94.618071999999998 37.132345,-94.61807499999999 37.129755000000003,-94.61816441512984 37.118929895303054,-94.618212 37.113168999999992,-94.618150999999997 37.103968000000002,-94.618059000000002 37.096676000000002,-94.618088 37.093670999999993,-94.618089999999995 37.093494,-94.618085255103864 37.089305442941992,-94.618082 37.086432000000002,-94.61811999999999 37.085934000000002,-94.617981999999998 37.075077,-94.617954311863897 37.070346986543974,-94.617947706480578 37.069218577181687,-94.617910161110728 37.062804634983031,-94.617893975984089 37.060039701061122,-94.617874999999998 37.056798,-94.617877538275181 37.056339390079508,-94.617964999999998 37.040537,-94.617972200190749 37.032971759572447,-94.617994999999979 37.009015999999995,-94.618027702303792 37.004829720380044,-94.618080000000006 36.998134999999998,-94.625223999999989 36.998671999999999,-94.699735000000004 36.998804999999997,-94.701796999999999 36.998814000000003,-94.711286363060864 36.99879670415919,-94.712770000000006 36.99879399999999,-94.722629184733563 36.998741903378082,-94.732834603466486 36.998687977231512,-94.736330645670293 36.998669503899912,-94.737183000000002 36.998665000000003,-94.739323999999996 36.998686999999997,-94.745992043692311 36.998700535427304,-94.749560781475736 36.99870777958963,-94.749834600019099 36.998708335412474,-94.777257000000006 36.998764,-94.831280000000007 36.998812,-94.831539962039543 36.998812565955092,-94.840925999999996 36.998832999999998,-94.846637705524785 36.998860673615503,-94.849800999999999 36.998875999999996,-94.853196999999994 36.998874,-94.896852168601683 36.999075231107383,-94.904605402657381 36.99911097010289,-94.9407882710602 36.999277757196154,-94.995293000000004 36.999528999999995,-95.007620000000003 36.999513999999998,-95.011432999999997 36.999535000000002,-95.030323999999993 36.999516999999997,-95.037857000000002 36.999496999999998,-95.049498999999983 36.999580000000002,-95.073509 36.999509000000003,-95.1405498515593 36.999533623834409,-95.155186999999998 36.999538999999999,-95.155372 36.999540000000003,-95.159067907556633 36.999536629205572,-95.177300999999986 36.999519999999997,-95.195307 36.999564999999997,-95.267905305061163 36.999446910377756,-95.285983101167361 36.999417504731007,-95.322564999999997 36.999357999999994,-95.328057999999999 36.999364999999997,-95.328326999999987 36.999366000000002,-95.331209999999999 36.999380000000002,-95.377252424658963 36.999296311678272,-95.381753803085687 36.999288129815376,-95.407683000000006 36.999240999999998,-95.511578 36.999234999999999,-95.522414951940931 36.999281058114107,-95.534401000000003 36.999332000000003,-95.573598000000004 36.999309999999994,-95.601517312742303 36.999317968253862,-95.612139999999997 36.999321000000002,-95.615933999999996 36.999364999999997,-95.621011943860609 36.999361983160732,-95.624350000000007 36.999360000000003,-95.630078999999995 36.999319999999997,-95.638122589416028 36.999320470082949,-95.664300999999995 36.999321999999999,-95.674044398562955 36.999333876292773,-95.686452000000003 36.999349000000002,-95.696658999999997 36.999215,-95.71038 36.999370999999996,-95.710782524132014 36.999362783399121,-95.714887000000004 36.999279,-95.718053999999995 36.999254999999998,-95.741907999999995 36.999243999999997,-95.746466244276931 36.999250838506164,-95.759905000000003 36.999270999999993,-95.768719000000004 36.999205000000003,-95.786761999999996 36.999309999999994,-95.807979999999986 36.999124000000002,-95.819364496908179 36.999150471530008,-95.866899000000004 36.999260999999997,-95.873943999999995 36.999299999999998,-95.875256999999991 36.999302,-95.877150999999998 36.999304000000002,-95.910179999999997 36.999336,-95.928122000000002 36.999245000000002,-95.936991999999989 36.999267999999994,-95.964270378114222 36.999093604402042,-96.00081 36.99886,-96.095164142267308 36.998935940299688,-96.14121 36.998972999999999,-96.143207000000004 36.999133999999998,-96.147143 36.999021999999997,-96.149709 36.99904,-96.152383999999998 36.999050999999994,-96.154016999999982 36.999161,-96.184768000000005 36.999211000000003,-96.200028000000003 36.999028000000003,-96.217571000000007 36.999070000000003,-96.235320025971774 36.999130675786525,-96.27480962492784 36.999265672629733,-96.276368000000005 36.999270999999993,-96.279078999999996 36.999271999999991,-96.381556872639493 36.999226629434901,-96.394272 36.999220999999999,-96.415412000000003 36.999113,-96.500287999999998 36.998643,-96.525212323286397 36.998711038495294,-96.525495980566973 36.998711812823821,-96.551130926932458 36.998781791180214,-96.551130927020779 36.998781791180456,-96.624487489749981 36.998982040153741,-96.705431000000004 36.999203,-96.710481999999999 36.999270999999993,-96.731983006833033 36.99928335311408,-96.736589999999993 36.999285999999998,-96.741269999999986 36.999239000000003,-96.749837999999997 36.998987999999997,-96.792060000000006 36.999179999999996,-96.795198999999997 36.99886,-96.822790999999995 36.999181999999998,-96.867517000000007 36.999217000000002,-96.876289999999997 36.999232999999997,-96.902083000000005 36.999155000000002,-96.903509999999997 36.999132000000003,-96.917092999999994 36.999181999999998,-96.921914999999998 36.999150999999998,-96.924934279563146 36.999131784030439,-96.934641999999997 36.999070000000003,-96.967371 36.999066999999997,-96.975561999999996 36.999018999999997,-97.030081999999979 36.998928999999997,-97.039783999999983 36.999000000000002,-97.045562883576096 36.99899981011751,-97.100651999999997 36.998998,-97.104275999999999 36.999020000000002,-97.120284999999996 36.999014000000003,-97.122596999999999 36.999035999999997,-97.147721000000004 36.999110999999999,-97.202000013134437 36.999050609464689,-97.255829185181881 36.998990719420135,-97.342808466604069 36.998893946743877,-97.362376892203329 36.998872175019791,-97.364929972745273 36.99886933447624,-97.372421000000003 36.998860999999998,-97.384924999999996 36.998843,-97.462279999999993 36.998685000000002,-97.472860999999995 36.998721000000003,-97.527292000000003 36.998749999999994,-97.545899999999989 36.998708999999991,-97.546497999999985 36.998746999999995,-97.564536000000004 36.998711,-97.582460039051355 36.99869862770732,-97.606549 36.998682000000002,-97.637136999999996 36.999090000000002,-97.650465999999994 36.999003999999999,-97.692180007144742 36.998844793059916,-97.697103999999982 36.998826,-97.768704 36.998749999999994,-97.783432000000005 36.998961,-97.783489000000003 36.998846999999998,-97.802297999999979 36.998713000000002,-97.965379045838461 36.998468720211747,-98.033955000000006 36.998365999999997,-98.03989 36.998348999999997,-98.045341999999991 36.998327000000003,-98.111985000000004 36.998133000000003,-98.128185436781749 36.99814624647324,-98.147452 36.998162,-98.177595999999994 36.998008999999996,-98.190367496841162 36.998003995168112,-98.208218000000002 36.997996999999998,-98.219498999999999 36.997824,-98.237712000000002 36.99797199999999,-98.346187999999984 36.997962,-98.347186011230875 36.997961873429141,-98.354073 36.997960999999997,-98.408991 36.998513000000003,-98.418267999999998 36.998538000000003,-98.420209 36.998516000000002,-98.476584655565659 36.998733519956424,-98.485495952453391 36.998767903324406,-98.544871999999984 36.998997000000003,-98.622244241689657 36.999025734091177,-98.714511999999999 36.99906,-98.718464999999995 36.999179999999996,-98.761596999999995 36.999425000000002,-98.791936000000007 36.999254999999998,-98.793711000000002 36.999226999999991,-98.797451999999993 36.999228999999993,-98.811832237742053 36.99924038482925,-98.869449000000003 36.999285999999998,-98.880009 36.999262999999999,-98.880579999999995 36.999308999999997,-98.994371 36.999493,-99.000846251360556 36.99951188908193,-99.029336999999998 36.999594999999999,-99.044703416105833 36.999312701167916,-99.049695 36.999220999999999,-99.124882999999997 36.99942,-99.12944899999998 36.999422000000003,-99.215429691089184 36.999525607779709,-99.221470798208784 36.999532887387339,-99.22594390512576 36.999538277535649,-99.248119999999986 36.999564999999997,-99.277506000000002 36.999578999999997,-99.375390999999993 37.000176999999994,-99.375813215185289 37.000169016042221,-99.396673054015949 36.999774562980598,-99.407015 36.999578999999997,-99.456202999999988 36.999471,-99.484333000000007 36.999625999999999,-99.500394999999983 36.99957599999999,-99.500394999999983 36.999637,-99.502664999999993 36.999645,-99.504092999999997 36.999648,-99.508573999999982 36.999657999999997,-99.541115670095081 36.999572526667627,-99.558068000000006 36.999527999999998,-99.625399000000002 36.999670999999999,-99.648651999999998 36.999603999999998,-99.657657999999998 37.000197,-99.675479899119665 37.000294824261658,-99.700804554289192 37.000433831091229,-99.722499410223932 37.000552913981863,-99.774254999999997 37.000836999999997,-99.774816 37.000841,-99.786016000000004 37.000931,-99.875408999999991 37.001658999999997,-99.904897139036905 37.001652107487203,-99.995200999999994 37.001631000000003,-100.001285999999993 37.001699000000002,-100.002562999999995 37.001705999999999,-100.005706000000004 37.001725999999998,-100.08949117994996 37.002091554886341,-100.115721999999991 37.002206,-100.187546999999995 37.002082,-100.19237099999998 37.002035999999997,-100.193753999999998 37.002133,-100.201675999999992 37.002080999999997,-100.269984573601874 37.001795796937508,-100.395563941387664 37.001271475927872,-100.434302684862132 37.001109733298897,-100.434343961694367 37.0011095609592,-100.436759028295029 37.001099477534027,-100.462594151135718 37.000991610310841,-100.526354155903263 37.000725398506596,-100.551597999999998 37.000619999999998,-100.552683000000002 37.000734999999999,-100.591328000000004 37.000376000000003,-100.591413000000003 37.000399000000002,-100.629769999999994 37.000025,-100.63332699999998 36.999935999999998,-100.675551999999996 36.999687999999999,-100.734516999999997 36.999059000000003,-100.756894000000003 36.999356999999996,-100.759718826764541 36.999297806889686,-100.765484 36.999177000000003,-100.806116000000003 36.999091,-100.814277000000004 36.999085,-100.850054835707368 36.998687920265262,-100.855633999999981 36.998626000000002,-100.891659999999987 36.998604,-100.904274 36.998745,-100.904588000000004 36.998561000000002,-100.945565999999985 36.998151999999997,-100.958261085233985 36.99812508251128,-100.996501999999992 36.998044,-101.012641000000002 36.998176,-101.053589000000002 36.997966999999996,-101.066742000000005 36.997920999999998,-101.096255470166753 36.997758490771822,-101.211485999999979 36.997123999999999,-101.212908999999996 36.997044000000002,-101.283204233333976 36.996668964004151,-101.357796999999991 36.996271,-101.359673999999998 36.996231999999999,-101.37818 36.996164,-101.413867999999994 36.996008000000003,-101.415004999999994 36.995966000000003,-101.485326 36.995610999999997,-101.519065999999995 36.99554599999999,-101.555239 36.99541399999999,-101.600396000000003 36.995152999999995,-101.601592999999994 36.995094999999999,-101.672152845644291 36.994768289529276,-101.672152845650672 36.994768289529254,-101.718235173867967 36.994554916342196,-101.761767880686108 36.994353348566563,-101.826607533764985 36.994053124077894,-101.862548907230888 36.993886706153717,-101.881050066963184 36.993801040963412,-101.899294480822903 36.993716564573397,-101.902439999999999 36.993701999999999,-101.905152836625547 36.993689460946754,-101.93521516037174 36.99355050931414,-102.000446999999994 36.993248999999992,-102.000446999999994 36.993271999999997,-102.028206999999981 36.993124999999999,-102.042240000000007 36.993082999999999,-102.041951999999995 37.024741999999996,-102.04195 37.030805,-102.041921000000002 37.032178000000002,-102.041748999999996 37.034396999999998,-102.04191999999999 37.035083,-102.041983000000002 37.106551000000003,-102.041808999999986 37.111972999999999,-102.042091999999997 37.125020999999997,-102.042135000000002 37.125020999999997,-102.042121535383529 37.12671399835564,-102.042001999999997 37.141744000000003,-102.041962999999996 37.258164,-102.041663999999997 37.29764999999999,-102.041816999999995 37.309489999999997,-102.041973999999996 37.352612999999998,-102.042089000000004 37.352818999999997,-102.041523999999995 37.375017999999997,-102.041585760607518 37.389190434149839,-102.041675999999981 37.409897999999991,-102.041668999999999 37.434739999999998,-102.041754999999995 37.434854999999992,-102.041800999999992 37.469487999999998,-102.041786000000002 37.506065999999997,-102.04201599999999 37.535260999999998,-102.041899 37.541186000000003,-102.041893999999999 37.557977,-102.041618 37.607868000000003,-102.041584999999998 37.644281999999997,-102.041581999999991 37.654494999999997,-102.041694000000007 37.665680999999999,-102.041573999999997 37.680436,-102.041876000000002 37.723875,-102.041989965869121 37.73854062916552,-102.042158 37.760164000000003,-102.042668000000006 37.788758,-102.042952999999997 37.803534999999997,-102.043032999999994 37.824145999999999,-102.043218999999993 37.86792899999999,-102.043714531331204 37.914003914798144,-102.043845000000005 37.926135000000002,-102.043844000000007 37.928101999999996,-102.044644000000005 38.045532,-102.044255000000007 38.113010999999993,-102.044450868202546 38.120049353793199,-102.044589000000002 38.125012999999996,-102.044415729020699 38.133607343100145,-102.044251000000003 38.141777999999995,-102.044296878804843 38.175558844899406,-102.044398 38.250014999999998,-102.044510721728557 38.262483349316234,-102.044567999999998 38.268819,-102.044612999999998 38.312323999999997,-102.044944 38.384419,-102.044441999999989 38.415801999999999,-102.044936000000007 38.41968,-102.045323999999979 38.453646999999997,-102.045262999999991 38.505395,-102.045261999999994 38.505531999999995,-102.045112000000003 38.523783999999999,-102.045222999999993 38.543796999999998,-102.045188999999979 38.558731999999992,-102.045210999999995 38.581608999999993,-102.045287999999999 38.615248999999999,-102.045074 38.669617000000002,-102.045102 38.674945999999998,-102.045159999999996 38.675221,-102.045126999999994 38.686725000000003,-102.045156000000006 38.688555,-102.045211999999992 38.697566999999999,-102.045375000000007 38.754338999999995,-102.045287000000002 38.755527999999998,-102.045371000000003 38.770063999999998,-102.045447999999993 38.783453000000002,-102.045333999999997 38.799463000000003,-102.045387999999988 38.813391999999993,-102.046570999999986 39.047038,-102.047133999999986 39.129700999999997,-102.047188612927897 39.133146793270186,-102.047250000000005 39.13702,-102.047851021058236 39.220289738242592,-102.048449000000005 39.30313799999999,-102.04895999999998 39.37371199999999,-102.049100972149461 39.394064428437375,-102.049166999999983 39.403596999999998,-102.049369999999996 39.418210000000002,-102.049368999999999 39.423333,-102.049678999999998 39.506183,-102.049672999999999 39.536690999999998,-102.049553999999986 39.538932000000003,-102.049763758475066 39.568170000775439,-102.04980599999999 39.574058,-102.049954 39.592331,-102.050258163748609 39.627242889069393,-102.050421999999983 39.646047999999993,-102.050099000000003 39.653812000000002,-102.05059399999999 39.67559399999999,-102.050898693231389 39.741794606053567,-102.051254 39.818992,-102.051317999999995 39.833311000000002,-102.051362999999995 39.843471,-102.051569 39.849805000000003,-102.051743999999999 40.003078000000002))');
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/sql/tx.wkt b/webapp/django/contrib/gis/tests/geoapp/sql/tx.wkt
new file mode 100644
index 0000000..768f13f
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/sql/tx.wkt
@@ -0,0 +1 @@
+MULTIPOLYGON (((-103.00243399999998 36.500397,-102.90421904194784 36.500393342967676,-102.8402359524855 36.500390960558398,-102.840235952479716 36.500390960558398,-102.840235952474345 36.500390960558398,-102.840235952468362 36.500390960558398,-102.840235952461725 36.500390960558398,-102.840235952455885 36.500390960558398,-102.792077446284736 36.500389167377229,-102.643207699865854 36.500383624214699,-102.366462330167067 36.500373319605465,-102.250452999999979 36.500368999999999,-102.24499 36.500703999999999,-102.162463000000002 36.500326,-102.12545 36.500323999999999,-102.124752896301885 36.500398159967887,-102.122066000000004 36.500684,-101.930244999999999 36.500526,-101.925344139375468 36.500484781341967,-101.914929315957153 36.500397187533892,-101.826564999999988 36.499653999999992,-101.826498 36.499535000000002,-101.81449312121488 36.499579719643286,-101.788110000000003 36.499678000000003,-101.783359000000004 36.499709000000003,-101.781987 36.499718,-101.780609999999982 36.499727,-101.779435000000007 36.499733999999997,-101.773235954788092 36.499732939140301,-101.709314000000006 36.499721999999998,-101.698684999999998 36.499507999999999,-101.653707999999995 36.499572999999998,-101.649966000000006 36.499572999999998,-101.623914999999997 36.499527999999998,-101.414793008557069 36.499417763984319,-101.392608849457574 36.499406069885133,-101.340061173170298 36.499378370041477,-101.085155999999984 36.499243999999997,-101.052418000000003 36.499562999999995,-101.04533099999999 36.499540000000003,-100.977087999999995 36.499594999999999,-100.936058000000003 36.499602000000003,-100.918513000000004 36.499620999999998,-100.884174000000002 36.499682,-100.884079999999997 36.499682,-100.859656999999984 36.499687000000002,-100.850840000000005 36.49969999999999,-100.824235999999999 36.499617999999998,-100.824218000000002 36.499617999999998,-100.80619 36.499673999999999,-100.806172000000004 36.499634,-100.802909 36.499620999999998,-100.802886 36.499620999999998,-100.761810999999994 36.499617999999998,-100.761810999999994 36.499580000000002,-100.724361999999999 36.499580000000002,-100.724361000000002 36.499558,-100.708625999999995 36.499552999999999,-100.708628000000004 36.499520999999994,-100.657762999999989 36.499482999999991,-100.657762999999989 36.499499999999998,-100.648342999999997 36.499495000000003,-100.648343999999994 36.499462999999999,-100.592613999999998 36.499468999999998,-100.592555999999988 36.499468999999998,-100.592551 36.499428999999999,-100.583539000000002 36.499482999999991,-100.583378999999994 36.499442999999999,-100.578113999999999 36.499462999999999,-100.578113999999999 36.499439000000002,-100.546144999999996 36.499343000000003,-100.531215000000003 36.499341,-100.531215000000003 36.499290000000002,-100.530478000000002 36.49924,-100.530314000000004 36.499357000000003,-100.522227 36.499290999999999,-100.441064999999995 36.499490000000002,-100.441063999999997 36.499462,-100.433959000000002 36.499456000000002,-100.421327999999988 36.499447000000004,-100.421300999999985 36.499487999999999,-100.413634000000002 36.499443999999997,-100.41355 36.499468999999998,-100.378634000000005 36.499516999999997,-100.378591999999998 36.499445,-100.35185199999998 36.499487000000002,-100.351841999999991 36.499473000000002,-100.334463999999997 36.49942,-100.334440999999998 36.49944,-100.324150000000003 36.499679,-100.311244999999985 36.499631,-100.311018000000004 36.499687999999999,-100.310642999999985 36.499642,-100.253572851827684 36.499638031344489,-100.181220999999994 36.499633000000003,-100.090020999999993 36.499634,-100.000405999999984 36.499701999999999,-100.0004059967807 36.499497793115623,-100.00040222345956 36.260147946939995,-100.000399000000002 36.055677000000003,-100.000396170268971 35.879197994164429,-100.000394020347557 35.745115995014778,-100.000391999999991 35.619115,-100.000390396259149 35.519130234823749,-100.000386875554753 35.299632926398459,-100.000386874882437 35.299591010324292,-100.000386852473085 35.298193905884737,-100.000384999999994 35.182701999999999,-100.000381972929958 34.852568985943549,-100.000381605014198 34.812443999872983,-100.000381000000004 34.746460999999996,-100.000381000000004 34.570853999999997,-100.000381000000004 34.570647,-100.000381000000004 34.560509000000003,-99.998254592787575 34.560446149085699,-99.997501461048799 34.560423888524269,-99.985833 34.560079000000002,-99.974761999999998 34.561317999999993,-99.971554999999995 34.562179,-99.965608000000003 34.565843999999998,-99.958898000000005 34.571271000000003,-99.957540999999992 34.572708999999996,-99.95755299999999 34.574168999999998,-99.956716999999998 34.576523999999992,-99.954566999999997 34.578195,-99.94571999999998 34.579273,-99.930492488760507 34.576894921075187,-99.930189904388058 34.576847666503667,-99.929333999999997 34.576714000000003,-99.923210999999995 34.574551999999997,-99.921801000000002 34.570253,-99.915771000000007 34.565975000000002,-99.914151070156151 34.564995899308187,-99.898943000000003 34.555804000000002,-99.896006999999997 34.555529999999997,-99.89376 34.554219000000003,-99.887146999999999 34.549047000000002,-99.885392392967745 34.547401436342639,-99.884583851343237 34.546643143067669,-99.87806651563541 34.540530839522475,-99.87650823800611 34.539069404005723,-99.874403 34.537095,-99.873254000000003 34.535350999999999,-99.872356999999994 34.532096000000003,-99.868953000000005 34.52761499999999,-99.867217250163094 34.525864500605081,-99.853065999999998 34.511592999999998,-99.832903999999985 34.500067999999999,-99.825324999999992 34.497596,-99.818185999999997 34.487839999999991,-99.818738999999979 34.484975999999996,-99.814544624457952 34.476663062301249,-99.814312999999984 34.476204000000003,-99.793683999999999 34.453893999999998,-99.783787954821193 34.445078397966533,-99.782985999999994 34.444364,-99.775743000000006 34.444225000000003,-99.774224411180043 34.443216449834381,-99.765598999999995 34.437488000000002,-99.764825999999999 34.436433999999998,-99.764881999999986 34.435265999999999,-99.767647999999994 34.431854,-99.767234000000002 34.430501999999997,-99.754248000000004 34.421288999999994,-99.740907000000007 34.414763,-99.735679661059166 34.413018903486261,-99.730348000000006 34.411239999999992,-99.720258999999999 34.406295,-99.719721039768913 34.405807854123296,-99.716415999999995 34.402814999999997,-99.715089000000006 34.400753999999999,-99.714231999999996 34.397821999999998,-99.714838 34.394523999999997,-99.712682 34.390928000000002,-99.707900999999993 34.387538999999997,-99.696461999999997 34.381036000000002,-99.678282999999979 34.379798999999998,-99.672337448339604 34.378003970284972,-99.671377000000007 34.377713999999997,-99.666676988468737 34.374633899592595,-99.665992000000003 34.374184999999997,-99.665404581506792 34.374094751646162,-99.662705000000003 34.373679999999993,-99.659863615570984 34.374283464835351,-99.659362000000002 34.374389999999998,-99.654194000000004 34.376519000000002,-99.649662000000006 34.379885000000002,-99.630904999999998 34.376007,-99.628541546335526 34.375150829397036,-99.624196999999995 34.373576999999997,-99.600026 34.374687999999999,-99.596322999999998 34.377136999999998,-99.587595999999991 34.385866999999998,-99.587235087741874 34.386377538370702,-99.585718954359294 34.388522226586467,-99.585441999999986 34.388914,-99.584530999999984 34.391204999999999,-99.585306000000003 34.398122,-99.584479999999985 34.407673000000003,-99.580059999999989 34.416652999999997,-99.574366999999995 34.418281,-99.569695999999993 34.418418000000003,-99.563067665646059 34.417445690943012,-99.562203999999994 34.417318999999999,-99.561530791054494 34.417028950664999,-99.555986000000004 34.414639999999999,-99.549242000000007 34.412714999999992,-99.529786 34.411451999999997,-99.528744576810823 34.411579971493573,-99.523649999999989 34.412205999999998,-99.517623999999998 34.414493999999991,-99.514279999999999 34.414034999999998,-99.499874999999989 34.409607999999999,-99.497090999999983 34.407730999999991,-99.494103999999993 34.404755000000002,-99.490425999999999 34.399693999999997,-99.487218999999982 34.397955000000003,-99.477547 34.396355,-99.477019613816751 34.396364300212412,-99.474810232095294 34.396403261641368,-99.472297823530695 34.396447566809115,-99.470968999999997 34.396470999999991,-99.463286816319666 34.393024688790533,-99.452647999999996 34.388252,-99.445020999999983 34.379891999999998,-99.440759999999997 34.374122999999997,-99.430994999999982 34.373413999999997,-99.43081720973791 34.373532661492725,-99.420432000000005 34.380464000000003,-99.408847999999992 34.372776000000002,-99.407167999999999 34.372605,-99.406018176721332 34.372844364351735,-99.404336527339453 34.373194441551952,-99.402959999999979 34.373480999999998,-99.399602999999999 34.375078999999999,-99.397253000000006 34.377870999999999,-99.396160718377317 34.383134276834824,-99.391492 34.405631,-99.393918999999997 34.415273999999989,-99.396488000000005 34.417290999999999,-99.396901999999997 34.418688000000003,-99.397009999999995 34.424002999999999,-99.395768462359129 34.43494110377263,-99.394955999999993 34.442098999999999,-99.381011 34.456935999999999,-99.376037841709419 34.458617501802458,-99.375365000000002 34.458844999999997,-99.369609999999994 34.458699000000003,-99.358795 34.455862999999994,-99.354671999999994 34.451856999999997,-99.35478257092818 34.450383391084422,-99.354837000000003 34.449657999999999,-99.356770999999995 34.446542,-99.357101999999998 34.444915000000002,-99.356712999999999 34.442143999999999,-99.350407000000004 34.437083,-99.342020261837703 34.431514649700844,-99.341336999999996 34.431061,-99.341016600261696 34.430906286427735,-99.334036999999995 34.427536000000003,-99.331050066208874 34.424666026137302,-99.328674000000007 34.422383000000004,-99.325094009617374 34.416010263301388,-99.324222000000006 34.414458000000003,-99.321411663781888 34.411055277053073,-99.319798627189357 34.409102230797522,-99.319605999999979 34.408869000000003,-99.318363000000005 34.408295999999993,-99.316372999999999 34.408204999999995,-99.308273999999997 34.410013999999997,-99.299098 34.414227999999994,-99.294647999999981 34.415373000000002,-99.289922000000004 34.414731000000003,-99.287844819286008 34.413958196831629,-99.264167 34.405149000000002,-99.261320999999981 34.403498999999996,-99.261255940568432 34.403158389836314,-99.260996786434447 34.401801622187399,-99.259199386422964 34.392391568987605,-99.258998120407611 34.391337867029385,-99.258979999999994 34.391243000000003,-99.259239630132384 34.391043961974496,-99.260703756811225 34.389921531074158,-99.261190999999997 34.389547999999998,-99.262646013804954 34.388906249865343,-99.264243556741917 34.388201635660714,-99.264508000000006 34.388084999999997,-99.271031915197597 34.387722560266795,-99.271781628057255 34.38768090955238,-99.273607516746409 34.387579471291865,-99.273957999999993 34.38756,-99.27534 34.386598999999997,-99.274925999999994 34.384903999999999,-99.271845396288441 34.382114976063626,-99.271280999999988 34.381603999999996,-99.258696 34.372633999999998,-99.254722 34.372405,-99.251407999999984 34.375079999999997,-99.248969000000002 34.375984000000003,-99.242944999999992 34.372667999999997,-99.239138083830497 34.366035888164781,-99.237232999999989 34.362716999999996,-99.237183660287812 34.362563767173611,-99.235448627455725 34.357175329079247,-99.234251999999984 34.353459,-99.233273999999994 34.344101000000002,-99.23260599999999 34.342379999999999,-99.229993999999991 34.340538000000002,-99.226152999999982 34.339725999999999,-99.221975 34.340020000000003,-99.219768999999999 34.341377,-99.217335000000006 34.341520000000003,-99.213134999999994 34.340369000000003,-99.210957832415772 34.336710386428308,-99.210716000000005 34.336303999999998,-99.20972399999998 34.324934999999996,-99.211600000000004 34.313969999999998,-99.213476 34.310671999999997,-99.213233598142949 34.308226764636807,-99.211647999999997 34.292231999999991,-99.211468055040228 34.291676209875057,-99.209990337717599 34.287112032604114,-99.209742000000006 34.286344999999997,-99.209514950796304 34.286049346749877,-99.207560999999998 34.283504999999998,-99.203681000000003 34.281925999999999,-99.200221999999997 34.281151999999999,-99.196259999999995 34.281463000000002,-99.196052113016066 34.281264951942028,-99.19571031750732 34.280939333014615,-99.195605 34.280839,-99.194569999999985 34.272424,-99.196926000000005 34.260928999999997,-99.197153 34.244298,-99.19555299999999 34.24006,-99.191138999999993 34.23234,-99.190145999999984 34.229660000000003,-99.190036000000006 34.227186000000003,-99.192076 34.222192,-99.192683000000002 34.218825000000002,-99.192104 34.216693999999997,-99.189758414718312 34.214539281858485,-99.189510999999996 34.214312,-99.188483307800709 34.214128939694163,-99.159015999999994 34.20888,-99.143985 34.214762999999998,-99.138220000000004 34.219158999999998,-99.130609000000007 34.219408,-99.128513999999996 34.218766000000002,-99.127549000000002 34.217986000000003,-99.126614000000004 34.21532899999999,-99.127525000000006 34.213771,-99.130089999999996 34.212192000000002,-99.131552999999997 34.209352000000003,-99.131884999999997 34.207382000000003,-99.129791999999995 34.204402999999999,-99.126566999999994 34.203004,-99.119203999999996 34.201746999999997,-99.108757999999995 34.203400999999999,-99.102001344898341 34.205813362825268,-99.092190999999985 34.209316,-99.08119261238302 34.211229594305671,-99.079534999999993 34.211517999999991,-99.075978000000006 34.211221000000002,-99.06646499999998 34.208404000000002,-99.060343999999986 34.204760999999991,-99.059158999999994 34.202928999999997,-99.058800000000005 34.201256,-99.058083999999994 34.200569000000002,-99.048792000000006 34.198208999999999,-99.043470999999997 34.198208,-99.040961999999993 34.200842000000002,-99.039004000000006 34.204667,-99.037458999999998 34.206454,-99.036272999999994 34.206912000000003,-99.013074999999986 34.203221999999997,-99.005790000000005 34.206646999999997,-99.002916243275195 34.208781598893673,-99.002945441244265 34.209102775846141,-99.003147197273819 34.211322087284138,-99.003432988816769 34.214465787333673,-99.000760999999997 34.217643000000002,-98.99085199999999 34.221632999999997,-98.987293999999991 34.221223000000002,-98.981363999999999 34.217582999999991,-98.978684999999984 34.210231,-98.976586999999995 34.206291,-98.974131999999983 34.203566000000002,-98.969003 34.201298999999999,-98.966301999999999 34.201323000000002,-98.962469999999996 34.204667999999998,-98.962085000000002 34.206386000000002,-98.962306999999981 34.211312,-98.960791 34.213029999999996,-98.958474999999993 34.213854999999995,-98.952512999999982 34.212649999999996,-98.950395999999984 34.21168,-98.940219999999997 34.203685999999998,-98.928145 34.192689,-98.927456000000006 34.191155000000002,-98.923128999999989 34.185977999999999,-98.920704 34.183435000000003,-98.918333000000004 34.181831000000003,-98.909348999999992 34.177498999999997,-98.892677318093561 34.17250349095427,-98.87651287834953 34.167659972141138,-98.872921999999988 34.166584,-98.871543000000003 34.165026999999995,-98.871211000000002 34.163012000000002,-98.872229000000004 34.160446,-98.874954999999986 34.157031000000003,-98.874871999999996 34.155656999999998,-98.873271000000003 34.153596,-98.868116 34.149635000000004,-98.862549999999999 34.149110999999998,-98.860124999999996 34.149912999999998,-98.858418999999998 34.152732,-98.8579 34.159627,-98.857321999999982 34.161093999999999,-98.855585000000005 34.161620999999997,-98.854264541670545 34.16164976192438,-98.831114999999983 34.162154,-98.812953999999991 34.158444000000003,-98.806809999999984 34.155901,-98.804411553093104 34.153928907629435,-98.792015000000006 34.143735999999997,-98.779288744496085 34.140194111533035,-98.773070373738221 34.138463455122455,-98.767587610783494 34.136937528280072,-98.765569999999983 34.136375999999998,-98.764702233233265 34.135780085954792,-98.763778343962841 34.135145631382905,-98.761796999999987 34.133785000000003,-98.760558000000003 34.132387999999999,-98.759485999999995 34.128881999999997,-98.759653 34.126911999999997,-98.757118934362524 34.12470437936247,-98.757036999999983 34.124633000000003,-98.753813984496389 34.124468645349353,-98.749290999999999 34.124237999999998,-98.741966000000005 34.125529999999998,-98.740191287161664 34.126850584722824,-98.739461000000006 34.127394000000002,-98.737231999999992 34.130991999999999,-98.736819999999994 34.133374000000003,-98.735471000000004 34.135207999999999,-98.734286999999995 34.135758000000003,-98.730242646678789 34.1359250861193,-98.717536999999993 34.136450000000004,-98.716104 34.135947000000002,-98.70640034274598 34.134745066348501,-98.696517999999998 34.133521000000002,-98.690291400890658 34.133167457450512,-98.690072 34.133155000000002,-98.688275858887323 34.134465065675442,-98.685589983550884 34.136424083851644,-98.676900633591032 34.14276190388366,-98.676457484208683 34.143085127260051,-98.670573548505118 34.147376740066704,-98.655654999999982 34.158257999999996,-98.650582999999997 34.163113000000003,-98.648072999999997 34.164440999999997,-98.643223000000006 34.164530999999997,-98.635729999999995 34.161617999999997,-98.634085211037615 34.161100728840964,-98.630950281399748 34.160114822001631,-98.621666000000005 34.157195000000002,-98.620507214282355 34.157012478916968,-98.617663812339856 34.156564612849806,-98.616732999999996 34.156418000000002,-98.615748434938936 34.156446107485429,-98.612133570686254 34.156549305078279,-98.611829 34.156557999999997,-98.610173632571488 34.157093658210222,-98.610154152422197 34.157099961766605,-98.608852999999996 34.157521000000003,-98.603977999999998 34.160249,-98.599789 34.160570999999997,-98.577135999999996 34.148961999999997,-98.572451 34.145091,-98.560191000000003 34.133201999999997,-98.558593000000002 34.128253999999998,-98.550916999999998 34.119334000000002,-98.536257000000006 34.107343,-98.530610999999993 34.099843,-98.528199999999998 34.094960999999998,-98.504182 34.072370999999997,-98.487068052145446 34.063003092954936,-98.486783271268621 34.06284720836274,-98.486328 34.062598,-98.483944186894661 34.06241565608709,-98.482821069121968 34.062329745958955,-98.482039999999998 34.062269999999998,-98.475065999999998 34.064269000000003,-98.449033999999983 34.073461999999999,-98.446378999999993 34.075429999999997,-98.445784000000003 34.076827000000002,-98.445590305319797 34.079232123390703,-98.445584999999994 34.079298,-98.445259148452962 34.079797720749731,-98.443724000000003 34.082152,-98.442807999999999 34.083143999999997,-98.442148160210323 34.083427517317581,-98.441104460406791 34.083875970068213,-98.440092000000007 34.084311,-98.439068026005657 34.084479541105658,-98.434822808733685 34.08517828308225,-98.432126999999994 34.085622,-98.43151641213494 34.085605425226575,-98.43092946822253 34.085589492282431,-98.428479999999993 34.085523000000002,-98.425229999999999 34.084798999999997,-98.422252999999998 34.083036999999997,-98.419995 34.082487999999998,-98.419161945519861 34.082694545588339,-98.41804644206556 34.082971120917755,-98.417812999999995 34.083029000000003,-98.414426000000006 34.085073999999999,-98.400747497198822 34.098985940284976,-98.399776999999986 34.099972999999999,-98.398505572550647 34.104180252359392,-98.39838899999998 34.104565999999998,-98.398160000000004 34.121395999999997,-98.400493999999995 34.121777999999999,-98.400966999999994 34.122236,-98.398441000000005 34.128456,-98.384381000000005 34.146317000000003,-98.381237999999996 34.149453999999999,-98.367493999999994 34.156190999999993,-98.366862955318183 34.156357896864854,-98.364023000000003 34.157108999999998,-98.34173552164826 34.153594120579292,-98.339428832109121 34.153230340726623,-98.331172907733077 34.151928328079421,-98.326986688030772 34.151268134169193,-98.325445000000002 34.151024999999997,-98.324621914768684 34.150650086831803,-98.323612587945547 34.150190341106089,-98.322580000000002 34.149720000000002,-98.320651676675396 34.148059023851737,-98.318749999999994 34.146420999999997,-98.315432139066189 34.144301906683673,-98.312023538956254 34.142124858924547,-98.300208999999995 34.134579000000002,-98.299345719035045 34.134365643147696,-98.29862570169189 34.134187693395319,-98.293901000000005 34.133020000000002,-98.280321 34.130749999999999,-98.258217018239392 34.129574098564007,-98.256467 34.129480999999998,-98.254901718278489 34.129708262798985,-98.247953999999993 34.13071699999999,-98.241012999999995 34.133102999999998,-98.225282000000007 34.127245000000002,-98.223600000000005 34.125093,-98.216463000000005 34.121820999999997,-98.203710999999998 34.117676000000003,-98.200074999999998 34.116782999999998,-98.191455000000005 34.115752999999998,-98.169120000000007 34.114170999999999,-98.157411999999994 34.120466999999998,-98.154353999999998 34.122734,-98.142753999999996 34.136358999999999,-98.136769999999999 34.144992000000002,-98.130815999999996 34.150531999999998,-98.123377000000005 34.154539999999997,-98.114506000000006 34.154727,-98.109461999999979 34.154110999999993,-98.107064999999992 34.152531000000003,-98.101937000000007 34.146829999999994,-98.092021474678845 34.132735952269094,-98.090223999999992 34.130181,-98.089754999999982 34.128211,-98.090659999999986 34.12198,-98.092421000000002 34.116917,-98.095117999999999 34.11119,-98.096177285423778 34.109455137055363,-98.096466125075011 34.108982084942461,-98.099327999999986 34.104295,-98.101378023037029 34.101786489578267,-98.103538246996251 34.099143131812454,-98.104308999999986 34.098199999999999,-98.119416999999999 34.084474,-98.121038999999996 34.081265999999999,-98.120207999999991 34.072127000000002,-98.11802999999999 34.067064999999999,-98.114587 34.06228,-98.100919767943822 34.050244792175462,-98.099096110217346 34.048638900093685,-98.096177018664264 34.044625138601674,-98.096541898037387 34.040976263553816,-98.09727167092565 34.038969381040054,-98.097731364247636 34.038509687718062,-98.098001443813914 34.038239608151798,-98.102015208841422 34.03732738850595,-98.104022094890695 34.036232725638037,-98.104083244997014 34.036133356900422,-98.105481647738245 34.033860956680144,-98.105481647738245 34.032444902147553,-98.105481647738245 34.031306746267951,-98.103616999999986 34.029206999999992,-98.088202999999993 34.005481000000003,-98.085260000000005 34.003259,-98.082839000000007 34.002412,-98.055197000000007 33.995840999999999,-98.050169864666017 33.994989457544634,-98.041117 33.993456000000002,-98.027671999999981 33.993357000000003,-98.019485000000003 33.993803999999997,-98.018481521828946 33.993960861546498,-98.005667000000003 33.995964,-97.987387999999996 33.999822999999999,-97.982805999999997 34.001949000000003,-97.978243000000006 34.005386999999999,-97.974597608872358 34.00657735007583,-97.974172999999993 34.006715999999997,-97.973934144800623 34.006593661859519,-97.971670000000003 34.005434,-97.968339999999998 34.000529999999998,-97.965354903485249 33.996992503283089,-97.963375425210828 33.994646717187933,-97.96302799999998 33.994235000000003,-97.962715090700769 33.994009516348072,-97.958325000000002 33.990845999999998,-97.955849999999998 33.990136,-97.952687999999995 33.990113999999998,-97.947571999999994 33.991053,-97.946472999999997 33.990731999999994,-97.945729999999998 33.989839000000003,-97.945949999999982 33.988395999999995,-97.952184120103468 33.971402949359636,-97.95307606469359 33.968971674482539,-97.95691699999999 33.958502000000003,-97.960351000000003 33.951928000000002,-97.965737000000004 33.947392,-97.972662 33.944527,-97.974172999999993 33.942832000000003,-97.974062000000004 33.940289,-97.972493999999998 33.937907000000003,-97.971175000000002 33.937128999999999,-97.965952999999999 33.936191,-97.963425 33.936236999999998,-97.955511 33.938186000000002,-97.954466999999994 33.937773999999997,-97.953395 33.936444999999999,-97.952679000000003 33.929482,-97.953694999999996 33.924373000000003,-97.957155 33.914453999999999,-97.960615000000004 33.910353999999998,-97.961188664141474 33.909913087050903,-97.963139679674441 33.908413554571595,-97.964461 33.907398,-97.964803587866868 33.907309441163022,-97.9693952279504 33.906122503898267,-97.969873000000007 33.905999,-97.970298415583201 33.906261144464871,-97.973142999999993 33.908014,-97.976962999999998 33.912548999999999,-97.978803999999997 33.912548,-97.979984999999999 33.911402000000002,-97.983551999999989 33.904001999999991,-97.984539999999996 33.900703,-97.984566 33.899076999999998,-97.984416725907181 33.89872544733722,-97.984025057628415 33.897803036597892,-97.98383498894799 33.897355409354304,-97.983768999999995 33.897199999999991,-97.977858999999995 33.889929000000002,-97.974177999999995 33.886642999999999,-97.967776999999998 33.882429999999999,-97.958438 33.879179,-97.951215000000005 33.878424000000003,-97.946463999999992 33.878883000000002,-97.942729999999997 33.879845000000003,-97.938801999999995 33.879891,-97.936743000000007 33.879204,-97.933120450042608 33.877388671138185,-97.918328311832767 33.869976048610916,-97.905467000000002 33.863530999999995,-97.896737999999985 33.857984999999999,-97.877386999999999 33.850236000000002,-97.871447000000003 33.849001,-97.865764999999982 33.849392999999999,-97.835425213046037 33.857383352392631,-97.834333 33.857671000000003,-97.833886750888084 33.857971936447115,-97.833218553718808 33.858422547723912,-97.806802470257153 33.876236728393856,-97.805423000000005 33.877167,-97.803472999999997 33.880189999999999,-97.801578000000006 33.885137999999998,-97.784656999999982 33.890631999999997,-97.78061799999999 33.895533,-97.779683000000006 33.899242999999998,-97.780339999999995 33.904833000000004,-97.783716999999996 33.910559999999997,-97.772672 33.914382000000003,-97.765445999999997 33.913531999999989,-97.763769999999994 33.914240999999997,-97.762914903547767 33.914953098088951,-97.761142192227695 33.916429357685161,-97.760223999999994 33.917194000000002,-97.759399000000002 33.91881999999999,-97.759833999999984 33.92521,-97.762660999999994 33.930846000000003,-97.762767999999994 33.934396,-97.752956999999995 33.937049000000002,-97.738478 33.937421,-97.736553999999998 33.936574999999998,-97.735919542935619 33.936533987763056,-97.734773489745407 33.936459905200778,-97.733722999999998 33.936391999999998,-97.732266999999993 33.936691000000003,-97.725289000000004 33.941045000000003,-97.720699142354164 33.94461309292862,-97.716772000000006 33.947665999999998,-97.714693355370301 33.94981590741822,-97.712051708440285 33.952548118711093,-97.709683999999996 33.954996999999999,-97.708350195107343 33.95701014009046,-97.70415899999999 33.963335999999998,-97.69792099999998 33.977331,-97.69310999999999 33.983699,-97.688023 33.986606999999999,-97.671772000000004 33.991370000000003,-97.661489000000003 33.990817999999997,-97.656210000000002 33.989488,-97.633778000000007 33.981256999999999,-97.609091000000006 33.968093000000003,-97.589597999999995 33.953553999999997,-97.588828000000007 33.951881999999998,-97.591270649549756 33.930345579062646,-97.591514000000004 33.928199999999997,-97.595084 33.922953999999997,-97.596154999999996 33.922105999999999,-97.59697899999999 33.920228000000002,-97.597115000000002 33.917867999999999,-97.596955673755872 33.917077348335745,-97.596288999999985 33.913769000000002,-97.593782375104212 33.910260437761373,-97.589253999999997 33.903922,-97.587440999999984 33.902479,-97.582744000000005 33.900784999999999,-97.578907598302408 33.900207204108142,-97.558269999999993 33.897098999999997,-97.555002000000002 33.897281999999997,-97.551541 33.897947000000002,-97.543245999999996 33.901288999999998,-97.533617322522971 33.906127586572126,-97.532723000000004 33.906576999999999,-97.525277000000003 33.911750999999995,-97.519170999999986 33.913637999999999,-97.504870374844515 33.918353570482601,-97.500960000000006 33.919643,-97.495648860558163 33.919307898609453,-97.494857999999979 33.919257999999999,-97.492061582842766 33.918500058129531,-97.487115891787269 33.917159576320657,-97.48650499999998 33.916993999999995,-97.484158940985964 33.915822631562747,-97.460375999999982 33.903948,-97.458068999999995 33.901634999999999,-97.451065249608234 33.891558064966901,-97.450953999999996 33.891398000000002,-97.451469000000003 33.87093,-97.452287410342421 33.86882620086994,-97.455665873415143 33.860141550511862,-97.457616999999999 33.855125999999998,-97.459565999999995 33.853316,-97.461485999999994 33.849559999999997,-97.462857 33.841771999999999,-97.459067999999988 33.834581,-97.453056999999987 33.828536,-97.444192999999999 33.823773000000003,-97.426492999999994 33.819398,-97.410387 33.818845000000003,-97.403235695189224 33.818961304668854,-97.384901622687948 33.819259479377855,-97.372940999999997 33.819454,-97.368744000000007 33.821471000000003,-97.365506999999994 33.823762999999992,-97.358512999999988 33.830018000000003,-97.348337999999984 33.843876000000002,-97.340900078515631 33.860236176367188,-97.339391593410966 33.867629740388111,-97.337846311291798 33.870430566802547,-97.336524008254173 33.872827243260353,-97.33293952159849 33.874440259476913,-97.329175814777756 33.874440259476913,-97.327562805507441 33.873902588562437,-97.326564370247013 33.872737756024428,-97.326487449786001 33.872648016149064,-97.324157539016809 33.866016724171544,-97.322365295688968 33.864941382342593,-97.318243141591921 33.865120602507631,-97.31654836796514 33.865642075591225,-97.315913230822716 33.865837504006514,-97.314412999999988 33.866988999999997,-97.310479256695203 33.873361218982971,-97.307489695517361 33.878203969770759,-97.302471419756401 33.880175433263638,-97.299245387323282 33.880175433263638,-97.295170524880618 33.877119286431629,-97.294227111562321 33.876411726442917,-97.286921603026471 33.869423850720118,-97.28598279642199 33.868525862052032,-97.284253187903744 33.867526845294535,-97.279107999999979 33.864555000000003,-97.275347999999994 33.863225,-97.271531999999993 33.862560000000002,-97.257971626565464 33.863220416657512,-97.256624999999985 33.863286000000002,-97.255635999999996 33.863697999999999,-97.254234999999994 33.865322999999997,-97.249208999999993 33.875100999999994,-97.246418496348156 33.898356425448434,-97.246179999999981 33.900343999999997,-97.245398270620598 33.902084836575838,-97.245057441245748 33.90284383100218,-97.244945999999999 33.903092,-97.242092 33.906277000000003,-97.241794392023195 33.906436890220043,-97.238755934556053 33.908069304909361,-97.226522000000003 33.914642,-97.210920999999999 33.916063999999999,-97.210512235443105 33.915911440173737,-97.206141000000002 33.914279999999998,-97.185457999999997 33.9007,-97.180845000000005 33.895203999999993,-97.179608999999999 33.892249999999997,-97.170773789281327 33.861660975771436,-97.166629 33.847310999999998,-97.166824000000005 33.840395,-97.171627 33.835335,-97.180939422624874 33.831550006302521,-97.181369999999987 33.831375,-97.186254000000005 33.830894,-97.193690000000004 33.831307000000002,-97.195830999999998 33.830803000000003,-97.197477000000006 33.829794999999997,-97.199700000000007 33.827322000000002,-97.203513999999998 33.821824999999997,-97.204994999999997 33.81886999999999,-97.205652 33.809823999999999,-97.205556910941183 33.806237292333442,-97.205445103342427 33.802019970418343,-97.205431000000004 33.801487999999999,-97.205114487332324 33.800890302957832,-97.203236000000004 33.797342999999998,-97.194785999999993 33.785344000000002,-97.190397000000004 33.781153000000003,-97.187792000000002 33.769702000000002,-97.181842999999986 33.755869999999994,-97.173532726140948 33.740090726508434,-97.172577000695028 33.738276026602087,-97.172191999999995 33.737544999999997,-97.168438536634085 33.734131892706188,-97.163454368039083 33.729599677915004,-97.163149000000004 33.729322000000003,-97.162807288850388 33.729115696596551,-97.155066000000005 33.724442000000003,-97.152609597300682 33.723370138808036,-97.150103410774264 33.72227655424301,-97.149393999999987 33.721966999999999,-97.137529999999998 33.718663999999997,-97.126102000000003 33.716940999999998,-97.121101999999993 33.717174,-97.119522126797463 33.717502594273334,-97.114921749218269 33.718459416457094,-97.113264999999998 33.718803999999999,-97.112398501853761 33.719102240295193,-97.110065570752283 33.719905212653977,-97.108936 33.720294000000003,-97.108097026518521 33.720734123472262,-97.106518853348803 33.721562029324609,-97.104524999999995 33.722608,-97.097154000000003 33.727809,-97.094085000000007 33.730992,-97.092697209381924 33.732891057656268,-97.092130098039192 33.733667094850453,-97.091071999999983 33.735115,-97.089936943375889 33.737167271747261,-97.087911027802278 33.740830286618703,-97.086195000000004 33.743932999999998,-97.084820762198987 33.752363244406453,-97.084693 33.753146999999998,-97.08461299999999 33.759993,-97.085217999999998 33.765512,-97.087362453285593 33.77250304797397,-97.087851999999998 33.774099,-97.093101265647221 33.787040841586602,-97.093917000000005 33.789051999999998,-97.094675961767678 33.791977368936216,-97.095047178759813 33.793408200769441,-97.095235999999986 33.794136000000002,-97.095080023591905 33.79561056406444,-97.094877682854474 33.797523445530629,-97.094770999999994 33.798532000000002,-97.093897185962049 33.800360798466031,-97.09266432242093 33.802941048788071,-97.092111999999986 33.804096999999999,-97.087998999999982 33.808746999999997,-97.078589999999991 33.812755999999993,-97.067977124183287 33.814475679891196,-97.064604445188394 33.815487484896828,-97.062631847535258 33.816079264957295,-97.058622892638837 33.818751903281317,-97.055415722506638 33.823829921794093,-97.055412197115942 33.8238546000754,-97.055148464371385 33.82570077017467,-97.055682980641905 33.830778788687446,-97.057821087157734 33.834520485448607,-97.058282726048489 33.836367011192308,-97.058622892638837 33.837727655580807,-97.057553829022481 33.840133030590344,-97.055415722506638 33.841202089027483,-97.052208542016004 33.841736615656437,-97.048734113748537 33.840934820533782,-97.045339940802535 33.839496399893775,-97.041245000000004 33.837761,-97.038858000000005 33.838264000000002,-97.023899 33.844213000000003,-97.017857000000006 33.850141999999998,-97.010381749407998 33.858564100233409,-96.999664164722446 33.87063922351804,-96.985567000000003 33.886521999999999,-96.983970999999997 33.892082999999992,-96.984938999999997 33.904865999999991,-96.985275905099471 33.906070041818985,-96.988744999999994 33.918467999999997,-96.993996999999979 33.928978999999998,-96.995022999999989 33.932034999999999,-96.995140238436761 33.933014648420269,-96.996024643022366 33.940404763634284,-96.996183000000002 33.941727999999998,-96.996167702736543 33.941832622020257,-96.995421139189489 33.946938567064805,-96.995367999999999 33.947302,-96.994947208134789 33.948043840473474,-96.994456760007211 33.948908482357652,-96.994287999999983 33.949205999999997,-96.990835000000004 33.952700999999998,-96.988126301178397 33.954514162310069,-96.987892000000002 33.954670999999998,-96.982723774786024 33.956016867344054,-96.981537499896135 33.956325787441237,-96.981336999999982 33.956377999999994,-96.979415000000003 33.956178,-96.979347000000004 33.955129999999997,-96.980675999999988 33.951813999999999,-96.981031000000002 33.949159999999999,-96.97981799999998 33.941588000000003,-96.976955000000004 33.937452999999998,-96.973806999999979 33.935696999999998,-96.97254199999999 33.935794999999999,-96.952313000000004 33.944581999999997,-96.944610999999995 33.949216999999997,-96.933309804512817 33.955134148312766,-96.932252000000005 33.955688000000002,-96.924267999999998 33.959159,-96.922113999999979 33.959578999999998,-96.921429967464036 33.959451233053208,-96.919039990098355 33.959004821377064,-96.918617999999995 33.958925999999998,-96.91833921313939 33.958790334953079,-96.917063225391544 33.958169405626251,-96.916299999999993 33.957797999999997,-96.91417790611122 33.956157267456653,-96.911732563120111 33.95426660943896,-96.911336000000006 33.953960000000002,-96.910857206749995 33.953482904168467,-96.908421363636307 33.951055696608989,-96.907387 33.950024999999997,-96.905252999999988 33.947218999999997,-96.902433999999985 33.942017999999997,-96.901946611333699 33.940667581536225,-96.899441999999993 33.933728000000002,-96.896468999999996 33.91331799999999,-96.897193999999999 33.902954,-96.895728000000005 33.896414,-96.887761838797758 33.878628251663962,-96.883009999999999 33.868018999999997,-96.875280999999987 33.860505000000003,-96.87198767019855 33.857765462058182,-96.866438000000002 33.853149000000002,-96.85608999999998 33.84749,-96.850593000000003 33.847211,-96.845895999999996 33.848974999999996,-96.841592000000006 33.852893999999999,-96.840818999999996 33.863644999999998,-96.839777999999995 33.868395999999997,-96.837412999999984 33.871349000000002,-96.833926235310372 33.873661568818115,-96.832156999999995 33.874834999999997,-96.812777999999994 33.872646000000003,-96.794275999999996 33.868886000000003,-96.786859371055769 33.865207582975678,-96.783484999999999 33.863533999999994,-96.780568999999986 33.860098,-96.779588000000004 33.857939000000002,-96.777202000000003 33.848162000000002,-96.776765999999995 33.841976000000003,-96.770675999999995 33.829621000000003,-96.769378000000003 33.827477000000002,-96.766316855179326 33.825510582121247,-96.766234999999995 33.825457999999998,-96.761588000000003 33.824406000000003,-96.754041 33.824657999999999,-96.746233969152598 33.825673509073113,-96.746037999999984 33.825699,-96.741799282455162 33.826447231494264,-96.71318112067361 33.831498997677379,-96.712421999999989 33.831632999999997,-96.708134 33.833060000000003,-96.704457000000005 33.835020999999998,-96.700318655907978 33.838434731313264,-96.699573999999998 33.839049000000003,-96.695480719177567 33.844085960723298,-96.693127324791789 33.84698191524042,-96.690708 33.849958999999998,-96.688190999999989 33.854613,-96.687524326814838 33.85620885855986,-96.684726999999995 33.862904999999998,-96.682762564556768 33.871464102957781,-96.682209 33.873876000000003,-96.682102999999998 33.876645000000003,-96.683464 33.884217,-96.681051007513375 33.895708672998403,-96.680947000000003 33.89620399999999,-96.675306000000006 33.909114000000002,-96.673449000000005 33.912278,-96.670618000000005 33.914913999999996,-96.667186999999998 33.916939999999997,-96.665308436653305 33.917161206414967,-96.66440999999999 33.917267000000002,-96.659896000000003 33.916665999999999,-96.65150600931733 33.910998546998165,-96.644049999999979 33.905962000000002,-96.630116999999998 33.895422000000003,-96.628293999999997 33.894477000000002,-96.616355751891987 33.894625565889051,-96.614680358047494 33.89464641537834,-96.611821556077771 33.89468199182577,-96.607562 33.894734999999997,-96.592948000000007 33.895615999999997,-96.588319642127203 33.894847991673281,-96.587934000000004 33.894784,-96.58760387584924 33.894318075382706,-96.585452000000004 33.891280999999999,-96.585359999999994 33.888947999999999,-96.587494000000007 33.884250999999999,-96.590112000000005 33.880665,-96.597347999999982 33.875100999999994,-96.601685999999987 33.872822999999997,-96.611969999999999 33.869016000000002,-96.625399000000002 33.856541999999997,-96.628968999999998 33.852406999999999,-96.629746999999995 33.850866000000003,-96.630021999999983 33.847541,-96.629842405402627 33.847037300944812,-96.629577623992816 33.846294683138318,-96.629289999999997 33.845488000000003,-96.627812273090953 33.844523322531259,-96.626623854929747 33.84374750920842,-96.623154999999997 33.84148299999999,-96.622548607895212 33.841284829387497,-96.620258613641042 33.840536452948584,-96.605267599881515 33.835637348301233,-96.601258 33.834327000000002,-96.599141379811712 33.83346048638235,-96.597030984690946 33.832596521217091,-96.595164098773168 33.831832245189069,-96.592925999999991 33.830916000000002,-96.587067000000005 33.828009000000002,-96.573054340771023 33.81917200025552,-96.572936999999996 33.819097999999997,-96.568822993124115 33.818734252140963,-96.566549213959448 33.818533211567136,-96.566298000000003 33.818511,-96.551222999999993 33.81912899999999,-96.541502252916899 33.82118138128849,-96.537683599711926 33.821987629236112,-96.532865 33.823005000000002,-96.532141353898353 33.822830017549641,-96.529233999999988 33.822127000000002,-96.526655000000005 33.820891000000003,-96.526331240434345 33.820568979830284,-96.523863000000006 33.818114,-96.519910999999993 33.811346999999998,-96.517492044660074 33.805400310572544,-96.516583999999995 33.803167999999999,-96.515958999999995 33.798933999999996,-96.515952403498957 33.797370629253059,-96.5159410675722 33.794684014612457,-96.515912 33.787795000000003,-96.51191399999999 33.781477999999993,-96.502285999999998 33.773459999999993,-96.500268000000005 33.772582999999997,-96.486059999999995 33.773009999999999,-96.459153999999998 33.775232000000003,-96.456254 33.776035,-96.450509999999994 33.780588000000002,-96.448044999999993 33.781030999999999,-96.436454999999995 33.780050000000003,-96.430214000000007 33.778654000000003,-96.423664429058576 33.776393528613141,-96.422642999999994 33.776040999999999,-96.422322840041474 33.775682043625913,-96.420980388055867 33.774176915691271,-96.419961 33.773034000000003,-96.419583102042878 33.772404537625398,-96.417562000000004 33.769038000000002,-96.416145999999998 33.76609899999999,-96.413408000000004 33.757714,-96.411885201063754 33.755703128434462,-96.408468999999997 33.751191999999996,-96.403507000000005 33.746288999999997,-96.384116000000006 33.730141000000003,-96.383299027856694 33.729391180874664,-96.380090129695702 33.726446045924753,-96.379450023740389 33.7258585550397,-96.370956555983966 33.718063228581727,-96.370761536889887 33.717884239557762,-96.369590000000002 33.716808999999998,-96.369084597701828 33.715741445126696,-96.366945 33.711221999999999,-96.363253 33.701050000000002,-96.363143372320295 33.69469995601051,-96.363135 33.694215,-96.362964209763192 33.693778090504111,-96.362198000000006 33.691817999999998,-96.356236230636398 33.68737146600408,-96.355945999999989 33.687154999999997,-96.355455421824701 33.68710517164083,-96.352724507664888 33.686827790830883,-96.348305999999994 33.686378999999995,-96.346643697131185 33.686554630652331,-96.344174978865311 33.686815463144171,-96.342664999999997 33.686974999999997,-96.337175125435976 33.689043696356201,-96.321102999999994 33.695099999999996,-96.318759999999997 33.696753,-96.318590686098233 33.696960051986665,-96.318010443675675 33.697669623646739,-96.316924999999998 33.698996999999999,-96.314798583555884 33.702507526903553,-96.309963999999994 33.710489000000003,-96.308342766341951 33.715746247280322,-96.307034999999985 33.719987000000003,-96.307001890234133 33.720499786556005,-96.306595999999999 33.726785999999997,-96.307389 33.735005,-96.3061 33.741002000000002,-96.30525491425243 33.743702118680943,-96.304087485467235 33.747432149959735,-96.303009000000003 33.750878,-96.301705999999982 33.753756000000003,-96.294866999999996 33.764771000000003,-96.292482000000007 33.766418999999999,-96.277269000000004 33.769734999999997,-96.269895999999989 33.768405,-96.251497151236435 33.760405611313516,-96.248231999999987 33.758986,-96.23960043273749 33.754058875473291,-96.229595766085112 33.748347949873668,-96.229022999999998 33.748021,-96.220521000000005 33.747390000000003,-96.1999 33.752116999999998,-96.196336040977513 33.753254070097242,-96.186553999999987 33.756374999999998,-96.178059000000005 33.760517999999998,-96.174632999999986 33.763699000000003,-96.169932696734321 33.769534234627457,-96.169452000000007 33.770130999999999,-96.167888847884015 33.774482610028038,-96.162756999999985 33.788769000000002,-96.162122572851359 33.796140263149638,-96.162213638666273 33.796174412747511,-96.166837334419654 33.79790829445497,-96.170373408451042 33.799381659586444,-96.173025461119408 33.800560352833699,-96.175150000000002 33.801951000000003,-96.17734 33.805117000000003,-96.17895107878303 33.810509748931381,-96.178963999999993 33.810552999999999,-96.176910000000007 33.813934000000003,-96.175889999999981 33.814627000000002,-96.164217431250009 33.817001137011715,-96.150765000000007 33.816986999999997,-96.148792 33.819197000000003,-96.151629999999983 33.831945999999995,-96.150147000000004 33.835856,-96.148457006953691 33.837436961236868,-96.14806999999999 33.83779899999999,-96.147446683377808 33.837891494337825,-96.138904999999994 33.839159000000002,-96.128108733462625 33.839703753325978,-96.122951 33.839963999999995,-96.118168999999995 33.837883999999995,-96.109992999999989 33.832396000000003,-96.104074999999995 33.830730000000003,-96.099360000000004 33.830469999999998,-96.097448 33.832724999999996,-96.097637999999989 33.837935000000002,-96.099152999999987 33.842409000000004,-96.100785000000002 33.844230000000003,-96.101348999999999 33.845720999999998,-96.101472999999999 33.846708999999997,-96.100094999999996 33.847971,-96.084626 33.846656000000003,-96.063924 33.841522999999995,-96.055357999999984 33.838262,-96.049381559404907 33.836618570443349,-96.048833999999999 33.836468000000004,-96.044074587870469 33.838420736557822,-96.037191000000007 33.841245,-96.031783693249977 33.849934429642978,-96.031271075997878 33.850758194920559,-96.029462717056688 33.852402158173604,-96.025188419607474 33.852073366797306,-96.022229284477689 33.850922593794486,-96.021900493101384 33.849114234853282,-96.022507000000004 33.846130000000002,-96.022064891975305 33.843195970965255,-96.021407302851145 33.841880802274289,-96.019950829321616 33.840821548098475,-96.019598947095744 33.84056563358331,-96.005296 33.845505000000003,-96.000534603789163 33.849305889934179,-95.998351 33.851049000000003,-95.997709 33.852181999999992,-95.997673906338932 33.852568581878202,-95.997405462294296 33.855525685805766,-95.9977342536706 33.860950759443568,-95.997376655326022 33.862202357114477,-95.996747879541701 33.864403078452035,-95.993624351909531 33.866211440579008,-95.991487204777812 33.866869023331596,-95.988856861024331 33.866869023331596,-95.984753921632091 33.864671017651808,-95.984253769013037 33.864403078452035,-95.980965842506947 33.859306796190523,-95.9735403792467 33.856832331211713,-95.972155999999998 33.856371000000003,-95.971744371228908 33.856383941655046,-95.951609000000005 33.857016999999999,-95.945502988542614 33.859346036998218,-95.944283999999982 33.859811,-95.943359355023844 33.860365112733476,-95.941777921153459 33.861312819872232,-95.941266999999996 33.861618999999997,-95.936631000000006 33.870615,-95.93550004724635 33.874497995518659,-95.935325000000006 33.875098999999999,-95.935308000000006 33.878723999999998,-95.935637 33.880370999999997,-95.936817000000005 33.882385999999997,-95.937201999999999 33.884652000000003,-95.936131999999986 33.886825999999999,-95.935198 33.887100999999994,-95.922712000000004 33.883758,-95.915960999999996 33.881148000000003,-95.905343000000002 33.875629000000004,-95.893305999999995 33.868161,-95.887490999999997 33.863855999999998,-95.881292000000002 33.860627,-95.859469000000004 33.852455999999997,-95.849863999999997 33.844951999999999,-95.843772999999999 33.838949,-95.841300369514457 33.837329726167006,-95.840012000000002 33.836486,-95.839442445999168 33.836292954052603,-95.838335071878717 33.835917618112738,-95.837515999999994 33.835639999999998,-95.831947999999997 33.835160999999999,-95.828244999999995 33.836053999999997,-95.827967044704152 33.836191602640042,-95.826538854622555 33.836898632614485,-95.822787000000005 33.838755999999989,-95.821905415666805 33.839551758599306,-95.821112514659319 33.840267467546653,-95.820784000000003 33.840564,-95.819357999999994 33.842784999999999,-95.818975999999992 33.844456,-95.819524999999999 33.848438999999999,-95.820676999999989 33.850750999999995,-95.821665999999979 33.855443,-95.821665999999979 33.856633000000002,-95.82138191533943 33.857119395418813,-95.820824189768416 33.858074304994595,-95.820595999999995 33.858464999999995,-95.820256321913618 33.858527429344676,-95.805149 33.861303999999997,-95.800842000000003 33.861212000000002,-95.790314669347865 33.857829825250164,-95.789867 33.857685999999994,-95.789358977006231 33.85733891951336,-95.788304168820886 33.85661827626933,-95.787891000000002 33.856335999999999,-95.776255000000006 33.845145000000002,-95.773281999999995 33.843834,-95.772067000000007 33.843817,-95.763621999999984 33.847954,-95.758311274366889 33.849968021173019,-95.758015999999998 33.850079999999998,-95.757640875431136 33.850475976069447,-95.754310000000004 33.853991999999998,-95.753512999999984 33.856464000000003,-95.753688987366843 33.856976705401074,-95.75729390188404 33.867478931648478,-95.757457999999986 33.86795699999999,-95.758009454152003 33.868443703186436,-95.760805000000005 33.870911,-95.762558999999996 33.874366999999992,-95.76194240701966 33.883030946465368,-95.761915999999999 33.883401999999997,-95.758343999999994 33.890610999999993,-95.756366999999997 33.892625000000002,-95.747335000000007 33.895755999999999,-95.737508000000005 33.895966999999999,-95.729445045960333 33.893952819075864,-95.728448999999998 33.893704,-95.723226300470785 33.890698381785455,-95.717160861060378 33.887207774089354,-95.713910181462765 33.885337036216413,-95.713539999999981 33.885123999999998,-95.710877999999994 33.884551999999999,-95.696961999999999 33.885218000000002,-95.684831000000003 33.890231999999997,-95.676924999999983 33.897236999999997,-95.669978 33.905844000000002,-95.665338000000006 33.908132000000002,-95.659818 33.909092,-95.647272999999998 33.905976000000003,-95.636977999999999 33.906613,-95.609439392746168 33.923623282239362,-95.603656999999998 33.927194999999998,-95.599677999999983 33.934246999999999,-95.585944999999981 33.93448,-95.570311428427317 33.932892416047835,-95.564667905744443 33.932319318211334,-95.563423999999998 33.932192999999998,-95.562724847986416 33.932007581530534,-95.561592737930383 33.931707340510293,-95.561007000000004 33.931551999999996,-95.560415995740641 33.931042615914556,-95.559931936825777 33.930625407571753,-95.559414000000004 33.930179000000003,-95.558286100391328 33.928753215740784,-95.557777967458279 33.928110882033096,-95.556914999999989 33.927019999999999,-95.551147999999984 33.914566,-95.549144999999996 33.90795,-95.549475 33.901310999999993,-95.552330999999981 33.894419999999997,-95.55209457427955 33.888655441173519,-95.552085000000005 33.888421999999998,-95.551943532854764 33.888208369560985,-95.548485831718622 33.882986873004867,-95.548324999999991 33.882744000000002,-95.547838962671932 33.882363312195096,-95.545708294665019 33.880694470565629,-95.545197000000002 33.880293999999999,-95.54352178779898 33.880173169084813,-95.541265054919734 33.880010393826282,-95.539789999999996 33.879904000000003,-95.537358049249164 33.88037416967029,-95.534038375697051 33.881015963020303,-95.533282999999997 33.881161999999996,-95.531798241123994 33.881968630089013,-95.525321999999989 33.885486999999998,-95.521418133191162 33.888379988113826,-95.520137966641357 33.88932866459119,-95.515301759339067 33.891142240377064,-95.510062536063273 33.890134704348199,-95.506233872599807 33.886306036979761,-95.506495 33.878588999999998,-95.506084999999999 33.87639,-95.502407477038815 33.874787101867227,-95.502303999999995 33.874741999999998,-95.492028000000005 33.874822000000002,-95.480004545492946 33.87882505156746,-95.478574999999992 33.879300999999998,-95.477829321179073 33.879890044047791,-95.469962325642697 33.886104525088022,-95.467351237093553 33.886417854985297,-95.464924614258621 33.886709049048328,-95.462909526581015 33.885903021006229,-95.461498966768687 33.883686425341857,-95.46277824472287 33.878821065729895,-95.464211000000006 33.873372000000003,-95.463346 33.872312999999998,-95.461127233926518 33.871832054399569,-95.447370000000006 33.868850000000002,-95.418546279096461 33.866998581211959,-95.411345060268999 33.866536029139695,-95.407794999999979 33.866307999999989,-95.406882133018115 33.866362247208706,-95.404325916920058 33.866514150597617,-95.375232999999994 33.868243,-95.352338000000003 33.867789000000002,-95.339561303488324 33.868836967540759,-95.339121999999989 33.868873,-95.339014688391742 33.869073090388603,-95.33835013321854 33.870312202400832,-95.334854000000007 33.876830999999996,-95.334836460323601 33.877305631062114,-95.334523000000004 33.885787999999998,-95.333451999999994 33.886285999999998,-95.325571999999994 33.885703999999997,-95.310579050797429 33.880679668661742,-95.294789354523203 33.875388337067108,-95.287864786488143 33.87494634339312,-95.28344485260331 33.877745636185885,-95.281676877907344 33.882902226669891,-95.281529544303439 33.887616824907447,-95.281317419351268 33.889260797911334,-95.280350898312903 33.896751357029835,-95.279761569607459 33.899108654721076,-95.277846267017765 33.900876629417048,-95.275341635722626 33.901760616765031,-95.272542342929853 33.902055281117747,-95.267212735027385 33.900338966530455,-95.263849803053915 33.899255988324974,-95.261050510261143 33.899992642069066,-95.255746586173245 33.902939265610648,-95.253094626984378 33.90544389690578,-95.250884657186859 33.913105118684925,-95.250737329293145 33.917083057468233,-95.251326652288412 33.924154956252103,-95.253020000000006 33.927236999999998,-95.253623000000005 33.92971,-95.252905999999982 33.933647999999998,-95.250453815364224 33.936614470603772,-95.23166760862577 33.959340626388752,-95.231194814374604 33.959912577712174,-95.230491 33.960763999999998,-95.226393000000002 33.961953999999999,-95.219358 33.961567000000002,-95.184075000000007 33.950353,-95.174181557651636 33.944707625858101,-95.173657196254922 33.944408415920272,-95.168745999999999 33.941605999999993,-95.166685999999984 33.939728000000002,-95.161108999999982 33.937598,-95.149462 33.936335999999997,-95.131725657216535 33.936903570678005,-95.131056 33.936924999999995,-95.130760550144942 33.936820411866918,-95.124700000000004 33.934674999999991,-95.121184 33.931306999999997,-95.121974867397924 33.925542192115131,-95.122499622273722 33.921717137430115,-95.122365486317321 33.918632002634986,-95.119951031304154 33.915815139752631,-95.110963896232136 33.912998276870283,-95.103318123323447 33.913668959251616,-95.10214780889666 33.912991409673538,-95.100769532353866 33.912193461131935,-95.098489218495843 33.909913139475762,-95.095001673232161 33.904815960136006,-95.095247706914634 33.899772255341666,-95.095269945144935 33.899316370327696,-95.09392858558104 33.895962961020395,-95.090441035118587 33.893280234094433,-95.084002493615529 33.893280234094433,-95.079139333602001 33.898143394107954,-95.078905311676394 33.898377416033576,-95.074957661870556 33.900039583313315,-95.073630040977179 33.900598581227868,-95.071259538767663 33.901596686785098,-95.065491679645973 33.899584642240477,-95.06106518008815 33.895292278639054,-95.058834000000004 33.886812999999997,-95.049025 33.864089999999997,-95.046567999999994 33.862564999999996,-95.038661112238941 33.860609605793528,-95.037206999999995 33.86025,-95.033518790033554 33.860141698175291,-95.03143098776043 33.86008039125462,-95.030255193062573 33.860045864827867,-95.022324999999995 33.859813000000003,-95.016999191469623 33.861237606415294,-95.016422000000006 33.861392000000002,-95.008375999999984 33.866088999999995,-95.000223000000005 33.862504999999999,-94.995524000000003 33.857438000000002,-94.992810330111539 33.852698351540766,-94.992671 33.852454999999999,-94.992523097811741 33.852403566519136,-94.990494037024106 33.851697953840834,-94.988486999999992 33.850999999999999,-94.98739725328582 33.851074415574232,-94.983303000000006 33.851354,-94.981650000000002 33.852283999999997,-94.976208 33.859846999999995,-94.973410999999999 33.861730999999999,-94.971435 33.862122999999997,-94.968895000000003 33.860916000000003,-94.965888000000007 33.848421999999999,-94.964400999999995 33.837020999999993,-94.957676000000006 33.835003999999998,-94.949533421399437 33.825707838785306,-94.949112883549958 33.821754768331147,-94.948729542346143 33.818151347643564,-94.948715939727023 33.818023482549535,-94.944301522854289 33.81213759866646,-94.939560116480934 33.810502632153295,-94.935799688114457 33.810339132650462,-94.932366255585293 33.810993121156741,-94.928442330884351 33.812628087669893,-94.92451840618341 33.812791587172725,-94.924196338046286 33.812670811231236,-94.921902464831703 33.811810605997493,-94.919450010309433 33.810175636315982,-94.917815040627914 33.808704169305649,-94.917091634856007 33.805689966907131,-94.916834062621035 33.804616745101868,-94.916997555787162 33.801510305241678,-94.91961350347556 33.794152948011565,-94.920034399525505 33.790224602097751,-94.920103995647338 33.789575041141042,-94.920095560257593 33.789518805381888,-94.91961350347556 33.786305103362189,-94.913003475392784 33.779908559849432,-94.912450337640749 33.77937328682863,-94.911427000000003 33.778382999999998,-94.906244999999998 33.778191999999997,-94.902276 33.776288999999998,-94.89497736748055 33.771540270803243,-94.89019868072495 33.768431100796676,-94.888367999999986 33.76724,-94.887910246679809 33.766674529711281,-94.886225692565191 33.764593571999796,-94.885411379435553 33.764756432942491,-94.881447983999394 33.765549103837166,-94.879218389137634 33.764912090842074,-94.876033253179955 33.760771407616105,-94.875653319149677 33.757021753168047,-94.875534806260347 33.755852122792213,-94.875497398046861 33.755482932714841,-94.877080000000007 33.75222,-94.874668 33.749164,-94.870299604394191 33.746484207390097,-94.869443369718425 33.745958950164457,-94.869299999999996 33.745871,-94.8570941233355 33.742035460072337,-94.849295999999981 33.739584999999991,-94.841633779899112 33.739430990835892,-94.830804318260235 33.740068022348083,-94.828875382311935 33.74092532536806,-94.827937698058648 33.741342073027738,-94.826026615866809 33.743890180559411,-94.824752565187154 33.749304914465036,-94.82447272313469 33.749460382205008,-94.821885938813196 33.750897483986968,-94.817426749089677 33.752171534666616,-94.815635414888177 33.752066164468857,-94.813744972719192 33.751954964523563,-94.81275807295215 33.751896912919612,-94.812012015184067 33.751853028169073,-94.80914539498248 33.749304914465036,-94.798634446013509 33.744527205899239,-94.789716054221742 33.746119775421171,-94.777638928565466 33.753471071068567,-94.775064434371529 33.755038154868203,-94.770923763490302 33.754401129528375,-94.768057130944001 33.753445597691005,-94.766464573766783 33.750897483986968,-94.766146067269247 33.748030863785381,-94.766818924318841 33.746124416643802,-94.768057130944001 33.742616129879757,-94.767738636791165 33.737519908644046,-94.767244154304578 33.736926531576607,-94.76296091588064 33.731786662068515,-94.759138751496963 33.729557067206756,-94.758159820145337 33.729557067206756,-94.753087004596253 33.729557067206756,-94.750011775433265 33.728811557489699,-94.742576055627282 33.727008959675082,-94.742176780415733 33.726449974997927,-94.739390916583417 33.72254976995157,-94.737479828219207 33.716179498036198,-94.737788227808608 33.71500758055268,-94.73907239774114 33.71012773879076,-94.73746132453816 33.705563045258067,-94.73716130937693 33.704713004885136,-94.732383613155861 33.700253815161624,-94.728242929929891 33.699616789821789,-94.725694828570582 33.702483410023376,-94.724525908047042 33.704821269192259,-94.724102271393392 33.705668549067234,-94.721872664186904 33.707261118589173,-94.719006043985303 33.708216656598914,-94.714865360759347 33.707261118589173,-94.711043208720398 33.705668549067234,-94.709450639198465 33.699616789821789,-94.710289486124168 33.697309952648205,-94.710724689878106 33.696113138108018,-94.710724689878106 33.691653948384499,-94.710106194192988 33.688252279047049,-94.71008765219355 33.688150299756906,-94.707858069676533 33.686876245991066,-94.691547961569825 33.685092048879412,-94.684792000000002 33.684353000000002,-94.659166999999997 33.692138,-94.652265035786613 33.690979104454883,-94.649628372726468 33.688049476940073,-94.649099284135872 33.686462209886628,-94.648456523423718 33.684533926193204,-94.64818493525776 33.682632803768527,-94.647928021538007 33.680834402751707,-94.647870600191638 33.680432452214262,-94.648456523423718 33.673401362074948,-94.647827859209684 33.672301196274027,-94.646112824818204 33.669299876741562,-94.642890235687361 33.668420997570671,-94.635273213800133 33.669885811328072,-94.631328876730365 33.67284406472757,-94.630585813750528 33.673401362074948,-94.627656194751552 33.677795791992715,-94.62121101648988 33.681018386800773,-94.616816575217669 33.679553573043371,-94.614284398758912 33.677302743466427,-94.611543254774574 33.674866164477912,-94.611424034353576 33.674789522931938,-94.607441775118403 33.672229504256364,-94.60304734520065 33.671350625085473,-94.596895128555005 33.671350625085473,-94.593672545101384 33.673987285307021,-94.590449961647764 33.677502836053897,-94.590316660066918 33.67755410593854,-94.586641449284855 33.678967649811298,-94.579620000000006 33.677622999999997,-94.576973687569549 33.673401362074948,-94.5728722135906 33.669885811328072,-94.571305222138406 33.668005422800071,-94.569942586075811 33.666370260581196,-94.569356662843745 33.663440621711956,-94.571445361022185 33.660423619728157,-94.571993323065286 33.659632120703485,-94.572286279004103 33.656995454804722,-94.570821465246695 33.654944723492456,-94.568770728257221 33.65465176187643,-94.564669254278257 33.655823608340576,-94.563858010166513 33.65591721375597,-94.557052229552454 33.656702498865904,-94.552071876402621 33.653479904057846,-94.551192985877293 33.650257320604226,-94.551311999999982 33.644569999999995,-94.553536678805585 33.642054372646328,-94.552657799634687 33.638245860283412,-94.549142248887819 33.635902161677912,-94.543868917090279 33.635902161677912,-94.538888563940446 33.637952898667386,-94.538195599937964 33.637916426989378,-94.537583502619341 33.637884211439605,-94.533322276204103 33.637659937051346,-94.529220802225154 33.63443734792051,-94.528408204203203 33.630103504051213,-94.528341911699826 33.629749945032266,-94.52980672545722 33.627406252103981,-94.528927834931892 33.621839964367631,-94.526291174710352 33.619203298468861,-94.521363727720257 33.61686924674752,-94.520724886974008 33.61656663824732,-94.504615 33.620682000000002,-94.493418698303032 33.624467326832118,-94.492501061148843 33.624777568252533,-94.491502999999994 33.625115,-94.491295462081894 33.62531395337146,-94.487514000000004 33.628939000000003,-94.485874999999993 33.637867,-94.481313 33.638818999999998,-94.476415000000003 33.638947000000002,-94.466075000000004 33.636262000000002,-94.464185999999998 33.637655000000002,-94.461453000000006 33.643615999999994,-94.459197999999986 33.645145999999997,-94.454819999999998 33.644902999999999,-94.448637000000005 33.642766000000002,-94.446871000000002 33.640177999999999,-94.447513999999998 33.636254999999991,-94.448451000000006 33.634497000000003,-94.458816999999982 33.632444,-94.462736000000007 33.63091,-94.461129 33.625414999999997,-94.460285999999996 33.624420999999998,-94.45525499999998 33.622917,-94.452710999999994 33.622621000000002,-94.452325000000002 33.618817,-94.452961000000002 33.616985999999997,-94.454768999999999 33.615155999999992,-94.462335999999993 33.610567000000003,-94.469451000000007 33.60731599999999,-94.472166 33.604199,-94.471974000000003 33.602665000000002,-94.471151999999989 33.601588,-94.468086 33.599435999999997,-94.461794602929331 33.598691554192769,-94.458900358388505 33.598349085232492,-94.458231999999995 33.598269999999999,-94.454858239556387 33.593453869357283,-94.453995999999989 33.592222999999997,-94.453435550445548 33.592019500625121,-94.452150252013013 33.591552808439438,-94.451622 33.591360999999999,-94.449112 33.590893999999992,-94.442363999999998 33.591242999999999,-94.441536999999997 33.591501999999991,-94.439518000000007 33.594154000000003,-94.430358101189597 33.59122600196271,-94.430038999999994 33.591124,-94.429672337173542 33.590855074196774,-94.427920122643982 33.589569927010331,-94.427577999999983 33.589319000000003,-94.425982000000005 33.586424999999998,-94.413155000000003 33.569367999999997,-94.412481642075306 33.56890283335202,-94.412480771235352 33.568902231761562,-94.412480202418593 33.568901838813659,-94.412175000000005 33.568691,-94.408900999999986 33.568196999999998,-94.403341999999995 33.568424,-94.397341999999981 33.571607999999998,-94.385926999999995 33.581887999999999,-94.382886999999997 33.58326799999999,-94.379649 33.580607,-94.378075999999993 33.577019,-94.377759999999981 33.574609000000002,-94.378561000000005 33.571328999999999,-94.380090999999993 33.568942999999997,-94.382534000000007 33.567056999999998,-94.388052000000002 33.565511,-94.392357000000004 33.565286999999998,-94.394655618773015 33.564059042448399,-94.397398454287298 33.562313601959417,-94.399227012370631 33.559903231990447,-94.399393244337958 33.557077279687135,-94.399143896386974 33.555498071165481,-94.397957000000005 33.554389999999998,-94.392572999999999 33.551141999999999,-94.389515000000003 33.546778000000003,-94.386086000000006 33.544922999999997,-94.381666999999993 33.544035,-94.373392999999993 33.544471,-94.371597999999992 33.545000999999999,-94.363297000000003 33.544956999999997,-94.361350999999999 33.544612999999998,-94.358969999999999 33.54323,-94.355945000000006 33.54318,-94.348944999999986 33.548358999999998,-94.347382999999979 33.55107799999999,-94.34729 33.552197,-94.352653000000004 33.560611000000002,-94.352433000000005 33.56217199999999,-94.345512999999997 33.567312999999999,-94.344023000000007 33.567824000000002,-94.340576999999996 33.567878,-94.340047258358467 33.56768232744934,-94.338972839399958 33.567285465504582,-94.33842199999998 33.567081999999999,-94.337996277272822 33.566655299162022,-94.334939999999989 33.563592,-94.334379999999996 33.562536,-94.333929800646288 33.557825151092565,-94.333894999999998 33.557461000000004,-94.333202999999997 33.555365999999992,-94.331833000000003 33.553348,-94.33059 33.552692,-94.323660000000004 33.549835000000002,-94.319491999999997 33.548864000000002,-94.309582000000006 33.551673,-94.30641 33.555616,-94.306214999999995 33.557676,-94.307180999999986 33.559797000000003,-94.303577000000004 33.56828,-94.301022999999986 33.573022000000002,-94.298392000000007 33.576217999999997,-94.293257999999994 33.580418999999999,-94.289129000000003 33.582143999999992,-94.287025 33.582410000000003,-94.283581999999996 33.581890999999999,-94.282647999999995 33.580978000000002,-94.280849000000003 33.577187000000002,-94.280604999999994 33.574907999999994,-94.282171999999989 33.572989,-94.290372000000005 33.567905000000003,-94.291686999999996 33.563481000000003,-94.290901000000005 33.558872,-94.289439999999999 33.557634999999998,-94.287571999999997 33.557178,-94.279089999999997 33.557026,-94.275600999999995 33.557963999999998,-94.274473 33.558652000000002,-94.271997999999996 33.561517999999992,-94.270978999999997 33.563220999999999,-94.270853000000002 33.564782999999998,-94.265668999999988 33.573588999999998,-94.262754999999999 33.577354,-94.257801 33.582507999999997,-94.257524288354617 33.582703553652586,-94.252656000000002 33.586143999999997,-94.245931999999996 33.589113999999995,-94.242777000000004 33.589708999999999,-94.240178999999998 33.589536000000003,-94.236971999999994 33.587411000000003,-94.236362999999997 33.585991999999997,-94.236835999999997 33.580914,-94.237975000000006 33.577756999999998,-94.238867999999997 33.576721999999997,-94.244365999999999 33.573549,-94.251108000000002 33.56528,-94.252330999999984 33.561855,-94.252283000000006 33.560445,-94.251569000000003 33.558188,-94.250197 33.556764999999999,-94.237903999999986 33.552675,-94.233128263729824 33.552212399803537,-94.233017493976078 33.552201670126067,-94.231843999999981 33.552087999999998,-94.226392000000004 33.552911999999999,-94.222920999999999 33.554088,-94.21922099999999 33.556095999999997,-94.213604000000004 33.563133999999998,-94.21268334130005 33.563763266722709,-94.208078 33.566910999999998,-94.205634000000003 33.567228999999998,-94.203593999999981 33.566546000000002,-94.202594978382763 33.562850001484037,-94.201237000000006 33.557825999999999,-94.199485999999993 33.556085000000003,-94.197816999999986 33.555238000000003,-94.196394999999995 33.555123000000002,-94.193247999999997 33.556153999999999,-94.191332999999986 33.55766599999999,-94.189883999999992 33.562454000000002,-94.192482999999996 33.570425,-94.194399000000004 33.573678,-94.196366991504703 33.574779501237479,-94.201105911663163 33.575851400157113,-94.204265191768783 33.575005164570705,-94.207404999999994 33.574353000000002,-94.209665 33.573509999999999,-94.211329000000006 33.573774,-94.216140999999993 33.576391999999998,-94.217408000000006 33.579259999999998,-94.217197999999982 33.580736999999999,-94.214431000000005 33.583187000000002,-94.212997 33.583486999999991,-94.210966999999997 33.583143,-94.205788416261612 33.581380140341984,-94.203588205048902 33.580815984742067,-94.199751933850294 33.581098061448763,-94.196536237091394 33.581718635888464,-94.194464999999994 33.582886000000002,-94.190890999999979 33.587474,-94.183913000000004 33.594681999999999,-94.180879999999988 33.592612000000003,-94.176327 33.591076999999999,-94.162266000000002 33.588906,-94.161081999999993 33.587972,-94.162009999999995 33.580877,-94.161276999999998 33.579270999999999,-94.156782000000007 33.575749000000002,-94.152625999999998 33.575923000000003,-94.148731999999995 33.580196999999998,-94.146047999999993 33.581975,-94.144383000000005 33.582097999999995,-94.142160000000004 33.581389999999999,-94.141852 33.579590000000003,-94.143023999999983 33.577725,-94.145668999999984 33.575599999999994,-94.149506000000002 33.573602,-94.151257 33.571793,-94.151754999999994 33.569476000000002,-94.151455999999996 33.568387,-94.148520000000005 33.565677999999991,-94.145239000000004 33.564987000000002,-94.143401999999995 33.565504999999995,-94.136863999999989 33.570999999999998,-94.136045999999993 33.571387999999999,-94.135142000000002 33.571033,-94.134308000000004 33.569209,-94.133047999999988 33.557952999999998,-94.131382000000002 33.552934,-94.128658 33.550952000000002,-94.126897999999983 33.550646999999991,-94.123897999999997 33.552100000000003,-94.122878999999983 33.553111999999999,-94.12071899999998 33.560555,-94.120354999999989 33.5655,-94.119902152897509 33.566998927274319,-94.112842999999998 33.566991000000002,-94.103176000000005 33.570349999999998,-94.100106999999994 33.57256799999999,-94.097439999999992 33.573718999999997,-94.088943 33.575322,-94.082640999999995 33.575491999999997,-94.072670000000002 33.572234000000002,-94.072231491265512 33.572605318678747,-94.072031926011121 33.573523317998088,-94.072031926011121 33.573846369634623,-94.072031926011121 33.574161925883949,-94.071815412538413 33.574459631515609,-94.071712621294751 33.574600969288895,-94.071353404455635 33.574840447439463,-94.070395493400298 33.574561056392717,-94.069534727631535 33.574169799087244,-94.069517406590393 33.574161925883949,-94.068559493988133 33.573563230894273,-94.068280102941401 33.571966710019424,-94.06782332144887 33.570215714974232,-94.067801146640278 33.570130711574109,-94.066845999999998 33.568908999999998,-94.061283000000003 33.568804999999998,-94.056597999999994 33.567824999999999,-94.056095999999997 33.567252000000003,-94.055662999999996 33.561886999999999,-94.056442000000004 33.560997999999991,-94.059849999999997 33.559249,-94.061179999999993 33.559159,-94.066685000000007 33.560953999999995,-94.067984999999993 33.560960999999999,-94.071719999999999 33.559682000000002,-94.073744000000005 33.558284999999998,-94.073825999999997 33.555833999999997,-94.072156000000007 33.553863999999997,-94.069091999999998 33.553406000000003,-94.06547999999998 33.550908999999997,-94.061896000000004 33.549764000000003,-94.056095999999997 33.550725999999997,-94.051882000000006 33.552585,-94.050211999999988 33.551082999999998,-94.046040000000005 33.551321000000002,-94.043449999999993 33.552253,-94.043428000000006 33.551424999999995,-94.043374999999997 33.542315000000002,-94.043020107474533 33.494534442391668,-94.043008999999998 33.493039000000003,-94.043278999999998 33.491029999999995,-94.043271947583932 33.489425304099555,-94.043188 33.470323999999991,-94.043130608695648 33.460424000000003,-94.043089437732434 33.453322008844353,-94.043061045958495 33.448424427841935,-94.043010021810147 33.439622762252007,-94.042987999999994 33.435823999999997,-94.042987999999994 33.434442436873745,-94.042987999999994 33.431023999999994,-94.042886999999993 33.420225000000002,-94.042890126641851 33.419424334827802,-94.042891364631132 33.419107312620362,-94.042967439944888 33.399626074590046,-94.043053 33.377715999999999,-94.042868999999996 33.371169999999999,-94.043127999999996 33.358756999999997,-94.043066999999979 33.352097,-94.043066999999979 33.347351000000003,-94.043066999999979 33.339614667914582,-94.043066999999979 33.330497999999999,-94.042990000000003 33.271227000000003,-94.043049999999994 33.260903999999996,-94.043003999999996 33.250127999999997,-94.042730000000006 33.241822999999997,-94.042876000000007 33.215218999999998,-94.042891999999995 33.202666,-94.042874999999995 33.199784999999999,-94.042718999999991 33.160290999999994,-94.043184999999994 33.143476,-94.043076999999982 33.138162,-94.043007000000003 33.13389,-94.042951563372725 33.117233519058104,-94.042869999999994 33.092726999999996,-94.043036 33.079484999999998,-94.042963999999998 33.019219,-94.042986850316112 33.007494023677346,-94.043068075862834 32.965815492539427,-94.043087999999997 32.955592000000003,-94.043066999999979 32.937902999999999,-94.043092 32.910021,-94.042884999999998 32.898910999999998,-94.042859000000007 32.892771000000003,-94.042885999999996 32.880965000000003,-94.043025 32.880445999999999,-94.042784999999995 32.871485999999997,-94.042921087938623 32.829694015190334,-94.043025999999983 32.797476000000003,-94.042747000000006 32.786973000000003,-94.042828999999998 32.785277,-94.042937999999992 32.780557999999999,-94.043026999999995 32.776862999999999,-94.042946999999998 32.767991000000002,-94.042974715046569 32.757603400545236,-94.04314699999999 32.693030999999998,-94.042912999999999 32.655126999999993,-94.042779999999993 32.643465999999997,-94.042823999999996 32.640304999999998,-94.042925999999994 32.622014999999998,-94.042929 32.618259999999992,-94.042918999999998 32.610142000000003,-94.042939007208048 32.604544739553475,-94.043082999999996 32.564261000000002,-94.043142000000003 32.559502000000002,-94.043081 32.513612999999999,-94.042884999999998 32.505144999999999,-94.042911000000004 32.492851999999999,-94.043088999999995 32.486561000000002,-94.043071999999995 32.48429999999999,-94.042955000000006 32.480260999999999,-94.042995000000005 32.478003999999999,-94.042901999999998 32.472905999999995,-94.042874999999995 32.471347999999992,-94.042902999999981 32.470385999999998,-94.042907999999997 32.439890999999996,-94.042985999999999 32.435507,-94.042898999999991 32.400658999999997,-94.042923000000002 32.399918,-94.042900999999986 32.392282999999999,-94.042762999999994 32.373331999999998,-94.042738999999997 32.363559000000002,-94.042733519218956 32.277818574933548,-94.042732999999998 32.269696000000003,-94.042732 32.269620000000003,-94.042671451745775 32.225096273752321,-94.042662000000007 32.218145999999997,-94.042600205901905 32.185155675879351,-94.042565999999994 32.166893999999999,-94.042538999999991 32.166826,-94.042591000000002 32.158096999999998,-94.042681000000002 32.137956000000003,-94.042751999999993 32.125163,-94.042337000000003 32.119914,-94.042699999999996 32.056012000000003,-94.042717288248511 32.00695918811028,-94.042720000000003 31.999265,-94.042490448495869 31.997488887291052,-94.042251674184627 31.995641414801661,-94.041832999999997 31.992401999999998,-94.038411999999994 31.992436999999999,-94.029282999999992 31.995864999999998,-94.027080554152732 31.994823406342874,-94.018664 31.990842999999998,-94.011671046736083 31.979908989829021,-94.008352361284565 31.974719974671689,-94.002944198469422 31.966263903968002,-93.995504541226836 31.954631438414648,-93.994147015257326 31.952508844111783,-93.977461000000005 31.926418999999996,-93.971711999999982 31.920383999999995,-93.953546000000003 31.910562999999996,-93.943541310721315 31.908563758569336,-93.938002035663573 31.906916949339585,-93.935007833635339 31.903773037645127,-93.932462763507019 31.895538979891644,-93.931327794714704 31.894581351390723,-93.92767203678045 31.891496810199779,-93.923929283519882 31.889849995167665,-93.919587694495533 31.890748256066246,-93.915948999999998 31.892861000000003,-93.909557114944889 31.893143619429534,-93.905252294448232 31.890856686636408,-93.90476638821832 31.890598549301192,-93.901173350426333 31.885957535142037,-93.901888 31.880063,-93.898135577976262 31.874953416991548,-93.896981462364707 31.873381885463036,-93.889196542313442 31.867692899288475,-93.888241004857136 31.85786451213389,-93.888148571748644 31.856913771406646,-93.887306164689562 31.854968889155742,-93.884117000000003 31.847605999999995,-93.880377455095243 31.844791786271248,-93.879654915472827 31.84424803536659,-93.874821999999995 31.840611000000003,-93.874804231839249 31.835091218914506,-93.874787826198073 31.829994712349503,-93.874761000000007 31.821660999999999,-93.870917000000006 31.816836999999996,-93.868473098390325 31.815251608244314,-93.853390000000005 31.805467,-93.846187999999998 31.802021,-93.839950728453459 31.798597132180646,-93.836868453653821 31.794158659336233,-93.836868453653821 31.791454071635616,-93.836868453653821 31.788733862378688,-93.834649214842401 31.783309060642711,-93.831197070889573 31.780226788232302,-93.827450999999996 31.777740999999999,-93.823442999999997 31.775098,-93.822597999999985 31.773558999999995,-93.826519525540022 31.761832440276638,-93.827342999999999 31.759369999999997,-93.830112066651125 31.754555168030393,-93.830647423185951 31.745811043570992,-93.824579 31.734396999999998,-93.819048075401312 31.72885814427071,-93.818932598107111 31.728523867973351,-93.815657495541259 31.719043310199801,-93.815835943108667 31.711905251886723,-93.815525624652665 31.710796971318612,-93.814600367558683 31.707492480599399,-93.814586782471608 31.707443962415162,-93.811060073548262 31.705827553684028,-93.810303944025605 31.705480994217723,-93.807270273132957 31.704231833580664,-93.806045429297654 31.703104120446881,-93.803419352361757 31.700686292667093,-93.802693549340276 31.697783082925291,-93.802451615781152 31.693186330065117,-93.804479 31.685663999999999,-93.812820813246589 31.676953615984285,-93.81562111199878 31.674029590143711,-93.817425 31.672146,-93.821829497696953 31.673879806810671,-93.822051000000002 31.673966999999998,-93.822341750589956 31.673502431839047,-93.826462000000006 31.666919,-93.8257324849111 31.66154827530681,-93.825660999999997 31.661021999999996,-93.825228912080746 31.660277861177896,-93.81803699999999 31.647891999999999,-93.817707248836442 31.6409111211136,-93.816838000000004 31.622509,-93.818717000000007 31.614555999999997,-93.823976999999999 31.614227999999997,-93.825414416100287 31.615089707767993,-93.827851999999993 31.616550999999998,-93.838056999999992 31.606795000000002,-93.839382999999998 31.599074999999999,-93.837534908858984 31.593743346167731,-93.834924 31.586210999999999,-93.822958 31.568129999999996,-93.822219025006859 31.564792487143556,-93.820763999999997 31.558221000000003,-93.818582000000006 31.554825999999998,-93.798086999999995 31.534044000000002,-93.787687000000005 31.527343999999996,-93.781574079702807 31.525595412174177,-93.780834999999996 31.525383999999999,-93.777170583402579 31.525128039451072,-93.760062000000005 31.523933,-93.753860000000003 31.525331,-93.751899169046524 31.525601857922521,-93.749869902733366 31.526210635456998,-93.746826003263621 31.526007705679731,-93.743376259969125 31.525196002300419,-93.742401241878753 31.523787647735123,-93.74154991556837 31.522557958452786,-93.741111000000004 31.520101,-93.740752889151466 31.518711098615515,-93.740332360499409 31.517078940980245,-93.739317727342822 31.515049678599539,-93.734411826534469 31.513527159467717,-93.733432858180635 31.513223342063657,-93.726736285639134 31.511599931372594,-93.725924582259807 31.504091651519342,-93.728765551952293 31.496786301443361,-93.730997740177827 31.492118989316349,-93.733996137544537 31.48847587643743,-93.737167999999997 31.484621999999998,-93.741884999999982 31.483535,-93.745608448194673 31.481972669547908,-93.746355058504165 31.481633300507966,-93.747840636420193 31.480958036391328,-93.749869902733366 31.478928770078173,-93.749869902733366 31.475276095040186,-93.749626709600278 31.47120988033301,-93.749476 31.468689999999999,-93.709416000000004 31.442995,-93.706857276389258 31.44142369846492,-93.700929751125955 31.437783629836048,-93.697919763270235 31.429300939077926,-93.697603150134782 31.428408665937056,-93.704678 31.418899999999997,-93.704697874245824 31.418107106580852,-93.704878999999991 31.410881,-93.701611 31.409333999999998,-93.695865999999995 31.409391999999997,-93.689953513429003 31.406208353384852,-93.678362516190631 31.399967047179565,-93.675064666986117 31.398191282223291,-93.674659331220113 31.397973024503138,-93.674116999999981 31.397680999999995,-93.671643999999986 31.393352,-93.670181999999983 31.387184,-93.668532759396427 31.379357124595749,-93.668145986696857 31.37510269235548,-93.669064113561134 31.373151679996884,-93.669693055010129 31.371815184369147,-93.669512094168894 31.370548454097019,-93.668919524600994 31.366400452767671,-93.667402247962755 31.365414223393856,-93.665051865060306 31.363886475190469,-93.663891561951601 31.361952641672623,-93.663698175601809 31.360018811902275,-93.664665092360735 31.357698213179859,-93.665825387974422 31.355184231855155,-93.668439000000006 31.353011999999996,-93.669515978941746 31.350266666374935,-93.673736148309771 31.339509006758242,-93.677277000000004 31.330482999999997,-93.687850999999995 31.309835,-93.686922292404276 31.305369360695714,-93.686880000000002 31.305166,-93.686723586265984 31.304979085312567,-93.684737187533131 31.30260533533086,-93.684038999999999 31.301770999999995,-93.683824154244718 31.301752735987076,-93.675439999999995 31.30104,-93.668927999999994 31.297974999999997,-93.657003999999986 31.281735999999999,-93.647719584117951 31.27389987096868,-93.642516 31.269508000000002,-93.632650200244299 31.270182983909681,-93.620343000000005 31.271025000000002,-93.615257056394739 31.261768439618621,-93.61394199999998 31.259374999999995,-93.614287999999988 31.251631,-93.616308000000004 31.244595000000004,-93.616007481020262 31.233959925788763,-93.613835693061347 31.232449117569455,-93.609977782626956 31.229765355202261,-93.609827614285464 31.229660890324059,-93.608033931702224 31.227867209671889,-93.60740940488401 31.227242683526022,-93.605259887151632 31.224152751460338,-93.604319472818304 31.220794125122111,-93.604319472818304 31.215285983654958,-93.607287999999997 31.205403,-93.602442999999994 31.182541,-93.600307999999998 31.176157999999997,-93.598827999999997 31.174679,-93.595531708436056 31.171774432382691,-93.588772842417583 31.16581877494577,-93.588502999999989 31.165581,-93.588046655571759 31.165671453282986,-93.583339301771971 31.166604510813709,-93.579215000000005 31.167421999999995,-93.578993496784307 31.167654977688123,-93.574136071231791 31.172764031170193,-93.569563000000002 31.177574,-93.560942999999995 31.182481999999997,-93.552649000000002 31.185575,-93.548930999999996 31.186601,-93.535096999999993 31.185614,-93.533756450961803 31.184752004501149,-93.533306999999994 31.184463,-93.5330935917342 31.183965183917415,-93.531744000000003 31.180816999999998,-93.533193520062923 31.174490811082034,-93.53417786817559 31.170194787673282,-93.536829999999981 31.158620000000003,-93.540253000000007 31.156578999999997,-93.544009577425854 31.153014849431809,-93.544887639546317 31.148844041597808,-93.544887639546317 31.143136612291205,-93.544701999999987 31.135888999999999,-93.540277800652078 31.128868068802213,-93.539619249807799 31.121843550568837,-93.541375382556595 31.113501939154769,-93.541635919885238 31.113241401693255,-93.548470239502265 31.106407078590973,-93.549716998224596 31.105160319232844,-93.55112206776522 31.099540038044921,-93.551692642249563 31.097257738879012,-93.551034091405285 31.091111287020031,-93.546643772295099 31.082989189009115,-93.540128999999993 31.078002999999995,-93.53104031045666 31.074698717981779,-93.527873992025093 31.072210897922254,-93.526043656150705 31.070772777782928,-93.524020490083288 31.067083472240864,-93.523009982318626 31.065240780256033,-93.523659621286654 31.063941504256789,-93.525329858273139 31.060601035263321,-93.529255791555698 31.057567354514948,-93.532069000000007 31.055264,-93.531218761655126 31.051678447674814,-93.523247999999995 31.037841999999998,-93.516942620821894 31.032584114108545,-93.516407263768343 31.029550433360171,-93.516883288197775 31.024314186160638,-93.516942620821894 31.023661529978199,-93.539525999999995 31.008497999999999,-93.540062152267268 31.008345085566372,-93.540618575989114 31.008186389569964,-93.555580999999989 31.003918999999996,-93.562626264226125 31.00599480945781,-93.566016847371429 31.004567194682853,-93.567979815741779 31.001533515663564,-93.569764334642755 30.996715319472376,-93.571101253513504 30.991033414001794,-93.571905755076102 30.987614282198351,-93.567971999999997 30.977981,-93.560533000000007 30.971285999999999,-93.55046299120518 30.967360467203815,-93.549841 30.967117999999996,-93.539153617393822 30.956968324013513,-93.532549000000003 30.950695999999997,-93.526524876707626 30.939912016599852,-93.526293050708773 30.939497017171423,-93.526245000000003 30.939411,-93.526242458076936 30.939167805401102,-93.526231146824912 30.938085618677029,-93.526146999999995 30.930035,-93.526269219450654 30.929894609689271,-93.530935999999983 30.924533999999998,-93.542488999999989 30.920064,-93.54502991280485 30.920837107400992,-93.546884259495414 30.92151141825828,-93.549244331161987 30.921005686748707,-93.550358562122057 30.920030731622223,-93.551941554990407 30.918645608548566,-93.555650241837967 30.911228247920597,-93.555751501305451 30.910053639118178,-93.555774257662236 30.909789665608852,-93.556493125509377 30.9014508058257,-93.562447641167196 30.896531852982324,-93.563812214002311 30.895404595987301,-93.564247644832776 30.895044891882932,-93.567787752332634 30.888301832311882,-93.567450600170787 30.878524390216981,-93.566008182600839 30.875519355165832,-93.565853452041281 30.875197,-93.565427680666076 30.874309976760035,-93.563763247930751 30.87311591407202,-93.559394659034922 30.869981891957959,-93.55904186947815 30.86972880101742,-93.558616999999984 30.869423999999999,-93.558608112367665 30.868835818489011,-93.558593354020289 30.867859114376206,-93.558393833586933 30.854654896933653,-93.558352334289978 30.851908482785802,-93.558231866260058 30.843935935637496,-93.558171999999999 30.839973999999998,-93.553625999999994 30.835139999999999,-93.55374115920948 30.832414921630001,-93.554057 30.824940999999995,-93.561666000000002 30.807738999999998,-93.563243 30.806218000000005,-93.564501487304341 30.805543276361082,-93.569303000000005 30.802969,-93.578395 30.802046999999998,-93.584264999999988 30.796662999999995,-93.588934854633479 30.787551489258888,-93.589380999999989 30.786681000000002,-93.589895999999996 30.77776,-93.591925627378814 30.768225181611253,-93.592827999999997 30.763985999999996,-93.607757000000007 30.757656999999995,-93.611581311334461 30.752392350515215,-93.615058988962588 30.747604886281291,-93.619129 30.742001999999996,-93.617688 30.738479000000005,-93.609908791486006 30.729403419430973,-93.609718999999998 30.729181999999998,-93.609544 30.723138999999996,-93.61030547238029 30.720788970554505,-93.611192000000003 30.718053,-93.61618399999999 30.713980000000003,-93.616977218405893 30.712276394979256,-93.620773999999997 30.704122000000005,-93.621061387132315 30.696047232392139,-93.621092999999988 30.695159,-93.62235785978659 30.692974242186811,-93.629903999999996 30.679939999999995,-93.632922525899005 30.677439880221801,-93.638212999999993 30.673057999999997,-93.646373493696458 30.671658473870171,-93.653439445062318 30.670446661945991,-93.654970999999989 30.670183999999999,-93.666219386787546 30.661299653678171,-93.670353999999989 30.658033999999997,-93.670860468306827 30.657347728689221,-93.683099999999996 30.640763000000003,-93.685120999999981 30.625201,-93.684323003112922 30.617258061147268,-93.683396999999985 30.608040999999997,-93.680812614601606 30.602993111696524,-93.680648411741274 30.602453589051585,-93.679828117977763 30.599758343304948,-93.681234543283509 30.596101640780542,-93.683902548646543 30.593069810094963,-93.684328672415049 30.59258557751615,-93.684347894395486 30.592579170189346,-93.687282162286593 30.59160108089231,-93.689533999999995 30.592759,-93.692869000000002 30.594382000000003,-93.712453999999994 30.588479,-93.72107859525056 30.580404159651369,-93.727657631584904 30.574244488790981,-93.727844000000005 30.574069999999995,-93.727840097341868 30.573768021870688,-93.72780696123904 30.571204031383882,-93.727747245613443 30.566583382517752,-93.727745999999996 30.566486999999999,-93.725846999999987 30.556978,-93.728764326223569 30.546403128121515,-93.729195000000004 30.544841999999999,-93.736587760607577 30.541316766984647,-93.740252999999996 30.539569,-93.738909526480768 30.537838512460276,-93.732793 30.529960000000003,-93.727721000000003 30.525671000000003,-93.718711305261792 30.520890798500346,-93.714321999999996 30.518561999999996,-93.710116999999997 30.506399999999996,-93.713193644304937 30.50058809182816,-93.716678000000002 30.494005999999995,-93.71365216083376 30.483878530555742,-93.711446941284677 30.476497671106777,-93.710595424186792 30.473647647388944,-93.709703157003446 30.47066123332699,-93.708899372668625 30.467970970942378,-93.705844999999997 30.457747999999999,-93.697828 30.443837999999996,-93.6978 30.440583,-93.698862234241474 30.438260713588438,-93.702220303997905 30.430919206922557,-93.702664999999996 30.429947000000002,-93.722313999999997 30.420729,-93.729486046484141 30.413342592858086,-93.738025291703323 30.404548123662593,-93.738321805525445 30.404242747530638,-93.745333000000002 30.397022,-93.751243378615428 30.396311282781173,-93.751436999999996 30.396287999999998,-93.754787283332149 30.393127406185759,-93.75746720581121 30.390599218098316,-93.757654000000002 30.390422999999995,-93.757872622462301 30.389610210267922,-93.758470934573069 30.387385818798332,-93.75855399999999 30.387077,-93.758091991038413 30.3842338214119,-93.758032188807945 30.383865801664729,-93.757931393201204 30.383245510859378,-93.75589426835937 30.370709152880856,-93.756044740613035 30.365928314513319,-93.75610723110799 30.3639428524199,-93.756352000000007 30.356166000000002,-93.758519945992674 30.350935458285047,-93.760658351649255 30.34577618769989,-93.763244572034736 30.339536487238696,-93.765822 30.333317999999995,-93.764264999999995 30.330222999999997,-93.760690955159149 30.32995156504764,-93.760328 30.329923999999998,-93.747921244232074 30.314935395431327,-93.743830002049762 30.309992764786195,-93.741160171732417 30.306767342150266,-93.738698999999997 30.303793999999996,-93.734966161369201 30.301561360829975,-93.729390287632427 30.298226388348422,-93.724220000000003 30.295133999999997,-93.718684474451791 30.295009979388311,-93.714319430116035 30.294282471059141,-93.71311219174963 30.293184979315004,-93.711118400234781 30.291372437742464,-93.709949692759622 30.289928741213533,-93.708644873043468 30.288316906143507,-93.708448001046747 30.287627854154977,-93.707590519980414 30.284626670422831,-93.706607851977495 30.281187332412603,-93.706635817233519 30.280914670488997,-93.707189856385114 30.275512775340033,-93.709131999999997 30.271826999999995,-93.707538803456245 30.253087036355307,-93.707271000000006 30.249936999999996,-93.705637767078656 30.244573755694763,-93.705083000000002 30.242751999999996,-93.707646217538425 30.23733474070027,-93.713358999999997 30.225261,-93.71802168481895 30.219915738218987,-93.719219999999993 30.218541999999999,-93.720945999999998 30.209852,-93.717397000000005 30.193439,-93.710467999999992 30.180670999999997,-93.706634735424259 30.17682001000631,-93.705927274531248 30.176109277739844,-93.705791510460429 30.175972885881706,-93.703764000000007 30.173936,-93.703646997347349 30.173527735424756,-93.702964616901454 30.171146663230584,-93.701744610591902 30.166889619937699,-93.701686103512344 30.166685467574972,-93.697748000000004 30.152943999999998,-93.696083741705934 30.150925109485563,-93.688211999999979 30.141376,-93.69286799999999 30.135216999999997,-93.69498 30.135185,-93.698276000000007 30.138608000000005,-93.700984936503929 30.137486558544058,-93.701251999999997 30.137376,-93.7012922571502 30.136537706048752,-93.701585086407604 30.130439981942867,-93.701656556414648 30.128951727699913,-93.701742498922442 30.127162105630983,-93.701985639262489 30.122099077688652,-93.702366286953335 30.114172668214064,-93.702403861450691 30.11339023643033,-93.702436000000006 30.112720999999997,-93.70268530105453 30.112503701678254,-93.704703872918159 30.110744253531749,-93.710410303455276 30.105770356484715,-93.714491639657382 30.10221294069715,-93.723764999999986 30.094129999999996,-93.727140999999989 30.092110594495406,-93.7293848599641 30.090768395691203,-93.72996305770063 30.09042253796256,-93.732484999999997 30.088913999999995,-93.734084999999979 30.086129999999997,-93.731705540540531 30.081478540540548,-93.731605000000002 30.081282000000002,-93.729179922109864 30.079341937687897,-93.727017487667368 30.077611990133899,-93.71640499999998 30.069121999999997,-93.716151269697463 30.069056930886212,-93.707507094464489 30.066840132907302,-93.702179999999998 30.065473999999995,-93.700580000000002 30.063666,-93.699479012508235 30.0595596142199,-93.699395999999993 30.059249999999995,-93.699786698153744 30.05843348475733,-93.700658293446523 30.056611948527472,-93.700819999999993 30.056273999999998,-93.702099264262131 30.055460929156467,-93.703267223154896 30.054718601437116,-93.703940000000003 30.054290999999999,-93.704473210548429 30.054251542735575,-93.709782747672762 30.053858640136632,-93.710785394684464 30.05378444485228,-93.720804999999999 30.053042999999995,-93.729054152595779 30.045230570163486,-93.729990027439044 30.044344241966268,-93.737446000000006 30.037282999999999,-93.739158000000003 30.032626999999998,-93.739733999999999 30.023987000000002,-93.741078000000002 30.021571000000002,-93.744068611359822 30.019549890100706,-93.74834924745744 30.01665695787004,-93.753252045558341 30.013343557169065,-93.766227014667976 30.004574835541469,-93.782835629207284 29.993350429819579,-93.786934999999986 29.990579999999998,-93.789430999999993 29.987812000000002,-93.803328792953494 29.962666096659486,-93.807814999999991 29.954549,-93.813734999999994 29.935126,-93.816550000000007 29.920725999999995,-93.818997999999993 29.914822,-93.830374000000006 29.894358999999998,-93.838374000000002 29.882854999999999,-93.853129483564672 29.866348149842587,-93.854474509531912 29.864843479256791,-93.855140000000006 29.864098999999996,-93.857517787207271 29.862146563102172,-93.862474802662518 29.858076283033213,-93.863569999999996 29.857177,-93.864820388168837 29.856398395289631,-93.872445999999997 29.851650000000003,-93.890679000000006 29.843159000000004,-93.900728 29.836967,-93.911111176241661 29.828996955749506,-93.916359999999997 29.824967999999998,-93.922743999999994 29.818808,-93.927992000000003 29.809640000000002,-93.929208000000003 29.802952,-93.928808000000004 29.79708,-93.926503999999994 29.789559999999998,-93.922407000000007 29.785048,-93.898470000000003 29.771576999999997,-93.893861999999999 29.767289000000002,-93.890820999999988 29.761672999999995,-93.891780610698319 29.758916671398389,-93.892526767476923 29.756773455119472,-93.893828999999997 29.753032999999999,-93.891732576672823 29.744984915009951,-93.891637000000003 29.744618000000003,-93.891484462723341 29.744488863328282,-93.888820999999993 29.742234000000003,-93.873941000000002 29.737770000000005,-93.870019999999997 29.735482,-93.863203999999996 29.724059,-93.837970999999982 29.690618999999998,-93.852868 29.675885,-93.866980999999996 29.673085,-93.889989999999997 29.674012999999999,-93.930999999999997 29.679611999999999,-93.955443390383635 29.680262610936268,-93.955453232202885 29.68026287289646,-93.991585827226885 29.681224615973395,-94.000169999999997 29.681453101326589,-94.000222586816207 29.681454501032487,-94.001406000000003 29.681486,-94.010062765207763 29.679864152681674,-94.056505999999999 29.671163,-94.132576999999984 29.646217,-94.354166823921716 29.561457673765378,-94.370794193562546 29.555097613439198,-94.391123278008692 29.54732162684321,-94.45341877657637 29.523493256060661,-94.456196753642018 29.522430664556182,-94.45805240375158 29.521720868184531,-94.499046371673685 29.506040450016997,-94.499089575343746 29.506023924375612,-94.500455432020999 29.505501476685335,-94.500806999999995 29.505367,-94.552043946167103 29.48495633977835,-94.552044379602123 29.484956167115939,-94.568074121423052 29.478570587212708,-94.593696728539513 29.46836361027578,-94.594852999999986 29.467903,-94.599458690353401 29.465813271763974,-94.62931993394271 29.452264405230761,-94.631084 29.451464,-94.634656044789836 29.449584234717392,-94.661528069434993 29.435443006940758,-94.670389 29.430779999999999,-94.674924987623086 29.427889211977174,-94.680871144138621 29.42409972235215,-94.694158000000002 29.415631999999999,-94.708472999999998 29.403049000000003,-94.723958999999979 29.383268000000005,-94.730956033155138 29.369322304827527,-94.731047000000004 29.369140999999996,-94.731324722869132 29.369141342444962,-94.731537324603394 29.369141604592603,-94.742750849251038 29.369155431380086,-94.744595216508316 29.369157705569055,-94.744833999999997 29.369157999999999,-94.761491000000007 29.361882999999999,-94.772184717669788 29.3616343088914,-94.778690999999995 29.361483,-94.780073439975141 29.362532749099824,-94.782355999999993 29.364266,-94.782645420567292 29.368514320481975,-94.783130999999997 29.375641999999996,-94.766847999999996 29.393488999999999,-94.754099999999994 29.400999999999996,-94.743385419572206 29.410035318862811,-94.73704402931665 29.415382843516582,-94.727822669267709 29.423158969605012,-94.723817999999994 29.426535999999995,-94.716270519001597 29.430976788539081,-94.706539419927282 29.436702374764607,-94.706364999999991 29.436804999999996,-94.686385999999999 29.466508999999995,-94.681540999999996 29.471388999999999,-94.672399999999996 29.476842999999999,-94.665852999999998 29.478401000000002,-94.656737000000007 29.478032999999996,-94.645948000000004 29.473769,-94.628217000000006 29.475986000000002,-94.608557000000005 29.483344999999996,-94.594211 29.492127,-94.595122262498009 29.503650874486677,-94.595439999999996 29.507669,-94.591407000000004 29.513857999999999,-94.580274000000003 29.525295,-94.566674000000006 29.531987999999995,-94.553989999999985 29.529558999999999,-94.546993999999998 29.524379,-94.532347999999999 29.5178,-94.511044999999996 29.519649999999995,-94.495024999999984 29.525030999999998,-94.503428999999997 29.543249999999997,-94.509486999999993 29.542589999999997,-94.523742999999996 29.545987,-94.523871183237745 29.546315590042923,-94.5261306113389 29.55210749848424,-94.526336 29.552633999999998,-94.542531999999994 29.568999999999999,-94.546193009360195 29.571896121601313,-94.546385 29.572047999999995,-94.546803832691651 29.57214903106096,-94.55398799999999 29.573882,-94.570006000000006 29.572232,-94.578210999999982 29.567281,-94.593518000000003 29.561319,-94.625889999999998 29.552807999999999,-94.634988842169335 29.550728838088908,-94.643914431984982 29.54868926579681,-94.666855093063802 29.543447131924982,-94.691625000000002 29.537787000000002,-94.693243673136905 29.537529479678042,-94.718275999999989 29.533546999999995,-94.740699000000006 29.525857999999999,-94.757688999999999 29.524616999999999,-94.768675999999999 29.525659,-94.780938000000006 29.531093000000002,-94.785987568065153 29.540133852805589,-94.789123822994313 29.545749069554745,-94.789562096440733 29.546533763545689,-94.78971899677407 29.546814681200559,-94.790604999999999 29.548400999999998,-94.779438999999996 29.549472000000002,-94.772471009935998 29.548613672580952,-94.771052999999995 29.548438999999995,-94.762972090755014 29.555767305595641,-94.75523699999998 29.562781999999999,-94.750081379755628 29.56810096117977,-94.734626000000006 29.584046,-94.731874420576986 29.588423440241069,-94.724443803393115 29.600244680945409,-94.708741000000003 29.625226,-94.705273448792255 29.640626536822896,-94.703938528752261 29.6465553563269,-94.702680930363101 29.65214076491651,-94.702542126991759 29.652757236398369,-94.699660909360375 29.665553672721437,-94.69780371146922 29.673802100155214,-94.694887994254785 29.686751760487848,-94.693153999999993 29.694452999999999,-94.692434000000006 29.70361,-94.692611750388934 29.704808689927841,-94.695098387970873 29.721577752663908,-94.695317000000003 29.723051999999999,-94.695611486157915 29.72357178078331,-94.697558868014866 29.727008993840069,-94.705700105090941 29.741378628781629,-94.713878412983604 29.755813695314995,-94.714586470042065 29.757063446593907,-94.722078339612551 29.770286919851305,-94.724615999999983 29.774766,-94.735270999999997 29.785433,-94.738125273271791 29.786265833277604,-94.740919000000005 29.787080999999997,-94.749144589762409 29.783534045463153,-94.75591801041729 29.780613280409739,-94.771512 29.773888999999997,-94.792237999999998 29.767432999999997,-94.798897371247961 29.764438558858895,-94.816085 29.756710000000002,-94.81943931055217 29.753325616252695,-94.823987131664666 29.748737021482022,-94.851107999999996 29.721373000000003,-94.856932183541645 29.710462974624775,-94.860426638443812 29.703917062844585,-94.864167858487249 29.696908903620852,-94.865007000000006 29.695336999999999,-94.865123196353878 29.694545038919138,-94.867438000000007 29.678768000000002,-94.872550999999987 29.67125,-94.893107 29.661335999999999,-94.915413 29.656613999999998,-94.921317999999999 29.658177999999999,-94.928410408640929 29.669495826038883,-94.930071799099807 29.672147016790593,-94.930110565443542 29.672208878811933,-94.930656833967475 29.673080595662611,-94.931474856161643 29.67438596783704,-94.934166999999988 29.678681999999998,-94.935264231405057 29.686686879688732,-94.935319060033862 29.687086883348073,-94.935997030967087 29.692033037575822,-94.936088999999996 29.692703999999999,-94.936280063994801 29.692851065945039,-94.941277009519624 29.696697319220664,-94.942680999999993 29.697778,-94.942922907078852 29.697804516058127,-94.95311095436017 29.698921254167477,-94.965343618259496 29.700262107971746,-94.965962999999988 29.70033,-94.972666000000004 29.684869999999997,-94.980123280315652 29.679059463608382,-94.986438191421769 29.674139034277729,-94.988580124776774 29.672470090483102,-95.001800051879343 29.662169436052462,-95.002396227716986 29.661704909944582,-95.005398 29.659365999999995,-95.011683000000005 29.649802000000005,-95.013860566469219 29.644103309100927,-95.014229369455222 29.643138151779844,-95.015636 29.639457,-95.015582911847446 29.639202042718885,-95.014543866006605 29.634211997110764,-95.013498999999996 29.629193999999998,-95.006633444897872 29.623869765921089,-95.00056235200779 29.61916163683599,-95.000370188745762 29.619012614335521,-94.997782627529062 29.617005962082896,-94.997731096758997 29.616965999999998,-94.995478872439179 29.615219401320278,-94.993499353954022 29.613684285860323,-94.988871000000003 29.610095,-94.988045541621688 29.608923290953985,-94.982835617337045 29.60152798723708,-94.982705999999993 29.601344000000005,-94.982886347998431 29.601051719777942,-94.983895794498991 29.599415764569699,-94.98693593300419 29.594488776939745,-94.988992999999994 29.591155,-94.991605757589539 29.588791109774153,-94.991811610459919 29.588604864563266,-94.992208959522046 29.588245363334387,-95.006677600766466 29.575154872369662,-95.007235451984087 29.574650156950938,-95.007670000000005 29.574256999999996,-95.00815781845921 29.573398130166158,-95.016627 29.558487,-95.018253 29.554884999999999,-95.016926355758628 29.548485488141377,-95.015164999999996 29.539988999999998,-95.012091452887788 29.536262245236642,-95.011587670186657 29.535651395780732,-95.011086587278399 29.535043819893005,-95.001666768519442 29.523622047865974,-94.999580999999992 29.521093,-94.989064037839412 29.515168017977793,-94.982063906682782 29.511224326765198,-94.981915999999998 29.511140999999995,-94.981645984265953 29.511070508097891,-94.961088181447877 29.505703566689924,-94.958443000000003 29.505013000000002,-94.958183821928699 29.504969740154092,-94.957844913785792 29.504913172428417,-94.95747910332102 29.504852114391142,-94.955724072517796 29.504559179260749,-94.952845264169682 29.504078672538427,-94.930551536860648 29.500357589179547,-94.927405495678158 29.499832478177321,-94.909464999999997 29.496837999999997,-94.913072085311995 29.488019044482122,-94.913385000000005 29.487254,-94.917178632618899 29.481741136316387,-94.925104227340569 29.470223752399235,-94.925293406029382 29.469948840084836,-94.925914000000006 29.469047,-94.930860999999993 29.450503999999999,-94.923011455799639 29.448810114938265,-94.920334997737442 29.448232551169699,-94.919400999999993 29.448030999999997,-94.916063708203708 29.446327523795176,-94.890799999999984 29.433432,-94.888257132054065 29.420136433311271,-94.887299999999996 29.415132,-94.887087039327696 29.40154064293051,-94.886938304445962 29.392048238229908,-94.886925408340758 29.391225196262944,-94.886904215833582 29.389872669858736,-94.886764190565785 29.380936121184895,-94.886591910643261 29.369941049100753,-94.886536208040312 29.366386054846032,-94.886982892003275 29.364738908620176,-94.888420210858001 29.359438798199445,-94.888544709543254 29.358979709544975,-94.888781730376067 29.358105695694917,-94.894234145274325 29.337999926591962,-94.894147383920654 29.327241695272729,-94.894002695197727 29.309300588032027,-94.893993580875261 29.308170430590454,-94.891329624021282 29.304475264201969,-94.888683946869179 29.30080545353194,-94.886599269217157 29.297913803549264,-94.886536208040312 29.297826331584119,-94.885816422022174 29.297499155955627,-94.884216982863776 29.296772137788121,-94.876917125093229 29.293454018939102,-94.875951551627523 29.293015121686942,-94.86617837453683 29.293883848703121,-94.865126326153927 29.293977364132552,-94.861112574100105 29.294855372432302,-94.849730461009372 29.297345209778594,-94.825607939204673 29.30577638202961,-94.824952733476934 29.30600538596191,-94.823862547308252 29.313200608971236,-94.822547126780194 29.321882377573708,-94.82230657170463 29.344254498409398,-94.810695999999993 29.353434999999998,-94.797913847039041 29.344567105809805,-94.79693012269928 29.343884625840758,-94.784895000000006 29.335535,-94.779995 29.334935000000002,-94.777063999999996 29.336811,-94.773074869484503 29.336485139838025,-94.745528999999991 29.334235,-94.744945 29.33641,-94.731319999999997 29.338066,-94.722529999999992 29.331445999999996,-94.731082 29.331833,-94.769694999999999 29.304936,-94.780304129101268 29.295750693651897,-94.786095000000003 29.290737,-94.793321795438203 29.286014946162535,-94.795651468635626 29.284492716516493,-94.803695000000005 29.279236999999998,-94.809348860129617 29.275904173901317,-94.81020919937113 29.275397022855465,-94.819018398045671 29.270204194137058,-94.82210781776098 29.268383049216432,-94.825036245866656 29.266656805306088,-94.825782574142963 29.266216861214712,-94.826962003659688 29.265521613475173,-94.833188167130103 29.261851427154124,-94.844390135018429 29.255248113651685,-94.870677905110114 29.23975205180561,-94.881596387366812 29.233315846843187,-94.896165027201874 29.224727954332334,-94.925556066041452 29.207402583865772,-94.927613957028456 29.206189502425392,-94.940693735267132 29.198479261054111,-94.968741214129224 29.181945889621023,-94.978383546115566 29.176261947153485,-94.981700088962569 29.174306918145966,-95.026218999999998 29.148064000000002,-95.076832914261459 29.114498139229923,-95.081772999999998 29.111222,-95.084611040272236 29.108948681405003,-95.100241410561338 29.096428488590096,-95.110484 29.088224,-95.116308293211759 29.081343778536318,-95.119264367911811 29.077851775668329,-95.119484217932538 29.077592067446851,-95.122403192505772 29.074143890856067,-95.122524999999996 29.074000000000002,-95.122638295373392 29.073709965581063,-95.125134000000003 29.067321,-95.183550616106302 29.028323983126334,-95.191390999999996 29.023089999999996,-95.192301227546167 29.02243038040822,-95.237672480263356 28.989550945676651,-95.238923999999997 28.988644,-95.240558404572027 28.987315672512366,-95.251568580535192 28.978367386619187,-95.251619678822578 28.978325857575001,-95.272266000000002 28.961545999999995,-95.29656403895315 28.934716691525271,-95.297146999999981 28.934073,-95.309703999999996 28.928262,-95.334686660244515 28.911063042846731,-95.353450999999993 28.898145,-95.376979000000006 28.876159999999999,-95.377903963555724 28.874482723635413,-95.38239 28.866347999999999,-95.416173999999998 28.859482,-95.436326577581042 28.85908617652915,-95.439594 28.859022000000003,-95.449516932572138 28.854239851149391,-95.480746000949352 28.839189657836059,-95.485144835951402 28.837069731735976,-95.486768999999995 28.836286999999995,-95.506945757563287 28.824808612805594,-95.536465934189138 28.808014833314715,-95.564052739104355 28.79232093268277,-95.564094788066555 28.792297011382839,-95.564132228771385 28.792275711681647,-95.568135999999981 28.789997999999997,-95.576201168007842 28.785870627961152,-95.606319447682353 28.770457515020929,-95.613122366343802 28.766976102576891,-95.695711236705606 28.724711019702028,-95.715243498124195 28.714715330888584,-95.812504000000004 28.664942,-95.854124934570734 28.646410960033691,-95.884026000000006 28.633098,-95.920915435374582 28.618912188118028,-95.97832748198536 28.596834417485056,-96.000681999999983 28.588238,-96.000998496292368 28.588108377001081,-96.024040703743012 28.578671299526803,-96.035336417502748 28.574045070633311,-96.05294532761279 28.566833233429691,-96.077867999999995 28.556625999999998,-96.194412 28.502223999999998,-96.220123346321373 28.492065891861738,-96.220376184174313 28.491966,-96.226882700448613 28.487451845000788,-96.241923733725443 28.477016528665938,-96.244750999999994 28.475055,-96.270391000000004 28.461929999999999,-96.303212000000002 28.441870999999999,-96.321560000000005 28.425148,-96.328817 28.423658999999997,-96.341616999999999 28.417333999999997,-96.371116999999998 28.397660999999999,-96.372100999999986 28.393874999999998,-96.370716999999985 28.387667,-96.378616389014681 28.383909329746462,-96.379349732835649 28.386024690464755,-96.381702691108558 28.392811896356477,-96.381863685354148 28.393276290946375,-96.375880899310658 28.401794149460329,-96.37413840285555 28.404274990018202,-96.340801887331921 28.432913073072363,-96.338559687910475 28.434839257985413,-96.335119195902806 28.437794848703732,-96.312964581561445 28.451131053409146,-96.280819757359396 28.470480970729877,-96.274497619264608 28.474286648703266,-96.268341347214189 28.477992481854848,-96.252027698910211 28.484249764669329,-96.250247000000002 28.484932771712327,-96.223824788704931 28.495067307260509,-96.218978121459415 28.500382701101032,-96.21505000939203 28.509679222336811,-96.145447855080619 28.544740658174199,-96.10473518795402 28.559498996555909,-96.046210731424992 28.586980036018211,-96.032979113622659 28.589015683181284,-96.007533711461477 28.59970275682273,-95.986159544454679 28.60631857558586,-95.982088289576367 28.614461085342473,-95.98565064745685 28.621076904105603,-95.983106103295938 28.641942154390655,-95.97852589224803 28.650593590730978,-95.986065974637228 28.655467849280154,-95.996337701374344 28.658736120211515,-96.002953500413568 28.656191585912577,-96.006515878017979 28.648049056432036,-96.010005951759737 28.648641710656278,-96.010506546843942 28.648726717396318,-96.011440067305529 28.648885239790378,-96.014343010193883 28.649378192516537,-96.026200716522851 28.65139176594381,-96.03348799089656 28.652629228032097,-96.039323368019012 28.651170385770797,-96.047737442142406 28.649066870151618,-96.049244844336243 28.648218956037223,-96.052682972641108 28.646285007998213,-96.05836686193534 28.643087818836001,-96.072165030584017 28.635326345489485,-96.092812363862251 28.627145317384699,-96.098878916233431 28.624741586366319,-96.099137163186526 28.624639261986079,-96.099760206508392 28.62447226081035,-96.102639895829256 28.623700385909448,-96.141413249033207 28.613307536255487,-96.148501276515404 28.611407654045699,-96.187178316202875 28.593595864643298,-96.198374286842139 28.586980055742131,-96.221784081288092 28.580364246840958,-96.228908787187095 28.580873158631725,-96.233997875508891 28.596649310733014,-96.233997875508891 28.601738394123839,-96.222292978285921 28.607336389305434,-96.214150448805384 28.613443281484855,-96.212623728226021 28.62260364440889,-96.2309444244882 28.64143324753087,-96.208552463485731 28.662298487953962,-96.214659365527126 28.665351929112688,-96.192267404524671 28.68774389011514,-96.1912495908051 28.694359708878277,-96.195829762405154 28.698939880478335,-96.202445561444364 28.700975507917487,-96.208747675276499 28.700187749031503,-96.21684000834783 28.699176214258408,-96.221467818495611 28.69859774191346,-96.222801895007663 28.698430983480506,-96.223384071149837 28.698294,-96.224163927167865 28.698110503315906,-96.227000018566372 28.697443183508955,-96.229623268039219 28.696825944469072,-96.231453341209956 28.69639533631743,-96.233964222112746 28.695240331316239,-96.23422531976 28.695120226420762,-96.234426397558138 28.695027730650764,-96.243315632596989 28.690938683290845,-96.256898753233088 28.684690448956413,-96.263514562134276 28.683672635236839,-96.268603640594122 28.688761723558645,-96.287942160437836 28.68316371851509,-96.304227224329892 28.671458831154069,-96.305245042980445 28.660262850652849,-96.303866760710434 28.646480081370939,-96.303718312539132 28.644995605411349,-96.322902111893882 28.641863561491792,-96.322903115546453 28.641863397630402,-96.328654788116609 28.640924350533034,-96.373438710121519 28.626674919011112,-96.376492171004159 28.620059100247982,-96.384634680760783 28.615987845369677,-96.473693647496702 28.573239550803915,-96.48794308888057 28.569677192923439,-96.482854000558774 28.580364266564878,-96.480309456397848 28.596649335387912,-96.485907441717487 28.60784531588914,-96.490487633041468 28.610898766909834,-96.510843966604781 28.614970031650095,-96.510335069606953 28.617514575811001,-96.497612348802434 28.625148188569788,-96.496594535082863 28.630746183751381,-96.49964797624159 28.635835272073191,-96.506263795004728 28.638379806372129,-96.513590449607946 28.639711925390898,-96.518002756430107 28.640514162994929,-96.524548246905439 28.641704252172264,-96.541744210187403 28.644830790950802,-96.545449731689985 28.645504522133091,-96.555118991611849 28.64601343885484,-96.5632615210924 28.64448670841351,-96.564664053901609 28.647882315216158,-96.572092291837293 28.665866475800886,-96.572930781014264 28.667896502859467,-96.570386236853366 28.674003385176928,-96.559190266214102 28.687235002979271,-96.559699163211917 28.6913062775815,-96.561225893653244 28.696395346179383,-96.566823878972883 28.697922096344637,-96.575158129308363 28.702846874961025,-96.578019859474111 28.704537895383844,-96.57828826199534 28.705826226653553,-96.579938546079447 28.713747585140421,-96.580564403635009 28.716751699466613,-96.584126761515478 28.722858581784067,-96.584439828543964 28.722940967911413,-96.591359183115401 28.724761852179114,-96.593796021437342 28.725403125944972,-96.611342043876562 28.720366765465901,-96.616906294097589 28.718769618875786,-96.625254999999996 28.716373230030175,-96.632357663078409 28.714334501780041,-96.638120426114043 28.71268037463507,-96.643733366943522 28.711069252030907,-96.64589364157122 28.710449172933409,-96.648758110223909 28.709626963981723,-96.65548660082564 28.704200766225345,-96.664534272187169 28.696904262901135,-96.657918463285995 28.687743919701024,-96.642136214348383 28.67476740345478,-96.635017595423747 28.668914316579048,-96.634564255386636 28.662567599984854,-96.634358790297441 28.659691108644115,-96.634304719917793 28.658934128568227,-96.633999771842213 28.654664885057134,-96.627892869800831 28.650084693733149,-96.626425176648581 28.649921620227584,-96.623312698200763 28.64957579673532,-96.621378075676532 28.648286046719594,-96.615940371111847 28.64466090565978,-96.615679075580019 28.64448670841351,-96.614055987266909 28.642701311583636,-96.613585709918453 28.642184006591457,-96.613038272810982 28.641581825879328,-96.612716570908134 28.641227953848528,-96.611999586497333 28.640439271135588,-96.610589997120172 28.638888723093881,-96.610589997120172 28.638695619081329,-96.610589997120172 28.63634418879494,-96.61975034032028 28.62769274259265,-96.620390401117646 28.626519297452973,-96.620672695530928 28.626001757543317,-96.621575870071126 28.624345937066781,-96.622336527533278 28.62295139797671,-96.622803791340985 28.622094747411062,-96.621924089240224 28.619379144726071,-96.621515564809087 28.618118047314677,-96.621338841511317 28.617572510068054,-96.620571817957583 28.61520474122884,-96.620437729127232 28.614790814755992,-96.617253050911174 28.604959849584038,-96.615239196090883 28.598743166058551,-96.614649885719274 28.596923990196654,-96.613008078443599 28.591855801497097,-96.611528402529856 28.587288105363601,-96.611113505533794 28.586007336117376,-96.611098903979951 28.585962261746474,-96.608298572876635 28.583628658523324,-96.608045443097311 28.583417717585569,-96.607377235577218 28.583437664220053,-96.600365219155734 28.58364697962633,-96.593251058093557 28.583859344147964,-96.573948594733835 28.584435541167107,-96.565297148531556 28.582399903865994,-96.564279334811971 28.57629300182461,-96.563658896232639 28.575155527088082,-96.562968608029692 28.573889994257026,-96.561225893653244 28.570695006643017,-96.557566061723506 28.569051817003789,-96.543745727976315 28.562846769979732,-96.536289388489891 28.559499026141786,-96.535271536438941 28.559346348925885,-96.526111211846271 28.557972305562419,-96.524846286909124 28.55686549700842,-96.523547686998668 28.555729222873186,-96.522039937244045 28.554409942750958,-96.516783301381025 28.541093122164042,-96.514406314623301 28.535071417976255,-96.512075206364955 28.532603188828926,-96.505754868421008 28.525911074776143,-96.496773944100411 28.520225902118948,-96.493684489370622 28.518270192113103,-96.482894459981281 28.511439806078794,-96.464303363514816 28.49967112954555,-96.450283853050735 28.49079639296917,-96.41974938229167 28.46738661824714,-96.410828816467941 28.459457253614527,-96.410588999643707 28.459244083835621,-96.409758652296418 28.458206146634446,-96.408886828651134 28.457116363910039,-96.40506625078595 28.452340627696451,-96.402446489887097 28.449065917053971,-96.402758256176753 28.447714917044181,-96.403973200604497 28.442450108152798,-96.407195206365273 28.441281062045864,-96.417343901660857 28.437598792799108,-96.461479843413926 28.421584870195201,-96.476120924474287 28.411702150055138,-96.481836236149007 28.407844318412668,-96.504737094149291 28.397666161492985,-96.511137484289378 28.396220910815867,-96.520513236388609 28.394103803612502,-96.534249520963641 28.388796609353736,-96.542905217114992 28.385452367272176,-96.559699173073881 28.377818734789468,-96.57038624671533 28.368658381727396,-96.577905378446388 28.364719789411506,-96.5917603939982 28.357462401226169,-96.600411840200493 28.354408960067438,-96.650793747525029 28.34677533744669,-96.672676831253582 28.335579347083499,-96.688452973492915 28.347284234444516,-96.694559875534281 28.347284234444516,-96.698122233414779 28.342704062844462,-96.705246949175717 28.348810964885843,-96.700157860853906 28.369676195446971,-96.705755865897487 28.400210705653887,-96.710336037497541 28.406826524417021,-96.710425531143088 28.406841439843959,-96.711757514930511 28.407063434453107,-96.711949596522956 28.407095447664108,-96.71209813364915 28.407120203551969,-96.7125191933293 28.40719037931537,-96.712878460543081 28.407250256459115,-96.722549831718325 28.408862132132249,-96.749013067323034 28.408862132132249,-96.762244685125353 28.411915593014903,-96.76554491144303 28.411090543097366,-96.768351577304784 28.410388882297497,-96.775985199925543 28.405808690973519,-96.777118787058129 28.404067826336821,-96.778115367638478 28.402537364460464,-96.780337941159374 28.399124129135416,-96.780820705165937 28.398382742114745,-96.790234641309425 28.383925636830853,-96.794392274787313 28.366371177405831,-96.794814812909479 28.364587126849088,-96.794810066932399 28.364444747076842,-96.79477772408616 28.363474458555832,-96.794305906049686 28.349319871745632,-96.794064195689629 28.347593374049037,-96.792754716842737 28.338239980125699,-96.790743538307225 28.323874459722486,-96.791161640090152 28.319066463411133,-96.791737095961722 28.312448960638157,-96.791761391474679 28.312169572361466,-96.791798306096766 28.312130020933203,-96.806010803272656 28.29690232711997,-96.809573161153153 28.290286508356836,-96.806010803272656 28.282143978876302,-96.799480493673911 28.2729662335258,-96.799349781293685 28.272782529381054,-96.787181219874626 28.255680743271615,-96.787181219874626 28.250082757951983,-96.800412817953031 28.224128419345121,-96.810027933605966 28.21709297064087,-96.81015126416365 28.217002728792142,-96.823379937963566 28.207323213817581,-96.836184503007971 28.197954022244446,-96.84100213695676 28.194428925121734,-96.842143298799229 28.193593928862132,-96.847274602334139 28.190686192954498,-96.857267971405633 28.185023289193378,-96.872677809006134 28.176291056181483,-96.877474270970822 28.171878306563691,-96.886067200578026 28.1639728030657,-96.898123211167331 28.152881261735526,-96.906497631141988 28.149042991548708,-96.910337015250093 28.147283276415891,-96.926704620510804 28.131597659113019,-96.934764623415617 28.123873491831901,-96.962356663895278 28.123371819605953,-96.962754569737697 28.123364584972112,-96.979717515560068 28.129783000626698,-96.995398793779131 28.135716460690723,-97.000413785843605 28.137614026355994,-97.007520616950742 28.136091128354632,-97.007538501604586 28.136087295914667,-97.009222611239821 28.135094102666635,-97.00939982996681 28.134989589017771,-97.027385928308092 28.12438239869169,-97.028912648887456 28.117257682930727,-97.025203084589847 28.111384210119862,-97.023365428929196 28.108474590635566,-97.022805746846075 28.107588427939849,-97.02290356380766 28.107197159145706,-97.023379876854563 28.105291902342927,-97.02382356056566 28.10351716319958,-97.025496807419856 28.101530180660298,-97.031966099908146 28.09384788848477,-97.033883146887263 28.088918342142531,-97.035528457788629 28.084687545284659,-97.035528457788629 28.083043098067591,-97.035528457788629 28.081818766572983,-97.035528457788629 28.074000471643224,-97.033022532693735 28.061470870449408,-97.032801767679686 28.060367047518316,-97.031459273912688 28.053654591691117,-97.031457183186404 28.053644138079921,-97.025859197866765 28.041939250718904,-97.030948266464648 28.033287814378582,-97.03239348781301 28.032603236465789,-97.040617526386512 28.028707642778524,-97.041168915404441 28.028259640036232,-97.046718327422383 28.023750751173218,-97.048760075590963 28.022091833877354,-97.050263648357429 28.019142519014494,-97.059727497080047 28.000578821719444,-97.061991693393324 27.99613751499442,-97.06790259446116 27.99219690579767,-97.073772658186698 27.988283521554418,-97.075732208193486 27.986977152070377,-97.083740513918784 27.975854507337193,-97.090858162154831 27.965968886660271,-97.094600599978094 27.960771057335059,-97.101378519421061 27.951357282114685,-97.101544336287489 27.951126980954953,-97.101629253046639 27.951009041034034,-97.112670327945679 27.935674217691009,-97.118292397880069 27.927865788706086,-97.121533983365822 27.923363587495643,-97.122089895488358 27.923104160785101,-97.123659587861624 27.92237163470331,-97.129167576400675 27.91980122961516,-97.134800331352182 27.902469771509406,-97.13578341488774 27.899444915775788,-97.139044920333077 27.897526377912126,-97.141761509630356 27.895928379836029,-97.144434841366106 27.894355827453982,-97.155121915007527 27.880615312653809,-97.156735458496229 27.877916799393841,-97.171211094589736 27.85370753808861,-97.17159000749372 27.853073838716419,-97.18273536107327 27.834434189625789,-97.184638591770963 27.831251199324921,-97.187183135931861 27.824126483563962,-97.18941247112663 27.823657146727278,-97.196852395853725 27.822090836400886,-97.201135366472329 27.822090836400886,-97.208766105658313 27.822090836400886,-97.209575096934316 27.822090836400886,-97.21103842611052 27.822356897891609,-97.21191517248603 27.822516307306422,-97.214117494684729 27.822916731993345,-97.215541825234411 27.823175702780983,-97.217387510601711 27.823511284007832,-97.220771087297493 27.824126483563962,-97.222189700736266 27.82464074101355,-97.223091414240102 27.824967618564596,-97.225175600069406 27.825723150734085,-97.225442194074731 27.826156365185522,-97.225555528799433 27.826340533769983,-97.225696025109201 27.826568839847944,-97.22598639723725 27.82704069367685,-97.227317456819009 27.829203661466853,-97.227317456819009 27.832884543697009,-97.227317456819009 27.832951908184537,-97.22711696094737 27.834288541284948,-97.22651425924083 27.838306534493725,-97.227537582741903 27.841230302974814,-97.228388390382094 27.843661171179477,-97.233100025453197 27.847817700825228,-97.234045759551762 27.848652012430087,-97.234511621821596 27.849062988727319,-97.238500481248579 27.854279199579018,-97.239439164419366 27.855506710708827,-97.241127420860792 27.857714434929608,-97.24139627838295 27.858969111470945,-97.242350826195675 27.863423696705052,-97.242654131578206 27.86483913096664,-97.243132066142749 27.865496290124597,-97.244364366034702 27.867190700237273,-97.250796680782656 27.876035121329831,-97.263010484865433 27.88010639593206,-97.267085449659064 27.88068852838779,-97.272090543185925 27.881403535150675,-97.273697558506882 27.881633106649463,-97.276628649874411 27.881144591421538,-97.283916343274228 27.879929975854907,-97.291452123510041 27.878674012482271,-97.291709327200167 27.878631145200583,-97.295071705789752 27.87807074876898,-97.29826066531912 27.876989746639367,-97.302276298241679 27.875628516526195,-97.30641171632756 27.874226681314273,-97.315889353880934 27.871013926092836,-97.325097299274915 27.867892591849294,-97.326845878314657 27.866807265961079,-97.334190606350404 27.862248465187459,-97.346213303335873 27.854786094892546,-97.354613966176373 27.849571885725148,-97.359768343966266 27.850509060182219,-97.360211961357962 27.850589719168646,-97.360654441244435 27.850290746360063,-97.363614400263117 27.848290774636723,-97.376904444631478 27.839311017562139,-97.379041564479934 27.837867018088055,-97.379057154646048 27.837837708581311,-97.379081675001302 27.837791610322164,-97.37968928125764 27.836649310776913,-97.391764280353456 27.813948316782309,-97.391812130016405 27.812975373996721,-97.391812459346511 27.812968677620422,-97.39203202611381 27.808504155006624,-97.392068018906713 27.807772301822137,-97.392095751995882 27.807208395884746,-97.393123788240075 27.786304999999999,-97.393168763213623 27.785390509210199,-97.393291005863816 27.782904909577571,-97.393142269808052 27.782564941361908,-97.39298939956177 27.782215523565412,-97.390949955785928 27.777553936582201,-97.390465068726371 27.776445623015572,-97.390185233729682 27.775805999999999,-97.389524844304646 27.774296538065283,-97.38835420640342 27.771620793596586,-97.388306220610531 27.771511111755789,-97.388011229692253 27.770836846624743,-97.38704242749894 27.768622441036733,-97.386166290102864 27.766619840754537,-97.385225495384532 27.765302728148875,-97.378862356737287 27.756394334042721,-97.375764970087644 27.752057992733249,-97.373069654276961 27.748284550598278,-97.368354500700462 27.741683335591173,-97.365855345900911 27.739779218033028,-97.354970329043653 27.731485873530172,-97.352272255056832 27.729430198526604,-97.34997871774064 27.727682741876539,-97.347507961666906 27.725800261438444,-97.346980343555629 27.725398266768138,-97.343485766084669 27.723942192633796,-97.323096068004702 27.715446484002907,-97.316445853072636 27.712675560756566,-97.312489136070184 27.711663774861414,-97.307771479065892 27.710457406346261,-97.30518751069485 27.709796650788128,-97.285725857752936 27.704820043684109,-97.259850586867117 27.698203387982087,-97.253955150197811 27.696695845323848,-97.254014647303208 27.696526337654994,-97.255455364792269 27.692421723465429,-97.259957004258851 27.67959652118169,-97.261636792970123 27.679316557300702,-97.26241778482418 27.679186392412099,-97.266063906300232 27.678578707462119,-97.266172011465457 27.678349884642419,-97.272736281666539 27.664455499360063,-97.273042341106247 27.663807672923248,-97.273584380560237 27.662660354976065,-97.276535709391737 27.656413369610792,-97.277059923980644 27.655303780997631,-97.278846463786479 27.651522268106756,-97.280071982275985 27.648928251476995,-97.280889132874719 27.647198614380269,-97.282300269490932 27.644211705671331,-97.282869528026779 27.64300677394548,-97.287959956150573 27.632232024058997,-97.288756326795195 27.630546371240786,-97.290370933329072 27.627128784125372,-97.290610159422798 27.626622421740255,-97.291264204229464 27.625238025568656,-97.291996439564016 27.623688125953898,-97.292910903535031 27.621752508687905,-97.293983233844585 27.619482740684056,-97.29528946695001 27.616717877953022,-97.296598377059297 27.613947348891728,-97.297587499071795 27.609496333379006,-97.298634024222366 27.60478700569162,-97.29761621050281 27.598680093788271,-97.294053852622326 27.594099922188217,-97.294182769084571 27.593971005725969,-97.300049926927869 27.588103847882682,-97.302196382102863 27.585957392707677,-97.311120578488044 27.579146819865922,-97.321534901946578 27.571199044464009,-97.325080504595888 27.561034984604785,-97.336802147188081 27.527432946040641,-97.343417965951204 27.517763686118776,-97.347489240553443 27.503005347737066,-97.350542661988243 27.478577729709574,-97.359194108190536 27.458221396146271,-97.365809926953673 27.450587783387487,-97.371916828995055 27.425142361502377,-97.369881181831957 27.412419660421783,-97.372934622990698 27.401223670058592,-97.379550422029908 27.390027689557368,-97.399397858595393 27.344734850830708,-97.401942402756291 27.335574497768633,-97.404995863638931 27.329976512448997,-97.413138393119482 27.321325066246711,-97.42026310888042 27.317253791644482,-97.430441285524054 27.313691423902039,-97.450797599363412 27.313691423902039,-97.482858840011673 27.297915271800758,-97.508304242172855 27.275014394076553,-97.532222933616623 27.278576761818989,-97.544436737699399 27.284174747138625,-97.546981281860297 27.290790556039799,-97.536803105216677 27.289263825598471,-97.526624948296998 27.291808369759369,-97.524589320857856 27.297915271800758,-97.51746460509689 27.305039987561717,-97.504741884292372 27.305039987561717,-97.498126085253162 27.308602345442196,-97.502706237129289 27.322342870104325,-97.499143898972747 27.327940855423961,-97.483876634007316 27.33862793892736,-97.483876634007316 27.351350640007954,-97.486930094889971 27.358984272490666,-97.501688443133645 27.366617904973374,-97.514411144214236 27.361528796927644,-97.520518046255617 27.352877370449281,-97.538329835658018 27.335574478044709,-97.570899973304094 27.315727061203152,-97.584131581244463 27.309620159161771,-97.609068086407831 27.285192570720163,-97.621790807212349 27.287228188297352,-97.63146005727225 27.286210384439741,-97.63654914066305 27.282139109837512,-97.636657939024673 27.281797172172649,-97.640111498543547 27.270943129336285,-97.639093679892994 27.253131339933887,-97.635022415152719 27.247024437892502,-97.628915513111338 27.242953173152234,-97.597363199046811 27.242444266292445,-97.5826048606651 27.240408628991332,-97.573953414462821 27.238881903480983,-97.56123071338223 27.232775006370584,-97.542910007258072 27.229212648490105,-97.520009129533875 27.231248285791217,-97.509830972614182 27.235319550531486,-97.503215153851045 27.23989972213154,-97.500161712692318 27.244479898662579,-97.485148876501881 27.25084127385778,-97.467082638600573 27.253640266517596,-97.45843119239828 27.259492710198106,-97.450288657986775 27.262546171080761,-97.424079880742951 27.264072891660124,-97.422298701802717 27.257711541119829,-97.434766954384401 27.202240525749552,-97.444945121166043 27.144733882940127,-97.443672849085587 27.116235010034327,-97.452324285425917 27.115217201245734,-97.455886653168363 27.110382571284802,-97.456650008527049 27.09969549764336,-97.46173908698691 27.095624227972113,-97.475479621510999 27.098423220631929,-97.480568699970846 27.102494490303176,-97.491510231973166 27.101222218222723,-97.495835955074313 27.09409750739275,-97.4932914109134 27.078066891999608,-97.477515248950155 27.066107546277717,-97.479041969529504 27.06279964182713,-97.482256963728076 27.061942305056665,-97.48693005051112 27.057710553505324,-97.487693415731783 27.053639288765055,-97.486675602012198 27.034809685643079,-97.477515248950141 27.032519589981089,-97.473952881207694 27.029211690461484,-97.473443984209865 27.022850330059228,-97.478300083716704 27.000269498406993,-97.478533072531675 26.999186101907302,-97.480568690108868 26.997659376396957,-97.483967678435022 27.000330000000002,-97.484131057851314 27.000458369056773,-97.492988547644813 27.000330000000002,-97.49889841702128 27.000244349959733,-97.533497176854453 26.999742920066073,-97.536803065768822 26.999695008767091,-97.549271318350492 26.995878197456715,-97.555378215460905 26.990280207206101,-97.551052502221722 26.980865400714134,-97.549525776711377 26.965343697111763,-97.552324769371197 26.95211208177491,-97.555378205598956 26.947277449348487,-97.555378205598956 26.938880461507075,-97.540874325578116 26.906310323861007,-97.540110950495503 26.900966796902246,-97.547999041339082 26.895114353221743,-97.552324764440229 26.888498544320569,-97.552324764440229 26.875332999999998,-97.552324764440229 26.873831771434514,-97.552324764440229 26.871753101924,-97.552324764440229 26.867633303897481,-97.555396527456509 26.865969429990074,-97.558431656619632 26.864325399446898,-97.558453748966258 26.864224239771101,-97.559853702000524 26.857813929560987,-97.562641307980527 26.845049630589628,-97.563266286580571 26.842187886943357,-97.552579212939136 26.827938454188693,-97.547744582978211 26.824630549738107,-97.537566416196555 26.824885004400745,-97.509830908511418 26.8035108521869,-97.48438549155729 26.763561555211936,-97.478024141017002 26.757200199740662,-97.471662790476714 26.758726925251008,-97.468609339456009 26.740915130917632,-97.467337057513589 26.710126182073765,-97.444945096511148 26.633535472850511,-97.445708451869848 26.609362327976836,-97.441206258760758 26.5999011976768,-97.435205432977895 26.587290766879221,-97.432741093635642 26.582112082834445,-97.429217375703914 26.574707168454967,-97.428151110966368 26.572466467229631,-97.418145193925739 26.555638334425574,-97.416955130465126 26.553636864107652,-97.41864075483771 26.543121778291471,-97.42039414733226 26.532183948458435,-97.422284917775215 26.520389141863415,-97.422298667285844 26.520303371102887,-97.425861015304378 26.516741008291426,-97.430695645265303 26.506562841509776,-97.430695645265303 26.494603495787885,-97.42802638225659 26.488322868889494,-97.42636993202612 26.484425333937217,-97.429168909893022 26.478063961207511,-97.43553026043331 26.470175880225888,-97.441382709044788 26.466613522345408,-97.441382709044788 26.455417541844177,-97.43756589773443 26.449819546662585,-97.425861005442428 26.446002740283195,-97.421026375481503 26.446766095641895,-97.417209564171131 26.449819546662585,-97.411611568989528 26.447275002501684,-97.412883841069984 26.433025580841726,-97.421789740702152 26.417249413947498,-97.419499649971158 26.413178149207234,-97.406013578738921 26.409106884466965,-97.398125502688274 26.410888063407203,-97.394308686446919 26.414450416356704,-97.395072051667569 26.417249413947498,-97.382484933201752 26.411326066613285,-97.377769169124974 26.409106884466965,-97.369626639644437 26.394602999515151,-97.374461259743413 26.38086247238753,-97.388965149626202 26.365849678110436,-97.392018610508856 26.339386444971247,-97.391000786927322 26.332261729210284,-97.38794734576858 26.330480545339064,-97.376242448545611 26.336332993950553,-97.372171183805335 26.339895346900054,-97.36937219114553 26.348546788171358,-97.358176200782339 26.356434874083959,-97.343417852538664 26.35923386920927,-97.342332537534404 26.358759043566288,-97.335275323058127 26.355671510096041,-97.335020017473738 26.355402767481841,-97.331108052904881 26.351284911668415,-97.330440693097202 26.350582427937965,-97.333762617526986 26.340749518544904,-97.336802038706509 26.331752819885011,-97.343786761143846 26.325987658774913,-97.344677525679145 26.325252425399061,-97.352414066956698 26.31886671611711,-97.352832659030639 26.318521211944631,-97.354359379610003 26.313941040344577,-97.348998828460125 26.312092573442666,-97.347821984790102 26.311686765063648,-97.346980205488165 26.311396496183672,-97.34736083223585 26.297503848546928,-97.347437236753805 26.2947151295396,-97.347489122209922 26.292821341560611,-97.347051378510429 26.289694600417153,-97.344137846000223 26.268883651035111,-97.343926764329439 26.267375924606483,-97.342629246748771 26.266550231912309,-97.341127771669619 26.265594748131736,-97.335282658907644 26.265594748131736,-97.331967408745584 26.265594748131736,-97.330307576264516 26.266747410222209,-97.323817586106017 26.271254350355399,-97.322807065545476 26.271956101137519,-97.313207351206557 26.273518846137112,-97.312102101648151 26.273698770576502,-97.311865543405119 26.273737280077761,-97.307030913444194 26.253126493084562,-97.308048727163751 26.249055213551365,-97.321280340035131 26.236078054109896,-97.321280340035131 26.228698889850026,-97.304486359421333 26.202490107675235,-97.296598288301666 26.200708923804015,-97.294817109361432 26.192311940893585,-97.296089381441874 26.182388227541828,-97.303096384204423 26.167373221160254,-97.305986772892751 26.161179530923267,-97.306776455083323 26.159487354748606,-97.300965235160419 26.149753561518516,-97.296881711355638 26.142913659244432,-97.296598288301666 26.14243892563589,-97.285549237329036 26.12861437636975,-97.28536038956149 26.128378090441405,-97.284582435540926 26.126454238998875,-97.282094393487881 26.120301403270393,-97.282839179410786 26.118439442973433,-97.28311220967295 26.117756868971455,-97.285501587752023 26.116923364107649,-97.294053737977038 26.113940052730097,-97.295071554162092 26.108342057548505,-97.292023254217796 26.105090538920617,-97.291924538345086 26.104985242032239,-97.291541272704407 26.104576425513905,-97.287190793518263 26.099935916255493,-97.286650074642992 26.099359149688052,-97.286603231473521 26.09930918366079,-97.283195451762182 26.095674220102872,-97.282639002190891 26.095080674133143,-97.282108002623801 26.094514274823585,-97.280435495761154 26.092730268223651,-97.279905974795895 26.09216544608875,-97.27980430522237 26.092056998587434,-97.27089841052117 26.086459003405839,-97.267086875013263 26.085485845069449,-97.24859983335169 26.080765747704277,-97.246979719077387 26.080352101364454,-97.229515030031649 26.08000965739204,-97.220290685310772 26.079828788368793,-97.208048240752987 26.079588741074772,-97.205005053278043 26.078666562185607,-97.199651252911579 26.077044196913871,-97.199152512570265 26.073220535461079,-97.199134106850465 26.073079425477676,-97.198725011196004 26.069943037351702,-97.198302051934135 26.066700361972018,-97.196018989165054 26.049196947106083,-97.195939794821285 26.0485897927724,-97.195071061587612 26.04192952989985,-97.204994779870347 26.030224637607851,-97.214918488291119 26.030733549398622,-97.224842206573854 26.027425644948035,-97.226114478654296 26.024372193927345,-97.219244211392265 25.99612778184791,-97.216954125592238 25.993837693582392,-97.208557137750816 25.991802058746771,-97.195834416946283 25.993074335758202,-97.174460269663413 26.000071824804216,-97.167208324722026 26.007069313850227,-97.162755377371425 26.014575709756024,-97.16262814819099 26.023481604457221,-97.172042954682937 26.044728528107019,-97.178658763584124 26.045491893327686,-97.182730028324386 26.053125515948434,-97.164981847348457 26.063876207878327,-97.152009000000007 26.062107999999998,-97.152012551274964 26.062039393270581,-97.15321 26.038906,-97.151921999999999 26.017652999999999,-97.14747181118706 25.985075937251509,-97.145567 25.971132,-97.146880999999993 25.969781,-97.146293999999997 25.955606,-97.147784999999985 25.953132,-97.156608000000006 25.949021999999999,-97.160293999999993 25.950243,-97.168198638692317 25.959262149012673,-97.178362000000007 25.962114,-97.187583000000004 25.958174,-97.206945000000005 25.960899,-97.214339285966162 25.960186817526893,-97.227626420907342 25.958907063854085,-97.229225999999997 25.958753000000002,-97.239867000000004 25.954974,-97.244841570811701 25.950784663302475,-97.248032999999992 25.948097,-97.255343503388133 25.949129556975723,-97.276707000000002 25.952147,-97.28138899999999 25.948036999999996,-97.277163000000002 25.935438,-97.284201820237172 25.935775045516863,-97.290083634347766 25.936056689174489,-97.293963761326751 25.936242484429805,-97.303601999999998 25.936703999999999,-97.316138101068788 25.931602038234757,-97.320560999999984 25.929801999999999,-97.324914000000007 25.924040999999999,-97.332235861490744 25.923541683060932,-97.33463605770983 25.923378000829199,-97.338346 25.923124999999999,-97.339310160867683 25.923294280152341,-97.350397999999998 25.925241,-97.367642000000004 25.915679999999998,-97.369283543255307 25.913688286645449,-97.373641276386991 25.908400972256459,-97.374430000000004 25.907443999999998,-97.372365000000002 25.905015999999996,-97.365976000000003 25.902446999999999,-97.365883578347024 25.900015396466173,-97.365521 25.890476,-97.364300486696564 25.885628504434479,-97.362421560218849 25.878165998501085,-97.360082000000006 25.868874000000002,-97.364783621478566 25.852096838905283,-97.36542 25.849826,-97.372864000000007 25.840116999999996,-97.394513000000003 25.837377,-97.422635999999997 25.840377999999998,-97.42853949246836 25.842912007889609,-97.434188204901034 25.845336654308195,-97.441181027463472 25.848338244915578,-97.445113000000006 25.850026,-97.445601387363794 25.851485440010176,-97.447179184935308 25.856200346812667,-97.448271000000005 25.859463000000002,-97.449172000000004 25.871677999999996,-97.452166849899044 25.875807172885114,-97.453724626189043 25.87795496921364,-97.454727000000005 25.879337,-97.45488774919265 25.879394304385261,-97.462586893331732 25.882138919861518,-97.468261999999982 25.884162,-97.468599721544905 25.884059457735212,-97.481532785459223 25.880132596436578,-97.486059999999995 25.878758,-97.490359999998347 25.879275544671589,-97.494739403174762 25.879802646248233,-97.496860999999996 25.880057999999998,-97.519591990380178 25.88590026892226,-97.521761999999995 25.886458,-97.52344767329889 25.891064017588189,-97.524375103029939 25.893598172727145,-97.528116959024402 25.903822606212749,-97.528119935206945 25.903830738482007,-97.52812430798204 25.903842686870224,-97.528627999999998 25.905218999999999,-97.528849446448064 25.906732522417784,-97.530321999999998 25.916796999999999,-97.530415259581318 25.916820899843632,-97.539878370214808 25.919246032588486,-97.542957 25.920034999999999,-97.545169999999999 25.923974999999999,-97.545468770003851 25.926387609575503,-97.545470694802859 25.92640315259677,-97.546397824784293 25.933889856891241,-97.546420999999995 25.934076999999998,-97.546611329705271 25.934141994258589,-97.555160182125618 25.937061277530951,-97.555378999999988 25.937135999999999,-97.555477252221124 25.937015705749829,-97.559364000000002 25.932257,-97.582565000000002 25.937856999999997,-97.580418999999992 25.945115999999995,-97.583044 25.955442999999999,-97.598043000000004 25.957556,-97.5981230356591 25.957681442330628,-97.607733999999994 25.972745,-97.60783562843973 25.973457509771446,-97.607844088251909 25.973516820913719,-97.608283 25.976593999999999,-97.609461531117333 25.977846566488182,-97.613191727531174 25.981811093986448,-97.613466053312663 25.982102652924251,-97.616041456343709 25.984839842874308,-97.624938181905222 25.994295461083137,-97.627225999999993 25.996727,-97.634804000000003 25.999508999999996,-97.635072411453706 25.99971613545971,-97.639164724998494 26.00287420951236,-97.642117661027001 26.005153015998879,-97.644011365977178 26.006614404624422,-97.643848619841975 26.01214811069886,-97.643707610985203 26.016942704231127,-97.649175518723894 26.021499311673544,-97.65096419129361 26.02118629315062,-97.659123404318109 26.019758427116106,-97.661326460130226 26.019372891335045,-97.66298585459532 26.019511685247039,-97.668297999999993 26.019955999999997,-97.669519566971061 26.021667429940447,-97.671350987084779 26.024233271429612,-97.671567999996611 26.024226704244594,-97.691453959129774 26.023624920821636,-97.697068999999999 26.023454999999998,-97.703247203861338 26.030308742132775,-97.706066818770353 26.031284762516545,-97.709294717923569 26.032402112038366,-97.711145328137576 26.033042707775564,-97.719920000000002 26.030837999999999,-97.723585926686539 26.030959832537771,-97.729354247932832 26.031151535557555,-97.735180242251758 26.031345155270547,-97.758837769919694 26.032131383932391,-97.76309059882324 26.033650253079866,-97.763351431657455 26.034258862745556,-97.76491324062286 26.037903081983409,-97.769788888528993 26.041344719068825,-97.770077387482857 26.041548365582649,-97.776788595669075 26.042443189872706,-97.779190602367677 26.042763456191249,-97.784050976575529 26.040637041739476,-97.789822674626535 26.0424596835391,-97.792252861730461 26.04428232533872,-97.793102878401371 26.047342389307317,-97.793537334820812 26.048906434437896,-97.794638769549053 26.052871604582215,-97.795290594138677 26.055218176136449,-97.801344 26.060016999999998,-97.803973303988229 26.059548218630308,-97.8082126910423 26.058792373859696,-97.819424117916668 26.056793476786609,-97.820997703829306 26.056512920501468,-97.825546000000003 26.055702,-97.826721102251625 26.055271667399982,-97.830409376527257 26.053920989485444,-97.836607999999984 26.051650999999996,-97.848759348822554 26.052295281844582,-97.85186756815483 26.052460084066457,-97.859824237628374 26.052881958029587,-97.860225497621784 26.05290323340671,-97.860503999999992 26.052917999999998,-97.861874999990562 26.053580848914272,-97.869705222636284 26.057366592615971,-97.871187000000006 26.058082999999996,-97.876982999999996 26.064482999999999,-97.886529999999993 26.066338999999999,-97.901546631929207 26.060958662441269,-97.905109129229899 26.05968224852101,-97.913882 26.056539,-97.935419999999993 26.052687999999996,-97.944344999999984 26.059620999999996,-97.950095000000005 26.061827999999998,-97.96210735288345 26.054793018383155,-97.96735799999999 26.051718,-97.971403108419892 26.054550391225565,-97.978769 26.059707999999997,-97.979877702655912 26.062937323324391,-97.981335 26.067181999999995,-98.010970999999998 26.063862999999998,-98.015122209308288 26.064471399070538,-98.026123959861238 26.06608380989196,-98.028288992822496 26.066401115993269,-98.028758999999994 26.066469999999999,-98.029241090705753 26.065867136858621,-98.033102 26.061039,-98.034402999999998 26.051375,-98.034479464439173 26.051215303797409,-98.034525269179767 26.051119640464091,-98.039238999999981 26.041274999999995,-98.054365285842039 26.044575736209502,-98.070020999999997 26.047992,-98.070022345126233 26.049160242153427,-98.070025 26.051466,-98.071425788568789 26.055027814897404,-98.076094939927231 26.066900165398668,-98.076139697069991 26.067013970337847,-98.076205751241318 26.067181927684643,-98.076543999999998 26.068041999999998,-98.076994427275579 26.068371469710563,-98.080289992888041 26.070782045417982,-98.080494999999999 26.070931999999999,-98.080906883185932 26.070920010911959,-98.084755 26.070808,-98.085506402845155 26.069709056167966,-98.085848999999982 26.069208,-98.085628527723046 26.069048386721494,-98.081567000000007 26.066108,-98.081855064865067 26.063941606819231,-98.081884000000002 26.063724,-98.082307152201508 26.063513440869801,-98.091037999999998 26.059169,-98.093593108176947 26.058759459973995,-98.094431999999998 26.058624999999996,-98.095078111969258 26.058956205325877,-98.096949561841043 26.059915534659098,-98.097643000000005 26.060270999999997,-98.105504999999994 26.067537000000002,-98.122952624574893 26.063250384797335,-98.12786358062813 26.062043837809401,-98.128331000000003 26.061928999999999,-98.142925292417388 26.051941751725515,-98.14645163947533 26.049528582072455,-98.146621999999994 26.049412,-98.146852932570667 26.049588146033326,-98.149462999999997 26.051579,-98.149462999999997 26.055813,-98.151730999999998 26.058187,-98.158277994458601 26.062311711597108,-98.16142849281799 26.064296576133319,-98.161911645017582 26.064600969774318,-98.167608590156348 26.068190136655492,-98.172071527808072 26.071001859012309,-98.177897000000002 26.074672,-98.179863281323136 26.072661506851002,-98.189059999999998 26.063257999999998,-98.191534000000004 26.057117999999999,-98.197046 26.056152999999998,-98.200871000000006 26.059161,-98.203328791159265 26.063523594334541,-98.204415309491765 26.065452171017675,-98.20496 26.066419,-98.205720285634712 26.066905180236589,-98.2057544964389 26.066927057036718,-98.220672999999991 26.076467,-98.228363119990576 26.077028417928002,-98.230097 26.077155,-98.231072909449267 26.07694353295701,-98.240214327563166 26.074962705064888,-98.248806000000002 26.073101,-98.250234708208026 26.074229377516481,-98.260964088277859 26.082703320039151,-98.264514000000005 26.085506999999996,-98.272091468517374 26.0934369782697,-98.272527821536428 26.09389363077193,-98.277218000000005 26.098801999999999,-98.277020629370639 26.099144109090908,-98.272932087266241 26.106230915405163,-98.272897999999998 26.10629,-98.272099931737145 26.106512924095771,-98.270258188934392 26.107027377392626,-98.270033999999995 26.107089999999999,-98.269661374787887 26.108231250649609,-98.268046405073434 26.113177467856264,-98.266755660647689 26.117130670341034,-98.265753950746401 26.120198637935399,-98.265698 26.12037,-98.266046753689267 26.120369439652073,-98.268388964369507 26.120365676386069,-98.271048543344023 26.120361403199535,-98.2713587738927 26.120360904747326,-98.279433560913844 26.12034793086255,-98.289509742149562 26.120331741306838,-98.296194999999997 26.120321,-98.299522999999979 26.11749,-98.299575546893735 26.117376878214852,-98.299577897643644 26.117371817572689,-98.299619756950364 26.117281703787395,-98.301477861619162 26.113281617347607,-98.302978999999993 26.110049999999998,-98.307788398559808 26.112633359128559,-98.31093219000293 26.114322040617914,-98.314784784069062 26.116391454064445,-98.31781148535309 26.118017240801439,-98.323055746360907 26.120834185452331,-98.323827999999992 26.121248999999995,-98.324165904650499 26.121735183484471,-98.335204000000004 26.137616999999999,-98.337914801547555 26.149187638321976,-98.338210450252006 26.150449569219312,-98.338419999999999 26.151344000000002,-98.338123748811455 26.151776768193923,-98.337139471603692 26.153214615149455,-98.336278203634194 26.154472768358826,-98.335109254490916 26.156180386856505,-98.334230366689056 26.157464279382136,-98.333315999999996 26.158799999999999,-98.333279392301918 26.159609030127591,-98.333194378655719 26.161487831708563,-98.333156000000002 26.162336,-98.33332593363771 26.162525092143447,-98.336569396995017 26.166134227137082,-98.336837000000003 26.166432,-98.337709251548077 26.166391430160555,-98.345513373134324 26.166028447761192,-98.345781000000002 26.166015999999999,-98.345955918391979 26.165759937155421,-98.34781294946896 26.163041431373035,-98.354645000000005 26.15304,-98.380009845764519 26.156864235849298,-98.386243919298991 26.157804141722139,-98.386694000000006 26.157872,-98.386714843024777 26.157901012682096,-98.387178289965661 26.158546112849205,-98.389418830831929 26.161664858836595,-98.394322667090904 26.168490808715738,-98.402249554153599 26.179524728065878,-98.404432999999997 26.182563999999999,-98.41082579547016 26.183537375155975,-98.418120000000002 26.184647999999999,-98.44253599999999 26.199151,-98.444302622216625 26.201317032456906,-98.444376000000005 26.201407,-98.444366742625562 26.201566115583965,-98.444174812576264 26.204865005795593,-98.443681770155465 26.213339409994948,-98.45054565332704 26.219516919037407,-98.450975699346984 26.219903961344286,-98.465077324681431 26.222335272645303,-98.467962758220992 26.221802674698019,-98.47639547470331 26.220246150374404,-98.481645999999998 26.219277000000002,-98.483269000000007 26.216439,-98.496684404575589 26.212853148677059,-98.500574513964963 26.213825676024403,-98.503492081872309 26.214798198660183,-98.504399410834864 26.216045775617395,-98.509275818143593 26.222750833698164,-98.509327236533252 26.222821533963195,-98.516621175147847 26.223550930651591,-98.520846190978133 26.222726536052498,-98.524733007990875 26.221968131567948,-98.526589565145571 26.221605875956907,-98.528323413163747 26.222421776495104,-98.535240999999999 26.225677,-98.538016739096946 26.231331135295655,-98.538505426714039 26.231595841236214,-98.543851889046309 26.23449184328507,-98.556093449912439 26.231976454911809,-98.561600478976516 26.23084487397777,-98.564343479612191 26.231667774301364,-98.575891642961039 26.235132223865481,-98.57618836327309 26.235221239973473,-98.581780384919284 26.243001439905978,-98.583095590242166 26.247416774401941,-98.585184223567666 26.254428618568909,-98.588002268837087 26.255070784392117,-98.599153999999999 26.257611999999998,-98.610401443364651 26.253223367217647,-98.613465000000005 26.252027999999999,-98.617434734670965 26.252082931217494,-98.618976176235122 26.252104260920568,-98.625299999997523 26.252191766854153,-98.626653663614832 26.252210498179227,-98.633391522135483 26.243617562727948,-98.63418 26.242612,-98.636673745354344 26.241784277127035,-98.654221000000007 26.235959999999999,-98.669397000000004 26.236319999999996,-98.675206000000003 26.239989,-98.678410535728389 26.244637915883345,-98.679041999999995 26.245553999999998,-98.678977427258005 26.246060764449961,-98.677766000000005 26.255568,-98.679196310064967 26.258571609080832,-98.681167000000002 26.262709999999998,-98.687156000000002 26.26512,-98.698855915315121 26.265619481498664,-98.707451416076225 26.272152066874316,-98.710601999999994 26.279018,-98.709170532219119 26.284185773270103,-98.710647239525585 26.288123668959596,-98.711233447604599 26.289686894290245,-98.722550749196131 26.295571625529284,-98.729196000000002 26.299026999999999,-98.73263614407044 26.29899082409209,-98.734613221934339 26.298970033513189,-98.745271658069271 26.303095890935232,-98.745297595683382 26.304159357241051,-98.745599830797417 26.316551278053844,-98.745615470637418 26.317192526042046,-98.748245116157776 26.32061106368975,-98.74905366960931 26.321662182706675,-98.754840366886953 26.324877004144408,-98.755242435754027 26.32510037501579,-98.766685638772316 26.325769085950686,-98.779858354339893 26.326538865087553,-98.779911999999996 26.326541999999996,-98.779946859358333 26.326559704051515,-98.789821999999987 26.331575,-98.796251999999996 26.349104,-98.797592059971961 26.356670995104565,-98.798210999999995 26.360166,-98.807348000000005 26.369420999999999,-98.808280016253249 26.369491024329768,-98.813413043374013 26.369876679389535,-98.81818280466733 26.370235041528161,-98.81932575812273 26.370320914010964,-98.824571000000006 26.370715,-98.828353477559162 26.367368473620303,-98.832909 26.363337999999999,-98.838554497099707 26.360957856802237,-98.842229804437778 26.359408346173527,-98.844057000000006 26.358637999999999,-98.847707 26.359594999999999,-98.853132332741467 26.364754198689674,-98.853414999999998 26.365023,-98.853852117327648 26.365076242531281,-98.854321671505204 26.365133435992636,-98.861354000000006 26.365989999999996,-98.861661690067152 26.365902494757481,-98.869113443480302 26.363783259984523,-98.874117355796216 26.362360176799562,-98.876164212939671 26.361778062685843,-98.882912762903771 26.359858814831277,-98.890964919192157 26.357568829017531,-98.895015448091129 26.359360408468842,-98.900432100164338 26.361756234493352,-98.900829697862818 26.361932094951143,-98.905559653818443 26.364024190108832,-98.91296803413384 26.372226331500926,-98.915344992389564 26.37485796579432,-98.921277034399395 26.381425588572444,-98.922831447878195 26.38166472803821,-98.923508557916591 26.381768898347495,-98.924925720775448 26.381986922427696,-98.926689551972586 26.38116380140492,-98.934437533628781 26.377548077521784,-98.937555770591459 26.376092900630621,-98.942046463189357 26.375531566775365,-98.950185820407469 26.380302920861933,-98.952073083609605 26.383491745197549,-98.952938578460817 26.384954133189183,-98.953327659277917 26.385611545667039,-98.958325183064531 26.394055638388448,-98.960041959595969 26.394835991082342,-98.96758721887106 26.398265653180793,-98.981979903868819 26.396488780147621,-98.98323657723455 26.396333635432413,-98.985344372930967 26.396073413984297,-98.99032130527651 26.395458978465552,-99.008003378826189 26.395458978465552,-99.014739404125635 26.398826987036053,-99.018845438188137 26.404005475794783,-99.021934999999999 26.407902,-99.025336792347318 26.409271761295809,-99.030462148109507 26.411335530401477,-99.031104888479149 26.411594335405351,-99.032315999999994 26.412082000000002,-99.033086386506682 26.412180127570064,-99.037216923343138 26.412706252494743,-99.039107 26.412946999999999,-99.039645291109963 26.412681959983438,-99.045466000000005 26.409815999999999,-99.053184999999999 26.402006,-99.062093000000004 26.397371,-99.082001999999989 26.396509999999996,-99.085125999999988 26.398782,-99.089412999999979 26.408099999999997,-99.092044248326658 26.410330707587079,-99.0977332288968 26.415153685331873,-99.099649490160544 26.416778244479925,-99.110855 26.426278,-99.113807999999992 26.434002,-99.110485406379198 26.436329519428725,-99.103082999999998 26.441514999999999,-99.097481906444941 26.458865277747179,-99.094712087984234 26.467445230774196,-99.091634999999997 26.476977000000002,-99.105030999999997 26.500335,-99.114051328117867 26.510193091438737,-99.123438026388797 26.520451579672599,-99.126618350727256 26.523927276756307,-99.127319211298612 26.524693229780183,-99.127781999999996 26.525199,-99.128040494672888 26.525242991472329,-99.131554903978838 26.52584108518932,-99.136510932879688 26.526684518463242,-99.143658999999985 26.527901,-99.157083944984777 26.532657279516766,-99.166741999999985 26.536078999999997,-99.170704 26.540316,-99.171403999999995 26.549848,-99.167459686682065 26.559874693319248,-99.167410000000004 26.560001,-99.168618869529794 26.566870928153797,-99.16946034016965 26.571652951934592,-99.178064000000006 26.620546999999998,-99.200522000000007 26.656442999999999,-99.209947999999997 26.693937999999999,-99.208906999999982 26.724761,-99.240022999999979 26.745850999999998,-99.242444000000006 26.788262,-99.243132825912184 26.78921716914337,-99.262208 26.815667999999999,-99.268613000000002 26.843212999999999,-99.274832961326339 26.850997131057774,-99.280470999999991 26.858053000000002,-99.295146000000003 26.86544,-99.316753000000006 26.865831,-99.328801222539823 26.879647723469141,-99.328900000000004 26.879760999999998,-99.328852280051947 26.879943529980665,-99.328653604395157 26.88070346927794,-99.326247644284351 26.88990632616278,-99.321819000000005 26.906846000000002,-99.324684000000005 26.915973,-99.337297000000007 26.922758999999999,-99.361143999999996 26.928920999999999,-99.367053999999996 26.929033999999998,-99.379148999999998 26.934489999999997,-99.388253000000006 26.944216999999998,-99.393748000000002 26.960730000000002,-99.390189000000007 26.966348,-99.377312000000003 26.973818999999999,-99.376593 26.977716999999998,-99.378434999999996 26.980034,-99.385448615007036 26.981891053234623,-99.387366999999998 26.982399,-99.403694000000002 26.997355999999996,-99.407320999999996 27.005808999999999,-99.415475999999998 27.017239999999997,-99.420446999999996 27.016567999999999,-99.429379999999981 27.010833000000002,-99.432154999999995 27.010698999999995,-99.438721 27.01463,-99.445682828533535 27.022104842939122,-99.446523999999997 27.023008,-99.446589518313687 27.0234513503828,-99.446929167151652 27.025749691622671,-99.446969999999979 27.026026000000002,-99.446787747918748 27.026353589968604,-99.444062000000002 27.031253,-99.443973 27.036457999999996,-99.447729715193731 27.048260380671568,-99.452315999999996 27.062668999999996,-99.450282 27.067705,-99.439210578806851 27.075275465844946,-99.434470000000005 27.078517000000002,-99.429209 27.090981999999997,-99.430274999999995 27.094871999999999,-99.437646 27.100442,-99.442122999999995 27.106839,-99.441108999999997 27.110041999999996,-99.433369999999982 27.119218,-99.430581000000004 27.126611999999998,-99.431354999999996 27.13758,-99.438264999999987 27.144791999999995,-99.439971 27.151071999999996,-99.437950999999998 27.154121,-99.42998399999999 27.159148999999999,-99.426616441133064 27.174998569551711,-99.42634799999999 27.176261999999998,-99.426389092127664 27.176475083747437,-99.428025433058153 27.184960350328335,-99.432794999999999 27.209693,-99.441928000000004 27.217984999999995,-99.442101400955139 27.218265584747954,-99.445237999999989 27.223341,-99.443121431464945 27.230753685991843,-99.441406999999998 27.236757999999998,-99.441548999999995 27.249919999999999,-99.452207395848959 27.263806782859465,-99.452390999999992 27.264046,-99.452635348600225 27.264144272092288,-99.454218033886534 27.264780796280988,-99.462735864984637 27.268206496624611,-99.463308999999981 27.268436999999995,-99.463731957038988 27.268231398925973,-99.480688 27.259988999999997,-99.487909999999999 27.260721,-99.492407 27.264118,-99.496069429210138 27.270723950024919,-99.496615000000006 27.271707999999997,-99.496412995851571 27.272119287725655,-99.490870463706145 27.283404082904614,-99.487572835142558 27.290118173493504,-99.487513000000007 27.29024,-99.487552182270463 27.290674424182523,-99.487937000000002 27.294941,-99.493651777311726 27.30231355132117,-99.494603999999995 27.303542,-99.494999311050705 27.30367917804087,-99.501697839297435 27.306003653868146,-99.502036000000004 27.306121,-99.50260564894451 27.305998370990778,-99.511531000000005 27.304076999999999,-99.522353224815092 27.304131436852781,-99.523657999999983 27.304137999999995,-99.527521386758664 27.305370598210363,-99.529216737576675 27.305911493159478,-99.529653999999994 27.306051,-99.533911450776046 27.310119063512179,-99.536090758332008 27.312201427353024,-99.536443000000006 27.312538,-99.537771000000006 27.316072999999996,-99.53137599999998 27.323809,-99.52136037329538 27.324774325824137,-99.521259999999998 27.324784,-99.520793197388144 27.325167862222077,-99.515101491997058 27.329848278790703,-99.509737777509301 27.334258981108004,-99.504836999999995 27.338289,-99.507830999999996 27.348637,-99.507785758525344 27.353517859091919,-99.507778999999999 27.354247,-99.505884699626023 27.358359262089539,-99.503847413823948 27.362781925614613,-99.502763417847504 27.36513512979511,-99.502013099315448 27.366763966750881,-99.499076000000002 27.373139999999999,-99.492143999999996 27.380516999999998,-99.488110785984318 27.408328989964531,-99.487887470616073 27.409868914391197,-99.487633320470721 27.411621467383494,-99.487521 27.412396,-99.487591555014376 27.412624523015491,-99.489856740583164 27.419961308946796,-99.495313182879073 27.437634363915539,-99.495699000000002 27.438884000000002,-99.495681276107845 27.439260342274874,-99.495103999999998 27.451518,-99.489866073767956 27.458841813736395,-99.48498035355378 27.465673163249864,-99.484933241276849 27.465739036942171,-99.483818999999997 27.467296999999995,-99.483170086267094 27.470026063960816,-99.480813109028745 27.479938539705284,-99.480418999999998 27.481595999999996,-99.480219000000005 27.485795999999997,-99.483519 27.491095999999999,-99.494943552274876 27.498766770813134,-99.497518999999997 27.500495999999998,-99.501722168778215 27.500229993495459,-99.502529258718056 27.500178915086504,-99.513319999999993 27.499496,-99.516119999999361 27.498282666666942,-99.519319999999979 27.496896,-99.525819999999982 27.496696,-99.528319999999994 27.498895999999998,-99.525855930815595 27.516294999999385,-99.525849791073696 27.516338353233991,-99.525316190784537 27.520106149807926,-99.523876376642917 27.530272798702207,-99.522431296340699 27.540476632400054,-99.521918999999997 27.544094,-99.518818999999993 27.553194,-99.514319 27.556994,-99.511118999999994 27.564493999999996,-99.512219000000002 27.568093999999995,-99.515978000000004 27.572130999999999,-99.51621006287597 27.572263354504685,-99.516956092136581 27.572688844074506,-99.522907946893667 27.576083418863931,-99.530137999999994 27.580207,-99.536560517954015 27.595669560441458,-99.539721999999998 27.603280999999999,-99.549741780062789 27.610632655019803,-99.554405160028892 27.614054243170667,-99.554950000000005 27.614453999999999,-99.555217670042637 27.614437037021997,-99.556811999999994 27.614335999999998,-99.559466999999998 27.609075999999998,-99.562869000000006 27.607264,-99.580005999999997 27.602250999999995,-99.584175941853502 27.603675176957196,-99.584843000000006 27.603902999999999,-99.584876722760043 27.604178863233781,-99.585148000000004 27.606397999999999,-99.578360965974085 27.610254799100861,-99.578159999999983 27.610368999999999,-99.578158133228257 27.610639131051315,-99.578098999999995 27.619195999999999,-99.584782000000004 27.622006999999996,-99.591372000000007 27.627464,-99.592626330929548 27.632690692534315,-99.594037999999998 27.638573,-99.596231000000003 27.639857999999997,-99.603532999999999 27.641991999999998,-99.612907806834755 27.638651258855042,-99.615318942915422 27.637792043123689,-99.624515000000002 27.634515,-99.625321999999997 27.631136999999999,-99.638929000000005 27.626757999999999,-99.654323999999988 27.629615999999999,-99.665948 27.635967999999998,-99.665422000000007 27.640274999999999,-99.660175716081199 27.644678795569117,-99.659499999999994 27.645246,-99.659300532255756 27.646059100049566,-99.658294999999995 27.650158,-99.661845 27.655753,-99.668942 27.659973999999998,-99.672015651285406 27.660163655087903,-99.685812999999982 27.661014999999999,-99.699355999999995 27.655417,-99.704600999999997 27.654953999999996,-99.711511000000002 27.658365,-99.721518999999986 27.666154999999996,-99.723715999999996 27.673328,-99.727277746539684 27.678262316066267,-99.732288643517421 27.685204233237535,-99.732448000000005 27.685424999999999,-99.732610774853441 27.685596448480599,-99.757538999999994 27.711853,-99.758533999999997 27.717071,-99.770740000000004 27.732133999999999,-99.774900999999986 27.73354,-99.785365999999996 27.730354999999999,-99.788844999999981 27.730718,-99.796341999999981 27.735586,-99.801651000000007 27.741771,-99.805670000000006 27.758687999999999,-99.813085999999998 27.773952,-99.817390803736785 27.775433523363962,-99.819091999999998 27.776019000000002,-99.822192999999999 27.766855,-99.825793000000004 27.764373999999997,-99.835127 27.762881,-99.841707999999997 27.766463999999999,-99.843346625073153 27.773142384459568,-99.844736999999981 27.778808999999999,-99.849281022020321 27.790032142335203,-99.850876999999997 27.793973999999999,-99.857944055165163 27.794214491272228,-99.870065999999994 27.794626999999998,-99.877441689362087 27.799278597548025,-99.877677000000006 27.799427,-99.877679299916537 27.799779028327777,-99.877693551047656 27.801960325692491,-99.877840000000006 27.824375999999997,-99.876677795668783 27.832975173255242,-99.876002999999997 27.837968,-99.877201999999997 27.842179000000002,-99.882014999999996 27.850391999999996,-99.89364999999998 27.856193,-99.901486000000006 27.864162,-99.904385000000005 27.875283999999997,-99.901231999999993 27.884405999999995,-99.894091000000003 27.892949999999999,-99.893456 27.899208000000002,-99.895827999999995 27.904177999999998,-99.900080000000003 27.912141999999999,-99.905861237749605 27.914081496997749,-99.917461000000003 27.917973,-99.925935042520848 27.927688375003317,-99.93714199999998 27.940536999999999,-99.938541 27.954059,-99.932160999999979 27.96771,-99.931811999999994 27.980967,-99.962768999999994 27.983536,-99.984922999999995 27.990729000000002,-99.991446999999994 27.99456,-99.998749958954292 28.00705628754028,-100.000278657311796 28.009672084008166,-100.008630999999994 28.023963999999999,-100.012838999999985 28.037203000000002,-100.014975394500183 28.048814882934586,-100.016570970484992 28.057487270710915,-100.017914000000005 28.064786999999999,-100.028724999999994 28.073118,-100.046108000000004 28.079067999999999,-100.053122999999985 28.08473,-100.056983000000002 28.094207,-100.05559599999998 28.101140999999998,-100.056492999999989 28.104185999999995,-100.064147158981442 28.110644603904401,-100.067651999999995 28.113602,-100.075474 28.124881999999999,-100.083393 28.144034999999999,-100.090288999999984 28.148312999999998,-100.119627999999992 28.155588000000002,-100.12658652988236 28.159659080291213,-100.141098 28.168149,-100.159890345070792 28.168159605160877,-100.160589999999999 28.16816,-100.1644540887186 28.169825181963088,-100.168437999999995 28.171541999999999,-100.173949604741296 28.178834844700365,-100.174413 28.179448,-100.17569869464343 28.180169771489844,-100.185693999999998 28.185780999999999,-100.195825662217615 28.189941498404405,-100.196499000000003 28.190218000000002,-100.19841872968675 28.190245400986015,-100.202449991411854 28.190302940621361,-100.208059000000006 28.190382999999997,-100.21208061434919 28.196473071951928,-100.212104999999994 28.196509999999996,-100.212111438897693 28.196576571978802,-100.212136678181992 28.196837521783539,-100.213449999999995 28.210415999999999,-100.217564999999993 28.226934,-100.220284000000007 28.232209999999995,-100.22363 28.235223999999995,-100.227575000000002 28.235856999999999,-100.246200000000002 28.234092,-100.251633999999996 28.236177,-100.261135590980771 28.244561246718906,-100.267604000000006 28.250268999999999,-100.280518 28.267969,-100.289383999999998 28.273491,-100.293468000000004 28.278475,-100.294296000000003 28.284381,-100.287553999999986 28.301093000000002,-100.286470999999992 28.312295999999996,-100.288638999999989 28.316977999999995,-100.314198000000005 28.345859,-100.317245999999997 28.357382,-100.320392999999996 28.362116999999998,-100.341869000000003 28.384952999999996,-100.344399999999979 28.389662,-100.34934096344108 28.4019924953441,-100.349585999999988 28.402603999999997,-100.349394820211828 28.402858691740477,-100.345766407828719 28.407692501181913,-100.343945000000005 28.410119000000002,-100.337058999999996 28.427150999999995,-100.336185999999998 28.430180999999997,-100.337474638078888 28.440402915586755,-100.337648113426326 28.441778981052359,-100.337796999999995 28.442959999999999,-100.338752462381066 28.444650728533539,-100.341532999999998 28.449570999999995,-100.350785999999999 28.459246,-100.353875644654778 28.461269551534915,-100.357498000000007 28.463642,-100.35795880406117 28.464220845064407,-100.358193534884933 28.464515705266944,-100.367961112704847 28.47678537623738,-100.368288000000007 28.477195999999999,-100.368051363629903 28.477598261305609,-100.365982000000002 28.481116,-100.356642877924983 28.482149981508559,-100.352234999999979 28.482638,-100.344180999999992 28.486249,-100.337140000000005 28.491728999999999,-100.33381399999999 28.499251999999998,-100.338517999999993 28.501833,-100.362147999999991 28.508399,-100.379079000000004 28.511638999999999,-100.388859999999994 28.515747999999995,-100.405057999999983 28.535779999999999,-100.411413999999994 28.551898999999999,-100.40430324537553 28.563833042228197,-100.397270000000006 28.575637,-100.396799999999999 28.580400999999998,-100.398385000000005 28.584883999999999,-100.403243426032972 28.586668145075244,-100.425819035320046 28.594958517689108,-100.429856 28.596440999999995,-100.431892715674053 28.597943579291371,-100.447320000000005 28.609324999999998,-100.448648000000006 28.616773999999999,-100.447280739633683 28.625703494601449,-100.445528999999993 28.637143999999996,-100.44560646842767 28.637394606891831,-100.447014715516048 28.641950223113035,-100.447091 28.642196999999999,-100.447325484276334 28.642184618041064,-100.447599559425257 28.642170145483281,-100.456522261830528 28.641698981546444,-100.462866000000005 28.641363999999999,-100.474494000000007 28.647071,-100.479445543783555 28.654922981332383,-100.479495071011698 28.655001519842354,-100.479635999999999 28.655225000000002,-100.481416494659797 28.655591917738484,-100.492493911747701 28.657874710783531,-100.493322226012125 28.658045406716248,-100.495863 28.658568999999996,-100.496129521434568 28.658770241190073,-100.500353999999987 28.661960000000004,-100.502122125123847 28.667202406240314,-100.505211969634487 28.676363647108229,-100.509438609439442 28.688895431533517,-100.510054999999994 28.690722999999995,-100.510127443340068 28.69126843161186,-100.510538898440004 28.694366309458967,-100.51077198772829 28.696121257064849,-100.511998000000006 28.705352,-100.511351260759739 28.706743032691019,-100.510646631791559 28.708258576930099,-100.509872363628347 28.709923903942272,-100.509406561254394 28.710925770365975,-100.508636802312012 28.712581398765199,-100.507069450532313 28.715952521820881,-100.506701000000007 28.716745000000003,-100.506745928327234 28.717920131927187,-100.506786973330165 28.718993692782757,-100.507152057645129 28.728542729239727,-100.507513721430456 28.738002299344281,-100.507590113222051 28.740000380261673,-100.507613000000006 28.740599,-100.507694735304739 28.740708529390524,-100.51442566685138 28.749728313832868,-100.519226000000003 28.756160999999999,-100.533017 28.763279999999998,-100.537772000000004 28.780775999999996,-100.534846642084489 28.786410367511117,-100.532431000000003 28.791062999999998,-100.535830000000004 28.805887999999999,-100.546431879116881 28.824270186264151,-100.546968759195195 28.825201061771438,-100.547323999999989 28.825817,-100.548186025546428 28.826178082695296,-100.553129999999982 28.828249,-100.561442999999997 28.829174000000002,-100.570509999999999 28.826317,-100.574698999999995 28.828786999999998,-100.576846000000003 28.836168000000004,-100.572991999999999 28.848463999999996,-100.580501999999996 28.856007999999999,-100.591040000000007 28.863054000000002,-100.598061272695219 28.874286065303028,-100.598877000000002 28.875590999999996,-100.602654 28.887660000000004,-100.602394435759351 28.893839359355621,-100.602053999999995 28.901944,-100.615584686670886 28.902906942475386,-100.627205999999987 28.903734,-100.631611000000007 28.902838999999997,-100.633502414453218 28.905240591668694,-100.640568000000002 28.914211999999999,-100.639169999999979 28.916288999999999,-100.638857000000002 28.927621999999996,-100.651511999999997 28.943431999999998,-100.64789859018552 28.954344193790252,-100.646992999999995 28.957078999999997,-100.646600907687997 28.967547400926616,-100.64647463428885 28.970918751315974,-100.645893999999998 28.986421,-100.647406325643686 28.99295674936236,-100.647835962928511 28.994813493392339,-100.648681241069511 28.998466493719445,-100.65094599999999 29.008254000000004,-100.653757999999996 29.015356,-100.656109999999998 29.017223999999999,-100.660207999999997 29.031497000000002,-100.663212 29.048041999999995,-100.662508000000003 29.058106999999996,-100.664064999999994 29.073205999999999,-100.666359117032755 29.07896154562156,-100.668483863047285 29.084292168447689,-100.674655999999999 29.099777000000003,-100.684472 29.110657,-100.692326999999992 29.115227999999995,-100.70996599999998 29.119684000000003,-100.727461999999989 29.129122999999996,-100.737795000000006 29.139078999999999,-100.739115999999996 29.141658,-100.737590999999995 29.147406999999998,-100.739681000000004 29.150486000000004,-100.746139999999997 29.154149000000004,-100.752330696165359 29.155516457617566,-100.759726 29.157149999999998,-100.76337082361762 29.160348915845475,-100.772648999999987 29.168492,-100.775904999999995 29.173344,-100.772154104961558 29.17809434863841,-100.766030999999998 29.185848999999997,-100.767059000000003 29.195287,-100.768348510582513 29.197581465531123,-100.775064591152173 29.209531592641572,-100.785521000000003 29.228136999999997,-100.791371999999996 29.225944999999999,-100.795681000000002 29.227729999999998,-100.79704599999998 29.235585999999998,-100.795234211471239 29.241421249558652,-100.795010188783237 29.242142762180318,-100.794911999999997 29.242459,-100.795310930062826 29.24310735172228,-100.797670999999994 29.246943000000002,-100.805332448258866 29.251327106905226,-100.815767091023289 29.257298117587734,-100.823532999999998 29.261742000000002,-100.834039999999987 29.261399999999998,-100.839016 29.263259,-100.841581161127962 29.265429071012271,-100.848663999999999 29.271420999999997,-100.856469000000004 29.275663999999999,-100.864659000000003 29.276076,-100.874739696506666 29.279181633366278,-100.876048999999995 29.279585,-100.876625364221198 29.280115401513385,-100.878513170701353 29.281852663087207,-100.878882999999988 29.282193000000003,-100.879105716359817 29.283377353454046,-100.880504361011205 29.290815018226784,-100.882051999999987 29.299044999999996,-100.886842 29.307848,-100.895590728097048 29.309871687341737,-100.904835000000006 29.31201,-100.906461302333199 29.313095095005444,-100.914770068080642 29.318638836799305,-100.916744062319239 29.319955917421627,-100.92203960930695 29.323489191321695,-100.922232587658954 29.323617949573855,-100.924041970395777 29.324825198761538,-100.926468967605715 29.326444530233299,-100.926628772437255 29.326551154580446,-100.926677999999981 29.326584,-100.92692137104487 29.32669794102517,-100.927819078352698 29.327118228044156,-100.92782883100196 29.32712279402223,-100.930446231588661 29.328348203997709,-100.940614999999994 29.333109,-100.941560773525751 29.336361493535293,-100.943196 29.341985,-100.945807189162338 29.344363370184055,-100.948971999999998 29.347245999999998,-100.95603875001359 29.347290187325033,-100.964324999999988 29.347342,-100.971743000000004 29.351370999999997,-100.972915999999998 29.354545000000005,-100.995606999999993 29.363403000000005,-101.004206999999994 29.364771999999999,-101.010614000000004 29.368669,-101.010768998319776 29.36895846820963,-101.014103165002794 29.375185214807839,-101.024016000000003 29.393697999999997,-101.036603999999997 29.406107999999996,-101.038600000000002 29.410713999999999,-101.037642000000005 29.414681000000002,-101.043363999999997 29.42988,-101.056956999999983 29.440773,-101.06011415724447 29.458454662113137,-101.060150999999991 29.458660999999999,-101.063843258270609 29.460131584976065,-101.087148999999997 29.469414,-101.103699000000006 29.470549999999999,-101.115253999999993 29.468458999999996,-101.130037999999985 29.47842,-101.137502999999995 29.473541999999998,-101.144336999999993 29.473246,-101.151876999999999 29.477004999999998,-101.163854997623304 29.493316894569897,-101.168923969306405 29.50021992913986,-101.171662999999995 29.503950000000003,-101.173821000000004 29.514566000000002,-101.192719999999994 29.520285,-101.227418999999998 29.522349999999996,-101.235274999999987 29.524854,-101.254895000000005 29.520341999999996,-101.260836999999981 29.529933,-101.261174999999994 29.536777,-101.252755240314642 29.553001111955531,-101.244355179006547 29.569187266927752,-101.24384013276574 29.574337712700849,-101.242022713082847 29.59251185083151,-101.251352546644355 29.604174135250076,-101.252152766968493 29.604494220898598,-101.259127443101093 29.607284069726152,-101.265347312053251 29.607284069726152,-101.274677145614746 29.602619152945408,-101.277624046978673 29.599940160672645,-101.283229510623855 29.594844301688571,-101.297224215766221 29.587069435365102,-101.30733154801338 29.587846934050759,-101.312894947857018 29.594028488101586,-101.314328915651188 29.595621785307589,-101.313192213312618 29.602947206633093,-101.31110792457288 29.616379301091623,-101.30733154801338 29.640715970810437,-101.311218981175116 29.64849082206727,-101.316661381574889 29.655488204771718,-101.325213716450733 29.657820655628775,-101.350093282659174 29.654710721152696,-101.353062961800887 29.655502634567405,-101.361755552011104 29.657820655628775,-101.364595571422868 29.66106639883844,-101.367197952410862 29.664040554714198,-101.371300910394638 29.676075888592084,-101.372874548462477 29.680691889931673,-101.378860251896057 29.698249939417508,-101.396947999999995 29.713947,-101.398362000000006 29.717000000000002,-101.396293999999997 29.727055,-101.397008999999997 29.733962999999999,-101.400635999999992 29.738078999999999,-101.410024000000007 29.741498,-101.415583999999996 29.746534,-101.415509877418046 29.750619769974676,-101.415402087456428 29.756561346443686,-101.424731921017937 29.758116313681725,-101.430388403484372 29.756500180308258,-101.441059122217254 29.75345141196761,-101.446501522617027 29.755006409338922,-101.451652003139955 29.758440048234313,-101.453498905321467 29.759671311053037,-101.455223999999987 29.771874,-101.467493655663716 29.779885945414083,-101.475268506920557 29.780663444099741,-101.503223000000006 29.764581999999997,-101.522695143280473 29.759671311053037,-101.526552276219391 29.761451532447605,-101.532802460460985 29.764336242900427,-101.53746737724174 29.782995910023434,-101.53804719015173 29.783865628452077,-101.546797210803248 29.796990645299058,-101.56156944476453 29.794658179375361,-101.572592853930203 29.778735448896484,-101.575564187573463 29.774443514881042,-101.582561562744587 29.771333610538232,-101.598573641854728 29.773657690388074,-101.603680999999995 29.774398999999999,-101.607256216824311 29.773863608191139,-101.625957999999997 29.771063000000002,-101.630319 29.768729,-101.632632680380155 29.763891873249722,-101.63512799999998 29.758675,-101.646417999999997 29.754303999999998,-101.652400999999983 29.758794999999996,-101.65328091488901 29.761368862201802,-101.654578 29.765162999999998,-101.662452999999985 29.77128,-101.689992000000004 29.771212999999996,-101.706636000000003 29.762736999999998,-101.714223999999987 29.767659999999999,-101.735201999999987 29.771591999999998,-101.754322999999999 29.777661999999999,-101.760919284561496 29.782457957985276,-101.763273999999981 29.784169999999996,-101.776796131253491 29.789191504347542,-101.777161000000007 29.789327,-101.777360180704861 29.789301830227139,-101.785668 29.788251999999996,-101.791002820423358 29.783037559970925,-101.796869557069002 29.782618516634159,-101.806507764952315 29.786389987871868,-101.809441149516488 29.790161459109573,-101.813855730843954 29.79253854440006,-101.814888826583982 29.793094827432377,-101.818909248247508 29.792167038125061,-101.830044431332681 29.789597381341238,-101.831231874027822 29.789323356194672,-101.852603555202364 29.801894932400803,-101.862241763085706 29.800218726571018,-101.866487373818487 29.79821962567333,-101.875399999999985 29.794022999999999,-101.878152615094365 29.794637055896249,-101.892739000000006 29.797891,-101.912406000000004 29.797849999999997,-101.917556726002999 29.792675767854249,-101.917942403066036 29.792482929945557,-101.922585359733716 29.790161459109573,-101.929709258872364 29.789323356194672,-101.932572380438657 29.791613852338052,-101.938090312383324 29.796028195755184,-101.946471365894325 29.797704401584976,-101.952535620779244 29.796990962273608,-101.953595265032959 29.796866298670082,-101.959462001678588 29.799380623656123,-101.965427194081556 29.806464275410743,-101.966166845299441 29.8073426094683,-101.970357372054934 29.81027599403247,-101.974547898810414 29.81027599403247,-101.982165144097308 29.804870201524977,-101.987538526473998 29.801056829485908,-101.993568005272067 29.802652866652032,-102.001318622543394 29.804704498914084,-102.001786318660763 29.804828300723614,-102.021918999999997 29.802490999999996,-102.032489182844799 29.803756293694118,-102.034758999999994 29.804027999999999,-102.039012999999997 29.802655,-102.041088000000002 29.799609999999998,-102.038411999999994 29.792831999999997,-102.039226999999997 29.790977000000002,-102.041308736499772 29.78984019520162,-102.048982832584102 29.785649487466547,-102.050044 29.785069999999997,-102.053123037129694 29.785312127485501,-102.073645999999982 29.786926,-102.076299925656656 29.790865308882584,-102.077348 29.792421,-102.084438999999989 29.794962000000002,-102.091420021879856 29.792967151942147,-102.091815999999994 29.792853999999995,-102.098789196918744 29.792718427915432,-102.115682000000007 29.792389999999997,-102.142325999999997 29.802854,-102.159600999999995 29.814355999999997,-102.161673999999991 29.819486999999999,-102.181894 29.846033999999996,-102.182859740836193 29.846584944255238,-102.18326563789924 29.846816503951921,-102.184058205433814 29.847268654791659,-102.186149999999998 29.848461999999998,-102.187393471220204 29.848699156882201,-102.188384798592551 29.848888224473839,-102.188671999999997 29.848942999999998,-102.189026115519184 29.848805138880103,-102.189342793483831 29.848681852617602,-102.205381000000003 29.842438,-102.216284162639099 29.842976962035557,-102.227553 29.843533999999995,-102.261388999999994 29.853283,-102.264041000000006 29.855964,-102.261776999999995 29.864001999999999,-102.264954000000003 29.867805999999998,-102.268816999999984 29.867990999999996,-102.276754999999994 29.862977999999998,-102.281249000000003 29.863116999999999,-102.297330999999986 29.875194,-102.301381000000006 29.877673999999995,-102.315388999999996 29.879919999999998,-102.320618999999994 29.878979999999995,-102.320667125014978 29.878900015386019,-102.320698585434869 29.878847727619664,-102.324634000000003 29.872306999999996,-102.333383999999995 29.868046,-102.341032999999996 29.869305000000004,-102.349861000000004 29.862316999999997,-102.361383773688715 29.849029038788231,-102.364542 29.845386999999995,-102.363642671554629 29.839963091609825,-102.362514000000004 29.833155999999995,-102.369522000000003 29.820395,-102.377253999999994 29.800163,-102.377312999999987 29.789971,-102.385270832882995 29.770348713937391,-102.386677616883858 29.766879890389689,-102.391739211722737 29.765814289574276,-102.392906191083 29.765568609270456,-102.402175111261812 29.766775086101941,-102.412062000000006 29.768061999999997,-102.433301 29.776608,-102.460890018677347 29.77909171043791,-102.468946430597143 29.779816991558327,-102.469957868267898 29.780012383523857,-102.481595292961757 29.782260529257879,-102.490330613701886 29.783948039559665,-102.492674483475767 29.783853017496881,-102.508312776666344 29.783219030534834,-102.508509848222559 29.783087649355906,-102.512686811979108 29.780303003853621,-102.512942156326147 29.774953626291172,-102.513380999999995 29.76576,-102.526400256170959 29.758693706517125,-102.535832205630967 29.753574449155192,-102.539417050278132 29.751628749336795,-102.545492105079163 29.750899740311965,-102.551081152293932 29.752357753652575,-102.556670813570321 29.757783010503054,-102.559343229460382 29.760376824671383,-102.565661280990938 29.761591836573395,-102.572255912443325 29.757095496286663,-102.57574472309652 29.754716761401177,-102.57635337725236 29.754301769870359,-102.585948674897452 29.751239442391949,-102.587774480184081 29.750656738873374,-102.597160000000002 29.751608,-102.612879000000007 29.748181999999996,-102.622534000000002 29.736632,-102.630150999999984 29.734314999999999,-102.64566499999998 29.733910000000002,-102.661251958261417 29.736122779697027,-102.66726872436665 29.739732837494621,-102.670971460158171 29.741954477821469,-102.677191937153026 29.738261067251376,-102.678467215476147 29.736427653943998,-102.6852530581628 29.72667193704833,-102.688163999999986 29.722486999999997,-102.690237999999979 29.707481999999999,-102.695507594622001 29.699754690880447,-102.698346999999984 29.695590999999997,-102.699316999999994 29.685029,-102.693466 29.676507,-102.697798916570122 29.672550546488289,-102.711337549653422 29.6601882100483,-102.724231000000003 29.648415000000004,-102.736947999999984 29.641537999999997,-102.742030999999997 29.632142000000002,-102.74048425929719 29.62775763619268,-102.738427999999999 29.621928999999998,-102.739991000000003 29.599041,-102.746201999999997 29.592875000000003,-102.757065999999995 29.597798999999998,-102.761810999999994 29.598396999999999,-102.768340999999992 29.594733999999999,-102.766929734823805 29.591197739636346,-102.762241000000003 29.579448999999997,-102.766124000000005 29.572347999999998,-102.768792219428661 29.572598581791439,-102.773961 29.573084,-102.776343296957975 29.562015327831393,-102.777530999999996 29.556497,-102.77572499999998 29.552188999999995,-102.771428999999998 29.548545999999998,-102.79216136048494 29.533953841063816,-102.807296321997939 29.523301326891541,-102.808565712504773 29.522407885546979,-102.808691999999979 29.522319000000003,-102.808681334358837 29.522097795383676,-102.808577631171161 29.519946998869006,-102.807327 29.494009000000002,-102.813953999999995 29.482805999999997,-102.814096473430837 29.482483316434472,-102.814383778328263 29.481832608662831,-102.822314986984821 29.463869465126457,-102.82537225240516 29.456945161410285,-102.827007089548758 29.453242470491304,-102.830969999999979 29.444267,-102.832538999999997 29.433109000000002,-102.830570753051859 29.427471931628293,-102.827354999999983 29.418261999999995,-102.825211066354328 29.40389180477127,-102.824564449740322 29.399557712155943,-102.831802092379931 29.389471209449322,-102.832669213065941 29.388262775214326,-102.84047188579207 29.377388836904565,-102.840778422425643 29.376961642203423,-102.841560439245441 29.370344567434586,-102.842457529677418 29.362753791491347,-102.843015380341285 29.358033509958585,-102.843020777220957 29.357987843989019,-102.861629999999991 29.351638999999995,-102.871857000000006 29.352092999999996,-102.876866000000007 29.354058999999996,-102.879534000000007 29.353326999999997,-102.883721999999992 29.348058999999999,-102.881857488401977 29.34363024944906,-102.879805000000005 29.338754999999999,-102.890489000000002 29.309498999999995,-102.88922161316745 29.299205074185686,-102.888328 29.291947,-102.891022000000007 29.287113000000002,-102.902604999999994 29.279440999999998,-102.90311226801488 29.27677066200776,-102.906295999999998 29.260010999999995,-102.903188999999983 29.254028999999999,-102.887901999999997 29.245611999999998,-102.881135 29.246022,-102.871347 29.241624999999999,-102.870795537867835 29.239589944231255,-102.86823682221636 29.230147538772215,-102.866845999999995 29.225014999999999,-102.878020000000006 29.214697999999999,-102.890063999999995 29.208813999999997,-102.899231 29.208863,-102.908656596973657 29.219194069767902,-102.908787000000004 29.219336999999996,-102.909098471667448 29.219296482603067,-102.910575587951939 29.219104333804097,-102.912131000000002 29.218902,-102.912650757516516 29.218481184275788,-102.915803535402844 29.215928573746115,-102.915865999999994 29.215877999999996,-102.915845750043147 29.215583596781208,-102.915608148145267 29.212129230727648,-102.915554 29.211341999999998,-102.915202931298523 29.21076702044931,-102.914525807203304 29.209658028088604,-102.912447999999998 29.206254999999999,-102.91453363655873 29.20019781620671,-102.917367531146525 29.191967513425833,-102.917805 29.190697,-102.922897000000006 29.192704085059273,-102.925481999999988 29.193722999999995,-102.932612000000006 29.194113000000005,-102.944911000000005 29.188819999999996,-102.947155999999993 29.180776999999999,-102.95089 29.176834999999997,-102.953474999999997 29.176307999999995,-102.977266 29.186226,-102.981742305424802 29.185103060319207,-102.989431999999994 29.183174,-102.98978258837333 29.182935350109393,-102.991725524817895 29.181612768970929,-102.994653 29.17962,-102.994906329461855 29.17910907354543,-102.99809599999999 29.172675999999996,-102.995688 29.161218999999999,-103.00243399999998 29.150260999999997,-103.0050672680876 29.149386797638936,-103.008362000000005 29.148292999999995,-103.010324999999995 29.137821999999996,-103.015028 29.125769999999996,-103.016945338084582 29.124525732477775,-103.024896087692937 29.119366048020158,-103.032982999999987 29.114118,-103.033302941039096 29.107355634443419,-103.034095953658579 29.105913798143234,-103.035682683422891 29.103028844591982,-103.04044215980575 29.099351067768175,-103.049126083320303 29.097714968852063,-103.055369601981923 29.096538655622457,-103.061557539334615 29.093936906572154,-103.06671291432167 29.091769303506382,-103.074407490743866 29.088534080562461,-103.076354546596249 29.085721668416742,-103.076667707631657 29.079576983004682,-103.076847 29.076059,-103.091926967746744 29.064237268591206,-103.100265999999991 29.057699999999997,-103.101359249603803 29.049403674773888,-103.102531654124817 29.040506667933872,-103.100975335951205 29.030701853789079,-103.100368259199087 29.026877266486249,-103.101607999999999 29.018122999999999,-103.107810999999998 29.013812,-103.117237999999986 29.000208999999998,-103.113922000000002 28.988546999999997,-103.115062910480361 28.985887850893185,-103.115327999999991 28.98527,-103.115773294260094 28.985147329619764,-103.126748000000006 28.982123999999995,-103.134930999999995 28.983525,-103.143274000000005 28.978073999999999,-103.156645999999995 28.972830999999999,-103.163865 28.972099,-103.165923000000006 28.974001999999999,-103.166234999999986 28.978836000000005,-103.174329720990258 28.980505274886987,-103.182663652045193 28.982223879127538,-103.194928465619142 28.984753100989199,-103.195705106971403 28.984913258196226,-103.207825367468075 28.987412670652219,-103.227338454203803 28.991436614861634,-103.227579101883322 28.991486240676846,-103.227800999999999 28.991532000000003,-103.228011662384262 28.991347921912006,-103.228737472224623 28.990713704806197,-103.239108999999985 28.981650999999996,-103.245121150470112 28.980239630911282,-103.2474464632202 28.980649978816817,-103.249155161185584 28.980951512720708,-103.25190330878641 28.984768118238364,-103.253285000000005 28.986686999999996,-103.26030800838916 28.989731411362609,-103.266003072061508 28.990206003834011,-103.270357000000004 28.988113999999996,-103.270725571428585 28.987466542857135,-103.27232562100086 28.984655789108508,-103.273357000000004 28.982844,-103.273647076585334 28.982817854078331,-103.281189929980513 28.982137982403092,-103.282424051550748 28.983865752282551,-103.284749352823042 28.987121173462914,-103.285935817906974 28.994002716014545,-103.289257951411443 28.999697788883793,-103.296614077237592 29.004443676810233,-103.302399476821606 29.006455988366771,-103.312987409437454 29.010138745081029,-103.315449022736544 29.011725838031147,-103.323993942362023 29.017235063099889,-103.331021803791103 29.021766184756,-103.332920159881368 29.026986669752301,-103.332783823258595 29.028827200289001,-103.332445567409962 29.033393619832523,-103.334818511373186 29.039800579109659,-103.341462759988346 29.041224342728523,-103.347869719265475 29.037427630547988,-103.350815999999995 29.028566999999999,-103.355428000000003 29.021529,-103.355590463621823 29.021464336016578,-103.361777791205157 29.019001647792766,-103.361998 29.018913999999999,-103.382125000000002 29.024248999999998,-103.386095607142025 29.025822707722725,-103.399799910010643 29.031254261761571,-103.402689272115182 29.032399429564627,-103.427474921518822 29.04222295692054,-103.427754276336316 29.042333676218103,-103.430481680804888 29.047455485683194,-103.434668000000002 29.055316999999995,-103.439550459717495 29.058547821156772,-103.449722032594721 29.065278554178825,-103.453029264571228 29.067467015663059,-103.457386392383299 29.068596640465525,-103.460381908910477 29.067681344107211,-103.463195887793432 29.066821517562918,-103.469166763983068 29.069242141692889,-103.471264639062966 29.073115142802621,-103.471299587628792 29.074897490538035,-103.471426016715213 29.08134526859719,-103.474814887995407 29.086670637304994,-103.484429000000006 29.094524,-103.49531945696836 29.1087608679228,-103.500928937954981 29.116094025764934,-103.503236 29.119109999999996,-103.506163032831353 29.119368513261239,-103.513192088151087 29.119989313955617,-103.524613000000002 29.120998,-103.524225442342612 29.124905426308125,-103.523383999999993 29.133389,-103.525026999999994 29.137353999999998,-103.539240927934515 29.144791265038371,-103.551909954693073 29.151420179312847,-103.558678999999984 29.154961999999998,-103.579462000000007 29.149964999999998,-103.592359999999999 29.150259999999999,-103.598960126757959 29.155019048637598,-103.606437999999997 29.160411,-103.607894091053709 29.162314354517299,-103.610539999999986 29.165772999999998,-103.624537921955991 29.163185608071569,-103.629433693714475 29.1622806680118,-103.638195234739996 29.160661174732635,-103.645634999999999 29.159286000000002,-103.653180000000006 29.162863999999995,-103.656807999999984 29.169098999999999,-103.660202999999996 29.170933999999999,-103.667724667668963 29.172878689431396,-103.669696386484915 29.173388467437,-103.688670000000002 29.178293999999998,-103.688830238367032 29.178273608722382,-103.690116124218548 29.178109972160996,-103.697314000000006 29.177194,-103.699305464408098 29.178139630948273,-103.713769999999997 29.185008,-103.724743000000004 29.191469999999999,-103.73193762439729 29.198544108660482,-103.742175000000003 29.20861,-103.750912464183997 29.219357091602017,-103.755265634411842 29.22471149629115,-103.75594348727293 29.225545256136954,-103.768569999999997 29.227360999999995,-103.777623396259372 29.232265264832392,-103.780085146052983 29.242351446713872,-103.780352362214714 29.243446273985068,-103.781659908552058 29.248803500057083,-103.789034484601103 29.257501704713096,-103.792700821322356 29.259284649416337,-103.795120675584712 29.260461427946989,-103.80876361213285 29.267096007175422,-103.816641821688407 29.27092719156084,-103.818617217853202 29.271599921312173,-103.838302999999982 29.278303999999999,-103.854966933859771 29.281484400071786,-103.856892999999999 29.281852,-103.880606 29.284961999999997,-103.896615144488038 29.284634799403065,-103.910231251371073 29.284356508561018,-103.916269383748329 29.284233099060927,-103.91710599999999 29.284215999999997,-103.91776286712728 29.284516760669142,-103.918698764585329 29.284945281345607,-103.918909999999997 29.285042,-103.918905327188597 29.285488562070029,-103.918900778480648 29.285923264066316,-103.918857000000003 29.290106999999995,-103.924975999999987 29.293913000000003,-103.943697999999983 29.294945999999996,-103.965795999999983 29.298586999999998,-103.975234999999998 29.296016999999999,-103.983459597310627 29.299165977024781,-103.998789342279238 29.305035323921498,-104.012357062242771 29.310230038851625,-104.018558084893087 29.312604243583909,-104.038281999999995 29.320155999999997,-104.047006656168747 29.325575022319434,-104.055595999999994 29.330909999999996,-104.056467149578211 29.334496091467582,-104.057243999999997 29.337694000000003,-104.068917843404819 29.342306667996301,-104.075923999999986 29.345075,-104.082149999999999 29.345922999999996,-104.091021999999995 29.353691999999995,-104.093326000000005 29.359926000000002,-104.098377999999983 29.366755999999999,-104.106466999999981 29.373127,-104.122882935723638 29.379859019095424,-104.125474999999994 29.380922000000002,-104.132831527553293 29.381873417846823,-104.136236243923818 29.382313748953422,-104.143691999999987 29.383277999999997,-104.1467332019064 29.385415391432094,-104.148888696362661 29.386930297552944,-104.151718842950046 29.388919356896473,-104.157422367906094 29.392927859373117,-104.166562999999996 29.399352,-104.180069999999986 29.412763999999999,-104.181273000000004 29.426265,-104.182051945448123 29.427144615030393,-104.195989999999995 29.442884000000003,-104.208194000000006 29.448201,-104.212529153241931 29.452438774515159,-104.213947876032222 29.456222068892099,-104.21370324326665 29.462011765001886,-104.213238514637069 29.473010445135856,-104.218538498245692 29.476600759818915,-104.220568643482977 29.477976020723915,-104.227547514371139 29.480496161448666,-104.229081071868791 29.481049944541308,-104.233824999999996 29.486544999999996,-104.233486999999997 29.492733999999995,-104.235847000000007 29.496744,-104.238313284768751 29.498023301020304,-104.246870092866089 29.50246185307569,-104.254473621536903 29.506405923975272,-104.260293266516271 29.50942466611497,-104.26168489846043 29.511073814728768,-104.264155000000002 29.514001,-104.271046277211582 29.51559593462645,-104.274575430964404 29.516412730896519,-104.293481117436073 29.520788310787555,-104.306646311930564 29.523835296697214,-104.308812834933008 29.524336722260216,-104.311570786550874 29.52540915148019,-104.318073989469781 29.527937921306467,-104.320711000000003 29.526326414398167,-104.326090351466348 29.523039031981277,-104.327483437129615 29.522187701603762,-104.334811000000002 29.519462999999998,-104.338113000000007 29.519967,-104.353150868059984 29.530471948300562,-104.369085650105362 29.541603450512167,-104.37074044290263 29.542759433043344,-104.371174999999994 29.543062999999997,-104.371454921502831 29.543072731712495,-104.371996954766473 29.543091575966443,-104.375901661123379 29.543227326450971,-104.381040999999996 29.543405999999997,-104.394588999999982 29.556087000000002,-104.394583075653415 29.556197720561212,-104.394577025204526 29.556310797858156,-104.394552364240909 29.55677168847231,-104.394503136758885 29.55769170460702,-104.394351 29.560534999999998,-104.39571704642303 29.563607040276512,-104.39636925661604 29.56507376640522,-104.397848504811165 29.56840038104859,-104.399550133070164 29.572227096202102,-104.399591 29.572319,-104.399981791506633 29.572551361916329,-104.452301000000006 29.60366,-104.466520000000003 29.609296,-104.483502 29.627740999999997,-104.486693164979016 29.629712817604439,-104.493658999999994 29.634016999999997,-104.503232654335022 29.63787621670291,-104.507568060311556 29.63962385355849,-104.51068846437596 29.64315687341222,-104.513969549435132 29.646871821353749,-104.51818442992635 29.651644041921735,-104.53325150001281 29.668703453669117,-104.535568725458901 29.671327089370656,-104.539761023554547 29.676073741438437,-104.540155514025756 29.678572204873163,-104.540559188867974 29.681128836544634,-104.537934834631798 29.684482179324355,-104.535770155740693 29.687248158943191,-104.536302269386866 29.690440851131939,-104.537991394981006 29.693268523024599,-104.544269904764263 29.703779029587054,-104.545505621253113 29.70584767433138,-104.552240999999995 29.717122999999997,-104.555600999999996 29.731220999999998,-104.554914970831931 29.738152096413199,-104.554660236582549 29.740725729903364,-104.557361904757329 29.745049367744027,-104.565950999999998 29.758794999999996,-104.565687999999994 29.770461999999998,-104.571279565966023 29.778773775962186,-104.586447318468245 29.801320404476364,-104.592472 29.810276000000002,-104.594023000000007 29.809220999999997,-104.599148999999997 29.811007,-104.610166000000007 29.819117999999996,-104.610205623651026 29.819231101342197,-104.610356932717465 29.819662996386217,-104.613081011852316 29.827438579869643,-104.615248982559379 29.833626813172685,-104.619039 29.844444999999997,-104.624350000000007 29.845221999999996,-104.629290740007292 29.852171499068138,-104.629713747950376 29.852766489555783,-104.630103000000005 29.853313999999997,-104.630111961493199 29.853664893019587,-104.630290851730521 29.860669455113747,-104.630338938536084 29.862552324858758,-104.630359999999996 29.863376999999996,-104.630588419131911 29.86393398222631,-104.633274999999998 29.870484999999999,-104.63616345635748 29.872800876528242,-104.645854762904364 29.880571071602066,-104.65678299999999 29.889332999999997,-104.658422170930251 29.891285606400047,-104.65864999999998 29.891556999999999,-104.658665881124946 29.891956296855856,-104.659041999999999 29.901413000000002,-104.661965712024596 29.903547518850328,-104.666224133352003 29.906656470935726,-104.672326999999996 29.911111999999996,-104.679772 29.924658999999998,-104.680850906343153 29.932111041680564,-104.684321999999995 29.956085999999999,-104.679660999999982 29.975271999999997,-104.680379178583593 29.977083,-104.685479 29.989943,-104.689640999999995 30.014949999999999,-104.693591999999995 30.019077000000003,-104.701242868742796 30.021046973658397,-104.702310999999995 30.021321999999998,-104.702447580064685 30.021555813412469,-104.7030116881661 30.022521518330599,-104.703997999999999 30.02421,-104.703882705803636 30.024660825787098,-104.703121214098445 30.027638426639932,-104.701101999999992 30.035533999999998,-104.706873999999999 30.050685,-104.706630611705322 30.051708605996314,-104.703831250551389 30.063481739403372,-104.703581999999997 30.06453,-104.699792220462342 30.065066336345112,-104.698848962238912 30.065199827927678,-104.698233000000002 30.065286999999998,-104.697787990647399 30.065651654776563,-104.69277799999999 30.069756999999996,-104.687313590037505 30.080921966773531,-104.685080632167896 30.08548438075637,-104.685002999999995 30.085643,-104.685554782105299 30.093963293324606,-104.685687 30.095957000000002,-104.686861171517634 30.098036494960315,-104.692093999999983 30.107303999999996,-104.693655813605488 30.119154117533654,-104.695366000000007 30.13213,-104.692122999999995 30.138662999999998,-104.690080458880587 30.149079251722458,-104.687506999999997 30.162202999999998,-104.687296000000003 30.179464000000003,-104.702787999999998 30.211735999999995,-104.707897632633845 30.218501061672534,-104.711235999999985 30.222920999999999,-104.713166 30.237956999999998,-104.722357186598074 30.248308653999679,-104.724410584274111 30.250621311025988,-104.72532436157617 30.251650460675243,-104.73347160041142 30.260826359409911,-104.733822000000004 30.261220999999999,-104.734059376092361 30.261231667834558,-104.737359999999995 30.261379999999996,-104.740448 30.259454000000002,-104.749663999999996 30.26126,-104.751566999999994 30.263643999999999,-104.754655151309422 30.272796681105522,-104.757893999999993 30.282395999999999,-104.761634 30.301147999999998,-104.779356000000007 30.313188,-104.790279572675416 30.323632238875831,-104.797291 30.330335999999999,-104.809794338457337 30.334925849121163,-104.810755485390246 30.338091979227556,-104.81211787963197 30.342579864771171,-104.813478341684558 30.347061385458392,-104.814379749150064 30.356375955470707,-104.814778573671205 30.360497153782266,-104.817595751374526 30.365914799658352,-104.824313633436745 30.370465624210016,-104.837492999999995 30.373909,-104.849824017938076 30.383147747051474,-104.859521 30.390413000000002,-104.857439999999997 30.408957,-104.852419999999995 30.418792,-104.861074000000002 30.428896999999996,-104.86474141169117 30.441297336779865,-104.865463293164552 30.443738179024677,-104.868454614768496 30.453852504447951,-104.869872 30.458644999999997,-104.86871099999999 30.463229999999996,-104.866118999999983 30.46479,-104.866094000000004 30.467379999999999,-104.870137228360662 30.483875070981508,-104.873288503237063 30.496731258693877,-104.873335488188886 30.496922942181985,-104.876786999999979 30.511004000000003,-104.878566789651714 30.514416830422793,-104.880108146577356 30.517372454871531,-104.88208573587417 30.521164575423189,-104.889375999999999 30.535143999999995,-104.890392881954469 30.540947215529823,-104.892228000000003 30.551419999999997,-104.895440150997459 30.560421421221292,-104.899000999999998 30.570399999999996,-104.909330873116318 30.584188648619556,-104.909747767935556 30.584745133303247,-104.918689620637082 30.596681007395873,-104.924796 30.604831999999998,-104.927016167130404 30.604700501077968,-104.934922481779466 30.604232215677584,-104.939873000000006 30.603939,-104.953391370086464 30.606003357240429,-104.967167000000003 30.608106999999997,-104.971627504383378 30.61006529240159,-104.972071 30.61026,-104.972794851616513 30.611297344530712,-104.980135850742045 30.621817657146149,-104.980290999999994 30.622039999999995,-104.982191641583043 30.62882153037463,-104.983981 30.635206,-104.985513855292751 30.652294791670293,-104.9863 30.661059000000002,-105.001239999999996 30.672583000000003,-105.002056999999994 30.680971999999997,-105.006614566555172 30.685839873047019,-105.006800999999996 30.686039,-105.007528432885024 30.6859080282745,-105.007959930235828 30.685830338698263,-105.020141999999993 30.683637,-105.035888798004834 30.686138071331488,-105.042930223005172 30.687256464175281,-105.044973600167665 30.685364445024991,-105.049769587265445 30.680923708581364,-105.049884734287517 30.6808170907847,-105.050688284649809 30.681171184306308,-105.054688384336032 30.682933873306403,-105.062333999999993 30.686302999999995,-105.062477471553692 30.692159292631892,-105.062625999999995 30.698222,-105.084504902225902 30.710918832086001,-105.098281999999998 30.718914000000002,-105.108075999999997 30.730049999999995,-105.110705999999993 30.737749999999995,-105.110681999999983 30.743366000000002,-105.113815999999986 30.746001,-105.119547104826722 30.748125675649064,-105.123265000000004 30.749504000000005,-105.140207000000004 30.752502,-105.152361999999982 30.751451999999997,-105.157640215066564 30.754007791997694,-105.16015278062757 30.757058756266805,-105.160271207191187 30.758203550015399,-105.161229588477383 30.767467931854636,-105.164076390339474 30.771453450048199,-105.164818961888187 30.77249304906519,-105.164868027003308 30.772491740665838,-105.170370203038615 30.772345016388588,-105.178279098267282 30.772134113115257,-105.183436 30.776644999999995,-105.185930999999997 30.784391999999997,-105.195143999999999 30.792138,-105.195988495740664 30.791702299374609,-105.203522176185984 30.787815448176353,-105.206160999999994 30.786453999999996,-105.212916518294108 30.785414778041517,-105.215967484302155 30.786491589369188,-105.216685356202021 30.789542555377231,-105.215888956387687 30.792967070566242,-105.214890669496626 30.797259699168034,-105.218659510882389 30.801566944478708,-105.222008841883465 30.801829013843189,-105.231580057313238 30.802577916338681,-105.238364256021057 30.803108747911697,-105.249792715464977 30.799033957074698,-105.255416052233826 30.797028969328842,-105.261224946310648 30.798054073736733,-105.261360733612406 30.798078036329223,-105.27276013440985 30.808707209360072,-105.27887297001547 30.814407016614517,-105.283004544196217 30.818259431108679,-105.287237620233441 30.822206489243744,-105.289317685342255 30.822206489243744,-105.295630129130572 30.822206489243744,-105.300778681061615 30.818848737795758,-105.303672944509898 30.816961174571279,-105.314862960890409 30.816961174571279,-105.316949659843416 30.82296045428,-105.31766045482081 30.825003996727105,-105.320108268786385 30.827451797139727,-105.322675464925993 30.828439452154051,-105.330102631610075 30.831296841312803,-105.347695000000002 30.838065,-105.353219571709047 30.842032277683753,-105.358103536812379 30.84553952616983,-105.359771122039604 30.846737044096301,-105.360672052753856 30.84738401593513,-105.36720323988537 30.847875849249167,-105.377416999999994 30.848644999999998,-105.387780492422849 30.851314552204784,-105.394242074789418 30.852979003795937,-105.396689881978517 30.855426817761515,-105.396237319899697 30.858492407966825,-105.394628539050657 30.86939005724841,-105.394248999999988 30.871960999999999,-105.395681745186749 30.87649980844607,-105.399608999999998 30.888940999999996,-105.399828021807267 30.889112280223049,-105.402824820246408 30.891455847338634,-105.413505 30.899808,-105.430088999999995 30.905791999999998,-105.44547819369545 30.915748838601054,-105.448693870984556 30.917829388134351,-105.452149246331331 30.920065022782566,-105.4597280766598 30.924968540917344,-105.469954295993247 30.931584924947412,-105.472488639470896 30.933224650164071,-105.476269681741059 30.935670991952524,-105.488027000000002 30.943277999999999,-105.495516502166126 30.9493992090351,-105.4968561000139 30.950494069316512,-105.497422439936116 30.953962910943051,-105.497963910074574 30.957279424722472,-105.502256687477072 30.962680017552614,-105.507558525965123 30.966493977230062,-105.533087999999992 30.984859,-105.541468808393844 30.984769556162778,-105.543675999999991 30.984745999999998,-105.557430349577899 30.990228688381027,-105.570063935625512 31.008532833135739,-105.575218046011173 31.016000355201566,-105.578084306850855 31.020153131231776,-105.578407858220658 31.020621907958049,-105.57911399999999 31.021644999999999,-105.580554486932016 31.024917232759986,-105.581339666024604 31.026700857930102,-105.581404000000006 31.026847000000004,-105.581361569643192 31.027041810483581,-105.581235244876609 31.027621805343596,-105.579823718925667 31.034102543987302,-105.579541999999989 31.035395999999995,-105.579765234089464 31.036249085539566,-105.579847333127134 31.036562825712579,-105.585323000000002 31.057487999999996,-105.592709163135751 31.0626132919136,-105.595921000000004 31.064841999999999,-105.598772999999994 31.074925999999998,-105.60333 31.082624999999997,-105.627348999999995 31.098545,-105.641890000000004 31.098321999999996,-105.646730999999988 31.113907999999999,-105.647031366805422 31.114192798578223,-105.648833999999994 31.115902000000002,-105.662869191777489 31.12063916934996,-105.673930643060629 31.124372639388369,-105.709491 31.136374999999997,-105.717005999999998 31.141438,-105.717653520299876 31.143411480377267,-105.719539999999995 31.149160999999996,-105.742677999999998 31.164897,-105.763531 31.164121000000005,-105.773256999999987 31.166896999999999,-105.774148788612138 31.168976038235485,-105.780021000000005 31.182666,-105.779878030009812 31.18682806893737,-105.779724999999999 31.191282999999995,-105.782894999999996 31.197562999999999,-105.790659746923424 31.200723362140888,-105.794386000000003 31.20224,-105.818835000000007 31.230680999999997,-105.825806058218902 31.23733997673531,-105.835722000000004 31.246811999999995,-105.851073632158958 31.265902599748792,-105.86604427072389 31.284519412988434,-105.869353000000004 31.288633999999998,-105.869862116496506 31.288859823963843,-105.876014999999981 31.291588999999995,-105.890871999999987 31.290013999999996,-105.895034999999993 31.290977999999999,-105.903460999999993 31.306768999999999,-105.908770999999987 31.312773999999997,-105.914613899052299 31.312859252963214,-105.93196564998388 31.313112430054005,-105.932552999999999 31.313120999999995,-105.933375187723101 31.313903465142818,-105.938451999999984 31.318735,-105.948091000000005 31.340069,-105.945903 31.352809999999998,-105.953942999999995 31.364749,-105.970101 31.365936999999995,-105.997579969562565 31.386863626037869,-106.00418474278807 31.391893495117941,-106.004925999999998 31.392457999999998,-106.006143777923754 31.392558937255828,-106.022866323827969 31.393945009265412,-106.080091217088636 31.398688175961098,-106.080258 31.398702,-106.080335505244278 31.398768097394733,-106.096409750603954 31.412476405141465,-106.100621535494 31.416068265421309,-106.102641400977276 31.417790830744398,-106.10264993125142 31.41779810546371,-106.106876999999997 31.421403000000005,-106.112168999999994 31.423577999999996,-106.132782000000006 31.425367000000005,-106.143572676566535 31.431101721097118,-106.158218000000005 31.438885000000003,-106.175305198785026 31.455910533348611,-106.175674999999998 31.456278999999995,-106.17677981450808 31.456634312625521,-106.182946895641223 31.45861766980741,-106.20560859826729 31.465905761156737,-106.205826999999999 31.465975999999998,-106.205998876707866 31.466165148890862,-106.212686244283063 31.473524541419071,-106.218538531147885 31.479964934554566,-106.218843000000007 31.480299999999996,-106.218893022078106 31.480498686193428,-106.223908999999992 31.500422,-106.236804000000006 31.513376,-106.242649095206133 31.530650094003715,-106.245874455325477 31.540182047193959,-106.246202999999994 31.541153,-106.246406806009631 31.541315626597875,-106.254779999999997 31.547997000000002,-106.280345588488331 31.561810530102129,-106.280548572587122 31.561920205925162,-106.280811 31.562061999999997,-106.287785 31.584444999999999,-106.292254713772053 31.594651759250389,-106.295141086978958 31.601242900860864,-106.303535999999994 31.620412999999996,-106.308594276522342 31.627497440426588,-106.330970256390501 31.658836434185069,-106.33473699999999 31.664111999999999,-106.338265602146336 31.671883697950737,-106.346992532059133 31.691104641686092,-106.349537999999995 31.696711,-106.357472918704602 31.702103016258707,-106.368303742040567 31.709462886938788,-106.370138999999995 31.710709999999999,-106.373839000000004 31.714809999999996,-106.378039 31.72831,-106.381039 31.732109999999999,-106.38595139194058 31.734759025425479,-106.394642915450532 31.739445961452269,-106.404086535473255 31.744538468290354,-106.417940000000002 31.752009,-106.421739999999616 31.752623660686648,-106.431540999999996 31.754208999999996,-106.434644983693715 31.755853956158482,-106.444263765046571 31.76095142933643,-106.451540999999992 31.764807999999999,-106.467641999999998 31.759607999999997,-106.470742 31.753508,-106.472156160715315 31.752506597443457,-106.47367184987327 31.751433300058491,-106.475016438009845 31.750481163584279,-106.475542000000004 31.750108999999998,-106.48261401078824 31.748321568701869,-106.484641999999994 31.747809000000004,-106.486162292248409 31.747994847970777,-106.488078402545341 31.748229082678503,-106.489542 31.748407999999998,-106.507341999999994 31.761208,-106.509102011460428 31.762827435120251,-106.511609062807707 31.765134242258316,-106.523643000000007 31.776206999999996,-106.528643000000002 31.781807,-106.528542999999999 31.783906999999996,-106.528542999999999 31.784407000000002,-106.527996999999999 31.786944999999999,-106.527623000000006 31.789119000000003,-106.527737999999985 31.789760999999995,-106.527942999999993 31.790507000000002,-106.530514999999994 31.792103,-106.532480000000007 31.791913999999998,-106.533 31.791829,-106.533043000000006 31.791906999999995,-106.534743000000006 31.796106999999999,-106.535154000000006 31.797088999999996,-106.535342999999997 31.797507,-106.535842999999986 31.798607,-106.542096999999998 31.802145999999997,-106.542143999999993 31.802106999999996,-106.544713999999999 31.804286999999999,-106.545344 31.805007,-106.546561898485905 31.806561850400339,-106.546615562760394 31.806630361790774,-106.547143999999989 31.807304999999996,-106.551861034152338 31.808599471053657,-106.558443999999994 31.810406,-106.560680020141419 31.810752754512048,-106.560847305685968 31.810778696593822,-106.562944999999999 31.811104,-106.56344399999999 31.812605999999995,-106.566844000000003 31.813305999999997,-106.569123704016391 31.811582321353455,-106.570943999999997 31.810205999999997,-106.577243999999993 31.810406,-106.581344 31.813905999999996,-106.582144 31.815505999999999,-106.588044999999994 31.822105999999998,-106.589044999999984 31.822705999999997,-106.593826000000007 31.824901,-106.602727000000002 31.825023999999996,-106.605266999999998 31.827911999999998,-106.603310537982878 31.834798487166189,-106.601945 31.839604999999999,-106.60204499999999 31.844404999999998,-106.605244999999982 31.845904999999998,-106.605845000000002 31.846304999999997,-106.614637000000002 31.846489999999996,-106.621857000000006 31.852854,-106.625763000000006 31.856276,-106.627808000000002 31.860592999999998,-106.629708357956787 31.861913746439043,-106.635925999999998 31.866235,-106.635879999999986 31.871514,-106.634872999999999 31.874477999999996,-106.630798999999996 31.879696999999997,-106.629271361585637 31.8835303997664,-106.629197000000005 31.883717000000004,-106.629948941610351 31.885072003811555,-106.630443527558498 31.88596325099838,-106.630530381920593 31.886119763139838,-106.630691999999982 31.886410999999999,-106.633926999999986 31.889183999999997,-106.635073463799642 31.889856364267651,-106.636317332120683 31.890585853164694,-106.638154 31.891662999999998,-106.638364165758659 31.89171923904625,-106.642899999999983 31.892932999999999,-106.645296000000002 31.894859,-106.645645999999999 31.895648999999995,-106.645478999999995 31.898669999999999,-106.640839999999997 31.904598,-106.63512839833713 31.908732779117901,-106.633668 31.90979,-106.633408736085542 31.909871832166754,-106.625946999999996 31.912227,-106.62344499999999 31.914034,-106.618336531290581 31.916262323146238,-106.614677480394235 31.917858407661853,-106.614345999999998 31.918002999999995,-106.611846 31.920003,-106.616063629645311 31.921863544491501,-106.623932999999994 31.925334999999997,-106.624022586877501 31.92530240401349,-106.628663000000003 31.923614,-106.629746999999995 31.926570000000002,-106.625321999999983 31.930053000000004,-106.622529 31.934863000000004,-106.622117000000003 31.936620999999999,-106.622377 31.940863,-106.623659000000004 31.945509999999995,-106.616135999999983 31.948439,-106.614701999999994 31.956,-106.617707999999993 31.956008,-106.622819000000007 31.952891,-106.625123000000002 31.954530999999999,-106.625534999999985 31.957475999999996,-106.624298999999993 31.961054,-106.620453999999981 31.963402999999996,-106.619370999999987 31.964777000000005,-106.618745000000004 31.966954999999995,-106.619568999999998 31.971578,-106.621872999999994 31.972933,-106.623215999999999 31.972909999999999,-106.626465999999994 31.97069,-106.630114000000006 31.971257999999999,-106.638186000000005 31.976819999999996,-106.639528999999996 31.980347999999996,-106.63649199999999 31.985719,-106.631181999999995 31.989809,-106.629494617643616 31.990072722748106,-106.628337072326531 31.990253636712819,-106.62822051159516 31.990271854111079,-106.626910882874782 31.990476537349483,-106.623567999999992 31.990998999999999,-106.619448000000006 31.994733,-106.618486000000004 32.000494999999994,-106.599096000000003 32.000731000000002,-106.598639000000006 32.000753999999993,-106.595332999999997 32.000777999999997,-106.587971999999979 32.000748999999999,-106.582805114232855 32.000751357586125,-106.566056000000003 32.000759000000002,-106.565141999999994 32.000736000000003,-106.564298514026802 32.00073927393025,-106.562131862706067 32.000747683631808,-106.55942760630407 32.000758180008894,-106.517043115844388 32.000922692365819,-106.411074999999983 32.001334,-106.409326934223301 32.001349629127162,-106.409108574114072 32.001351581443814,-106.394297999999992 32.001483999999998,-106.376861000000005 32.001171999999997,-106.32356972407176 32.001457096670784,-106.313306999999995 32.001511999999998,-106.205915000000005 32.001761999999999,-106.200699 32.001784999999998,-106.18183999999998 32.002049999999997,-106.125534000000002 32.002532999999993,-106.05045734599986 32.002412317859424,-105.998002999999997 32.002327999999999,-105.900599999999997 32.002099999999992,-105.886159000000006 32.001969999999993,-105.854061000000002 32.00235,-105.750527000000005 32.002206,-105.731362000000004 32.001564000000002,-105.563520259526442 32.001015604709174,-105.429281000000003 32.000577,-105.428582000000006 32.000599999999999,-105.427048999999997 32.000638000000002,-105.390395999999981 32.000607000000002,-105.340142768272344 32.000583616714373,-105.200871148394683 32.000518812363367,-105.153993999999997 32.000497000000003,-105.150310000000005 32.000497000000003,-105.14824 32.000484999999998,-105.132915999999994 32.000518,-105.131377 32.000523999999999,-105.118039999999993 32.000484999999998,-105.078604999999996 32.000532999999997,-105.077045999999996 32.000578999999995,-104.918272000000002 32.000495999999991,-104.643525999999994 32.000442999999997,-104.640917999999999 32.000396000000002,-104.531936999999999 32.000311000000004,-104.531756 32.000117000000003,-104.024520999999993 32.000010000000003,-103.980179000000007 32.000124999999997,-103.875476000000006 32.000554,-103.748317 32.000197999999997,-103.72373965094468 32.000208021677786,-103.713395184678689 32.000212239744897,-103.713395184670219 32.000212239744904,-103.713395184654971 32.000212239744911,-103.713395184639609 32.000212239744918,-103.60161412595366 32.000257819670985,-103.326500999999993 32.00036999999999,-103.278520999999998 32.000419,-103.270382999999995 32.000326,-103.267707999999999 32.000323999999992,-103.267633000000004 32.000475000000002,-103.215641000000005 32.000512999999998,-103.133028835827503 32.000473953106116,-103.088697999999994 32.000452999999993,-103.085875999999985 32.000464999999998,-103.064422999999991 32.000518,-103.064344000000006 32.087051000000002,-103.064347999999995 32.123041,-103.064421999999993 32.145006000000002,-103.064695999999998 32.522193,-103.064761000000004 32.587983,-103.064787999999993 32.600397,-103.064761000000004 32.601863000000002,-103.064814999999996 32.624536999999997,-103.064633 32.646419999999992,-103.064864 32.682647000000003,-103.064797999999996 32.690761000000002,-103.064798999999994 32.708694,-103.064826999999994 32.726627999999998,-103.064807000000002 32.777302999999996,-103.064698000000007 32.783602000000002,-103.064711000000003 32.784593,-103.064699000000005 32.827531,-103.064672000000002 32.828470000000003,-103.064888999999994 32.849359,-103.064915999999982 32.857259999999997,-103.064807000000002 32.857695999999997,-103.064862000000005 32.868346000000003,-103.064700999999985 32.879354999999997,-103.064569000000006 32.900013999999999,-103.064656999999997 32.959097,-103.064678999999998 32.964373000000002,-103.064625000000007 32.999898999999999,-103.064452000000003 33.010289999999998,-103.06398 33.038693000000002,-103.063904999999991 33.042054999999998,-103.063382198608849 33.066417104805645,-103.0628188509327 33.092668632365545,-103.062136190569035 33.12448003074244,-103.060102999999984 33.219225000000002,-103.059719999999999 33.256262,-103.059241999999998 33.260370999999992,-103.057856 33.315233999999997,-103.057486999999995 33.32947699999999,-103.056655000000006 33.388437999999994,-103.052609999999987 33.570599,-103.051664000000002 33.629489,-103.051362999999995 33.64195,-103.051535 33.650486999999998,-103.051086999999981 33.658186,-103.050532000000004 33.672407999999997,-103.050147999999993 33.701971,-103.049608000000006 33.737766,-103.049096000000006 33.746270000000003,-103.047346000000005 33.824674999999999,-103.046907000000004 33.850299999999997,-103.045643999999996 33.901536999999998,-103.045698000000002 33.90629899999999,-103.044893000000002 33.945616999999999,-103.043949999999981 33.974629,-103.043616999999998 34.003633,-103.043531000000002 34.018014,-103.043554999999984 34.032713999999991,-103.043745999999999 34.037294000000003,-103.043771000000007 34.041538000000003,-103.043720999999991 34.042319999999997,-103.043767000000003 34.043544999999995,-103.043744000000004 34.049985999999997,-103.04368599999998 34.063077999999997,-103.043515999999983 34.079382000000003,-103.043569000000005 34.087947,-103.043571175003294 34.092846731402311,-103.043572866326429 34.096656853966635,-103.04358003846437 34.112813863799865,-103.043644 34.256903,-103.043718999999982 34.289440999999997,-103.043935999999988 34.302584999999993,-103.043978999999979 34.312763999999994,-103.043947553639484 34.376410480771497,-103.043947499824213 34.37651940122479,-103.043946000000005 34.379555000000003,-103.043943999999982 34.37966,-103.043919000000002 34.380915999999992,-103.043693000000005 34.383578,-103.043629999999993 34.384689999999999,-103.043614000000005 34.384968999999998,-103.043612999999993 34.388679000000003,-103.043612999999993 34.390442,-103.043606047260084 34.391254973944719,-103.043584999999993 34.393715999999998,-103.043610999999999 34.397105000000003,-103.043582999999998 34.400677999999999,-103.043537999999998 34.405462999999997,-103.043582 34.455657000000002,-103.043587999999986 34.459662000000002,-103.043588999999997 34.459774000000003,-103.043593999999985 34.46266,-103.043434927764125 34.510540742996007,-103.043071999999981 34.619782,-103.043277851519235 34.65183038816317,-103.0432796163159 34.65210514391012,-103.043285999999995 34.653098999999997,-103.042827000000003 34.671187999999994,-103.042768999999993 34.747360999999998,-103.042770000000004 34.792223999999997,-103.042781000000005 34.850242999999999,-103.042520999999979 34.899546,-103.0425974544018 35.032467348285799,-103.042641999999987 35.109912999999999,-103.043261 35.125058000000003,-103.042519999999996 35.135596,-103.042599999999993 35.142766000000002,-103.042710999999997 35.144734999999997,-103.042568000000003 35.159317999999999,-103.042394999999999 35.178573,-103.042338999999984 35.181922,-103.042366 35.182786,-103.042377000000002 35.183149,-103.042496999999997 35.211862000000004,-103.042775000000006 35.241236999999998,-103.042366 35.250056,-103.041554000000005 35.622487,-103.041484634909168 35.651235429903174,-103.041145999999998 35.791583000000003,-103.041916999999998 35.796441000000002,-103.041715999999994 35.814072000000003,-103.042186 35.825216999999995,-103.04130499999998 35.837693999999999,-103.040823999999986 36.055230999999992,-103.041387523024824 36.229129564686382,-103.041674 36.317534000000002,-103.041745000000006 36.318266999999999,-103.041923999999995 36.500439,-103.00243399999998 36.500397)),((-96.818513748151517 28.172441936006489,-96.816443421354066 28.174808025412563,-96.791958210781445 28.188687337716829,-96.733036581469989 28.190913261798631,-96.70383764358462 28.198245729538105,-96.697421731775194 28.2029594609741,-96.702659211994316 28.211208487181011,-96.703313894801497 28.216445964862743,-96.686815839850283 28.218410020896432,-96.662461568376486 28.227313732447904,-96.66062845144161 28.228884976259902,-96.663116248646261 28.233205895474203,-96.651855673914184 28.251275190431315,-96.607991796426646 28.277069769155677,-96.608122730450688 28.280081317680857,-96.611527096272326 28.281390688369981,-96.610479598706064 28.283092866206033,-96.592934048725994 28.296972182316367,-96.581018783574592 28.302209665072866,-96.553260151988255 28.302340591484768,-96.546975176740276 28.305614018207578,-96.542130508742858 28.315958034472228,-96.528905880514458 28.322504882843088,-96.476269225261575 28.330753906512612,-96.45099839278295 28.337038879223222,-96.434107525610045 28.344764159184386,-96.418918843885365 28.35484630740093,-96.415252604940861 28.362833452872817,-96.417216660974546 28.367154372087118,-96.412895739222876 28.36951123780511,-96.403206408302779 28.371475291301415,-96.401242352269094 28.366892498964241,-96.400558825492723 28.362187299887704,-96.398667286465624 28.349166496619617,-96.397846 28.343512999999998,-96.413700000000006 28.327342999999999,-96.439098999999999 28.319051999999999,-96.495600517783487 28.293964130304811,-96.547774000000004 28.270797999999999,-96.587113635820756 28.248878526668094,-96.611036668198281 28.235548960715661,-96.621533999999983 28.229699999999998,-96.694665999999998 28.18212,-96.758140999999995 28.136872999999998,-96.830820125734775 28.079724674840076,-96.849624000000006 28.064938999999999,-96.854049189790473 28.060788472935577,-96.855594496383262 28.059339080448503,-96.859762278796424 28.055429983997605,-96.896530613737951 28.020943786452513,-96.898080497387397 28.019490100997579,-96.929052999999996 27.990439999999996,-96.96699599999998 27.950531000000002,-97.001440999999986 27.911442,-97.031660000000002 27.869974999999997,-97.041798999999997 27.852925999999997,-97.045408776308051 27.837452569961062,-97.045409609838757 27.837448997003069,-97.04598 27.835004,-97.050599498412936 27.830109781194331,-97.058265753683145 27.821987615677948,-97.076304165860961 27.802876463727326,-97.079565315161531 27.799421374709375,-97.083535350812468 27.795215242050556,-97.085211615730273 27.793439290085495,-97.085394999999991 27.793244999999999,-97.11422230692618 27.755303327915222,-97.116276999999997 27.752599,-97.117304906633777 27.751048809529347,-97.118830196202964 27.748748513687826,-97.139140047561696 27.718119138409879,-97.139351757288111 27.717799858049549,-97.143807202733072 27.711080581371732,-97.165547551982726 27.678293865995041,-97.166583141799606 27.676732088482499,-97.166681999999994 27.676583,-97.184850261879149 27.644709535797791,-97.192144670654784 27.631912600211269,-97.198729900630283 27.620359811436909,-97.201865999999995 27.614857999999998,-97.211651066704889 27.596044174137351,-97.213608899397855 27.592279833590187,-97.221943360361436 27.576255098965802,-97.265194083077162 27.493096589152017,-97.265746568141566 27.492034321708481,-97.276090999999994 27.472145,-97.304469999999995 27.407734,-97.326522999999995 27.347611999999998,-97.347445832595042 27.277936119324231,-97.350397999999998 27.268104999999998,-97.363400999999996 27.210366,-97.370941000000002 27.161165999999998,-97.377001000000007 27.101020999999999,-97.379130000000004 27.047996,-97.378361999999996 26.992877,-97.370730999999992 26.909706,-97.365301177044699 26.875333999999995,-97.365282052674758 26.875212938438843,-97.364726000000005 26.871692999999997,-97.363633430415348 26.866515420001111,-97.352028350385282 26.811520085064032,-97.35141299999998 26.808603999999999,-97.350529648372714 26.805138580575584,-97.333027999999999 26.736478999999996,-97.304204860681779 26.646364129642233,-97.300690000000003 26.635375,-97.297812715808362 26.627503004299889,-97.297022484076606 26.625340999999999,-97.287871455917369 26.600304594305239,-97.275119000000004 26.565415000000002,-97.269391999999982 26.554046,-97.269132970349304 26.553256905349773,-97.257954534248029 26.519203490608863,-97.229844 26.433568999999999,-97.223724090442104 26.411478908273114,-97.206682644704898 26.34996703527348,-97.194643999999997 26.306512999999999,-97.185844000000003 26.267102999999995,-97.177979856301576 26.220346386353309,-97.177168840972797 26.215524458900923,-97.173264999999986 26.192314,-97.170387765328073 26.167037808112223,-97.169872392484734 26.162510314053797,-97.167099005951158 26.138146416702778,-97.161470999999992 26.088705,-97.158662630175101 26.080176913346069,-97.154270970414501 26.066840900880429,-97.161462285840642 26.067639941946975,-97.169842256221145 26.077853024187579,-97.171781452365479 26.102521767945923,-97.179531587141199 26.146202099560895,-97.178745972847352 26.177103221942961,-97.183983445454302 26.214289306886101,-97.194458400817808 26.271639686993655,-97.214884565299002 26.353606215503973,-97.226930759399721 26.385554824668418,-97.240286324189555 26.405980989149626,-97.240845398636537 26.411470089808617,-97.243166933615896 26.434263367616055,-97.247618791929028 26.456260775909261,-97.254165635225121 26.471187589585856,-97.262545605605609 26.482971915638458,-97.27642492679071 26.521729238684483,-97.292399243108349 26.528014213932472,-97.310730412457033 26.556558470596535,-97.308111681228326 26.5712234060755,-97.308635417324538 26.576722756880109,-97.317015387705027 26.597672667607057,-97.318434072834165 26.60022630157264,-97.324871601690262 26.611813856840271,-97.338489044677715 26.647428701777493,-97.33639404954522 26.666021744249065,-97.345821512417203 26.700589103038251,-97.363105189274393 26.710540307081217,-97.370437657013895 26.723895871871047,-97.370961403259614 26.736203954318924,-97.367557047587525 26.740393934434408,-97.364152671616353 26.758986971196869,-97.364646278833362 26.767121661774897,-97.368866408127118 26.774699404876429,-97.370437646864346 26.781508126370166,-97.368342661881371 26.795649318140761,-97.373056398392137 26.808481136684847,-97.387459455673451 26.820789208983193,-97.383531343606066 26.875520854055946,-97.385626348888096 26.88887641440536,-97.391649435788921 26.901970109878395,-97.389554460955466 26.945964918852653,-97.390340075249313 27.05228571820243,-97.389816329003565 27.067212531879022,-97.386411973331462 27.083186832972341,-97.387459455673422 27.090519300711819,-97.390601943297412 27.094185534581555,-97.390078197051665 27.156511519247964,-97.377508246555678 27.199458835730731,-97.379865109736301 27.202863196477598,-97.386673841379576 27.204696313412462,-97.382221972916923 27.229050589961044,-97.37488951532697 27.25026236588155,-97.373318276589728 27.276449754290233,-97.372896734486858 27.277942715507475,-97.367033301341749 27.298709035706306,-97.36467643816114 27.302637142698917,-97.359962701650375 27.304732132756659,-97.357605838469766 27.307874620380655,-97.362319574980518 27.32672953597509,-97.366771423144115 27.333276389420721,-97.36179581858525 27.359987519000377,-97.346607126710992 27.390364889744752,-97.336132171347501 27.402411088920228,-97.331156576938184 27.412362295500575,-97.329585328051422 27.418123524502818,-97.330894688591016 27.425455992242295,-97.329847196099536 27.434359703793774,-97.317277255753083 27.463689574751687,-97.293708603647858 27.497209429631152,-97.282971770086746 27.521563701104967,-97.267627232015485 27.541048841138782,-97.26651977444007 27.542455137362143,-97.266473727822444 27.542513609294531,-97.257831889393842 27.556392930479635,-97.261144559602045 27.562355746269706,-97.261759991311692 27.563463525096239,-97.260450620622564 27.56739163716362,-97.260303240478223 27.567589679048492,-97.252732825146552 27.577762415194865,-97.252070650242061 27.578652211895708,-97.247885553160842 27.581360217573209,-97.247618802078478 27.581532821322067,-97.236881968517352 27.598292751933528,-97.24107194863285 27.602482732049012,-97.241084821027414 27.602523494839662,-97.242643187370078 27.607458346757408,-97.231683715414945 27.631671123728168,-97.231553918442799 27.631957884363242,-97.231382612637987 27.632336350521356,-97.221955159915538 27.632860099304484,-97.221711030183002 27.632638163711842,-97.219074540339648 27.630241360463614,-97.217418907944051 27.630677052710489,-97.214098935780783 27.631550728615359,-97.200743370990949 27.650143776161688,-97.197339005169326 27.664546838517776,-97.19760088336696 27.678426154628117,-97.203474366386629 27.684532651921231,-97.20308902068453 27.688000774441392,-97.200450811776179 27.688974477466285,-97.190006537429824 27.692829222058965,-97.188284576858237 27.695272543577584,-97.170627865440125 27.720325976082009,-97.166176017276527 27.732372180332245,-97.161200407642937 27.734074342943998,-97.153606061705801 27.733288721037997,-97.147321086457822 27.735383711095739,-97.130823034043985 27.751619892924076,-97.127942424617643 27.75580987303956,-97.127680546420009 27.759999858229808,-97.125046985317312 27.763143140340585,-97.103326269871417 27.789067861139614,-97.102999946318647 27.791923200131116,-97.10255066693685 27.795854405604921,-97.102495980878558 27.796332909939515,-97.102278777379922 27.798233445813956,-97.100865886772965 27.802472121847156,-97.098874421707819 27.808446522979796,-97.095168997779496 27.812151946908138,-97.092851314507953 27.81446963017968,-97.092589446459854 27.819183356540908,-97.098874421707819 27.822849590410645,-97.104263831428213 27.822227735056668,-97.126109297533233 27.819707102786651,-97.130299287798252 27.820492727230029,-97.134489267913736 27.825206463740791,-97.132394272781227 27.827301438574235,-97.10670775348396 27.832389859144307,-97.087681973298601 27.836158807756469,-97.056712719518927 27.842293721800239,-97.055822986229373 27.843403727743151,-97.04322620548075 27.859119113080268,-97.013634476624247 27.906780143237341,-97.017955395838555 27.911493874673329,-97.016384146951765 27.917255079570445,-96.985744902767337 27.954048356415132,-96.977888688782102 27.976438572489602,-96.978805242174786 27.978271691961854,-96.980900237307296 27.978271691961854,-96.986006780964971 27.976176699366729,-96.986661461234775 27.980759491703903,-96.978281501003806 28.001709402430844,-96.967806540565562 28.020040576854303,-96.966759042999328 28.020367911280101,-96.965187799187319 28.013297317932185,-96.962569062883844 28.012380759464751,-96.952617853766114 28.01643980428749,-96.946987563862692 28.02652194996665,-96.932453562407773 28.035425661518129,-96.926430465357427 28.043412814602167,-96.929572952981431 28.051399967686208,-96.927085150701998 28.057292130712504,-96.906004298338829 28.076147047258459,-96.890946545563423 28.076801730065643,-96.886232814127425 28.084396073465374,-96.88832780925992 28.086622002621937,-96.889113433703315 28.099453823703399,-96.886887499471996 28.117130312782294,-96.879424092633712 28.131402425890027,-96.874972236857971 28.133235547899659,-96.87078225420511 28.13127149186597,-96.86462821551855 28.126295887307109,-96.857164811217643 28.115559058820768,-96.845380482627661 28.108881273888468,-96.830128556765757 28.111822717849165,-96.827049318353744 28.112416571196771,-96.816574357915513 28.119618104912195,-96.810420321766344 28.126034014184238,-96.810944073086844 28.136378030448888,-96.816836228500989 28.158048094801106,-96.820248352517055 28.163388807027481,-96.822859330626116 28.167475552598326,-96.818513748151517 28.172441936006489)))
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/geoapp/test_feeds.py b/webapp/django/contrib/gis/tests/geoapp/test_feeds.py
new file mode 100644
index 0000000..fba424c
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/test_feeds.py
@@ -0,0 +1,76 @@
+import unittest
+from xml.dom import minidom
+
+from django.test import Client
+from models import City
+
+class GeoFeedTest(unittest.TestCase):
+    client = Client()
+
+    def assertChildNodes(self, elem, expected):
+        "Taken from regressiontests/syndication/tests.py."
+        actual = set([n.nodeName for n in elem.childNodes])
+        expected = set(expected)
+        self.assertEqual(actual, expected)
+
+    def test_geofeed_rss(self):
+        "Tests geographic feeds using GeoRSS over RSSv2."
+        # Uses `GEOSGeometry` in `item_geometry`
+        doc1 = minidom.parseString(self.client.get('/geoapp/feeds/rss1/').content)
+        # Uses a 2-tuple in `item_geometry`
+        doc2 = minidom.parseString(self.client.get('/geoapp/feeds/rss2/').content) 
+        feed1, feed2 = doc1.firstChild, doc2.firstChild
+
+        # Making sure the box got added to the second GeoRSS feed.
+        self.assertChildNodes(feed2.getElementsByTagName('channel')[0], 
+                              ['title', 'link', 'description', 'language', 'lastBuildDate', 'item', 'georss:box']
+                              )
+        
+        # Incrementing through the feeds.
+        for feed in [feed1, feed2]:
+            # Ensuring the georss namespace was added to the <rss> element.
+            self.assertEqual(feed.getAttribute(u'xmlns:georss'),  u'http://www.georss.org/georss')
+            chan = feed.getElementsByTagName('channel')[0]
+            items = chan.getElementsByTagName('item')
+            self.assertEqual(len(items), City.objects.count())
+                
+            # Ensuring the georss element was added to each item in the feed.
+            for item in items:
+                self.assertChildNodes(item, ['title', 'link', 'description', 'guid', 'georss:point'])
+
+    def test_geofeed_atom(self):
+        "Testing geographic feeds using GeoRSS over Atom."
+        doc1 = minidom.parseString(self.client.get('/geoapp/feeds/atom1/').content)
+        doc2 = minidom.parseString(self.client.get('/geoapp/feeds/atom2/').content)
+        feed1, feed2 = doc1.firstChild, doc2.firstChild
+
+        # Making sure the box got added to the second GeoRSS feed.
+        self.assertChildNodes(feed2, ['title', 'link', 'id', 'updated', 'entry', 'georss:box'])        
+
+        for feed in [feed1, feed2]:
+            # Ensuring the georsss namespace was added to the <feed> element.
+            self.assertEqual(feed.getAttribute(u'xmlns:georss'),  u'http://www.georss.org/georss')
+            entries = feed.getElementsByTagName('entry')
+            self.assertEqual(len(entries), City.objects.count())
+            
+            # Ensuring the georss element was added to each entry in the feed.
+            for entry in entries:
+                self.assertChildNodes(entry, ['title', 'link', 'id', 'summary', 'georss:point'])
+
+    def test_geofeed_w3c(self):
+        "Testing geographic feeds using W3C Geo."
+        doc = minidom.parseString(self.client.get('/geoapp/feeds/w3cgeo1/').content)
+        feed = doc.firstChild
+        # Ensuring the geo namespace was added to the <feed> element.
+        self.assertEqual(feed.getAttribute(u'xmlns:geo'), u'http://www.w3.org/2003/01/geo/wgs84_pos#')
+        chan = feed.getElementsByTagName('channel')[0]
+        items = chan.getElementsByTagName('item')
+        self.assertEqual(len(items), City.objects.count())
+
+        # Ensuring the geo:lat and geo:lon element was added to each item in the feed.
+        for item in items:
+            self.assertChildNodes(item, ['title', 'link', 'description', 'guid', 'geo:lat', 'geo:lon'])
+
+        # Boxes and Polygons aren't allowed in W3C Geo feeds.
+        self.assertRaises(ValueError, self.client.get, '/geoapp/feeds/w3cgeo2/') # Box in <channel>
+        self.assertRaises(ValueError, self.client.get, '/geoapp/feeds/w3cgeo3/') # Polygons in <entry>
diff --git a/webapp/django/contrib/gis/tests/geoapp/test_sitemaps.py b/webapp/django/contrib/gis/tests/geoapp/test_sitemaps.py
new file mode 100644
index 0000000..a83e044
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/test_sitemaps.py
@@ -0,0 +1,83 @@
+import unittest, zipfile, cStringIO
+from xml.dom import minidom
+
+from django.test import Client
+from models import City, Country
+
+class GeoSitemapTest(unittest.TestCase):
+    client = Client()
+
+    def assertChildNodes(self, elem, expected):
+        "Taken from regressiontests/syndication/tests.py."
+        actual = set([n.nodeName for n in elem.childNodes])
+        expected = set(expected)
+        self.assertEqual(actual, expected)
+
+    def test_geositemap_index(self):
+        "Tests geographic sitemap index."
+        # Getting the geo index.
+        doc = minidom.parseString(self.client.get('/geoapp/sitemap.xml').content)
+        index = doc.firstChild
+        self.assertEqual(index.getAttribute(u'xmlns'), u'http://www.sitemaps.org/schemas/sitemap/0.9')
+        self.assertEqual(3, len(index.getElementsByTagName('sitemap')))
+
+    def test_geositemap_kml(self):
+        "Tests KML/KMZ geographic sitemaps."
+        for kml_type in ('kml', 'kmz'):
+            doc = minidom.parseString(self.client.get('/geoapp/sitemaps/%s.xml' % kml_type).content)
+
+            # Ensuring the right sitemaps namespaces are present.
+            urlset = doc.firstChild
+            self.assertEqual(urlset.getAttribute(u'xmlns'), u'http://www.sitemaps.org/schemas/sitemap/0.9')
+            self.assertEqual(urlset.getAttribute(u'xmlns:geo'), u'http://www.google.com/geo/schemas/sitemap/1.0')
+        
+            urls = urlset.getElementsByTagName('url')
+            self.assertEqual(2, len(urls)) # Should only be 2 sitemaps.
+            for url in urls:
+                self.assertChildNodes(url, ['loc', 'geo:geo'])
+                # Making sure the 'geo:format' element was properly set.
+                geo_elem = url.getElementsByTagName('geo:geo')[0]
+                geo_format = geo_elem.getElementsByTagName('geo:format')[0]
+                self.assertEqual(kml_type, geo_format.childNodes[0].data)
+
+                # Getting the relative URL since we don't have a real site.
+                kml_url = url.getElementsByTagName('loc')[0].childNodes[0].data.split('http://example.com')[1]
+                
+                if kml_type == 'kml':
+                    kml_doc = minidom.parseString(self.client.get(kml_url).content)
+                elif kml_type == 'kmz':
+                    # Have to decompress KMZ before parsing.
+                    buf = cStringIO.StringIO(self.client.get(kml_url).content)
+                    zf = zipfile.ZipFile(buf)
+                    self.assertEqual(1, len(zf.filelist))
+                    self.assertEqual('doc.kml', zf.filelist[0].filename)
+                    kml_doc = minidom.parseString(zf.read('doc.kml'))
+                
+                # Ensuring the correct number of placemarks are in the KML doc.
+                if 'city' in kml_url:
+                    model = City
+                elif 'country' in kml_url:
+                    model = Country
+                self.assertEqual(model.objects.count(), len(kml_doc.getElementsByTagName('Placemark')))
+
+    def test_geositemap_georss(self):
+        "Tests GeoRSS geographic sitemaps."
+        from feeds import feed_dict
+
+        doc = minidom.parseString(self.client.get('/geoapp/sitemaps/georss.xml').content)
+   
+        # Ensuring the right sitemaps namespaces are present.
+        urlset = doc.firstChild
+        self.assertEqual(urlset.getAttribute(u'xmlns'), u'http://www.sitemaps.org/schemas/sitemap/0.9')
+        self.assertEqual(urlset.getAttribute(u'xmlns:geo'), u'http://www.google.com/geo/schemas/sitemap/1.0')
+
+        # Making sure the correct number of feed URLs were included.
+        urls = urlset.getElementsByTagName('url')
+        self.assertEqual(len(feed_dict), len(urls))
+
+        for url in urls:
+            self.assertChildNodes(url, ['loc', 'geo:geo'])
+            # Making sure the 'geo:format' element was properly set to 'georss'.
+            geo_elem = url.getElementsByTagName('geo:geo')[0]
+            geo_format = geo_elem.getElementsByTagName('geo:format')[0]
+            self.assertEqual('georss', geo_format.childNodes[0].data)
diff --git a/webapp/django/contrib/gis/tests/geoapp/tests.py b/webapp/django/contrib/gis/tests/geoapp/tests.py
new file mode 100644
index 0000000..ff6eac9
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/tests.py
@@ -0,0 +1,568 @@
+import os, unittest
+from models import Country, City, State, Feature, MinusOneSRID
+from django.contrib.gis import gdal
+from django.contrib.gis.db.backend import SpatialBackend
+from django.contrib.gis.geos import *
+from django.contrib.gis.measure import Distance
+from django.contrib.gis.tests.utils import no_oracle, no_postgis, oracle, postgis
+
+# TODO: Some tests depend on the success/failure of previous tests, these should
+# be decoupled.  This flag is an artifact of this problem, and makes debugging easier;
+# specifically, the DISABLE flag will disables all tests, allowing problem tests to
+# be examined individually.
+DISABLE = False
+
+class GeoModelTest(unittest.TestCase):
+    
+    def test01_initial_sql(self):
+        "Testing geographic initial SQL."
+        if DISABLE: return
+        if oracle:
+            # Oracle doesn't allow strings longer than 4000 characters
+            # in SQL files, and I'm stumped on how to use Oracle BFILE's
+            # in PLSQL, so we set up the larger geometries manually, rather
+            # than relying on the initial SQL. 
+
+            # Routine for returning the path to the data files.
+            data_dir = os.path.join(os.path.dirname(__file__), 'sql')
+            def get_file(wkt_file):
+                return os.path.join(data_dir, wkt_file)
+
+            State(name='Colorado', poly=fromfile(get_file('co.wkt'))).save()
+            State(name='Kansas', poly=fromfile(get_file('ks.wkt'))).save()
+            Country(name='Texas', mpoly=fromfile(get_file('tx.wkt'))).save()
+            Country(name='New Zealand', mpoly=fromfile(get_file('nz.wkt'))).save()
+
+        # Ensuring that data was loaded from initial SQL.
+        self.assertEqual(2, Country.objects.count())
+        self.assertEqual(8, City.objects.count())
+
+        # Oracle cannot handle NULL geometry values w/certain queries.
+        if oracle: n_state = 2
+        else: n_state = 3
+        self.assertEqual(n_state, State.objects.count())
+
+    def test02_proxy(self):
+        "Testing Lazy-Geometry support (using the GeometryProxy)."
+        if DISABLE: return
+        ## Testing on a Point
+        pnt = Point(0, 0)
+        nullcity = City(name='NullCity', point=pnt)
+        nullcity.save()
+
+        # Making sure TypeError is thrown when trying to set with an
+        #  incompatible type.
+        for bad in [5, 2.0, LineString((0, 0), (1, 1))]:
+            try:
+                nullcity.point = bad
+            except TypeError:
+                pass
+            else:
+                self.fail('Should throw a TypeError')
+
+        # Now setting with a compatible GEOS Geometry, saving, and ensuring
+        #  the save took, notice no SRID is explicitly set.
+        new = Point(5, 23)
+        nullcity.point = new
+
+        # Ensuring that the SRID is automatically set to that of the 
+        #  field after assignment, but before saving.
+        self.assertEqual(4326, nullcity.point.srid)
+        nullcity.save()
+
+        # Ensuring the point was saved correctly after saving
+        self.assertEqual(new, City.objects.get(name='NullCity').point)
+
+        # Setting the X and Y of the Point
+        nullcity.point.x = 23
+        nullcity.point.y = 5
+        # Checking assignments pre & post-save.
+        self.assertNotEqual(Point(23, 5), City.objects.get(name='NullCity').point)
+        nullcity.save()
+        self.assertEqual(Point(23, 5), City.objects.get(name='NullCity').point)
+        nullcity.delete()
+
+        ## Testing on a Polygon
+        shell = LinearRing((0, 0), (0, 100), (100, 100), (100, 0), (0, 0))
+        inner = LinearRing((40, 40), (40, 60), (60, 60), (60, 40), (40, 40))
+
+        # Creating a State object using a built Polygon
+        ply = Polygon(shell, inner)
+        nullstate = State(name='NullState', poly=ply)
+        self.assertEqual(4326, nullstate.poly.srid) # SRID auto-set from None
+        nullstate.save()
+
+        ns = State.objects.get(name='NullState')
+        self.assertEqual(ply, ns.poly)
+        
+        # Testing the `ogr` and `srs` lazy-geometry properties.
+        if gdal.HAS_GDAL:
+            self.assertEqual(True, isinstance(ns.poly.ogr, gdal.OGRGeometry))
+            self.assertEqual(ns.poly.wkb, ns.poly.ogr.wkb)
+            self.assertEqual(True, isinstance(ns.poly.srs, gdal.SpatialReference))
+            self.assertEqual('WGS 84', ns.poly.srs.name)
+
+        # Changing the interior ring on the poly attribute.
+        new_inner = LinearRing((30, 30), (30, 70), (70, 70), (70, 30), (30, 30))
+        ns.poly[1] = new_inner
+        ply[1] = new_inner
+        self.assertEqual(4326, ns.poly.srid)
+        ns.save()
+        self.assertEqual(ply, State.objects.get(name='NullState').poly)
+        ns.delete()
+
+    @no_oracle # Oracle does not support KML.
+    def test03a_kml(self):
+        "Testing KML output from the database using GeoManager.kml()."
+        if DISABLE: return
+        # Should throw a TypeError when trying to obtain KML from a
+        #  non-geometry field.
+        qs = City.objects.all()
+        self.assertRaises(TypeError, qs.kml, 'name')
+
+        # The reference KML depends on the version of PostGIS used 
+        # (the output stopped including altitude in 1.3.3).
+        major, minor1, minor2 = SpatialBackend.version
+        ref_kml1 = '<Point><coordinates>-104.609252,38.255001,0</coordinates></Point>'
+        ref_kml2 = '<Point><coordinates>-104.609252,38.255001</coordinates></Point>'
+        if major == 1:
+            if minor1 > 3 or (minor1 == 3 and minor2 >= 3): ref_kml = ref_kml2
+            else: ref_kml = ref_kml1
+        else:
+            ref_kml = ref_kml2
+
+        # Ensuring the KML is as expected.
+        ptown1 = City.objects.kml(field_name='point', precision=9).get(name='Pueblo')
+        ptown2 = City.objects.kml(precision=9).get(name='Pueblo')
+        for ptown in [ptown1, ptown2]:
+            self.assertEqual(ref_kml, ptown.kml)
+
+    def test03b_gml(self):
+        "Testing GML output from the database using GeoManager.gml()."
+        if DISABLE: return
+        # Should throw a TypeError when tyring to obtain GML from a
+        #  non-geometry field.
+        qs = City.objects.all()
+        self.assertRaises(TypeError, qs.gml, field_name='name')
+        ptown1 = City.objects.gml(field_name='point', precision=9).get(name='Pueblo')
+        ptown2 = City.objects.gml(precision=9).get(name='Pueblo')
+
+        if oracle:
+            # No precision parameter for Oracle :-/
+            import re
+            gml_regex = re.compile(r'<gml:Point srsName="SDO:4326" xmlns:gml="http://www.opengis.net/gml"><gml:coordinates decimal="\." cs="," ts=" ">-104.60925199\d+,38.25500\d+ </gml:coordinates></gml:Point>')
+            for ptown in [ptown1, ptown2]:
+                self.assertEqual(True, bool(gml_regex.match(ptown.gml)))
+        else:
+            for ptown in [ptown1, ptown2]:
+                self.assertEqual('<gml:Point srsName="EPSG:4326"><gml:coordinates>-104.609252,38.255001</gml:coordinates></gml:Point>', ptown.gml)
+
+    def test04_transform(self):
+        "Testing the transform() GeoManager method."
+        if DISABLE: return
+        # Pre-transformed points for Houston and Pueblo.
+        htown = fromstr('POINT(1947516.83115183 6322297.06040572)', srid=3084)
+        ptown = fromstr('POINT(992363.390841912 481455.395105533)', srid=2774)
+        prec = 3 # Precision is low due to version variations in PROJ and GDAL.
+
+        # Asserting the result of the transform operation with the values in
+        #  the pre-transformed points.  Oracle does not have the 3084 SRID.
+        if not oracle:
+            h = City.objects.transform(htown.srid).get(name='Houston')
+            self.assertEqual(3084, h.point.srid)
+            self.assertAlmostEqual(htown.x, h.point.x, prec)
+            self.assertAlmostEqual(htown.y, h.point.y, prec)
+
+        p1 = City.objects.transform(ptown.srid, field_name='point').get(name='Pueblo')
+        p2 = City.objects.transform(srid=ptown.srid).get(name='Pueblo')
+        for p in [p1, p2]:
+            self.assertEqual(2774, p.point.srid)
+            self.assertAlmostEqual(ptown.x, p.point.x, prec)
+            self.assertAlmostEqual(ptown.y, p.point.y, prec)
+
+    @no_oracle # Most likely can do this in Oracle, however, it is not yet implemented (patches welcome!)
+    def test05_extent(self):
+        "Testing the `extent` GeoQuerySet method."
+        if DISABLE: return
+        # Reference query:
+        # `SELECT ST_extent(point) FROM geoapp_city WHERE (name='Houston' or name='Dallas');`
+        #   =>  BOX(-96.8016128540039 29.7633724212646,-95.3631439208984 32.7820587158203)
+        expected = (-96.8016128540039, 29.7633724212646, -95.3631439208984, 32.782058715820)
+
+        qs = City.objects.filter(name__in=('Houston', 'Dallas'))
+        extent = qs.extent()
+
+        for val, exp in zip(extent, expected):
+            self.assertAlmostEqual(exp, val, 8)
+
+    @no_oracle
+    def test06_make_line(self):
+        "Testing the `make_line` GeoQuerySet method."
+        if DISABLE: return
+        # Ensuring that a `TypeError` is raised on models without PointFields.
+        self.assertRaises(TypeError, State.objects.make_line)
+        self.assertRaises(TypeError, Country.objects.make_line)
+        # Reference query:
+        # SELECT AsText(ST_MakeLine(geoapp_city.point)) FROM geoapp_city;
+        self.assertEqual(GEOSGeometry('LINESTRING(-95.363151 29.763374,-96.801611 32.782057,-97.521157 34.464642,174.783117 -41.315268,-104.609252 38.255001,-95.23506 38.971823,-87.650175 41.850385,-123.305196 48.462611)', srid=4326),
+                         City.objects.make_line())
+
+    def test09_disjoint(self):
+        "Testing the `disjoint` lookup type."
+        if DISABLE: return
+        ptown = City.objects.get(name='Pueblo')
+        qs1 = City.objects.filter(point__disjoint=ptown.point)
+        self.assertEqual(7, qs1.count())
+
+        if not postgis:
+            # TODO: Do NULL columns bork queries on PostGIS?  The following
+            # error is encountered:
+            #  psycopg2.ProgrammingError: invalid memory alloc request size 4294957297
+            qs2 = State.objects.filter(poly__disjoint=ptown.point)
+            self.assertEqual(1, qs2.count())
+            self.assertEqual('Kansas', qs2[0].name)
+
+    def test10_contains_contained(self):
+        "Testing the 'contained', 'contains', and 'bbcontains' lookup types."
+        if DISABLE: return
+        # Getting Texas, yes we were a country -- once ;)
+        texas = Country.objects.get(name='Texas')
+        
+        # Seeing what cities are in Texas, should get Houston and Dallas,
+        #  and Oklahoma City because 'contained' only checks on the
+        #  _bounding box_ of the Geometries.
+        if not oracle:
+            qs = City.objects.filter(point__contained=texas.mpoly)
+            self.assertEqual(3, qs.count())
+            cities = ['Houston', 'Dallas', 'Oklahoma City']
+            for c in qs: self.assertEqual(True, c.name in cities)
+
+        # Pulling out some cities.
+        houston = City.objects.get(name='Houston')
+        wellington = City.objects.get(name='Wellington')
+        pueblo = City.objects.get(name='Pueblo')
+        okcity = City.objects.get(name='Oklahoma City')
+        lawrence = City.objects.get(name='Lawrence')
+
+        # Now testing contains on the countries using the points for
+        #  Houston and Wellington.
+        tx = Country.objects.get(mpoly__contains=houston.point) # Query w/GEOSGeometry
+        nz = Country.objects.get(mpoly__contains=wellington.point.hex) # Query w/EWKBHEX
+        ks = State.objects.get(poly__contains=lawrence.point)
+        self.assertEqual('Texas', tx.name)
+        self.assertEqual('New Zealand', nz.name)
+        self.assertEqual('Kansas', ks.name)
+
+        # Pueblo and Oklahoma City (even though OK City is within the bounding box of Texas)
+        #  are not contained in Texas or New Zealand.
+        self.assertEqual(0, len(Country.objects.filter(mpoly__contains=pueblo.point))) # Query w/GEOSGeometry object
+        self.assertEqual(0, len(Country.objects.filter(mpoly__contains=okcity.point.wkt))) # Qeury w/WKT
+
+        # OK City is contained w/in bounding box of Texas.
+        if not oracle:
+            qs = Country.objects.filter(mpoly__bbcontains=okcity.point)
+            self.assertEqual(1, len(qs))
+            self.assertEqual('Texas', qs[0].name)
+
+    def test11_lookup_insert_transform(self):
+        "Testing automatic transform for lookups and inserts."
+        if DISABLE: return
+        # San Antonio in 'WGS84' (SRID 4326)
+        sa_4326 = 'POINT (-98.493183 29.424170)'
+        wgs_pnt = fromstr(sa_4326, srid=4326) # Our reference point in WGS84
+
+        # Oracle doesn't have SRID 3084, using 41157.
+        if oracle:
+            # San Antonio in 'Texas 4205, Southern Zone (1983, meters)' (SRID 41157)
+            # Used the following Oracle SQL to get this value:
+            #  SELECT SDO_UTIL.TO_WKTGEOMETRY(SDO_CS.TRANSFORM(SDO_GEOMETRY('POINT (-98.493183 29.424170)', 4326), 41157)) FROM DUAL;
+            nad_wkt  = 'POINT (300662.034646583 5416427.45974934)'
+            nad_srid = 41157
+        else:
+            # San Antonio in 'NAD83(HARN) / Texas Centric Lambert Conformal' (SRID 3084)
+            nad_wkt = 'POINT (1645978.362408288754523 6276356.025927528738976)' # Used ogr.py in gdal 1.4.1 for this transform
+            nad_srid = 3084
+
+        # Constructing & querying with a point from a different SRID. Oracle
+        # `SDO_OVERLAPBDYINTERSECT` operates differently from
+        # `ST_Intersects`, so contains is used instead.
+        nad_pnt = fromstr(nad_wkt, srid=nad_srid)
+        if oracle:
+            tx = Country.objects.get(mpoly__contains=nad_pnt) 
+        else:
+            tx = Country.objects.get(mpoly__intersects=nad_pnt)
+        self.assertEqual('Texas', tx.name)
+        
+        # Creating San Antonio.  Remember the Alamo.
+        sa = City(name='San Antonio', point=nad_pnt)
+        sa.save()
+        
+        # Now verifying that San Antonio was transformed correctly
+        sa = City.objects.get(name='San Antonio')
+        self.assertAlmostEqual(wgs_pnt.x, sa.point.x, 6)
+        self.assertAlmostEqual(wgs_pnt.y, sa.point.y, 6)
+
+        # If the GeometryField SRID is -1, then we shouldn't perform any
+        # transformation if the SRID of the input geometry is different.
+        m1 = MinusOneSRID(geom=Point(17, 23, srid=4326))
+        m1.save()
+        self.assertEqual(-1, m1.geom.srid)
+
+    # Oracle does not support NULL geometries in its spatial index for
+    # some routines (e.g., SDO_GEOM.RELATE).
+    @no_oracle
+    def test12_null_geometries(self):
+        "Testing NULL geometry support, and the `isnull` lookup type."
+        if DISABLE: return
+        # Querying for both NULL and Non-NULL values.
+        nullqs = State.objects.filter(poly__isnull=True)
+        validqs = State.objects.filter(poly__isnull=False)
+
+        # Puerto Rico should be NULL (it's a commonwealth unincorporated territory)
+        self.assertEqual(1, len(nullqs))
+        self.assertEqual('Puerto Rico', nullqs[0].name)
+        
+        # The valid states should be Colorado & Kansas
+        self.assertEqual(2, len(validqs))
+        state_names = [s.name for s in validqs]
+        self.assertEqual(True, 'Colorado' in state_names)
+        self.assertEqual(True, 'Kansas' in state_names)
+
+        # Saving another commonwealth w/a NULL geometry.
+        if not oracle:
+            # TODO: Fix saving w/NULL geometry on Oracle.
+            State(name='Northern Mariana Islands', poly=None).save()
+
+    @no_oracle # No specific `left` or `right` operators in Oracle.
+    def test13_left_right(self):
+        "Testing the 'left' and 'right' lookup types."
+        if DISABLE: return
+        # Left: A << B => true if xmax(A) < xmin(B)
+        # Right: A >> B => true if xmin(A) > xmax(B) 
+        #  See: BOX2D_left() and BOX2D_right() in lwgeom_box2dfloat4.c in PostGIS source.
+        
+        # Getting the borders for Colorado & Kansas
+        co_border = State.objects.get(name='Colorado').poly
+        ks_border = State.objects.get(name='Kansas').poly
+
+        # Note: Wellington has an 'X' value of 174, so it will not be considered
+        #  to the left of CO.
+        
+        # These cities should be strictly to the right of the CO border.
+        cities = ['Houston', 'Dallas', 'San Antonio', 'Oklahoma City', 
+                  'Lawrence', 'Chicago', 'Wellington']
+        qs = City.objects.filter(point__right=co_border)
+        self.assertEqual(7, len(qs))
+        for c in qs: self.assertEqual(True, c.name in cities)
+
+        # These cities should be strictly to the right of the KS border.
+        cities = ['Chicago', 'Wellington']
+        qs = City.objects.filter(point__right=ks_border)
+        self.assertEqual(2, len(qs))
+        for c in qs: self.assertEqual(True, c.name in cities)
+
+        # Note: Wellington has an 'X' value of 174, so it will not be considered
+        #  to the left of CO.
+        vic = City.objects.get(point__left=co_border)
+        self.assertEqual('Victoria', vic.name)
+        
+        cities = ['Pueblo', 'Victoria']
+        qs = City.objects.filter(point__left=ks_border)
+        self.assertEqual(2, len(qs))
+        for c in qs: self.assertEqual(True, c.name in cities)
+
+    def test14_equals(self):
+        "Testing the 'same_as' and 'equals' lookup types."
+        if DISABLE: return
+        pnt = fromstr('POINT (-95.363151 29.763374)', srid=4326)
+        c1 = City.objects.get(point=pnt)
+        c2 = City.objects.get(point__same_as=pnt)
+        c3 = City.objects.get(point__equals=pnt)
+        for c in [c1, c2, c3]: self.assertEqual('Houston', c.name)
+
+    def test15_relate(self):
+        "Testing the 'relate' lookup type."
+        if DISABLE: return
+        # To make things more interesting, we will have our Texas reference point in 
+        # different SRIDs.
+        pnt1 = fromstr('POINT (649287.0363174 4177429.4494686)', srid=2847)
+        pnt2 = fromstr('POINT(-98.4919715741052 29.4333344025053)', srid=4326)
+
+        # Not passing in a geometry as first param shoud 
+        # raise a type error when initializing the GeoQuerySet
+        self.assertRaises(TypeError, Country.objects.filter, mpoly__relate=(23, 'foo'))
+        # Making sure the right exception is raised for the given
+        # bad arguments.
+        for bad_args, e in [((pnt1, 0), TypeError), ((pnt2, 'T*T***FF*', 0), ValueError)]:
+            qs = Country.objects.filter(mpoly__relate=bad_args)
+            self.assertRaises(e, qs.count)
+
+        # Relate works differently for the different backends.
+        if postgis:
+            contains_mask = 'T*T***FF*'
+            within_mask = 'T*F**F***'
+            intersects_mask = 'T********'
+        elif oracle:
+            contains_mask = 'contains'
+            within_mask = 'inside'
+            # TODO: This is not quite the same as the PostGIS mask above
+            intersects_mask = 'overlapbdyintersect'
+
+        # Testing contains relation mask.
+        self.assertEqual('Texas', Country.objects.get(mpoly__relate=(pnt1, contains_mask)).name)
+        self.assertEqual('Texas', Country.objects.get(mpoly__relate=(pnt2, contains_mask)).name)
+
+        # Testing within relation mask.
+        ks = State.objects.get(name='Kansas')
+        self.assertEqual('Lawrence', City.objects.get(point__relate=(ks.poly, within_mask)).name)
+
+        # Testing intersection relation mask.
+        if not oracle:
+            self.assertEqual('Texas', Country.objects.get(mpoly__relate=(pnt1, intersects_mask)).name)
+            self.assertEqual('Texas', Country.objects.get(mpoly__relate=(pnt2, intersects_mask)).name)
+            self.assertEqual('Lawrence', City.objects.get(point__relate=(ks.poly, intersects_mask)).name)
+
+    def test16_createnull(self):
+        "Testing creating a model instance and the geometry being None"
+        if DISABLE: return
+        c = City()
+        self.assertEqual(c.point, None)
+
+    def test17_unionagg(self):
+        "Testing the `unionagg` (aggregate union) GeoManager method."
+        if DISABLE: return
+        tx = Country.objects.get(name='Texas').mpoly
+        # Houston, Dallas, San Antonio -- Oracle has different order.
+        union1 = fromstr('MULTIPOINT(-98.493183 29.424170,-96.801611 32.782057,-95.363151 29.763374)')
+        union2 = fromstr('MULTIPOINT(-96.801611 32.782057,-95.363151 29.763374,-98.493183 29.424170)')
+        qs = City.objects.filter(point__within=tx)
+        self.assertRaises(TypeError, qs.unionagg, 'name')
+        # Using `field_name` keyword argument in one query and specifying an
+        # order in the other (which should not be used because this is
+        # an aggregate method on a spatial column)
+        u1 = qs.unionagg(field_name='point') 
+        u2 = qs.order_by('name').unionagg()
+        tol = 0.00001
+        if SpatialBackend.oracle:
+            union = union2
+        else:
+            union = union1
+        self.assertEqual(True, union.equals_exact(u1, tol))
+        self.assertEqual(True, union.equals_exact(u2, tol))
+        qs = City.objects.filter(name='NotACity')
+        self.assertEqual(None, qs.unionagg(field_name='point'))
+
+    def test18_geometryfield(self):
+        "Testing GeometryField."
+        if DISABLE: return
+        Feature(name='Point', geom=Point(1, 1)).save()
+        Feature(name='LineString', geom=LineString((0, 0), (1, 1), (5, 5))).save()
+        Feature(name='Polygon', geom=Polygon(LinearRing((0, 0), (0, 5), (5, 5), (5, 0), (0, 0)))).save()
+        Feature(name='GeometryCollection', 
+                geom=GeometryCollection(Point(2, 2), LineString((0, 0), (2, 2)), 
+                                        Polygon(LinearRing((0, 0), (0, 5), (5, 5), (5, 0), (0, 0))))).save()
+
+        f_1 = Feature.objects.get(name='Point')
+        self.assertEqual(True, isinstance(f_1.geom, Point))
+        self.assertEqual((1.0, 1.0), f_1.geom.tuple)
+        f_2 = Feature.objects.get(name='LineString')
+        self.assertEqual(True, isinstance(f_2.geom, LineString))
+        self.assertEqual(((0.0, 0.0), (1.0, 1.0), (5.0, 5.0)), f_2.geom.tuple)
+
+        f_3 = Feature.objects.get(name='Polygon')
+        self.assertEqual(True, isinstance(f_3.geom, Polygon))
+        f_4 = Feature.objects.get(name='GeometryCollection')
+        self.assertEqual(True, isinstance(f_4.geom, GeometryCollection))
+        self.assertEqual(f_3.geom, f_4.geom[2])
+    
+    def test19_centroid(self):
+        "Testing the `centroid` GeoQuerySet method."
+        if DISABLE: return
+        qs = State.objects.exclude(poly__isnull=True).centroid()
+        if oracle: tol = 0.1
+        else: tol = 0.000000001
+        for s in qs:
+            self.assertEqual(True, s.poly.centroid.equals_exact(s.centroid, tol))
+
+    def test20_pointonsurface(self):
+        "Testing the `point_on_surface` GeoQuerySet method."
+        if DISABLE: return
+        # Reference values.
+        if SpatialBackend.oracle:
+            # SELECT SDO_UTIL.TO_WKTGEOMETRY(SDO_GEOM.SDO_POINTONSURFACE(GEOAPP_COUNTRY.MPOLY, 0.05)) FROM GEOAPP_COUNTRY;
+            ref = {'New Zealand' : fromstr('POINT (174.616364 -36.100861)', srid=4326),
+                   'Texas' : fromstr('POINT (-103.002434 36.500397)', srid=4326),
+                   }
+        elif SpatialBackend.postgis:
+            # Using GEOSGeometry to compute the reference point on surface values 
+            # -- since PostGIS also uses GEOS these should be the same.
+            ref = {'New Zealand' : Country.objects.get(name='New Zealand').mpoly.point_on_surface,
+                   'Texas' : Country.objects.get(name='Texas').mpoly.point_on_surface
+                   }
+        for cntry in Country.objects.point_on_surface():
+            self.assertEqual(ref[cntry.name], cntry.point_on_surface)
+
+    @no_oracle
+    def test21_scale(self):
+        "Testing the `scale` GeoQuerySet method."
+        if DISABLE: return
+        xfac, yfac = 2, 3
+        qs = Country.objects.scale(xfac, yfac, model_att='scaled')
+        for c in qs:
+            for p1, p2 in zip(c.mpoly, c.scaled):
+                for r1, r2 in zip(p1, p2):
+                    for c1, c2 in zip(r1.coords, r2.coords):
+                        self.assertEqual(c1[0] * xfac, c2[0])
+                        self.assertEqual(c1[1] * yfac, c2[1])
+
+    @no_oracle
+    def test22_translate(self):
+        "Testing the `translate` GeoQuerySet method."
+        if DISABLE: return
+        xfac, yfac = 5, -23
+        qs = Country.objects.translate(xfac, yfac, model_att='translated')
+        for c in qs:
+            for p1, p2 in zip(c.mpoly, c.translated):
+                for r1, r2 in zip(p1, p2):
+                    for c1, c2 in zip(r1.coords, r2.coords):
+                        self.assertEqual(c1[0] + xfac, c2[0])
+                        self.assertEqual(c1[1] + yfac, c2[1])
+
+    def test23_numgeom(self):
+        "Testing the `num_geom` GeoQuerySet method."
+        if DISABLE: return
+        # Both 'countries' only have two geometries.
+        for c in Country.objects.num_geom(): self.assertEqual(2, c.num_geom)
+        for c in City.objects.filter(point__isnull=False).num_geom(): 
+            # Oracle will return 1 for the number of geometries on non-collections,
+            # whereas PostGIS will return None.
+            if postgis: self.assertEqual(None, c.num_geom)
+            else: self.assertEqual(1, c.num_geom)
+
+    def test24_numpoints(self):
+        "Testing the `num_points` GeoQuerySet method."
+        if DISABLE: return
+        for c in Country.objects.num_points(): self.assertEqual(c.mpoly.num_points, c.num_points)
+        if postgis:
+            # Oracle cannot count vertices in Point geometries.
+            for c in City.objects.num_points(): self.assertEqual(1, c.num_points)
+
+    @no_oracle
+    def test25_geoset(self):
+        "Testing the `difference`, `intersection`, `sym_difference`, and `union` GeoQuerySet methods."
+        if DISABLE: return
+        geom = Point(5, 23)
+        for c in Country.objects.all().intersection(geom).difference(geom).sym_difference(geom).union(geom):
+            self.assertEqual(c.mpoly.difference(geom), c.difference)
+            self.assertEqual(c.mpoly.intersection(geom), c.intersection)
+            self.assertEqual(c.mpoly.sym_difference(geom), c.sym_difference)
+            self.assertEqual(c.mpoly.union(geom), c.union)
+
+from test_feeds import GeoFeedTest
+from test_sitemaps import GeoSitemapTest
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(GeoModelTest))
+    s.addTest(unittest.makeSuite(GeoFeedTest))
+    s.addTest(unittest.makeSuite(GeoSitemapTest))
+    return s
diff --git a/webapp/django/contrib/gis/tests/geoapp/tests_mysql.py b/webapp/django/contrib/gis/tests/geoapp/tests_mysql.py
new file mode 100644
index 0000000..040130c
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/tests_mysql.py
@@ -0,0 +1,183 @@
+"""
+ A limited test module is used for a limited spatial database.
+"""
+import os, unittest
+from models import Country, City, State, Feature
+from django.contrib.gis import gdal
+from django.contrib.gis.geos import *
+from django.core.exceptions import ImproperlyConfigured
+
+class GeoModelTest(unittest.TestCase):
+    
+    def test01_initial_sql(self):
+        "Testing geographic initial SQL."
+        # Ensuring that data was loaded from initial SQL.
+        self.assertEqual(2, Country.objects.count())
+        self.assertEqual(8, City.objects.count())
+        self.assertEqual(2, State.objects.count())
+
+    def test02_proxy(self):
+        "Testing Lazy-Geometry support (using the GeometryProxy)."
+        #### Testing on a Point
+        pnt = Point(0, 0)
+        nullcity = City(name='NullCity', point=pnt)
+        nullcity.save()
+
+        # Making sure TypeError is thrown when trying to set with an
+        #  incompatible type.
+        for bad in [5, 2.0, LineString((0, 0), (1, 1))]:
+            try:
+                nullcity.point = bad
+            except TypeError:
+                pass
+            else:
+                self.fail('Should throw a TypeError')
+
+        # Now setting with a compatible GEOS Geometry, saving, and ensuring
+        #  the save took, notice no SRID is explicitly set.
+        new = Point(5, 23)
+        nullcity.point = new
+
+        # Ensuring that the SRID is automatically set to that of the 
+        #  field after assignment, but before saving.
+        self.assertEqual(4326, nullcity.point.srid)
+        nullcity.save()
+
+        # Ensuring the point was saved correctly after saving
+        self.assertEqual(new, City.objects.get(name='NullCity').point)
+
+        # Setting the X and Y of the Point
+        nullcity.point.x = 23
+        nullcity.point.y = 5
+        # Checking assignments pre & post-save.
+        self.assertNotEqual(Point(23, 5), City.objects.get(name='NullCity').point)
+        nullcity.save()
+        self.assertEqual(Point(23, 5), City.objects.get(name='NullCity').point)
+        nullcity.delete()
+
+        #### Testing on a Polygon
+        shell = LinearRing((0, 0), (0, 100), (100, 100), (100, 0), (0, 0))
+        inner = LinearRing((40, 40), (40, 60), (60, 60), (60, 40), (40, 40))
+
+        # Creating a State object using a built Polygon
+        ply = Polygon(shell, inner)
+        nullstate = State(name='NullState', poly=ply)
+        self.assertEqual(4326, nullstate.poly.srid) # SRID auto-set from None
+        nullstate.save()
+
+        ns = State.objects.get(name='NullState')
+        self.assertEqual(ply, ns.poly)
+        
+        # Testing the `ogr` and `srs` lazy-geometry properties.
+        if gdal.HAS_GDAL:
+            self.assertEqual(True, isinstance(ns.poly.ogr, gdal.OGRGeometry))
+            self.assertEqual(ns.poly.wkb, ns.poly.ogr.wkb)
+            self.assertEqual(True, isinstance(ns.poly.srs, gdal.SpatialReference))
+            self.assertEqual('WGS 84', ns.poly.srs.name)
+
+        # Changing the interior ring on the poly attribute.
+        new_inner = LinearRing((30, 30), (30, 70), (70, 70), (70, 30), (30, 30))
+        ns.poly[1] = new_inner
+        ply[1] = new_inner
+        self.assertEqual(4326, ns.poly.srid)
+        ns.save()
+        self.assertEqual(ply, State.objects.get(name='NullState').poly)
+        ns.delete()
+
+    def test03_contains_contained(self):
+        "Testing the 'contained', 'contains', and 'bbcontains' lookup types."
+        # Getting Texas, yes we were a country -- once ;)
+        texas = Country.objects.get(name='Texas')
+        
+        # Seeing what cities are in Texas, should get Houston and Dallas,
+        #  and Oklahoma City because MySQL 'within' only checks on the
+        #  _bounding box_ of the Geometries.
+        qs = City.objects.filter(point__within=texas.mpoly)
+        self.assertEqual(3, qs.count())
+        cities = ['Houston', 'Dallas', 'Oklahoma City']
+        for c in qs: self.assertEqual(True, c.name in cities)
+
+        # Pulling out some cities.
+        houston = City.objects.get(name='Houston')
+        wellington = City.objects.get(name='Wellington')
+        pueblo = City.objects.get(name='Pueblo')
+        okcity = City.objects.get(name='Oklahoma City')
+        lawrence = City.objects.get(name='Lawrence')
+
+        # Now testing contains on the countries using the points for
+        #  Houston and Wellington.
+        tx = Country.objects.get(mpoly__contains=houston.point) # Query w/GEOSGeometry
+        nz = Country.objects.get(mpoly__contains=wellington.point.hex) # Query w/EWKBHEX
+        ks = State.objects.get(poly__contains=lawrence.point)
+        self.assertEqual('Texas', tx.name)
+        self.assertEqual('New Zealand', nz.name)
+        self.assertEqual('Kansas', ks.name)
+
+        # Pueblo is not contained in Texas or New Zealand.
+        self.assertEqual(0, len(Country.objects.filter(mpoly__contains=pueblo.point))) # Query w/GEOSGeometry object
+
+        # OK City is contained w/in bounding box of Texas.
+        qs = Country.objects.filter(mpoly__bbcontains=okcity.point)
+        self.assertEqual(1, len(qs))
+        self.assertEqual('Texas', qs[0].name)
+
+    def test04_disjoint(self):
+        "Testing the `disjoint` lookup type."
+        ptown = City.objects.get(name='Pueblo')
+        qs1 = City.objects.filter(point__disjoint=ptown.point)
+        self.assertEqual(7, qs1.count())
+        # TODO: This query should work in MySQL, but it appears the
+        # `MBRDisjoint` function doesn't work properly (I went down
+        # to the SQL level for debugging and still got bogus answers).
+        #qs2 = State.objects.filter(poly__disjoint=ptown.point)
+        #self.assertEqual(1, qs2.count())
+        #self.assertEqual('Kansas', qs2[0].name)
+
+    def test05_equals(self):
+        "Testing the 'same_as' and 'equals' lookup types."
+        pnt = fromstr('POINT (-95.363151 29.763374)', srid=4326)
+        c1 = City.objects.get(point=pnt)
+        c2 = City.objects.get(point__same_as=pnt)
+        c3 = City.objects.get(point__equals=pnt)
+        for c in [c1, c2, c3]: self.assertEqual('Houston', c.name)
+
+    def test06_geometryfield(self):
+        "Testing GeometryField."
+        f1 = Feature(name='Point', geom=Point(1, 1))
+        f2 = Feature(name='LineString', geom=LineString((0, 0), (1, 1), (5, 5)))
+        f3 = Feature(name='Polygon', geom=Polygon(LinearRing((0, 0), (0, 5), (5, 5), (5, 0), (0, 0))))
+        f4 = Feature(name='GeometryCollection', 
+                     geom=GeometryCollection(Point(2, 2), LineString((0, 0), (2, 2)), 
+                                             Polygon(LinearRing((0, 0), (0, 5), (5, 5), (5, 0), (0, 0)))))
+        f1.save()
+        f2.save()
+        f3.save()
+        f4.save()
+
+        f_1 = Feature.objects.get(name='Point')
+        self.assertEqual(True, isinstance(f_1.geom, Point))
+        self.assertEqual((1.0, 1.0), f_1.geom.tuple)
+        f_2 = Feature.objects.get(name='LineString')
+        self.assertEqual(True, isinstance(f_2.geom, LineString))
+        self.assertEqual(((0.0, 0.0), (1.0, 1.0), (5.0, 5.0)), f_2.geom.tuple)
+
+        f_3 = Feature.objects.get(name='Polygon')
+        self.assertEqual(True, isinstance(f_3.geom, Polygon))
+        f_4 = Feature.objects.get(name='GeometryCollection')
+        self.assertEqual(True, isinstance(f_4.geom, GeometryCollection))
+        self.assertEqual(f_3.geom, f_4.geom[2])
+    
+    def test07_mysql_limitations(self):
+        "Testing that union(), kml(), gml() raise exceptions."
+        self.assertRaises(ImproperlyConfigured, City.objects.union, Point(5, 23), field_name='point')
+        self.assertRaises(ImproperlyConfigured, State.objects.all().kml, field_name='poly')
+        self.assertRaises(ImproperlyConfigured, Country.objects.all().gml, field_name='mpoly')
+
+from test_feeds import GeoFeedTest
+from test_sitemaps import GeoSitemapTest
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(GeoModelTest))
+    s.addTest(unittest.makeSuite(GeoFeedTest))
+    s.addTest(unittest.makeSuite(GeoSitemapTest))
+    return s
diff --git a/webapp/django/contrib/gis/tests/geoapp/urls.py b/webapp/django/contrib/gis/tests/geoapp/urls.py
new file mode 100644
index 0000000..edaf280
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geoapp/urls.py
@@ -0,0 +1,14 @@
+from django.conf.urls.defaults import *
+from feeds import feed_dict
+
+urlpatterns = patterns('',
+    (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feed_dict}),
+)
+
+from sitemaps import sitemaps
+urlpatterns += patterns('django.contrib.gis.sitemaps.views',
+    (r'^sitemap.xml$', 'index', {'sitemaps' : sitemaps}),
+    (r'^sitemaps/(?P<section>\w+)\.xml$', 'sitemap', {'sitemaps' : sitemaps}),
+    (r'^sitemaps/kml/(?P<label>\w+)/(?P<model>\w+)/(?P<field_name>\w+)\.kml$', 'kml'),
+    (r'^sitemaps/kml/(?P<label>\w+)/(?P<model>\w+)/(?P<field_name>\w+)\.kmz$', 'kmz'),                
+)
diff --git a/webapp/django/contrib/gis/tests/geometries.py b/webapp/django/contrib/gis/tests/geometries.py
new file mode 100644
index 0000000..e9bc6f6
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/geometries.py
@@ -0,0 +1,157 @@
+import re
+
+wkt_regex = re.compile(r'^(?P<type>[A-Z]+) ?\(')
+
+class TestGeom:
+    "The Test Geometry class container."
+    def __init__(self, wkt, **kwargs):
+        self.wkt = wkt
+
+        self.bad = kwargs.pop('bad', False)
+
+        if not self.bad:
+            m = wkt_regex.match(wkt)
+            if not m:
+                raise Exception, 'Improper WKT: "%s"' % wkt
+            self.geo_type = m.group('type')
+
+        for key, value in kwargs.items():
+            setattr(self, key, value)
+
+# For the old tests
+swig_geoms = (TestGeom('POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))', ncoords=5),
+              TestGeom('POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0), (10 10, 10 90, 90 90, 90 10, 10 10) ))', ncoords=10),
+              )
+
+# Testing WKT & HEX
+hex_wkt = (TestGeom('POINT(0 1)', hex='01010000000000000000000000000000000000F03F'),
+           TestGeom('LINESTRING(0 1, 2 3, 4 5)', hex='0102000000030000000000000000000000000000000000F03F0000000000000040000000000000084000000000000010400000000000001440'),
+           TestGeom('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', hex='010300000001000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000'),
+           TestGeom('MULTIPOINT(0 0, 10 0, 10 10, 0 10, 0 0)', hex='010400000005000000010100000000000000000000000000000000000000010100000000000000000024400000000000000000010100000000000000000024400000000000002440010100000000000000000000000000000000002440010100000000000000000000000000000000000000'),
+           TestGeom('MULTILINESTRING((0 0, 10 0, 10 10, 0 10),(20 20, 30 20))', hex='01050000000200000001020000000400000000000000000000000000000000000000000000000000244000000000000000000000000000002440000000000000244000000000000000000000000000002440010200000002000000000000000000344000000000000034400000000000003E400000000000003440'),
+           TestGeom('MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)),((20 20, 20 30, 30 30, 30 20, 20 20),(25 25, 25 26, 26 26, 26 25, 25 25)))', hex='010600000002000000010300000001000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000010300000002000000050000000000000000003440000000000000344000000000000034400000000000003E400000000000003E400000000000003E400000000000003E40000000000000344000000000000034400000000000003440050000000000000000003940000000000000394000000000000039400000000000003A400000000000003A400000000000003A400000000000003A40000000000000394000000000000039400000000000003940'),
+           TestGeom('GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)),((20 20, 20 30, 30 30, 30 20, 20 20),(25 25, 25 26, 26 26, 26 25, 25 25))),MULTILINESTRING((0 0, 10 0, 10 10, 0 10),(20 20, 30 20)),MULTIPOINT(0 0, 10 0, 10 10, 0 10, 0 0))', hex='010700000003000000010600000002000000010300000001000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000010300000002000000050000000000000000003440000000000000344000000000000034400000000000003E400000000000003E400000000000003E400000000000003E40000000000000344000000000000034400000000000003440050000000000000000003940000000000000394000000000000039400000000000003A400000000000003A400000000000003A400000000000003A4000000000000039400000000000003940000000000000394001050000000200000001020000000400000000000000000000000000000000000000000000000000244000000000000000000000000000002440000000000000244000000000000000000000000000002440010200000002000000000000000000344000000000000034400000000000003E400000000000003440010400000005000000010100000000000000000000000000000000000000010100000000000000000024400000000000000000010100000000000000000024400000000000002440010100000000000000000000000000000000002440010100000000000000000000000000000000000000'),
+           )
+
+# WKT, GML, KML output
+wkt_out = (TestGeom('POINT (110 130)', ewkt='POINT (110.0000000000000000 130.0000000000000000)', kml='<Point><coordinates>110.0,130.0,0</coordinates></Point>', gml='<gml:Point><gml:coordinates>110,130</gml:coordinates></gml:Point>'),
+           TestGeom('LINESTRING (40 40,50 130,130 130)', ewkt='LINESTRING (40.0000000000000000 40.0000000000000000, 50.0000000000000000 130.0000000000000000, 130.0000000000000000 130.0000000000000000)', kml='<LineString><coordinates>40.0,40.0,0 50.0,130.0,0 130.0,130.0,0</coordinates></LineString>', gml='<gml:LineString><gml:coordinates>40,40 50,130 130,130</gml:coordinates></gml:LineString>'),
+           TestGeom('POLYGON ((150 150,410 150,280 20,20 20,150 150),(170 120,330 120,260 50,100 50,170 120))', ewkt='POLYGON ((150.0000000000000000 150.0000000000000000, 410.0000000000000000 150.0000000000000000, 280.0000000000000000 20.0000000000000000, 20.0000000000000000 20.0000000000000000, 150.0000000000000000 150.0000000000000000), (170.0000000000000000 120.0000000000000000, 330.0000000000000000 120.0000000000000000, 260.0000000000000000 50.0000000000000000, 100.0000000000000000 50.0000000000000000, 170.0000000000000000 120.0000000000000000))', kml='<Polygon><outerBoundaryIs><LinearRing><coordinates>150.0,150.0,0 410.0,150.0,0 280.0,20.0,0 20.0,20.0,0 150.0,150.0,0</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>170.0,120.0,0 330.0,120.0,0 260.0,50.0,0 100.0,50.0,0 170.0,120.0,0</coordinates></LinearRing></innerBoundaryIs></Polygon>', gml='<gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>150,150 410,150 280,20 20,20 150,150</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs><gml:innerBoundaryIs><gml:LinearRing><gml:coordinates>170,120 330,120 260,50 100,50 170,120</gml:coordinates></gml:LinearRing></gml:innerBoundaryIs></gml:Polygon>'),
+           TestGeom('MULTIPOINT (10 80,110 170,110 120)', ewkt='MULTIPOINT (10.0000000000000000 80.0000000000000000, 110.0000000000000000 170.0000000000000000, 110.0000000000000000 120.0000000000000000)', kml='<MultiGeometry><Point><coordinates>10.0,80.0,0</coordinates></Point><Point><coordinates>110.0,170.0,0</coordinates></Point><Point><coordinates>110.0,120.0,0</coordinates></Point></MultiGeometry>', gml='<gml:MultiPoint><gml:pointMember><gml:Point><gml:coordinates>10,80</gml:coordinates></gml:Point></gml:pointMember><gml:pointMember><gml:Point><gml:coordinates>110,170</gml:coordinates></gml:Point></gml:pointMember><gml:pointMember><gml:Point><gml:coordinates>110,120</gml:coordinates></gml:Point></gml:pointMember></gml:MultiPoint>'),
+           TestGeom('MULTILINESTRING ((110 100,40 30,180 30),(170 30,110 90,50 30))', ewkt='MULTILINESTRING ((110.0000000000000000 100.0000000000000000, 40.0000000000000000 30.0000000000000000, 180.0000000000000000 30.0000000000000000), (170.0000000000000000 30.0000000000000000, 110.0000000000000000 90.0000000000000000, 50.0000000000000000 30.0000000000000000))', kml='<MultiGeometry><LineString><coordinates>110.0,100.0,0 40.0,30.0,0 180.0,30.0,0</coordinates></LineString><LineString><coordinates>170.0,30.0,0 110.0,90.0,0 50.0,30.0,0</coordinates></LineString></MultiGeometry>', gml='<gml:MultiLineString><gml:lineStringMember><gml:LineString><gml:coordinates>110,100 40,30 180,30</gml:coordinates></gml:LineString></gml:lineStringMember><gml:lineStringMember><gml:LineString><gml:coordinates>170,30 110,90 50,30</gml:coordinates></gml:LineString></gml:lineStringMember></gml:MultiLineString>'),
+           TestGeom('MULTIPOLYGON (((110 110,70 200,150 200,110 110),(110 110,100 180,120 180,110 110)),((110 110,150 20,70 20,110 110),(110 110,120 40,100 40,110 110)))', ewkt='MULTIPOLYGON (((110.0000000000000000 110.0000000000000000, 70.0000000000000000 200.0000000000000000, 150.0000000000000000 200.0000000000000000, 110.0000000000000000 110.0000000000000000), (110.0000000000000000 110.0000000000000000, 100.0000000000000000 180.0000000000000000, 120.0000000000000000 180.0000000000000000, 110.0000000000000000 110.0000000000000000)), ((110.0000000000000000 110.0000000000000000, 150.0000000000000000 20.0000000000000000, 70.0000000000000000 20.0000000000000000, 110.0000000000000000 110.0000000000000000), (110.0000000000000000 110.0000000000000000, 120.0000000000000000 40.0000000000000000, 100.0000000000000000 40.0000000000000000, 110.0000000000000000 110.0000000000000000)))', kml='<MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>110.0,110.0,0 70.0,200.0,0 150.0,200.0,0 110.0,110.0,0</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>110.0,110.0,0 100.0,180.0,0 120.0,180.0,0 110.0,110.0,0</coordinates></LinearRing></innerBoundaryIs></Polygon><Polygon><outerBoundaryIs><LinearRing><coordinates>110.0,110.0,0 150.0,20.0,0 70.0,20.0,0 110.0,110.0,0</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>110.0,110.0,0 120.0,40.0,0 100.0,40.0,0 110.0,110.0,0</coordinates></LinearRing></innerBoundaryIs></Polygon></MultiGeometry>', gml='<gml:MultiPolygon><gml:polygonMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>110,110 70,200 150,200 110,110</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs><gml:innerBoundaryIs><gml:LinearRing><gml:coordinates>110,110 100,180 120,180 110,110</gml:coordinates></gml:LinearRing></gml:innerBoundaryIs></gml:Polygon></gml:polygonMember><gml:polygonMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>110,110 150,20 70,20 110,110</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs><gml:innerBoundaryIs><gml:LinearRing><gml:coordinates>110,110 120,40 100,40 110,110</gml:coordinates></gml:LinearRing></gml:innerBoundaryIs></gml:Polygon></gml:polygonMember></gml:MultiPolygon>'),
+           TestGeom('GEOMETRYCOLLECTION (POINT (110 260),LINESTRING (110 0,110 60))', ewkt='GEOMETRYCOLLECTION (POINT (110.0000000000000000 260.0000000000000000), LINESTRING (110.0000000000000000 0.0000000000000000, 110.0000000000000000 60.0000000000000000))', kml='<MultiGeometry><Point><coordinates>110.0,260.0,0</coordinates></Point><LineString><coordinates>110.0,0.0,0 110.0,60.0,0</coordinates></LineString></MultiGeometry>', gml='<gml:GeometryCollection><gml:geometryMember><gml:Point><gml:coordinates>110,260</gml:coordinates></gml:Point></gml:geometryMember><gml:geometryMember><gml:LineString><gml:coordinates>110,0 110,60</gml:coordinates></gml:LineString></gml:geometryMember></gml:GeometryCollection>'),
+           )
+
+# Errors
+errors = (TestGeom('GEOMETR##!@#%#............a32515', bad=True, hex=False),
+          TestGeom('Foo.Bar', bad=True, hex=False),
+          TestGeom('POINT (5, 23)', bad=True, hex=False),
+          TestGeom('AAABBBDDDAAD##@#1113511111-098111111111111111533333333333333', bad=True, hex=True),
+          TestGeom('FFFFFFFFFFFFFFFFF1355555555555555555565111', bad=True, hex=True),
+          TestGeom('', bad=True, hex=False),
+          )
+
+# Polygons
+polygons = (TestGeom('POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0), (10 10, 10 90, 90 90, 90 10, 10 10))',
+                     n_i=1, ext_ring_cs=((0, 0), (0, 100), (100, 100), (100, 0), (0, 0)), n_p=10, area=3600.0, centroid=(50., 50.),
+                     ),
+            TestGeom('POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0), (10 10, 10 20, 20 20, 20 10, 10 10), (80 80, 80 90, 90 90, 90 80, 80 80))',
+                     n_i=2, ext_ring_cs=((0, 0), (0, 100), (100, 100), (100, 0), (0, 0)), n_p=15, area=9800.0, centroid=(50., 50.),
+                     ),
+            TestGeom('POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))',
+                     n_i=0, ext_ring_cs=((0, 0), (0, 100), (100, 100), (100, 0), (0, 0)), n_p=5, area=10000.0, centroid=(50., 50.),
+                     ),
+            TestGeom('POLYGON ((-95.3848703124799471 29.7056021479768511, -95.3851905195191847 29.7046588196500281, -95.3859356966379011 29.7025053545605502, -95.3860723000647539 29.7020963367038391, -95.3871517697222089 29.6989779021280995, -95.3865578518265522 29.6990856888057202, -95.3862634205175226 29.6999471753441782, -95.3861991779541967 29.6999591988978615, -95.3856773799358137 29.6998323107113578, -95.3856209915427229 29.6998005235473741, -95.3855833545501639 29.6996619391729801, -95.3855776331865002 29.6996232659570047, -95.3850162731712885 29.6997236706530536, -95.3831047357410284 29.7000847603095082, -95.3829800724914776 29.7000676365023502, -95.3828084594470909 29.6999969684031200, -95.3828131504821499 29.6999090511531065, -95.3828022942979601 29.6998152117366025, -95.3827893930918833 29.6997790953076759, -95.3825174668099862 29.6998267772748825, -95.3823521544804862 29.7000451723151606, -95.3820491918785223 29.6999682034582335, -95.3817932841505893 29.6999640407204772, -95.3815438924600443 29.7005983712500630, -95.3807812390843424 29.7007538492921590, -95.3778578936435935 29.7012966201172048, -95.3770817300034679 29.7010555145969093, -95.3772763716395957 29.7004995005932031, -95.3769891024414420 29.7005797730360186, -95.3759855007185990 29.7007754783987821, -95.3759516423090474 29.7007305400669388, -95.3765252155960042 29.6989549173240874, -95.3766842746727832 29.6985134987163164, -95.3768510987262914 29.6980530300744938, -95.3769198676258014 29.6977137204527573, -95.3769616670751930 29.6973351617272172, -95.3770309229297766 29.6969821084304186, -95.3772352596880637 29.6959751305871613, -95.3776232419333354 29.6945439060847463, -95.3776849628727064 29.6943364710766069, -95.3779699491714723 29.6926548349458947, -95.3781945479573494 29.6920088336742545, -95.3785807118394189 29.6908279316076005, -95.3787441368896651 29.6908846275832197, -95.3787903214163890 29.6907152912461640, -95.3791765069353659 29.6893335376821526, -95.3794935959513026 29.6884781789101595, -95.3796592071232112 29.6880066681407619, -95.3799788182090111 29.6873687353035081, -95.3801545516183893 29.6868782380716993, -95.3801258908302145 29.6867756621337762, -95.3801104284899566 29.6867229678809572, -95.3803803523746154 29.6863753372986459, -95.3821028558287622 29.6837392961470421, -95.3827289584682205 29.6828097375216160, -95.3827494698109035 29.6790739156259278, -95.3826022014838486 29.6776502228345507, -95.3825047356438063 29.6765773006280753, -95.3823473035336917 29.6750405250369127, -95.3824540163482055 29.6750076408228587, -95.3838984230304305 29.6745679207378679, -95.3916547074937426 29.6722459226508377, -95.3926154662749468 29.6719609085105489, -95.3967246645118081 29.6707316485589736, -95.3974588054406780 29.6705065336410989, -95.3978523748756828 29.6703795547846845, -95.3988598162279970 29.6700874981900853, -95.3995628600665952 29.6698505300412414, -95.4134721665944170 29.6656841279906232, -95.4143262068232616 29.6654291174019278, -95.4159685142480214 29.6649750989232288, -95.4180067396277565 29.6643253024318021, -95.4185886692196590 29.6641482768691063, -95.4234155309609662 29.6626925393704788, -95.4287785503196346 29.6611023620959706, -95.4310287312749352 29.6604222580752648, -95.4320295629628959 29.6603361318136720, -95.4332899683975739 29.6600560661713608, -95.4342675748811047 29.6598454934599900, -95.4343110414310871 29.6598411486215490, -95.4345576779282538 29.6598147020668499, -95.4348823041721630 29.6597875803673112, -95.4352827715209457 29.6597762346946681, -95.4355290431309982 29.6597827926562374, -95.4359197997999331 29.6598014511782715, -95.4361907884752156 29.6598444333523368, -95.4364608955807228 29.6598901433108217, -95.4367250147512323 29.6599494499910712, -95.4364898759758091 29.6601880616540186, -95.4354501111810691 29.6616378572201107, -95.4381459623171224 29.6631265631655126, -95.4367852490863129 29.6642266600024023, -95.4370040894557263 29.6643425389568769, -95.4367078350812648 29.6645492592343238, -95.4366081749871285 29.6646291473027297, -95.4358539359938192 29.6652308742342932, -95.4350327668927889 29.6658995989314462, -95.4350580905272921 29.6678812477895271, -95.4349710541447536 29.6680054925936965, -95.4349500440473548 29.6671410080890006, -95.4341492724148850 29.6678790545191688, -95.4340248868274728 29.6680353198492135, -95.4333227845797438 29.6689245624945990, -95.4331325652123326 29.6691616138940901, -95.4321314741096955 29.6704473333237253, -95.4320435792664341 29.6702578985411982, -95.4320147929883547 29.6701800936425109, -95.4319764538662980 29.6683246590817085, -95.4317490976340679 29.6684974372577166, -95.4305958185342718 29.6694049049170374, -95.4296600735653016 29.6701723430938493, -95.4284928989940937 29.6710931793380972, -95.4274630532378580 29.6719378813640091, -95.4273056811974811 29.6720684984625791, -95.4260554084574864 29.6730668861566969, -95.4253558063699643 29.6736342467365724, -95.4249278826026028 29.6739557343648919, -95.4248648873821423 29.6745400910786152, -95.4260016131471929 29.6750987014005858, -95.4258567183010911 29.6753452063069929, -95.4260238081486847 29.6754322077221353, -95.4258707374502393 29.6756647377294307, -95.4257951755816691 29.6756407098663360, -95.4257701599566985 29.6761077719536068, -95.4257726684792260 29.6761711204603955, -95.4257980187195614 29.6770219651929423, -95.4252712669032519 29.6770161558853758, -95.4249234392992065 29.6770068683962300, -95.4249574272905789 29.6779707498635759, -95.4244725881033702 29.6779825646764159, -95.4222269476429545 29.6780711474441716, -95.4223032371999267 29.6796029391538809, -95.4239133706588945 29.6795331493690355, -95.4224579084327331 29.6813706893847780, -95.4224290108823965 29.6821953228763924, -95.4230916478977349 29.6822130268724109, -95.4222928279595521 29.6832041816675343, -95.4228763710016352 29.6832087677714505, -95.4223401691637179 29.6838987872753748, -95.4211655906087088 29.6838784024852984, -95.4201984153205558 29.6851319258758082, -95.4206156387716362 29.6851623398125319, -95.4213438084897660 29.6851763011334739, -95.4212071118618752 29.6853679931624974, -95.4202651399651245 29.6865313962980508, -95.4172061157659783 29.6865816431043932, -95.4182217951255183 29.6872251197301544, -95.4178664826439160 29.6876750901471631, -95.4180678442928780 29.6877960336377207, -95.4188763472917572 29.6882826379510938, -95.4185374500596311 29.6887137897831934, -95.4182121713132290 29.6885097429738813, -95.4179857231741551 29.6888118367840086, -95.4183106010563620 29.6890048676118212, -95.4179489865331334 29.6894546700979056, -95.4175581746284820 29.6892323606815438, -95.4173439957341571 29.6894990139807007, -95.4177411199311081 29.6897435034738422, -95.4175789200209721 29.6899207529979208, -95.4170598559864800 29.6896042165807508, -95.4166733682539814 29.6900891174451367, -95.4165941362704331 29.6900347214235047, -95.4163537218065301 29.6903529467753238, -95.4126843270708775 29.6881086357212780, -95.4126604121378392 29.6880942378803496, -95.4126672298953338 29.6885951670109982, -95.4126680884821923 29.6887052446594275, -95.4158080137241882 29.6906382377959339, -95.4152061403821961 29.6910871045531586, -95.4155842583188161 29.6917382915894308, -95.4157426793520358 29.6920726941677096, -95.4154520563662203 29.6922052332446427, -95.4151389936167078 29.6923261661269571, -95.4148649784384872 29.6924343866430256, -95.4144051352401590 29.6925623927348106, -95.4146792019416665 29.6926770338507744, -95.4148824479948985 29.6928117893696388, -95.4149851734360226 29.6929823719519774, -95.4140436551925291 29.6929626643100946, -95.4140465993023241 29.6926545917254892, -95.4137269186733334 29.6927395764256090, -95.4137372859685513 29.6935432485666624, -95.4135702836218655 29.6933186678088283, -95.4133925235973237 29.6930415229852152, -95.4133017035615580 29.6928685062036166, -95.4129588921634593 29.6929391128977862, -95.4125107395559695 29.6930481664661485, -95.4102647423187307 29.6935850183258019, -95.4081931340840157 29.6940907430947760, -95.4078783596459772 29.6941703429951609, -95.4049213975000043 29.6948723732981961, -95.4045944244127071 29.6949626434239207, -95.4045865139788134 29.6954109019001358, -95.4045953345484037 29.6956972800496963, -95.4038879332535146 29.6958296089365490, -95.4040366394459340 29.6964389004769842, -95.4032774779020798 29.6965643341263892, -95.4026066501239853 29.6966646227683881, -95.4024991226393837 29.6961389766619703, -95.4011781398631911 29.6963566063186377, -95.4011524097636112 29.6962596176762190, -95.4018184046368276 29.6961399466727336, -95.4016995838361908 29.6956442609415099, -95.4007100753964608 29.6958900524002978, -95.4008032469935188 29.6962639900781404, -95.3995660267125487 29.6965636449370329, -95.3996140564775601 29.6967877962763644, -95.3996364430014410 29.6968901984825280, -95.3984003269631842 29.6968679634805746, -95.3981442026887265 29.6983660679730335, -95.3980178461957706 29.6990890276252415, -95.3977097967130163 29.7008526152273049, -95.3962347157626027 29.7009697553607630, -95.3951949050136250 29.7004740386619019, -95.3957564950617183 29.6990281830553187, -95.3965927101519924 29.6968771129030706, -95.3957496517238184 29.6970800358387095, -95.3957720559467361 29.6972264611230727, -95.3957391586571788 29.6973548894558732, -95.3956286413405365 29.6974949857280883, -95.3955111053256957 29.6975661086270186, -95.3953215342724121 29.6976022763384790, -95.3951795558443365 29.6975846977491038, -95.3950369632041060 29.6975175779330200, -95.3949401089966500 29.6974269267953304, -95.3948740281415581 29.6972903308506346, -95.3946650813866910 29.6973397326847923, -95.3947654059391112 29.6974882560192022, -95.3949627316619768 29.6980355864961858, -95.3933200807862249 29.6984590863712796, -95.3932606497523494 29.6984464798710839, -95.3932983699113350 29.6983154306484352, -95.3933058014696655 29.6982165816983610, -95.3932946347785133 29.6981089778195759, -95.3931780601756287 29.6977068906794841, -95.3929928222970602 29.6977541771878180, -95.3930873169846478 29.6980676264932946, -95.3932743746374570 29.6981249406449663, -95.3929512584706316 29.6989526513922222, -95.3919850280655197 29.7014358632108646, -95.3918950918929056 29.7014169320765724, -95.3916928317890296 29.7019232352846423, -95.3915424614970959 29.7022988712928289, -95.3901530441668939 29.7058519502930061, -95.3899656322116698 29.7059156823562418, -95.3897628748670883 29.7059900058266777, -95.3896062677805787 29.7060738276384946, -95.3893941800512266 29.7061891695242046, -95.3892150365492455 29.7062641292949436, -95.3890502563035199 29.7063339729630940, -95.3888717930715586 29.7063896908080736, -95.3886925428988945 29.7064453871994978, -95.3885376849411983 29.7064797304524149, -95.3883284158984139 29.7065153575050189, -95.3881046767627794 29.7065368368267357, -95.3878809284696132 29.7065363048447537, -95.3876046356120924 29.7065288525102424, -95.3873060894974714 29.7064822806001452, -95.3869851943158409 29.7063993367575350, -95.3865967896568065 29.7062870572919202, -95.3861785624983156 29.7061492099008184, -95.3857375009733488 29.7059887337478798, -95.3854573290902152 29.7058683664514618, -95.3848703124799471 29.7056021479768511))',
+                     n_i=0, ext_ring_cs=False, n_p=264, area=0.00129917360654, centroid=(-95.403569179437341, 29.681772571690402),
+                     ),
+            )
+
+# MultiPolygons
+multipolygons = (TestGeom('MULTIPOLYGON (((100 20, 180 20, 180 100, 100 100, 100 20)), ((20 100, 100 100, 100 180, 20 180, 20 100)), ((100 180, 180 180, 180 260, 100 260, 100 180)), ((180 100, 260 100, 260 180, 180 180, 180 100)))', valid=True, num_geom=4, n_p=20),
+                 TestGeom('MULTIPOLYGON (((60 300, 320 220, 260 60, 60 100, 60 300)), ((60 300, 320 220, 260 60, 60 100, 60 300)))', valid=False),
+                 TestGeom('MULTIPOLYGON (((180 60, 240 160, 300 60, 180 60)), ((80 80, 180 60, 160 140, 240 160, 360 140, 300 60, 420 100, 320 280, 120 260, 80 80)))', valid=True, num_geom=2, n_p=14),
+                 )
+
+# Points
+points = (TestGeom('POINT (5 23)', x=5.0, y=23.0, centroid=(5.0, 23.0)),
+          TestGeom('POINT (-95.338492 29.723893)', x=-95.338492, y=29.723893, centroid=(-95.338492, 29.723893)),
+          TestGeom('POINT(1.234 5.678)', x=1.234, y=5.678, centroid=(1.234, 5.678)),
+          TestGeom('POINT(4.321 8.765)', x=4.321, y=8.765, centroid=(4.321, 8.765)),
+          TestGeom('POINT(10 10)', x=10, y=10, centroid=(10., 10.)),
+          TestGeom('POINT (5 23 8)', x=5.0, y=23.0, z=8.0, centroid=(5.0, 23.0)),
+          )
+
+# MultiPoints
+multipoints = (TestGeom('MULTIPOINT(10 10, 20 20 )', n_p=2, points=((10., 10.), (20., 20.)), centroid=(15., 15.)),
+               TestGeom('MULTIPOINT(10 10, 20 20, 10 20, 20 10)',
+                        n_p=4, points=((10., 10.), (20., 20.), (10., 20.), (20., 10.)),
+                        centroid=(15., 15.)),
+               )
+
+# LineStrings
+linestrings = (TestGeom('LINESTRING (60 180, 120 100, 180 180)', n_p=3, centroid=(120, 140), tup=((60, 180), (120, 100), (180, 180))),
+               TestGeom('LINESTRING (0 0, 5 5, 10 5, 10 10)', n_p=4, centroid=(6.1611652351681556, 4.6966991411008934), tup=((0, 0), (5, 5), (10, 5), (10, 10)),),
+               )
+
+# Linear Rings
+linearrings = (TestGeom('LINEARRING (649899.3065171393100172 4176512.3807915160432458, 649902.7294133581453934 4176512.7834989596158266, 649906.5550170192727819 4176514.3942507002502680, 649910.5820134161040187 4176516.0050024418160319, 649914.4076170771149918 4176518.0184616246260703, 649917.2264131171396002 4176519.4278986593708396, 649920.0452871860470623 4176521.6427505780011415, 649922.0587463703704998 4176522.8507948759943247, 649924.2735982896992937 4176524.4616246484220028, 649926.2870574744883925 4176525.4683542405255139, 649927.8978092158213258 4176526.8777912775985897, 649929.3072462501004338 4176528.0858355751261115, 649930.1126611357321963 4176529.4952726080082357, 649927.4951798024121672 4176506.9444361114874482, 649899.3065171393100172 4176512.3807915160432458)', n_p=15),
+               )
+
+# MultiLineStrings
+multilinestrings = (TestGeom('MULTILINESTRING ((0 0, 0 100), (100 0, 100 100))', n_p=4, centroid=(50, 50), tup=(((0, 0), (0, 100)), ((100, 0), (100, 100)))),
+                    TestGeom('MULTILINESTRING ((20 20, 60 60), (20 -20, 60 -60), (-20 -20, -60 -60), (-20 20, -60 60), (-80 0, 0 80, 80 0, 0 -80, -80 0), (-40 20, -40 -20), (-20 40, 20 40), (40 20, 40 -20), (20 -40, -20 -40))',
+                             n_p=21, centroid=(0, 0), tup=(((20., 20.), (60., 60.)), ((20., -20.), (60., -60.)), ((-20., -20.), (-60., -60.)), ((-20., 20.), (-60., 60.)), ((-80., 0.), (0., 80.), (80., 0.), (0., -80.), (-80., 0.)), ((-40., 20.), (-40., -20.)), ((-20., 40.), (20., 40.)), ((40., 20.), (40., -20.)), ((20., -40.), (-20., -40.))))
+                    )
+
+# ====================================================
+# Topology Operations
+
+topology_geoms = ( (TestGeom('POLYGON ((-5.0 0.0, -5.0 10.0, 5.0 10.0, 5.0 0.0, -5.0 0.0))'),
+                    TestGeom('POLYGON ((0.0 -5.0, 0.0 5.0, 10.0 5.0, 10.0 -5.0, 0.0 -5.0))')
+                    ),
+                   (TestGeom('POLYGON ((2 0, 18 0, 18 15, 2 15, 2 0))'),
+                    TestGeom('POLYGON ((10 1, 11 3, 13 4, 15 6, 16 8, 16 10, 15 12, 13 13, 11 12, 10 10, 9 12, 7 13, 5 12, 4 10, 4 8, 5 6, 7 4, 9 3, 10 1))'),
+                    ),
+                   )
+
+intersect_geoms = ( TestGeom('POLYGON ((5 5,5 0,0 0,0 5,5 5))'),
+                    TestGeom('POLYGON ((10 1, 9 3, 7 4, 5 6, 4 8, 4 10, 5 12, 7 13, 9 12, 10 10, 11 12, 13 13, 15 12, 16 10, 16 8, 15 6, 13 4, 11 3, 10 1))'),
+                    )
+
+union_geoms = ( TestGeom('POLYGON ((-5 0,-5 10,5 10,5 5,10 5,10 -5,0 -5,0 0,-5 0))'),
+                TestGeom('POLYGON ((2 0, 2 15, 18 15, 18 0, 2 0))'),
+                )
+
+diff_geoms = ( TestGeom('POLYGON ((-5 0,-5 10,5 10,5 5,0 5,0 0,-5 0))'),
+               TestGeom('POLYGON ((2 0, 2 15, 18 15, 18 0, 2 0), (10 1, 11 3, 13 4, 15 6, 16 8, 16 10, 15 12, 13 13, 11 12, 10 10, 9 12, 7 13, 5 12, 4 10, 4 8, 5 6, 7 4, 9 3, 10 1))'),
+               )
+
+sdiff_geoms = ( TestGeom('MULTIPOLYGON (((-5 0,-5 10,5 10,5 5,0 5,0 0,-5 0)),((0 0,5 0,5 5,10 5,10 -5,0 -5,0 0)))'),
+                TestGeom('POLYGON ((2 0, 2 15, 18 15, 18 0, 2 0), (10 1, 11 3, 13 4, 15 6, 16 8, 16 10, 15 12, 13 13, 11 12, 10 10, 9 12, 7 13, 5 12, 4 10, 4 8, 5 6, 7 4, 9 3, 10 1))'),
+                )
+
+relate_geoms = ( (TestGeom('MULTIPOINT(80 70, 20 20, 200 170, 140 120)'),
+                  TestGeom('MULTIPOINT(80 170, 140 120, 200 80, 80 70)'),
+                  '0F0FFF0F2', True,),
+                 (TestGeom('POINT(20 20)'), TestGeom('POINT(40 60)'),
+                  'FF0FFF0F2', True,),
+                 (TestGeom('POINT(110 110)'), TestGeom('LINESTRING(200 200, 110 110, 200 20, 20 20, 110 110, 20 200, 200 200)'),
+                  '0FFFFF1F2', True,),
+                 (TestGeom('MULTILINESTRING((20 20, 90 20, 170 20), (90 20, 90 80, 90 140))'),
+                  TestGeom('MULTILINESTRING((90 20, 170 100, 170 140), (130 140, 130 60, 90 20, 20 90, 90 20))'),
+                  'FF10F0102', True,),
+                 )
+
+buffer_geoms = ( (TestGeom('POINT(0 0)'),
+                  TestGeom('POLYGON ((5 0,4.903926402016153 -0.97545161008064,4.619397662556435 -1.913417161825447,4.157348061512728 -2.777851165098009,3.53553390593274 -3.535533905932735,2.777851165098015 -4.157348061512724,1.913417161825454 -4.619397662556431,0.975451610080648 -4.903926402016151,0.000000000000008 -5.0,-0.975451610080632 -4.903926402016154,-1.913417161825439 -4.619397662556437,-2.777851165098002 -4.157348061512732,-3.53553390593273 -3.535533905932746,-4.157348061512719 -2.777851165098022,-4.619397662556429 -1.913417161825462,-4.903926402016149 -0.975451610080656,-5.0 -0.000000000000016,-4.903926402016156 0.975451610080624,-4.619397662556441 1.913417161825432,-4.157348061512737 2.777851165097995,-3.535533905932752 3.535533905932723,-2.777851165098029 4.157348061512714,-1.913417161825468 4.619397662556426,-0.975451610080661 4.903926402016149,-0.000000000000019 5.0,0.975451610080624 4.903926402016156,1.913417161825434 4.61939766255644,2.777851165097998 4.157348061512735,3.535533905932727 3.535533905932748,4.157348061512719 2.777851165098022,4.619397662556429 1.91341716182546,4.90392640201615 0.975451610080652,5 0))'),
+                  5.0, 8),
+                 (TestGeom('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'),
+                  TestGeom('POLYGON ((-2 0,-2 10,-1.961570560806461 10.390180644032258,-1.847759065022573 10.765366864730179,-1.662939224605091 11.111140466039204,-1.414213562373095 11.414213562373096,-1.111140466039204 11.662939224605092,-0.765366864730179 11.847759065022574,-0.390180644032256 11.961570560806461,0 12,10 12,10.390180644032256 11.961570560806461,10.765366864730179 11.847759065022574,11.111140466039204 11.66293922460509,11.414213562373096 11.414213562373096,11.66293922460509 11.111140466039204,11.847759065022574 10.765366864730179,11.961570560806461 10.390180644032256,12 10,12 0,11.961570560806461 -0.390180644032256,11.847759065022574 -0.76536686473018,11.66293922460509 -1.111140466039204,11.414213562373096 -1.414213562373095,11.111140466039204 -1.66293922460509,10.765366864730179 -1.847759065022573,10.390180644032256 -1.961570560806461,10 -2,0.0 -2.0,-0.390180644032255 -1.961570560806461,-0.765366864730177 -1.847759065022575,-1.1111404660392 -1.662939224605093,-1.41421356237309 -1.4142135623731,-1.662939224605086 -1.111140466039211,-1.84775906502257 -0.765366864730189,-1.961570560806459 -0.390180644032268,-2 0))'),
+                  2.0, 8),
+                 )
+
+json_geoms = (TestGeom('POINT(100 0)', json='{ "type": "Point", "coordinates": [ 100.000000, 0.000000 ] }'),
+              TestGeom('POLYGON((0 0, -10 0, -10 -10, 0 -10, 0 0))', json='{ "type": "Polygon", "coordinates": [ [ [ 0.000000, 0.000000 ], [ -10.000000, 0.000000 ], [ -10.000000, -10.000000 ], [ 0.000000, -10.000000 ], [ 0.000000, 0.000000 ] ] ] }'),
+              TestGeom('MULTIPOLYGON(((102 2, 103 2, 103 3, 102 3, 102 2)), ((100.0 0.0, 101.0 0.0, 101.0 1.0, 100.0 1.0, 100.0 0.0), (100.2 0.2, 100.8 0.2, 100.8 0.8, 100.2 0.8, 100.2 0.2)))', json='{ "type": "MultiPolygon", "coordinates": [ [ [ [ 102.000000, 2.000000 ], [ 103.000000, 2.000000 ], [ 103.000000, 3.000000 ], [ 102.000000, 3.000000 ], [ 102.000000, 2.000000 ] ] ], [ [ [ 100.000000, 0.000000 ], [ 101.000000, 0.000000 ], [ 101.000000, 1.000000 ], [ 100.000000, 1.000000 ], [ 100.000000, 0.000000 ] ], [ [ 100.200000, 0.200000 ], [ 100.800000, 0.200000 ], [ 100.800000, 0.800000 ], [ 100.200000, 0.800000 ], [ 100.200000, 0.200000 ] ] ] ] }'),
+              )
diff --git a/webapp/django/contrib/gis/tests/layermap/__init__.py b/webapp/django/contrib/gis/tests/layermap/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/__init__.py
diff --git a/webapp/django/contrib/gis/tests/layermap/cities/cities.dbf b/webapp/django/contrib/gis/tests/layermap/cities/cities.dbf
new file mode 100644
index 0000000..8b27633
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/cities/cities.dbf
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/layermap/cities/cities.prj b/webapp/django/contrib/gis/tests/layermap/cities/cities.prj
new file mode 100644
index 0000000..a30c00a
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/cities/cities.prj
@@ -0,0 +1 @@
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/layermap/cities/cities.shp b/webapp/django/contrib/gis/tests/layermap/cities/cities.shp
new file mode 100644
index 0000000..1c46ccc
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/cities/cities.shp
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/layermap/cities/cities.shx b/webapp/django/contrib/gis/tests/layermap/cities/cities.shx
new file mode 100644
index 0000000..6be3fd6
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/cities/cities.shx
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/layermap/counties/counties.dbf b/webapp/django/contrib/gis/tests/layermap/counties/counties.dbf
new file mode 100644
index 0000000..ccdbb26
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/counties/counties.dbf
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/layermap/counties/counties.shp b/webapp/django/contrib/gis/tests/layermap/counties/counties.shp
new file mode 100644
index 0000000..2e7dca5
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/counties/counties.shp
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/layermap/counties/counties.shx b/webapp/django/contrib/gis/tests/layermap/counties/counties.shx
new file mode 100644
index 0000000..46ed3bb
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/counties/counties.shx
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/layermap/interstates/interstates.dbf b/webapp/django/contrib/gis/tests/layermap/interstates/interstates.dbf
new file mode 100644
index 0000000..a88d171
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/interstates/interstates.dbf
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/layermap/interstates/interstates.prj b/webapp/django/contrib/gis/tests/layermap/interstates/interstates.prj
new file mode 100644
index 0000000..a30c00a
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/interstates/interstates.prj
@@ -0,0 +1 @@
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/webapp/django/contrib/gis/tests/layermap/interstates/interstates.shp b/webapp/django/contrib/gis/tests/layermap/interstates/interstates.shp
new file mode 100644
index 0000000..6d93de7
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/interstates/interstates.shp
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/layermap/interstates/interstates.shx b/webapp/django/contrib/gis/tests/layermap/interstates/interstates.shx
new file mode 100644
index 0000000..7b9088a
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/interstates/interstates.shx
Binary files differ
diff --git a/webapp/django/contrib/gis/tests/layermap/models.py b/webapp/django/contrib/gis/tests/layermap/models.py
new file mode 100644
index 0000000..5dbd528
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/models.py
@@ -0,0 +1,52 @@
+from django.contrib.gis.db import models
+
+class State(models.Model):
+    name = models.CharField(max_length=20)
+    objects = models.GeoManager()
+
+class County(models.Model):
+    name = models.CharField(max_length=25)
+    state = models.ForeignKey(State)
+    mpoly = models.MultiPolygonField(srid=4269) # Multipolygon in NAD83
+    objects = models.GeoManager()
+
+class CountyFeat(models.Model):
+    name = models.CharField(max_length=25)
+    poly = models.PolygonField(srid=4269)
+    objects = models.GeoManager()
+
+class City(models.Model):
+    name = models.CharField(max_length=25)
+    population = models.IntegerField()
+    density = models.DecimalField(max_digits=7, decimal_places=1)
+    dt = models.DateField()
+    point = models.PointField()
+    objects = models.GeoManager()
+
+class Interstate(models.Model):
+    name = models.CharField(max_length=20)
+    length = models.DecimalField(max_digits=6, decimal_places=2)
+    path = models.LineStringField()
+    objects = models.GeoManager()
+
+# Mapping dictionaries for the models above.
+co_mapping = {'name' : 'Name',
+              'state' : {'name' : 'State'}, # ForeignKey's use another mapping dictionary for the _related_ Model (State in this case).
+              'mpoly' : 'MULTIPOLYGON', # Will convert POLYGON features into MULTIPOLYGONS.
+              }
+
+cofeat_mapping = {'name' : 'Name',
+                  'poly' : 'POLYGON',
+                  }
+
+city_mapping = {'name' : 'Name',
+                'population' : 'Population',
+                'density' : 'Density',
+                'dt' : 'Created',
+                'point' : 'POINT',
+                }
+
+inter_mapping = {'name' : 'Name',
+                 'length' : 'Length',
+                 'path' : 'LINESTRING',
+                 }
diff --git a/webapp/django/contrib/gis/tests/layermap/tests.py b/webapp/django/contrib/gis/tests/layermap/tests.py
new file mode 100644
index 0000000..740ab86
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/layermap/tests.py
@@ -0,0 +1,249 @@
+import os, unittest
+from copy import copy
+from datetime import date
+from decimal import Decimal
+from models import City, County, CountyFeat, Interstate, State, city_mapping, co_mapping, cofeat_mapping, inter_mapping
+from django.contrib.gis.utils.layermapping import LayerMapping, LayerMapError, InvalidDecimal, MissingForeignKey
+from django.contrib.gis.gdal import DataSource
+
+shp_path = os.path.dirname(__file__)
+city_shp = os.path.join(shp_path, 'cities/cities.shp')
+co_shp = os.path.join(shp_path, 'counties/counties.shp')
+inter_shp = os.path.join(shp_path, 'interstates/interstates.shp')
+
+# Dictionaries to hold what's expected in the county shapefile.  
+NAMES  = ['Bexar', 'Galveston', 'Harris', 'Honolulu', 'Pueblo']
+NUMS   = [1, 2, 1, 19, 1] # Number of polygons for each.                                                                                                                                                  
+STATES = ['Texas', 'Texas', 'Texas', 'Hawaii', 'Colorado']
+
+class LayerMapTest(unittest.TestCase):
+
+    def test01_init(self):
+        "Testing LayerMapping initialization."
+
+        # Model field that does not exist.
+        bad1 = copy(city_mapping)
+        bad1['foobar'] = 'FooField'
+
+        # Shapefile field that does not exist.
+        bad2 = copy(city_mapping)
+        bad2['name'] = 'Nombre'
+
+        # Nonexistent geographic field type.
+        bad3 = copy(city_mapping)
+        bad3['point'] = 'CURVE'
+
+        # Incrementing through the bad mapping dictionaries and
+        # ensuring that a LayerMapError is raised.
+        for bad_map in (bad1, bad2, bad3):
+            try:
+                lm = LayerMapping(City, city_shp, bad_map)
+            except LayerMapError:
+                pass
+            else:
+                self.fail('Expected a LayerMapError.')
+
+        # A LookupError should be thrown for bogus encodings.
+        try:
+            lm = LayerMapping(City, city_shp, city_mapping, encoding='foobar')
+        except LookupError:
+            pass
+        else:
+            self.fail('Expected a LookupError')
+
+    def test02_simple_layermap(self):
+        "Test LayerMapping import of a simple point shapefile."
+
+        # Setting up for the LayerMapping.
+        lm = LayerMapping(City, city_shp, city_mapping)
+        lm.save()
+
+        # There should be three cities in the shape file.
+        self.assertEqual(3, City.objects.count())
+
+        # Opening up the shapefile, and verifying the values in each
+        # of the features made it to the model.
+        ds = DataSource(city_shp)
+        layer = ds[0]
+        for feat in layer:
+            city = City.objects.get(name=feat['Name'].value)
+            self.assertEqual(feat['Population'].value, city.population)
+            self.assertEqual(Decimal(str(feat['Density'])), city.density)
+            self.assertEqual(feat['Created'].value, city.dt)
+
+            # Comparing the geometries.
+            pnt1, pnt2 = feat.geom, city.point
+            self.assertAlmostEqual(pnt1.x, pnt2.x, 6)
+            self.assertAlmostEqual(pnt1.y, pnt2.y, 6)
+
+    def test03_layermap_strict(self):
+        "Testing the `strict` keyword, and import of a LineString shapefile."
+
+        # When the `strict` keyword is set an error encountered will force
+        # the importation to stop.
+        try:
+            lm = LayerMapping(Interstate, inter_shp, inter_mapping)
+            lm.save(silent=True, strict=True)
+        except InvalidDecimal:
+            pass
+        else:
+            self.fail('Should have failed on strict import with invalid decimal values.')
+
+        # This LayerMapping should work b/c `strict` is not set.
+        lm = LayerMapping(Interstate, inter_shp, inter_mapping)
+        lm.save(silent=True)
+
+        # Two interstate should have imported correctly.
+        self.assertEqual(2, Interstate.objects.count())
+        
+        # Verifying the values in the layer w/the model.
+        ds = DataSource(inter_shp)
+
+        # Only the first two features of this shapefile are valid.
+        valid_feats = ds[0][:2]
+        for feat in valid_feats:
+            istate = Interstate.objects.get(name=feat['Name'].value)
+            
+            if feat.fid == 0:
+                self.assertEqual(Decimal(str(feat['Length'])), istate.length)
+            elif feat.fid == 1:
+                # Everything but the first two decimal digits were truncated,
+                # because the Interstate model's `length` field has decimal_places=2.
+                self.assertAlmostEqual(feat.get('Length'), float(istate.length), 2)
+
+            for p1, p2 in zip(feat.geom, istate.path):
+                self.assertAlmostEqual(p1[0], p2[0], 6)
+                self.assertAlmostEqual(p1[1], p2[1], 6)
+
+    def county_helper(self, county_feat=True):
+        "Helper function for ensuring the integrity of the mapped County models."
+        
+        for name, n, st in zip(NAMES, NUMS, STATES):
+            # Should only be one record b/c of `unique` keyword.
+            c = County.objects.get(name=name)
+            self.assertEqual(n, len(c.mpoly))
+            self.assertEqual(st, c.state.name) # Checking ForeignKey mapping.
+            
+            # Multiple records because `unique` was not set.
+            if county_feat:
+                qs = CountyFeat.objects.filter(name=name)
+                self.assertEqual(n, qs.count())
+
+    def test04_layermap_unique_multigeometry_fk(self):
+        "Testing the `unique`, and `transform`, geometry collection conversion, and ForeignKey mappings."
+        # All the following should work.
+        try:
+            # Telling LayerMapping that we want no transformations performed on the data.
+            lm = LayerMapping(County, co_shp, co_mapping, transform=False)
+        
+            # Specifying the source spatial reference system via the `source_srs` keyword.
+            lm = LayerMapping(County, co_shp, co_mapping, source_srs=4269)
+            lm = LayerMapping(County, co_shp, co_mapping, source_srs='NAD83')
+
+            # Unique may take tuple or string parameters.
+            for arg in ('name', ('name', 'mpoly')):
+                lm = LayerMapping(County, co_shp, co_mapping, transform=False, unique=arg)
+        except:
+            self.fail('No exception should be raised for proper use of keywords.')
+            
+        # Testing invalid params for the `unique` keyword.
+        for e, arg in ((TypeError, 5.0), (ValueError, 'foobar'), (ValueError, ('name', 'mpolygon'))):
+            self.assertRaises(e, LayerMapping, County, co_shp, co_mapping, transform=False, unique=arg)
+
+        # No source reference system defined in the shapefile, should raise an error.
+        self.assertRaises(LayerMapError, LayerMapping, County, co_shp, co_mapping)
+
+        # Passing in invalid ForeignKey mapping parameters -- must be a dictionary
+        # mapping for the model the ForeignKey points to.
+        bad_fk_map1 = copy(co_mapping); bad_fk_map1['state'] = 'name'
+        bad_fk_map2 = copy(co_mapping); bad_fk_map2['state'] = {'nombre' : 'State'}
+        self.assertRaises(TypeError, LayerMapping, County, co_shp, bad_fk_map1, transform=False)
+        self.assertRaises(LayerMapError, LayerMapping, County, co_shp, bad_fk_map2, transform=False)
+
+        # There exist no State models for the ForeignKey mapping to work -- should raise
+        # a MissingForeignKey exception (this error would be ignored if the `strict`
+        # keyword is not set).
+        lm = LayerMapping(County, co_shp, co_mapping, transform=False, unique='name')
+        self.assertRaises(MissingForeignKey, lm.save, silent=True, strict=True)
+
+        # Now creating the state models so the ForeignKey mapping may work.
+        co, hi, tx = State(name='Colorado'), State(name='Hawaii'), State(name='Texas')
+        co.save(), hi.save(), tx.save()
+
+        # If a mapping is specified as a collection, all OGR fields that
+        # are not collections will be converted into them.  For example,
+        # a Point column would be converted to MultiPoint. Other things being done
+        # w/the keyword args:
+        #  `transform=False`: Specifies that no transform is to be done; this 
+        #    has the effect of ignoring the spatial reference check (because the
+        #    county shapefile does not have implicit spatial reference info).
+        # 
+        #  `unique='name'`: Creates models on the condition that they have 
+        #    unique county names; geometries from each feature however will be
+        #    appended to the geometry collection of the unique model.  Thus,
+        #    all of the various islands in Honolulu county will be in in one
+        #    database record with a MULTIPOLYGON type.
+        lm = LayerMapping(County, co_shp, co_mapping, transform=False, unique='name')
+        lm.save(silent=True, strict=True)
+
+        # A reference that doesn't use the unique keyword; a new database record will
+        # created for each polygon.
+        lm = LayerMapping(CountyFeat, co_shp, cofeat_mapping, transform=False)
+        lm.save(silent=True, strict=True)
+
+        # The county helper is called to ensure integrity of County models.
+        self.county_helper()
+
+    def test05_test_fid_range_step(self):
+        "Tests the `fid_range` keyword and the `step` keyword of .save()."
+        
+        # Function for clearing out all the counties before testing.
+        def clear_counties(): County.objects.all().delete()
+        
+        # Initializing the LayerMapping object to use in these tests.
+        lm = LayerMapping(County, co_shp, co_mapping, transform=False, unique='name')
+
+        # Bad feature id ranges should raise a type error.
+        clear_counties()
+        bad_ranges = (5.0, 'foo', co_shp)
+        for bad in bad_ranges:
+            self.assertRaises(TypeError, lm.save, fid_range=bad)
+
+        # Step keyword should not be allowed w/`fid_range`.
+        fr = (3, 5) # layer[3:5]
+        self.assertRaises(LayerMapError, lm.save, fid_range=fr, step=10) 
+        lm.save(fid_range=fr)
+        
+        # Features IDs 3 & 4 are for Galveston County, Texas -- only
+        # one model is returned because the `unique` keyword was set.
+        qs = County.objects.all()
+        self.assertEqual(1, qs.count())
+        self.assertEqual('Galveston', qs[0].name)
+
+        # Features IDs 5 and beyond for Honolulu County, Hawaii, and
+        # FID 0 is for Pueblo County, Colorado.
+        clear_counties()
+        lm.save(fid_range=slice(5, None), silent=True, strict=True) # layer[5:]
+        lm.save(fid_range=slice(None, 1), silent=True, strict=True) # layer[:1]
+
+        # Only Pueblo & Honolulu counties should be present because of
+        # the `unique` keyword.
+        qs = County.objects.all()
+        self.assertEqual(2, qs.count())
+        hi, co = tuple(qs)
+        hi_idx, co_idx = tuple(map(NAMES.index, ('Honolulu', 'Pueblo')))
+        self.assertEqual('Pueblo', co.name); self.assertEqual(NUMS[co_idx], len(co.mpoly))
+        self.assertEqual('Honolulu', hi.name); self.assertEqual(NUMS[hi_idx], len(hi.mpoly))
+
+        # Testing the `step` keyword -- should get the same counties
+        # regardless of we use a step that divides equally, that is odd,
+        # or that is larger than the dataset.
+        for st in (4,7,1000):
+            clear_counties()
+            lm.save(step=st, strict=True)
+            self.county_helper(county_feat=False)
+
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(LayerMapTest))
+    return s
diff --git a/webapp/django/contrib/gis/tests/relatedapp/__init__.py b/webapp/django/contrib/gis/tests/relatedapp/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/relatedapp/__init__.py
diff --git a/webapp/django/contrib/gis/tests/relatedapp/models.py b/webapp/django/contrib/gis/tests/relatedapp/models.py
new file mode 100644
index 0000000..8484054
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/relatedapp/models.py
@@ -0,0 +1,12 @@
+from django.contrib.gis.db import models
+
+class Location(models.Model):
+    name = models.CharField(max_length=50)
+    point = models.PointField()
+    objects = models.GeoManager()
+
+class City(models.Model):
+    name = models.CharField(max_length=50)
+    state = models.USStateField()
+    location = models.ForeignKey(Location)
+    objects = models.GeoManager()
diff --git a/webapp/django/contrib/gis/tests/relatedapp/tests.py b/webapp/django/contrib/gis/tests/relatedapp/tests.py
new file mode 100644
index 0000000..5fe63cb
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/relatedapp/tests.py
@@ -0,0 +1,98 @@
+import os, unittest
+from django.contrib.gis.geos import *
+from django.contrib.gis.tests.utils import no_mysql, postgis
+from django.conf import settings
+from models import City, Location
+
+cities = (('Aurora', 'TX', -97.516111, 33.058333),
+          ('Roswell', 'NM', -104.528056, 33.387222),
+          ('Kecksburg', 'PA',  -79.460734, 40.18476),
+           )
+
+class RelatedGeoModelTest(unittest.TestCase):
+    
+    def test01_setup(self):
+        "Setting up for related model tests."
+        for name, state, lon, lat in cities:
+            loc = Location(point=Point(lon, lat))
+            loc.save()
+            c = City(name=name, state=state, location=loc)
+            c.save()
+            
+    def test02_select_related(self):
+        "Testing `select_related` on geographic models (see #7126)."
+        qs1 = City.objects.all()
+        qs2 = City.objects.select_related()
+        qs3 = City.objects.select_related('location')
+
+        for qs in (qs1, qs2, qs3):
+            for ref, c in zip(cities, qs):
+                nm, st, lon, lat = ref
+                self.assertEqual(nm, c.name)
+                self.assertEqual(st, c.state)
+                self.assertEqual(Point(lon, lat), c.location.point)
+        
+    @no_mysql
+    def test03_transform_related(self):
+        "Testing the `transform` GeoQuerySet method on related geographic models."
+        # All the transformations are to state plane coordinate systems using
+        # US Survey Feet (thus a tolerance of 0 implies error w/in 1 survey foot).
+        if postgis:
+            tol = 3
+            nqueries = 4 # +1 for `postgis_lib_version`
+        else:
+            tol = 0
+            nqueries = 3
+            
+        def check_pnt(ref, pnt):
+            self.assertAlmostEqual(ref.x, pnt.x, tol)
+            self.assertAlmostEqual(ref.y, pnt.y, tol)
+            self.assertEqual(ref.srid, pnt.srid)
+
+        # Turning on debug so we can manually verify the number of SQL queries issued.
+        # DISABLED: the number of queries count testing mechanism is way too brittle.
+        #dbg = settings.DEBUG
+        #settings.DEBUG = True
+        from django.db import connection
+
+        # Each city transformed to the SRID of their state plane coordinate system.
+        transformed = (('Kecksburg', 2272, 'POINT(1490553.98959621 314792.131023984)'),
+                       ('Roswell', 2257, 'POINT(481902.189077221 868477.766629735)'),
+                       ('Aurora', 2276, 'POINT(2269923.2484839 7069381.28722222)'),
+                       )
+
+        for name, srid, wkt in transformed:
+            # Doing this implicitly sets `select_related` select the location.
+            qs = list(City.objects.filter(name=name).transform(srid, field_name='location__point'))
+            check_pnt(GEOSGeometry(wkt, srid), qs[0].location.point) 
+        #settings.DEBUG= dbg
+
+        # Verifying the number of issued SQL queries.
+        #self.assertEqual(nqueries, len(connection.queries))
+
+    @no_mysql
+    def test04_related_aggregate(self):
+        "Testing the `extent` and `unionagg` GeoQuerySet aggregates on related geographic models."
+        if postgis:
+            # One for all locations, one that excludes Roswell.
+            all_extent = (-104.528060913086, 33.0583305358887,-79.4607315063477, 40.1847610473633)
+            txpa_extent = (-97.51611328125, 33.0583305358887,-79.4607315063477, 40.1847610473633)
+            e1 = City.objects.extent(field_name='location__point')
+            e2 = City.objects.exclude(name='Roswell').extent(field_name='location__point')
+            for ref, e in [(all_extent, e1), (txpa_extent, e2)]:
+                for ref_val, e_val in zip(ref, e): self.assertAlmostEqual(ref_val, e_val)
+
+        # The second union is for a query that has something in the WHERE clause.
+        ref_u1 = GEOSGeometry('MULTIPOINT(-104.528056 33.387222,-97.516111 33.058333,-79.460734 40.18476)', 4326)
+        ref_u2 = GEOSGeometry('MULTIPOINT(-97.516111 33.058333,-79.460734 40.18476)', 4326)
+        u1 = City.objects.unionagg(field_name='location__point')
+        u2 = City.objects.exclude(name='Roswell').unionagg(field_name='location__point')
+        self.assertEqual(ref_u1, u1)
+        self.assertEqual(ref_u2, u2)
+
+    # TODO: Related tests for KML, GML, and distance lookups.
+        
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(RelatedGeoModelTest))
+    return s
diff --git a/webapp/django/contrib/gis/tests/relatedapp/tests_mysql.py b/webapp/django/contrib/gis/tests/relatedapp/tests_mysql.py
new file mode 100644
index 0000000..ecadf74
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/relatedapp/tests_mysql.py
@@ -0,0 +1 @@
+from tests import *
diff --git a/webapp/django/contrib/gis/tests/test_gdal.py b/webapp/django/contrib/gis/tests/test_gdal.py
new file mode 100644
index 0000000..030ac50
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_gdal.py
@@ -0,0 +1,28 @@
+"""
+Module for executing all of the GDAL tests.  None
+of these tests require the use of the database.
+"""
+from unittest import TestSuite, TextTestRunner
+
+# Importing the GDAL test modules.
+from django.contrib.gis.tests import \
+     test_gdal_driver, test_gdal_ds, test_gdal_envelope, \
+     test_gdal_geom, test_gdal_srs
+     
+
+test_suites = [test_gdal_driver.suite(),
+               test_gdal_ds.suite(),
+               test_gdal_envelope.suite(),
+               test_gdal_geom.suite(),
+               test_gdal_srs.suite(),
+               ]
+
+def suite():
+    "Builds a test suite for the GDAL tests."
+    s = TestSuite()
+    map(s.addTest, test_suites)
+    return s
+
+def run(verbosity=1):
+    "Runs the GDAL tests."
+    TextTestRunner(verbosity=verbosity).run(suite())
diff --git a/webapp/django/contrib/gis/tests/test_gdal_driver.py b/webapp/django/contrib/gis/tests/test_gdal_driver.py
new file mode 100644
index 0000000..1ff65ac
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_gdal_driver.py
@@ -0,0 +1,40 @@
+import os, os.path, unittest
+from django.contrib.gis.gdal import Driver, OGRException
+
+valid_drivers = ('ESRI Shapefile', 'MapInfo File', 'TIGER', 'S57', 'DGN',
+                 'Memory', 'CSV', 'GML', 'KML')
+
+invalid_drivers = ('Foo baz', 'clucka', 'ESRI Shp')
+
+aliases = {'eSrI' : 'ESRI Shapefile',
+           'TigER/linE' : 'TIGER',
+           'SHAPE' : 'ESRI Shapefile',
+           'sHp' : 'ESRI Shapefile',
+           }
+
+class DriverTest(unittest.TestCase):
+
+    def test01_valid_driver(self):
+        "Testing valid OGR Data Source Drivers."
+        for d in valid_drivers:
+            dr = Driver(d)
+            self.assertEqual(d, str(dr))
+
+    def test02_invalid_driver(self):
+        "Testing invalid OGR Data Source Drivers."
+        for i in invalid_drivers:
+            self.assertRaises(OGRException, Driver, i)
+
+    def test03_aliases(self):
+        "Testing driver aliases."
+        for alias, full_name in aliases.items():
+            dr = Driver(alias)
+            self.assertEqual(full_name, str(dr))
+
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(DriverTest))
+    return s
+
+def run(verbosity=2):
+    unittest.TextTestRunner(verbosity=verbosity).run(suite())
diff --git a/webapp/django/contrib/gis/tests/test_gdal_ds.py b/webapp/django/contrib/gis/tests/test_gdal_ds.py
new file mode 100644
index 0000000..9b82685
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_gdal_ds.py
@@ -0,0 +1,181 @@
+import os, os.path, unittest
+from django.contrib.gis.gdal import DataSource, Envelope, OGRException, OGRIndexError
+from django.contrib.gis.gdal.field import OFTReal, OFTInteger, OFTString
+
+# Path for SHP files
+data_path = os.path.join(os.path.dirname(__file__), 'data')
+def get_ds_file(name, ext):
+    return os.sep.join([data_path, name, name + '.%s' % ext])
+
+# Test SHP data source object
+class TestDS:
+    def __init__(self, name, **kwargs):
+        ext = kwargs.pop('ext', 'shp')
+        self.ds = get_ds_file(name, ext)
+        for key, value in kwargs.items():
+            setattr(self, key, value)
+
+# List of acceptable data sources.
+ds_list = (TestDS('test_point', nfeat=5, nfld=3, geom='POINT', gtype=1, driver='ESRI Shapefile',
+                  fields={'dbl' : OFTReal, 'int' : OFTInteger, 'str' : OFTString,},
+                  extent=(-1.35011,0.166623,-0.524093,0.824508), # Got extent from QGIS
+                  srs_wkt='GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]',
+                  field_values={'dbl' : [float(i) for i in range(1, 6)], 'int' : range(1, 6), 'str' : [str(i) for i in range(1, 6)]},
+                  fids=range(5)),
+           TestDS('test_vrt', ext='vrt', nfeat=3, nfld=3, geom='POINT', gtype=1, driver='VRT',
+                  fields={'POINT_X' : OFTString, 'POINT_Y' : OFTString, 'NUM' : OFTString}, # VRT uses CSV, which all types are OFTString.
+                  extent=(1.0, 2.0, 100.0, 523.5), # Min/Max from CSV
+                  field_values={'POINT_X' : ['1.0', '5.0', '100.0'], 'POINT_Y' : ['2.0', '23.0', '523.5'], 'NUM' : ['5', '17', '23']},
+                  fids=range(1,4)),
+           TestDS('test_poly', nfeat=3, nfld=3, geom='POLYGON', gtype=3, 
+                  driver='ESRI Shapefile',
+                  fields={'float' : OFTReal, 'int' : OFTInteger, 'str' : OFTString,},
+                  extent=(-1.01513,-0.558245,0.161876,0.839637), # Got extent from QGIS
+                  srs_wkt='GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]'),
+           )
+
+bad_ds = (TestDS('foo'),
+          )
+
+class DataSourceTest(unittest.TestCase):
+
+    def test01_valid_shp(self):
+        "Testing valid SHP Data Source files."
+
+        for source in ds_list:
+            # Loading up the data source
+            ds = DataSource(source.ds)
+
+            # Making sure the layer count is what's expected (only 1 layer in a SHP file)
+            self.assertEqual(1, len(ds))
+
+            # Making sure GetName works
+            self.assertEqual(source.ds, ds.name)
+
+            # Making sure the driver name matches up
+            self.assertEqual(source.driver, str(ds.driver))
+
+            # Making sure indexing works
+            try:
+                ds[len(ds)]
+            except OGRIndexError:
+                pass
+            else:
+                self.fail('Expected an IndexError!')
+                        
+    def test02_invalid_shp(self):
+        "Testing invalid SHP files for the Data Source."
+        for source in bad_ds:
+            self.assertRaises(OGRException, DataSource, source.ds)
+
+    def test03a_layers(self):
+        "Testing Data Source Layers."
+        print "\nBEGIN - expecting out of range feature id error; safe to ignore.\n"
+        for source in ds_list:
+            ds = DataSource(source.ds)
+
+            # Incrementing through each layer, this tests DataSource.__iter__
+            for layer in ds:                
+                # Making sure we get the number of features we expect
+                self.assertEqual(len(layer), source.nfeat)
+
+                # Making sure we get the number of fields we expect
+                self.assertEqual(source.nfld, layer.num_fields)
+                self.assertEqual(source.nfld, len(layer.fields))
+
+                # Testing the layer's extent (an Envelope), and it's properties
+                self.assertEqual(True, isinstance(layer.extent, Envelope))
+                self.assertAlmostEqual(source.extent[0], layer.extent.min_x, 5)
+                self.assertAlmostEqual(source.extent[1], layer.extent.min_y, 5)
+                self.assertAlmostEqual(source.extent[2], layer.extent.max_x, 5)
+                self.assertAlmostEqual(source.extent[3], layer.extent.max_y, 5)
+
+                # Now checking the field names.
+                flds = layer.fields
+                for f in flds: self.assertEqual(True, f in source.fields)
+                
+                # Negative FIDs are not allowed.
+                self.assertRaises(OGRIndexError, layer.__getitem__, -1)
+                self.assertRaises(OGRIndexError, layer.__getitem__, 50000)
+
+                if hasattr(source, 'field_values'):
+                    fld_names = source.field_values.keys()
+
+                    # Testing `Layer.get_fields` (which uses Layer.__iter__)
+                    for fld_name in fld_names:
+                        self.assertEqual(source.field_values[fld_name], layer.get_fields(fld_name))
+
+                    # Testing `Layer.__getitem__`.
+                    for i, fid in enumerate(source.fids):
+                        feat = layer[fid]
+                        self.assertEqual(fid, feat.fid)
+                        # Maybe this should be in the test below, but we might as well test
+                        # the feature values here while in this loop.
+                        for fld_name in fld_names:
+                            self.assertEqual(source.field_values[fld_name][i], feat.get(fld_name))
+        print "\nEND - expecting out of range feature id error; safe to ignore."
+                        
+    def test03b_layer_slice(self):
+        "Test indexing and slicing on Layers."
+        # Using the first data-source because the same slice
+        # can be used for both the layer and the control values.
+        source = ds_list[0]
+        ds = DataSource(source.ds)
+
+        sl = slice(1, 3)
+        feats = ds[0][sl]
+
+        for fld_name in ds[0].fields:
+            test_vals = [feat.get(fld_name) for feat in feats]
+            control_vals = source.field_values[fld_name][sl]
+            self.assertEqual(control_vals, test_vals)
+
+    def test04_features(self):
+        "Testing Data Source Features."
+        for source in ds_list:
+            ds = DataSource(source.ds)
+
+            # Incrementing through each layer
+            for layer in ds:
+                # Incrementing through each feature in the layer
+                for feat in layer:
+                    # Making sure the number of fields, and the geometry type
+                    # are what's expected.
+                    self.assertEqual(source.nfld, len(list(feat)))
+                    self.assertEqual(source.gtype, feat.geom_type)
+
+                    # Making sure the fields match to an appropriate OFT type.
+                    for k, v in source.fields.items():
+                        # Making sure we get the proper OGR Field instance, using
+                        # a string value index for the feature.
+                        self.assertEqual(True, isinstance(feat[k], v))
+
+                    # Testing Feature.__iter__
+                    for fld in feat: self.assertEqual(True, fld.name in source.fields.keys())
+                        
+    def test05_geometries(self):
+        "Testing Geometries from Data Source Features."
+        for source in ds_list:
+            ds = DataSource(source.ds)
+
+            # Incrementing through each layer and feature.
+            for layer in ds:
+                for feat in layer:
+                    g = feat.geom
+
+                    # Making sure we get the right Geometry name & type
+                    self.assertEqual(source.geom, g.geom_name)
+                    self.assertEqual(source.gtype, g.geom_type)
+
+                    # Making sure the SpatialReference is as expected.
+                    if hasattr(source, 'srs_wkt'):
+                        self.assertEqual(source.srs_wkt, g.srs.wkt)
+
+
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(DataSourceTest))
+    return s
+
+def run(verbosity=2):
+    unittest.TextTestRunner(verbosity=verbosity).run(suite())
diff --git a/webapp/django/contrib/gis/tests/test_gdal_envelope.py b/webapp/django/contrib/gis/tests/test_gdal_envelope.py
new file mode 100644
index 0000000..fda2719
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_gdal_envelope.py
@@ -0,0 +1,45 @@
+import unittest
+from django.contrib.gis.gdal import Envelope, OGRException
+
+class EnvelopeTest(unittest.TestCase):
+
+    def test01_init(self):
+        "Testing Envelope initilization."
+        e1 = Envelope((0, 0, 5, 5))
+        e2 = Envelope(0, 0, 5, 5)
+        e3 = Envelope(0, '0', '5', 5) # Thanks to ww for this
+        e4 = Envelope(e1._envelope)
+        self.assertRaises(OGRException, Envelope, (5, 5, 0, 0))
+        self.assertRaises(OGRException, Envelope, 5, 5, 0, 0)
+        self.assertRaises(OGRException, Envelope, (0, 0, 5, 5, 3))
+        self.assertRaises(OGRException, Envelope, ())
+        self.assertRaises(ValueError, Envelope, 0, 'a', 5, 5)
+        self.assertRaises(TypeError, Envelope, u'foo')
+
+    def test02_properties(self):
+        "Testing Envelope properties."
+        e = Envelope(0, 0, 2, 3)
+        self.assertEqual(0, e.min_x)
+        self.assertEqual(0, e.min_y)
+        self.assertEqual(2, e.max_x)
+        self.assertEqual(3, e.max_y)
+        self.assertEqual((0, 0), e.ll)
+        self.assertEqual((2, 3), e.ur)
+        self.assertEqual((0, 0, 2, 3), e.tuple)
+        self.assertEqual('POLYGON((0.0 0.0,0.0 3.0,2.0 3.0,2.0 0.0,0.0 0.0))', e.wkt)
+        self.assertEqual('(0.0, 0.0, 2.0, 3.0)', str(e))
+
+    def test03_equivalence(self):
+        "Testing Envelope equivalence."
+        e1 = Envelope(0.523, 0.217, 253.23, 523.69)
+        e2 = Envelope((0.523, 0.217, 253.23, 523.69))
+        self.assertEqual(e1, e2)
+        self.assertEqual((0.523, 0.217, 253.23, 523.69), e1)
+
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(EnvelopeTest))
+    return s
+
+def run(verbosity=2):
+    unittest.TextTestRunner(verbosity=verbosity).run(suite())
diff --git a/webapp/django/contrib/gis/tests/test_gdal_geom.py b/webapp/django/contrib/gis/tests/test_gdal_geom.py
new file mode 100644
index 0000000..b0dab0e
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_gdal_geom.py
@@ -0,0 +1,403 @@
+import unittest
+from django.contrib.gis.gdal import OGRGeometry, OGRGeomType, \
+    OGRException, OGRIndexError, SpatialReference, CoordTransform, \
+    gdal_version
+from django.contrib.gis.tests.geometries import *
+
+class OGRGeomTest(unittest.TestCase):
+    "This tests the OGR Geometry."
+
+    def test00_geomtype(self):
+        "Testing OGRGeomType object."
+
+        # OGRGeomType should initialize on all these inputs.
+        try:
+            g = OGRGeomType(1)
+            g = OGRGeomType(7)
+            g = OGRGeomType('point')
+            g = OGRGeomType('GeometrycollectioN')
+            g = OGRGeomType('LINearrING')
+            g = OGRGeomType('Unknown')
+        except:
+            self.fail('Could not create an OGRGeomType object!')
+
+        # Should throw TypeError on this input
+        self.assertRaises(TypeError, OGRGeomType.__init__, 23)
+        self.assertRaises(TypeError, OGRGeomType.__init__, 'fooD')
+        self.assertRaises(TypeError, OGRGeomType.__init__, 9)
+
+        # Equivalence can take strings, ints, and other OGRGeomTypes
+        self.assertEqual(True, OGRGeomType(1) == OGRGeomType(1))
+        self.assertEqual(True, OGRGeomType(7) == 'GeometryCollection')
+        self.assertEqual(True, OGRGeomType('point') == 'POINT')
+        self.assertEqual(False, OGRGeomType('point') == 2)
+        self.assertEqual(True, OGRGeomType('unknown') == 0)
+        self.assertEqual(True, OGRGeomType(6) == 'MULtiPolyGON')
+        self.assertEqual(False, OGRGeomType(1) != OGRGeomType('point'))
+        self.assertEqual(True, OGRGeomType('POINT') != OGRGeomType(6))
+
+        # Testing the Django field name equivalent property.
+        self.assertEqual('PointField', OGRGeomType('Point').django)
+        self.assertEqual(None, OGRGeomType('Unknown').django)
+        self.assertEqual(None, OGRGeomType('none').django)
+
+    def test01a_wkt(self):
+        "Testing WKT output."
+        for g in wkt_out:
+            geom = OGRGeometry(g.wkt)
+            self.assertEqual(g.wkt, geom.wkt)
+
+    def test01b_gml(self):
+        "Testing GML output."
+        for g in wkt_out:
+            geom = OGRGeometry(g.wkt)
+            self.assertEqual(g.gml, geom.gml)
+
+    def test01c_hex(self):
+        "Testing HEX input/output."
+        for g in hex_wkt:
+            geom1 = OGRGeometry(g.wkt)
+            self.assertEqual(g.hex, geom1.hex)
+            # Constructing w/HEX
+            geom2 = OGRGeometry(g.hex)
+            self.assertEqual(geom1, geom2)
+
+    def test01d_wkb(self):
+        "Testing WKB input/output."
+        from binascii import b2a_hex
+        for g in hex_wkt:
+            geom1 = OGRGeometry(g.wkt)
+            wkb = geom1.wkb
+            self.assertEqual(b2a_hex(wkb).upper(), g.hex)
+            # Constructing w/WKB.
+            geom2 = OGRGeometry(wkb)
+            self.assertEqual(geom1, geom2)
+
+    def test01e_json(self):
+        "Testing GeoJSON input/output."
+        from django.contrib.gis.gdal.prototypes.geom import GEOJSON
+        if not GEOJSON: return
+        for g in json_geoms:
+            geom = OGRGeometry(g.wkt)
+            self.assertEqual(g.json, geom.json)
+            self.assertEqual(g.json, geom.geojson)
+            self.assertEqual(OGRGeometry(g.wkt), OGRGeometry(geom.json))
+
+    def test02_points(self):
+        "Testing Point objects."
+
+        prev = OGRGeometry('POINT(0 0)')
+        for p in points:
+            if not hasattr(p, 'z'): # No 3D
+                pnt = OGRGeometry(p.wkt)
+                self.assertEqual(1, pnt.geom_type)
+                self.assertEqual('POINT', pnt.geom_name)
+                self.assertEqual(p.x, pnt.x)
+                self.assertEqual(p.y, pnt.y)
+                self.assertEqual((p.x, p.y), pnt.tuple)
+
+    def test03_multipoints(self):
+        "Testing MultiPoint objects."
+
+        for mp in multipoints:
+            mgeom1 = OGRGeometry(mp.wkt) # First one from WKT
+            self.assertEqual(4, mgeom1.geom_type)
+            self.assertEqual('MULTIPOINT', mgeom1.geom_name)
+            mgeom2 = OGRGeometry('MULTIPOINT') # Creating empty multipoint
+            mgeom3 = OGRGeometry('MULTIPOINT')
+            for g in mgeom1:
+                mgeom2.add(g) # adding each point from the multipoints
+                mgeom3.add(g.wkt) # should take WKT as well
+            self.assertEqual(mgeom1, mgeom2) # they should equal
+            self.assertEqual(mgeom1, mgeom3)
+            self.assertEqual(mp.points, mgeom2.tuple)
+            self.assertEqual(mp.n_p, mgeom2.point_count)
+                                                                            
+    def test04_linestring(self):
+        "Testing LineString objects."
+        prev = OGRGeometry('POINT(0 0)')
+        for ls in linestrings:
+            linestr = OGRGeometry(ls.wkt)
+            self.assertEqual(2, linestr.geom_type)
+            self.assertEqual('LINESTRING', linestr.geom_name)
+            self.assertEqual(ls.n_p, linestr.point_count)
+            self.assertEqual(ls.tup, linestr.tuple)
+            self.assertEqual(True, linestr == OGRGeometry(ls.wkt))
+            self.assertEqual(True, linestr != prev)
+            self.assertRaises(OGRIndexError, linestr.__getitem__, len(linestr))
+            prev = linestr
+
+            # Testing the x, y properties.
+            x = [tmpx for tmpx, tmpy in ls.tup]
+            y = [tmpy for tmpx, tmpy in ls.tup]
+            self.assertEqual(x, linestr.x)
+            self.assertEqual(y, linestr.y)
+
+    def test05_multilinestring(self):
+        "Testing MultiLineString objects."
+        prev = OGRGeometry('POINT(0 0)')
+        for mls in multilinestrings:
+            mlinestr = OGRGeometry(mls.wkt)
+            self.assertEqual(5, mlinestr.geom_type)
+            self.assertEqual('MULTILINESTRING', mlinestr.geom_name)
+            self.assertEqual(mls.n_p, mlinestr.point_count)
+            self.assertEqual(mls.tup, mlinestr.tuple)
+            self.assertEqual(True, mlinestr == OGRGeometry(mls.wkt))
+            self.assertEqual(True, mlinestr != prev)
+            prev = mlinestr
+            for ls in mlinestr:
+                self.assertEqual(2, ls.geom_type)
+                self.assertEqual('LINESTRING', ls.geom_name)
+            self.assertRaises(OGRIndexError, mlinestr.__getitem__, len(mlinestr)) 
+
+    def test06_linearring(self):
+        "Testing LinearRing objects."
+        prev = OGRGeometry('POINT(0 0)')
+        for rr in linearrings:
+            lr = OGRGeometry(rr.wkt)
+            #self.assertEqual(101, lr.geom_type.num)
+            self.assertEqual('LINEARRING', lr.geom_name)
+            self.assertEqual(rr.n_p, len(lr))
+            self.assertEqual(True, lr == OGRGeometry(rr.wkt))
+            self.assertEqual(True, lr != prev)
+            prev = lr
+
+    def test07a_polygons(self):
+        "Testing Polygon objects."
+        prev = OGRGeometry('POINT(0 0)')
+        for p in polygons:
+            poly = OGRGeometry(p.wkt)
+            self.assertEqual(3, poly.geom_type)
+            self.assertEqual('POLYGON', poly.geom_name)
+            self.assertEqual(p.n_p, poly.point_count)
+            self.assertEqual(p.n_i + 1, len(poly))
+
+            # Testing area & centroid.
+            self.assertAlmostEqual(p.area, poly.area, 9)
+            x, y = poly.centroid.tuple
+            self.assertAlmostEqual(p.centroid[0], x, 9)
+            self.assertAlmostEqual(p.centroid[1], y, 9)
+
+            # Testing equivalence
+            self.assertEqual(True, poly == OGRGeometry(p.wkt))
+            self.assertEqual(True, poly != prev)
+            
+            if p.ext_ring_cs:
+                ring = poly[0]
+                self.assertEqual(p.ext_ring_cs, ring.tuple)
+                self.assertEqual(p.ext_ring_cs, poly[0].tuple)
+                self.assertEqual(len(p.ext_ring_cs), ring.point_count)
+            
+            for r in poly:
+                self.assertEqual('LINEARRING', r.geom_name)
+
+    def test07b_closepolygons(self):
+        "Testing closing Polygon objects."
+        # Both rings in this geometry are not closed.
+        poly = OGRGeometry('POLYGON((0 0, 5 0, 5 5, 0 5), (1 1, 2 1, 2 2, 2 1))')
+        self.assertEqual(8, poly.point_count)
+        print "\nBEGIN - expecting IllegalArgumentException; safe to ignore.\n"
+        try:
+            c = poly.centroid
+        except OGRException:
+            # Should raise an OGR exception, rings are not closed
+            pass
+        else:
+            self.fail('Should have raised an OGRException!')
+        print "\nEND - expecting IllegalArgumentException; safe to ignore.\n"
+
+        # Closing the rings -- doesn't work on GDAL versions 1.4.1 and below:
+        # http://trac.osgeo.org/gdal/ticket/1673
+        major, minor1, minor2 = gdal_version().split('.')
+        if major == '1':
+            iminor1 = int(minor1)
+            if iminor1 < 4 or (iminor1 == 4 and minor2.startswith('1')): return
+        poly.close_rings()
+        self.assertEqual(10, poly.point_count) # Two closing points should've been added
+        self.assertEqual(OGRGeometry('POINT(2.5 2.5)'), poly.centroid)
+
+    def test08_multipolygons(self):
+        "Testing MultiPolygon objects."
+        prev = OGRGeometry('POINT(0 0)')
+        for mp in multipolygons:
+            mpoly = OGRGeometry(mp.wkt)
+            self.assertEqual(6, mpoly.geom_type)
+            self.assertEqual('MULTIPOLYGON', mpoly.geom_name)
+            if mp.valid:
+                self.assertEqual(mp.n_p, mpoly.point_count)
+                self.assertEqual(mp.num_geom, len(mpoly))
+                self.assertRaises(OGRIndexError, mpoly.__getitem__, len(mpoly))
+                for p in mpoly:
+                    self.assertEqual('POLYGON', p.geom_name)
+                    self.assertEqual(3, p.geom_type)
+            self.assertEqual(mpoly.wkt, OGRGeometry(mp.wkt).wkt)
+
+    def test09a_srs(self):
+        "Testing OGR Geometries with Spatial Reference objects."
+        for mp in multipolygons:
+            # Creating a geometry w/spatial reference
+            sr = SpatialReference('WGS84')
+            mpoly = OGRGeometry(mp.wkt, sr)
+            self.assertEqual(sr.wkt, mpoly.srs.wkt)
+          
+            # Ensuring that SRS is propagated to clones.
+            klone = mpoly.clone()
+            self.assertEqual(sr.wkt, klone.srs.wkt)
+  
+            # Ensuring all children geometries (polygons and their rings) all
+            # return the assigned spatial reference as well.
+            for poly in mpoly:
+                self.assertEqual(sr.wkt, poly.srs.wkt)
+                for ring in poly:
+                    self.assertEqual(sr.wkt, ring.srs.wkt)
+
+            # Ensuring SRS propagate in topological ops.
+            a, b = topology_geoms[0]
+            a, b = OGRGeometry(a.wkt, sr), OGRGeometry(b.wkt, sr)
+            diff = a.difference(b)
+            union = a.union(b)
+            self.assertEqual(sr.wkt, diff.srs.wkt)
+            self.assertEqual(sr.srid, union.srs.srid)
+
+            # Instantiating w/an integer SRID
+            mpoly = OGRGeometry(mp.wkt, 4326)
+            self.assertEqual(4326, mpoly.srid)
+            mpoly.srs = SpatialReference(4269)
+            self.assertEqual(4269, mpoly.srid)
+            self.assertEqual('NAD83', mpoly.srs.name)
+          
+            # Incrementing through the multipolyogn after the spatial reference
+            # has been re-assigned.
+            for poly in mpoly:
+                self.assertEqual(mpoly.srs.wkt, poly.srs.wkt)
+                poly.srs = 32140
+                for ring in poly:
+                    # Changing each ring in the polygon
+                    self.assertEqual(32140, ring.srs.srid)
+                    self.assertEqual('NAD83 / Texas South Central', ring.srs.name)
+                    ring.srs = str(SpatialReference(4326)) # back to WGS84
+                    self.assertEqual(4326, ring.srs.srid)
+
+                    # Using the `srid` property.
+                    ring.srid = 4322
+                    self.assertEqual('WGS 72', ring.srs.name)
+                    self.assertEqual(4322, ring.srid)
+
+    def test09b_srs_transform(self):
+        "Testing transform()."
+        orig = OGRGeometry('POINT (-104.609 38.255)', 4326)
+        trans = OGRGeometry('POINT (992385.4472045 481455.4944650)', 2774)
+
+        # Using an srid, a SpatialReference object, and a CoordTransform object
+        # or transformations.
+        t1, t2, t3 = orig.clone(), orig.clone(), orig.clone()
+        t1.transform(trans.srid)
+        t2.transform(SpatialReference('EPSG:2774'))
+        ct = CoordTransform(SpatialReference('WGS84'), SpatialReference(2774))
+        t3.transform(ct)
+
+        # Testing use of the `clone` keyword.
+        k1 = orig.clone()
+        k2 = k1.transform(trans.srid, clone=True)
+        self.assertEqual(k1, orig)
+        self.assertNotEqual(k1, k2)
+
+        prec = 3
+        for p in (t1, t2, t3, k2):
+            self.assertAlmostEqual(trans.x, p.x, prec)
+            self.assertAlmostEqual(trans.y, p.y, prec)
+
+    def test10_difference(self):
+        "Testing difference()."
+        for i in xrange(len(topology_geoms)):
+            g_tup = topology_geoms[i]
+            a = OGRGeometry(g_tup[0].wkt)
+            b = OGRGeometry(g_tup[1].wkt)
+            d1 = OGRGeometry(diff_geoms[i].wkt)
+            d2 = a.difference(b)
+            self.assertEqual(d1, d2)
+            self.assertEqual(d1, a - b) # __sub__ is difference operator
+            a -= b # testing __isub__
+            self.assertEqual(d1, a)
+
+    def test11_intersection(self):
+        "Testing intersects() and intersection()."
+        for i in xrange(len(topology_geoms)):
+            g_tup = topology_geoms[i]
+            a = OGRGeometry(g_tup[0].wkt)
+            b = OGRGeometry(g_tup[1].wkt)
+            i1 = OGRGeometry(intersect_geoms[i].wkt)
+            self.assertEqual(True, a.intersects(b))
+            i2 = a.intersection(b)
+            self.assertEqual(i1, i2)
+            self.assertEqual(i1, a & b) # __and__ is intersection operator
+            a &= b # testing __iand__
+            self.assertEqual(i1, a)
+
+    def test12_symdifference(self):
+        "Testing sym_difference()."
+        for i in xrange(len(topology_geoms)):
+            g_tup = topology_geoms[i]
+            a = OGRGeometry(g_tup[0].wkt)
+            b = OGRGeometry(g_tup[1].wkt)
+            d1 = OGRGeometry(sdiff_geoms[i].wkt)
+            d2 = a.sym_difference(b)
+            self.assertEqual(d1, d2)
+            self.assertEqual(d1, a ^ b) # __xor__ is symmetric difference operator
+            a ^= b # testing __ixor__
+            self.assertEqual(d1, a)
+            
+    def test13_union(self):
+        "Testing union()."
+        for i in xrange(len(topology_geoms)):
+            g_tup = topology_geoms[i]
+            a = OGRGeometry(g_tup[0].wkt)
+            b = OGRGeometry(g_tup[1].wkt)
+            u1 = OGRGeometry(union_geoms[i].wkt)
+            u2 = a.union(b)
+            self.assertEqual(u1, u2)
+            self.assertEqual(u1, a | b) # __or__ is union operator
+            a |= b # testing __ior__
+            self.assertEqual(u1, a)
+
+    def test14_add(self):
+        "Testing GeometryCollection.add()."
+        # Can't insert a Point into a MultiPolygon.
+        mp = OGRGeometry('MultiPolygon')
+        pnt = OGRGeometry('POINT(5 23)')
+        self.assertRaises(OGRException, mp.add, pnt)
+
+        # GeometryCollection.add may take an OGRGeometry (if another collection
+        # of the same type all child geoms will be added individually) or WKT.
+        for mp in multipolygons:
+            mpoly = OGRGeometry(mp.wkt)
+            mp1 = OGRGeometry('MultiPolygon')
+            mp2 = OGRGeometry('MultiPolygon')
+            mp3 = OGRGeometry('MultiPolygon')
+
+            for poly in mpoly:
+                mp1.add(poly) # Adding a geometry at a time
+                mp2.add(poly.wkt) # Adding WKT
+            mp3.add(mpoly) # Adding a MultiPolygon's entire contents at once.
+            for tmp in (mp1, mp2, mp3): self.assertEqual(mpoly, tmp)
+
+    def test15_extent(self):
+        "Testing `extent` property."
+        # The xmin, ymin, xmax, ymax of the MultiPoint should be returned.
+        mp = OGRGeometry('MULTIPOINT(5 23, 0 0, 10 50)')
+        self.assertEqual((0.0, 0.0, 10.0, 50.0), mp.extent)
+        # Testing on the 'real world' Polygon.
+        poly = OGRGeometry(polygons[3].wkt)
+        ring = poly.shell
+        x, y = ring.x, ring.y
+        xmin, ymin = min(x), min(y)
+        xmax, ymax = max(x), max(y)
+        self.assertEqual((xmin, ymin, xmax, ymax), poly.extent)
+
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(OGRGeomTest))
+    return s
+
+def run(verbosity=2):
+    unittest.TextTestRunner(verbosity=verbosity).run(suite())
diff --git a/webapp/django/contrib/gis/tests/test_gdal_srs.py b/webapp/django/contrib/gis/tests/test_gdal_srs.py
new file mode 100644
index 0000000..2742c7a
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_gdal_srs.py
@@ -0,0 +1,169 @@
+import unittest
+from django.contrib.gis.gdal import SpatialReference, CoordTransform, OGRException, SRSException
+
+class TestSRS:
+    def __init__(self, wkt, **kwargs):
+        self.wkt = wkt
+        for key, value in kwargs.items():
+            setattr(self, key, value)
+
+# Some Spatial Reference examples
+srlist = (TestSRS('GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]',
+                  proj='+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ',
+                  epsg=4326, projected=False, geographic=True, local=False,
+                  lin_name='unknown', ang_name='degree', lin_units=1.0, ang_units=0.0174532925199,
+                  auth={'GEOGCS' : ('EPSG', '4326'), 'spheroid' : ('EPSG', '7030')},
+                  attr=(('DATUM', 'WGS_1984'), (('SPHEROID', 1), '6378137'),('primem|authority', 'EPSG'),),
+                  ),
+          TestSRS('PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","32140"]]',
+                  proj='+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs ',
+                  epsg=32140, projected=True, geographic=False, local=False,
+                  lin_name='metre', ang_name='degree', lin_units=1.0, ang_units=0.0174532925199,
+                  auth={'PROJCS' : ('EPSG', '32140'), 'spheroid' : ('EPSG', '7019'), 'unit' : ('EPSG', '9001'),},
+                  attr=(('DATUM', 'North_American_Datum_1983'),(('SPHEROID', 2), '298.257222101'),('PROJECTION','Lambert_Conformal_Conic_2SP'),),
+                  ),
+          TestSRS('PROJCS["NAD_1983_StatePlane_Texas_South_Central_FIPS_4204_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333334],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.3048006096012192]]',
+                  proj='+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333334 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs ',
+                  epsg=None, projected=True, geographic=False, local=False,
+                  lin_name='Foot_US', ang_name='Degree', lin_units=0.3048006096012192, ang_units=0.0174532925199,
+                  auth={'PROJCS' : (None, None),},
+                  attr=(('PROJCS|GeOgCs|spheroid', 'GRS_1980'),(('projcs', 9), 'UNIT'), (('projcs', 11), None),),
+                  ),
+          # This is really ESRI format, not WKT -- but the import should work the same
+          TestSRS('LOCAL_CS["Non-Earth (Meter)",LOCAL_DATUM["Local Datum",0],UNIT["Meter",1.0],AXIS["X",EAST],AXIS["Y",NORTH]]',
+                  esri=True, proj=None, epsg=None, projected=False, geographic=False, local=True,
+                  lin_name='Meter', ang_name='degree', lin_units=1.0, ang_units=0.0174532925199,
+                  attr=(('LOCAL_DATUM', 'Local Datum'), ('unit', 'Meter')),
+                  ),
+          )
+
+# Well-Known Names
+well_known = (TestSRS('GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]', wk='WGS84', name='WGS 84', attrs=(('GEOGCS|AUTHORITY', 1, '4326'), ('SPHEROID', 'WGS 84'))),
+              TestSRS('GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]]', wk='WGS72', name='WGS 72', attrs=(('GEOGCS|AUTHORITY', 1, '4322'), ('SPHEROID', 'WGS 72'))),
+              TestSRS('GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982138982,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]]', wk='NAD27', name='NAD27', attrs=(('GEOGCS|AUTHORITY', 1, '4267'), ('SPHEROID', 'Clarke 1866'))),
+              TestSRS('GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]]', wk='NAD83', name='NAD83', attrs=(('GEOGCS|AUTHORITY', 1, '4269'), ('SPHEROID', 'GRS 1980'))),
+              TestSRS('PROJCS["NZGD49 / Karamea Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.28991152777778],PARAMETER["central_meridian",172.1090281944444],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","27216"]]', wk='EPSG:27216', name='NZGD49 / Karamea Circuit', attrs=(('PROJECTION','Transverse_Mercator'), ('SPHEROID', 'International 1924'))),
+              )
+
+bad_srlist = ('Foobar', 'OOJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","32140"]]',)
+
+class SpatialRefTest(unittest.TestCase):
+
+    def test01_wkt(self):
+        "Testing initialization on valid OGC WKT."
+        for s in srlist:
+            srs = SpatialReference(s.wkt)
+
+    def test02_bad_wkt(self):
+        "Testing initialization on invalid WKT."
+        for bad in bad_srlist:
+            try:
+                srs = SpatialReference(bad)
+                srs.validate()
+            except (SRSException, OGRException):
+                pass
+            else:
+                self.fail('Should not have initialized on bad WKT "%s"!')
+
+    def test03_get_wkt(self):
+        "Testing getting the WKT."
+        for s in srlist:
+            srs = SpatialReference(s.wkt)
+            self.assertEqual(s.wkt, srs.wkt)
+
+    def test04_proj(self):
+        "Test PROJ.4 import and export."
+
+        for s in srlist:
+            if s.proj:
+                srs1 = SpatialReference(s.wkt)
+                srs2 = SpatialReference(s.proj)
+                self.assertEqual(srs1.proj, srs2.proj)
+        
+    def test05_epsg(self):
+        "Test EPSG import."
+        for s in srlist:
+            if s.epsg:
+                srs1 = SpatialReference(s.wkt)
+                srs2 = SpatialReference(s.epsg)
+                srs3 = SpatialReference(str(s.epsg))
+                srs4 = SpatialReference('EPSG:%d' % s.epsg)
+                #self.assertEqual(srs1.wkt, srs2.wkt)
+                for srs in (srs1, srs2, srs3, srs4):
+                    for attr, expected in s.attr:
+                        self.assertEqual(expected, srs[attr])
+
+    def test07_boolean_props(self):
+        "Testing the boolean properties."
+        for s in srlist:
+            srs = SpatialReference(s.wkt)
+            self.assertEqual(s.projected, srs.projected)
+            self.assertEqual(s.geographic, srs.geographic)
+
+    def test08_angular_linear(self):
+        "Testing the linear and angular units routines."
+        for s in srlist:
+            srs = SpatialReference(s.wkt)
+            self.assertEqual(s.ang_name, srs.angular_name)
+            self.assertEqual(s.lin_name, srs.linear_name)
+            self.assertAlmostEqual(s.ang_units, srs.angular_units, 9)
+            self.assertAlmostEqual(s.lin_units, srs.linear_units, 9)
+
+    def test09_authority(self):
+        "Testing the authority name & code routines."
+        for s in srlist:
+            if hasattr(s, 'auth'):
+                srs = SpatialReference(s.wkt)
+                for target, tup in s.auth.items():
+                    self.assertEqual(tup[0], srs.auth_name(target))
+                    self.assertEqual(tup[1], srs.auth_code(target))
+
+    def test10_attributes(self):
+        "Testing the attribute retrieval routines."
+        for s in srlist:
+            srs = SpatialReference(s.wkt)
+            for tup in s.attr:
+                att = tup[0] # Attribute to test
+                exp = tup[1] # Expected result
+                self.assertEqual(exp, srs[att])
+
+    def test11_wellknown(self):
+        "Testing Well Known Names of Spatial References."
+        for s in well_known:
+            srs = SpatialReference(s.wk)
+            self.assertEqual(s.name, srs.name)
+            for tup in s.attrs:
+                if len(tup) == 2:
+                    key = tup[0]
+                    exp = tup[1]
+                elif len(tup) == 3:
+                    key = tup[:2]
+                    exp = tup[2]
+                self.assertEqual(srs[key], exp)
+
+    def test12_coordtransform(self):
+        "Testing initialization of a CoordTransform."
+        target = SpatialReference('WGS84')
+        for s in srlist:
+            if s.proj:
+                ct = CoordTransform(SpatialReference(s.wkt), target)
+
+    def test13_attr_value(self):
+        "Testing the attr_value() method."
+        s1 = SpatialReference('WGS84')
+        self.assertRaises(TypeError, s1.__getitem__, 0)
+        self.assertRaises(TypeError, s1.__getitem__, ('GEOGCS', 'foo'))
+        self.assertEqual('WGS 84', s1['GEOGCS'])
+        self.assertEqual('WGS_1984', s1['DATUM'])
+        self.assertEqual('EPSG', s1['AUTHORITY'])
+        self.assertEqual(4326, int(s1['AUTHORITY', 1]))
+        #for i in range(7): self.assertEqual(0, int(s1['TOWGS84', i]))
+        self.assertEqual(None, s1['FOOBAR'])
+    
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(SpatialRefTest))
+    return s
+
+def run(verbosity=2):
+    unittest.TextTestRunner(verbosity=verbosity).run(suite())
diff --git a/webapp/django/contrib/gis/tests/test_geoip.py b/webapp/django/contrib/gis/tests/test_geoip.py
new file mode 100644
index 0000000..44b0802
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_geoip.py
@@ -0,0 +1,104 @@
+import os, unittest
+from django.db import settings
+from django.contrib.gis.geos import GEOSGeometry
+from django.contrib.gis.utils import GeoIP, GeoIPException
+
+# Note: Requires use of both the GeoIP country and city datasets.
+# The GEOIP_DATA path should be the only setting set (the directory
+# should contain links or the actual database files 'GeoIP.dat' and 
+# 'GeoLiteCity.dat'.
+class GeoIPTest(unittest.TestCase):
+    
+    def test01_init(self):
+        "Testing GeoIP initialization."
+        g1 = GeoIP() # Everything inferred from GeoIP path
+        path = settings.GEOIP_PATH
+        g2 = GeoIP(path, 0) # Passing in data path explicitly.
+        g3 = GeoIP.open(path, 0) # MaxMind Python API syntax.
+
+        for g in (g1, g2, g3):
+            self.assertEqual(True, bool(g._country))
+            self.assertEqual(True, bool(g._city))
+        
+        # Only passing in the location of one database.
+        city = os.path.join(path, 'GeoLiteCity.dat')
+        cntry = os.path.join(path, 'GeoIP.dat')
+        g4 = GeoIP(city, country='')
+        self.assertEqual(None, g4._country)
+        g5 = GeoIP(cntry, city='')
+        self.assertEqual(None, g5._city)
+
+        # Improper parameters.
+        bad_params = (23, 'foo', 15.23)
+        for bad in bad_params:
+            self.assertRaises(GeoIPException, GeoIP, cache=bad)
+            if isinstance(bad, basestring):
+                e = GeoIPException
+            else:
+                e = TypeError
+            self.assertRaises(e, GeoIP, bad, 0)
+
+    def test02_bad_query(self):
+        "Testing GeoIP query parameter checking."
+        cntry_g = GeoIP(city='<foo>')
+        # No city database available, these calls should fail.
+        self.assertRaises(GeoIPException, cntry_g.city, 'google.com')
+        self.assertRaises(GeoIPException, cntry_g.coords, 'yahoo.com')
+
+        # Non-string query should raise TypeError
+        self.assertRaises(TypeError, cntry_g.country_code, 17)
+        self.assertRaises(TypeError, cntry_g.country_name, GeoIP)
+
+    def test03_country(self):
+        "Testing GeoIP country querying methods."
+        g = GeoIP(city='<foo>')
+        
+        fqdn = 'www.google.com'
+        addr = '12.215.42.19'
+        
+        for query in (fqdn, addr):
+            for func in (g.country_code, g.country_code_by_addr, g.country_code_by_name):
+                self.assertEqual('US', func(query))
+            for func in (g.country_name, g.country_name_by_addr, g.country_name_by_name):
+                self.assertEqual('United States', func(query))
+            self.assertEqual({'country_code' : 'US', 'country_name' : 'United States'},
+                             g.country(query))
+
+    def test04_city(self):
+        "Testing GeoIP city querying methods."
+        g = GeoIP(country='<foo>')
+        
+        addr = '130.80.29.3'
+        fqdn = 'chron.com'
+        for query in (fqdn, addr):
+            # Country queries should still work.
+            for func in (g.country_code, g.country_code_by_addr, g.country_code_by_name):
+                self.assertEqual('US', func(query))
+            for func in (g.country_name, g.country_name_by_addr, g.country_name_by_name):
+                self.assertEqual('United States', func(query))
+            self.assertEqual({'country_code' : 'US', 'country_name' : 'United States'},
+                             g.country(query))
+            
+            # City information dictionary.
+            d = g.city(query)
+            self.assertEqual('USA', d['country_code3'])
+            self.assertEqual('Houston', d['city'])
+            self.assertEqual('TX', d['region'])
+            self.assertEqual('77002', d['postal_code'])
+            self.assertEqual(713, d['area_code'])
+            geom = g.geos(query)
+            self.failIf(not isinstance(geom, GEOSGeometry))
+            lon, lat = (-95.366996765, 29.752300262)
+            lat_lon = g.lat_lon(query)
+            lat_lon = (lat_lon[1], lat_lon[0])
+            for tup in (geom.tuple, g.coords(query), g.lon_lat(query), lat_lon):
+                self.assertAlmostEqual(lon, tup[0], 9)
+                self.assertAlmostEqual(lat, tup[1], 9)
+
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(GeoIPTest))
+    return s
+
+def run(verbosity=2):
+    unittest.TextTestRunner(verbosity=verbosity).run(suite())
diff --git a/webapp/django/contrib/gis/tests/test_geos.py b/webapp/django/contrib/gis/tests/test_geos.py
new file mode 100644
index 0000000..8ea4507
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_geos.py
@@ -0,0 +1,775 @@
+import random, unittest, sys
+from ctypes import ArgumentError
+from django.contrib.gis.geos import *
+from django.contrib.gis.geos.base import HAS_GDAL
+from django.contrib.gis.tests.geometries import *
+    
+if HAS_NUMPY: from numpy import array
+if HAS_GDAL: from django.contrib.gis.gdal import OGRGeometry, SpatialReference, CoordTransform, GEOJSON
+
+class GEOSTest(unittest.TestCase):
+
+    @property
+    def null_srid(self):
+        """
+        Returns the proper null SRID depending on the GEOS version.
+        See the comments in `test15_srid` for more details. 
+        """
+        info = geos_version_info()
+        if info['version'] == '3.0.0' and info['release_candidate']:
+            return -1
+        else:
+            return None
+
+    def test01a_wkt(self):
+        "Testing WKT output."
+        for g in wkt_out:
+            geom = fromstr(g.wkt)
+            self.assertEqual(g.ewkt, geom.wkt)
+
+    def test01b_hex(self):
+        "Testing HEX output."
+        for g in hex_wkt:
+            geom = fromstr(g.wkt)
+            self.assertEqual(g.hex, geom.hex)
+
+    def test01c_kml(self):
+        "Testing KML output."
+        for tg in wkt_out:
+            geom = fromstr(tg.wkt)
+            kml = getattr(tg, 'kml', False)
+            if kml: self.assertEqual(kml, geom.kml)
+
+    def test01d_errors(self):
+        "Testing the Error handlers."
+        # string-based
+        print "\nBEGIN - expecting GEOS_ERROR; safe to ignore.\n"
+        for err in errors:
+            try:
+                g = fromstr(err.wkt)
+            except (GEOSException, ValueError):
+                pass
+        print "\nEND - expecting GEOS_ERROR; safe to ignore.\n"
+        
+        class NotAGeometry(object):
+            pass
+        
+        # Some other object
+        self.assertRaises(TypeError, GEOSGeometry, NotAGeometry())
+        # None
+        self.assertRaises(TypeError, GEOSGeometry, None)
+        # Bad WKB
+        self.assertRaises(GEOSException, GEOSGeometry, buffer('0'))
+                
+    def test01e_wkb(self):
+        "Testing WKB output."
+        from binascii import b2a_hex
+        for g in hex_wkt:
+            geom = fromstr(g.wkt)
+            wkb = geom.wkb
+            self.assertEqual(b2a_hex(wkb).upper(), g.hex)
+
+    def test01f_create_hex(self):
+        "Testing creation from HEX."
+        for g in hex_wkt:
+            geom_h = GEOSGeometry(g.hex)
+            # we need to do this so decimal places get normalised
+            geom_t = fromstr(g.wkt)
+            self.assertEqual(geom_t.wkt, geom_h.wkt)
+
+    def test01g_create_wkb(self):
+        "Testing creation from WKB."
+        from binascii import a2b_hex
+        for g in hex_wkt:
+            wkb = buffer(a2b_hex(g.hex))
+            geom_h = GEOSGeometry(wkb)
+            # we need to do this so decimal places get normalised
+            geom_t = fromstr(g.wkt)
+            self.assertEqual(geom_t.wkt, geom_h.wkt)
+
+    def test01h_ewkt(self):
+        "Testing EWKT."
+        srid = 32140
+        for p in polygons:
+            ewkt = 'SRID=%d;%s' % (srid, p.wkt)
+            poly = fromstr(ewkt)
+            self.assertEqual(srid, poly.srid)
+            self.assertEqual(srid, poly.shell.srid)
+            self.assertEqual(srid, fromstr(poly.ewkt).srid) # Checking export
+    
+    def test01i_json(self):
+        "Testing GeoJSON input/output (via GDAL)."
+        if not HAS_GDAL or not GEOJSON: return
+        for g in json_geoms:
+            geom = GEOSGeometry(g.wkt)
+            self.assertEqual(g.json, geom.json)
+            self.assertEqual(g.json, geom.geojson)
+            self.assertEqual(GEOSGeometry(g.wkt), GEOSGeometry(geom.json))
+
+    def test01j_eq(self):
+        "Testing equivalence."
+        p = fromstr('POINT(5 23)')
+        self.assertEqual(p, p.wkt)
+        self.assertNotEqual(p, 'foo')
+        ls = fromstr('LINESTRING(0 0, 1 1, 5 5)')
+        self.assertEqual(ls, ls.wkt)
+        self.assertNotEqual(p, 'bar')
+        # Error shouldn't be raise on equivalence testing with 
+        # an invalid type.
+        for g in (p, ls):
+            self.assertNotEqual(g, None)
+            self.assertNotEqual(g, {'foo' : 'bar'})
+            self.assertNotEqual(g, False)
+
+    def test02a_points(self):
+        "Testing Point objects."
+        prev = fromstr('POINT(0 0)')
+        for p in points:
+            # Creating the point from the WKT
+            pnt = fromstr(p.wkt)
+            self.assertEqual(pnt.geom_type, 'Point')
+            self.assertEqual(pnt.geom_typeid, 0)
+            self.assertEqual(p.x, pnt.x)
+            self.assertEqual(p.y, pnt.y)
+            self.assertEqual(True, pnt == fromstr(p.wkt))
+            self.assertEqual(False, pnt == prev)
+
+            # Making sure that the point's X, Y components are what we expect
+            self.assertAlmostEqual(p.x, pnt.tuple[0], 9)
+            self.assertAlmostEqual(p.y, pnt.tuple[1], 9)
+
+            # Testing the third dimension, and getting the tuple arguments
+            if hasattr(p, 'z'):
+                self.assertEqual(True, pnt.hasz)
+                self.assertEqual(p.z, pnt.z)
+                self.assertEqual(p.z, pnt.tuple[2], 9)
+                tup_args = (p.x, p.y, p.z)
+                set_tup1 = (2.71, 3.14, 5.23)
+                set_tup2 = (5.23, 2.71, 3.14)
+            else:
+                self.assertEqual(False, pnt.hasz)
+                self.assertEqual(None, pnt.z)
+                tup_args = (p.x, p.y)
+                set_tup1 = (2.71, 3.14)
+                set_tup2 = (3.14, 2.71)
+
+            # Centroid operation on point should be point itself
+            self.assertEqual(p.centroid, pnt.centroid.tuple)
+
+            # Now testing the different constructors
+            pnt2 = Point(tup_args)  # e.g., Point((1, 2))
+            pnt3 = Point(*tup_args) # e.g., Point(1, 2)
+            self.assertEqual(True, pnt == pnt2)
+            self.assertEqual(True, pnt == pnt3)
+
+            # Now testing setting the x and y
+            pnt.y = 3.14
+            pnt.x = 2.71
+            self.assertEqual(3.14, pnt.y)
+            self.assertEqual(2.71, pnt.x)
+
+            # Setting via the tuple/coords property
+            pnt.tuple = set_tup1
+            self.assertEqual(set_tup1, pnt.tuple)
+            pnt.coords = set_tup2
+            self.assertEqual(set_tup2, pnt.coords)
+            
+            prev = pnt # setting the previous geometry
+
+    def test02b_multipoints(self):
+        "Testing MultiPoint objects."
+        for mp in multipoints:
+            mpnt = fromstr(mp.wkt)
+            self.assertEqual(mpnt.geom_type, 'MultiPoint')
+            self.assertEqual(mpnt.geom_typeid, 4)
+
+            self.assertAlmostEqual(mp.centroid[0], mpnt.centroid.tuple[0], 9)
+            self.assertAlmostEqual(mp.centroid[1], mpnt.centroid.tuple[1], 9)
+
+            self.assertRaises(GEOSIndexError, mpnt.__getitem__, len(mpnt))
+            self.assertEqual(mp.centroid, mpnt.centroid.tuple)
+            self.assertEqual(mp.points, tuple(m.tuple for m in mpnt))
+            for p in mpnt:
+                self.assertEqual(p.geom_type, 'Point')
+                self.assertEqual(p.geom_typeid, 0)
+                self.assertEqual(p.empty, False)
+                self.assertEqual(p.valid, True)
+
+    def test03a_linestring(self):
+        "Testing LineString objects."
+        prev = fromstr('POINT(0 0)')
+        for l in linestrings:
+            ls = fromstr(l.wkt)
+            self.assertEqual(ls.geom_type, 'LineString')
+            self.assertEqual(ls.geom_typeid, 1)
+            self.assertEqual(ls.empty, False)
+            self.assertEqual(ls.ring, False)
+            if hasattr(l, 'centroid'):
+                self.assertEqual(l.centroid, ls.centroid.tuple)
+            if hasattr(l, 'tup'):
+                self.assertEqual(l.tup, ls.tuple)
+                
+            self.assertEqual(True, ls == fromstr(l.wkt))
+            self.assertEqual(False, ls == prev)
+            self.assertRaises(GEOSIndexError, ls.__getitem__, len(ls))
+            prev = ls
+
+            # Creating a LineString from a tuple, list, and numpy array
+            self.assertEqual(ls, LineString(ls.tuple))  # tuple
+            self.assertEqual(ls, LineString(*ls.tuple)) # as individual arguments
+            self.assertEqual(ls, LineString([list(tup) for tup in ls.tuple])) # as list
+            self.assertEqual(ls.wkt, LineString(*tuple(Point(tup) for tup in ls.tuple)).wkt) # Point individual arguments
+            if HAS_NUMPY: self.assertEqual(ls, LineString(array(ls.tuple))) # as numpy array
+
+    def test03b_multilinestring(self):
+        "Testing MultiLineString objects."
+        prev = fromstr('POINT(0 0)')
+        for l in multilinestrings:
+            ml = fromstr(l.wkt)
+            self.assertEqual(ml.geom_type, 'MultiLineString')
+            self.assertEqual(ml.geom_typeid, 5)
+
+            self.assertAlmostEqual(l.centroid[0], ml.centroid.x, 9)
+            self.assertAlmostEqual(l.centroid[1], ml.centroid.y, 9)
+
+            self.assertEqual(True, ml == fromstr(l.wkt))
+            self.assertEqual(False, ml == prev)
+            prev = ml
+
+            for ls in ml:
+                self.assertEqual(ls.geom_type, 'LineString')
+                self.assertEqual(ls.geom_typeid, 1)
+                self.assertEqual(ls.empty, False)
+
+            self.assertRaises(GEOSIndexError, ml.__getitem__, len(ml))
+            self.assertEqual(ml.wkt, MultiLineString(*tuple(s.clone() for s in ml)).wkt)
+            self.assertEqual(ml, MultiLineString(*tuple(LineString(s.tuple) for s in ml)))
+
+    def test04_linearring(self):
+        "Testing LinearRing objects."
+        for rr in linearrings:
+            lr = fromstr(rr.wkt)
+            self.assertEqual(lr.geom_type, 'LinearRing')
+            self.assertEqual(lr.geom_typeid, 2)
+            self.assertEqual(rr.n_p, len(lr))
+            self.assertEqual(True, lr.valid)
+            self.assertEqual(False, lr.empty)
+
+            # Creating a LinearRing from a tuple, list, and numpy array
+            self.assertEqual(lr, LinearRing(lr.tuple))
+            self.assertEqual(lr, LinearRing(*lr.tuple))
+            self.assertEqual(lr, LinearRing([list(tup) for tup in lr.tuple]))
+            if HAS_NUMPY: self.assertEqual(lr, LinearRing(array(lr.tuple)))
+    
+    def test05a_polygons(self):
+        "Testing Polygon objects."
+        prev = fromstr('POINT(0 0)')
+        for p in polygons:
+            # Creating the Polygon, testing its properties.
+            poly = fromstr(p.wkt)
+            self.assertEqual(poly.geom_type, 'Polygon')
+            self.assertEqual(poly.geom_typeid, 3)
+            self.assertEqual(poly.empty, False)
+            self.assertEqual(poly.ring, False)
+            self.assertEqual(p.n_i, poly.num_interior_rings)
+            self.assertEqual(p.n_i + 1, len(poly)) # Testing __len__
+            self.assertEqual(p.n_p, poly.num_points)
+
+            # Area & Centroid
+            self.assertAlmostEqual(p.area, poly.area, 9)
+            self.assertAlmostEqual(p.centroid[0], poly.centroid.tuple[0], 9)
+            self.assertAlmostEqual(p.centroid[1], poly.centroid.tuple[1], 9)
+
+            # Testing the geometry equivalence
+            self.assertEqual(True, poly == fromstr(p.wkt))
+            self.assertEqual(False, poly == prev) # Should not be equal to previous geometry
+            self.assertEqual(True, poly != prev)
+
+            # Testing the exterior ring
+            ring = poly.exterior_ring
+            self.assertEqual(ring.geom_type, 'LinearRing')
+            self.assertEqual(ring.geom_typeid, 2)
+            if p.ext_ring_cs:
+                self.assertEqual(p.ext_ring_cs, ring.tuple)
+                self.assertEqual(p.ext_ring_cs, poly[0].tuple) # Testing __getitem__
+
+            # Testing __getitem__ and __setitem__ on invalid indices
+            self.assertRaises(GEOSIndexError, poly.__getitem__, len(poly))
+            self.assertRaises(GEOSIndexError, poly.__setitem__, len(poly), False)
+            self.assertRaises(GEOSIndexError, poly.__getitem__, -1)
+
+            # Testing __iter__ 
+            for r in poly:
+                self.assertEqual(r.geom_type, 'LinearRing')
+                self.assertEqual(r.geom_typeid, 2)
+
+            # Testing polygon construction.
+            self.assertRaises(TypeError, Polygon.__init__, 0, [1, 2, 3])
+            self.assertRaises(TypeError, Polygon.__init__, 'foo')
+            
+            # Polygon(shell, (hole1, ... holeN))
+            rings = tuple(r for r in poly)
+            self.assertEqual(poly, Polygon(rings[0], rings[1:]))
+            
+            # Polygon(shell_tuple, hole_tuple1, ... , hole_tupleN)
+            ring_tuples = tuple(r.tuple for r in poly)
+            self.assertEqual(poly, Polygon(*ring_tuples))
+
+            # Constructing with tuples of LinearRings.
+            self.assertEqual(poly.wkt, Polygon(*tuple(r for r in poly)).wkt)
+            self.assertEqual(poly.wkt, Polygon(*tuple(LinearRing(r.tuple) for r in poly)).wkt)
+
+    def test05b_multipolygons(self):
+        "Testing MultiPolygon objects."
+        print "\nBEGIN - expecting GEOS_NOTICE; safe to ignore.\n"
+        prev = fromstr('POINT (0 0)')
+        for mp in multipolygons:
+            mpoly = fromstr(mp.wkt)
+            self.assertEqual(mpoly.geom_type, 'MultiPolygon')
+            self.assertEqual(mpoly.geom_typeid, 6)
+            self.assertEqual(mp.valid, mpoly.valid)
+
+            if mp.valid:
+                self.assertEqual(mp.num_geom, mpoly.num_geom)
+                self.assertEqual(mp.n_p, mpoly.num_coords)
+                self.assertEqual(mp.num_geom, len(mpoly))
+                self.assertRaises(GEOSIndexError, mpoly.__getitem__, len(mpoly))
+                for p in mpoly:
+                    self.assertEqual(p.geom_type, 'Polygon')
+                    self.assertEqual(p.geom_typeid, 3)
+                    self.assertEqual(p.valid, True)
+                self.assertEqual(mpoly.wkt, MultiPolygon(*tuple(poly.clone() for poly in mpoly)).wkt)
+
+        print "\nEND - expecting GEOS_NOTICE; safe to ignore.\n"  
+
+    def test06a_memory_hijinks(self):
+        "Testing Geometry __del__() on rings and polygons."
+        #### Memory issues with rings and polygons
+
+        # These tests are needed to ensure sanity with writable geometries.
+
+        # Getting a polygon with interior rings, and pulling out the interior rings
+        poly = fromstr(polygons[1].wkt)
+        ring1 = poly[0]
+        ring2 = poly[1]
+
+        # These deletes should be 'harmless' since they are done on child geometries
+        del ring1 
+        del ring2
+        ring1 = poly[0]
+        ring2 = poly[1]
+
+        # Deleting the polygon
+        del poly
+
+        # Access to these rings is OK since they are clones.
+        s1, s2 = str(ring1), str(ring2)
+
+        # The previous hijinks tests are now moot because only clones are 
+        # now used =)
+
+    def test08_coord_seq(self):
+        "Testing Coordinate Sequence objects."
+        for p in polygons:
+            if p.ext_ring_cs:
+                # Constructing the polygon and getting the coordinate sequence
+                poly = fromstr(p.wkt)
+                cs = poly.exterior_ring.coord_seq
+
+                self.assertEqual(p.ext_ring_cs, cs.tuple) # done in the Polygon test too.
+                self.assertEqual(len(p.ext_ring_cs), len(cs)) # Making sure __len__ works
+
+                # Checks __getitem__ and __setitem__
+                for i in xrange(len(p.ext_ring_cs)):
+                    c1 = p.ext_ring_cs[i] # Expected value
+                    c2 = cs[i] # Value from coordseq
+                    self.assertEqual(c1, c2)
+
+                    # Constructing the test value to set the coordinate sequence with
+                    if len(c1) == 2: tset = (5, 23)
+                    else: tset = (5, 23, 8)
+                    cs[i] = tset
+                    
+                    # Making sure every set point matches what we expect
+                    for j in range(len(tset)):
+                        cs[i] = tset
+                        self.assertEqual(tset[j], cs[i][j])
+
+    def test09_relate_pattern(self):
+        "Testing relate() and relate_pattern()."
+        g = fromstr('POINT (0 0)')
+        self.assertRaises(GEOSException, g.relate_pattern, 0, 'invalid pattern, yo')
+        for i in xrange(len(relate_geoms)):
+            g_tup = relate_geoms[i]
+            a = fromstr(g_tup[0].wkt)
+            b = fromstr(g_tup[1].wkt)
+            pat = g_tup[2]
+            result = g_tup[3]
+            self.assertEqual(result, a.relate_pattern(b, pat))
+            self.assertEqual(pat, a.relate(b))
+
+    def test10_intersection(self):
+        "Testing intersects() and intersection()."
+        for i in xrange(len(topology_geoms)):
+            g_tup = topology_geoms[i]
+            a = fromstr(g_tup[0].wkt)
+            b = fromstr(g_tup[1].wkt)
+            i1 = fromstr(intersect_geoms[i].wkt) 
+            self.assertEqual(True, a.intersects(b))
+            i2 = a.intersection(b)
+            self.assertEqual(i1, i2)
+            self.assertEqual(i1, a & b) # __and__ is intersection operator
+            a &= b # testing __iand__
+            self.assertEqual(i1, a)
+
+    def test11_union(self):
+        "Testing union()."
+        for i in xrange(len(topology_geoms)):
+            g_tup = topology_geoms[i]
+            a = fromstr(g_tup[0].wkt)
+            b = fromstr(g_tup[1].wkt)
+            u1 = fromstr(union_geoms[i].wkt)
+            u2 = a.union(b)
+            self.assertEqual(u1, u2)
+            self.assertEqual(u1, a | b) # __or__ is union operator
+            a |= b # testing __ior__
+            self.assertEqual(u1, a) 
+
+    def test12_difference(self):
+        "Testing difference()."
+        for i in xrange(len(topology_geoms)):
+            g_tup = topology_geoms[i]
+            a = fromstr(g_tup[0].wkt)
+            b = fromstr(g_tup[1].wkt)
+            d1 = fromstr(diff_geoms[i].wkt)
+            d2 = a.difference(b)
+            self.assertEqual(d1, d2)
+            self.assertEqual(d1, a - b) # __sub__ is difference operator
+            a -= b # testing __isub__
+            self.assertEqual(d1, a)
+
+    def test13_symdifference(self):
+        "Testing sym_difference()."
+        for i in xrange(len(topology_geoms)):
+            g_tup = topology_geoms[i]
+            a = fromstr(g_tup[0].wkt)
+            b = fromstr(g_tup[1].wkt)
+            d1 = fromstr(sdiff_geoms[i].wkt)
+            d2 = a.sym_difference(b)
+            self.assertEqual(d1, d2)
+            self.assertEqual(d1, a ^ b) # __xor__ is symmetric difference operator
+            a ^= b # testing __ixor__
+            self.assertEqual(d1, a)
+
+    def test14_buffer(self):
+        "Testing buffer()."
+        for i in xrange(len(buffer_geoms)):
+            g_tup = buffer_geoms[i]
+            g = fromstr(g_tup[0].wkt)
+
+            # The buffer we expect
+            exp_buf = fromstr(g_tup[1].wkt)
+
+            # Can't use a floating-point for the number of quadsegs.
+            self.assertRaises(ArgumentError, g.buffer, g_tup[2], float(g_tup[3]))
+
+            # Constructing our buffer
+            buf = g.buffer(g_tup[2], g_tup[3])
+            self.assertEqual(exp_buf.num_coords, buf.num_coords)
+            self.assertEqual(len(exp_buf), len(buf))
+
+            # Now assuring that each point in the buffer is almost equal
+            for j in xrange(len(exp_buf)):
+                exp_ring = exp_buf[j]
+                buf_ring = buf[j]
+                self.assertEqual(len(exp_ring), len(buf_ring))
+                for k in xrange(len(exp_ring)):
+                    # Asserting the X, Y of each point are almost equal (due to floating point imprecision)
+                    self.assertAlmostEqual(exp_ring[k][0], buf_ring[k][0], 9)
+                    self.assertAlmostEqual(exp_ring[k][1], buf_ring[k][1], 9)
+
+    def test15_srid(self):
+        "Testing the SRID property and keyword."
+        # Testing SRID keyword on Point
+        pnt = Point(5, 23, srid=4326)
+        self.assertEqual(4326, pnt.srid)
+        pnt.srid = 3084
+        self.assertEqual(3084, pnt.srid)
+        self.assertRaises(ArgumentError, pnt.set_srid, '4326')
+
+        # Testing SRID keyword on fromstr(), and on Polygon rings.
+        poly = fromstr(polygons[1].wkt, srid=4269)
+        self.assertEqual(4269, poly.srid)
+        for ring in poly: self.assertEqual(4269, ring.srid)
+        poly.srid = 4326
+        self.assertEqual(4326, poly.shell.srid)
+
+        # Testing SRID keyword on GeometryCollection
+        gc = GeometryCollection(Point(5, 23), LineString((0, 0), (1.5, 1.5), (3, 3)), srid=32021)
+        self.assertEqual(32021, gc.srid)
+        for i in range(len(gc)): self.assertEqual(32021, gc[i].srid)
+
+        # GEOS may get the SRID from HEXEWKB
+        # 'POINT(5 23)' at SRID=4326 in hex form -- obtained from PostGIS
+        # using `SELECT GeomFromText('POINT (5 23)', 4326);`.
+        hex = '0101000020E610000000000000000014400000000000003740'
+        p1 = fromstr(hex)
+        self.assertEqual(4326, p1.srid)
+
+        # In GEOS 3.0.0rc1-4  when the EWKB and/or HEXEWKB is exported,
+        # the SRID information is lost and set to -1 -- this is not a
+        # problem on the 3.0.0 version (another reason to upgrade).  
+        exp_srid = self.null_srid
+
+        p2 = fromstr(p1.hex)
+        self.assertEqual(exp_srid, p2.srid)
+        p3 = fromstr(p1.hex, srid=-1) # -1 is intended.
+        self.assertEqual(-1, p3.srid)
+
+    def test16_mutable_geometries(self):
+        "Testing the mutability of Polygons and Geometry Collections."
+        ### Testing the mutability of Polygons ###
+        for p in polygons:
+            poly = fromstr(p.wkt)
+
+            # Should only be able to use __setitem__ with LinearRing geometries.
+            self.assertRaises(TypeError, poly.__setitem__, 0, LineString((1, 1), (2, 2)))
+
+            # Constructing the new shell by adding 500 to every point in the old shell.
+            shell_tup = poly.shell.tuple
+            new_coords = []
+            for point in shell_tup: new_coords.append((point[0] + 500., point[1] + 500.))
+            new_shell = LinearRing(*tuple(new_coords))
+
+            # Assigning polygon's exterior ring w/the new shell
+            poly.exterior_ring = new_shell
+            s = str(new_shell) # new shell is still accessible
+            self.assertEqual(poly.exterior_ring, new_shell)
+            self.assertEqual(poly[0], new_shell)
+
+        ### Testing the mutability of Geometry Collections
+        for tg in multipoints:
+            mp = fromstr(tg.wkt)
+            for i in range(len(mp)):
+                # Creating a random point.
+                pnt = mp[i]
+                new = Point(random.randint(1, 100), random.randint(1, 100))
+                # Testing the assignment
+                mp[i] = new
+                s = str(new) # what was used for the assignment is still accessible
+                self.assertEqual(mp[i], new)
+                self.assertEqual(mp[i].wkt, new.wkt)
+                self.assertNotEqual(pnt, mp[i])
+
+        # MultiPolygons involve much more memory management because each
+        # Polygon w/in the collection has its own rings.
+        for tg in multipolygons:
+            mpoly = fromstr(tg.wkt)
+            for i in xrange(len(mpoly)):
+                poly = mpoly[i]
+                old_poly = mpoly[i]
+                # Offsetting the each ring in the polygon by 500.
+                for j in xrange(len(poly)):
+                    r = poly[j]
+                    for k in xrange(len(r)): r[k] = (r[k][0] + 500., r[k][1] + 500.)
+                    poly[j] = r
+                
+                self.assertNotEqual(mpoly[i], poly)
+                # Testing the assignment
+                mpoly[i] = poly
+                s = str(poly) # Still accessible
+                self.assertEqual(mpoly[i], poly)
+                self.assertNotEqual(mpoly[i], old_poly)
+
+        # Extreme (!!) __setitem__ -- no longer works, have to detect
+        # in the first object that __setitem__ is called in the subsequent
+        # objects -- maybe mpoly[0, 0, 0] = (3.14, 2.71)?
+        #mpoly[0][0][0] = (3.14, 2.71)
+        #self.assertEqual((3.14, 2.71), mpoly[0][0][0])
+        # Doing it more slowly..
+        #self.assertEqual((3.14, 2.71), mpoly[0].shell[0])
+        #del mpoly
+    
+    def test17_threed(self):
+        "Testing three-dimensional geometries."
+        # Testing a 3D Point
+        pnt = Point(2, 3, 8)
+        self.assertEqual((2.,3.,8.), pnt.coords)
+        self.assertRaises(TypeError, pnt.set_coords, (1.,2.))
+        pnt.coords = (1.,2.,3.)
+        self.assertEqual((1.,2.,3.), pnt.coords)
+
+        # Testing a 3D LineString
+        ls = LineString((2., 3., 8.), (50., 250., -117.))
+        self.assertEqual(((2.,3.,8.), (50.,250.,-117.)), ls.tuple)
+        self.assertRaises(TypeError, ls.__setitem__, 0, (1.,2.))
+        ls[0] = (1.,2.,3.)
+        self.assertEqual((1.,2.,3.), ls[0])
+            
+    def test18_distance(self):
+        "Testing the distance() function."
+        # Distance to self should be 0. 
+        pnt = Point(0, 0)
+        self.assertEqual(0.0, pnt.distance(Point(0, 0)))
+    
+        # Distance should be 1
+        self.assertEqual(1.0, pnt.distance(Point(0, 1)))
+
+        # Distance should be ~ sqrt(2)
+        self.assertAlmostEqual(1.41421356237, pnt.distance(Point(1, 1)), 11)
+
+        # Distances are from the closest vertex in each geometry --
+        #  should be 3 (distance from (2, 2) to (5, 2)).
+        ls1 = LineString((0, 0), (1, 1), (2, 2))
+        ls2 = LineString((5, 2), (6, 1), (7, 0))
+        self.assertEqual(3, ls1.distance(ls2))
+
+    def test19_length(self):
+        "Testing the length property."
+        # Points have 0 length.
+        pnt = Point(0, 0)
+        self.assertEqual(0.0, pnt.length)
+        
+        # Should be ~ sqrt(2)
+        ls = LineString((0, 0), (1, 1))
+        self.assertAlmostEqual(1.41421356237, ls.length, 11)
+
+        # Should be circumfrence of Polygon
+        poly = Polygon(LinearRing((0, 0), (0, 1), (1, 1), (1, 0), (0, 0)))
+        self.assertEqual(4.0, poly.length)
+
+        # Should be sum of each element's length in collection.
+        mpoly = MultiPolygon(poly.clone(), poly)
+        self.assertEqual(8.0, mpoly.length)
+
+    def test20_emptyCollections(self):
+        "Testing empty geometries and collections."
+        gc1 = GeometryCollection([])
+        gc2 = fromstr('GEOMETRYCOLLECTION EMPTY')
+        pnt = fromstr('POINT EMPTY')
+        ls = fromstr('LINESTRING EMPTY')
+        poly = fromstr('POLYGON EMPTY')
+        mls = fromstr('MULTILINESTRING EMPTY')
+        mpoly1 = fromstr('MULTIPOLYGON EMPTY')
+        mpoly2 = MultiPolygon(())
+
+        for g in [gc1, gc2, pnt, ls, poly, mls, mpoly1, mpoly2]:
+            self.assertEqual(True, g.empty)
+
+            # Testing len() and num_geom.
+            if isinstance(g, Polygon):
+                self.assertEqual(1, len(g)) # Has one empty linear ring
+                self.assertEqual(1, g.num_geom)
+                self.assertEqual(0, len(g[0]))
+            elif isinstance(g, (Point, LineString)):
+                self.assertEqual(1, g.num_geom)
+                self.assertEqual(0, len(g))
+            else:
+                self.assertEqual(0, g.num_geom)
+                self.assertEqual(0, len(g))
+
+            # Testing __getitem__ (doesn't work on Point or Polygon)
+            if isinstance(g, Point):
+                self.assertRaises(GEOSIndexError, g.get_x)
+            elif isinstance(g, Polygon):
+                lr = g.shell
+                self.assertEqual('LINEARRING EMPTY', lr.wkt)
+                self.assertEqual(0, len(lr))
+                self.assertEqual(True, lr.empty)
+                self.assertRaises(GEOSIndexError, lr.__getitem__, 0)
+            else:
+                self.assertRaises(GEOSIndexError, g.__getitem__, 0)
+
+    def test21_test_gdal(self):
+        "Testing `ogr` and `srs` properties."
+        if not HAS_GDAL: return
+        g1 = fromstr('POINT(5 23)')
+        self.assertEqual(True, isinstance(g1.ogr, OGRGeometry))
+        self.assertEqual(g1.srs, None)
+        
+        g2 = fromstr('LINESTRING(0 0, 5 5, 23 23)', srid=4326)
+        self.assertEqual(True, isinstance(g2.ogr, OGRGeometry))
+        self.assertEqual(True, isinstance(g2.srs, SpatialReference))
+        self.assertEqual(g2.hex, g2.ogr.hex)
+        self.assertEqual('WGS 84', g2.srs.name)
+
+    def test22_copy(self):
+        "Testing use with the Python `copy` module."
+        import copy
+        poly = GEOSGeometry('POLYGON((0 0, 0 23, 23 23, 23 0, 0 0), (5 5, 5 10, 10 10, 10 5, 5 5))')
+        cpy1 = copy.copy(poly)
+        cpy2 = copy.deepcopy(poly)
+        self.assertNotEqual(poly._ptr, cpy1._ptr)
+        self.assertNotEqual(poly._ptr, cpy2._ptr)
+
+    def test23_transform(self):
+        "Testing `transform` method."
+        if not HAS_GDAL: return
+        orig = GEOSGeometry('POINT (-104.609 38.255)', 4326)
+        trans = GEOSGeometry('POINT (992385.4472045 481455.4944650)', 2774)
+
+        # Using a srid, a SpatialReference object, and a CoordTransform object
+        # for transformations.
+        t1, t2, t3 = orig.clone(), orig.clone(), orig.clone()
+        t1.transform(trans.srid)
+        t2.transform(SpatialReference('EPSG:2774'))
+        ct = CoordTransform(SpatialReference('WGS84'), SpatialReference(2774))
+        t3.transform(ct)
+
+        # Testing use of the `clone` keyword.
+        k1 = orig.clone()
+        k2 = k1.transform(trans.srid, clone=True)
+        self.assertEqual(k1, orig)
+        self.assertNotEqual(k1, k2)
+
+        prec = 3
+        for p in (t1, t2, t3, k2):
+            self.assertAlmostEqual(trans.x, p.x, prec)
+            self.assertAlmostEqual(trans.y, p.y, prec)
+
+    def test24_extent(self):
+        "Testing `extent` method."
+        # The xmin, ymin, xmax, ymax of the MultiPoint should be returned.
+        mp = MultiPoint(Point(5, 23), Point(0, 0), Point(10, 50))
+        self.assertEqual((0.0, 0.0, 10.0, 50.0), mp.extent)
+        pnt = Point(5.23, 17.8)
+        # Extent of points is just the point itself repeated.
+        self.assertEqual((5.23, 17.8, 5.23, 17.8), pnt.extent)
+        # Testing on the 'real world' Polygon.
+        poly = fromstr(polygons[3].wkt)
+        ring = poly.shell
+        x, y = ring.x, ring.y
+        xmin, ymin = min(x), min(y)
+        xmax, ymax = max(x), max(y)
+        self.assertEqual((xmin, ymin, xmax, ymax), poly.extent)
+
+    def test25_pickle(self):
+        "Testing pickling and unpickling support."
+        # Using both pickle and cPickle -- just 'cause.
+        import pickle, cPickle
+
+        # Creating a list of test geometries for pickling, 
+        # and setting the SRID on some of them.
+        def get_geoms(lst, srid=None):
+            return [GEOSGeometry(tg.wkt, srid) for tg in lst]
+        tgeoms = get_geoms(points)
+        tgeoms.extend(get_geoms(multilinestrings, 4326))
+        tgeoms.extend(get_geoms(polygons, 3084))
+        tgeoms.extend(get_geoms(multipolygons, 900913))
+
+        # The SRID won't be exported in GEOS 3.0 release candidates.
+        no_srid = self.null_srid == -1 
+        for geom in tgeoms:
+            s1, s2 = cPickle.dumps(geom), pickle.dumps(geom)
+            g1, g2 = cPickle.loads(s1), pickle.loads(s2)
+            for tmpg in (g1, g2):
+                self.assertEqual(geom, tmpg)
+                if not no_srid: self.assertEqual(geom.srid, tmpg.srid)
+
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(GEOSTest))
+    return s
+
+def run(verbosity=2):
+    unittest.TextTestRunner(verbosity=verbosity).run(suite())
diff --git a/webapp/django/contrib/gis/tests/test_measure.py b/webapp/django/contrib/gis/tests/test_measure.py
new file mode 100644
index 0000000..43bc8ae
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_measure.py
@@ -0,0 +1,333 @@
+"""
+Distance and Area objects to allow for sensible and convienient calculation 
+and conversions. Here are some tests.
+"""
+
+import unittest
+from django.contrib.gis.measure import Distance, Area, D, A
+
+class DistanceTest(unittest.TestCase):
+    "Testing the Distance object"
+
+    def testInit(self):
+        "Testing initialisation from valid units"
+        d = Distance(m=100)
+        self.assertEqual(d.m, 100)
+
+        d1, d2, d3 = D(m=100), D(meter=100), D(metre=100)
+        for d in (d1, d2, d3):
+            self.assertEqual(d.m, 100)
+
+        d = D(nm=100)
+        self.assertEqual(d.m, 185200)
+
+        y1, y2, y3 = D(yd=100), D(yard=100), D(Yard=100)
+        for d in (y1, y2, y3):
+            self.assertEqual(d.yd, 100)
+
+        mm1, mm2 = D(millimeter=1000), D(MiLLiMeTeR=1000)
+        for d in (mm1, mm2):
+            self.assertEqual(d.m, 1.0)
+            self.assertEqual(d.mm, 1000.0)
+
+    
+    def testInitInvalid(self):
+        "Testing initialisation from invalid units"
+        self.assertRaises(AttributeError, D, banana=100)
+
+    def testAccess(self):
+        "Testing access in different units"
+        d = D(m=100)
+        self.assertEqual(d.km, 0.1)
+        self.assertAlmostEqual(d.ft, 328.084, 3)
+    
+    def testAccessInvalid(self):
+        "Testing access in invalid units"
+        d = D(m=100)
+        self.failIf(hasattr(d, 'banana'))
+
+    def testAddition(self):
+        "Test addition & subtraction"
+        d1 = D(m=100)
+        d2 = D(m=200)
+
+        d3 = d1 + d2
+        self.assertEqual(d3.m, 300)
+        d3 += d1
+        self.assertEqual(d3.m, 400)
+        
+        d4 = d1 - d2
+        self.assertEqual(d4.m, -100)
+        d4 -= d1
+        self.assertEqual(d4.m, -200)
+        
+        try:
+            d5 = d1 + 1
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Distance + number should raise TypeError')
+
+        try:
+            d5 = d1 - 1
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Distance - number should raise TypeError')
+
+        try:
+            d1 += 1
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Distance += number should raise TypeError')
+
+        try:
+            d1 -= 1
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Distance -= number should raise TypeError')
+            
+    def testMultiplication(self):
+        "Test multiplication & division"
+        d1 = D(m=100)
+
+        d3 = d1 * 2
+        self.assertEqual(d3.m, 200)
+        d3 *= 5
+        self.assertEqual(d3.m, 1000)
+        
+        d4 = d1 / 2
+        self.assertEqual(d4.m, 50)
+        d4 /= 5
+        self.assertEqual(d4.m, 10)
+        
+        a5 = d1 * D(m=10)
+        self.assert_(isinstance(a5, Area))
+        self.assertEqual(a5.sq_m, 100*10)
+
+        try:
+            d1 *= D(m=1)
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Distance *= Distance should raise TypeError')
+            
+        try:
+            d5 = d1 / D(m=1)
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Distance / Distance should raise TypeError')
+
+        try:
+            d1 /= D(m=1)
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Distance /= Distance should raise TypeError')
+
+    def testUnitConversions(self):
+        "Testing default units during maths"
+        d1 = D(m=100)
+        d2 = D(km=1)
+
+        d3 = d1 + d2
+        self.assertEqual(d3._default_unit, 'm')
+        d4 = d2 + d1
+        self.assertEqual(d4._default_unit, 'km')
+        d5 = d1 * 2
+        self.assertEqual(d5._default_unit, 'm')
+        d6 = d1 / 2
+        self.assertEqual(d6._default_unit, 'm')
+    
+    def testComparisons(self):
+        "Testing comparisons"
+        d1 = D(m=100)
+        d2 = D(km=1)
+        d3 = D(km=0)
+        
+        self.assert_(d2 > d1)
+        self.assert_(d1 == d1)
+        self.assert_(d1 < d2)
+        self.failIf(d3)
+        
+    def testUnitsStr(self):
+        "Testing conversion to strings"
+        d1 = D(m=100)
+        d2 = D(km=3.5)
+        
+        self.assertEqual(str(d1), '100.0 m')
+        self.assertEqual(str(d2), '3.5 km')
+        self.assertEqual(repr(d1), 'Distance(m=100.0)')
+        self.assertEqual(repr(d2), 'Distance(km=3.5)')
+
+    def testUnitAttName(self):
+        "Testing the `unit_attname` class method"
+        unit_tuple = [('Yard', 'yd'), ('Nautical Mile', 'nm'), ('German legal metre', 'german_m'),
+                      ('Indian yard', 'indian_yd'), ('Chain (Sears)', 'chain_sears'), ('Chain', 'chain')]
+        for nm, att in unit_tuple:
+            self.assertEqual(att, D.unit_attname(nm))
+
+class AreaTest(unittest.TestCase):
+    "Testing the Area object"
+
+    def testInit(self):
+        "Testing initialisation from valid units"
+        a = Area(sq_m=100)
+        self.assertEqual(a.sq_m, 100)
+
+        a = A(sq_m=100)
+        self.assertEqual(a.sq_m, 100)
+
+        a = A(sq_mi=100)
+        self.assertEqual(a.sq_m, 258998811.0336)
+    
+    def testInitInvaliA(self):
+        "Testing initialisation from invalid units"
+        self.assertRaises(AttributeError, A, banana=100)
+
+    def testAccess(self):
+        "Testing access in different units"
+        a = A(sq_m=100)
+        self.assertEqual(a.sq_km, 0.0001)
+        self.assertAlmostEqual(a.sq_ft, 1076.391, 3)
+    
+    def testAccessInvaliA(self):
+        "Testing access in invalid units"
+        a = A(sq_m=100)
+        self.failIf(hasattr(a, 'banana'))
+
+    def testAddition(self):
+        "Test addition & subtraction"
+        a1 = A(sq_m=100)
+        a2 = A(sq_m=200)
+
+        a3 = a1 + a2
+        self.assertEqual(a3.sq_m, 300)
+        a3 += a1
+        self.assertEqual(a3.sq_m, 400)
+        
+        a4 = a1 - a2
+        self.assertEqual(a4.sq_m, -100)
+        a4 -= a1
+        self.assertEqual(a4.sq_m, -200)
+        
+        try:
+            a5 = a1 + 1
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Area + number should raise TypeError')
+
+        try:
+            a5 = a1 - 1
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Area - number should raise TypeError')
+
+        try:
+            a1 += 1
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Area += number should raise TypeError')
+
+        try:
+            a1 -= 1
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Area -= number should raise TypeError')
+            
+    def testMultiplication(self):
+        "Test multiplication & division"
+        a1 = A(sq_m=100)
+
+        a3 = a1 * 2
+        self.assertEqual(a3.sq_m, 200)
+        a3 *= 5
+        self.assertEqual(a3.sq_m, 1000)
+        
+        a4 = a1 / 2
+        self.assertEqual(a4.sq_m, 50)
+        a4 /= 5
+        self.assertEqual(a4.sq_m, 10)
+        
+        try:
+            a5 = a1 * A(sq_m=1)
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Area * Area should raise TypeError')
+
+        try:
+            a1 *= A(sq_m=1)
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Area *= Area should raise TypeError')
+            
+        try:
+            a5 = a1 / A(sq_m=1)
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Area / Area should raise TypeError')
+
+        try:
+            a1 /= A(sq_m=1)
+        except TypeError, e:
+            pass
+        else:
+            self.fail('Area /= Area should raise TypeError')
+
+    def testUnitConversions(self):
+        "Testing default units during maths"
+        a1 = A(sq_m=100)
+        a2 = A(sq_km=1)
+
+        a3 = a1 + a2
+        self.assertEqual(a3._default_unit, 'sq_m')
+        a4 = a2 + a1
+        self.assertEqual(a4._default_unit, 'sq_km')
+        a5 = a1 * 2
+        self.assertEqual(a5._default_unit, 'sq_m')
+        a6 = a1 / 2
+        self.assertEqual(a6._default_unit, 'sq_m')
+    
+    def testComparisons(self):
+        "Testing comparisons"
+        a1 = A(sq_m=100)
+        a2 = A(sq_km=1)
+        a3 = A(sq_km=0)
+        
+        self.assert_(a2 > a1)
+        self.assert_(a1 == a1)
+        self.assert_(a1 < a2)
+        self.failIf(a3)
+        
+    def testUnitsStr(self):
+        "Testing conversion to strings"
+        a1 = A(sq_m=100)
+        a2 = A(sq_km=3.5)
+        
+        self.assertEqual(str(a1), '100.0 sq_m')
+        self.assertEqual(str(a2), '3.5 sq_km')
+        self.assertEqual(repr(a1), 'Area(sq_m=100.0)')
+        self.assertEqual(repr(a2), 'Area(sq_km=3.5)')
+
+        
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(DistanceTest))
+    s.addTest(unittest.makeSuite(AreaTest))
+    return s
+
+def run(verbosity=2):
+    unittest.TextTestRunner(verbosity=verbosity).run(suite())
+
+if __name__=="__main__":
+    run()
diff --git a/webapp/django/contrib/gis/tests/test_spatialrefsys.py b/webapp/django/contrib/gis/tests/test_spatialrefsys.py
new file mode 100644
index 0000000..0b133a1
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/test_spatialrefsys.py
@@ -0,0 +1,90 @@
+import unittest
+from django.contrib.gis.tests.utils import mysql, no_mysql, oracle, postgis
+if not mysql:
+    from django.contrib.gis.models import SpatialRefSys
+
+test_srs = ({'srid' : 4326,
+             'auth_name' : ('EPSG', True),
+             'auth_srid' : 4326,
+             'srtext' : 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]',
+             'proj4' : '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ',
+             'spheroid' : 'WGS 84', 'name' : 'WGS 84', 
+             'geographic' : True, 'projected' : False,
+             'ellipsoid' : (6378137.0, 6356752.3, 298.257223563), # From proj's "cs2cs -le" and Wikipedia (semi-minor only)
+             'eprec' : (1, 1, 9),
+             },
+            {'srid' : 32140,
+             'auth_name' : ('EPSG', False),
+             'auth_srid' : 32140,
+             'srtext' : 'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","32140"]]',
+             'proj4' : '+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs ',
+             'spheroid' : 'GRS 1980', 'name' : 'NAD83 / Texas South Central',
+             'geographic' : False, 'projected' : True,
+             'ellipsoid' : (6378137.0, 6356752.31414, 298.257222101), # From proj's "cs2cs -le" and Wikipedia (semi-minor only)
+             'eprec' : (1, 5, 10),
+             },
+            )
+
+class SpatialRefSysTest(unittest.TestCase):
+
+    @no_mysql
+    def test01_retrieve(self):
+        "Testing retrieval of SpatialRefSys model objects."
+        for sd in test_srs:
+            srs = SpatialRefSys.objects.get(srid=sd['srid'])
+            self.assertEqual(sd['srid'], srs.srid)
+
+            # Some of the authority names are borked on Oracle, e.g., SRID=32140.
+            #  also, Oracle Spatial seems to add extraneous info to fields, hence the
+            #  the testing with the 'startswith' flag.
+            auth_name, oracle_flag = sd['auth_name']
+            if postgis or (oracle and oracle_flag):
+                self.assertEqual(True, srs.auth_name.startswith(auth_name))
+                
+            self.assertEqual(sd['auth_srid'], srs.auth_srid)
+
+            # No proj.4 and different srtext on oracle backends :(
+            if postgis:
+                self.assertEqual(sd['srtext'], srs.wkt)
+                self.assertEqual(sd['proj4'], srs.proj4text)
+
+    @no_mysql
+    def test02_osr(self):
+        "Testing getting OSR objects from SpatialRefSys model objects."
+        for sd in test_srs:
+            sr = SpatialRefSys.objects.get(srid=sd['srid'])
+            self.assertEqual(True, sr.spheroid.startswith(sd['spheroid']))
+            self.assertEqual(sd['geographic'], sr.geographic)
+            self.assertEqual(sd['projected'], sr.projected)
+            self.assertEqual(True, sr.name.startswith(sd['name']))
+
+            # Testing the SpatialReference object directly.
+            if postgis:
+                srs = sr.srs
+                self.assertEqual(sd['proj4'], srs.proj4)
+                self.assertEqual(sd['srtext'], srs.wkt)
+
+    @no_mysql
+    def test03_ellipsoid(self):
+        "Testing the ellipsoid property."
+        for sd in test_srs:
+            # Getting the ellipsoid and precision parameters.
+            ellps1 = sd['ellipsoid']
+            prec = sd['eprec']
+
+            # Getting our spatial reference and its ellipsoid
+            srs = SpatialRefSys.objects.get(srid=sd['srid'])
+            ellps2 = srs.ellipsoid
+
+            for i in range(3):
+                param1 = ellps1[i]
+                param2 = ellps2[i]
+                self.assertAlmostEqual(ellps1[i], ellps2[i], prec[i])
+
+def suite():
+    s = unittest.TestSuite()
+    s.addTest(unittest.makeSuite(SpatialRefSysTest))
+    return s
+
+def run(verbosity=2):
+    unittest.TextTestRunner(verbosity=verbosity).run(suite())
diff --git a/webapp/django/contrib/gis/tests/urls.py b/webapp/django/contrib/gis/tests/urls.py
new file mode 100644
index 0000000..95e36c2
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/urls.py
@@ -0,0 +1,6 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('',
+                       (r'^geoapp/', include('django.contrib.gis.tests.geoapp.urls')),
+                       )
+                        
diff --git a/webapp/django/contrib/gis/tests/utils.py b/webapp/django/contrib/gis/tests/utils.py
new file mode 100644
index 0000000..0b368f1
--- /dev/null
+++ b/webapp/django/contrib/gis/tests/utils.py
@@ -0,0 +1,22 @@
+from django.conf import settings
+
+# function that will pass a test.
+def pass_test(*args): return
+
+def no_backend(test_func, backend):
+    "Use this decorator to disable test on specified backend."
+    if settings.DATABASE_ENGINE == backend:
+        return pass_test
+    else:
+        return test_func
+
+# Decorators to disable entire test functions for specific
+# spatial backends.
+def no_oracle(func): return no_backend(func, 'oracle')
+def no_postgis(func): return no_backend(func, 'postgresql_psycopg2')
+def no_mysql(func): return no_backend(func, 'mysql')
+
+# Shortcut booleans to omit only portions of tests.
+oracle  = settings.DATABASE_ENGINE == 'oracle'
+postgis = settings.DATABASE_ENGINE == 'postgresql_psycopg2' 
+mysql   = settings.DATABASE_ENGINE == 'mysql'
diff --git a/webapp/django/contrib/gis/utils/__init__.py b/webapp/django/contrib/gis/utils/__init__.py
new file mode 100644
index 0000000..2c9f2f3
--- /dev/null
+++ b/webapp/django/contrib/gis/utils/__init__.py
@@ -0,0 +1,25 @@
+"""
+ This module contains useful utilities for GeoDjango.
+"""
+# Importing the utilities that depend on GDAL, if available.
+from django.contrib.gis.gdal import HAS_GDAL
+if HAS_GDAL:
+    from django.contrib.gis.utils.ogrinfo import ogrinfo, sample
+    from django.contrib.gis.utils.ogrinspect import mapping, ogrinspect
+    from django.contrib.gis.utils.srs import add_postgis_srs
+    try:
+        # LayerMapping requires DJANGO_SETTINGS_MODULE to be set, 
+        # so this needs to be in try/except.
+        from django.contrib.gis.utils.layermapping import LayerMapping
+    except:
+        pass
+    
+# Attempting to import the GeoIP class.
+try:
+    from django.contrib.gis.utils.geoip import GeoIP, GeoIPException
+    HAS_GEOIP = True
+except:
+    HAS_GEOIP = False
+
+from django.contrib.gis.utils.wkt import precision_wkt
+
diff --git a/webapp/django/contrib/gis/utils/geoip.py b/webapp/django/contrib/gis/utils/geoip.py
new file mode 100644
index 0000000..4d163aa
--- /dev/null
+++ b/webapp/django/contrib/gis/utils/geoip.py
@@ -0,0 +1,344 @@
+"""
+ This module houses the GeoIP object, a ctypes wrapper for the MaxMind GeoIP(R)
+ C API (http://www.maxmind.com/app/c).  This is an alternative to the GPL
+ licensed Python GeoIP interface provided by MaxMind.
+
+ GeoIP(R) is a registered trademark of MaxMind, LLC of Boston, Massachusetts.
+
+ For IP-based geolocation, this module requires the GeoLite Country and City
+ datasets, in binary format (CSV will not work!).  The datasets may be 
+ downloaded from MaxMind at http://www.maxmind.com/download/geoip/database/.
+ Grab GeoIP.dat.gz and GeoLiteCity.dat.gz, and unzip them in the directory
+ corresponding to settings.GEOIP_PATH.  See the GeoIP docstring and examples
+ below for more details.
+
+ TODO: Verify compatibility with Windows.
+
+ Example:
+
+ >>> from django.contrib.gis.utils import GeoIP
+ >>> g = GeoIP()
+ >>> g.country('google.com')
+ {'country_code': 'US', 'country_name': 'United States'}
+ >>> g.city('72.14.207.99')
+ {'area_code': 650,
+ 'city': 'Mountain View',
+ 'country_code': 'US',
+ 'country_code3': 'USA',
+ 'country_name': 'United States',
+ 'dma_code': 807,
+ 'latitude': 37.419200897216797,
+ 'longitude': -122.05740356445312,
+ 'postal_code': '94043',
+ 'region': 'CA'}
+ >>> g.lat_lon('salon.com')
+ (37.789798736572266, -122.39420318603516)
+ >>> g.lon_lat('uh.edu')
+ (-95.415199279785156, 29.77549934387207) 
+ >>> g.geos('24.124.1.80').wkt
+ 'POINT (-95.2087020874023438 39.0392990112304688)'
+"""
+import os, re
+from ctypes import c_char_p, c_float, c_int, Structure, CDLL, POINTER
+from ctypes.util import find_library
+from django.conf import settings
+if not settings._target: settings.configure()
+
+# Creating the settings dictionary with any settings, if needed.
+GEOIP_SETTINGS = dict((key, getattr(settings, key)) 
+                      for key in ('GEOIP_PATH', 'GEOIP_LIBRARY_PATH', 'GEOIP_COUNTRY', 'GEOIP_CITY')
+                      if hasattr(settings, key))
+lib_path = GEOIP_SETTINGS.get('GEOIP_LIBRARY_PATH', None)
+
+# GeoIP Exception class.
+class GeoIPException(Exception): pass
+
+# The shared library for the GeoIP C API.  May be downloaded
+#  from http://www.maxmind.com/download/geoip/api/c/
+if lib_path:
+    lib_name = None
+else:
+    # TODO: Is this really the library name for Windows?
+    lib_name = 'GeoIP'
+
+# Getting the path to the GeoIP library.
+if lib_name: lib_path = find_library(lib_name)
+if lib_path is None: raise GeoIPException('Could not find the GeoIP library (tried "%s"). '
+                                          'Try setting GEOIP_LIBRARY_PATH in your settings.' % lib_name)
+lgeoip = CDLL(lib_path)
+
+# Regular expressions for recognizing IP addresses and the GeoIP
+# free database editions.
+ipregex = re.compile(r'^(?P<w>\d\d?\d?)\.(?P<x>\d\d?\d?)\.(?P<y>\d\d?\d?)\.(?P<z>\d\d?\d?)$')
+free_regex = re.compile(r'^GEO-\d{3}FREE')
+lite_regex = re.compile(r'^GEO-\d{3}LITE')
+
+#### GeoIP C Structure definitions ####
+class GeoIPRecord(Structure):
+    _fields_ = [('country_code', c_char_p),
+                ('country_code3', c_char_p),
+                ('country_name', c_char_p),
+                ('region', c_char_p),
+                ('city', c_char_p),
+                ('postal_code', c_char_p),
+                ('latitude', c_float),
+                ('longitude', c_float),
+                ('dma_code', c_int),
+                ('area_code', c_int),
+                ]
+class GeoIPTag(Structure): pass
+
+#### ctypes function prototypes ####
+RECTYPE = POINTER(GeoIPRecord)
+DBTYPE = POINTER(GeoIPTag)
+
+# For retrieving records by name or address.
+def record_output(func):
+    func.restype = RECTYPE
+    return func
+rec_by_addr = record_output(lgeoip.GeoIP_record_by_addr)
+rec_by_name = record_output(lgeoip.GeoIP_record_by_name)
+
+# For opening up GeoIP databases.
+geoip_open = lgeoip.GeoIP_open
+geoip_open.restype = DBTYPE
+
+# String output routines.
+def string_output(func):
+    func.restype = c_char_p
+    return func
+geoip_dbinfo = string_output(lgeoip.GeoIP_database_info)
+cntry_code_by_addr = string_output(lgeoip.GeoIP_country_code_by_addr)
+cntry_code_by_name = string_output(lgeoip.GeoIP_country_code_by_name)
+cntry_name_by_addr = string_output(lgeoip.GeoIP_country_name_by_addr)
+cntry_name_by_name = string_output(lgeoip.GeoIP_country_name_by_name)
+
+#### GeoIP class ####
+class GeoIP(object):
+    # The flags for GeoIP memory caching.
+    # GEOIP_STANDARD - read database from filesystem, uses least memory.
+    #
+    # GEOIP_MEMORY_CACHE - load database into memory, faster performance
+    #        but uses more memory
+    #
+    # GEOIP_CHECK_CACHE - check for updated database.  If database has been updated,
+    #        reload filehandle and/or memory cache.
+    #
+    # GEOIP_INDEX_CACHE - just cache
+    #        the most frequently accessed index portion of the database, resulting
+    #        in faster lookups than GEOIP_STANDARD, but less memory usage than
+    #        GEOIP_MEMORY_CACHE - useful for larger databases such as
+    #        GeoIP Organization and GeoIP City.  Note, for GeoIP Country, Region
+    #        and Netspeed databases, GEOIP_INDEX_CACHE is equivalent to GEOIP_MEMORY_CACHE
+    #
+    GEOIP_STANDARD = 0
+    GEOIP_MEMORY_CACHE = 1
+    GEOIP_CHECK_CACHE = 2
+    GEOIP_INDEX_CACHE = 4
+    cache_options = dict((opt, None) for opt in (0, 1, 2, 4))
+
+    def __init__(self, path=None, cache=0, country=None, city=None):
+        """
+        Initializes the GeoIP object, no parameters are required to use default
+        settings.  Keyword arguments may be passed in to customize the locations
+        of the GeoIP data sets.
+
+        * path: Base directory to where GeoIP data is located or the full path
+            to where the city or country data files (*.dat) are located.
+            Assumes that both the city and country data sets are located in
+            this directory; overrides the GEOIP_PATH settings attribute.
+
+        * cache: The cache settings when opening up the GeoIP datasets,
+            and may be an integer in (0, 1, 2, 4) corresponding to
+            the GEOIP_STANDARD, GEOIP_MEMORY_CACHE, GEOIP_CHECK_CACHE,
+            and GEOIP_INDEX_CACHE `GeoIPOptions` C API settings,
+            respectively.  Defaults to 0, meaning that the data is read
+            from the disk.
+
+        * country: The name of the GeoIP country data file.  Defaults to
+            'GeoIP.dat'; overrides the GEOIP_COUNTRY settings attribute.
+
+        * city: The name of the GeoIP city data file.  Defaults to
+            'GeoLiteCity.dat'; overrides the GEOIP_CITY settings attribute.
+        """
+        # Checking the given cache option.
+        if cache in self.cache_options:
+            self._cache = self.cache_options[cache]
+        else:
+            raise GeoIPException('Invalid caching option: %s' % cache)
+
+        # Getting the GeoIP data path.
+        if not path:
+            path = GEOIP_SETTINGS.get('GEOIP_PATH', None)
+            if not path: raise GeoIPException('GeoIP path must be provided via parameter or the GEOIP_PATH setting.')
+        if not isinstance(path, basestring):
+            raise TypeError('Invalid path type: %s' % type(path).__name__)
+
+        cntry_ptr, city_ptr = (None, None)
+        if os.path.isdir(path):
+            # Getting the country and city files using the settings
+            # dictionary.  If no settings are provided, default names
+            # are assigned.
+            country = os.path.join(path, country or GEOIP_SETTINGS.get('GEOIP_COUNTRY', 'GeoIP.dat'))
+            city = os.path.join(path, city or GEOIP_SETTINGS.get('GEOIP_CITY', 'GeoLiteCity.dat'))
+        elif os.path.isfile(path):
+            # Otherwise, some detective work will be needed to figure
+            # out whether the given database path is for the GeoIP country
+            # or city databases.
+            ptr = geoip_open(path, cache)
+            info = geoip_dbinfo(ptr)
+            if lite_regex.match(info):
+                # GeoLite City database.
+                city, city_ptr = path, ptr
+            elif free_regex.match(info):
+                # GeoIP Country database.
+                country, cntry_ptr = path, ptr
+            else:
+                raise GeoIPException('Unable to recognize database edition: %s' % info)
+        else:
+            raise GeoIPException('GeoIP path must be a valid file or directory.')
+        
+        # `_init_db` does the dirty work.
+        self._init_db(country, cache, '_country', cntry_ptr)
+        self._init_db(city, cache, '_city', city_ptr)
+
+    def _init_db(self, db_file, cache, attname, ptr=None):
+        "Helper routine for setting GeoIP ctypes database properties."
+        if ptr:
+            # Pointer already retrieved.
+            pass
+        elif os.path.isfile(db_file or ''):
+            ptr = geoip_open(db_file, cache)
+        setattr(self, attname, ptr)
+        setattr(self, '%s_file' % attname, db_file)
+
+    def _check_query(self, query, country=False, city=False, city_or_country=False):
+        "Helper routine for checking the query and database availability."
+        # Making sure a string was passed in for the query.
+        if not isinstance(query, basestring):
+            raise TypeError('GeoIP query must be a string, not type %s' % type(query).__name__)
+
+        # Extra checks for the existence of country and city databases.
+        if city_or_country and self._country is None and self._city is None:
+            raise GeoIPException('Invalid GeoIP country and city data files.')
+        elif country and self._country is None:
+            raise GeoIPException('Invalid GeoIP country data file: %s' % self._country_file)
+        elif city and self._city is None:
+            raise GeoIPException('Invalid GeoIP city data file: %s' % self._city_file)
+
+    def city(self, query):
+        """
+        Returns a dictionary of city information for the given IP address or
+        Fully Qualified Domain Name (FQDN).  Some information in the dictionary
+        may be undefined (None).
+        """
+        self._check_query(query, city=True)
+        if ipregex.match(query):
+            # If an IP address was passed in
+            ptr = rec_by_addr(self._city, c_char_p(query))
+        else:
+            # If a FQDN was passed in.
+            ptr = rec_by_name(self._city, c_char_p(query))
+
+        # Checking the pointer to the C structure, if valid pull out elements
+        # into a dicionary and return.
+        if bool(ptr):
+            record = ptr.contents
+            return dict((tup[0], getattr(record, tup[0])) for tup in record._fields_)
+        else:
+            return None
+    
+    def country_code(self, query):
+        "Returns the country code for the given IP Address or FQDN."
+        self._check_query(query, city_or_country=True)
+        if self._country:
+            if ipregex.match(query): return cntry_code_by_addr(self._country, query)
+            else: return cntry_code_by_name(self._country, query)
+        else:
+            return self.city(query)['country_code']
+
+    def country_name(self, query):
+        "Returns the country name for the given IP Address or FQDN."
+        self._check_query(query, city_or_country=True)
+        if self._country:
+            if ipregex.match(query): return cntry_name_by_addr(self._country, query)
+            else: return cntry_name_by_name(self._country, query)
+        else:
+            return self.city(query)['country_name']
+
+    def country(self, query):
+        """
+        Returns a dictonary with with the country code and name when given an 
+        IP address or a Fully Qualified Domain Name (FQDN).  For example, both
+        '24.124.1.80' and 'djangoproject.com' are valid parameters.
+        """
+        # Returning the country code and name
+        return {'country_code' : self.country_code(query), 
+                'country_name' : self.country_name(query),
+                }
+
+    #### Coordinate retrieval routines ####
+    def coords(self, query, ordering=('longitude', 'latitude')):
+        cdict = self.city(query)
+        if cdict is None: return None
+        else: return tuple(cdict[o] for o in ordering)
+
+    def lon_lat(self, query):
+        "Returns a tuple of the (longitude, latitude) for the given query."
+        return self.coords(query)
+
+    def lat_lon(self, query):
+        "Returns a tuple of the (latitude, longitude) for the given query."
+        return self.coords(query, ('latitude', 'longitude'))
+
+    def geos(self, query):
+        "Returns a GEOS Point object for the given query."
+        ll = self.lon_lat(query)
+        if ll:
+            from django.contrib.gis.geos import Point
+            return Point(ll, srid=4326)
+        else:
+            return None
+
+    #### GeoIP Database Information Routines ####
+    def country_info(self):
+        "Returns information about the GeoIP country database."
+        if self._country is None:
+            ci = 'No GeoIP Country data in "%s"' % self._country_file
+        else:
+            ci = geoip_dbinfo(self._country)
+        return ci
+    country_info = property(country_info)
+
+    def city_info(self):
+        "Retuns information about the GeoIP city database."
+        if self._city is None:
+            ci = 'No GeoIP City data in "%s"' % self._city_file
+        else:
+            ci = geoip_dbinfo(self._city)
+        return ci
+    city_info = property(city_info)
+        
+    def info(self):
+        "Returns information about all GeoIP databases in use."
+        return 'Country:\n\t%s\nCity:\n\t%s' % (self.country_info, self.city_info)
+    info = property(info)
+
+    #### Methods for compatibility w/the GeoIP-Python API. ####
+    @classmethod
+    def open(cls, full_path, cache):
+        return GeoIP(full_path, cache)
+
+    def _rec_by_arg(self, arg):
+        if self._city:
+            return self.city(arg)
+        else:
+            return self.country(arg)
+    region_by_addr = city
+    region_by_name = city
+    record_by_addr = _rec_by_arg
+    record_by_name = _rec_by_arg
+    country_code_by_addr = country_code
+    country_code_by_name = country_code
+    country_name_by_addr = country_name
+    country_name_by_name = country_name
diff --git a/webapp/django/contrib/gis/utils/layermapping.py b/webapp/django/contrib/gis/utils/layermapping.py
new file mode 100644
index 0000000..40d2e97
--- /dev/null
+++ b/webapp/django/contrib/gis/utils/layermapping.py
@@ -0,0 +1,677 @@
+# LayerMapping -- A Django Model/OGR Layer Mapping Utility
+"""
+ The LayerMapping class provides a way to map the contents of OGR
+ vector files (e.g. SHP files) to Geographic-enabled Django models.
+
+ This grew out of my personal needs, specifically the code repetition
+ that went into pulling geometries and fields out of an OGR layer,
+ converting to another coordinate system (e.g. WGS84), and then inserting
+ into a GeoDjango model.
+
+ Please report any bugs encountered using this utility.
+
+ Requirements:  OGR C Library (from GDAL) required.
+
+ Usage: 
+  lm = LayerMapping(model, source_file, mapping) where,
+
+  model:
+   GeoDjango model (not an instance)
+
+  data:
+   OGR-supported data source file (e.g. a shapefile) or
+    gdal.DataSource instance
+
+  mapping:
+   A python dictionary, keys are strings corresponding
+   to the GeoDjango model field, and values correspond to
+   string field names for the OGR feature, or if the model field
+   is a geographic then it should correspond to the OGR
+   geometry type, e.g. 'POINT', 'LINESTRING', 'POLYGON'.
+
+ Keyword Args:
+  layer:
+   The index of the layer to use from the Data Source (defaults to 0)
+
+  source_srs:
+   Use this to specify the source SRS manually (for example, 
+   some shapefiles don't come with a '.prj' file).  An integer SRID,
+   a string WKT, and SpatialReference objects are valid parameters.
+
+  encoding:
+   Specifies the encoding of the string in the OGR data source.
+   For example, 'latin-1', 'utf-8', and 'cp437' are all valid
+   encoding parameters.
+
+  transaction_mode:
+   May be 'commit_on_success' (default) or 'autocommit'.
+
+  transform:
+   Setting this to False will disable all coordinate transformations.  
+
+  unique:
+   Setting this to the name, or a tuple of names, from the given
+   model will create models unique only to the given name(s).
+   Geometries will from each feature will be added into the collection
+   associated with the unique model.  Forces transaction mode to
+   be 'autocommit'.
+
+Example:
+
+ 1. You need a GDAL-supported data source, like a shapefile.
+
+  Assume we're using the test_poly SHP file:
+  >>> from django.contrib.gis.gdal import DataSource
+  >>> ds = DataSource('test_poly.shp')
+  >>> layer = ds[0]
+  >>> print layer.fields # Exploring the fields in the layer, we only want the 'str' field.
+  ['float', 'int', 'str']
+  >>> print len(layer) # getting the number of features in the layer (should be 3)
+  3
+  >>> print layer.geom_type # Should be 3 (a Polygon)
+  3
+  >>> print layer.srs # WGS84
+  GEOGCS["GCS_WGS_1984",
+      DATUM["WGS_1984",
+          SPHEROID["WGS_1984",6378137,298.257223563]],
+      PRIMEM["Greenwich",0],
+      UNIT["Degree",0.017453292519943295]]
+
+ 2. Now we define our corresponding Django model (make sure to use syncdb):
+
+  from django.contrib.gis.db import models
+  class TestGeo(models.Model, models.GeoMixin):
+      name = models.CharField(maxlength=25) # corresponds to the 'str' field
+      poly = models.PolygonField(srid=4269) # we want our model in a different SRID
+      objects = models.GeoManager()
+      def __str__(self):
+          return 'Name: %s' % self.name
+
+ 3. Use LayerMapping to extract all the features and place them in the database:
+
+  >>> from django.contrib.gis.utils import LayerMapping
+  >>> from geoapp.models import TestGeo
+  >>> mapping = {'name' : 'str', # The 'name' model field maps to the 'str' layer field.
+                 'poly' : 'POLYGON', # For geometry fields use OGC name.
+                 } # The mapping is a dictionary
+  >>> lm = LayerMapping(TestGeo, 'test_poly.shp', mapping) 
+  >>> lm.save(verbose=True) # Save the layermap, imports the data. 
+  Saved: Name: 1
+  Saved: Name: 2
+  Saved: Name: 3
+
+ LayerMapping just transformed the three geometries from the SHP file from their
+ source spatial reference system (WGS84) to the spatial reference system of
+ the GeoDjango model (NAD83).  If no spatial reference system is defined for
+ the layer, use the `source_srs` keyword with a SpatialReference object to
+ specify one.
+"""
+import sys
+from datetime import date, datetime
+from decimal import Decimal
+from django.core.exceptions import ObjectDoesNotExist
+from django.contrib.gis.db.models import GeometryField
+from django.contrib.gis.db.backend import SpatialBackend
+from django.contrib.gis.gdal import CoordTransform, DataSource, \
+    OGRException, OGRGeometry, OGRGeomType, SpatialReference
+from django.contrib.gis.gdal.field import \
+    OFTDate, OFTDateTime, OFTInteger, OFTReal, OFTString, OFTTime
+from django.contrib.gis.models import GeometryColumns, SpatialRefSys
+from django.db import models, transaction
+
+# LayerMapping exceptions.
+class LayerMapError(Exception): pass
+class InvalidString(LayerMapError): pass
+class InvalidDecimal(LayerMapError): pass
+class InvalidInteger(LayerMapError): pass
+class MissingForeignKey(LayerMapError): pass
+
+class LayerMapping(object):
+    "A class that maps OGR Layers to GeoDjango Models."
+    
+    # Acceptable 'base' types for a multi-geometry type.
+    MULTI_TYPES = {1 : OGRGeomType('MultiPoint'),
+                   2 : OGRGeomType('MultiLineString'),
+                   3 : OGRGeomType('MultiPolygon'),
+                   }
+
+    # Acceptable Django field types and corresponding acceptable OGR
+    # counterparts.
+    FIELD_TYPES = {
+        models.AutoField : OFTInteger,
+        models.IntegerField : (OFTInteger, OFTReal, OFTString),
+        models.FloatField : (OFTInteger, OFTReal),
+        models.DateField : OFTDate,
+        models.DateTimeField : OFTDateTime,
+        models.EmailField : OFTString,
+        models.TimeField : OFTTime,
+        models.DecimalField : (OFTInteger, OFTReal),
+        models.CharField : OFTString,
+        models.SlugField : OFTString,
+        models.TextField : OFTString,
+        models.URLField : OFTString,
+        models.USStateField : OFTString,
+        models.XMLField : OFTString,
+        models.SmallIntegerField : (OFTInteger, OFTReal, OFTString),
+        models.PositiveSmallIntegerField : (OFTInteger, OFTReal, OFTString),
+        }
+
+    # The acceptable transaction modes.
+    TRANSACTION_MODES = {'autocommit' : transaction.autocommit,
+                         'commit_on_success' : transaction.commit_on_success,
+                         }
+
+    def __init__(self, model, data, mapping, layer=0, 
+                 source_srs=None, encoding=None,
+                 transaction_mode='commit_on_success', 
+                 transform=True, unique=None):
+        """
+        A LayerMapping object is initialized using the given Model (not an instance),
+        a DataSource (or string path to an OGR-supported data file), and a mapping
+        dictionary.  See the module level docstring for more details and keyword
+        argument usage.
+        """
+        # Getting the DataSource and the associated Layer.
+        if isinstance(data, basestring):
+            self.ds = DataSource(data)
+        else:
+            self.ds = data
+        self.layer = self.ds[layer]
+
+        # Setting the mapping
+        self.mapping = mapping
+
+        # Setting the model, and getting the geometry column associated 
+        # with the model (an exception will be raised if there is no 
+        # geometry column).
+        self.model = model
+        self.geo_col = self.geometry_column()
+
+        # Checking the source spatial reference system, and getting
+        # the coordinate transformation object (unless the `transform`
+        # keyword is set to False)
+        if transform:
+            self.source_srs = self.check_srs(source_srs)
+            self.transform = self.coord_transform()
+        else:
+            self.transform = transform
+
+        # Checking the layer -- intitialization of the object will fail if
+        # things don't check out before hand.
+        self.check_layer()
+
+        # Setting the encoding for OFTString fields, if specified.
+        if encoding:
+            # Making sure the encoding exists, if not a LookupError
+            # exception will be thrown.
+            from codecs import lookup
+            lookup(encoding)
+            self.encoding = encoding
+        else:
+            self.encoding = None
+
+        if unique:
+            self.check_unique(unique)
+            transaction_mode = 'autocommit' # Has to be set to autocommit.
+            self.unique = unique
+        else:
+            self.unique = None
+
+        # Setting the transaction decorator with the function in the 
+        # transaction modes dictionary.
+        if transaction_mode in self.TRANSACTION_MODES:
+            self.transaction_decorator = self.TRANSACTION_MODES[transaction_mode]
+            self.transaction_mode = transaction_mode
+        else:
+            raise LayerMapError('Unrecognized transaction mode: %s' % transaction_mode)
+    
+    #### Checking routines used during initialization ####
+    def check_fid_range(self, fid_range):
+        "This checks the `fid_range` keyword."
+        if fid_range:
+            if isinstance(fid_range, (tuple, list)):
+                return slice(*fid_range)
+            elif isinstance(fid_range, slice):
+                return fid_range
+            else:
+                raise TypeError
+        else:
+            return None
+
+    def check_layer(self):
+        """
+        This checks the Layer metadata, and ensures that it is compatible
+        with the mapping information and model.  Unlike previous revisions,
+        there is no need to increment through each feature in the Layer.
+        """
+        # The geometry field of the model is set here.
+        # TODO: Support more than one geometry field / model.
+        self.geom_field = False
+        self.fields = {}
+
+        # Getting lists of the field names and the field types available in
+        # the OGR Layer.
+        ogr_fields = self.layer.fields
+        ogr_field_types = self.layer.field_types
+
+        # Function for determining if the OGR mapping field is in the Layer.
+        def check_ogr_fld(ogr_map_fld):
+            try:
+                idx = ogr_fields.index(ogr_map_fld)
+            except ValueError:
+                raise LayerMapError('Given mapping OGR field "%s" not found in OGR Layer.' % ogr_map_fld)
+            return idx
+
+        # No need to increment through each feature in the model, simply check
+        # the Layer metadata against what was given in the mapping dictionary.
+        for field_name, ogr_name in self.mapping.items():
+            # Ensuring that a corresponding field exists in the model
+            # for the given field name in the mapping.
+            try:
+                model_field = self.model._meta.get_field(field_name)
+            except models.fields.FieldDoesNotExist:
+                raise LayerMapError('Given mapping field "%s" not in given Model fields.' % field_name)
+
+            # Getting the string name for the Django field class (e.g., 'PointField').
+            fld_name = model_field.__class__.__name__
+
+            if isinstance(model_field, GeometryField):
+                if self.geom_field:
+                    raise LayerMapError('LayerMapping does not support more than one GeometryField per model.')
+
+                try:
+                    gtype = OGRGeomType(ogr_name)
+                except OGRException:
+                    raise LayerMapError('Invalid mapping for GeometryField "%s".' % field_name)
+
+                # Making sure that the OGR Layer's Geometry is compatible.
+                ltype = self.layer.geom_type
+                if not (gtype == ltype or self.make_multi(ltype, model_field)):
+                    raise LayerMapError('Invalid mapping geometry; model has %s, feature has %s.' % (fld_name, gtype))
+
+                # Setting the `geom_field` attribute w/the name of the model field
+                # that is a Geometry.
+                self.geom_field = field_name
+                fields_val = model_field
+            elif isinstance(model_field, models.ForeignKey):
+                if isinstance(ogr_name, dict):
+                    # Is every given related model mapping field in the Layer?
+                    rel_model = model_field.rel.to
+                    for rel_name, ogr_field in ogr_name.items(): 
+                        idx = check_ogr_fld(ogr_field)
+                        try:
+                            rel_field = rel_model._meta.get_field(rel_name)
+                        except models.fields.FieldDoesNotExist:
+                            raise LayerMapError('ForeignKey mapping field "%s" not in %s fields.' % 
+                                                (rel_name, rel_model.__class__.__name__))
+                    fields_val = rel_model
+                else:
+                    raise TypeError('ForeignKey mapping must be of dictionary type.')
+            else:
+                # Is the model field type supported by LayerMapping?
+                if not model_field.__class__ in self.FIELD_TYPES:
+                    raise LayerMapError('Django field type "%s" has no OGR mapping (yet).' % fld_name)
+
+                # Is the OGR field in the Layer?
+                idx = check_ogr_fld(ogr_name)
+                ogr_field = ogr_field_types[idx]
+
+                # Can the OGR field type be mapped to the Django field type?
+                if not issubclass(ogr_field, self.FIELD_TYPES[model_field.__class__]):
+                    raise LayerMapError('OGR field "%s" (of type %s) cannot be mapped to Django %s.' % 
+                                        (ogr_field, ogr_field.__name__, fld_name))
+                fields_val = model_field
+        
+            self.fields[field_name] = fields_val
+
+    def check_srs(self, source_srs):
+        "Checks the compatibility of the given spatial reference object."
+        if isinstance(source_srs, SpatialReference):
+            sr = source_srs
+        elif isinstance(source_srs, SpatialRefSys):
+            sr = source_srs.srs
+        elif isinstance(source_srs, (int, basestring)):
+            sr = SpatialReference(source_srs)
+        else:
+            # Otherwise just pulling the SpatialReference from the layer
+            sr = self.layer.srs
+        
+        if not sr:
+            raise LayerMapError('No source reference system defined.')
+        else:
+            return sr
+
+    def check_unique(self, unique):
+        "Checks the `unique` keyword parameter -- may be a sequence or string."
+        if isinstance(unique, (list, tuple)):
+            # List of fields to determine uniqueness with
+            for attr in unique: 
+                if not attr in self.mapping: raise ValueError
+        elif isinstance(unique, basestring):
+            # Only a single field passed in.
+            if unique not in self.mapping: raise ValueError
+        else:
+            raise TypeError('Unique keyword argument must be set with a tuple, list, or string.')
+
+    #### Keyword argument retrieval routines ####
+    def feature_kwargs(self, feat):
+        """
+        Given an OGR Feature, this will return a dictionary of keyword arguments
+        for constructing the mapped model.
+        """
+        # The keyword arguments for model construction.
+        kwargs = {}
+
+        # Incrementing through each model field and OGR field in the
+        # dictionary mapping.
+        for field_name, ogr_name in self.mapping.items():
+            model_field = self.fields[field_name]
+            
+            if isinstance(model_field, GeometryField):
+                # Verify OGR geometry.
+                val = self.verify_geom(feat.geom, model_field)
+            elif isinstance(model_field, models.base.ModelBase):
+                # The related _model_, not a field was passed in -- indicating
+                # another mapping for the related Model.
+                val = self.verify_fk(feat, model_field, ogr_name)
+            else:
+                # Otherwise, verify OGR Field type.
+                val = self.verify_ogr_field(feat[ogr_name], model_field)
+
+            # Setting the keyword arguments for the field name with the
+            # value obtained above.
+            kwargs[field_name] = val
+            
+        return kwargs
+
+    def unique_kwargs(self, kwargs):
+        """
+        Given the feature keyword arguments (from `feature_kwargs`) this routine
+        will construct and return the uniqueness keyword arguments -- a subset
+        of the feature kwargs.
+        """
+        if isinstance(self.unique, basestring):
+            return {self.unique : kwargs[self.unique]}
+        else:
+            return dict((fld, kwargs[fld]) for fld in self.unique)
+
+    #### Verification routines used in constructing model keyword arguments. ####
+    def verify_ogr_field(self, ogr_field, model_field):
+        """
+        Verifies if the OGR Field contents are acceptable to the Django
+        model field.  If they are, the verified value is returned, 
+        otherwise the proper exception is raised.
+        """
+        if (isinstance(ogr_field, OFTString) and 
+            isinstance(model_field, (models.CharField, models.TextField))): 
+            if self.encoding:
+                # The encoding for OGR data sources may be specified here
+                # (e.g., 'cp437' for Census Bureau boundary files).
+                val = unicode(ogr_field.value, self.encoding)
+            else:
+                val = ogr_field.value
+                if len(val) > model_field.max_length:
+                    raise InvalidString('%s model field maximum string length is %s, given %s characters.' %
+                                        (model_field.name, model_field.max_length, len(val)))
+        elif isinstance(ogr_field, OFTReal) and isinstance(model_field, models.DecimalField):
+            try:
+                # Creating an instance of the Decimal value to use.
+                d = Decimal(str(ogr_field.value))
+            except:
+                raise InvalidDecimal('Could not construct decimal from: %s' % ogr_field.value)
+
+            # Getting the decimal value as a tuple.
+            dtup = d.as_tuple()
+            digits = dtup[1]
+            d_idx = dtup[2] # index where the decimal is
+
+            # Maximum amount of precision, or digits to the left of the decimal.
+            max_prec = model_field.max_digits - model_field.decimal_places
+
+            # Getting the digits to the left of the decimal place for the 
+            # given decimal.
+            if d_idx < 0:
+                n_prec = len(digits[:d_idx])
+            else:
+                n_prec = len(digits) + d_idx
+
+            # If we have more than the maximum digits allowed, then throw an 
+            # InvalidDecimal exception.
+            if n_prec > max_prec:
+                raise InvalidDecimal('A DecimalField with max_digits %d, decimal_places %d must round to an absolute value less than 10^%d.' %
+                                     (model_field.max_digits, model_field.decimal_places, max_prec))
+            val = d
+        elif isinstance(ogr_field, (OFTReal, OFTString)) and isinstance(model_field, models.IntegerField):
+            # Attempt to convert any OFTReal and OFTString value to an OFTInteger.
+            try:
+                val = int(ogr_field.value)
+            except:
+                raise InvalidInteger('Could not construct integer from: %s' % ogr_field.value)
+        else:
+            val = ogr_field.value
+        return val
+
+    def verify_fk(self, feat, rel_model, rel_mapping):
+        """
+        Given an OGR Feature, the related model and its dictionary mapping,
+        this routine will retrieve the related model for the ForeignKey
+        mapping.
+        """
+        # TODO: It is expensive to retrieve a model for every record --
+        #  explore if an efficient mechanism exists for caching related 
+        #  ForeignKey models.
+
+        # Constructing and verifying the related model keyword arguments.
+        fk_kwargs = {}
+        for field_name, ogr_name in rel_mapping.items():
+            fk_kwargs[field_name] = self.verify_ogr_field(feat[ogr_name], rel_model._meta.get_field(field_name))
+
+        # Attempting to retrieve and return the related model.
+        try:
+            return rel_model.objects.get(**fk_kwargs)
+        except ObjectDoesNotExist:
+            raise MissingForeignKey('No ForeignKey %s model found with keyword arguments: %s' % (rel_model.__name__, fk_kwargs))
+            
+    def verify_geom(self, geom, model_field):
+        """
+        Verifies the geometry -- will construct and return a GeometryCollection
+        if necessary (for example if the model field is MultiPolygonField while
+        the mapped shapefile only contains Polygons).
+        """
+        if self.make_multi(geom.geom_type, model_field):
+            # Constructing a multi-geometry type to contain the single geometry
+            multi_type = self.MULTI_TYPES[geom.geom_type.num]
+            g = OGRGeometry(multi_type)
+            g.add(geom)
+        else:
+            g = geom
+
+        # Transforming the geometry with our Coordinate Transformation object,
+        # but only if the class variable `transform` is set w/a CoordTransform 
+        # object.
+        if self.transform: g.transform(self.transform)
+        
+        # Returning the WKT of the geometry.
+        return g.wkt
+
+    #### Other model methods ####
+    def coord_transform(self):
+        "Returns the coordinate transformation object."
+        try:
+            # Getting the target spatial reference system
+            target_srs = SpatialRefSys.objects.get(srid=self.geo_col.srid).srs
+
+            # Creating the CoordTransform object
+            return CoordTransform(self.source_srs, target_srs)
+        except Exception, msg:
+            raise LayerMapError('Could not translate between the data source and model geometry: %s' % msg)
+
+    def geometry_column(self):
+        "Returns the GeometryColumn model associated with the geographic column."
+        # Getting the GeometryColumn object.
+        try:
+            db_table = self.model._meta.db_table
+            if SpatialBackend.name == 'oracle': db_table = db_table.upper()
+            gc_kwargs = {GeometryColumns.table_name_col() : db_table}
+            return GeometryColumns.objects.get(**gc_kwargs)
+        except Exception, msg:
+            raise LayerMapError('Geometry column does not exist for model. (did you run syncdb?):\n %s' % msg)
+
+    def make_multi(self, geom_type, model_field):
+        """
+        Given the OGRGeomType for a geometry and its associated GeometryField, 
+        determine whether the geometry should be turned into a GeometryCollection.
+        """
+        return (geom_type.num in self.MULTI_TYPES and 
+                model_field.__class__.__name__ == 'Multi%s' % geom_type.django)
+
+    def save(self, verbose=False, fid_range=False, step=False, 
+             progress=False, silent=False, stream=sys.stdout, strict=False):
+        """
+        Saves the contents from the OGR DataSource Layer into the database
+        according to the mapping dictionary given at initialization. 
+        
+        Keyword Parameters:
+         verbose:
+           If set, information will be printed subsequent to each model save 
+           executed on the database.
+
+         fid_range:
+           May be set with a slice or tuple of (begin, end) feature ID's to map
+           from the data source.  In other words, this keyword enables the user
+           to selectively import a subset range of features in the geographic
+           data source.
+
+         step:
+           If set with an integer, transactions will occur at every step 
+           interval. For example, if step=1000, a commit would occur after 
+           the 1,000th feature, the 2,000th feature etc.
+
+         progress:
+           When this keyword is set, status information will be printed giving 
+           the number of features processed and sucessfully saved.  By default, 
+           progress information will pe printed every 1000 features processed, 
+           however, this default may be overridden by setting this keyword with an 
+           integer for the desired interval.
+
+         stream:
+           Status information will be written to this file handle.  Defaults to 
+           using `sys.stdout`, but any object with a `write` method is supported.
+
+         silent:
+           By default, non-fatal error notifications are printed to stdout, but 
+           this keyword may be set to disable these notifications.
+
+         strict:
+           Execution of the model mapping will cease upon the first error 
+           encountered.  The default behavior is to attempt to continue.
+        """
+        # Getting the default Feature ID range.
+        default_range = self.check_fid_range(fid_range)
+    
+        # Setting the progress interval, if requested.
+        if progress:
+            if progress is True or not isinstance(progress, int):
+                progress_interval = 1000
+            else:
+                progress_interval = progress
+
+        # Defining the 'real' save method, utilizing the transaction 
+        # decorator created during initialization.
+        @self.transaction_decorator
+        def _save(feat_range=default_range, num_feat=0, num_saved=0):
+            if feat_range:
+                layer_iter = self.layer[feat_range]
+            else:
+                layer_iter = self.layer
+
+            for feat in layer_iter:
+                num_feat += 1
+                # Getting the keyword arguments
+                try:
+                    kwargs = self.feature_kwargs(feat)
+                except LayerMapError, msg:
+                    # Something borked the validation
+                    if strict: raise
+                    elif not silent: 
+                        stream.write('Ignoring Feature ID %s because: %s\n' % (feat.fid, msg))
+                else:
+                    # Constructing the model using the keyword args
+                    is_update = False
+                    if self.unique:
+                        # If we want unique models on a particular field, handle the
+                        # geometry appropriately.
+                        try:
+                            # Getting the keyword arguments and retrieving
+                            # the unique model.
+                            u_kwargs = self.unique_kwargs(kwargs)
+                            m = self.model.objects.get(**u_kwargs)
+                            is_update = True
+                                
+                            # Getting the geometry (in OGR form), creating 
+                            # one from the kwargs WKT, adding in additional 
+                            # geometries, and update the attribute with the 
+                            # just-updated geometry WKT.
+                            geom = getattr(m, self.geom_field).ogr
+                            new = OGRGeometry(kwargs[self.geom_field])
+                            for g in new: geom.add(g) 
+                            setattr(m, self.geom_field, geom.wkt)
+                        except ObjectDoesNotExist:
+                            # No unique model exists yet, create.
+                            m = self.model(**kwargs)
+                    else:
+                        m = self.model(**kwargs)
+
+                    try:
+                        # Attempting to save.
+                        m.save()
+                        num_saved += 1
+                        if verbose: stream.write('%s: %s\n' % (is_update and 'Updated' or 'Saved', m))
+                    except SystemExit:
+                        raise
+                    except Exception, msg:
+                        if self.transaction_mode == 'autocommit':
+                            # Rolling back the transaction so that other model saves
+                            # will work.
+                            transaction.rollback_unless_managed()
+                        if strict: 
+                            # Bailing out if the `strict` keyword is set.
+                            if not silent:
+                                stream.write('Failed to save the feature (id: %s) into the model with the keyword arguments:\n' % feat.fid)
+                                stream.write('%s\n' % kwargs)
+                            raise
+                        elif not silent:
+                            stream.write('Failed to save %s:\n %s\nContinuing\n' % (kwargs, msg))
+
+                # Printing progress information, if requested.
+                if progress and num_feat % progress_interval == 0:
+                    stream.write('Processed %d features, saved %d ...\n' % (num_feat, num_saved))
+        
+            # Only used for status output purposes -- incremental saving uses the
+            # values returned here.
+            return num_saved, num_feat
+
+        nfeat = self.layer.num_feat
+        if step and isinstance(step, int) and step < nfeat:
+            # Incremental saving is requested at the given interval (step) 
+            if default_range: 
+                raise LayerMapError('The `step` keyword may not be used in conjunction with the `fid_range` keyword.')
+            beg, num_feat, num_saved = (0, 0, 0)
+            indices = range(step, nfeat, step)
+            n_i = len(indices)
+
+            for i, end in enumerate(indices):
+                # Constructing the slice to use for this step; the last slice is
+                # special (e.g, [100:] instead of [90:100]).
+                if i+1 == n_i: step_slice = slice(beg, None)
+                else: step_slice = slice(beg, end)
+            
+                try:
+                    num_feat, num_saved = _save(step_slice, num_feat, num_saved)
+                    beg = end
+                except:
+                    stream.write('%s\nFailed to save slice: %s\n' % ('=-' * 20, step_slice))
+                    raise
+        else:
+            # Otherwise, just calling the previously defined _save() function.
+            _save()
diff --git a/webapp/django/contrib/gis/utils/ogrinfo.py b/webapp/django/contrib/gis/utils/ogrinfo.py
new file mode 100644
index 0000000..f9b389c
--- /dev/null
+++ b/webapp/django/contrib/gis/utils/ogrinfo.py
@@ -0,0 +1,53 @@
+"""
+This module includes some utility functions for inspecting the layout
+of a GDAL data source -- the functionality is analogous to the output
+produced by the `ogrinfo` utility.
+"""
+
+from django.contrib.gis.gdal import DataSource
+from django.contrib.gis.gdal.geometries import GEO_CLASSES
+
+def ogrinfo(data_source, num_features=10):
+    """
+    Walks the available layers in the supplied `data_source`, displaying
+    the fields for the first `num_features` features.
+    """
+
+    # Checking the parameters.
+    if isinstance(data_source, str):
+        data_source = DataSource(data_source)
+    elif isinstance(data_source, DataSource):
+        pass
+    else:
+        raise Exception, 'Data source parameter must be a string or a DataSource object.'
+
+    for i, layer in enumerate(data_source):
+        print "data source : %s" % data_source.name
+        print "==== layer %s" % i
+        print "  shape type: %s" % GEO_CLASSES[layer.geom_type.num].__name__
+        print "  # features: %s" % len(layer)
+        print "         srs: %s" % layer.srs
+        extent_tup = layer.extent.tuple
+        print "      extent: %s - %s" % (extent_tup[0:2], extent_tup[2:4])
+        print "Displaying the first %s features ====" % num_features
+
+        width = max(*map(len,layer.fields))
+        fmt = " %%%ss: %%s" % width
+        for j, feature in enumerate(layer[:num_features]):
+            print "=== Feature %s" % j
+            for fld_name in layer.fields:
+                type_name = feature[fld_name].type_name
+                output = fmt % (fld_name, type_name)
+                val = feature.get(fld_name)
+                if val:
+                    if isinstance(val, str):
+                        val_fmt = ' ("%s")'
+                    else:
+                        val_fmt = ' (%s)'
+                    output += val_fmt % val
+                else:
+                    output += ' (None)'
+                print output
+
+# For backwards compatibility.
+sample = ogrinfo
diff --git a/webapp/django/contrib/gis/utils/ogrinspect.py b/webapp/django/contrib/gis/utils/ogrinspect.py
new file mode 100644
index 0000000..c0c3c40
--- /dev/null
+++ b/webapp/django/contrib/gis/utils/ogrinspect.py
@@ -0,0 +1,225 @@
+"""
+This module is for inspecting OGR data sources and generating either
+models for GeoDjango and/or mapping dictionaries for use with the
+`LayerMapping` utility.
+
+Author: Travis Pinney, Dane Springmeyer, & Justin Bronn
+"""
+from itertools import izip
+# Requires GDAL to use.
+from django.contrib.gis.gdal import DataSource
+from django.contrib.gis.gdal.field import OFTDate, OFTDateTime, OFTInteger, OFTReal, OFTString, OFTTime
+
+def mapping(data_source, geom_name='geom', layer_key=0, multi_geom=False):
+    """
+    Given a DataSource, generates a dictionary that may be used 
+    for invoking the LayerMapping utility.
+
+    Keyword Arguments:
+     `geom_name` => The name of the geometry field to use for the model.
+     
+     `layer_key` => The key for specifying which layer in the DataSource to use;
+       defaults to 0 (the first layer).  May be an integer index or a string
+       identifier for the layer.
+
+     `multi_geom` => Boolean (default: False) - specify as multigeometry.
+    """
+    if isinstance(data_source, basestring):
+        # Instantiating the DataSource from the string.
+        data_source = DataSource(data_source)
+    elif isinstance(data_source, DataSource):
+        pass
+    else:
+        raise TypeError('Data source parameter must be a string or a DataSource object.')
+    
+    # Creating the dictionary.
+    _mapping = {}
+
+    # Generating the field name for each field in the layer.
+    for field in data_source[layer_key].fields:
+        mfield = field.lower()
+        if mfield[-1:] == '_': mfield += 'field'
+        _mapping[mfield] = field
+    gtype = data_source[layer_key].geom_type
+    if multi_geom and gtype.num in (1, 2, 3): prefix = 'MULTI'
+    else: prefix = ''
+    _mapping[geom_name] = prefix + str(gtype).upper()
+    return _mapping
+
+def ogrinspect(*args, **kwargs):
+    """
+    Given a data source (either a string or a DataSource object) and a string
+    model name this function will generate a GeoDjango model.
+
+    Usage:
+    
+    >>> from django.contrib.gis.utils import ogrinspect
+    >>> ogrinspect('/path/to/shapefile.shp','NewModel')
+    
+    ...will print model definition to stout
+    
+    or put this in a python script and use to redirect the output to a new
+    model like:
+    
+    $ python generate_model.py > myapp/models.py
+    
+    # generate_model.py 
+    from django.contrib.gis.utils import ogrinspect
+    shp_file = 'data/mapping_hacks/world_borders.shp'
+    model_name = 'WorldBorders'
+
+    print ogrinspect(shp_file, model_name, multi_geom=True, srid=4326,
+                     geom_name='shapes', blank=True)
+                     
+    Required Arguments
+     `datasource` => string or DataSource object to file pointer
+     
+     `model name` => string of name of new model class to create
+      
+    Optional Keyword Arguments
+     `geom_name` => For specifying the model name for the Geometry Field. 
+       Otherwise will default to `geom`
+
+     `layer_key` => The key for specifying which layer in the DataSource to use;
+       defaults to 0 (the first layer).  May be an integer index or a string
+       identifier for the layer.
+
+     `srid` => The SRID to use for the Geometry Field.  If it can be determined,
+       the SRID of the datasource is used.
+      
+     `multi_geom` => Boolean (default: False) - specify as multigeometry.
+     
+     `name_field` => String - specifies a field name to return for the
+       `__unicode__` function (which will be generated if specified).
+     
+     `imports` => Boolean (default: True) - set to False to omit the 
+       `from django.contrib.gis.db import models` code from the 
+       autogenerated models thus avoiding duplicated imports when building
+       more than one model by batching ogrinspect()
+     
+     `decimal` => Boolean or sequence (default: False).  When set to True
+       all generated model fields corresponding to the `OFTReal` type will
+       be `DecimalField` instead of `FloatField`.  A sequence of specific
+       field names to generate as `DecimalField` may also be used.
+
+     `blank` => Boolean or sequence (default: False).  When set to True all
+       generated model fields will have `blank=True`.  If the user wants to 
+       give specific fields to have blank, then a list/tuple of OGR field
+       names may be used.
+
+     `null` => Boolean (default: False) - When set to True all generated
+       model fields will have `null=True`.  If the user wants to specify
+       give specific fields to have null, then a list/tuple of OGR field
+       names may be used.
+     
+    Note: This routine calls the _ogrinspect() helper to do the heavy lifting.
+    """
+    return '\n'.join(s for s in _ogrinspect(*args, **kwargs))
+
+def _ogrinspect(data_source, model_name, geom_name='geom', layer_key=0, srid=None,
+                multi_geom=False, name_field=None, imports=True, 
+                decimal=False, blank=False, null=False):
+    """
+    Helper routine for `ogrinspect` that generates GeoDjango models corresponding
+    to the given data source.  See the `ogrinspect` docstring for more details.
+    """
+    # Getting the DataSource
+    if isinstance(data_source, str):
+        data_source = DataSource(data_source)
+    elif isinstance(data_source, DataSource):
+        pass
+    else:
+        raise TypeError('Data source parameter must be a string or a DataSource object.')
+
+    # Getting the layer corresponding to the layer key and getting
+    # a string listing of all OGR fields in the Layer.
+    layer = data_source[layer_key]
+    ogr_fields = layer.fields
+
+    # Creating lists from the `null`, `blank`, and `decimal`
+    # keyword arguments.
+    def process_kwarg(kwarg):
+        if isinstance(kwarg, (list, tuple)):
+            return [s.lower() for s in kwarg] 
+        elif kwarg:
+            return [s.lower() for s in ogr_fields]
+        else:
+            return []
+    null_fields = process_kwarg(null)
+    blank_fields = process_kwarg(blank)
+    decimal_fields = process_kwarg(decimal)
+
+    # Gets the `null` and `blank` keywords for the given field name.
+    def get_kwargs_str(field_name):
+        kwlist = []
+        if field_name.lower() in null_fields: kwlist.append('null=True')
+        if field_name.lower() in blank_fields: kwlist.append('blank=True')
+        if kwlist: return ', ' + ', '.join(kwlist)
+        else: return ''
+
+    # For those wishing to disable the imports.
+    if imports:
+        yield '# This is an auto-generated Django model module created by ogrinspect.'
+        yield 'from django.contrib.gis.db import models'
+        yield ''
+
+    yield 'class %s(models.Model):' % model_name
+    
+    for field_name, width, precision, field_type in izip(ogr_fields, layer.field_widths, layer.field_precisions, layer.field_types):
+        # The model field name.
+        mfield = field_name.lower()
+        if mfield[-1:] == '_': mfield += 'field'
+        
+        # Getting the keyword args string.
+        kwargs_str = get_kwargs_str(field_name)
+
+        if field_type is OFTReal:
+            # By default OFTReals are mapped to `FloatField`, however, they
+            # may also be mapped to `DecimalField` if specified in the 
+            # `decimal` keyword.
+            if field_name.lower() in decimal_fields:
+                yield '    %s = models.DecimalField(max_digits=%d, decimal_places=%d%s)' % (mfield, width, precision, kwargs_str)
+            else:
+                yield '    %s = models.FloatField(%s)' % (mfield, kwargs_str[2:])
+        elif field_type is OFTInteger:
+            yield '    %s = models.IntegerField(%s)' % (mfield, kwargs_str[2:])
+        elif field_type is OFTString:
+            yield '    %s = models.CharField(max_length=%s%s)' % (mfield, width, kwargs_str)
+        elif field_type is OFTDate:
+            yield '    %s = models.DateField(%s)' % (mfield, kwargs_str[2:])
+        elif field_type is OFTDateTime:
+            yield '    %s = models.DateTimeField(%s)' % (mfield, kwargs_str[2:])
+        elif field_type is OFTDate:
+            yield '    %s = models.TimeField(%s)' % (mfield, kwargs_str[2:])
+        else:
+            raise TypeError('Unknown field type %s in %s' % (fld_type, mfield))
+    
+    # TODO: Autodetection of multigeometry types (see #7218).
+    gtype = layer.geom_type
+    if multi_geom and gtype.num in (1, 2, 3):
+        geom_field = 'Multi%s' % gtype.django
+    else:
+        geom_field = gtype.django
+
+    # Setting up the SRID keyword string.
+    if srid is None:
+        if layer.srs is None:
+            srid_str = 'srid=-1'
+        else:
+            srid = layer.srs.srid
+            if srid is None:
+                srid_str = 'srid=-1'
+            elif srid == 4326:
+                # WGS84 is already the default.
+                srid_str = ''
+            else:
+                srid_str = 'srid=%s' % srid
+    else:
+        srid_str = 'srid=%s' % srid
+
+    yield '    %s = models.%s(%s)' % (geom_name, geom_field, srid_str)
+    yield '    objects = models.GeoManager()'
+
+    if name_field:
+        yield ''
+        yield '    def __unicode__(self): return self.%s' % name_field
diff --git a/webapp/django/contrib/gis/utils/srs.py b/webapp/django/contrib/gis/utils/srs.py
new file mode 100644
index 0000000..4df2796
--- /dev/null
+++ b/webapp/django/contrib/gis/utils/srs.py
@@ -0,0 +1,27 @@
+def add_postgis_srs(srs):
+    """
+    This function takes a GDAL SpatialReference system and adds its
+    information to the PostGIS `spatial_ref_sys` table -- enabling
+    spatial transformations with PostGIS.  This is handy for adding
+    spatial reference systems not included by default with PostGIS.  
+    For example, the following adds the so-called "Google Maps Mercator 
+    Projection" (available in GDAL 1.5):
+    
+    >>> add_postgis_srs(SpatialReference(900913))
+
+    Note: By default, the `auth_name` is set to 'EPSG' -- this should
+    probably be changed.
+    """
+    from django.contrib.gis.models import SpatialRefSys
+    from django.contrib.gis.gdal import SpatialReference
+
+    if not isinstance(srs, SpatialReference):
+        srs = SpatialReference(srs)
+
+    if srs.srid is None:
+        raise Exception('Spatial reference requires an SRID to be compatible with PostGIS.')
+   
+    # Creating the spatial_ref_sys model.
+    sr, created = SpatialRefSys.objects.get_or_create(
+        srid=srs.srid, auth_name='EPSG', auth_srid=srs.srid, 
+        srtext=srs.wkt, proj4text=srs.proj4)
diff --git a/webapp/django/contrib/gis/utils/wkt.py b/webapp/django/contrib/gis/utils/wkt.py
new file mode 100644
index 0000000..4aecc62
--- /dev/null
+++ b/webapp/django/contrib/gis/utils/wkt.py
@@ -0,0 +1,55 @@
+"""
+ Utilities for manipulating Geometry WKT.
+"""
+
+def precision_wkt(geom, prec):
+    """
+    Returns WKT text of the geometry according to the given precision (an 
+    integer or a string).  If the precision is an integer, then the decimal
+    places of coordinates WKT will be truncated to that number:
+
+     >>> pnt = Point(5, 23)
+     >>> pnt.wkt
+     'POINT (5.0000000000000000 23.0000000000000000)'
+     >>> precision(geom, 1)
+     'POINT (5.0 23.0)'
+
+    If the precision is a string, it must be valid Python format string 
+    (e.g., '%20.7f') -- thus, you should know what you're doing.
+    """
+    if isinstance(prec, int):
+        num_fmt = '%%.%df' % prec
+    elif isinstance(prec, basestring):
+        num_fmt = prec
+    else:
+        raise TypeError
+
+    # TODO: Support 3D geometries.
+    coord_fmt = ' '.join([num_fmt, num_fmt])
+
+    def formatted_coords(coords):
+        return ','.join([coord_fmt % c[:2] for c in coords])
+
+    def formatted_poly(poly):
+        return ','.join(['(%s)' % formatted_coords(r) for r in poly])
+
+    def formatted_geom(g):
+        gtype = str(g.geom_type).upper()
+        yield '%s(' % gtype
+        if gtype == 'POINT':
+            yield formatted_coords((g.coords,))
+        elif gtype in ('LINESTRING', 'LINEARRING'):
+            yield formatted_coords(g.coords)
+        elif gtype in ('POLYGON', 'MULTILINESTRING'):
+            yield formatted_poly(g)
+        elif gtype == 'MULTIPOINT':
+            yield formatted_coords(g.coords)
+        elif gtype == 'MULTIPOLYGON':
+            yield ','.join(['(%s)' % formatted_poly(p) for p in g])
+        elif gtype == 'GEOMETRYCOLLECTION':
+            yield ','.join([''.join([wkt for wkt in formatted_geom(child)]) for child in g])
+        else:
+            raise TypeError
+        yield ')'
+
+    return ''.join([wkt for wkt in formatted_geom(geom)])
diff --git a/webapp/django/contrib/humanize/__init__.py b/webapp/django/contrib/humanize/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/humanize/__init__.py
diff --git a/webapp/django/contrib/humanize/templatetags/__init__.py b/webapp/django/contrib/humanize/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/humanize/templatetags/__init__.py
diff --git a/webapp/django/contrib/humanize/templatetags/humanize.py b/webapp/django/contrib/humanize/templatetags/humanize.py
new file mode 100644
index 0000000..05d3223
--- /dev/null
+++ b/webapp/django/contrib/humanize/templatetags/humanize.py
@@ -0,0 +1,99 @@
+from django.utils.translation import ungettext, ugettext as _
+from django.utils.encoding import force_unicode
+from django import template
+from django.template import defaultfilters
+from datetime import date
+import re
+
+register = template.Library()
+
+def ordinal(value):
+    """
+    Converts an integer to its ordinal as a string. 1 is '1st', 2 is '2nd',
+    3 is '3rd', etc. Works for any integer.
+    """
+    try:
+        value = int(value)
+    except ValueError:
+        return value
+    t = (_('th'), _('st'), _('nd'), _('rd'), _('th'), _('th'), _('th'), _('th'), _('th'), _('th'))
+    if value % 100 in (11, 12, 13): # special case
+        return u"%d%s" % (value, t[0])
+    return u'%d%s' % (value, t[value % 10])
+ordinal.is_safe = True
+register.filter(ordinal)
+
+def intcomma(value):
+    """
+    Converts an integer to a string containing commas every three digits.
+    For example, 3000 becomes '3,000' and 45000 becomes '45,000'.
+    """
+    orig = force_unicode(value)
+    new = re.sub("^(-?\d+)(\d{3})", '\g<1>,\g<2>', orig)
+    if orig == new:
+        return new
+    else:
+        return intcomma(new)
+intcomma.is_safe = True
+register.filter(intcomma)
+
+def intword(value):
+    """
+    Converts a large integer to a friendly text representation. Works best for
+    numbers over 1 million. For example, 1000000 becomes '1.0 million', 1200000
+    becomes '1.2 million' and '1200000000' becomes '1.2 billion'.
+    """
+    value = int(value)
+    if value < 1000000:
+        return value
+    if value < 1000000000:
+        new_value = value / 1000000.0
+        return ungettext('%(value).1f million', '%(value).1f million', new_value) % {'value': new_value}
+    if value < 1000000000000:
+        new_value = value / 1000000000.0
+        return ungettext('%(value).1f billion', '%(value).1f billion', new_value) % {'value': new_value}
+    if value < 1000000000000000:
+        new_value = value / 1000000000000.0
+        return ungettext('%(value).1f trillion', '%(value).1f trillion', new_value) % {'value': new_value}
+    return value
+intword.is_safe = False
+register.filter(intword)
+
+def apnumber(value):
+    """
+    For numbers 1-9, returns the number spelled out. Otherwise, returns the
+    number. This follows Associated Press style.
+    """
+    try:
+        value = int(value)
+    except ValueError:
+        return value
+    if not 0 < value < 10:
+        return value
+    return (_('one'), _('two'), _('three'), _('four'), _('five'), _('six'), _('seven'), _('eight'), _('nine'))[value-1]
+apnumber.is_safe = True
+register.filter(apnumber)
+
+def naturalday(value, arg=None):
+    """
+    For date values that are tomorrow, today or yesterday compared to
+    present day returns representing string. Otherwise, returns a string
+    formatted according to settings.DATE_FORMAT.
+    """
+    try: 
+        value = date(value.year, value.month, value.day)
+    except AttributeError:
+        # Passed value wasn't a date object
+        return value
+    except ValueError:
+        # Date arguments out of range
+        return value
+    delta = value - date.today()
+    if delta.days == 0:
+        return _(u'today')
+    elif delta.days == 1:
+        return _(u'tomorrow')
+    elif delta.days == -1:
+        return _(u'yesterday')
+    return defaultfilters.date(value, arg)
+register.filter(naturalday)
diff --git a/webapp/django/contrib/localflavor/__init__.py b/webapp/django/contrib/localflavor/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/__init__.py
diff --git a/webapp/django/contrib/localflavor/ar/__init__.py b/webapp/django/contrib/localflavor/ar/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ar/__init__.py
diff --git a/webapp/django/contrib/localflavor/ar/ar_provinces.py b/webapp/django/contrib/localflavor/ar/ar_provinces.py
new file mode 100644
index 0000000..a0efd4b
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ar/ar_provinces.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+"""
+A list of Argentinean provinces and autonomous cities as `choices` in a
+formfield. From
+http://www.argentina.gov.ar/argentina/portal/paginas.dhtml?pagina=425
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+PROVINCE_CHOICES = (
+    ('B', u'Buenos Aires'),
+    ('K', u'Catamarca'),
+    ('H', u'Chaco'),
+    ('U', u'Chubut'),
+    ('C', u'Ciudad Autónoma de Buenos Aires'),
+    ('X', u'Córdoba'),
+    ('W', u'Corrientes'),
+    ('E', u'Entre Ríos'),
+    ('P', u'Formosa'),
+    ('Y', u'Jujuy'),
+    ('L', u'La Pampa'),
+    ('F', u'La Rioja'),
+    ('M', u'Mendoza'),
+    ('N', u'Misiones'),
+    ('Q', u'Neuquén'),
+    ('R', u'Río Negro'),
+    ('A', u'Salta'),
+    ('J', u'San Juan'),
+    ('D', u'San Luis'),
+    ('Z', u'Santa Cruz'),
+    ('S', u'Santa Fe'),
+    ('G', u'Santiago del Estero'),
+    ('V', u'Tierra del Fuego, Antártida e Islas del Atlántico Sur'),
+    ('T', u'Tucumán'),
+)
diff --git a/webapp/django/contrib/localflavor/ar/forms.py b/webapp/django/contrib/localflavor/ar/forms.py
new file mode 100644
index 0000000..8e8e1af
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ar/forms.py
@@ -0,0 +1,114 @@
+# -*- coding: utf-8 -*-
+"""
+AR-specific Form helpers.
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import RegexField, CharField, Select, EMPTY_VALUES
+from django.utils.encoding import smart_unicode
+from django.utils.translation import ugettext_lazy as _
+
+class ARProvinceSelect(Select):
+    """
+    A Select widget that uses a list of Argentinean provinces/autonomous cities
+    as its choices.
+    """
+    def __init__(self, attrs=None):
+        from ar_provinces import PROVINCE_CHOICES
+        super(ARProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES)
+
+class ARPostalCodeField(RegexField):
+    """
+    A field that accepts a 'classic' NNNN Postal Code or a CPA.
+
+    See http://www.correoargentino.com.ar/consulta_cpa/home.php
+    """
+    default_error_messages = {
+        'invalid': _("Enter a postal code in the format NNNN or ANNNNAAA."),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ARPostalCodeField, self).__init__(r'^\d{4}$|^[A-HJ-NP-Za-hj-np-z]\d{4}\D{3}$',
+            min_length=4, max_length=8, *args, **kwargs)
+
+    def clean(self, value):
+        value = super(ARPostalCodeField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        if len(value) not in (4, 8):
+            raise ValidationError(self.error_messages['invalid'])
+        if len(value) == 8:
+            return u'%s%s%s' % (value[0].upper(), value[1:5], value[5:].upper())
+        return value
+
+class ARDNIField(CharField):
+    """
+    A field that validates 'Documento Nacional de Identidad' (DNI) numbers.
+    """
+    default_error_messages = {
+        'invalid': _("This field requires only numbers."),
+        'max_digits': _("This field requires 7 or 8 digits."),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ARDNIField, self).__init__(max_length=10, min_length=7, *args,
+                **kwargs)
+
+    def clean(self, value):
+        """
+        Value can be a string either in the [X]X.XXX.XXX or [X]XXXXXXX formats.
+        """
+        value = super(ARDNIField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        if not value.isdigit():
+            value = value.replace('.', '')
+        if not value.isdigit():
+            raise ValidationError(self.error_messages['invalid'])
+        if len(value) not in (7, 8):
+            raise ValidationError(self.error_messages['max_digits'])
+
+        return value
+
+class ARCUITField(RegexField):
+    """
+    This field validates a CUIT (Código Único de Identificación Tributaria). A
+    CUIT is of the form XX-XXXXXXXX-V. The last digit is a check digit.
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'),
+        'checksum': _("Invalid CUIT."),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ARCUITField, self).__init__(r'^\d{2}-?\d{8}-?\d$',
+            *args, **kwargs)
+
+    def clean(self, value):
+        """
+        Value can be either a string in the format XX-XXXXXXXX-X or an
+        11-digit number.
+        """
+        value = super(ARCUITField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        value, cd = self._canon(value)
+        if self._calc_cd(value) != cd:
+            raise ValidationError(self.error_messages['checksum'])
+        return self._format(value, cd)
+
+    def _canon(self, cuit):
+        cuit = cuit.replace('-', '')
+        return cuit[:-1], cuit[-1]
+
+    def _calc_cd(self, cuit):
+        mults = (5, 4, 3, 2, 7, 6, 5, 4, 3, 2)
+        tmp = sum([m * int(cuit[idx]) for idx, m in enumerate(mults)])
+        return str(11 - tmp % 11)
+
+    def _format(self, cuit, check_digit=None):
+        if check_digit == None:
+            check_digit = cuit[-1]
+            cuit = cuit[:-1]
+        return u'%s-%s-%s' % (cuit[:2], cuit[2:], check_digit)
+
diff --git a/webapp/django/contrib/localflavor/at/__init__.py b/webapp/django/contrib/localflavor/at/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/at/__init__.py
diff --git a/webapp/django/contrib/localflavor/at/at_states.py b/webapp/django/contrib/localflavor/at/at_states.py
new file mode 100644
index 0000000..d4b4d8a
--- /dev/null
+++ b/webapp/django/contrib/localflavor/at/at_states.py
@@ -0,0 +1,14 @@
+# -*- coding: utf-8 -*
+from django.utils.translation import ugettext_lazy as _
+
+STATE_CHOICES = (
+    ('BL', _('Burgenland')),
+    ('KA', _('Carinthia')),
+    ('NO', _('Lower Austria')),
+    ('OO', _('Upper Austria')),
+    ('SA', _('Salzburg')),
+    ('ST', _('Styria')),
+    ('TI', _('Tyrol')),
+    ('VO', _('Vorarlberg')),
+    ('WI', _('Vienna')),
+)
\ No newline at end of file
diff --git a/webapp/django/contrib/localflavor/at/forms.py b/webapp/django/contrib/localflavor/at/forms.py
new file mode 100644
index 0000000..e428fda
--- /dev/null
+++ b/webapp/django/contrib/localflavor/at/forms.py
@@ -0,0 +1,65 @@
+"""
+AT-specific Form helpers
+"""
+
+import re
+
+from django.utils.translation import ugettext_lazy as _
+from django.forms.fields import Field, RegexField, Select
+from django.forms import ValidationError
+
+re_ssn = re.compile(r'^\d{4} \d{6}')
+
+class ATZipCodeField(RegexField):
+    """
+    A form field that validates its input is an Austrian postcode.
+
+    Accepts 4 digits.
+    """
+    default_error_messages = {
+        'invalid': _('Enter a zip code in the format XXXX.'),
+    }
+    def __init__(self, *args, **kwargs):
+        super(ATZipCodeField, self).__init__(r'^\d{4}$',
+                max_length=None, min_length=None, *args, **kwargs)
+
+class ATStateSelect(Select):
+    """
+    A Select widget that uses a list of AT states as its choices.
+    """
+    def __init__(self, attrs=None):
+        from django.contrib.localflavor.at.at_states import STATE_CHOICES
+        super(ATStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
+
+class ATSocialSecurityNumberField(Field):
+    """
+    Austrian Social Security numbers are composed of a 4 digits and 6 digits
+    field. The latter represents in most cases the person's birthdate while
+    the first 4 digits represent a 3-digits counter and a one-digit checksum.
+
+    The 6-digits field can also differ from the person's birthdate if the
+    3-digits counter suffered an overflow.
+
+    This code is based on information available on
+    http://de.wikipedia.org/wiki/Sozialversicherungsnummer#.C3.96sterreich
+    """
+
+    default_error_messages = {
+        'invalid': _(u'Enter a valid Austrian Social Security Number in XXXX XXXXXX format.'),
+    }
+
+    def clean(self, value):
+        if not re_ssn.search(value):
+            raise ValidationError(self.error_messages['invalid'])
+        sqnr, date = value.split(" ")
+        sqnr, check = (sqnr[:3], (sqnr[3]))
+        if int(sqnr) < 100:
+           raise ValidationError(self.error_messages['invalid'])
+        res = int(sqnr[0])*3 + int(sqnr[1])*7 + int(sqnr[2])*9 \
+           + int(date[0])*5 + int(date[1])*8 + int(date[2])*4 \
+           + int(date[3])*2 + int(date[4])*1 + int(date[5])*6
+        res = res % 11
+        if res != int(check):
+           raise ValidationError(self.error_messages['invalid'])
+        return u'%s%s %s'%(sqnr, check, date,)
+
diff --git a/webapp/django/contrib/localflavor/au/__init__.py b/webapp/django/contrib/localflavor/au/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/au/__init__.py
diff --git a/webapp/django/contrib/localflavor/au/au_states.py b/webapp/django/contrib/localflavor/au/au_states.py
new file mode 100644
index 0000000..578d61b
--- /dev/null
+++ b/webapp/django/contrib/localflavor/au/au_states.py
@@ -0,0 +1,17 @@
+"""
+An alphabetical list of states for use as `choices` in a formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+STATE_CHOICES = (
+    ('ACT', 'Australian Capital Territory'),
+    ('NSW', 'New South Wales'),
+    ('NT', 'Northern Territory'),
+    ('QLD', 'Queensland'),
+    ('SA', 'South Australia'),
+    ('TAS', 'Tasmania'),
+    ('VIC', 'Victoria'),
+    ('WA', 'Western Australia'),
+)
diff --git a/webapp/django/contrib/localflavor/au/forms.py b/webapp/django/contrib/localflavor/au/forms.py
new file mode 100644
index 0000000..afc3a0c
--- /dev/null
+++ b/webapp/django/contrib/localflavor/au/forms.py
@@ -0,0 +1,49 @@
+"""
+Australian-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.forms.util import smart_unicode
+from django.utils.translation import ugettext_lazy as _
+import re
+
+PHONE_DIGITS_RE = re.compile(r'^(\d{10})$')
+
+class AUPostCodeField(RegexField):
+    """Australian post code field."""
+    default_error_messages = {
+        'invalid': _('Enter a 4 digit post code.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(AUPostCodeField, self).__init__(r'^\d{4}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+class AUPhoneNumberField(Field):
+    """Australian phone number field."""
+    default_error_messages = {
+        'invalid': u'Phone numbers must contain 10 digits.',
+    }
+
+    def clean(self, value):
+        """
+        Validate a phone number. Strips parentheses, whitespace and hyphens.
+        """
+        super(AUPhoneNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        value = re.sub('(\(|\)|\s+|-)', '', smart_unicode(value))
+        phone_match = PHONE_DIGITS_RE.search(value)
+        if phone_match:
+            return u'%s' % phone_match.group(1)
+        raise ValidationError(self.error_messages['invalid'])
+
+class AUStateSelect(Select):
+    """
+    A Select widget that uses a list of Australian states/territories as its
+    choices.
+    """
+    def __init__(self, attrs=None):
+        from au_states import STATE_CHOICES
+        super(AUStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
diff --git a/webapp/django/contrib/localflavor/br/__init__.py b/webapp/django/contrib/localflavor/br/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/br/__init__.py
diff --git a/webapp/django/contrib/localflavor/br/br_states.py b/webapp/django/contrib/localflavor/br/br_states.py
new file mode 100644
index 0000000..98e54bc
--- /dev/null
+++ b/webapp/django/contrib/localflavor/br/br_states.py
@@ -0,0 +1,37 @@
+# -*- coding: utf-8 -*-
+"""
+An alphabetical list of Brazilian states for use as `choices` in a formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+STATE_CHOICES = (
+    ('AC', 'Acre'),
+    ('AL', 'Alagoas'),
+    ('AP', u'Amapá'),
+    ('AM', 'Amazonas'),
+    ('BA', 'Bahia'),
+    ('CE', u'Ceará'),
+    ('DF', 'Distrito Federal'),
+    ('ES', u'Espírito Santo'),
+    ('GO', u'Goiás'),
+    ('MA', u'Maranhão'),
+    ('MT', 'Mato Grosso'),
+    ('MS', 'Mato Grosso do Sul'),
+    ('MG', 'Minas Gerais'),
+    ('PA', u'Pará'),
+    ('PB', u'Paraíba'),
+    ('PR', u'Paraná'),
+    ('PE', 'Pernambuco'),
+    ('PI', u'Piauí'),
+    ('RJ', 'Rio de Janeiro'),
+    ('RN', 'Rio Grande do Norte'),
+    ('RS', 'Rio Grande do Sul'),
+    ('RO', u'Rondônia'),
+    ('RR', 'Roraima'),
+    ('SC', 'Santa Catarina'),
+    ('SP', u'São Paulo'),
+    ('SE', 'Sergipe'),
+    ('TO', 'Tocantins'),
+)
diff --git a/webapp/django/contrib/localflavor/br/forms.py b/webapp/django/contrib/localflavor/br/forms.py
new file mode 100644
index 0000000..6d0a038
--- /dev/null
+++ b/webapp/django/contrib/localflavor/br/forms.py
@@ -0,0 +1,167 @@
+# -*- coding: utf-8 -*-
+"""
+BR-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, CharField, Select, EMPTY_VALUES
+from django.utils.encoding import smart_unicode
+from django.utils.translation import ugettext_lazy as _
+import re
+
+try:
+    set
+except NameError:
+    from sets import Set as set     # For Python 2.3
+
+phone_digits_re = re.compile(r'^(\d{2})[-\.]?(\d{4})[-\.]?(\d{4})$')
+
+class BRZipCodeField(RegexField):
+    default_error_messages = {
+        'invalid': _('Enter a zip code in the format XXXXX-XXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(BRZipCodeField, self).__init__(r'^\d{5}-\d{3}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+class BRPhoneNumberField(Field):
+    default_error_messages = {
+        'invalid': _('Phone numbers must be in XX-XXXX-XXXX format.'),
+    }
+
+    def clean(self, value):
+        super(BRPhoneNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        value = re.sub('(\(|\)|\s+)', '', smart_unicode(value))
+        m = phone_digits_re.search(value)
+        if m:
+            return u'%s-%s-%s' % (m.group(1), m.group(2), m.group(3))
+        raise ValidationError(self.error_messages['invalid'])
+
+class BRStateSelect(Select):
+    """
+    A Select widget that uses a list of Brazilian states/territories
+    as its choices.
+    """
+    def __init__(self, attrs=None):
+        from br_states import STATE_CHOICES
+        super(BRStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
+
+class BRStateChoiceField(Field):
+    """
+    A choice field that uses a list of Brazilian states as its choices.
+    """
+    widget = Select
+    default_error_messages = {
+        'invalid': _(u'Select a valid brazilian state. That state is not one of the available states.'),
+    }
+
+    def __init__(self, required=True, widget=None, label=None,
+                 initial=None, help_text=None):
+        super(BRStateChoiceField, self).__init__(required, widget, label,
+                                                 initial, help_text)
+        from br_states import STATE_CHOICES
+        self.widget.choices = STATE_CHOICES
+
+    def clean(self, value):
+        value = super(BRStateChoiceField, self).clean(value)
+        if value in EMPTY_VALUES:
+            value = u''
+        value = smart_unicode(value)
+        if value == u'':
+            return value
+        valid_values = set([smart_unicode(k) for k, v in self.widget.choices])
+        if value not in valid_values:
+            raise ValidationError(self.error_messages['invalid'])
+        return value
+
+def DV_maker(v):
+    if v >= 2:
+        return 11 - v
+    return 0
+
+class BRCPFField(CharField):
+    """
+    This field validate a CPF number or a CPF string. A CPF number is
+    compounded by XXX.XXX.XXX-VD. The two last digits are check digits.
+
+    More information:
+    http://en.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas
+    """
+    default_error_messages = {
+        'invalid': _("Invalid CPF number."),
+        'max_digits': _("This field requires at most 11 digits or 14 characters."),
+        'digits_only': _("This field requires only numbers."),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(BRCPFField, self).__init__(max_length=14, min_length=11, *args, **kwargs)
+
+    def clean(self, value):
+        """
+        Value can be either a string in the format XXX.XXX.XXX-XX or an
+        11-digit number.
+        """
+        value = super(BRCPFField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        orig_value = value[:]
+        if not value.isdigit():
+            value = re.sub("[-\.]", "", value)
+        try:
+            int(value)
+        except ValueError:
+            raise ValidationError(self.error_messages['digits_only'])
+        if len(value) != 11:
+            raise ValidationError(self.error_messages['max_digits'])
+        orig_dv = value[-2:]
+
+        new_1dv = sum([i * int(value[idx]) for idx, i in enumerate(range(10, 1, -1))])
+        new_1dv = DV_maker(new_1dv % 11)
+        value = value[:-2] + str(new_1dv) + value[-1]
+        new_2dv = sum([i * int(value[idx]) for idx, i in enumerate(range(11, 1, -1))])
+        new_2dv = DV_maker(new_2dv % 11)
+        value = value[:-1] + str(new_2dv)
+        if value[-2:] != orig_dv:
+            raise ValidationError(self.error_messages['invalid'])
+
+        return orig_value
+
+class BRCNPJField(Field):
+    default_error_messages = {
+        'invalid': _("Invalid CNPJ number."),
+        'digits_only': _("This field requires only numbers."),
+        'max_digits': _("This field requires at least 14 digits"),
+    }
+
+    def clean(self, value):
+        """
+        Value can be either a string in the format XX.XXX.XXX/XXXX-XX or a
+        group of 14 characters.
+        """
+        value = super(BRCNPJField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        orig_value = value[:]
+        if not value.isdigit():
+            value = re.sub("[-/\.]", "", value)
+        try:
+            int(value)
+        except ValueError:
+            raise ValidationError(self.error_messages['digits_only'])
+        if len(value) != 14:
+            raise ValidationError(self.error_messages['max_digits'])
+        orig_dv = value[-2:]
+
+        new_1dv = sum([i * int(value[idx]) for idx, i in enumerate(range(5, 1, -1) + range(9, 1, -1))])
+        new_1dv = DV_maker(new_1dv % 11)
+        value = value[:-2] + str(new_1dv) + value[-1]
+        new_2dv = sum([i * int(value[idx]) for idx, i in enumerate(range(6, 1, -1) + range(9, 1, -1))])
+        new_2dv = DV_maker(new_2dv % 11)
+        value = value[:-1] + str(new_2dv)
+        if value[-2:] != orig_dv:
+            raise ValidationError(self.error_messages['invalid'])
+
+        return orig_value
diff --git a/webapp/django/contrib/localflavor/ca/__init__.py b/webapp/django/contrib/localflavor/ca/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ca/__init__.py
diff --git a/webapp/django/contrib/localflavor/ca/ca_provinces.py b/webapp/django/contrib/localflavor/ca/ca_provinces.py
new file mode 100644
index 0000000..746716f
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ca/ca_provinces.py
@@ -0,0 +1,59 @@
+""" 
+An alphabetical list of provinces and territories for use as `choices` 
+in a formfield., and a mapping of province misspellings/abbreviations to 
+normalized abbreviations
+
+Source: http://www.canada.gc.ca/othergov/prov_e.html 
+
+This exists in this standalone file so that it's only imported into memory 
+when explicitly needed. 
+""" 
+
+PROVINCE_CHOICES = ( 
+    ('AB', 'Alberta'), 
+    ('BC', 'British Columbia'), 
+    ('MB', 'Manitoba'), 
+    ('NB', 'New Brunswick'), 
+    ('NF', 'Newfoundland and Labrador'), 
+    ('NT', 'Northwest Territories'), 
+    ('NS', 'Nova Scotia'), 
+    ('NU', 'Nunavut'), 
+    ('ON', 'Ontario'), 
+    ('PE', 'Prince Edward Island'), 
+    ('QC', 'Quebec'), 
+    ('SK', 'Saskatchewan'), 
+    ('YK', 'Yukon') 
+)
+
+PROVINCES_NORMALIZED = {
+    'ab': 'AB',
+    'alberta': 'AB',
+    'bc': 'BC',
+    'b.c.': 'BC',
+    'british columbia': 'BC',
+    'mb': 'MB',
+    'manitoba': 'MB',
+    'nb': 'NB',
+    'new brunswick': 'NB',
+    'nf': 'NF',
+    'newfoundland': 'NF',
+    'newfoundland and labrador': 'NF',
+    'nt': 'NT',
+    'northwest territories': 'NT',
+    'ns': 'NS',
+    'nova scotia': 'NS',
+    'nu': 'NU',
+    'nunavut': 'NU',
+    'on': 'ON',
+    'ontario': 'ON',
+    'pe': 'PE',
+    'pei': 'PE',
+    'p.e.i.': 'PE',
+    'prince edward island': 'PE',
+    'qc': 'QC',
+    'quebec': 'QC',
+    'sk': 'SK',
+    'saskatchewan': 'SK',
+    'yk': 'YK',
+    'yukon': 'YK',
+}
\ No newline at end of file
diff --git a/webapp/django/contrib/localflavor/ca/forms.py b/webapp/django/contrib/localflavor/ca/forms.py
new file mode 100644
index 0000000..327d938
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ca/forms.py
@@ -0,0 +1,126 @@
+"""
+Canada-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.forms.util import smart_unicode
+from django.utils.translation import ugettext_lazy as _
+import re
+
+phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$')
+sin_re = re.compile(r"^(\d{3})-(\d{3})-(\d{3})$")
+
+class CAPostalCodeField(RegexField):
+    """Canadian postal code field."""
+    default_error_messages = {
+        'invalid': _(u'Enter a postal code in the format XXX XXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(CAPostalCodeField, self).__init__(r'^[ABCEGHJKLMNPRSTVXYZ]\d[A-Z] \d[A-Z]\d$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+class CAPhoneNumberField(Field):
+    """Canadian phone number field."""
+    default_error_messages = {
+        'invalid': u'Phone numbers must be in XXX-XXX-XXXX format.',
+    }
+
+    def clean(self, value):
+        """Validate a phone number.
+        """
+        super(CAPhoneNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        value = re.sub('(\(|\)|\s+)', '', smart_unicode(value))
+        m = phone_digits_re.search(value)
+        if m:
+            return u'%s-%s-%s' % (m.group(1), m.group(2), m.group(3))
+        raise ValidationError(self.error_messages['invalid'])
+
+class CAProvinceField(Field):
+    """
+    A form field that validates its input is a Canadian province name or abbreviation.
+    It normalizes the input to the standard two-leter postal service
+    abbreviation for the given province.
+    """
+    default_error_messages = {
+        'invalid': u'Enter a Canadian province or territory.',
+    }
+
+    def clean(self, value):
+        from ca_provinces import PROVINCES_NORMALIZED
+        super(CAProvinceField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        try:
+            value = value.strip().lower()
+        except AttributeError:
+            pass
+        else:
+            try:
+                return PROVINCES_NORMALIZED[value.strip().lower()].decode('ascii')
+            except KeyError:
+                pass
+        raise ValidationError(self.error_messages['invalid'])
+
+class CAProvinceSelect(Select):
+    """
+    A Select widget that uses a list of Canadian provinces and
+    territories as its choices.
+    """
+    def __init__(self, attrs=None):
+        from ca_provinces import PROVINCE_CHOICES # relative import
+        super(CAProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES)
+
+class CASocialInsuranceNumberField(Field):
+    """
+    A Canadian Social Insurance Number (SIN).
+
+    Checks the following rules to determine whether the number is valid:
+
+        * Conforms to the XXX-XXX-XXX format.
+        * Passes the check digit process "Luhn Algorithm"
+             See: http://en.wikipedia.org/wiki/Social_Insurance_Number
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'),
+    }
+
+    def clean(self, value):
+        super(CASocialInsuranceNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+
+        match = re.match(sin_re, value)
+        if not match:
+            raise ValidationError(self.error_messages['invalid'])
+
+        number = u'%s-%s-%s' % (match.group(1), match.group(2), match.group(3))
+        check_number = u'%s%s%s' % (match.group(1), match.group(2), match.group(3))
+        if not self.luhn_checksum_is_valid(check_number):
+            raise ValidationError(self.error_messages['invalid'])
+        return number
+
+    def luhn_checksum_is_valid(self, number):
+        """
+        Checks to make sure that the SIN passes a luhn mod-10 checksum
+        See: http://en.wikipedia.org/wiki/Luhn_algorithm
+        """
+
+        sum = 0
+        num_digits = len(number)
+        oddeven = num_digits & 1
+
+        for count in range(0, num_digits):
+            digit = int(number[count])
+
+            if not (( count & 1 ) ^ oddeven ):
+                digit = digit * 2
+            if digit > 9:
+                digit = digit - 9
+
+            sum = sum + digit
+
+        return ( (sum % 10) == 0 )
diff --git a/webapp/django/contrib/localflavor/ch/__init__.py b/webapp/django/contrib/localflavor/ch/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ch/__init__.py
diff --git a/webapp/django/contrib/localflavor/ch/ch_states.py b/webapp/django/contrib/localflavor/ch/ch_states.py
new file mode 100644
index 0000000..ba5934a
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ch/ch_states.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*
+from django.utils.translation import ugettext_lazy as _
+
+STATE_CHOICES = (
+    ('AG', _('Aargau')),
+    ('AI', _('Appenzell Innerrhoden')),
+    ('AR', _('Appenzell Ausserrhoden')),
+    ('BS', _('Basel-Stadt')),
+    ('BL', _('Basel-Land')),
+    ('BE', _('Berne')),
+    ('FR', _('Fribourg')),
+    ('GE', _('Geneva')),
+    ('GL', _('Glarus')),
+    ('GR', _('Graubuenden')),
+    ('JU', _('Jura')),
+    ('LU', _('Lucerne')),
+    ('NE', _('Neuchatel')),
+    ('NW', _('Nidwalden')),
+    ('OW', _('Obwalden')),
+    ('SH', _('Schaffhausen')),
+    ('SZ', _('Schwyz')),
+    ('SO', _('Solothurn')),
+    ('SG', _('St. Gallen')),
+    ('TG', _('Thurgau')),
+    ('TI', _('Ticino')),
+    ('UR', _('Uri')),
+    ('VS', _('Valais')),
+    ('VD', _('Vaud')),
+    ('ZG', _('Zug')),
+    ('ZH', _('Zurich'))
+)
diff --git a/webapp/django/contrib/localflavor/ch/forms.py b/webapp/django/contrib/localflavor/ch/forms.py
new file mode 100644
index 0000000..bd92fca
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ch/forms.py
@@ -0,0 +1,118 @@
+"""
+Swiss-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.utils.encoding import smart_unicode
+from django.utils.translation import ugettext_lazy as _
+import re
+
+id_re = re.compile(r"^(?P<idnumber>\w{8})(?P<pos9>(\d{1}|<))(?P<checksum>\d{1})$")
+phone_digits_re = re.compile(r'^0([1-9]{1})\d{8}$')
+
+class CHZipCodeField(RegexField):
+    default_error_messages = {
+        'invalid': _('Enter a zip code in the format XXXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(CHZipCodeField, self).__init__(r'^\d{4}$',
+        max_length=None, min_length=None, *args, **kwargs)
+
+class CHPhoneNumberField(Field):
+    """
+    Validate local Swiss phone number (not international ones)
+    The correct format is '0XX XXX XX XX'.
+    '0XX.XXX.XX.XX' and '0XXXXXXXXX' validate but are corrected to
+    '0XX XXX XX XX'.
+    """
+    default_error_messages = {
+        'invalid': 'Phone numbers must be in 0XX XXX XX XX format.',
+    }
+
+    def clean(self, value):
+        super(CHPhoneNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        value = re.sub('(\.|\s|/|-)', '', smart_unicode(value))
+        m = phone_digits_re.search(value)
+        if m:
+            return u'%s %s %s %s' % (value[0:3], value[3:6], value[6:8], value[8:10])
+        raise ValidationError(self.error_messages['invalid'])
+
+class CHStateSelect(Select):
+    """
+    A Select widget that uses a list of CH states as its choices.
+    """
+    def __init__(self, attrs=None):
+        from ch_states import STATE_CHOICES # relative import
+        super(CHStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
+
+class CHIdentityCardNumberField(Field):
+    """
+    A Swiss identity card number.
+
+    Checks the following rules to determine whether the number is valid:
+
+        * Conforms to the X1234567<0 or 1234567890 format.
+        * Included checksums match calculated checksums
+
+    Algorithm is documented at http://adi.kousz.ch/artikel/IDCHE.htm
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'),
+    }
+
+    def has_valid_checksum(self, number):
+        given_number, given_checksum = number[:-1], number[-1]
+        new_number = given_number
+        calculated_checksum = 0
+        fragment = ""
+        parameter = 7
+
+        first = str(number[:1])
+        if first.isalpha():
+            num = ord(first.upper()) - 65
+            if num < 0 or num > 8:
+                return False
+            new_number = str(num) + new_number[1:]
+            new_number = new_number[:8] + '0'
+
+        if not new_number.isdigit():
+            return False
+
+        for i in range(len(new_number)):
+          fragment = int(new_number[i])*parameter
+          calculated_checksum += fragment
+
+          if parameter == 1:
+            parameter = 7
+          elif parameter == 3:
+            parameter = 1
+          elif parameter ==7:
+            parameter = 3
+
+        return str(calculated_checksum)[-1] == given_checksum
+
+    def clean(self, value):
+        super(CHIdentityCardNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+
+        match = re.match(id_re, value)
+        if not match:
+            raise ValidationError(self.error_messages['invalid'])
+
+        idnumber, pos9, checksum = match.groupdict()['idnumber'], match.groupdict()['pos9'], match.groupdict()['checksum']
+
+        if idnumber == '00000000' or \
+           idnumber == 'A0000000':
+            raise ValidationError(self.error_messages['invalid'])
+
+        all_digits = "%s%s%s" % (idnumber, pos9, checksum)
+        if not self.has_valid_checksum(all_digits):
+            raise ValidationError(self.error_messages['invalid'])
+
+        return u'%s%s%s' % (idnumber, pos9, checksum)
+
diff --git a/webapp/django/contrib/localflavor/cl/__init__.py b/webapp/django/contrib/localflavor/cl/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/cl/__init__.py
diff --git a/webapp/django/contrib/localflavor/cl/cl_regions.py b/webapp/django/contrib/localflavor/cl/cl_regions.py
new file mode 100644
index 0000000..47db6d3
--- /dev/null
+++ b/webapp/django/contrib/localflavor/cl/cl_regions.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+"""
+A list of Chilean regions as `choices` in a formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+REGION_CHOICES = (
+    ('RM',  u'Región Metropolitana de Santiago'),
+    ('I',   u'Región de Tarapacá'),
+    ('II',  u'Región de Antofagasta'),
+    ('III', u'Región de Atacama'),
+    ('IV',  u'Región de Coquimbo'),
+    ('V',   u'Región de Valparaíso'),
+    ('VI',  u'Región del Libertador Bernardo O\'Higgins'),
+    ('VII', u'Región del Maule'),
+    ('VIII',u'Región del Bío Bío'),
+    ('IX',  u'Región de la Araucanía'),
+    ('X',   u'Región de los Lagos'),
+    ('XI',  u'Región de Aysén del General Carlos Ibáñez del Campo'),
+    ('XII', u'Región de Magallanes y la Antártica Chilena'),
+    ('XIV', u'Región de Los Ríos'),
+    ('XV',  u'Región de Arica-Parinacota'),
+)
diff --git a/webapp/django/contrib/localflavor/cl/forms.py b/webapp/django/contrib/localflavor/cl/forms.py
new file mode 100644
index 0000000..61b3ab7
--- /dev/null
+++ b/webapp/django/contrib/localflavor/cl/forms.py
@@ -0,0 +1,94 @@
+"""
+Chile specific form helpers.
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import RegexField, Select, EMPTY_VALUES
+from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import smart_unicode
+
+
+class CLRegionSelect(Select):
+    """
+    A Select widget that uses a list of Chilean Regions (Regiones)
+    as its choices.
+    """
+    def __init__(self, attrs=None):
+        from cl_regions import REGION_CHOICES
+        super(CLRegionSelect, self).__init__(attrs, choices=REGION_CHOICES)
+
+class CLRutField(RegexField):
+    """
+    Chilean "Rol Unico Tributario" (RUT) field. This is the Chilean national
+    identification number.
+
+    Samples for testing are available from
+    https://palena.sii.cl/cvc/dte/ee_empresas_emisoras.html
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid Chilean RUT.'),
+        'strict': _('Enter a valid Chilean RUT. The format is XX.XXX.XXX-X.'),
+        'checksum': _('The Chilean RUT is not valid.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        if 'strict' in kwargs:
+            del kwargs['strict']
+            super(CLRutField, self).__init__(r'^(\d{1,2}\.)?\d{3}\.\d{3}-[\dkK]$',
+                error_message=self.default_error_messages['strict'], *args, **kwargs)
+        else:
+            # In non-strict mode, accept RUTs that validate but do not exist in
+            # the real world.
+            super(CLRutField, self).__init__(r'^[\d\.]{1,11}-?[\dkK]$', *args, **kwargs)
+
+    def clean(self, value):
+        """
+        Check and clean the Chilean RUT.
+        """
+        super(CLRutField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        rut, verificador = self._canonify(value)
+        if self._algorithm(rut) == verificador:
+            return self._format(rut, verificador)
+        else:
+            raise ValidationError(self.error_messages['checksum'])
+
+    def _algorithm(self, rut):
+        """
+        Takes RUT in pure canonical form, calculates the verifier digit.
+        """
+        suma  = 0
+        multi = 2
+        for r in rut[::-1]:
+            suma  += int(r) * multi
+            multi += 1
+            if multi == 8:
+                multi = 2
+        return u'0123456789K0'[11 - suma % 11]
+
+    def _canonify(self, rut):
+        """
+        Turns the RUT into one normalized format. Returns a (rut, verifier)
+        tuple.
+        """
+        rut = smart_unicode(rut).replace(' ', '').replace('.', '').replace('-', '')
+        return rut[:-1], rut[-1]
+
+    def _format(self, code, verifier=None):
+        """
+        Formats the RUT from canonical form to the common string representation.
+        If verifier=None, then the last digit in 'code' is the verifier.
+        """
+        if verifier is None:
+            verifier = code[-1]
+            code = code[:-1]
+        while len(code) > 3 and '.' not in code[:3]:
+            pos = code.find('.')
+            if pos == -1:
+                new_dot = -3
+            else:
+                new_dot = pos - 3
+            code = code[:new_dot] + '.' + code[new_dot:]
+        return u'%s-%s' % (code, verifier)
+
diff --git a/webapp/django/contrib/localflavor/de/__init__.py b/webapp/django/contrib/localflavor/de/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/de/__init__.py
diff --git a/webapp/django/contrib/localflavor/de/de_states.py b/webapp/django/contrib/localflavor/de/de_states.py
new file mode 100644
index 0000000..2872a78
--- /dev/null
+++ b/webapp/django/contrib/localflavor/de/de_states.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*
+from django.utils.translation import ugettext_lazy as _
+
+STATE_CHOICES = (
+    ('BW', _('Baden-Wuerttemberg')),
+    ('BY', _('Bavaria')),
+    ('BE', _('Berlin')),
+    ('BB', _('Brandenburg')),
+    ('HB', _('Bremen')),
+    ('HH', _('Hamburg')),
+    ('HE', _('Hessen')),
+    ('MV', _('Mecklenburg-Western Pomerania')),
+    ('NI', _('Lower Saxony')),
+    ('NW', _('North Rhine-Westphalia')),
+    ('RP', _('Rhineland-Palatinate')),
+    ('SL', _('Saarland')),
+    ('SN', _('Saxony')),
+    ('ST', _('Saxony-Anhalt')),
+    ('SH', _('Schleswig-Holstein')),
+    ('TH', _('Thuringia')),
+)
diff --git a/webapp/django/contrib/localflavor/de/forms.py b/webapp/django/contrib/localflavor/de/forms.py
new file mode 100644
index 0000000..7a1b7c0
--- /dev/null
+++ b/webapp/django/contrib/localflavor/de/forms.py
@@ -0,0 +1,83 @@
+"""
+DE-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.utils.translation import ugettext_lazy as _
+import re
+
+id_re = re.compile(r"^(?P<residence>\d{10})(?P<origin>\w{1,3})[-\ ]?(?P<birthday>\d{7})[-\ ]?(?P<validity>\d{7})[-\ ]?(?P<checksum>\d{1})$")
+
+class DEZipCodeField(RegexField):
+    default_error_messages = {
+        'invalid': _('Enter a zip code in the format XXXXX.'),
+    }
+    def __init__(self, *args, **kwargs):
+        super(DEZipCodeField, self).__init__(r'^\d{5}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+class DEStateSelect(Select):
+    """
+    A Select widget that uses a list of DE states as its choices.
+    """
+    def __init__(self, attrs=None):
+        from de_states import STATE_CHOICES
+        super(DEStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
+
+class DEIdentityCardNumberField(Field):
+    """
+    A German identity card number.
+
+    Checks the following rules to determine whether the number is valid:
+
+        * Conforms to the XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.
+        * No group consists entirely of zeroes.
+        * Included checksums match calculated checksums
+
+    Algorithm is documented at http://de.wikipedia.org/wiki/Personalausweis
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.'),
+    }
+
+    def has_valid_checksum(self, number):
+        given_number, given_checksum = number[:-1], number[-1]
+        calculated_checksum = 0
+        fragment = ""
+        parameter = 7
+
+        for i in range(len(given_number)):
+            fragment = str(int(given_number[i]) * parameter)
+            if fragment.isalnum():
+                calculated_checksum += int(fragment[-1])
+            if parameter == 1:
+                parameter = 7
+            elif parameter == 3:
+                parameter = 1
+            elif parameter ==7:
+                parameter = 3
+
+        return str(calculated_checksum)[-1] == given_checksum
+
+    def clean(self, value):
+        super(DEIdentityCardNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        match = re.match(id_re, value)
+        if not match:
+            raise ValidationError(self.error_messages['invalid'])
+
+        gd = match.groupdict()
+        residence, origin = gd['residence'], gd['origin']
+        birthday, validity, checksum = gd['birthday'], gd['validity'], gd['checksum']
+
+        if residence == '0000000000' or birthday == '0000000' or validity == '0000000':
+            raise ValidationError(self.error_messages['invalid'])
+
+        all_digits = u"%s%s%s%s" % (residence, birthday, validity, checksum)
+        if not self.has_valid_checksum(residence) or not self.has_valid_checksum(birthday) or \
+            not self.has_valid_checksum(validity) or not self.has_valid_checksum(all_digits):
+                raise ValidationError(self.error_messages['invalid'])
+
+        return u'%s%s-%s-%s-%s' % (residence, origin, birthday, validity, checksum)
diff --git a/webapp/django/contrib/localflavor/es/__init__.py b/webapp/django/contrib/localflavor/es/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/es/__init__.py
diff --git a/webapp/django/contrib/localflavor/es/es_provinces.py b/webapp/django/contrib/localflavor/es/es_provinces.py
new file mode 100644
index 0000000..9f5e126
--- /dev/null
+++ b/webapp/django/contrib/localflavor/es/es_provinces.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+from django.utils.translation import ugettext_lazy as _
+
+PROVINCE_CHOICES = (
+    ('01', _('Arava')),
+    ('02', _('Albacete')),
+    ('03', _('Alacant')),
+    ('04', _('Almeria')),
+    ('05', _('Avila')),
+    ('06', _('Badajoz')),
+    ('07', _('Illes Balears')),
+    ('08', _('Barcelona')),
+    ('09', _('Burgos')),
+    ('10', _('Caceres')),
+    ('11', _('Cadiz')),
+    ('12', _('Castello')),
+    ('13', _('Ciudad Real')),
+    ('14', _('Cordoba')),
+    ('15', _('A Coruna')),
+    ('16', _('Cuenca')),
+    ('17', _('Girona')),
+    ('18', _('Granada')),
+    ('19', _('Guadalajara')),
+    ('20', _('Guipuzkoa')),
+    ('21', _('Huelva')),
+    ('22', _('Huesca')),
+    ('23', _('Jaen')),
+    ('24', _('Leon')),
+    ('25', _('Lleida')),
+    ('26', _('La Rioja')),
+    ('27', _('Lugo')),
+    ('28', _('Madrid')),
+    ('29', _('Malaga')),
+    ('30', _('Murcia')),
+    ('31', _('Navarre')),
+    ('32', _('Ourense')),
+    ('33', _('Asturias')),
+    ('34', _('Palencia')),
+    ('35', _('Las Palmas')),
+    ('36', _('Pontevedra')),
+    ('37', _('Salamanca')),
+    ('38', _('Santa Cruz de Tenerife')),
+    ('39', _('Cantabria')),
+    ('40', _('Segovia')),
+    ('41', _('Seville')),
+    ('42', _('Soria')),
+    ('43', _('Tarragona')),
+    ('44', _('Teruel')),
+    ('45', _('Toledo')),
+    ('46', _('Valencia')),
+    ('47', _('Valladolid')),
+    ('48', _('Bizkaia')),
+    ('49', _('Zamora')),
+    ('50', _('Zaragoza')),
+    ('51', _('Ceuta')),
+    ('52', _('Melilla')),
+)
+
diff --git a/webapp/django/contrib/localflavor/es/es_regions.py b/webapp/django/contrib/localflavor/es/es_regions.py
new file mode 100644
index 0000000..3c1ea0e
--- /dev/null
+++ b/webapp/django/contrib/localflavor/es/es_regions.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+from django.utils.translation import ugettext_lazy as _
+
+REGION_CHOICES = (
+    ('AN', _('Andalusia')),
+    ('AR', _('Aragon')),
+    ('O', _('Principality of Asturias')),
+    ('IB', _('Balearic Islands')),
+    ('PV', _('Basque Country')),
+    ('CN', _('Canary Islands')),
+    ('S', _('Cantabria')),
+    ('CM', _('Castile-La Mancha')),
+    ('CL', _('Castile and Leon')),
+    ('CT', _('Catalonia')),
+    ('EX', _('Extremadura')),
+    ('GA', _('Galicia')),
+    ('LO', _('La Rioja')),
+    ('M', _('Madrid')),
+    ('MU', _('Region of Murcia')),
+    ('NA', _('Foral Community of Navarre')),
+    ('VC', _('Valencian Community')),
+)
+
diff --git a/webapp/django/contrib/localflavor/es/forms.py b/webapp/django/contrib/localflavor/es/forms.py
new file mode 100644
index 0000000..145bf90
--- /dev/null
+++ b/webapp/django/contrib/localflavor/es/forms.py
@@ -0,0 +1,184 @@
+# -*- coding: utf-8 -*-
+"""
+Spanish-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import RegexField, Select, EMPTY_VALUES
+from django.utils.translation import ugettext_lazy as _
+import re
+
+class ESPostalCodeField(RegexField):
+    """
+    A form field that validates its input as a spanish postal code.
+
+    Spanish postal code is a five digits string, with two first digits
+    between 01 and 52, assigned to provinces code.
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid postal code in the range and format 01XXX - 52XXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ESPostalCodeField, self).__init__(
+                r'^(0[1-9]|[1-4][0-9]|5[0-2])\d{3}$',
+                max_length=None, min_length=None, *args, **kwargs)
+
+class ESPhoneNumberField(RegexField):
+    """
+    A form field that validates its input as a Spanish phone number.
+    Information numbers are ommited.
+
+    Spanish phone numbers are nine digit numbers, where first digit is 6 (for
+    cell phones), 8 (for special phones), or 9 (for landlines and special
+    phones)
+
+    TODO: accept and strip characters like dot, hyphen... in phone number
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ESPhoneNumberField, self).__init__(r'^(6|8|9)\d{8}$',
+                max_length=None, min_length=None, *args, **kwargs)
+
+class ESIdentityCardNumberField(RegexField):
+    """
+    Spanish NIF/NIE/CIF (Fiscal Identification Number) code.
+
+    Validates three diferent formats:
+
+        NIF (individuals): 12345678A
+        CIF (companies): A12345678
+        NIE (foreigners): X12345678A
+
+    according to a couple of simple checksum algorithms.
+
+    Value can include a space or hyphen separator between number and letters.
+    Number length is not checked for NIF (or NIE), old values start with a 1,
+    and future values can contain digits greater than 8. The CIF control digit
+    can be a number or a letter depending on company type. Algorithm is not
+    public, and different authors have different opinions on which ones allows
+    letters, so both validations are assumed true for all types.
+    """
+    default_error_messages = {
+        'invalid': _('Please enter a valid NIF, NIE, or CIF.'),
+        'invalid_only_nif': _('Please enter a valid NIF or NIE.'),
+        'invalid_nif': _('Invalid checksum for NIF.'),
+        'invalid_nie': _('Invalid checksum for NIE.'),
+        'invalid_cif': _('Invalid checksum for CIF.'),
+    }
+
+    def __init__(self, only_nif=False, *args, **kwargs):
+        self.only_nif = only_nif
+        self.nif_control = 'TRWAGMYFPDXBNJZSQVHLCKE'
+        self.cif_control = 'JABCDEFGHI'
+        self.cif_types = 'ABCDEFGHKLMNPQS'
+        self.nie_types = 'XT'
+        super(ESIdentityCardNumberField, self).__init__(r'^([%s]?)[ -]?(\d+)[ -]?([%s]?)$' % (self.cif_types + self.nie_types + self.cif_types.lower() + self.nie_types.lower(), self.nif_control + self.nif_control.lower()),
+                max_length=None, min_length=None,
+                error_message=self.default_error_messages['invalid%s' % (self.only_nif and '_only_nif' or '')],
+                *args, **kwargs)
+
+    def clean(self, value):
+        super(ESIdentityCardNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        nif_get_checksum = lambda d: self.nif_control[int(d)%23]
+
+        value = value.upper().replace(' ', '').replace('-', '')
+        m = re.match(r'^([%s]?)[ -]?(\d+)[ -]?([%s]?)$' % (self.cif_types + self.nie_types, self.nif_control), value)
+        letter1, number, letter2 = m.groups()
+
+        if not letter1 and letter2:
+            # NIF
+            if letter2 == nif_get_checksum(number):
+                return value
+            else:
+                raise ValidationError, self.error_messages['invalid_nif']
+        elif letter1 in self.nie_types and letter2:
+            # NIE
+            if letter2 == nif_get_checksum(number):
+                return value
+            else:
+                raise ValidationError, self.error_messages['invalid_nie']
+        elif not self.only_nif and letter1 in self.cif_types and len(number) in [7, 8]:
+            # CIF
+            if not letter2:
+                number, letter2 = number[:-1], int(number[-1])
+            checksum = cif_get_checksum(number)
+            if letter2 in (checksum, self.cif_control[checksum]):
+                return value
+            else:
+                raise ValidationError, self.error_messages['invalid_cif']
+        else:
+            raise ValidationError, self.error_messages['invalid']
+
+class ESCCCField(RegexField):
+    """
+    A form field that validates its input as a Spanish bank account or CCC
+    (Codigo Cuenta Cliente).
+
+        Spanish CCC is in format EEEE-OOOO-CC-AAAAAAAAAA where:
+
+            E = entity
+            O = office
+            C = checksum
+            A = account
+
+        It's also valid to use a space as delimiter, or to use no delimiter.
+
+        First checksum digit validates entity and office, and last one
+        validates account. Validation is done multiplying every digit of 10
+        digit value (with leading 0 if necessary) by number in its position in
+        string 1, 2, 4, 8, 5, 10, 9, 7, 3, 6. Sum resulting numbers and extract
+        it from 11.  Result is checksum except when 10 then is 1, or when 11
+        then is 0.
+
+        TODO: allow IBAN validation too
+    """
+    default_error_messages = {
+        'invalid': _('Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.'),
+        'checksum': _('Invalid checksum for bank account number.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ESCCCField, self).__init__(r'^\d{4}[ -]?\d{4}[ -]?\d{2}[ -]?\d{10}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+    def clean(self, value):
+        super(ESCCCField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        control_str = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6]
+        m = re.match(r'^(\d{4})[ -]?(\d{4})[ -]?(\d{2})[ -]?(\d{10})$', value)
+        entity, office, checksum, account = m.groups()
+        get_checksum = lambda d: str(11 - sum([int(digit) * int(control) for digit, control in zip(d, control_str)]) % 11).replace('10', '1').replace('11', '0')
+        if get_checksum('00' + entity + office) + get_checksum(account) == checksum:
+            return value
+        else:
+            raise ValidationError, self.error_messages['checksum']
+
+class ESRegionSelect(Select):
+    """
+    A Select widget that uses a list of spanish regions as its choices.
+    """
+    def __init__(self, attrs=None):
+        from es_regions import REGION_CHOICES
+        super(ESRegionSelect, self).__init__(attrs, choices=REGION_CHOICES)
+
+class ESProvinceSelect(Select):
+    """
+    A Select widget that uses a list of spanish provinces as its choices.
+    """
+    def __init__(self, attrs=None):
+        from es_provinces import PROVINCE_CHOICES
+        super(ESProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES)
+
+
+def cif_get_checksum(number):
+    s1 = sum([int(digit) for pos, digit in enumerate(number) if int(pos) % 2])
+    s2 = sum([sum([int(unit) for unit in str(int(digit) * 2)]) for pos, digit in enumerate(number) if not int(pos) % 2])
+    return (10 - ((s1 + s2) % 10)) % 10
+
diff --git a/webapp/django/contrib/localflavor/fi/__init__.py b/webapp/django/contrib/localflavor/fi/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/fi/__init__.py
diff --git a/webapp/django/contrib/localflavor/fi/fi_municipalities.py b/webapp/django/contrib/localflavor/fi/fi_municipalities.py
new file mode 100644
index 0000000..965a52d
--- /dev/null
+++ b/webapp/django/contrib/localflavor/fi/fi_municipalities.py
@@ -0,0 +1,427 @@
+# -*- coding: utf-8 -*-
+"""
+An alphabetical list of Finnish municipalities for use as `choices` in a
+formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+MUNICIPALITY_CHOICES = (
+    ('akaa', u"Akaa"),
+    ('alaharma', u"Alahärmä"),
+    ('alajarvi', u"Alajärvi"),
+    ('alastaro', u"Alastaro"),
+    ('alavieska', u"Alavieska"),
+    ('alavus', u"Alavus"),
+    ('anjalankoski', u"Anjalankoski"),
+    ('artjarvi', u"Artjärvi"),
+    ('asikkala', u"Asikkala"),
+    ('askainen', u"Askainen"),
+    ('askola', u"Askola"),
+    ('aura', u"Aura"),
+    ('brando', u"Brändö"),
+    ('dragsfjard', u"Dragsfjärd"),
+    ('eckero', u"Eckerö"),
+    ('elimaki', u"Elimäki"),
+    ('eno', u"Eno"),
+    ('enonkoski', u"Enonkoski"),
+    ('enontekio', u"Enontekiö"),
+    ('espoo', u"Espoo"),
+    ('eura', u"Eura"),
+    ('eurajoki', u"Eurajoki"),
+    ('evijarvi', u"Evijärvi"),
+    ('finstrom', u"Finström"),
+    ('forssa', u"Forssa"),
+    ('foglo', u"Föglö"),
+    ('geta', u"Geta"),
+    ('haapajarvi', u"Haapajärvi"),
+    ('haapavesi', u"Haapavesi"),
+    ('hailuoto', u"Hailuoto"),
+    ('halikko', u"Halikko"),
+    ('halsua', u"Halsua"),
+    ('hamina', u"Hamina"),
+    ('hammarland', u"Hammarland"),
+    ('hankasalmi', u"Hankasalmi"),
+    ('hanko', u"Hanko"),
+    ('harjavalta', u"Harjavalta"),
+    ('hartola', u"Hartola"),
+    ('hattula', u"Hattula"),
+    ('hauho', u"Hauho"),
+    ('haukipudas', u"Haukipudas"),
+    ('hausjarvi', u"Hausjärvi"),
+    ('heinola', u"Heinola"),
+    ('heinavesi', u"Heinävesi"),
+    ('helsinki', u"Helsinki"),
+    ('himanka', u"Himanka"),
+    ('hirvensalmi', u"Hirvensalmi"),
+    ('hollola', u"Hollola"),
+    ('honkajoki', u"Honkajoki"),
+    ('houtskari', u"Houtskari"),
+    ('huittinen', u"Huittinen"),
+    ('humppila', u"Humppila"),
+    ('hyrynsalmi', u"Hyrynsalmi"),
+    ('hyvinkaa', u"Hyvinkää"),
+    ('hameenkoski', u"Hämeenkoski"),
+    ('hameenkyro', u"Hämeenkyrö"),
+    ('hameenlinna', u"Hämeenlinna"),
+    ('ii', u"Ii"),
+    ('iisalmi', u"Iisalmi"),
+    ('iitti', u"Iitti"),
+    ('ikaalinen', u"Ikaalinen"),
+    ('ilmajoki', u"Ilmajoki"),
+    ('ilomantsi', u"Ilomantsi"),
+    ('imatra', u"Imatra"),
+    ('inari', u"Inari"),
+    ('inio', u"Iniö"),
+    ('inkoo', u"Inkoo"),
+    ('isojoki', u"Isojoki"),
+    ('isokyro', u"Isokyrö"),
+    ('jaala', u"Jaala"),
+    ('jalasjarvi', u"Jalasjärvi"),
+    ('janakkala', u"Janakkala"),
+    ('joensuu', u"Joensuu"),
+    ('jokioinen', u"Jokioinen"),
+    ('jomala', u"Jomala"),
+    ('joroinen', u"Joroinen"),
+    ('joutsa', u"Joutsa"),
+    ('joutseno', u"Joutseno"),
+    ('juankoski', u"Juankoski"),
+    ('jurva', u"Jurva"),
+    ('juuka', u"Juuka"),
+    ('juupajoki', u"Juupajoki"),
+    ('juva', u"Juva"),
+    ('jyvaskyla', u"Jyväskylä"),
+    ('jyvaskylan_mlk', u"Jyväskylän maalaiskunta"),
+    ('jamijarvi', u"Jämijärvi"),
+    ('jamsa', u"Jämsä"),
+    ('jamsankoski', u"Jämsänkoski"),
+    ('jarvenpaa', u"Järvenpää"),
+    ('kaarina', u"Kaarina"),
+    ('kaavi', u"Kaavi"),
+    ('kajaani', u"Kajaani"),
+    ('kalajoki', u"Kalajoki"),
+    ('kalvola', u"Kalvola"),
+    ('kangasala', u"Kangasala"),
+    ('kangasniemi', u"Kangasniemi"),
+    ('kankaanpaa', u"Kankaanpää"),
+    ('kannonkoski', u"Kannonkoski"),
+    ('kannus', u"Kannus"),
+    ('karijoki', u"Karijoki"),
+    ('karjaa', u"Karjaa"),
+    ('karjalohja', u"Karjalohja"),
+    ('karkkila', u"Karkkila"),
+    ('karstula', u"Karstula"),
+    ('karttula', u"Karttula"),
+    ('karvia', u"Karvia"),
+    ('kaskinen', u"Kaskinen"),
+    ('kauhajoki', u"Kauhajoki"),
+    ('kauhava', u"Kauhava"),
+    ('kauniainen', u"Kauniainen"),
+    ('kaustinen', u"Kaustinen"),
+    ('keitele', u"Keitele"),
+    ('kemi', u"Kemi"),
+    ('kemijarvi', u"Kemijärvi"),
+    ('keminmaa', u"Keminmaa"),
+    ('kemio', u"Kemiö"),
+    ('kempele', u"Kempele"),
+    ('kerava', u"Kerava"),
+    ('kerimaki', u"Kerimäki"),
+    ('kestila', u"Kestilä"),
+    ('kesalahti', u"Kesälahti"),
+    ('keuruu', u"Keuruu"),
+    ('kihnio', u"Kihniö"),
+    ('kiikala', u"Kiikala"),
+    ('kiikoinen', u"Kiikoinen"),
+    ('kiiminki', u"Kiiminki"),
+    ('kinnula', u"Kinnula"),
+    ('kirkkonummi', u"Kirkkonummi"),
+    ('kisko', u"Kisko"),
+    ('kitee', u"Kitee"),
+    ('kittila', u"Kittilä"),
+    ('kiukainen', u"Kiukainen"),
+    ('kiuruvesi', u"Kiuruvesi"),
+    ('kivijarvi', u"Kivijärvi"),
+    ('kokemaki', u"Kokemäki"),
+    ('kokkola', u"Kokkola"),
+    ('kolari', u"Kolari"),
+    ('konnevesi', u"Konnevesi"),
+    ('kontiolahti', u"Kontiolahti"),
+    ('korpilahti', u"Korpilahti"),
+    ('korppoo', u"Korppoo"),
+    ('korsnas', u"Korsnäs"),
+    ('kortesjarvi', u"Kortesjärvi"),
+    ('koskitl', u"KoskiTl"),
+    ('kotka', u"Kotka"),
+    ('kouvola', u"Kouvola"),
+    ('kristiinankaupunki', u"Kristiinankaupunki"),
+    ('kruunupyy', u"Kruunupyy"),
+    ('kuhmalahti', u"Kuhmalahti"),
+    ('kuhmo', u"Kuhmo"),
+    ('kuhmoinen', u"Kuhmoinen"),
+    ('kumlinge', u"Kumlinge"),
+    ('kuopio', u"Kuopio"),
+    ('kuortane', u"Kuortane"),
+    ('kurikka', u"Kurikka"),
+    ('kuru', u"Kuru"),
+    ('kustavi', u"Kustavi"),
+    ('kuusamo', u"Kuusamo"),
+    ('kuusankoski', u"Kuusankoski"),
+    ('kuusjoki', u"Kuusjoki"),
+    ('kylmakoski', u"Kylmäkoski"),
+    ('kyyjarvi', u"Kyyjärvi"),
+    ('kalvia', u"Kälviä"),
+    ('karkola', u"Kärkölä"),
+    ('karsamaki', u"Kärsämäki"),
+    ('kokar', u"Kökar"),
+    ('koylio', u"Köyliö"),
+    ('lahti', u"Lahti"),
+    ('laihia', u"Laihia"),
+    ('laitila', u"Laitila"),
+    ('lammi', u"Lammi"),
+    ('lapinjarvi', u"Lapinjärvi"),
+    ('lapinlahti', u"Lapinlahti"),
+    ('lappajarvi', u"Lappajärvi"),
+    ('lappeenranta', u"Lappeenranta"),
+    ('lappi', u"Lappi"),
+    ('lapua', u"Lapua"),
+    ('laukaa', u"Laukaa"),
+    ('lavia', u"Lavia"),
+    ('lehtimaki', u"Lehtimäki"),
+    ('leivonmaki', u"Leivonmäki"),
+    ('lemi', u"Lemi"),
+    ('lemland', u"Lemland"),
+    ('lempaala', u"Lempäälä"),
+    ('lemu', u"Lemu"),
+    ('leppavirta', u"Leppävirta"),
+    ('lestijarvi', u"Lestijärvi"),
+    ('lieksa', u"Lieksa"),
+    ('lieto', u"Lieto"),
+    ('liljendal', u"Liljendal"),
+    ('liminka', u"Liminka"),
+    ('liperi', u"Liperi"),
+    ('lohja', u"Lohja"),
+    ('lohtaja', u"Lohtaja"),
+    ('loimaa', u"Loimaa"),
+    ('loppi', u"Loppi"),
+    ('loviisa', u"Loviisa"),
+    ('luhanka', u"Luhanka"),
+    ('lumijoki', u"Lumijoki"),
+    ('lumparland', u"Lumparland"),
+    ('luoto', u"Luoto"),
+    ('luumaki', u"Luumäki"),
+    ('luvia', u"Luvia"),
+    ('maalahti', u"Maalahti"),
+    ('maaninka', u"Maaninka"),
+    ('maarianhamina', u"Maarianhamina"),
+    ('marttila', u"Marttila"),
+    ('masku', u"Masku"),
+    ('mellila', u"Mellilä"),
+    ('merijarvi', u"Merijärvi"),
+    ('merikarvia', u"Merikarvia"),
+    ('merimasku', u"Merimasku"),
+    ('miehikkala', u"Miehikkälä"),
+    ('mikkeli', u"Mikkeli"),
+    ('mouhijarvi', u"Mouhijärvi"),
+    ('muhos', u"Muhos"),
+    ('multia', u"Multia"),
+    ('muonio', u"Muonio"),
+    ('mustasaari', u"Mustasaari"),
+    ('muurame', u"Muurame"),
+    ('muurla', u"Muurla"),
+    ('mynamaki', u"Mynämäki"),
+    ('myrskyla', u"Myrskylä"),
+    ('mantsala', u"Mäntsälä"),
+    ('mantta', u"Mänttä"),
+    ('mantyharju', u"Mäntyharju"),
+    ('naantali', u"Naantali"),
+    ('nakkila', u"Nakkila"),
+    ('nastola', u"Nastola"),
+    ('nauvo', u"Nauvo"),
+    ('nilsia', u"Nilsiä"),
+    ('nivala', u"Nivala"),
+    ('nokia', u"Nokia"),
+    ('noormarkku', u"Noormarkku"),
+    ('nousiainen', u"Nousiainen"),
+    ('nummi-pusula', u"Nummi-Pusula"),
+    ('nurmes', u"Nurmes"),
+    ('nurmijarvi', u"Nurmijärvi"),
+    ('nurmo', u"Nurmo"),
+    ('narpio', u"Närpiö"),
+    ('oravainen', u"Oravainen"),
+    ('orimattila', u"Orimattila"),
+    ('oripaa', u"Oripää"),
+    ('orivesi', u"Orivesi"),
+    ('oulainen', u"Oulainen"),
+    ('oulu', u"Oulu"),
+    ('oulunsalo', u"Oulunsalo"),
+    ('outokumpu', u"Outokumpu"),
+    ('padasjoki', u"Padasjoki"),
+    ('paimio', u"Paimio"),
+    ('paltamo', u"Paltamo"),
+    ('parainen', u"Parainen"),
+    ('parikkala', u"Parikkala"),
+    ('parkano', u"Parkano"),
+    ('pedersore', u"Pedersöre"),
+    ('pelkosenniemi', u"Pelkosenniemi"),
+    ('pello', u"Pello"),
+    ('perho', u"Perho"),
+    ('pernaja', u"Pernaja"),
+    ('pernio', u"Perniö"),
+    ('pertteli', u"Pertteli"),
+    ('pertunmaa', u"Pertunmaa"),
+    ('petajavesi', u"Petäjävesi"),
+    ('pieksamaki', u"Pieksämäki"),
+    ('pielavesi', u"Pielavesi"),
+    ('pietarsaari', u"Pietarsaari"),
+    ('pihtipudas', u"Pihtipudas"),
+    ('piikkio', u"Piikkiö"),
+    ('piippola', u"Piippola"),
+    ('pirkkala', u"Pirkkala"),
+    ('pohja', u"Pohja"),
+    ('polvijarvi', u"Polvijärvi"),
+    ('pomarkku', u"Pomarkku"),
+    ('pori', u"Pori"),
+    ('pornainen', u"Pornainen"),
+    ('porvoo', u"Porvoo"),
+    ('posio', u"Posio"),
+    ('pudasjarvi', u"Pudasjärvi"),
+    ('pukkila', u"Pukkila"),
+    ('pulkkila', u"Pulkkila"),
+    ('punkaharju', u"Punkaharju"),
+    ('punkalaidun', u"Punkalaidun"),
+    ('puolanka', u"Puolanka"),
+    ('puumala', u"Puumala"),
+    ('pyhtaa', u"Pyhtää"),
+    ('pyhajoki', u"Pyhäjoki"),
+    ('pyhajarvi', u"Pyhäjärvi"),
+    ('pyhanta', u"Pyhäntä"),
+    ('pyharanta', u"Pyhäranta"),
+    ('pyhaselka', u"Pyhäselkä"),
+    ('pylkonmaki', u"Pylkönmäki"),
+    ('palkane', u"Pälkäne"),
+    ('poytya', u"Pöytyä"),
+    ('raahe', u"Raahe"),
+    ('raisio', u"Raisio"),
+    ('rantasalmi', u"Rantasalmi"),
+    ('rantsila', u"Rantsila"),
+    ('ranua', u"Ranua"),
+    ('rauma', u"Rauma"),
+    ('rautalampi', u"Rautalampi"),
+    ('rautavaara', u"Rautavaara"),
+    ('rautjarvi', u"Rautjärvi"),
+    ('reisjarvi', u"Reisjärvi"),
+    ('renko', u"Renko"),
+    ('riihimaki', u"Riihimäki"),
+    ('ristiina', u"Ristiina"),
+    ('ristijarvi', u"Ristijärvi"),
+    ('rovaniemi', u"Rovaniemi"),
+    ('ruokolahti', u"Ruokolahti"),
+    ('ruotsinpyhtaa', u"Ruotsinpyhtää"),
+    ('ruovesi', u"Ruovesi"),
+    ('rusko', u"Rusko"),
+    ('rymattyla', u"Rymättylä"),
+    ('raakkyla', u"Rääkkylä"),
+    ('saarijarvi', u"Saarijärvi"),
+    ('salla', u"Salla"),
+    ('salo', u"Salo"),
+    ('saltvik', u"Saltvik"),
+    ('sammatti', u"Sammatti"),
+    ('sauvo', u"Sauvo"),
+    ('savitaipale', u"Savitaipale"),
+    ('savonlinna', u"Savonlinna"),
+    ('savonranta', u"Savonranta"),
+    ('savukoski', u"Savukoski"),
+    ('seinajoki', u"Seinäjoki"),
+    ('sievi', u"Sievi"),
+    ('siikainen', u"Siikainen"),
+    ('siikajoki', u"Siikajoki"),
+    ('siilinjarvi', u"Siilinjärvi"),
+    ('simo', u"Simo"),
+    ('sipoo', u"Sipoo"),
+    ('siuntio', u"Siuntio"),
+    ('sodankyla', u"Sodankylä"),
+    ('soini', u"Soini"),
+    ('somero', u"Somero"),
+    ('sonkajarvi', u"Sonkajärvi"),
+    ('sotkamo', u"Sotkamo"),
+    ('sottunga', u"Sottunga"),
+    ('sulkava', u"Sulkava"),
+    ('sund', u"Sund"),
+    ('suomenniemi', u"Suomenniemi"),
+    ('suomusjarvi', u"Suomusjärvi"),
+    ('suomussalmi', u"Suomussalmi"),
+    ('suonenjoki', u"Suonenjoki"),
+    ('sysma', u"Sysmä"),
+    ('sakyla', u"Säkylä"),
+    ('sarkisalo', u"Särkisalo"),
+    ('taipalsaari', u"Taipalsaari"),
+    ('taivalkoski', u"Taivalkoski"),
+    ('taivassalo', u"Taivassalo"),
+    ('tammela', u"Tammela"),
+    ('tammisaari', u"Tammisaari"),
+    ('tampere', u"Tampere"),
+    ('tarvasjoki', u"Tarvasjoki"),
+    ('tervo', u"Tervo"),
+    ('tervola', u"Tervola"),
+    ('teuva', u"Teuva"),
+    ('tohmajarvi', u"Tohmajärvi"),
+    ('toholampi', u"Toholampi"),
+    ('toivakka', u"Toivakka"),
+    ('tornio', u"Tornio"),
+    ('turku', u"Turku"),
+    ('tuulos', u"Tuulos"),
+    ('tuusniemi', u"Tuusniemi"),
+    ('tuusula', u"Tuusula"),
+    ('tyrnava', u"Tyrnävä"),
+    ('toysa', u"Töysä"),
+    ('ullava', u"Ullava"),
+    ('ulvila', u"Ulvila"),
+    ('urjala', u"Urjala"),
+    ('utajarvi', u"Utajärvi"),
+    ('utsjoki', u"Utsjoki"),
+    ('uurainen', u"Uurainen"),
+    ('uusikaarlepyy', u"Uusikaarlepyy"),
+    ('uusikaupunki', u"Uusikaupunki"),
+    ('vaala', u"Vaala"),
+    ('vaasa', u"Vaasa"),
+    ('vahto', u"Vahto"),
+    ('valkeakoski', u"Valkeakoski"),
+    ('valkeala', u"Valkeala"),
+    ('valtimo', u"Valtimo"),
+    ('vammala', u"Vammala"),
+    ('vampula', u"Vampula"),
+    ('vantaa', u"Vantaa"),
+    ('varkaus', u"Varkaus"),
+    ('varpaisjarvi', u"Varpaisjärvi"),
+    ('vehmaa', u"Vehmaa"),
+    ('velkua', u"Velkua"),
+    ('vesanto', u"Vesanto"),
+    ('vesilahti', u"Vesilahti"),
+    ('veteli', u"Veteli"),
+    ('vierema', u"Vieremä"),
+    ('vihanti', u"Vihanti"),
+    ('vihti', u"Vihti"),
+    ('viitasaari', u"Viitasaari"),
+    ('vilppula', u"Vilppula"),
+    ('vimpeli', u"Vimpeli"),
+    ('virolahti', u"Virolahti"),
+    ('virrat', u"Virrat"),
+    ('vardo', u"Vårdö"),
+    ('vahakyro', u"Vähäkyrö"),
+    ('vastanfjard', u"Västanfjärd"),
+    ('voyri-maksamaa', u"Vöyri-Maksamaa"),
+    ('yliharma', u"Ylihärmä"),
+    ('yli-ii', u"Yli-Ii"),
+    ('ylikiiminki', u"Ylikiiminki"),
+    ('ylistaro', u"Ylistaro"),
+    ('ylitornio', u"Ylitornio"),
+    ('ylivieska', u"Ylivieska"),
+    ('ylamaa', u"Ylämaa"),
+    ('ylane', u"Yläne"),
+    ('ylojarvi', u"Ylöjärvi"),
+    ('ypaja', u"Ypäjä"),
+    ('aetsa', u"Äetsä"),
+    ('ahtari', u"Ähtäri"),
+    ('aanekoski', u"Äänekoski")
+)
\ No newline at end of file
diff --git a/webapp/django/contrib/localflavor/fi/forms.py b/webapp/django/contrib/localflavor/fi/forms.py
new file mode 100644
index 0000000..2b82a79
--- /dev/null
+++ b/webapp/django/contrib/localflavor/fi/forms.py
@@ -0,0 +1,50 @@
+"""
+FI-specific Form helpers
+"""
+
+import re
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.utils.translation import ugettext_lazy as _
+
+class FIZipCodeField(RegexField):
+    default_error_messages = {
+        'invalid': _('Enter a zip code in the format XXXXX.'),
+    }
+    def __init__(self, *args, **kwargs):
+        super(FIZipCodeField, self).__init__(r'^\d{5}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+class FIMunicipalitySelect(Select):
+    """
+    A Select widget that uses a list of Finnish municipalities as its choices.
+    """
+    def __init__(self, attrs=None):
+        from fi_municipalities import MUNICIPALITY_CHOICES
+        super(FIMunicipalitySelect, self).__init__(attrs, choices=MUNICIPALITY_CHOICES)
+
+class FISocialSecurityNumber(Field):
+    default_error_messages = {
+        'invalid': _('Enter a valid Finnish social security number.'),
+    }
+
+    def clean(self, value):
+        super(FISocialSecurityNumber, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+
+        checkmarks = "0123456789ABCDEFHJKLMNPRSTUVWXY"
+        result = re.match(r"""^
+            (?P<date>([0-2]\d|3[01])
+            (0\d|1[012])
+            (\d{2}))
+            [A+-]
+            (?P<serial>(\d{3}))
+            (?P<checksum>[%s])$""" % checkmarks, value, re.VERBOSE | re.IGNORECASE)
+        if not result:
+            raise ValidationError(self.error_messages['invalid'])
+        gd = result.groupdict()
+        checksum = int(gd['date'] + gd['serial'])
+        if checkmarks[checksum % len(checkmarks)] == gd['checksum'].upper():
+            return u'%s' % value.upper()
+        raise ValidationError(self.error_messages['invalid'])
diff --git a/webapp/django/contrib/localflavor/fr/__init__.py b/webapp/django/contrib/localflavor/fr/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/fr/__init__.py
diff --git a/webapp/django/contrib/localflavor/fr/forms.py b/webapp/django/contrib/localflavor/fr/forms.py
new file mode 100644
index 0000000..8d9d9d7
--- /dev/null
+++ b/webapp/django/contrib/localflavor/fr/forms.py
@@ -0,0 +1,50 @@
+"""
+FR-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.utils.encoding import smart_unicode
+from django.utils.translation import ugettext_lazy as _
+import re
+
+phone_digits_re = re.compile(r'^0\d(\s|\.)?(\d{2}(\s|\.)?){3}\d{2}$')
+
+class FRZipCodeField(RegexField):
+    default_error_messages = {
+        'invalid': _('Enter a zip code in the format XXXXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(FRZipCodeField, self).__init__(r'^\d{5}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+class FRPhoneNumberField(Field):
+    """
+    Validate local French phone number (not international ones)
+    The correct format is '0X XX XX XX XX'.
+    '0X.XX.XX.XX.XX' and '0XXXXXXXXX' validate but are corrected to
+    '0X XX XX XX XX'.
+    """
+    default_error_messages = {
+        'invalid': u'Phone numbers must be in 0X XX XX XX XX format.',
+    }
+
+    def clean(self, value):
+        super(FRPhoneNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        value = re.sub('(\.|\s)', '', smart_unicode(value))
+        m = phone_digits_re.search(value)
+        if m:
+            return u'%s %s %s %s %s' % (value[0:2], value[2:4], value[4:6], value[6:8], value[8:10])
+        raise ValidationError(self.error_messages['invalid'])
+
+class FRDepartmentSelect(Select):
+    """
+    A Select widget that uses a list of FR departments as its choices.
+    """
+    def __init__(self, attrs=None):
+        from fr_department import DEPARTMENT_ASCII_CHOICES
+        super(FRDepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_ASCII_CHOICES)
+
diff --git a/webapp/django/contrib/localflavor/fr/fr_department.py b/webapp/django/contrib/localflavor/fr/fr_department.py
new file mode 100644
index 0000000..02de295
--- /dev/null
+++ b/webapp/django/contrib/localflavor/fr/fr_department.py
@@ -0,0 +1,112 @@
+# -*- coding: utf-8 -*-
+
+DEPARTMENT_ASCII_CHOICES = (
+    ('01', '01 - Ain'),
+    ('02', '02 - Aisne'),
+    ('03', '03 - Allier'),
+    ('04', '04 - Alpes-de-Haute-Provence'),
+    ('05', '05 - Hautes-Alpes'),
+    ('06', '06 - Alpes-Maritimes'),
+    ('07', '07 - Ardeche'),
+    ('08', '08 - Ardennes'),
+    ('09', '09 - Ariege'),
+    ('10', '10 - Aube'),
+    ('11', '11 - Aude'),
+    ('12', '12 - Aveyron'),
+    ('13', '13 - Bouches-du-Rhone'),
+    ('14', '14 - Calvados'),
+    ('15', '15 - Cantal'),
+    ('16', '16 - Charente'),
+    ('17', '17 - Charente-Maritime'),
+    ('18', '18 - Cher'),
+    ('19', '19 - Correze'),
+    ('21', '21 - Cote-d\'Or'),
+    ('22', '22 - Cotes-d\'Armor'),
+    ('23', '23 - Creuse'),
+    ('24', '24 - Dordogne'),
+    ('25', '25 - Doubs'),
+    ('26', '26 - Drome'),
+    ('27', '27 - Eure'),
+    ('28', '28 - Eure-et-Loire'),
+    ('29', '29 - Finistere'),
+    ('2A', '2A - Corse-du-Sud'),
+    ('2B', '2B - Haute-Corse'),
+    ('30', '30 - Gard'),
+    ('31', '31 - Haute-Garonne'),
+    ('32', '32 - Gers'),
+    ('33', '33 - Gironde'),
+    ('34', '34 - Herault'),
+    ('35', '35 - Ille-et-Vilaine'),
+    ('36', '36 - Indre'),
+    ('37', '37 - Indre-et-Loire'),
+    ('38', '38 - Isere'),
+    ('39', '39 - Jura'),
+    ('40', '40 - Landes'),
+    ('41', '41 - Loir-et-Cher'),
+    ('42', '42 - Loire'),
+    ('43', '43 - Haute-Loire'),
+    ('44', '44 - Loire-Atlantique'),
+    ('45', '45 - Loiret'),
+    ('46', '46 - Lot'),
+    ('47', '47 - Lot-et-Garonne'),
+    ('48', '48 - Lozere'),
+    ('49', '49 - Maine-et-Loire'),
+    ('50', '50 - Manche'),
+    ('51', '51 - Marne'),
+    ('52', '52 - Haute-Marne'),
+    ('53', '53 - Mayenne'),
+    ('54', '54 - Meurthe-et-Moselle'),
+    ('55', '55 - Meuse'),
+    ('56', '56 - Morbihan'),
+    ('57', '57 - Moselle'),
+    ('58', '58 - Nievre'),
+    ('59', '59 - Nord'),
+    ('60', '60 - Oise'),
+    ('61', '61 - Orne'),
+    ('62', '62 - Pas-de-Calais'),
+    ('63', '63 - Puy-de-Dome'),
+    ('64', '64 - Pyrenees-Atlantiques'),
+    ('65', '65 - Hautes-Pyrenees'),
+    ('66', '66 - Pyrenees-Orientales'),
+    ('67', '67 - Bas-Rhin'),
+    ('68', '68 - Haut-Rhin'),
+    ('69', '69 - Rhone'),
+    ('70', '70 - Haute-Saone'),
+    ('71', '71 - Saone-et-Loire'),
+    ('72', '72 - Sarthe'),
+    ('73', '73 - Savoie'),
+    ('74', '74 - Haute-Savoie'),
+    ('75', '75 - Paris'),
+    ('76', '76 - Seine-Maritime'),
+    ('77', '77 - Seine-et-Marne'),
+    ('78', '78 - Yvelines'),
+    ('79', '79 - Deux-Sevres'),
+    ('80', '80 - Somme'),
+    ('81', '81 - Tarn'),
+    ('82', '82 - Tarn-et-Garonne'),
+    ('83', '83 - Var'),
+    ('84', '84 - Vaucluse'),
+    ('85', '85 - Vendee'),
+    ('86', '86 - Vienne'),
+    ('87', '87 - Haute-Vienne'),
+    ('88', '88 - Vosges'),
+    ('89', '89 - Yonne'),
+    ('90', '90 - Territoire de Belfort'),
+    ('91', '91 - Essonne'),
+    ('92', '92 - Hauts-de-Seine'),
+    ('93', '93 - Seine-Saint-Denis'),
+    ('94', '94 - Val-de-Marne'),
+    ('95', '95 - Val-d\'Oise'),
+    ('2A', '2A - Corse du sud'),
+    ('2B', '2B - Haute Corse'),
+    ('971', '971 - Guadeloupe'),
+    ('972', '972 - Martinique'),
+    ('973', '973 - Guyane'),
+    ('974', '974 - La Reunion'),
+    ('975', '975 - Saint-Pierre-et-Miquelon'),
+    ('976', '976 - Mayotte'),
+    ('984', '984 - Terres Australes et Antarctiques'),
+    ('986', '986 - Wallis et Futuna'),
+    ('987', '987 - Polynesie Francaise'),
+    ('988', '988 - Nouvelle-Caledonie'),
+)
diff --git a/webapp/django/contrib/localflavor/generic/__init__.py b/webapp/django/contrib/localflavor/generic/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/generic/__init__.py
diff --git a/webapp/django/contrib/localflavor/generic/forms.py b/webapp/django/contrib/localflavor/generic/forms.py
new file mode 100644
index 0000000..8bafce7
--- /dev/null
+++ b/webapp/django/contrib/localflavor/generic/forms.py
@@ -0,0 +1,38 @@
+from django import forms
+
+DEFAULT_DATE_INPUT_FORMATS = (
+    '%Y-%m-%d', '%d/%m/%Y', '%d/%m/%y', # '2006-10-25', '25/10/2006', '25/10/06'
+    '%b %d %Y', '%b %d, %Y',            # 'Oct 25 2006', 'Oct 25, 2006'
+    '%d %b %Y', '%d %b, %Y',            # '25 Oct 2006', '25 Oct, 2006'
+    '%B %d %Y', '%B %d, %Y',            # 'October 25 2006', 'October 25, 2006'
+    '%d %B %Y', '%d %B, %Y',            # '25 October 2006', '25 October, 2006'
+)
+
+DEFAULT_DATETIME_INPUT_FORMATS = (
+    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
+    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
+    '%Y-%m-%d',              # '2006-10-25'
+    '%d/%m/%Y %H:%M:%S',     # '25/10/2006 14:30:59'
+    '%d/%m/%Y %H:%M',        # '25/10/2006 14:30'
+    '%d/%m/%Y',              # '25/10/2006'
+    '%d/%m/%y %H:%M:%S',     # '25/10/06 14:30:59'
+    '%d/%m/%y %H:%M',        # '25/10/06 14:30'
+    '%d/%m/%y',              # '25/10/06'
+)
+
+class DateField(forms.DateField):
+    """
+    A date input field which uses non-US date input formats by default.
+    """
+    def __init__(self, input_formats=None, *args, **kwargs):
+        input_formats = input_formats or DEFAULT_DATE_INPUT_FORMATS
+        super(DateField, self).__init__(input_formats=input_formats, *args, **kwargs)
+
+class DateTimeField(forms.DateTimeField):
+    """
+    A date and time input field which uses non-US date and time input formats
+    by default.
+    """
+    def __init__(self, input_formats=None, *args, **kwargs):
+        input_formats = input_formats or DEFAULT_DATETIME_INPUT_FORMATS
+        super(DateTimeField, self).__init__(input_formats=input_formats, *args, **kwargs)
diff --git a/webapp/django/contrib/localflavor/in_/__init__.py b/webapp/django/contrib/localflavor/in_/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/in_/__init__.py
diff --git a/webapp/django/contrib/localflavor/in_/forms.py b/webapp/django/contrib/localflavor/in_/forms.py
new file mode 100644
index 0000000..270b0a0
--- /dev/null
+++ b/webapp/django/contrib/localflavor/in_/forms.py
@@ -0,0 +1,55 @@
+"""
+India-specific Form helpers.
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.utils.encoding import smart_unicode
+from django.utils.translation import gettext
+import re
+
+
+class INZipCodeField(RegexField):
+    default_error_messages = {
+        'invalid': gettext(u'Enter a zip code in the format XXXXXXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(INZipCodeField, self).__init__(r'^\d{6}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+class INStateField(Field):
+    """
+    A form field that validates its input is a Indian state name or
+    abbreviation. It normalizes the input to the standard two-letter vehicle
+    registration abbreviation for the given state or union territory
+    """
+    default_error_messages = {
+        'invalid': u'Enter a Indian state or territory.',
+    }
+
+    def clean(self, value):
+        from in_states import STATES_NORMALIZED
+        super(INStateField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        try:
+            value = value.strip().lower()
+        except AttributeError:
+            pass
+        else:
+            try:
+                return smart_unicode(STATES_NORMALIZED[value.strip().lower()])
+            except KeyError:
+                pass
+        raise ValidationError(self.error_messages['invalid'])
+
+class INStateSelect(Select):
+    """
+    A Select widget that uses a list of Indian states/territories as its
+    choices.
+    """
+    def __init__(self, attrs=None):
+        from in_states import STATE_CHOICES
+        super(INStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
+
diff --git a/webapp/django/contrib/localflavor/in_/in_states.py b/webapp/django/contrib/localflavor/in_/in_states.py
new file mode 100644
index 0000000..498efe7
--- /dev/null
+++ b/webapp/django/contrib/localflavor/in_/in_states.py
@@ -0,0 +1,84 @@
+"""
+A mapping of state misspellings/abbreviations to normalized abbreviations, and
+an alphabetical list of states for use as `choices` in a formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+STATE_CHOICES = (
+    'KA', 'Karnataka',
+    'AP', 'Andhra Pradesh',
+    'KL', 'Kerala',
+    'TN', 'Tamil Nadu',
+    'MH', 'Maharashtra',
+    'UP', 'Uttar Pradesh',
+    'GA', 'Goa',
+    'GJ', 'Gujarat',
+    'RJ', 'Rajasthan',
+    'HP', 'Himachal Pradesh',
+    'JK', 'Jammu and Kashmir',
+    'AR', 'Arunachal Pradesh',
+    'AS', 'Assam',
+    'BR', 'Bihar',
+    'CG', 'Chattisgarh',
+    'HR', 'Haryana',
+    'JH', 'Jharkhand',
+    'MP', 'Madhya Pradesh',
+    'MN', 'Manipur',
+    'ML', 'Meghalaya',
+    'MZ', 'Mizoram',
+    'NL', 'Nagaland',
+    'OR', 'Orissa',
+    'PB', 'Punjab',
+    'SK', 'Sikkim',
+    'TR', 'Tripura',
+    'UA', 'Uttarakhand',
+    'WB', 'West Bengal',
+
+    # Union Territories
+    'AN', 'Andaman and Nicobar',
+    'CH', 'Chandigarh',
+    'DN', 'Dadra and Nagar Haveli',
+    'DD', 'Daman and Diu',
+    'DL', 'Delhi',
+    'LD', 'Lakshadweep',
+    'PY', 'Pondicherry',
+)
+
+STATES_NORMALIZED = {
+    'ka': 'KA',
+    'karnatka': 'KA',
+    'tn': 'TN',
+    'tamilnad': 'TN',
+    'tamilnadu': 'TN',
+    'andra pradesh': 'AP',
+    'andrapradesh': 'AP',
+    'andhrapradesh': 'AP',
+    'maharastra': 'MH',
+    'mh': 'MH',
+    'ap': 'AP',
+    'dl': 'DL',
+    'dd': 'DD',
+    'br': 'BR',
+    'ar': 'AR',
+    'sk': 'SK',
+    'kl': 'KL',
+    'ga': 'GA',
+    'rj': 'RJ',
+    'rajastan': 'RJ',
+    'rajasthan': 'RJ',
+    'hp': 'HP',
+    'ua': 'UA',
+    'up': 'UP',
+    'mp': 'MP',
+    'mz': 'MZ',
+    'bengal': 'WB',
+    'westbengal': 'WB',
+    'mizo': 'MZ',
+    'orisa': 'OR',
+    'odisa': 'OR',
+    'or': 'OR',
+    'ar': 'AR',
+}
+
diff --git a/webapp/django/contrib/localflavor/is_/__init__.py b/webapp/django/contrib/localflavor/is_/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/is_/__init__.py
diff --git a/webapp/django/contrib/localflavor/is_/forms.py b/webapp/django/contrib/localflavor/is_/forms.py
new file mode 100644
index 0000000..cab6eb1
--- /dev/null
+++ b/webapp/django/contrib/localflavor/is_/forms.py
@@ -0,0 +1,82 @@
+"""
+Iceland specific form helpers.
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import RegexField, EMPTY_VALUES
+from django.forms.widgets import Select
+from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import smart_unicode
+
+class ISIdNumberField(RegexField):
+    """
+    Icelandic identification number (kennitala). This is a number every citizen
+    of Iceland has.
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid Icelandic identification number. The format is XXXXXX-XXXX.'),
+        'checksum': _(u'The Icelandic identification number is not valid.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        kwargs['min_length'],kwargs['max_length'] = 10,11
+        super(ISIdNumberField, self).__init__(r'^\d{6}(-| )?\d{4}$', *args, **kwargs)
+
+    def clean(self, value):
+        value = super(ISIdNumberField, self).clean(value)
+
+        if value in EMPTY_VALUES:
+            return u''
+
+        value = self._canonify(value)
+        if self._validate(value):
+            return self._format(value)
+        else:
+            raise ValidationError(self.error_messages['checksum'])
+
+    def _canonify(self, value):
+        """
+        Returns the value as only digits.
+        """
+        return value.replace('-', '').replace(' ', '')
+
+    def _validate(self, value):
+        """
+        Takes in the value in canonical form and checks the verifier digit. The
+        method is modulo 11.
+        """
+        check = [3, 2, 7, 6, 5, 4, 3, 2, 1, 0]
+        return sum([int(value[i]) * check[i] for i in range(10)]) % 11 == 0
+
+    def _format(self, value):
+        """
+        Takes in the value in canonical form and returns it in the common
+        display format.
+        """
+        return smart_unicode(value[:6]+'-'+value[6:])
+
+class ISPhoneNumberField(RegexField):
+    """
+    Icelandic phone number. Seven digits with an optional hyphen or space after
+    the first three digits.
+    """
+    def __init__(self, *args, **kwargs):
+        kwargs['min_length'], kwargs['max_length'] = 7,8
+        super(ISPhoneNumberField, self).__init__(r'^\d{3}(-| )?\d{4}$', *args, **kwargs)
+
+    def clean(self, value):
+        value = super(ISPhoneNumberField, self).clean(value)
+
+        if value in EMPTY_VALUES:
+            return u''
+
+        return value.replace('-', '').replace(' ', '')
+
+class ISPostalCodeSelect(Select):
+    """
+    A Select widget that uses a list of Icelandic postal codes as its choices.
+    """
+    def __init__(self, attrs=None):
+        from is_postalcodes import IS_POSTALCODES
+        super(ISPostalCodeSelect, self).__init__(attrs, choices=IS_POSTALCODES)
+
diff --git a/webapp/django/contrib/localflavor/is_/is_postalcodes.py b/webapp/django/contrib/localflavor/is_/is_postalcodes.py
new file mode 100644
index 0000000..4feca9c
--- /dev/null
+++ b/webapp/django/contrib/localflavor/is_/is_postalcodes.py
@@ -0,0 +1,151 @@
+# -*- coding: utf-8 -*-
+
+IS_POSTALCODES = (
+    ('101', u'101 Reykjavík'),
+    ('103', u'103 Reykjavík'),
+    ('104', u'104 Reykjavík'),
+    ('105', u'105 Reykjavík'),
+    ('107', u'107 Reykjavík'),
+    ('108', u'108 Reykjavík'),
+    ('109', u'109 Reykjavík'),
+    ('110', u'110 Reykjavík'),
+    ('111', u'111 Reykjavík'),
+    ('112', u'112 Reykjavík'),
+    ('113', u'113 Reykjavík'),
+    ('116', u'116 Kjalarnes'),
+    ('121', u'121 Reykjavík'),
+    ('123', u'123 Reykjavík'),
+    ('124', u'124 Reykjavík'),
+    ('125', u'125 Reykjavík'),
+    ('127', u'127 Reykjavík'),
+    ('128', u'128 Reykjavík'),
+    ('129', u'129 Reykjavík'),
+    ('130', u'130 Reykjavík'),
+    ('132', u'132 Reykjavík'),
+    ('150', u'150 Reykjavík'),
+    ('155', u'155 Reykjavík'),
+    ('170', u'170 Seltjarnarnes'),
+    ('172', u'172 Seltjarnarnes'),
+    ('190', u'190 Vogar'),
+    ('200', u'200 Kópavogur'),
+    ('201', u'201 Kópavogur'),
+    ('202', u'202 Kópavogur'),
+    ('203', u'203 Kópavogur'),
+    ('210', u'210 Garðabær'),
+    ('212', u'212 Garðabær'),
+    ('220', u'220 Hafnarfjörður'),
+    ('221', u'221 Hafnarfjörður'),
+    ('222', u'222 Hafnarfjörður'),
+    ('225', u'225 Álftanes'),
+    ('230', u'230 Reykjanesbær'),
+    ('232', u'232 Reykjanesbær'),
+    ('233', u'233 Reykjanesbær'),
+    ('235', u'235 Keflavíkurflugvöllur'),
+    ('240', u'240 Grindavík'),
+    ('245', u'245 Sandgerði'),
+    ('250', u'250 Garður'),
+    ('260', u'260 Reykjanesbær'),
+    ('270', u'270 Mosfellsbær'),
+    ('300', u'300 Akranes'),
+    ('301', u'301 Akranes'),
+    ('302', u'302 Akranes'),
+    ('310', u'310 Borgarnes'),
+    ('311', u'311 Borgarnes'),
+    ('320', u'320 Reykholt í Borgarfirði'),
+    ('340', u'340 Stykkishólmur'),
+    ('345', u'345 Flatey á Breiðafirði'),
+    ('350', u'350 Grundarfjörður'),
+    ('355', u'355 Ólafsvík'),
+    ('356', u'356 Snæfellsbær'),
+    ('360', u'360 Hellissandur'),
+    ('370', u'370 Búðardalur'),
+    ('371', u'371 Búðardalur'),
+    ('380', u'380 Reykhólahreppur'),
+    ('400', u'400 Ísafjörður'),
+    ('401', u'401 Ísafjörður'),
+    ('410', u'410 Hnífsdalur'),
+    ('415', u'415 Bolungarvík'),
+    ('420', u'420 Súðavík'),
+    ('425', u'425 Flateyri'),
+    ('430', u'430 Suðureyri'),
+    ('450', u'450 Patreksfjörður'),
+    ('451', u'451 Patreksfjörður'),
+    ('460', u'460 Tálknafjörður'),
+    ('465', u'465 Bíldudalur'),
+    ('470', u'470 Þingeyri'),
+    ('471', u'471 Þingeyri'),
+    ('500', u'500 Staður'),
+    ('510', u'510 Hólmavík'),
+    ('512', u'512 Hólmavík'),
+    ('520', u'520 Drangsnes'),
+    ('522', u'522 Kjörvogur'),
+    ('523', u'523 Bær'),
+    ('524', u'524 Norðurfjörður'),
+    ('530', u'530 Hvammstangi'),
+    ('531', u'531 Hvammstangi'),
+    ('540', u'540 Blönduós'),
+    ('541', u'541 Blönduós'),
+    ('545', u'545 Skagaströnd'),
+    ('550', u'550 Sauðárkrókur'),
+    ('551', u'551 Sauðárkrókur'),
+    ('560', u'560 Varmahlíð'),
+    ('565', u'565 Hofsós'),
+    ('566', u'566 Hofsós'),
+    ('570', u'570 Fljót'),
+    ('580', u'580 Siglufjörður'),
+    ('600', u'600 Akureyri'),
+    ('601', u'601 Akureyri'),
+    ('602', u'602 Akureyri'),
+    ('603', u'603 Akureyri'),
+    ('610', u'610 Grenivík'),
+    ('611', u'611 Grímsey'),
+    ('620', u'620 Dalvík'),
+    ('621', u'621 Dalvík'),
+    ('625', u'625 Ólafsfjörður'),
+    ('630', u'630 Hrísey'),
+    ('640', u'640 Húsavík'),
+    ('641', u'641 Húsavík'),
+    ('645', u'645 Fosshóll'),
+    ('650', u'650 Laugar'),
+    ('660', u'660 Mývatn'),
+    ('670', u'670 Kópasker'),
+    ('671', u'671 Kópasker'),
+    ('675', u'675 Raufarhöfn'),
+    ('680', u'680 Þórshöfn'),
+    ('681', u'681 Þórshöfn'),
+    ('685', u'685 Bakkafjörður'),
+    ('690', u'690 Vopnafjörður'),
+    ('700', u'700 Egilsstaðir'),
+    ('701', u'701 Egilsstaðir'),
+    ('710', u'710 Seyðisfjörður'),
+    ('715', u'715 Mjóifjörður'),
+    ('720', u'720 Borgarfjörður eystri'),
+    ('730', u'730 Reyðarfjörður'),
+    ('735', u'735 Eskifjörður'),
+    ('740', u'740 Neskaupstaður'),
+    ('750', u'750 Fáskrúðsfjörður'),
+    ('755', u'755 Stöðvarfjörður'),
+    ('760', u'760 Breiðdalsvík'),
+    ('765', u'765 Djúpivogur'),
+    ('780', u'780 Höfn í Hornafirði'),
+    ('781', u'781 Höfn í Hornafirði'),
+    ('785', u'785 Öræfi'),
+    ('800', u'800 Selfoss'),
+    ('801', u'801 Selfoss'),
+    ('802', u'802 Selfoss'),
+    ('810', u'810 Hveragerði'),
+    ('815', u'815 Þorlákshöfn'),
+    ('820', u'820 Eyrarbakki'),
+    ('825', u'825 Stokkseyri'),
+    ('840', u'840 Laugarvatn'),
+    ('845', u'845 Flúðir'),
+    ('850', u'850 Hella'),
+    ('851', u'851 Hella'),
+    ('860', u'860 Hvolsvöllur'),
+    ('861', u'861 Hvolsvöllur'),
+    ('870', u'870 Vík'),
+    ('871', u'871 Vík'),
+    ('880', u'880 Kirkjubæjarklaustur'),
+    ('900', u'900 Vestmannaeyjar'),
+    ('902', u'902 Vestmannaeyjar')
+)
diff --git a/webapp/django/contrib/localflavor/it/__init__.py b/webapp/django/contrib/localflavor/it/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/it/__init__.py
diff --git a/webapp/django/contrib/localflavor/it/forms.py b/webapp/django/contrib/localflavor/it/forms.py
new file mode 100644
index 0000000..d2d6519
--- /dev/null
+++ b/webapp/django/contrib/localflavor/it/forms.py
@@ -0,0 +1,83 @@
+"""
+IT-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import smart_unicode
+from django.contrib.localflavor.it.util import ssn_check_digit, vat_number_check_digit
+import re
+
+class ITZipCodeField(RegexField):
+    default_error_messages = {
+        'invalid': _('Enter a valid zip code.'),
+    }
+    def __init__(self, *args, **kwargs):
+        super(ITZipCodeField, self).__init__(r'^\d{5}$',
+        max_length=None, min_length=None, *args, **kwargs)
+
+class ITRegionSelect(Select):
+    """
+    A Select widget that uses a list of IT regions as its choices.
+    """
+    def __init__(self, attrs=None):
+        from it_region import REGION_CHOICES
+        super(ITRegionSelect, self).__init__(attrs, choices=REGION_CHOICES)
+
+class ITProvinceSelect(Select):
+    """
+    A Select widget that uses a list of IT provinces as its choices.
+    """
+    def __init__(self, attrs=None):
+        from it_province import PROVINCE_CHOICES
+        super(ITProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES)
+
+class ITSocialSecurityNumberField(RegexField):
+    """
+    A form field that validates Italian Social Security numbers (codice fiscale).
+    For reference see http://www.agenziaentrate.it/ and search for
+    'Informazioni sulla codificazione delle persone fisiche'.
+    """
+    default_error_messages = {
+        'invalid': _(u'Enter a valid Social Security number.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ITSocialSecurityNumberField, self).__init__(r'^\w{3}\s*\w{3}\s*\w{5}\s*\w{5}$',
+        max_length=None, min_length=None, *args, **kwargs)
+
+    def clean(self, value):
+        value = super(ITSocialSecurityNumberField, self).clean(value)
+        if value == u'':
+            return value
+        value = re.sub('\s', u'', value).upper()
+        try:
+            check_digit = ssn_check_digit(value)
+        except ValueError:
+            raise ValidationError(self.error_messages['invalid'])
+        if not value[15] == check_digit:
+            raise ValidationError(self.error_messages['invalid'])
+        return value
+
+class ITVatNumberField(Field):
+    """
+    A form field that validates Italian VAT numbers (partita IVA).
+    """
+    default_error_messages = {
+        'invalid': _(u'Enter a valid VAT number.'),
+    }
+
+    def clean(self, value):
+        value = super(ITVatNumberField, self).clean(value)
+        if value == u'':
+            return value
+        try:
+            vat_number = int(value)
+        except ValueError:
+            raise ValidationError(self.error_messages['invalid'])
+        vat_number = str(vat_number).zfill(11)
+        check_digit = vat_number_check_digit(vat_number[0:10])
+        if not vat_number[10] == check_digit:
+            raise ValidationError(self.error_messages['invalid'])
+        return smart_unicode(vat_number)
diff --git a/webapp/django/contrib/localflavor/it/it_province.py b/webapp/django/contrib/localflavor/it/it_province.py
new file mode 100644
index 0000000..8737335
--- /dev/null
+++ b/webapp/django/contrib/localflavor/it/it_province.py
@@ -0,0 +1,114 @@
+# -*- coding: utf-8 -*
+
+PROVINCE_CHOICES = (
+    ('AG', 'Agrigento'),
+    ('AL', 'Alessandria'),
+    ('AN', 'Ancona'),
+    ('AO', 'Aosta'),
+    ('AR', 'Arezzo'),
+    ('AP', 'Ascoli Piceno'),
+    ('AT', 'Asti'),
+    ('AV', 'Avellino'),
+    ('BA', 'Bari'),
+#    ('BT', 'Barletta-Andria-Trani'), # active starting from 2009
+    ('BL', 'Belluno'),
+    ('BN', 'Benevento'),
+    ('BG', 'Bergamo'),
+    ('BI', 'Biella'),
+    ('BO', 'Bologna'),
+    ('BZ', 'Bolzano/Bozen'),
+    ('BS', 'Brescia'),
+    ('BR', 'Brindisi'),
+    ('CA', 'Cagliari'),
+    ('CL', 'Caltanissetta'),
+    ('CB', 'Campobasso'),
+    ('CI', 'Carbonia-Iglesias'),
+    ('CE', 'Caserta'),
+    ('CT', 'Catania'),
+    ('CZ', 'Catanzaro'),
+    ('CH', 'Chieti'),
+    ('CO', 'Como'),
+    ('CS', 'Cosenza'),
+    ('CR', 'Cremona'),
+    ('KR', 'Crotone'),
+    ('CN', 'Cuneo'),
+    ('EN', 'Enna'),
+#    ('FM', 'Fermo'), # active starting from 2009
+    ('FE', 'Ferrara'),
+    ('FI', 'Firenze'),
+    ('FG', 'Foggia'),
+    ('FC', 'Forlì-Cesena'),
+    ('FR', 'Frosinone'),
+    ('GE', 'Genova'),
+    ('GO', 'Gorizia'),
+    ('GR', 'Grosseto'),
+    ('IM', 'Imperia'),
+    ('IS', 'Isernia'),
+    ('SP', 'La Spezia'),
+    ('AQ', u'L’Aquila'),
+    ('LT', 'Latina'),
+    ('LE', 'Lecce'),
+    ('LC', 'Lecco'),
+    ('LI', 'Livorno'),
+    ('LO', 'Lodi'),
+    ('LU', 'Lucca'),
+    ('MC', 'Macerata'),
+    ('MN', 'Mantova'),
+    ('MS', 'Massa-Carrara'),
+    ('MT', 'Matera'),
+    ('VS', 'Medio Campidano'),
+    ('ME', 'Messina'),
+    ('MI', 'Milano'),
+    ('MO', 'Modena'),
+#    ('MB', 'Monza e Brianza'), # active starting from 2009
+    ('NA', 'Napoli'),
+    ('NO', 'Novara'),
+    ('NU', 'Nuoro'),
+    ('OG', 'Ogliastra'),
+    ('OT', 'Olbia-Tempio'),
+    ('OR', 'Oristano'),
+    ('PD', 'Padova'),
+    ('PA', 'Palermo'),
+    ('PR', 'Parma'),
+    ('PV', 'Pavia'),
+    ('PG', 'Perugia'),
+    ('PU', 'Pesaro e Urbino'),
+    ('PE', 'Pescara'),
+    ('PC', 'Piacenza'),
+    ('PI', 'Pisa'),
+    ('PT', 'Pistoia'),
+    ('PN', 'Pordenone'),
+    ('PZ', 'Potenza'),
+    ('PO', 'Prato'),
+    ('RG', 'Ragusa'),
+    ('RA', 'Ravenna'),
+    ('RC', 'Reggio Calabria'),
+    ('RE', 'Reggio Emilia'),
+    ('RI', 'Rieti'),
+    ('RN', 'Rimini'),
+    ('RM', 'Roma'),
+    ('RO', 'Rovigo'),
+    ('SA', 'Salerno'),
+    ('SS', 'Sassari'),
+    ('SV', 'Savona'),
+    ('SI', 'Siena'),
+    ('SR', 'Siracusa'),
+    ('SO', 'Sondrio'),
+    ('TA', 'Taranto'),
+    ('TE', 'Teramo'),
+    ('TR', 'Terni'),
+    ('TO', 'Torino'),
+    ('TP', 'Trapani'),
+    ('TN', 'Trento'),
+    ('TV', 'Treviso'),
+    ('TS', 'Trieste'),
+    ('UD', 'Udine'),
+    ('VA', 'Varese'),
+    ('VE', 'Venezia'),
+    ('VB', 'Verbano Cusio Ossola'),
+    ('VC', 'Vercelli'),
+    ('VR', 'Verona'),
+    ('VV', 'Vibo Valentia'),
+    ('VI', 'Vicenza'),
+    ('VT', 'Viterbo'),
+)
diff --git a/webapp/django/contrib/localflavor/it/it_region.py b/webapp/django/contrib/localflavor/it/it_region.py
new file mode 100644
index 0000000..0700b46
--- /dev/null
+++ b/webapp/django/contrib/localflavor/it/it_region.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*
+
+REGION_CHOICES = (
+    ('ABR', 'Abruzzo'),
+    ('BAS', 'Basilicata'),
+    ('CAL', 'Calabria'),
+    ('CAM', 'Campania'),
+    ('EMR', 'Emilia-Romagna'),
+    ('FVG', 'Friuli-Venezia Giulia'),
+    ('LAZ', 'Lazio'),
+    ('LIG', 'Liguria'),
+    ('LOM', 'Lombardia'),
+    ('MAR', 'Marche'),
+    ('MOL', 'Molise'),
+    ('PMN', 'Piemonte'),
+    ('PUG', 'Puglia'),
+    ('SAR', 'Sardegna'),
+    ('SIC', 'Sicilia'),
+    ('TOS', 'Toscana'),
+    ('TAA', 'Trentino-Alto Adige'),
+    ('UMB', 'Umbria'),
+    ('VAO', u'Valle d’Aosta'),
+    ('VEN', 'Veneto'),
+)
diff --git a/webapp/django/contrib/localflavor/it/util.py b/webapp/django/contrib/localflavor/it/util.py
new file mode 100644
index 0000000..c162ff7
--- /dev/null
+++ b/webapp/django/contrib/localflavor/it/util.py
@@ -0,0 +1,44 @@
+from django.utils.encoding import smart_str, smart_unicode
+
+def ssn_check_digit(value):
+    "Calculate Italian social security number check digit."
+    ssn_even_chars = {
+        '0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8,
+        '9': 9, 'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7,
+        'I': 8, 'J': 9, 'K': 10, 'L': 11, 'M': 12, 'N': 13, 'O': 14, 'P': 15,
+        'Q': 16, 'R': 17, 'S': 18, 'T': 19, 'U': 20, 'V': 21, 'W': 22, 'X': 23,
+        'Y': 24, 'Z': 25
+    }
+    ssn_odd_chars = {
+        '0': 1, '1': 0, '2': 5, '3': 7, '4': 9, '5': 13, '6': 15, '7': 17, '8':
+        19, '9': 21, 'A': 1, 'B': 0, 'C': 5, 'D': 7, 'E': 9, 'F': 13, 'G': 15,
+        'H': 17, 'I': 19, 'J': 21, 'K': 2, 'L': 4, 'M': 18, 'N': 20, 'O': 11,
+        'P': 3, 'Q': 6, 'R': 8, 'S': 12, 'T': 14, 'U': 16, 'V': 10, 'W': 22,
+        'X': 25, 'Y': 24, 'Z': 23
+    }
+    # Chars from 'A' to 'Z'
+    ssn_check_digits = [chr(x) for x in range(65, 91)]
+
+    ssn = value.upper()
+    total = 0
+    for i in range(0, 15):
+        try:
+            if i % 2 == 0:
+                total += ssn_odd_chars[ssn[i]]
+            else:
+                total += ssn_even_chars[ssn[i]]
+        except KeyError:
+            msg = "Character '%(char)s' is not allowed." % {'char': ssn[i]}
+            raise ValueError(msg)
+    return ssn_check_digits[total % 26]
+
+def vat_number_check_digit(vat_number):
+    "Calculate Italian VAT number check digit."
+    normalized_vat_number = smart_str(vat_number).zfill(10)
+    total = 0
+    for i in range(0, 10, 2):
+        total += int(normalized_vat_number[i])
+    for i in range(1, 11, 2):
+        quotient , remainder = divmod(int(normalized_vat_number[i]) * 2, 10)
+        total += quotient + remainder
+    return smart_unicode((10 - total % 10) % 10)
diff --git a/webapp/django/contrib/localflavor/jp/__init__.py b/webapp/django/contrib/localflavor/jp/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/jp/__init__.py
diff --git a/webapp/django/contrib/localflavor/jp/forms.py b/webapp/django/contrib/localflavor/jp/forms.py
new file mode 100644
index 0000000..c86dbaf
--- /dev/null
+++ b/webapp/django/contrib/localflavor/jp/forms.py
@@ -0,0 +1,38 @@
+"""
+JP-specific Form helpers
+"""
+
+from django.core import validators
+from django.forms import ValidationError
+from django.utils.translation import ugettext_lazy as _
+from django.forms.fields import RegexField, Select
+
+class JPPostalCodeField(RegexField):
+    """
+    A form field that validates its input is a Japanese postcode.
+
+    Accepts 7 digits, with or without a hyphen.
+    """
+    default_error_messages = {
+        'invalid': _('Enter a postal code in the format XXXXXXX or XXX-XXXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(JPPostalCodeField, self).__init__(r'^\d{3}-\d{4}$|^\d{7}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+    def clean(self, value):
+        """
+        Validates the input and returns a string that contains only numbers.
+        Returns an empty string for empty values.
+        """
+        v = super(JPPostalCodeField, self).clean(value)
+        return v.replace('-', '')
+
+class JPPrefectureSelect(Select):
+    """
+    A Select widget that uses a list of Japanese prefectures as its choices.
+    """
+    def __init__(self, attrs=None):
+        from jp_prefectures import JP_PREFECTURES
+        super(JPPrefectureSelect, self).__init__(attrs, choices=JP_PREFECTURES)
diff --git a/webapp/django/contrib/localflavor/jp/jp_prefectures.py b/webapp/django/contrib/localflavor/jp/jp_prefectures.py
new file mode 100644
index 0000000..f079fe6
--- /dev/null
+++ b/webapp/django/contrib/localflavor/jp/jp_prefectures.py
@@ -0,0 +1,51 @@
+from django.utils.translation import ugettext_lazy
+
+JP_PREFECTURES = (
+    ('hokkaido', ugettext_lazy('Hokkaido'),),
+    ('aomori', ugettext_lazy('Aomori'),),
+    ('iwate', ugettext_lazy('Iwate'),),
+    ('miyagi', ugettext_lazy('Miyagi'),),
+    ('akita', ugettext_lazy('Akita'),),
+    ('yamagata', ugettext_lazy('Yamagata'),),
+    ('fukushima', ugettext_lazy('Fukushima'),),
+    ('ibaraki', ugettext_lazy('Ibaraki'),),
+    ('tochigi', ugettext_lazy('Tochigi'),),
+    ('gunma', ugettext_lazy('Gunma'),),
+    ('saitama', ugettext_lazy('Saitama'),),
+    ('chiba', ugettext_lazy('Chiba'),),
+    ('tokyo', ugettext_lazy('Tokyo'),),
+    ('kanagawa', ugettext_lazy('Kanagawa'),),
+    ('yamanashi', ugettext_lazy('Yamanashi'),),
+    ('nagano', ugettext_lazy('Nagano'),),
+    ('niigata', ugettext_lazy('Niigata'),),
+    ('toyama', ugettext_lazy('Toyama'),),
+    ('ishikawa', ugettext_lazy('Ishikawa'),),
+    ('fukui', ugettext_lazy('Fukui'),),
+    ('gifu', ugettext_lazy('Gifu'),),
+    ('shizuoka', ugettext_lazy('Shizuoka'),),
+    ('aichi', ugettext_lazy('Aichi'),),
+    ('mie', ugettext_lazy('Mie'),),
+    ('shiga', ugettext_lazy('Shiga'),),
+    ('kyoto', ugettext_lazy('Kyoto'),),
+    ('osaka', ugettext_lazy('Osaka'),),
+    ('hyogo', ugettext_lazy('Hyogo'),),
+    ('nara', ugettext_lazy('Nara'),),
+    ('wakayama', ugettext_lazy('Wakayama'),),
+    ('tottori', ugettext_lazy('Tottori'),),
+    ('shimane', ugettext_lazy('Shimane'),),
+    ('okayama', ugettext_lazy('Okayama'),),
+    ('hiroshima', ugettext_lazy('Hiroshima'),),
+    ('yamaguchi', ugettext_lazy('Yamaguchi'),),
+    ('tokushima', ugettext_lazy('Tokushima'),),
+    ('kagawa', ugettext_lazy('Kagawa'),),
+    ('ehime', ugettext_lazy('Ehime'),),
+    ('kochi', ugettext_lazy('Kochi'),),
+    ('fukuoka', ugettext_lazy('Fukuoka'),),
+    ('saga', ugettext_lazy('Saga'),),
+    ('nagasaki', ugettext_lazy('Nagasaki'),),
+    ('kumamoto', ugettext_lazy('Kumamoto'),),
+    ('oita', ugettext_lazy('Oita'),),
+    ('miyazaki', ugettext_lazy('Miyazaki'),),
+    ('kagoshima', ugettext_lazy('Kagoshima'),),
+    ('okinawa', ugettext_lazy('Okinawa'),),
+)
diff --git a/webapp/django/contrib/localflavor/mx/__init__.py b/webapp/django/contrib/localflavor/mx/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/mx/__init__.py
diff --git a/webapp/django/contrib/localflavor/mx/forms.py b/webapp/django/contrib/localflavor/mx/forms.py
new file mode 100644
index 0000000..9581937
--- /dev/null
+++ b/webapp/django/contrib/localflavor/mx/forms.py
@@ -0,0 +1,14 @@
+"""
+Mexican-specific form helpers.
+"""
+
+from django.forms.fields import Select
+
+class MXStateSelect(Select):
+    """
+    A Select widget that uses a list of Mexican states as its choices.
+    """
+    def __init__(self, attrs=None):
+        from mx_states import STATE_CHOICES
+        super(MXStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
+
diff --git a/webapp/django/contrib/localflavor/mx/mx_states.py b/webapp/django/contrib/localflavor/mx/mx_states.py
new file mode 100644
index 0000000..eed1700
--- /dev/null
+++ b/webapp/django/contrib/localflavor/mx/mx_states.py
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+"""
+A list of Mexican states for use as `choices` in a formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+from django.utils.translation import ugettext_lazy as _
+
+STATE_CHOICES = (
+    ('AGU', _(u'Aguascalientes')),
+    ('BCN', _(u'Baja California')),
+    ('BCS', _(u'Baja California Sur')),
+    ('CAM', _(u'Campeche')),
+    ('CHH', _(u'Chihuahua')),
+    ('CHP', _(u'Chiapas')),
+    ('COA', _(u'Coahuila')),
+    ('COL', _(u'Colima')),
+    ('DIF', _(u'Distrito Federal')),
+    ('DUR', _(u'Durango')),
+    ('GRO', _(u'Guerrero')),
+    ('GUA', _(u'Guanajuato')),
+    ('HID', _(u'Hidalgo')),
+    ('JAL', _(u'Jalisco')),
+    ('MEX', _(u'Estado de México')),
+    ('MIC', _(u'Michoacán')),
+    ('MOR', _(u'Morelos')),
+    ('NAY', _(u'Nayarit')),
+    ('NLE', _(u'Nuevo León')),
+    ('OAX', _(u'Oaxaca')),
+    ('PUE', _(u'Puebla')),
+    ('QUE', _(u'Querétaro')),
+    ('ROO', _(u'Quintana Roo')),
+    ('SIN', _(u'Sinaloa')),
+    ('SLP', _(u'San Luis Potosí')),
+    ('SON', _(u'Sonora')),
+    ('TAB', _(u'Tabasco')),
+    ('TAM', _(u'Tamaulipas')),
+    ('TLA', _(u'Tlaxcala')),
+    ('VER', _(u'Veracruz')),
+    ('YUC', _(u'Yucatán')),
+    ('ZAC', _(u'Zacatecas')),
+)
+
diff --git a/webapp/django/contrib/localflavor/nl/__init__.py b/webapp/django/contrib/localflavor/nl/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/nl/__init__.py
diff --git a/webapp/django/contrib/localflavor/nl/forms.py b/webapp/django/contrib/localflavor/nl/forms.py
new file mode 100644
index 0000000..6dc5319
--- /dev/null
+++ b/webapp/django/contrib/localflavor/nl/forms.py
@@ -0,0 +1,100 @@
+"""
+NL-specific Form helpers
+"""
+
+import re
+
+from django.forms import ValidationError
+from django.forms.fields import Field, Select, EMPTY_VALUES
+from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import smart_unicode
+
+pc_re = re.compile('^\d{4}[A-Z]{2}$')
+sofi_re = re.compile('^\d{9}$')
+numeric_re = re.compile('^\d+$')
+
+class NLZipCodeField(Field):
+    """
+    A Dutch postal code field.
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid postal code'),
+    }
+
+    def clean(self, value):
+        super(NLZipCodeField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+
+        value = value.strip().upper().replace(' ', '')
+        if not pc_re.search(value):
+            raise ValidationError(self.error_messages['invalid'])
+
+        if int(value[:4]) < 1000:
+            raise ValidationError(self.error_messages['invalid'])
+
+        return u'%s %s' % (value[:4], value[4:])
+
+class NLProvinceSelect(Select):
+    """
+    A Select widget that uses a list of provinces of the Netherlands as its
+    choices.
+    """
+    def __init__(self, attrs=None):
+        from nl_provinces import PROVINCE_CHOICES
+        super(NLProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES)
+
+class NLPhoneNumberField(Field):
+    """
+    A Dutch telephone number field.
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid phone number'),
+    }
+
+    def clean(self, value):
+        super(NLPhoneNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+
+        phone_nr = re.sub('[\-\s\(\)]', '', smart_unicode(value))
+
+        if len(phone_nr) == 10 and numeric_re.search(phone_nr):
+            return value
+
+        if phone_nr[:3] == '+31' and len(phone_nr) == 12 and \
+           numeric_re.search(phone_nr[3:]):
+            return value
+
+        raise ValidationError(self.error_messages['invalid'])
+
+class NLSoFiNumberField(Field):
+    """
+    A Dutch social security number (SoFi/BSN) field.
+
+    http://nl.wikipedia.org/wiki/Sofinummer
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid SoFi number'),
+    }
+
+    def clean(self, value):
+        super(NLSoFiNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+
+        if not sofi_re.search(value):
+            raise ValidationError(self.error_messages['invalid'])
+
+        if int(value) == 0:
+            raise ValidationError(self.error_messages['invalid'])
+
+        checksum = 0
+        for i in range(9, 1, -1):
+            checksum += int(value[9-i]) * i
+        checksum -= int(value[-1])
+
+        if checksum % 11 != 0:
+            raise ValidationError(self.error_messages['invalid'])
+
+        return value
diff --git a/webapp/django/contrib/localflavor/nl/nl_provinces.py b/webapp/django/contrib/localflavor/nl/nl_provinces.py
new file mode 100644
index 0000000..602917d
--- /dev/null
+++ b/webapp/django/contrib/localflavor/nl/nl_provinces.py
@@ -0,0 +1,16 @@
+from django.utils.translation import ugettext_lazy as _
+
+PROVINCE_CHOICES = (
+    ('DR', _('Drenthe')),
+    ('FL', _('Flevoland')),
+    ('FR', _('Friesland')),
+    ('GL', _('Gelderland')),
+    ('GR', _('Groningen')),
+    ('LB', _('Limburg')),
+    ('NB', _('Noord-Brabant')),
+    ('NH', _('Noord-Holland')),
+    ('OV', _('Overijssel')),
+    ('UT', _('Utrecht')),
+    ('ZE', _('Zeeland')),
+    ('ZH', _('Zuid-Holland')),
+)
diff --git a/webapp/django/contrib/localflavor/no/__init__.py b/webapp/django/contrib/localflavor/no/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/no/__init__.py
diff --git a/webapp/django/contrib/localflavor/no/forms.py b/webapp/django/contrib/localflavor/no/forms.py
new file mode 100644
index 0000000..0fe55ad
--- /dev/null
+++ b/webapp/django/contrib/localflavor/no/forms.py
@@ -0,0 +1,81 @@
+"""
+Norwegian-specific Form helpers
+"""
+
+import re, datetime
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.utils.translation import ugettext_lazy as _
+
+class NOZipCodeField(RegexField):
+    default_error_messages = {
+        'invalid': _('Enter a zip code in the format XXXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(NOZipCodeField, self).__init__(r'^\d{4}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+class NOMunicipalitySelect(Select):
+    """
+    A Select widget that uses a list of Norwegian municipalities (fylker)
+    as its choices.
+    """
+    def __init__(self, attrs=None):
+        from no_municipalities import MUNICIPALITY_CHOICES
+        super(NOMunicipalitySelect, self).__init__(attrs, choices=MUNICIPALITY_CHOICES)
+
+class NOSocialSecurityNumber(Field):
+    """
+    Algorithm is documented at http://no.wikipedia.org/wiki/Personnummer
+    """
+    default_error_messages = {
+        'invalid': _(u'Enter a valid Norwegian social security number.'),
+    }
+
+    def clean(self, value):
+        super(NOSocialSecurityNumber, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+
+        if not re.match(r'^\d{11}$', value):
+            raise ValidationError(self.error_messages['invalid'])
+
+        day = int(value[:2])
+        month = int(value[2:4])
+        year2 = int(value[4:6])
+
+        inum = int(value[6:9])
+        self.birthday = None
+        try:
+            if 000 <= inum < 500:
+                self.birthday = datetime.date(1900+year2, month, day)
+            if 500 <= inum < 750 and year2 > 54:
+                self.birthday = datetime.date(1800+year2, month, day)
+            if 500 <= inum < 1000 and year2 < 40:
+                self.birthday = datetime.date(2000+year2, month, day)
+            if 900 <= inum < 1000 and year2 > 39:
+                self.birthday = datetime.date(1900+year2, month, day)
+        except ValueError:
+            raise ValidationError(self.error_messages['invalid'])
+
+        sexnum = int(value[8])
+        if sexnum % 2 == 0:
+            self.gender = 'F'
+        else:
+            self.gender = 'M'
+
+        digits = map(int, list(value))
+        weight_1 = [3, 7, 6, 1, 8, 9, 4, 5, 2, 1, 0]
+        weight_2 = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2, 1]
+
+        def multiply_reduce(aval, bval):
+            return sum([(a * b) for (a, b) in zip(aval, bval)])
+
+        if multiply_reduce(digits, weight_1) % 11 != 0:
+            raise ValidationError(self.error_messages['invalid'])
+        if multiply_reduce(digits, weight_2) % 11 != 0:
+            raise ValidationError(self.error_messages['invalid'])
+
+        return value
+
diff --git a/webapp/django/contrib/localflavor/no/no_municipalities.py b/webapp/django/contrib/localflavor/no/no_municipalities.py
new file mode 100644
index 0000000..d6bacda
--- /dev/null
+++ b/webapp/django/contrib/localflavor/no/no_municipalities.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+"""
+An alphabetical list of Norwegian municipalities (fylker) fro use as `choices`
+in a formfield.
+
+This exists in this standalone file so that it's on ly imported into memory
+when explicitly needed.
+"""
+
+MUNICIPALITY_CHOICES = (
+    ('akershus', u'Akershus'),
+    ('austagder', u'Aust-Agder'),
+    ('buskerud', u'Buskerud'),
+    ('finnmark', u'Finnmark'),
+    ('hedmark', u'Hedmark'),
+    ('hordaland', u'Hordaland'),
+    ('janmayen', u'Jan Mayen'),
+    ('moreogromsdal', u'Møre og Romsdal'),
+    ('nordtrondelag', u'Nord-Trøndelag'),
+    ('nordland', u'Nordland'),
+    ('oppland', u'Oppland'),
+    ('oslo', u'Oslo'),
+    ('rogaland', u'Rogaland'),
+    ('sognogfjordane', u'Sogn og Fjordane'),
+    ('svalbard', u'Svalbard'),
+    ('sortrondelag', u'Sør-Trøndelag'),
+    ('telemark', u'Telemark'),
+    ('troms', u'Troms'),
+    ('vestagder', u'Vest-Agder'),
+    ('vestfold', u'Vestfold'),
+    ('ostfold', u'Østfold')
+)
diff --git a/webapp/django/contrib/localflavor/pe/__init__.py b/webapp/django/contrib/localflavor/pe/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/pe/__init__.py
diff --git a/webapp/django/contrib/localflavor/pe/forms.py b/webapp/django/contrib/localflavor/pe/forms.py
new file mode 100644
index 0000000..d83a222
--- /dev/null
+++ b/webapp/django/contrib/localflavor/pe/forms.py
@@ -0,0 +1,71 @@
+# -*- coding: utf-8 -*-
+"""
+PE-specific Form helpers.
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import RegexField, CharField, Select, EMPTY_VALUES
+from django.utils.translation import ugettext_lazy as _
+
+class PERegionSelect(Select):
+    """
+    A Select widget that uses a list of Peruvian Regions as its choices.
+    """
+    def __init__(self, attrs=None):
+        from pe_region import REGION_CHOICES
+        super(PERegionSelect, self).__init__(attrs, choices=REGION_CHOICES)
+
+class PEDNIField(CharField):
+    """
+    A field that validates `Documento Nacional de IdentidadŽ (DNI) numbers.
+    """
+    default_error_messages = {
+        'invalid': _("This field requires only numbers."),
+        'max_digits': _("This field requires 8 digits."),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(PEDNIField, self).__init__(max_length=8, min_length=8, *args,
+                **kwargs)
+
+    def clean(self, value):
+        """
+        Value must be a string in the XXXXXXXX formats.
+        """
+        value = super(PEDNIField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        if not value.isdigit():
+            raise ValidationError(self.error_messages['invalid'])
+        if len(value) != 8:
+            raise ValidationError(self.error_messages['max_digits'])
+
+        return value
+
+class PERUCField(RegexField):
+    """
+    This field validates a RUC (Registro Unico de Contribuyentes). A RUC is of
+    the form XXXXXXXXXXX.
+    """
+    default_error_messages = {
+        'invalid': _("This field requires only numbers."),
+        'max_digits': _("This field requires 11 digits."),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(PERUCField, self).__init__(max_length=11, min_length=11, *args,
+            **kwargs)
+
+    def clean(self, value):
+        """
+        Value must be an 11-digit number.
+        """
+        value = super(PERUCField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        if not value.isdigit():
+            raise ValidationError(self.error_messages['invalid'])
+        if len(value) != 11:
+            raise ValidationError(self.error_messages['max_digits'])
+        return value
+
diff --git a/webapp/django/contrib/localflavor/pe/pe_region.py b/webapp/django/contrib/localflavor/pe/pe_region.py
new file mode 100644
index 0000000..9863bd3
--- /dev/null
+++ b/webapp/django/contrib/localflavor/pe/pe_region.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+"""
+A list of Peru regions as `choices` in a formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+REGION_CHOICES = (
+    ('AMA', u'Amazonas'),
+    ('ANC', u'Ancash'),
+    ('APU', u'Apurímac'),
+    ('ARE', u'Arequipa'),
+    ('AYA', u'Ayacucho'),
+    ('CAJ', u'Cajamarca'),
+    ('CAL', u'Callao'),
+    ('CUS', u'Cusco'),
+    ('HUV', u'Huancavelica'),
+    ('HUC', u'Huánuco'),
+    ('ICA', u'Ica'),
+    ('JUN', u'Junín'),
+    ('LAL', u'La Libertad'),
+    ('LAM', u'Lambayeque'),
+    ('LIM', u'Lima'),
+    ('LOR', u'Loreto'),
+    ('MDD', u'Madre de Dios'),
+    ('MOQ', u'Moquegua'),
+    ('PAS', u'Pasco'),
+    ('PIU', u'Piura'),
+    ('PUN', u'Puno'),
+    ('SAM', u'San Martín'),
+    ('TAC', u'Tacna'),
+    ('TUM', u'Tumbes'),
+    ('UCA', u'Ucayali'),
+)
diff --git a/webapp/django/contrib/localflavor/pl/__init__.py b/webapp/django/contrib/localflavor/pl/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/pl/__init__.py
diff --git a/webapp/django/contrib/localflavor/pl/forms.py b/webapp/django/contrib/localflavor/pl/forms.py
new file mode 100644
index 0000000..5532eb8
--- /dev/null
+++ b/webapp/django/contrib/localflavor/pl/forms.py
@@ -0,0 +1,160 @@
+"""
+Polish-specific form helpers
+"""
+
+import re
+
+from django.forms import ValidationError
+from django.forms.fields import Select, RegexField
+from django.utils.translation import ugettext_lazy as _
+
+class PLProvinceSelect(Select):
+    """
+    A select widget with list of Polish administrative provinces as choices.
+    """
+    def __init__(self, attrs=None):
+        from pl_voivodeships import VOIVODESHIP_CHOICES
+        super(PLProvinceSelect, self).__init__(attrs, choices=VOIVODESHIP_CHOICES)
+
+class PLCountiesSelect(Select):
+    """
+    A select widget with list of Polish administrative units as choices.
+    """
+    def __init__(self, attrs=None):
+        from pl_administrativeunits import ADMINISTRATIVE_UNIT_CHOICES
+        super(PLCountiesSelect, self).__init__(attrs, choices=ADMINISTRATIVE_UNIT_CHOICES)
+
+class PLPESELField(RegexField):
+    """
+    A form field that validates as Polish Identification Number (PESEL).
+
+    Checks the following rules:
+        * the length consist of 11 digits
+        * has a valid checksum
+
+    The algorithm is documented at http://en.wikipedia.org/wiki/PESEL.
+    """
+    default_error_messages = {
+        'invalid': _(u'National Identification Number consists of 11 digits.'),
+        'checksum': _(u'Wrong checksum for the National Identification Number.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(PLPESELField, self).__init__(r'^\d{11}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+    def clean(self,value):
+        super(PLPESELField, self).clean(value)
+        if not self.has_valid_checksum(value):
+            raise ValidationError(self.error_messages['checksum'])
+        return u'%s' % value
+
+    def has_valid_checksum(self, number):
+        """
+        Calculates a checksum with the provided algorithm.
+        """
+        multiple_table = (1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1)
+        result = 0
+        for i in range(len(number)):
+            result += int(number[i]) * multiple_table[i]
+        return result % 10 == 0
+
+class PLNIPField(RegexField):
+    """
+    A form field that validates as Polish Tax Number (NIP).
+    Valid forms are: XXX-XXX-YY-YY or XX-XX-YYY-YYY.
+
+    Checksum algorithm based on documentation at
+    http://wipos.p.lodz.pl/zylla/ut/nip-rego.html
+    """
+    default_error_messages = {
+        'invalid': _(u'Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX.'),
+        'checksum': _(u'Wrong checksum for the Tax Number (NIP).'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(PLNIPField, self).__init__(r'^\d{3}-\d{3}-\d{2}-\d{2}$|^\d{2}-\d{2}-\d{3}-\d{3}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+    def clean(self,value):
+        super(PLNIPField, self).clean(value)
+        value = re.sub("[-]", "", value)
+        if not self.has_valid_checksum(value):
+            raise ValidationError(self.error_messages['checksum'])
+        return u'%s' % value
+
+    def has_valid_checksum(self, number):
+        """
+        Calculates a checksum with the provided algorithm.
+        """
+        multiple_table = (6, 5, 7, 2, 3, 4, 5, 6, 7)
+        result = 0
+        for i in range(len(number)-1):
+            result += int(number[i]) * multiple_table[i]
+
+        result %= 11
+        if result == int(number[-1]):
+            return True
+        else:
+            return False
+
+class PLREGONField(RegexField):
+    """
+    A form field that validated as Polish National Official Business Register
+    Number (REGON). Valid numbers contain 7 or 9 digits.
+
+    More on the field: http://www.stat.gov.pl/bip/regon_ENG_HTML.htm
+
+    The checksum algorithm is documented at http://wipos.p.lodz.pl/zylla/ut/nip-rego.html
+    """
+    default_error_messages = {
+        'invalid': _(u'National Business Register Number (REGON) consists of 7 or 9 digits.'),
+        'checksum': _(u'Wrong checksum for the National Business Register Number (REGON).'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(PLREGONField, self).__init__(r'^\d{7,9}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+    def clean(self,value):
+        super(PLREGONField, self).clean(value)
+        if not self.has_valid_checksum(value):
+            raise ValidationError(self.error_messages['checksum'])
+        return u'%s' % value
+
+    def has_valid_checksum(self, number):
+        """
+        Calculates a checksum with the provided algorithm.
+        """
+        multiple_table_7 = (2, 3, 4, 5, 6, 7)
+        multiple_table_9 = (8, 9, 2, 3, 4, 5, 6, 7)
+        result = 0
+
+        if len(number) == 7:
+            multiple_table = multiple_table_7
+        else:
+            multiple_table = multiple_table_9
+
+        for i in range(len(number)-1):
+            result += int(number[i]) * multiple_table[i]
+
+        result %= 11
+        if result == 10:
+            result = 0
+        if result  == int(number[-1]):
+            return True
+        else:
+            return False
+
+class PLPostalCodeField(RegexField):
+    """
+    A form field that validates as Polish postal code.
+    Valid code is XX-XXX where X is digit.
+    """
+    default_error_messages = {
+        'invalid': _(u'Enter a postal code in the format XX-XXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(PLPostalCodeField, self).__init__(r'^\d{2}-\d{3}$',
+            max_length=None, min_length=None, *args, **kwargs)
diff --git a/webapp/django/contrib/localflavor/pl/pl_administrativeunits.py b/webapp/django/contrib/localflavor/pl/pl_administrativeunits.py
new file mode 100644
index 0000000..9777ea2
--- /dev/null
+++ b/webapp/django/contrib/localflavor/pl/pl_administrativeunits.py
@@ -0,0 +1,385 @@
+# -*- coding: utf-8 -*-
+"""
+Polish administrative units as in http://pl.wikipedia.org/wiki/Podzia%C5%82_administracyjny_Polski
+"""
+
+
+ADMINISTRATIVE_UNIT_CHOICES = (
+    ('wroclaw', u'Wrocław'),
+    ('jeleniagora', u'Jelenia Góra'),
+    ('legnica', u'Legnica'),
+    ('boleslawiecki', u'bolesławiecki'),
+    ('dzierzoniowski', u'dzierżoniowski'),
+    ('glogowski', u'głogowski'),
+    ('gorowski', u'górowski'),
+    ('jaworski', u'jaworski'),
+    ('jeleniogorski', u'jeleniogórski'),
+    ('kamiennogorski', u'kamiennogórski'),
+    ('klodzki', u'kłodzki'),
+    ('legnicki', u'legnicki'),
+    ('lubanski', u'lubański'),
+    ('lubinski', u'lubiński'),
+    ('lwowecki', u'lwówecki'),
+    ('milicki', u'milicki'),
+    ('olesnicki', u'oleśnicki'),
+    ('olawski', u'oławski'),
+    ('polkowicki', u'polkowicki'),
+    ('strzelinski', u'strzeliński'),
+    ('sredzki', u'średzki'),
+    ('swidnicki', u'świdnicki'),
+    ('trzebnicki', u'trzebnicki'),
+    ('walbrzyski', u'wałbrzyski'),
+    ('wolowski', u'wołowski'),
+    ('wroclawski', u'wrocławski'),
+    ('zabkowicki', u'ząbkowicki'),
+    ('zgorzelecki', u'zgorzelecki'),
+    ('zlotoryjski', u'złotoryjski'),
+    ('bydgoszcz', u'Bydgoszcz'),
+    ('torun', u'Toruń'),
+    ('wloclawek', u'Włocławek'),
+    ('grudziadz', u'Grudziądz'),
+    ('aleksandrowski', u'aleksandrowski'),
+    ('brodnicki', u'brodnicki'),
+    ('bydgoski', u'bydgoski'),
+    ('chelminski', u'chełmiński'),
+    ('golubsko-dobrzynski', u'golubsko-dobrzyński'),
+    ('grudziadzki', u'grudziądzki'),
+    ('inowroclawski', u'inowrocławski'),
+    ('lipnowski', u'lipnowski'),
+    ('mogilenski', u'mogileński'),
+    ('nakielski', u'nakielski'),
+    ('radziejowski', u'radziejowski'),
+    ('rypinski', u'rypiński'),
+    ('sepolenski', u'sępoleński'),
+    ('swiecki', u'świecki'),
+    ('torunski', u'toruński'),
+    ('tucholski', u'tucholski'),
+    ('wabrzeski', u'wąbrzeski'),
+    ('wloclawski', u'wrocławski'),
+    ('zninski', u'źniński'),
+    ('lublin', u'Lublin'),
+    ('biala-podlaska', u'Biała Podlaska'),
+    ('chelm', u'Chełm'),
+    ('zamosc', u'Zamość'),
+    ('bialski', u'bialski'),
+    ('bilgorajski', u'biłgorajski'),
+    ('chelmski', u'chełmski'),
+    ('hrubieszowski', u'hrubieszowski'),
+    ('janowski', u'janowski'),
+    ('krasnostawski', u'krasnostawski'),
+    ('krasnicki', u'kraśnicki'),
+    ('lubartowski', u'lubartowski'),
+    ('lubelski', u'lubelski'),
+    ('leczynski', u'łęczyński'),
+    ('lukowski', u'łukowski'),
+    ('opolski', u'opolski'),
+    ('parczewski', u'parczewski'),
+    ('pulawski', u'puławski'),
+    ('radzynski', u'radzyński'),
+    ('rycki', u'rycki'),
+    ('swidnicki', u'świdnicki'),
+    ('tomaszowski', u'tomaszowski'),
+    ('wlodawski', u'włodawski'),
+    ('zamojski', u'zamojski'),
+    ('gorzow-wielkopolski', u'Gorzów Wielkopolski'),
+    ('zielona-gora', u'Zielona Góra'),
+    ('gorzowski', u'gorzowski'),
+    ('krosnienski', u'krośnieński'),
+    ('miedzyrzecki', u'międzyrzecki'),
+    ('nowosolski', u'nowosolski'),
+    ('slubicki', u'słubicki'),
+    ('strzelecko-drezdenecki', u'strzelecko-drezdenecki'),
+    ('sulecinski', u'suleńciński'),
+    ('swiebodzinski', u'świebodziński'),
+    ('wschowski', u'wschowski'),
+    ('zielonogorski', u'zielonogórski'),
+    ('zaganski', u'żagański'),
+    ('zarski', u'żarski'),
+    ('lodz', u'Łódź'),
+    ('piotrkow-trybunalski', u'Piotrków Trybunalski'),
+    ('skierniewice', u'Skierniewice'),
+    ('belchatowski', u'bełchatowski'),
+    ('brzezinski', u'brzeziński'),
+    ('kutnowski', u'kutnowski'),
+    ('laski', u'łaski'),
+    ('leczycki', u'łęczycki'),
+    ('lowicki', u'łowicki'),
+    ('lodzki wschodni', u'łódzki wschodni'),
+    ('opoczynski', u'opoczyński'),
+    ('pabianicki', u'pabianicki'),
+    ('pajeczanski', u'pajęczański'),
+    ('piotrkowski', u'piotrkowski'),
+    ('poddebicki', u'poddębicki'),
+    ('radomszczanski', u'radomszczański'),
+    ('rawski', u'rawski'),
+    ('sieradzki', u'sieradzki'),
+    ('skierniewicki', u'skierniewicki'),
+    ('tomaszowski', u'tomaszowski'),
+    ('wielunski', u'wieluński'),
+    ('wieruszowski', u'wieruszowski'),
+    ('zdunskowolski', u'zduńskowolski'),
+    ('zgierski', u'zgierski'),
+    ('krakow', u'Kraków'),
+    ('tarnow', u'Tarnów'),
+    ('nowy-sacz', u'Nowy Sącz'),
+    ('bochenski', u'bocheński'),
+    ('brzeski', u'brzeski'),
+    ('chrzanowski', u'chrzanowski'),
+    ('dabrowski', u'dąbrowski'),
+    ('gorlicki', u'gorlicki'),
+    ('krakowski', u'krakowski'),
+    ('limanowski', u'limanowski'),
+    ('miechowski', u'miechowski'),
+    ('myslenicki', u'myślenicki'),
+    ('nowosadecki', u'nowosądecki'),
+    ('nowotarski', u'nowotarski'),
+    ('olkuski', u'olkuski'),
+    ('oswiecimski', u'oświęcimski'),
+    ('proszowicki', u'proszowicki'),
+    ('suski', u'suski'),
+    ('tarnowski', u'tarnowski'),
+    ('tatrzanski', u'tatrzański'),
+    ('wadowicki', u'wadowicki'),
+    ('wielicki', u'wielicki'),
+    ('warszawa', u'Warszawa'),
+    ('ostroleka', u'Ostrołęka'),
+    ('plock', u'Płock'),
+    ('radom', u'Radom'),
+    ('siedlce', u'Siedlce'),
+    ('bialobrzeski', u'białobrzeski'),
+    ('ciechanowski', u'ciechanowski'),
+    ('garwolinski', u'garwoliński'),
+    ('gostyninski', u'gostyniński'),
+    ('grodziski', u'grodziski'),
+    ('grojecki', u'grójecki'),
+    ('kozienicki', u'kozenicki'),
+    ('legionowski', u'legionowski'),
+    ('lipski', u'lipski'),
+    ('losicki', u'łosicki'),
+    ('makowski', u'makowski'),
+    ('minski', u'miński'),
+    ('mlawski', u'mławski'),
+    ('nowodworski', u'nowodworski'),
+    ('ostrolecki', u'ostrołęcki'),
+    ('ostrowski', u'ostrowski'),
+    ('otwocki', u'otwocki'),
+    ('piaseczynski', u'piaseczyński'),
+    ('plocki', u'płocki'),
+    ('plonski', u'płoński'),
+    ('pruszkowski', u'pruszkowski'),
+    ('przasnyski', u'przasnyski'),
+    ('przysuski', u'przysuski'),
+    ('pultuski', u'pułtuski'),
+    ('radomski', u'radomski'),
+    ('siedlecki', u'siedlecki'),
+    ('sierpecki', u'sierpecki'),
+    ('sochaczewski', u'sochaczewski'),
+    ('sokolowski', u'sokołowski'),
+    ('szydlowiecki', u'szydłowiecki'),
+    ('warszawski-zachodni', u'warszawski zachodni'),
+    ('wegrowski', u'węgrowski'),
+    ('wolominski', u'wołomiński'),
+    ('wyszkowski', u'wyszkowski'),
+    ('zwolenski', u'zwoleński'),
+    ('zurominski', u'żuromiński'),
+    ('zyrardowski', u'żyrardowski'),
+    ('opole', u'Opole'),
+    ('brzeski', u'brzeski'),
+    ('glubczycki', u'głubczyski'),
+    ('kedzierzynsko-kozielski', u'kędzierzyński-kozielski'),
+    ('kluczborski', u'kluczborski'),
+    ('krapkowicki', u'krapkowicki'),
+    ('namyslowski', u'namysłowski'),
+    ('nyski', u'nyski'),
+    ('oleski', u'oleski'),
+    ('opolski', u'opolski'),
+    ('prudnicki', u'prudnicki'),
+    ('strzelecki', u'strzelecki'),
+    ('rzeszow', u'Rzeszów'),
+    ('krosno', u'Krosno'),
+    ('przemysl', u'Przemyśl'),
+    ('tarnobrzeg', u'Tarnobrzeg'),
+    ('bieszczadzki', u'bieszczadzki'),
+    ('brzozowski', u'brzozowski'),
+    ('debicki', u'dębicki'),
+    ('jaroslawski', u'jarosławski'),
+    ('jasielski', u'jasielski'),
+    ('kolbuszowski', u'kolbuszowski'),
+    ('krosnienski', u'krośnieński'),
+    ('leski', u'leski'),
+    ('lezajski', u'leżajski'),
+    ('lubaczowski', u'lubaczowski'),
+    ('lancucki', u'łańcucki'),
+    ('mielecki', u'mielecki'),
+    ('nizanski', u'niżański'),
+    ('przemyski', u'przemyski'),
+    ('przeworski', u'przeworski'),
+    ('ropczycko-sedziszowski', u'ropczycko-sędziszowski'),
+    ('rzeszowski', u'rzeszowski'),
+    ('sanocki', u'sanocki'),
+    ('stalowowolski', u'stalowowolski'),
+    ('strzyzowski', u'strzyżowski'),
+    ('tarnobrzeski', u'tarnobrzeski'),
+    ('bialystok', u'Białystok'),
+    ('lomza', u'Łomża'),
+    ('suwalki', u'Suwałki'),
+    ('augustowski', u'augustowski'),
+    ('bialostocki', u'białostocki'),
+    ('bielski', u'bielski'),
+    ('grajewski', u'grajewski'),
+    ('hajnowski', u'hajnowski'),
+    ('kolnenski', u'kolneński'),
+    ('łomzynski', u'łomżyński'),
+    ('moniecki', u'moniecki'),
+    ('sejnenski', u'sejneński'),
+    ('siemiatycki', u'siematycki'),
+    ('sokolski', u'sokólski'),
+    ('suwalski', u'suwalski'),
+    ('wysokomazowiecki', u'wysokomazowiecki'),
+    ('zambrowski', u'zambrowski'),
+    ('gdansk', u'Gdańsk'),
+    ('gdynia', u'Gdynia'),
+    ('slupsk', u'Słupsk'),
+    ('sopot', u'Sopot'),
+    ('bytowski', u'bytowski'),
+    ('chojnicki', u'chojnicki'),
+    ('czluchowski', u'człuchowski'),
+    ('kartuski', u'kartuski'),
+    ('koscierski', u'kościerski'),
+    ('kwidzynski', u'kwidzyński'),
+    ('leborski', u'lęborski'),
+    ('malborski', u'malborski'),
+    ('nowodworski', u'nowodworski'),
+    ('gdanski', u'gdański'),
+    ('pucki', u'pucki'),
+    ('slupski', u'słupski'),
+    ('starogardzki', u'starogardzki'),
+    ('sztumski', u'sztumski'),
+    ('tczewski', u'tczewski'),
+    ('wejherowski', u'wejcherowski'),
+    ('katowice', u'Katowice'),
+    ('bielsko-biala', u'Bielsko-Biała'),
+    ('bytom', u'Bytom'),
+    ('chorzow', u'Chorzów'),
+    ('czestochowa', u'Częstochowa'),
+    ('dabrowa-gornicza', u'Dąbrowa Górnicza'),
+    ('gliwice', u'Gliwice'),
+    ('jastrzebie-zdroj', u'Jastrzębie Zdrój'),
+    ('jaworzno', u'Jaworzno'),
+    ('myslowice', u'Mysłowice'),
+    ('piekary-slaskie', u'Piekary Śląskie'),
+    ('ruda-slaska', u'Ruda Śląska'),
+    ('rybnik', u'Rybnik'),
+    ('siemianowice-slaskie', u'Siemianowice Śląskie'),
+    ('sosnowiec', u'Sosnowiec'),
+    ('swietochlowice', u'Świętochłowice'),
+    ('tychy', u'Tychy'),
+    ('zabrze', u'Zabrze'),
+    ('zory', u'Żory'),
+    ('bedzinski', u'będziński'),
+    ('bielski', u'bielski'),
+    ('bierunsko-ledzinski', u'bieruńsko-lędziński'),
+    ('cieszynski', u'cieszyński'),
+    ('czestochowski', u'częstochowski'),
+    ('gliwicki', u'gliwicki'),
+    ('klobucki', u'kłobucki'),
+    ('lubliniecki', u'lubliniecki'),
+    ('mikolowski', u'mikołowski'),
+    ('myszkowski', u'myszkowski'),
+    ('pszczynski', u'pszczyński'),
+    ('raciborski', u'raciborski'),
+    ('rybnicki', u'rybnicki'),
+    ('tarnogorski', u'tarnogórski'),
+    ('wodzislawski', u'wodzisławski'),
+    ('zawiercianski', u'zawierciański'),
+    ('zywiecki', u'żywiecki'),
+    ('kielce', u'Kielce'),
+    ('buski', u'buski'),
+    ('jedrzejowski', u'jędrzejowski'),
+    ('kazimierski', u'kazimierski'),
+    ('kielecki', u'kielecki'),
+    ('konecki', u'konecki'),
+    ('opatowski', u'opatowski'),
+    ('ostrowiecki', u'ostrowiecki'),
+    ('pinczowski', u'pińczowski'),
+    ('sandomierski', u'sandomierski'),
+    ('skarzyski', u'skarżyski'),
+    ('starachowicki', u'starachowicki'),
+    ('staszowski', u'staszowski'),
+    ('wloszczowski', u'włoszczowski'),
+    ('olsztyn', u'Olsztyn'),
+    ('elblag', u'Elbląg'),
+    ('bartoszycki', u'bartoszycki'),
+    ('braniewski', u'braniewski'),
+    ('dzialdowski', u'działdowski'),
+    ('elblaski', u'elbląski'),
+    ('elcki', u'ełcki'),
+    ('gizycki', u'giżycki'),
+    ('goldapski', u'gołdapski'),
+    ('ilawski', u'iławski'),
+    ('ketrzynski', u'kętrzyński'),
+    ('lidzbarski', u'lidzbarski'),
+    ('mragowski', u'mrągowski'),
+    ('nidzicki', u'nidzicki'),
+    ('nowomiejski', u'nowomiejski'),
+    ('olecki', u'olecki'),
+    ('olsztynski', u'olsztyński'),
+    ('ostrodzki', u'ostródzki'),
+    ('piski', u'piski'),
+    ('szczycienski', u'szczycieński'),
+    ('wegorzewski', u'węgorzewski'),
+    ('poznan', u'Poznań'),
+    ('kalisz', u'Kalisz'),
+    ('konin', u'Konin'),
+    ('leszno', u'Leszno'),
+    ('chodzieski', u'chodziejski'),
+    ('czarnkowsko-trzcianecki', u'czarnkowsko-trzcianecki'),
+    ('gnieznienski', u'gnieźnieński'),
+    ('gostynski', u'gostyński'),
+    ('grodziski', u'grodziski'),
+    ('jarocinski', u'jarociński'),
+    ('kaliski', u'kaliski'),
+    ('kepinski', u'kępiński'),
+    ('kolski', u'kolski'),
+    ('koninski', u'koniński'),
+    ('koscianski', u'kościański'),
+    ('krotoszynski', u'krotoszyński'),
+    ('leszczynski', u'leszczyński'),
+    ('miedzychodzki', u'międzychodzki'),
+    ('nowotomyski', u'nowotomyski'),
+    ('obornicki', u'obornicki'),
+    ('ostrowski', u'ostrowski'),
+    ('ostrzeszowski', u'ostrzeszowski'),
+    ('pilski', u'pilski'),
+    ('pleszewski', u'pleszewski'),
+    ('poznanski', u'poznański'),
+    ('rawicki', u'rawicki'),
+    ('slupecki', u'słupecki'),
+    ('szamotulski', u'szamotulski'),
+    ('sredzki', u'średzki'),
+    ('sremski', u'śremski'),
+    ('turecki', u'turecki'),
+    ('wagrowiecki', u'wągrowiecki'),
+    ('wolsztynski', u'wolsztyński'),
+    ('wrzesinski', u'wrzesiński'),
+    ('zlotowski', u'złotowski'),
+    ('bialogardzki', u'białogardzki'),
+    ('choszczenski', u'choszczeński'),
+    ('drawski', u'drawski'),
+    ('goleniowski', u'goleniowski'),
+    ('gryficki', u'gryficki'),
+    ('gryfinski', u'gryfiński'),
+    ('kamienski', u'kamieński'),
+    ('kolobrzeski', u'kołobrzeski'),
+    ('koszalinski', u'koszaliński'),
+    ('lobeski', u'łobeski'),
+    ('mysliborski', u'myśliborski'),
+    ('policki', u'policki'),
+    ('pyrzycki', u'pyrzycki'),
+    ('slawienski', u'sławieński'),
+    ('stargardzki', u'stargardzki'),
+    ('szczecinecki', u'szczecinecki'),
+    ('swidwinski', u'świdwiński'),
+    ('walecki', u'wałecki'),
+)
+
diff --git a/webapp/django/contrib/localflavor/pl/pl_voivodeships.py b/webapp/django/contrib/localflavor/pl/pl_voivodeships.py
new file mode 100644
index 0000000..d8caede
--- /dev/null
+++ b/webapp/django/contrib/localflavor/pl/pl_voivodeships.py
@@ -0,0 +1,24 @@
+"""
+Polish voivodeship as in http://en.wikipedia.org/wiki/Poland#Administrative_division
+"""
+
+from django.utils.translation import ugettext_lazy as _
+
+VOIVODESHIP_CHOICES = (
+    ('lower_silesia', _('Lower Silesia')),
+    ('kuyavia-pomerania', _('Kuyavia-Pomerania')),
+    ('lublin', _('Lublin')),
+    ('lubusz', _('Lubusz')),
+    ('lodz', _('Lodz')),
+    ('lesser_poland', _('Lesser Poland')),
+    ('masovia', _('Masovia')),
+    ('opole', _('Opole')),
+    ('subcarpatia', _('Subcarpatia')),
+    ('podlasie', _('Podlasie')),
+    ('pomerania', _('Pomerania')),
+    ('silesia', _('Silesia')),
+    ('swietokrzyskie', _('Swietokrzyskie')),
+    ('warmia-masuria', _('Warmia-Masuria')),
+    ('greater_poland', _('Greater Poland')),
+    ('west_pomerania', _('West Pomerania')),
+)
diff --git a/webapp/django/contrib/localflavor/ro/__init__.py b/webapp/django/contrib/localflavor/ro/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ro/__init__.py
diff --git a/webapp/django/contrib/localflavor/ro/forms.py b/webapp/django/contrib/localflavor/ro/forms.py
new file mode 100644
index 0000000..ca51d91
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ro/forms.py
@@ -0,0 +1,200 @@
+# -*- coding: utf-8 -*-
+"""
+Romanian specific form helpers.
+"""
+
+import re
+
+from django.forms import ValidationError, Field, RegexField, Select
+from django.forms.fields import EMPTY_VALUES
+from django.utils.translation import ugettext_lazy as _
+
+class ROCIFField(RegexField):
+    """
+    A Romanian fiscal identity code (CIF) field
+
+    For CIF validation algorithm see http://www.validari.ro/cui.html
+    """
+    default_error_messages = {
+        'invalid': _("Enter a valid CIF."),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ROCIFField, self).__init__(r'^[0-9]{2,10}', max_length=10,
+                min_length=2, *args, **kwargs)
+
+    def clean(self, value):
+        """
+        CIF validation
+        """
+        value = super(ROCIFField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        # strip RO part
+        if value[0:2] == 'RO':
+            value = value[2:]
+        key = '753217532'[::-1]
+        value = value[::-1]
+        key_iter = iter(key)
+        checksum = 0
+        for digit in value[1:]:
+            checksum += int(digit) * int(key_iter.next())
+        checksum = checksum * 10 % 11
+        if checksum == 10:
+            checksum = 0
+        if checksum != int(value[0]):
+            raise ValidationError(self.error_messages['invalid'])
+        return value[::-1]
+
+class ROCNPField(RegexField):
+    """
+    A Romanian personal identity code (CNP) field
+
+    For CNP validation algorithm see http://www.validari.ro/cnp.html
+    """
+    default_error_messages = {
+        'invalid': _("Enter a valid CNP."),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ROCNPField, self).__init__(r'^[1-9][0-9]{12}', max_length=13,
+            min_length=13, *args, **kwargs)
+
+    def clean(self, value):
+        """
+        CNP validations
+        """
+        value = super(ROCNPField, self).clean(value)
+        # check birthdate digits
+        import datetime
+        try:
+            datetime.date(int(value[1:3]),int(value[3:5]),int(value[5:7]))
+        except:
+            raise ValidationError(self.error_messages['invalid'])
+        # checksum
+        key = '279146358279'
+        checksum = 0
+        value_iter = iter(value)
+        for digit in key:
+            checksum += int(digit) * int(value_iter.next())
+        checksum %= 11
+        if checksum == 10:
+            checksum = 1
+        if checksum != int(value[12]):
+            raise ValidationError(self.error_messages['invalid'])
+        return value
+
+class ROCountyField(Field):
+    """
+    A form field that validates its input is a Romanian county name or
+    abbreviation. It normalizes the input to the standard vehicle registration
+    abbreviation for the given county
+
+    WARNING: This field will only accept names written with diacritics; consider
+    using ROCountySelect if this behavior is unnaceptable for you
+    Example:
+        Argeş => valid
+        Arges => invalid
+    """
+    default_error_messages = {
+        'invalid': u'Enter a Romanian county code or name.',
+    }
+
+    def clean(self, value):
+        from ro_counties import COUNTIES_CHOICES
+        super(ROCountyField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        try:
+            value = value.strip().upper()
+        except AttributeError:
+            pass
+        # search for county code
+        for entry in COUNTIES_CHOICES:
+            if value in entry:
+                return value
+        # search for county name
+        normalized_CC = []
+        for entry in COUNTIES_CHOICES:
+            normalized_CC.append((entry[0],entry[1].upper()))
+        for entry in normalized_CC:
+            if entry[1] == value:
+                return entry[0]
+        raise ValidationError(self.error_messages['invalid'])
+
+class ROCountySelect(Select):
+    """
+    A Select widget that uses a list of Romanian counties (judete) as its
+    choices.
+    """
+    def __init__(self, attrs=None):
+        from ro_counties import COUNTIES_CHOICES
+        super(ROCountySelect, self).__init__(attrs, choices=COUNTIES_CHOICES)
+
+class ROIBANField(RegexField):
+    """
+    Romanian International Bank Account Number (IBAN) field
+
+    For Romanian IBAN validation algorithm see http://validari.ro/iban.html
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ROIBANField, self).__init__(r'^[0-9A-Za-z\-\s]{24,40}$',
+                max_length=40, min_length=24, *args, **kwargs)
+
+    def clean(self, value):
+        """
+        Strips - and spaces, performs country code and checksum validation
+        """
+        value = super(ROIBANField, self).clean(value)
+        value = value.replace('-','')
+        value = value.replace(' ','')
+        value = value.upper()
+        if value[0:2] != 'RO':
+            raise ValidationError(self.error_messages['invalid'])
+        numeric_format = ''
+        for char in value[4:] + value[0:4]:
+            if char.isalpha():
+                numeric_format += str(ord(char) - 55)
+            else:
+                numeric_format += char
+        if int(numeric_format) % 97 != 1:
+            raise ValidationError(self.error_messages['invalid'])
+        return value
+
+class ROPhoneNumberField(RegexField):
+    """Romanian phone number field"""
+    default_error_messages = {
+        'invalid': _('Phone numbers must be in XXXX-XXXXXX format.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ROPhoneNumberField, self).__init__(r'^[0-9\-\(\)\s]{10,20}$',
+                max_length=20, min_length=10, *args, **kwargs)
+
+    def clean(self, value):
+        """
+        Strips -, (, ) and spaces. Checks the final length.
+        """
+        value = super(ROPhoneNumberField, self).clean(value)
+        value = value.replace('-','')
+        value = value.replace('(','')
+        value = value.replace(')','')
+        value = value.replace(' ','')
+        if len(value) != 10:
+            raise ValidationError(self.error_messages['invalid'])
+        return value
+
+class ROPostalCodeField(RegexField):
+    """Romanian postal code field."""
+    default_error_messages = {
+        'invalid': _('Enter a valid postal code in the format XXXXXX'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ROPostalCodeField, self).__init__(r'^[0-9][0-8][0-9]{4}$',
+                max_length=6, min_length=6, *args, **kwargs)
+
diff --git a/webapp/django/contrib/localflavor/ro/ro_counties.py b/webapp/django/contrib/localflavor/ro/ro_counties.py
new file mode 100644
index 0000000..40423dd
--- /dev/null
+++ b/webapp/django/contrib/localflavor/ro/ro_counties.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+"""
+A list of Romanian counties as `choices` in a formfield.
+
+This exists as a standalone file so that it's only imported into memory when
+explicitly needed.
+"""
+
+COUNTIES_CHOICES = (
+    ('AB', u'Alba'),
+    ('AR', u'Arad'),
+    ('AG', u'Argeş'),
+    ('BC', u'Bacău'),
+    ('BH', u'Bihor'),
+    ('BN', u'Bistriţa-Năsăud'),
+    ('BT', u'Botoşani'),
+    ('BV', u'Braşov'),
+    ('BR', u'Brăila'),
+    ('B',  u'Bucureşti'),
+    ('BZ', u'Buzău'),
+    ('CS', u'Caraş-Severin'),
+    ('CL', u'Călăraşi'),
+    ('CJ', u'Cluj'),
+    ('CT', u'Constanţa'),
+    ('CV', u'Covasna'),
+    ('DB', u'Dâmboviţa'),
+    ('DJ', u'Dolj'),
+    ('GL', u'Galaţi'),
+    ('GR', u'Giurgiu'),
+    ('GJ', u'Gorj'),
+    ('HR', u'Harghita'),
+    ('HD', u'Hunedoara'),
+    ('IL', u'Ialomiţa'),
+    ('IS', u'Iaşi'),
+    ('IF', u'Ilfov'),
+    ('MM', u'Maramureş'),
+    ('MH', u'Mehedinţi'),
+    ('MS', u'Mureş'),
+    ('NT', u'Neamţ'),
+    ('OT', u'Olt'),
+    ('PH', u'Prahova'),
+    ('SM', u'Satu Mare'),
+    ('SJ', u'Sălaj'),
+    ('SB', u'Sibiu'),
+    ('SV', u'Suceava'),
+    ('TR', u'Teleorman'),
+    ('TM', u'Timiş'),
+    ('TL', u'Tulcea'),
+    ('VS', u'Vaslui'),
+    ('VL', u'Vâlcea'),
+    ('VN', u'Vrancea'),
+)
diff --git a/webapp/django/contrib/localflavor/sk/__init__.py b/webapp/django/contrib/localflavor/sk/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/sk/__init__.py
diff --git a/webapp/django/contrib/localflavor/sk/forms.py b/webapp/django/contrib/localflavor/sk/forms.py
new file mode 100644
index 0000000..863a612
--- /dev/null
+++ b/webapp/django/contrib/localflavor/sk/forms.py
@@ -0,0 +1,43 @@
+"""
+Slovak-specific form helpers
+"""
+
+from django.forms.fields import Select, RegexField
+from django.utils.translation import ugettext_lazy as _
+
+class SKRegionSelect(Select):
+    """
+    A select widget widget with list of Slovak regions as choices.
+    """
+    def __init__(self, attrs=None):
+        from sk_regions import REGION_CHOICES
+        super(SKRegionSelect, self).__init__(attrs, choices=REGION_CHOICES)
+
+class SKDistrictSelect(Select):
+    """
+    A select widget with list of Slovak districts as choices.
+    """
+    def __init__(self, attrs=None):
+        from sk_districts import DISTRICT_CHOICES
+        super(SKDistrictSelect, self).__init__(attrs, choices=DISTRICT_CHOICES)
+
+class SKPostalCodeField(RegexField):
+    """
+    A form field that validates its input as Slovak postal code.
+    Valid form is XXXXX or XXX XX, where X represents integer.
+    """
+    default_error_messages = {
+        'invalid': _(u'Enter a postal code in the format XXXXX or XXX XX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(SKPostalCodeField, self).__init__(r'^\d{5}$|^\d{3} \d{2}$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+    def clean(self, value):
+        """
+        Validates the input and returns a string that contains only numbers.
+        Returns an empty string for empty values.
+        """
+        v = super(SKPostalCodeField, self).clean(value)
+        return v.replace(' ', '')
diff --git a/webapp/django/contrib/localflavor/sk/sk_districts.py b/webapp/django/contrib/localflavor/sk/sk_districts.py
new file mode 100644
index 0000000..95e8796
--- /dev/null
+++ b/webapp/django/contrib/localflavor/sk/sk_districts.py
@@ -0,0 +1,87 @@
+"""
+Slovak districts according to http://sk.wikipedia.org/wiki/Administrat%C3%ADvne_%C4%8Dlenenie_Slovenska
+"""
+
+from django.utils.translation import ugettext_lazy as _
+
+DISTRICT_CHOICES = (
+    ('BB', _('Banska Bystrica')),
+    ('BS', _('Banska Stiavnica')),
+    ('BJ', _('Bardejov')),
+    ('BN', _('Banovce nad Bebravou')),
+    ('BR', _('Brezno')),
+    ('BA1', _('Bratislava I')),
+    ('BA2', _('Bratislava II')),
+    ('BA3', _('Bratislava III')),
+    ('BA4', _('Bratislava IV')),
+    ('BA5', _('Bratislava V')),
+    ('BY', _('Bytca')),
+    ('CA', _('Cadca')),
+    ('DT', _('Detva')),
+    ('DK', _('Dolny Kubin')),
+    ('DS', _('Dunajska Streda')),
+    ('GA', _('Galanta')),
+    ('GL', _('Gelnica')),
+    ('HC', _('Hlohovec')),
+    ('HE', _('Humenne')),
+    ('IL', _('Ilava')),
+    ('KK', _('Kezmarok')),
+    ('KN', _('Komarno')),
+    ('KE1', _('Kosice I')),
+    ('KE2', _('Kosice II')),
+    ('KE3', _('Kosice III')),
+    ('KE4', _('Kosice IV')),
+    ('KEO', _('Kosice - okolie')),
+    ('KA', _('Krupina')),
+    ('KM', _('Kysucke Nove Mesto')),
+    ('LV', _('Levice')),
+    ('LE', _('Levoca')),
+    ('LM', _('Liptovsky Mikulas')),
+    ('LC', _('Lucenec')),
+    ('MA', _('Malacky')),
+    ('MT', _('Martin')),
+    ('ML', _('Medzilaborce')),
+    ('MI', _('Michalovce')),
+    ('MY', _('Myjava')),
+    ('NO', _('Namestovo')),
+    ('NR', _('Nitra')),
+    ('NM', _('Nove Mesto nad Vahom')),
+    ('NZ', _('Nove Zamky')),
+    ('PE', _('Partizanske')),
+    ('PK', _('Pezinok')),
+    ('PN', _('Piestany')),
+    ('PT', _('Poltar')),
+    ('PP', _('Poprad')),
+    ('PB', _('Povazska Bystrica')),
+    ('PO', _('Presov')),
+    ('PD', _('Prievidza')),
+    ('PU', _('Puchov')),
+    ('RA', _('Revuca')),
+    ('RS', _('Rimavska Sobota')),
+    ('RV', _('Roznava')),
+    ('RK', _('Ruzomberok')),
+    ('SB', _('Sabinov')),
+    ('SC', _('Senec')),
+    ('SE', _('Senica')),
+    ('SI', _('Skalica')),
+    ('SV', _('Snina')),
+    ('SO', _('Sobrance')),
+    ('SN', _('Spisska Nova Ves')),
+    ('SL', _('Stara Lubovna')),
+    ('SP', _('Stropkov')),
+    ('SK', _('Svidnik')),
+    ('SA', _('Sala')),
+    ('TO', _('Topolcany')),
+    ('TV', _('Trebisov')),
+    ('TN', _('Trencin')),
+    ('TT', _('Trnava')),
+    ('TR', _('Turcianske Teplice')),
+    ('TS', _('Tvrdosin')),
+    ('VK', _('Velky Krtis')),
+    ('VT', _('Vranov nad Toplou')),
+    ('ZM', _('Zlate Moravce')),
+    ('ZV', _('Zvolen')),
+    ('ZC', _('Zarnovica')),
+    ('ZH', _('Ziar nad Hronom')),
+    ('ZA', _('Zilina')),
+)
diff --git a/webapp/django/contrib/localflavor/sk/sk_regions.py b/webapp/django/contrib/localflavor/sk/sk_regions.py
new file mode 100644
index 0000000..66de814
--- /dev/null
+++ b/webapp/django/contrib/localflavor/sk/sk_regions.py
@@ -0,0 +1,16 @@
+"""
+Slovak regions according to http://sk.wikipedia.org/wiki/Administrat%C3%ADvne_%C4%8Dlenenie_Slovenska
+"""
+
+from django.utils.translation import ugettext_lazy as _
+
+REGION_CHOICES = (
+    ('BB', _('Banska Bystrica region')),
+    ('BA', _('Bratislava region')),
+    ('KE', _('Kosice region')),
+    ('NR', _('Nitra region')),
+    ('PO', _('Presov region')),
+    ('TN', _('Trencin region')),
+    ('TT', _('Trnava region')),
+    ('ZA', _('Zilina region')),
+)
diff --git a/webapp/django/contrib/localflavor/uk/__init__.py b/webapp/django/contrib/localflavor/uk/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/uk/__init__.py
diff --git a/webapp/django/contrib/localflavor/uk/forms.py b/webapp/django/contrib/localflavor/uk/forms.py
new file mode 100644
index 0000000..7df7364
--- /dev/null
+++ b/webapp/django/contrib/localflavor/uk/forms.py
@@ -0,0 +1,53 @@
+"""
+UK-specific Form helpers
+"""
+
+import re
+
+from django.forms.fields import CharField, Select
+from django.forms import ValidationError
+from django.utils.translation import ugettext_lazy as _
+
+class UKPostcodeField(CharField):
+    """
+    A form field that validates its input is a UK postcode.
+
+    The regular expression used is sourced from the schema for British Standard
+    BS7666 address types: http://www.govtalk.gov.uk/gdsc/schemas/bs7666-v2-0.xsd
+
+    The value is uppercased and a space added in the correct place, if required.
+    """
+    default_error_messages = {
+        'invalid': _(u'Enter a valid postcode.'),
+    }
+    outcode_pattern = '[A-PR-UWYZ]([0-9]{1,2}|([A-HIK-Y][0-9](|[0-9]|[ABEHMNPRVWXY]))|[0-9][A-HJKSTUW])'
+    incode_pattern = '[0-9][ABD-HJLNP-UW-Z]{2}'
+    postcode_regex = re.compile(r'^(GIR 0AA|%s %s)$' % (outcode_pattern, incode_pattern))
+    space_regex = re.compile(r' *(%s)$' % incode_pattern)
+
+    def clean(self, value):
+        value = super(UKPostcodeField, self).clean(value)
+        if value == u'':
+            return value
+        postcode = value.upper().strip()
+        # Put a single space before the incode (second part).
+        postcode = self.space_regex.sub(r' \1', postcode)
+        if not self.postcode_regex.search(postcode):
+            raise ValidationError(self.default_error_messages['invalid'])
+        return postcode
+
+class UKCountySelect(Select):
+    """
+    A Select widget that uses a list of UK Counties/Regions as its choices.
+    """
+    def __init__(self, attrs=None):
+        from uk_regions import UK_REGION_CHOICES
+        super(UKCountySelect, self).__init__(attrs, choices=UK_REGION_CHOICES)
+
+class UKNationSelect(Select):
+    """
+    A Select widget that uses a list of UK Nations as its choices.
+    """
+    def __init__(self, attrs=None):
+        from uk_regions import UK_NATIONS_CHOICES
+        super(UKNationSelect, self).__init__(attrs, choices=UK_NATIONS_CHOICES)
diff --git a/webapp/django/contrib/localflavor/uk/uk_regions.py b/webapp/django/contrib/localflavor/uk/uk_regions.py
new file mode 100644
index 0000000..dd92f5e
--- /dev/null
+++ b/webapp/django/contrib/localflavor/uk/uk_regions.py
@@ -0,0 +1,97 @@
+"""
+Sources:
+    English regions: http://www.statistics.gov.uk/geography/downloads/31_10_01_REGION_names_and_codes_12_00.xls
+    Northern Ireland regions: http://en.wikipedia.org/wiki/List_of_Irish_counties_by_area
+    Welsh regions: http://en.wikipedia.org/wiki/Preserved_counties_of_Wales
+    Scottish regions: http://en.wikipedia.org/wiki/Regions_and_districts_of_Scotland
+"""
+from django.utils.translation import ugettext_lazy as _
+
+ENGLAND_REGION_CHOICES = (
+    ("Bedfordshire", _("Bedfordshire")),
+    ("Buckinghamshire", _("Buckinghamshire")),
+    ("Cambridgeshire", ("Cambridgeshire")),
+    ("Cheshire", _("Cheshire")),
+    ("Cornwall and Isles of Scilly", _("Cornwall and Isles of Scilly")),
+    ("Cumbria", _("Cumbria")),
+    ("Derbyshire", _("Derbyshire")),
+    ("Devon", _("Devon")),
+    ("Dorset", _("Dorset")),
+    ("Durham", _("Durham")),
+    ("East Sussex", _("East Sussex")),
+    ("Essex", _("Essex")),
+    ("Gloucestershire", _("Gloucestershire")),
+    ("Greater London", _("Greater London")),
+    ("Greater Manchester", _("Greater Manchester")),
+    ("Hampshire", _("Hampshire")),
+    ("Hertfordshire", _("Hertfordshire")),
+    ("Kent", _("Kent")),
+    ("Lancashire", _("Lancashire")),
+    ("Leicestershire", _("Leicestershire")),
+    ("Lincolnshire", _("Lincolnshire")),
+    ("Merseyside", _("Merseyside")),
+    ("Norfolk", _("Norfolk")),
+    ("North Yorkshire", _("North Yorkshire")),
+    ("Northamptonshire", _("Northamptonshire")),
+    ("Northumberland", _("Northumberland")),
+    ("Nottinghamshire", _("Nottinghamshire")),
+    ("Oxfordshire", _("Oxfordshire")),
+    ("Shropshire", _("Shropshire")),
+    ("Somerset", _("Somerset")),
+    ("South Yorkshire", _("South Yorkshire")),
+    ("Staffordshire", _("Staffordshire")),
+    ("Suffolk", _("Suffolk")),
+    ("Surrey", _("Surrey")),
+    ("Tyne and Wear", _("Tyne and Wear")),
+    ("Warwickshire", _("Warwickshire")),
+    ("West Midlands", _("West Midlands")),
+    ("West Sussex", _("West Sussex")),
+    ("West Yorkshire", _("West Yorkshire")),
+    ("Wiltshire", _("Wiltshire")),
+    ("Worcestershire", _("Worcestershire")),
+)
+
+NORTHERN_IRELAND_REGION_CHOICES = (
+    ("County Antrim", _("County Antrim")),
+    ("County Armagh", _("County Armagh")),
+    ("County Down", _("County Down")),
+    ("County Fermanagh", _("County Fermanagh")),
+    ("County Londonderry", _("County Londonderry")),
+    ("County Tyrone", _("County Tyrone")),
+)
+
+WALES_REGION_CHOICES = (
+    ("Clwyd", _("Clwyd")),
+    ("Dyfed", _("Dyfed")),
+    ("Gwent", _("Gwent")),
+    ("Gwynedd", _("Gwynedd")),
+    ("Mid Glamorgan", _("Mid Glamorgan")),
+    ("Powys", _("Powys")),
+    ("South Glamorgan", _("South Glamorgan")),
+    ("West Glamorgan", _("West Glamorgan")),
+)
+
+SCOTTISH_REGION_CHOICES = (
+    ("Borders", _("Borders")),
+    ("Central Scotland", _("Central Scotland")),
+    ("Dumfries and Galloway", _("Dumfries and Galloway")),
+    ("Fife", _("Fife")),
+    ("Grampian", _("Grampian")),
+    ("Highland", _("Highland")),
+    ("Lothian", _("Lothian")),
+    ("Orkney Islands", _("Orkney Islands")),
+    ("Shetland Islands", _("Shetland Islands")),
+    ("Strathclyde", _("Strathclyde")),
+    ("Tayside", _("Tayside")),
+    ("Western Isles", _("Western Isles")),
+)
+
+UK_NATIONS_CHOICES = (
+    ("England", _("England")),
+    ("Northern Ireland", _("Northern Ireland")),
+    ("Scotland", _("Scotland")),
+    ("Wales", _("Wales")),
+)
+
+UK_REGION_CHOICES = ENGLAND_REGION_CHOICES + NORTHERN_IRELAND_REGION_CHOICES + WALES_REGION_CHOICES + SCOTTISH_REGION_CHOICES
+
diff --git a/webapp/django/contrib/localflavor/us/__init__.py b/webapp/django/contrib/localflavor/us/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/us/__init__.py
diff --git a/webapp/django/contrib/localflavor/us/forms.py b/webapp/django/contrib/localflavor/us/forms.py
new file mode 100644
index 0000000..a744edc
--- /dev/null
+++ b/webapp/django/contrib/localflavor/us/forms.py
@@ -0,0 +1,112 @@
+"""
+USA-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.utils.encoding import smart_unicode
+from django.utils.translation import ugettext_lazy as _
+import re
+
+phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$')
+ssn_re = re.compile(r"^(?P<area>\d{3})[-\ ]?(?P<group>\d{2})[-\ ]?(?P<serial>\d{4})$")
+
+class USZipCodeField(RegexField):
+    default_error_messages = {
+        'invalid': _('Enter a zip code in the format XXXXX or XXXXX-XXXX.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(USZipCodeField, self).__init__(r'^\d{5}(?:-\d{4})?$',
+            max_length=None, min_length=None, *args, **kwargs)
+
+class USPhoneNumberField(Field):
+    default_error_messages = {
+        'invalid': u'Phone numbers must be in XXX-XXX-XXXX format.',
+    }
+
+    def clean(self, value):
+        super(USPhoneNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        value = re.sub('(\(|\)|\s+)', '', smart_unicode(value))
+        m = phone_digits_re.search(value)
+        if m:
+            return u'%s-%s-%s' % (m.group(1), m.group(2), m.group(3))
+        raise ValidationError(self.error_messages['invalid'])
+
+class USSocialSecurityNumberField(Field):
+    """
+    A United States Social Security number.
+
+    Checks the following rules to determine whether the number is valid:
+
+        * Conforms to the XXX-XX-XXXX format.
+        * No group consists entirely of zeroes.
+        * The leading group is not "666" (block "666" will never be allocated).
+        * The number is not in the promotional block 987-65-4320 through
+          987-65-4329, which are permanently invalid.
+        * The number is not one known to be invalid due to otherwise widespread
+          promotional use or distribution (e.g., the Woolworth's number or the
+          1962 promotional number).
+    """
+    default_error_messages = {
+        'invalid': _('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.'),
+    }
+
+    def clean(self, value):
+        super(USSocialSecurityNumberField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        match = re.match(ssn_re, value)
+        if not match:
+            raise ValidationError(self.error_messages['invalid'])
+        area, group, serial = match.groupdict()['area'], match.groupdict()['group'], match.groupdict()['serial']
+
+        # First pass: no blocks of all zeroes.
+        if area == '000' or \
+           group == '00' or \
+           serial == '0000':
+            raise ValidationError(self.error_messages['invalid'])
+
+        # Second pass: promotional and otherwise permanently invalid numbers.
+        if area == '666' or \
+           (area == '987' and group == '65' and 4320 <= int(serial) <= 4329) or \
+           value == '078-05-1120' or \
+           value == '219-09-9999':
+            raise ValidationError(self.error_messages['invalid'])
+        return u'%s-%s-%s' % (area, group, serial)
+
+class USStateField(Field):
+    """
+    A form field that validates its input is a U.S. state name or abbreviation.
+    It normalizes the input to the standard two-leter postal service
+    abbreviation for the given state.
+    """
+    default_error_messages = {
+        'invalid': u'Enter a U.S. state or territory.',
+    }
+
+    def clean(self, value):
+        from us_states import STATES_NORMALIZED
+        super(USStateField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        try:
+            value = value.strip().lower()
+        except AttributeError:
+            pass
+        else:
+            try:
+                return STATES_NORMALIZED[value.strip().lower()].decode('ascii')
+            except KeyError:
+                pass
+        raise ValidationError(self.error_messages['invalid'])
+
+class USStateSelect(Select):
+    """
+    A Select widget that uses a list of U.S. states/territories as its choices.
+    """
+    def __init__(self, attrs=None):
+        from us_states import STATE_CHOICES
+        super(USStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
diff --git a/webapp/django/contrib/localflavor/us/us_states.py b/webapp/django/contrib/localflavor/us/us_states.py
new file mode 100644
index 0000000..c84facc
--- /dev/null
+++ b/webapp/django/contrib/localflavor/us/us_states.py
@@ -0,0 +1,240 @@
+"""
+A mapping of state misspellings/abbreviations to normalized abbreviations, and
+an alphabetical list of states for use as `choices` in a formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+STATE_CHOICES = (
+    ('AL', 'Alabama'),
+    ('AK', 'Alaska'),
+    ('AS', 'American Samoa'),
+    ('AZ', 'Arizona'),
+    ('AR', 'Arkansas'),
+    ('CA', 'California'),
+    ('CO', 'Colorado'),
+    ('CT', 'Connecticut'),
+    ('DE', 'Delaware'),
+    ('DC', 'District of Columbia'),
+    ('FM', 'Federated States of Micronesia'),
+    ('FL', 'Florida'),
+    ('GA', 'Georgia'),
+    ('GU', 'Guam'),
+    ('HI', 'Hawaii'),
+    ('ID', 'Idaho'),
+    ('IL', 'Illinois'),
+    ('IN', 'Indiana'),
+    ('IA', 'Iowa'),
+    ('KS', 'Kansas'),
+    ('KY', 'Kentucky'),
+    ('LA', 'Louisiana'),
+    ('ME', 'Maine'),
+    ('MH', 'Marshall Islands'),
+    ('MD', 'Maryland'),
+    ('MA', 'Massachusetts'),
+    ('MI', 'Michigan'),
+    ('MN', 'Minnesota'),
+    ('MS', 'Mississippi'),
+    ('MO', 'Missouri'),
+    ('MT', 'Montana'),
+    ('NE', 'Nebraska'),
+    ('NV', 'Nevada'),
+    ('NH', 'New Hampshire'),
+    ('NJ', 'New Jersey'),
+    ('NM', 'New Mexico'),
+    ('NY', 'New York'),
+    ('NC', 'North Carolina'),
+    ('ND', 'North Dakota'),
+    ('MP', 'Northern Mariana Islands'),
+    ('OH', 'Ohio'),
+    ('OK', 'Oklahoma'),
+    ('OR', 'Oregon'),
+    ('PW', 'Palau'),
+    ('PA', 'Pennsylvania'),
+    ('PR', 'Puerto Rico'),
+    ('RI', 'Rhode Island'),
+    ('SC', 'South Carolina'),
+    ('SD', 'South Dakota'),
+    ('TN', 'Tennessee'),
+    ('TX', 'Texas'),
+    ('UT', 'Utah'),
+    ('VT', 'Vermont'),
+    ('VI', 'Virgin Islands'),
+    ('VA', 'Virginia'),
+    ('WA', 'Washington'),
+    ('WV', 'West Virginia'),
+    ('WI', 'Wisconsin'),
+    ('WY', 'Wyoming'),
+)
+
+STATES_NORMALIZED = {
+    'ak': 'AK',
+    'al': 'AL',
+    'ala': 'AL',
+    'alabama': 'AL',
+    'alaska': 'AK',
+    'american samao': 'AS',
+    'american samoa': 'AS',
+    'ar': 'AR',
+    'ariz': 'AZ',
+    'arizona': 'AZ',
+    'ark': 'AR',
+    'arkansas': 'AR',
+    'as': 'AS',
+    'az': 'AZ',
+    'ca': 'CA',
+    'calf': 'CA',
+    'calif': 'CA',
+    'california': 'CA',
+    'co': 'CO',
+    'colo': 'CO',
+    'colorado': 'CO',
+    'conn': 'CT',
+    'connecticut': 'CT',
+    'ct': 'CT',
+    'dc': 'DC',
+    'de': 'DE',
+    'del': 'DE',
+    'delaware': 'DE',
+    'deleware': 'DE',
+    'district of columbia': 'DC',
+    'federated states of micronesia': 'FM',
+    'fl': 'FL',
+    'fla': 'FL',
+    'florida': 'FL',
+    'fm': 'FM',
+    'ga': 'GA',
+    'georgia': 'GA',
+    'gu': 'GU',
+    'guam': 'GU',
+    'hawaii': 'HI',
+    'hi': 'HI',
+    'ia': 'IA',
+    'id': 'ID',
+    'idaho': 'ID',
+    'il': 'IL',
+    'ill': 'IL',
+    'illinois': 'IL',
+    'in': 'IN',
+    'ind': 'IN',
+    'indiana': 'IN',
+    'iowa': 'IA',
+    'kan': 'KS',
+    'kans': 'KS',
+    'kansas': 'KS',
+    'kentucky': 'KY',
+    'ks': 'KS',
+    'ky': 'KY',
+    'la': 'LA',
+    'louisiana': 'LA',
+    'ma': 'MA',
+    'maine': 'ME',
+    'marianas islands': 'MP',
+    'marianas islands of the pacific': 'MP',
+    'marinas islands of the pacific': 'MP',
+    'maryland': 'MD',
+    'mass': 'MA',
+    'massachusetts': 'MA',
+    'massachussetts': 'MA',
+    'md': 'MD',
+    'me': 'ME',
+    'mi': 'MI',
+    'mich': 'MI',
+    'michigan': 'MI',
+    'micronesia': 'FM',
+    'minn': 'MN',
+    'minnesota': 'MN',
+    'miss': 'MS',
+    'mississippi': 'MS',
+    'missouri': 'MO',
+    'mn': 'MN',
+    'mo': 'MO',
+    'mont': 'MT',
+    'montana': 'MT',
+    'mp': 'MP',
+    'ms': 'MS',
+    'mt': 'MT',
+    'n d': 'ND',
+    'n dak': 'ND',
+    'n h': 'NH',
+    'n j': 'NJ',
+    'n m': 'NM',
+    'n mex': 'NM',
+    'nc': 'NC',
+    'nd': 'ND',
+    'ne': 'NE',
+    'neb': 'NE',
+    'nebr': 'NE',
+    'nebraska': 'NE',
+    'nev': 'NV',
+    'nevada': 'NV',
+    'new hampshire': 'NH',
+    'new jersey': 'NJ',
+    'new mexico': 'NM',
+    'new york': 'NY',
+    'nh': 'NH',
+    'nj': 'NJ',
+    'nm': 'NM',
+    'nmex': 'NM',
+    'north carolina': 'NC',
+    'north dakota': 'ND',
+    'northern mariana islands': 'MP',
+    'nv': 'NV',
+    'ny': 'NY',
+    'oh': 'OH',
+    'ohio': 'OH',
+    'ok': 'OK',
+    'okla': 'OK',
+    'oklahoma': 'OK',
+    'or': 'OR',
+    'ore': 'OR',
+    'oreg': 'OR',
+    'oregon': 'OR',
+    'pa': 'PA',
+    'penn': 'PA',
+    'pennsylvania': 'PA',
+    'pr': 'PR',
+    'puerto rico': 'PR',
+    'rhode island': 'RI',
+    'ri': 'RI',
+    's dak': 'SD',
+    'sc': 'SC',
+    'sd': 'SD',
+    'sdak': 'SD',
+    'south carolina': 'SC',
+    'south dakota': 'SD',
+    'tenn': 'TN',
+    'tennessee': 'TN',
+    'territory of hawaii': 'HI',
+    'tex': 'TX',
+    'texas': 'TX',
+    'tn': 'TN',
+    'tx': 'TX',
+    'us virgin islands': 'VI',
+    'usvi': 'VI',
+    'ut': 'UT',
+    'utah': 'UT',
+    'va': 'VA',
+    'vermont': 'VT',
+    'vi': 'VI',
+    'viginia': 'VA',
+    'virgin islands': 'VI',
+    'virgina': 'VA',
+    'virginia': 'VA',
+    'vt': 'VT',
+    'w va': 'WV',
+    'wa': 'WA',
+    'wash': 'WA',
+    'washington': 'WA',
+    'west virginia': 'WV',
+    'wi': 'WI',
+    'wis': 'WI',
+    'wisc': 'WI',
+    'wisconsin': 'WI',
+    'wv': 'WV',
+    'wva': 'WV',
+    'wy': 'WY',
+    'wyo': 'WY',
+    'wyoming': 'WY',
+}
diff --git a/webapp/django/contrib/localflavor/za/__init__.py b/webapp/django/contrib/localflavor/za/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/localflavor/za/__init__.py
diff --git a/webapp/django/contrib/localflavor/za/forms.py b/webapp/django/contrib/localflavor/za/forms.py
new file mode 100644
index 0000000..7b7b714
--- /dev/null
+++ b/webapp/django/contrib/localflavor/za/forms.py
@@ -0,0 +1,59 @@
+"""
+South Africa-specific Form helpers
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import Field, RegexField, EMPTY_VALUES
+from django.utils.checksums import luhn
+from django.utils.translation import gettext as _
+import re
+from datetime import date
+
+id_re = re.compile(r'^(?P<yy>\d\d)(?P<mm>\d\d)(?P<dd>\d\d)(?P<mid>\d{4})(?P<end>\d{3})')
+
+class ZAIDField(Field):
+    """A form field for South African ID numbers -- the checksum is validated
+    using the Luhn checksum, and uses a simlistic (read: not entirely accurate)
+    check for the birthdate
+    """
+    default_error_messages = {
+        'invalid': _(u'Enter a valid South African ID number'),
+    }
+
+    def clean(self, value):
+        # strip spaces and dashes
+        value = value.strip().replace(' ', '').replace('-', '')
+
+        super(ZAIDField, self).clean(value)
+
+        if value in EMPTY_VALUES:
+            return u''
+
+        match = re.match(id_re, value)
+
+        if not match:
+            raise ValidationError(self.error_messages['invalid'])
+
+        g = match.groupdict()
+
+        try:
+            # The year 2000 is conveniently a leapyear.
+            # This algorithm will break in xx00 years which aren't leap years
+            # There is no way to guess the century of a ZA ID number
+            d = date(int(g['yy']) + 2000, int(g['mm']), int(g['dd']))
+        except ValueError:
+            raise ValidationError(self.error_messages['invalid'])
+
+        if not luhn(value):
+            raise ValidationError(self.error_messages['invalid'])
+
+        return value
+
+class ZAPostCodeField(RegexField):
+    default_error_messages = {
+        'invalid': _(u'Enter a valid South African postal code'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(ZAPostCodeField, self).__init__(r'^\d{4}$',
+            max_length=None, min_length=None)
diff --git a/webapp/django/contrib/localflavor/za/za_provinces.py b/webapp/django/contrib/localflavor/za/za_provinces.py
new file mode 100644
index 0000000..0bc6fe1
--- /dev/null
+++ b/webapp/django/contrib/localflavor/za/za_provinces.py
@@ -0,0 +1,13 @@
+from django.utils.translation import gettext_lazy as _
+
+PROVINCE_CHOICES = (
+    ('EC', _('Eastern Cape')),
+    ('FS', _('Free State')),
+    ('GP', _('Gauteng')),
+    ('KN', _('KwaZulu-Natal')),
+    ('LP', _('Limpopo')),
+    ('MP', _('Mpumalanga')),
+    ('NC', _('Northern Cape')),
+    ('NW', _('North West')),
+    ('WC', _('Western Cape')),
+)
diff --git a/webapp/django/contrib/markup/__init__.py b/webapp/django/contrib/markup/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/markup/__init__.py
diff --git a/webapp/django/contrib/markup/models.py b/webapp/django/contrib/markup/models.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/markup/models.py
diff --git a/webapp/django/contrib/markup/templatetags/__init__.py b/webapp/django/contrib/markup/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/markup/templatetags/__init__.py
diff --git a/webapp/django/contrib/markup/templatetags/markup.py b/webapp/django/contrib/markup/templatetags/markup.py
new file mode 100644
index 0000000..982620b
--- /dev/null
+++ b/webapp/django/contrib/markup/templatetags/markup.py
@@ -0,0 +1,94 @@
+"""
+Set of "markup" template filters for Django.  These filters transform plain text
+markup syntaxes to HTML; currently there is support for:
+
+    * Textile, which requires the PyTextile library available at
+      http://dealmeida.net/projects/textile/
+
+    * Markdown, which requires the Python-markdown library from
+      http://www.freewisdom.org/projects/python-markdown
+
+    * ReStructuredText, which requires docutils from http://docutils.sf.net/
+
+In each case, if the required library is not installed, the filter will
+silently fail and return the un-marked-up text.
+"""
+
+from django import template
+from django.conf import settings
+from django.utils.encoding import smart_str, force_unicode
+from django.utils.safestring import mark_safe
+
+register = template.Library()
+
+def textile(value):
+    try:
+        import textile
+    except ImportError:
+        if settings.DEBUG:
+            raise template.TemplateSyntaxError, "Error in {% textile %} filter: The Python textile library isn't installed."
+        return force_unicode(value)
+    else:
+        return mark_safe(force_unicode(textile.textile(smart_str(value), encoding='utf-8', output='utf-8')))
+textile.is_safe = True
+
+def markdown(value, arg=''):
+    """
+    Runs Markdown over a given value, optionally using various
+    extensions python-markdown supports.
+
+    Syntax::
+
+        {{ value|markdown:"extension1_name,extension2_name..." }}
+
+    To enable safe mode, which strips raw HTML and only returns HTML
+    generated by actual Markdown syntax, pass "safe" as the first
+    extension in the list.
+
+    If the version of Markdown in use does not support extensions,
+    they will be silently ignored.
+
+    """
+    try:
+        import markdown
+    except ImportError:
+        if settings.DEBUG:
+            raise template.TemplateSyntaxError, "Error in {% markdown %} filter: The Python markdown library isn't installed."
+        return force_unicode(value)
+    else:
+        # markdown.version was first added in 1.6b. The only version of markdown
+        # to fully support extensions before 1.6b was the shortlived 1.6a.
+        if hasattr(markdown, 'version'):
+            extensions = [e for e in arg.split(",") if e]
+            if len(extensions) > 0 and extensions[0] == "safe":
+                extensions = extensions[1:]
+                safe_mode = True
+            else:
+                safe_mode = False
+
+            # Unicode support only in markdown v1.7 or above. Version_info
+            # exist only in markdown v1.6.2rc-2 or above.
+            if getattr(markdown, "version_info", None) < (1,7):
+                return mark_safe(force_unicode(markdown.markdown(smart_str(value), extensions, safe_mode=safe_mode)))
+            else:
+                return mark_safe(markdown.markdown(force_unicode(value), extensions, safe_mode=safe_mode))
+        else:
+            return mark_safe(force_unicode(markdown.markdown(smart_str(value))))
+markdown.is_safe = True
+
+def restructuredtext(value):
+    try:
+        from docutils.core import publish_parts
+    except ImportError:
+        if settings.DEBUG:
+            raise template.TemplateSyntaxError, "Error in {% restructuredtext %} filter: The Python docutils library isn't installed."
+        return force_unicode(value)
+    else:
+        docutils_settings = getattr(settings, "RESTRUCTUREDTEXT_FILTER_SETTINGS", {})
+        parts = publish_parts(source=smart_str(value), writer_name="html4css1", settings_overrides=docutils_settings)
+        return mark_safe(force_unicode(parts["fragment"]))
+restructuredtext.is_safe = True
+
+register.filter(textile)
+register.filter(markdown)
+register.filter(restructuredtext)
diff --git a/webapp/django/contrib/markup/tests.py b/webapp/django/contrib/markup/tests.py
new file mode 100644
index 0000000..9a96f8c
--- /dev/null
+++ b/webapp/django/contrib/markup/tests.py
@@ -0,0 +1,78 @@
+# Quick tests for the markup templatetags (django.contrib.markup)
+
+import re
+import unittest
+
+from django.template import Template, Context, add_to_builtins
+from django.utils.html import escape
+
+add_to_builtins('django.contrib.markup.templatetags.markup')
+
+class Templates(unittest.TestCase):
+    def test_textile(self):
+        try:
+            import textile
+        except ImportError:
+            textile = None
+
+        textile_content = """Paragraph 1
+
+Paragraph 2 with "quotes" and @code@"""
+
+        t = Template("{{ textile_content|textile }}")
+        rendered = t.render(Context(locals())).strip()
+        if textile:
+            self.assertEqual(rendered, """<p>Paragraph 1</p>
+
+<p>Paragraph 2 with &#8220;quotes&#8221; and <code>code</code></p>""")
+        else:
+            self.assertEqual(rendered, escape(textile_content))
+
+    def test_markdown(self):
+        try:
+            import markdown
+        except ImportError:
+            markdown = None
+
+        markdown_content = """Paragraph 1
+
+## An h2"""
+
+        t = Template("{{ markdown_content|markdown }}")
+        rendered = t.render(Context(locals())).strip()
+        if markdown:
+            pattern = re.compile("""<p>Paragraph 1\s*</p>\s*<h2>\s*An h2</h2>""")
+            self.assert_(pattern.match(rendered))
+        else:
+            self.assertEqual(rendered, markdown_content)
+
+    def test_docutils(self):
+        try:
+            import docutils
+        except ImportError:
+            docutils = None
+
+        rest_content = """Paragraph 1
+
+Paragraph 2 with a link_
+
+.. _link: http://www.example.com/"""
+
+        t = Template("{{ rest_content|restructuredtext }}")
+        rendered = t.render(Context(locals())).strip()
+        if docutils:
+            # Different versions of docutils return slightly different HTML
+            try:
+                # Docutils v0.4 and earlier
+                self.assertEqual(rendered, """<p>Paragraph 1</p>
+<p>Paragraph 2 with a <a class="reference" href="http://www.example.com/">link</a></p>""")
+            except AssertionError, e:
+                # Docutils from SVN (which will become 0.5)
+                self.assertEqual(rendered, """<p>Paragraph 1</p>
+<p>Paragraph 2 with a <a class="reference external" href="http://www.example.com/">link</a></p>""")
+        else:
+            self.assertEqual(rendered, rest_content)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/webapp/django/contrib/redirects/README.TXT b/webapp/django/contrib/redirects/README.TXT
new file mode 100644
index 0000000..3544904
--- /dev/null
+++ b/webapp/django/contrib/redirects/README.TXT
@@ -0,0 +1,8 @@
+This is an optional add-on app, redirects.
+
+For full documentation, see either of these:
+
+    * The file django/docs/redirects.txt in the Django distribution
+    * http://www.djangoproject.com/documentation/redirects/ on the Web
+
+Both have identical content.
\ No newline at end of file
diff --git a/webapp/django/contrib/redirects/__init__.py b/webapp/django/contrib/redirects/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/redirects/__init__.py
diff --git a/webapp/django/contrib/redirects/admin.py b/webapp/django/contrib/redirects/admin.py
new file mode 100644
index 0000000..a9b2a32
--- /dev/null
+++ b/webapp/django/contrib/redirects/admin.py
@@ -0,0 +1,11 @@
+
+from django.contrib import admin
+from django.contrib.redirects.models import Redirect
+
+class RedirectAdmin(admin.ModelAdmin):
+    list_display = ('old_path', 'new_path')
+    list_filter = ('site',)
+    search_fields = ('old_path', 'new_path')
+    radio_fields = {'site': admin.VERTICAL}
+
+admin.site.register(Redirect, RedirectAdmin)
\ No newline at end of file
diff --git a/webapp/django/contrib/redirects/middleware.py b/webapp/django/contrib/redirects/middleware.py
new file mode 100644
index 0000000..8998c2c
--- /dev/null
+++ b/webapp/django/contrib/redirects/middleware.py
@@ -0,0 +1,27 @@
+from django.contrib.redirects.models import Redirect
+from django import http
+from django.conf import settings
+
+class RedirectFallbackMiddleware(object):
+    def process_response(self, request, response):
+        if response.status_code != 404:
+            return response # No need to check for a redirect for non-404 responses.
+        path = request.get_full_path()
+        try:
+            r = Redirect.objects.get(site__id__exact=settings.SITE_ID, old_path=path)
+        except Redirect.DoesNotExist:
+            r = None
+        if r is None and settings.APPEND_SLASH:
+            # Try removing the trailing slash.
+            try:
+                r = Redirect.objects.get(site__id__exact=settings.SITE_ID,
+                    old_path=path[:path.rfind('/')]+path[path.rfind('/')+1:])
+            except Redirect.DoesNotExist:
+                pass
+        if r is not None:
+            if r.new_path == '':
+                return http.HttpResponseGone()
+            return http.HttpResponsePermanentRedirect(r.new_path)
+
+        # No redirect was found. Return the response.
+        return response
diff --git a/webapp/django/contrib/redirects/models.py b/webapp/django/contrib/redirects/models.py
new file mode 100644
index 0000000..4233d55
--- /dev/null
+++ b/webapp/django/contrib/redirects/models.py
@@ -0,0 +1,20 @@
+from django.db import models
+from django.contrib.sites.models import Site
+from django.utils.translation import ugettext_lazy as _
+
+class Redirect(models.Model):
+    site = models.ForeignKey(Site)
+    old_path = models.CharField(_('redirect from'), max_length=200, db_index=True,
+        help_text=_("This should be an absolute path, excluding the domain name. Example: '/events/search/'."))
+    new_path = models.CharField(_('redirect to'), max_length=200, blank=True,
+        help_text=_("This can be either an absolute path (as above) or a full URL starting with 'http://'."))
+
+    class Meta:
+        verbose_name = _('redirect')
+        verbose_name_plural = _('redirects')
+        db_table = 'django_redirect'
+        unique_together=(('site', 'old_path'),)
+        ordering = ('old_path',)
+    
+    def __unicode__(self):
+        return "%s ---> %s" % (self.old_path, self.new_path)
diff --git a/webapp/django/contrib/sessions/__init__.py b/webapp/django/contrib/sessions/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/sessions/__init__.py
diff --git a/webapp/django/contrib/sessions/backends/__init__.py b/webapp/django/contrib/sessions/backends/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/sessions/backends/__init__.py
diff --git a/webapp/django/contrib/sessions/backends/base.py b/webapp/django/contrib/sessions/backends/base.py
new file mode 100644
index 0000000..b4cdead
--- /dev/null
+++ b/webapp/django/contrib/sessions/backends/base.py
@@ -0,0 +1,287 @@
+import base64
+import os
+import random
+import sys
+import time
+from datetime import datetime, timedelta
+try:
+    import cPickle as pickle
+except ImportError:
+    import pickle
+
+from django.conf import settings
+from django.core.exceptions import SuspiciousOperation
+from django.utils.hashcompat import md5_constructor
+
+# Use the system (hardware-based) random number generator if it exists.
+if hasattr(random, 'SystemRandom'):
+    randrange = random.SystemRandom().randrange
+else:
+    randrange = random.randrange
+MAX_SESSION_KEY = 18446744073709551616L     # 2 << 63
+
+class CreateError(Exception):
+    """
+    Used internally as a consistent exception type to catch from save (see the
+    docstring for SessionBase.save() for details).
+    """
+    pass
+
+class SessionBase(object):
+    """
+    Base class for all Session classes.
+    """
+    TEST_COOKIE_NAME = 'testcookie'
+    TEST_COOKIE_VALUE = 'worked'
+
+    def __init__(self, session_key=None):
+        self._session_key = session_key
+        self.accessed = False
+        self.modified = False
+
+    def __contains__(self, key):
+        return key in self._session
+
+    def __getitem__(self, key):
+        return self._session[key]
+
+    def __setitem__(self, key, value):
+        self._session[key] = value
+        self.modified = True
+
+    def __delitem__(self, key):
+        del self._session[key]
+        self.modified = True
+
+    def keys(self):
+        return self._session.keys()
+
+    def items(self):
+        return self._session.items()
+
+    def get(self, key, default=None):
+        return self._session.get(key, default)
+
+    def pop(self, key, *args):
+        self.modified = self.modified or key in self._session
+        return self._session.pop(key, *args)
+
+    def setdefault(self, key, value):
+        if key in self._session:
+            return self._session[key]
+        else:
+            self.modified = True
+            self._session[key] = value
+            return value
+
+    def set_test_cookie(self):
+        self[self.TEST_COOKIE_NAME] = self.TEST_COOKIE_VALUE
+
+    def test_cookie_worked(self):
+        return self.get(self.TEST_COOKIE_NAME) == self.TEST_COOKIE_VALUE
+
+    def delete_test_cookie(self):
+        del self[self.TEST_COOKIE_NAME]
+
+    def encode(self, session_dict):
+        "Returns the given session dictionary pickled and encoded as a string."
+        pickled = pickle.dumps(session_dict, pickle.HIGHEST_PROTOCOL)
+        pickled_md5 = md5_constructor(pickled + settings.SECRET_KEY).hexdigest()
+        return base64.encodestring(pickled + pickled_md5)
+
+    def decode(self, session_data):
+        encoded_data = base64.decodestring(session_data)
+        pickled, tamper_check = encoded_data[:-32], encoded_data[-32:]
+        if md5_constructor(pickled + settings.SECRET_KEY).hexdigest() != tamper_check:
+            raise SuspiciousOperation("User tampered with session cookie.")
+        try:
+            return pickle.loads(pickled)
+        # Unpickling can cause a variety of exceptions. If something happens,
+        # just return an empty dictionary (an empty session).
+        except:
+            return {}
+
+    def update(self, dict_):
+        self._session.update(dict_)
+        self.modified = True
+
+    def has_key(self, key):
+        return self._session.has_key(key)
+
+    def values(self):
+        return self._session.values()
+
+    def iterkeys(self):
+        return self._session.iterkeys()
+
+    def itervalues(self):
+        return self._session.itervalues()
+
+    def iteritems(self):
+        return self._session.iteritems()
+
+    def clear(self):
+        # To avoid unnecessary persistent storage accesses, we set up the
+        # internals directly (loading data wastes time, since we are going to
+        # set it to an empty dict anyway).
+        self._session_cache = {}
+        self.accessed = True
+        self.modified = True
+
+    def _get_new_session_key(self):
+        "Returns session key that isn't being used."
+        # The random module is seeded when this Apache child is created.
+        # Use settings.SECRET_KEY as added salt.
+        try:
+            pid = os.getpid()
+        except AttributeError:
+            # No getpid() in Jython, for example
+            pid = 1
+        while 1:
+            session_key = md5_constructor("%s%s%s%s"
+                    % (randrange(0, MAX_SESSION_KEY), pid, time.time(),
+                       settings.SECRET_KEY)).hexdigest()
+            if not self.exists(session_key):
+                break
+        return session_key
+
+    def _get_session_key(self):
+        if self._session_key:
+            return self._session_key
+        else:
+            self._session_key = self._get_new_session_key()
+            return self._session_key
+
+    def _set_session_key(self, session_key):
+        self._session_key = session_key
+
+    session_key = property(_get_session_key, _set_session_key)
+
+    def _get_session(self, no_load=False):
+        """
+        Lazily loads session from storage (unless "no_load" is True, when only
+        an empty dict is stored) and stores it in the current instance.
+        """
+        self.accessed = True
+        try:
+            return self._session_cache
+        except AttributeError:
+            if self._session_key is None or no_load:
+                self._session_cache = {}
+            else:
+                self._session_cache = self.load()
+        return self._session_cache
+
+    _session = property(_get_session)
+
+    def get_expiry_age(self):
+        """Get the number of seconds until the session expires."""
+        expiry = self.get('_session_expiry')
+        if not expiry:   # Checks both None and 0 cases
+            return settings.SESSION_COOKIE_AGE
+        if not isinstance(expiry, datetime):
+            return expiry
+        delta = expiry - datetime.now()
+        return delta.days * 86400 + delta.seconds
+
+    def get_expiry_date(self):
+        """Get session the expiry date (as a datetime object)."""
+        expiry = self.get('_session_expiry')
+        if isinstance(expiry, datetime):
+            return expiry
+        if not expiry:   # Checks both None and 0 cases
+            expiry = settings.SESSION_COOKIE_AGE
+        return datetime.now() + timedelta(seconds=expiry)
+
+    def set_expiry(self, value):
+        """
+        Sets a custom expiration for the session. ``value`` can be an integer,
+        a Python ``datetime`` or ``timedelta`` object or ``None``.
+
+        If ``value`` is an integer, the session will expire after that many
+        seconds of inactivity. If set to ``0`` then the session will expire on
+        browser close.
+
+        If ``value`` is a ``datetime`` or ``timedelta`` object, the session
+        will expire at that specific future time.
+
+        If ``value`` is ``None``, the session uses the global session expiry
+        policy.
+        """
+        if value is None:
+            # Remove any custom expiration for this session.
+            try:
+                del self['_session_expiry']
+            except KeyError:
+                pass
+            return
+        if isinstance(value, timedelta):
+            value = datetime.now() + value
+        self['_session_expiry'] = value
+
+    def get_expire_at_browser_close(self):
+        """
+        Returns ``True`` if the session is set to expire when the browser
+        closes, and ``False`` if there's an expiry date. Use
+        ``get_expiry_date()`` or ``get_expiry_age()`` to find the actual expiry
+        date/age, if there is one.
+        """
+        if self.get('_session_expiry') is None:
+            return settings.SESSION_EXPIRE_AT_BROWSER_CLOSE
+        return self.get('_session_expiry') == 0
+
+    def flush(self):
+        """
+        Removes the current session data from the database and regenerates the
+        key.
+        """
+        self.clear()
+        self.delete()
+        self.create()
+
+    def cycle_key(self):
+        """
+        Creates a new session key, whilst retaining the current session data.
+        """
+        data = self._session_cache
+        key = self.session_key
+        self.create()
+        self._session_cache = data
+        self.delete(key)
+
+    # Methods that child classes must implement.
+
+    def exists(self, session_key):
+        """
+        Returns True if the given session_key already exists.
+        """
+        raise NotImplementedError
+
+    def create(self):
+        """
+        Creates a new session instance. Guaranteed to create a new object with
+        a unique key and will have saved the result once (with empty data)
+        before the method returns.
+        """
+        raise NotImplementedError
+
+    def save(self, must_create=False):
+        """
+        Saves the session data. If 'must_create' is True, a new session object
+        is created (otherwise a CreateError exception is raised). Otherwise,
+        save() can update an existing object with the same key.
+        """
+        raise NotImplementedError
+
+    def delete(self, session_key=None):
+        """
+        Deletes the session data under this key. If the key is None, the
+        current session key value is used.
+        """
+        raise NotImplementedError
+
+    def load(self):
+        """
+        Loads the session data and returns a dictionary.
+        """
+        raise NotImplementedError
diff --git a/webapp/django/contrib/sessions/backends/cache.py b/webapp/django/contrib/sessions/backends/cache.py
new file mode 100644
index 0000000..94ae448
--- /dev/null
+++ b/webapp/django/contrib/sessions/backends/cache.py
@@ -0,0 +1,50 @@
+from django.contrib.sessions.backends.base import SessionBase, CreateError
+from django.core.cache import cache
+
+class SessionStore(SessionBase):
+    """
+    A cache-based session store.
+    """
+    def __init__(self, session_key=None):
+        self._cache = cache
+        super(SessionStore, self).__init__(session_key)
+
+    def load(self):
+        session_data = self._cache.get(self.session_key)
+        if session_data is not None:
+            return session_data
+        self.create()
+        return {}
+
+    def create(self):
+        while True:
+            self.session_key = self._get_new_session_key()
+            try:
+                self.save(must_create=True)
+            except CreateError:
+                continue
+            self.modified = True
+            return
+
+    def save(self, must_create=False):
+        if must_create:
+            func = self._cache.add
+        else:
+            func = self._cache.set
+        result = func(self.session_key, self._get_session(no_load=must_create),
+                self.get_expiry_age())
+        if must_create and not result:
+            raise CreateError
+
+    def exists(self, session_key):
+        if self._cache.get(session_key):
+            return True
+        return False
+
+    def delete(self, session_key=None):
+        if session_key is None:
+            if self._session_key is None:
+                return
+            session_key = self._session_key
+        self._cache.delete(session_key)
+
diff --git a/webapp/django/contrib/sessions/backends/db.py b/webapp/django/contrib/sessions/backends/db.py
new file mode 100644
index 0000000..85c4a0d
--- /dev/null
+++ b/webapp/django/contrib/sessions/backends/db.py
@@ -0,0 +1,73 @@
+import datetime
+from django.contrib.sessions.models import Session
+from django.contrib.sessions.backends.base import SessionBase, CreateError
+from django.core.exceptions import SuspiciousOperation
+from django.db import IntegrityError, transaction
+from django.utils.encoding import force_unicode
+
+class SessionStore(SessionBase):
+    """
+    Implements database session store.
+    """
+    def load(self):
+        try:
+            s = Session.objects.get(
+                session_key = self.session_key,
+                expire_date__gt=datetime.datetime.now()
+            )
+            return self.decode(force_unicode(s.session_data))
+        except (Session.DoesNotExist, SuspiciousOperation):
+            self.create()
+            return {}
+
+    def exists(self, session_key):
+        try:
+            Session.objects.get(session_key=session_key)
+        except Session.DoesNotExist:
+            return False
+        return True
+
+    def create(self):
+        while True:
+            self.session_key = self._get_new_session_key()
+            try:
+                # Save immediately to ensure we have a unique entry in the
+                # database.
+                self.save(must_create=True)
+            except CreateError:
+                # Key wasn't unique. Try again.
+                continue
+            self.modified = True
+            self._session_cache = {}
+            return
+
+    def save(self, must_create=False):
+        """
+        Saves the current session data to the database. If 'must_create' is
+        True, a database error will be raised if the saving operation doesn't
+        create a *new* entry (as opposed to possibly updating an existing
+        entry).
+        """
+        obj = Session(
+            session_key = self.session_key,
+            session_data = self.encode(self._get_session(no_load=must_create)),
+            expire_date = self.get_expiry_date()
+        )
+        sid = transaction.savepoint()
+        try:
+            obj.save(force_insert=must_create)
+        except IntegrityError:
+            if must_create:
+                transaction.savepoint_rollback(sid)
+                raise CreateError
+            raise
+
+    def delete(self, session_key=None):
+        if session_key is None:
+            if self._session_key is None:
+                return
+            session_key = self._session_key
+        try:
+            Session.objects.get(session_key=session_key).delete()
+        except Session.DoesNotExist:
+            pass
diff --git a/webapp/django/contrib/sessions/backends/file.py b/webapp/django/contrib/sessions/backends/file.py
new file mode 100644
index 0000000..36a03b6
--- /dev/null
+++ b/webapp/django/contrib/sessions/backends/file.py
@@ -0,0 +1,107 @@
+import errno
+import os
+import tempfile
+
+from django.conf import settings
+from django.contrib.sessions.backends.base import SessionBase, CreateError
+from django.core.exceptions import SuspiciousOperation, ImproperlyConfigured
+
+
+class SessionStore(SessionBase):
+    """
+    Implements a file based session store.
+    """
+    def __init__(self, session_key=None):
+        self.storage_path = getattr(settings, "SESSION_FILE_PATH", None)
+        if not self.storage_path:
+            self.storage_path = tempfile.gettempdir()
+
+        # Make sure the storage path is valid.
+        if not os.path.isdir(self.storage_path):
+            raise ImproperlyConfigured(
+                "The session storage path %r doesn't exist. Please set your"
+                " SESSION_FILE_PATH setting to an existing directory in which"
+                " Django can store session data." % self.storage_path)
+
+        self.file_prefix = settings.SESSION_COOKIE_NAME
+        super(SessionStore, self).__init__(session_key)
+
+    def _key_to_file(self, session_key=None):
+        """
+        Get the file associated with this session key.
+        """
+        if session_key is None:
+            session_key = self.session_key
+
+        # Make sure we're not vulnerable to directory traversal. Session keys
+        # should always be md5s, so they should never contain directory
+        # components.
+        if os.path.sep in session_key:
+            raise SuspiciousOperation(
+                "Invalid characters (directory components) in session key")
+
+        return os.path.join(self.storage_path, self.file_prefix + session_key)
+
+    def load(self):
+        session_data = {}
+        try:
+            session_file = open(self._key_to_file(), "rb")
+            try:
+                try:
+                    session_data = self.decode(session_file.read())
+                except (EOFError, SuspiciousOperation):
+                    self.create()
+            finally:
+                session_file.close()
+        except IOError:
+            pass
+        return session_data
+
+    def create(self):
+        while True:
+            self._session_key = self._get_new_session_key()
+            try:
+                self.save(must_create=True)
+            except CreateError:
+                continue
+            self.modified = True
+            self._session_cache = {}
+            return
+
+    def save(self, must_create=False):
+        flags = os.O_WRONLY | os.O_CREAT | os.O_TRUNC | getattr(os, 'O_BINARY', 0)
+        if must_create:
+            flags |= os.O_EXCL
+        # Because this may trigger a load from storage, we must do it before
+        # truncating the file to save.
+        session_data = self._get_session(no_load=must_create)
+        try:
+            fd = os.open(self._key_to_file(self.session_key), flags)
+            try:
+                os.write(fd, self.encode(session_data))
+            finally:
+                os.close(fd)
+        except OSError, e:
+            if must_create and e.errno == errno.EEXIST:
+                raise CreateError
+            raise
+        except (IOError, EOFError):
+            pass
+
+    def exists(self, session_key):
+        if os.path.exists(self._key_to_file(session_key)):
+            return True
+        return False
+
+    def delete(self, session_key=None):
+        if session_key is None:
+            if self._session_key is None:
+                return
+            session_key = self._session_key
+        try:
+            os.unlink(self._key_to_file(session_key))
+        except OSError:
+            pass
+
+    def clean(self):
+        pass
diff --git a/webapp/django/contrib/sessions/middleware.py b/webapp/django/contrib/sessions/middleware.py
new file mode 100644
index 0000000..ce6e678
--- /dev/null
+++ b/webapp/django/contrib/sessions/middleware.py
@@ -0,0 +1,39 @@
+import time
+
+from django.conf import settings
+from django.utils.cache import patch_vary_headers
+from django.utils.http import cookie_date
+
+class SessionMiddleware(object):
+    def process_request(self, request):
+        engine = __import__(settings.SESSION_ENGINE, {}, {}, [''])
+        session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)
+        request.session = engine.SessionStore(session_key)
+
+    def process_response(self, request, response):
+        # If request.session was modified, or if response.session was set, save
+        # those changes and set a session cookie.
+        try:
+            accessed = request.session.accessed
+            modified = request.session.modified
+        except AttributeError:
+            pass
+        else:
+            if accessed:
+                patch_vary_headers(response, ('Cookie',))
+            if modified or settings.SESSION_SAVE_EVERY_REQUEST:
+                if request.session.get_expire_at_browser_close():
+                    max_age = None
+                    expires = None
+                else:
+                    max_age = request.session.get_expiry_age()
+                    expires_time = time.time() + max_age
+                    expires = cookie_date(expires_time)
+                # Save the session data and refresh the client cookie.
+                request.session.save()
+                response.set_cookie(settings.SESSION_COOKIE_NAME,
+                        request.session.session_key, max_age=max_age,
+                        expires=expires, domain=settings.SESSION_COOKIE_DOMAIN,
+                        path=settings.SESSION_COOKIE_PATH,
+                        secure=settings.SESSION_COOKIE_SECURE or None)
+        return response
diff --git a/webapp/django/contrib/sessions/models.py b/webapp/django/contrib/sessions/models.py
new file mode 100644
index 0000000..cf2865f
--- /dev/null
+++ b/webapp/django/contrib/sessions/models.py
@@ -0,0 +1,67 @@
+import base64
+import cPickle as pickle
+
+from django.db import models
+from django.utils.translation import ugettext_lazy as _
+from django.conf import settings
+from django.utils.hashcompat import md5_constructor
+
+
+class SessionManager(models.Manager):
+    def encode(self, session_dict):
+        """
+        Returns the given session dictionary pickled and encoded as a string.
+        """
+        pickled = pickle.dumps(session_dict)
+        pickled_md5 = md5_constructor(pickled + settings.SECRET_KEY).hexdigest()
+        return base64.encodestring(pickled + pickled_md5)
+
+    def save(self, session_key, session_dict, expire_date):
+        s = self.model(session_key, self.encode(session_dict), expire_date)
+        if session_dict:
+            s.save()
+        else:
+            s.delete() # Clear sessions with no data.
+        return s
+
+
+class Session(models.Model):
+    """
+    Django provides full support for anonymous sessions. The session
+    framework lets you store and retrieve arbitrary data on a
+    per-site-visitor basis. It stores data on the server side and
+    abstracts the sending and receiving of cookies. Cookies contain a
+    session ID -- not the data itself.
+
+    The Django sessions framework is entirely cookie-based. It does
+    not fall back to putting session IDs in URLs. This is an intentional
+    design decision. Not only does that behavior make URLs ugly, it makes
+    your site vulnerable to session-ID theft via the "Referer" header.
+
+    For complete documentation on using Sessions in your code, consult
+    the sessions documentation that is shipped with Django (also available
+    on the Django website).
+    """
+    session_key = models.CharField(_('session key'), max_length=40,
+                                   primary_key=True)
+    session_data = models.TextField(_('session data'))
+    expire_date = models.DateTimeField(_('expire date'))
+    objects = SessionManager()
+
+    class Meta:
+        db_table = 'django_session'
+        verbose_name = _('session')
+        verbose_name_plural = _('sessions')
+
+    def get_decoded(self):
+        encoded_data = base64.decodestring(self.session_data)
+        pickled, tamper_check = encoded_data[:-32], encoded_data[-32:]
+        if md5_constructor(pickled + settings.SECRET_KEY).hexdigest() != tamper_check:
+            from django.core.exceptions import SuspiciousOperation
+            raise SuspiciousOperation, "User tampered with session cookie."
+        try:
+            return pickle.loads(pickled)
+        # Unpickling can cause a variety of exceptions. If something happens,
+        # just return an empty dictionary (an empty session).
+        except:
+            return {}
diff --git a/webapp/django/contrib/sessions/tests.py b/webapp/django/contrib/sessions/tests.py
new file mode 100644
index 0000000..5efc17d
--- /dev/null
+++ b/webapp/django/contrib/sessions/tests.py
@@ -0,0 +1,341 @@
+r"""
+
+>>> from django.conf import settings
+>>> from django.contrib.sessions.backends.db import SessionStore as DatabaseSession
+>>> from django.contrib.sessions.backends.cache import SessionStore as CacheSession
+>>> from django.contrib.sessions.backends.file import SessionStore as FileSession
+>>> from django.contrib.sessions.backends.base import SessionBase
+>>> from django.contrib.sessions.models import Session
+
+>>> db_session = DatabaseSession()
+>>> db_session.modified
+False
+>>> db_session.get('cat')
+>>> db_session['cat'] = "dog"
+>>> db_session.modified
+True
+>>> db_session.pop('cat')
+'dog'
+>>> db_session.pop('some key', 'does not exist')
+'does not exist'
+>>> db_session.save()
+>>> db_session.exists(db_session.session_key)
+True
+>>> db_session.delete(db_session.session_key)
+>>> db_session.exists(db_session.session_key)
+False
+
+>>> db_session['foo'] = 'bar'
+>>> db_session.save()
+>>> db_session.exists(db_session.session_key)
+True
+>>> prev_key = db_session.session_key
+>>> db_session.flush()
+>>> db_session.exists(prev_key)
+False
+>>> db_session.session_key == prev_key
+False
+>>> db_session.modified, db_session.accessed
+(True, True)
+>>> db_session['a'], db_session['b'] = 'c', 'd'
+>>> db_session.save()
+>>> prev_key = db_session.session_key
+>>> prev_data = db_session.items()
+>>> db_session.cycle_key()
+>>> db_session.session_key == prev_key
+False
+>>> db_session.items() == prev_data
+True
+
+# Submitting an invalid session key (either by guessing, or if the db has
+# removed the key) results in a new key being generated.
+>>> Session.objects.filter(pk=db_session.session_key).delete()
+>>> db_session = DatabaseSession(db_session.session_key)
+>>> db_session.save()
+>>> DatabaseSession('1').get('cat')
+
+>>> file_session = FileSession()
+>>> file_session.modified
+False
+>>> file_session['cat'] = "dog"
+>>> file_session.modified
+True
+>>> file_session.pop('cat')
+'dog'
+>>> file_session.pop('some key', 'does not exist')
+'does not exist'
+>>> file_session.save()
+>>> file_session.exists(file_session.session_key)
+True
+>>> file_session.delete(file_session.session_key)
+>>> file_session.exists(file_session.session_key)
+False
+>>> FileSession('1').get('cat')
+
+>>> file_session['foo'] = 'bar'
+>>> file_session.save()
+>>> file_session.exists(file_session.session_key)
+True
+>>> prev_key = file_session.session_key
+>>> file_session.flush()
+>>> file_session.exists(prev_key)
+False
+>>> file_session.session_key == prev_key
+False
+>>> file_session.modified, file_session.accessed
+(True, True)
+>>> file_session['a'], file_session['b'] = 'c', 'd'
+>>> file_session.save()
+>>> prev_key = file_session.session_key
+>>> prev_data = file_session.items()
+>>> file_session.cycle_key()
+>>> file_session.session_key == prev_key
+False
+>>> file_session.items() == prev_data
+True
+
+>>> Session.objects.filter(pk=file_session.session_key).delete()
+>>> file_session = FileSession(file_session.session_key)
+>>> file_session.save()
+
+# Make sure the file backend checks for a good storage dir
+>>> settings.SESSION_FILE_PATH = "/if/this/directory/exists/you/have/a/weird/computer"
+>>> FileSession()
+Traceback (innermost last):
+    ...
+ImproperlyConfigured: The session storage path '/if/this/directory/exists/you/have/a/weird/computer' doesn't exist. Please set your SESSION_FILE_PATH setting to an existing directory in which Django can store session data.
+
+>>> cache_session = CacheSession()
+>>> cache_session.modified
+False
+>>> cache_session['cat'] = "dog"
+>>> cache_session.modified
+True
+>>> cache_session.pop('cat')
+'dog'
+>>> cache_session.pop('some key', 'does not exist')
+'does not exist'
+>>> cache_session.save()
+>>> cache_session.delete(cache_session.session_key)
+>>> cache_session.exists(cache_session.session_key)
+False
+>>> cache_session['foo'] = 'bar'
+>>> cache_session.save()
+>>> cache_session.exists(cache_session.session_key)
+True
+>>> prev_key = cache_session.session_key
+>>> cache_session.flush()
+>>> cache_session.exists(prev_key)
+False
+>>> cache_session.session_key == prev_key
+False
+>>> cache_session.modified, cache_session.accessed
+(True, True)
+>>> cache_session['a'], cache_session['b'] = 'c', 'd'
+>>> cache_session.save()
+>>> prev_key = cache_session.session_key
+>>> prev_data = cache_session.items()
+>>> cache_session.cycle_key()
+>>> cache_session.session_key == prev_key
+False
+>>> cache_session.items() == prev_data
+True
+
+>>> Session.objects.filter(pk=cache_session.session_key).delete()
+>>> cache_session = CacheSession(cache_session.session_key)
+>>> cache_session.save()
+>>> CacheSession('1').get('cat')
+
+>>> s = SessionBase()
+>>> s._session['some key'] = 'exists' # Pre-populate the session with some data
+>>> s.accessed = False   # Reset to pretend this wasn't accessed previously
+
+>>> s.accessed, s.modified
+(False, False)
+
+>>> s.pop('non existant key', 'does not exist')
+'does not exist'
+>>> s.accessed, s.modified
+(True, False)
+
+>>> s.setdefault('foo', 'bar')
+'bar'
+>>> s.setdefault('foo', 'baz')
+'bar'
+
+>>> s.accessed = False  # Reset the accessed flag
+
+>>> s.pop('some key')
+'exists'
+>>> s.accessed, s.modified
+(True, True)
+
+>>> s.pop('some key', 'does not exist')
+'does not exist'
+
+
+>>> s.get('update key', None)
+
+# test .update()
+>>> s.modified = s.accessed = False   # Reset to pretend this wasn't accessed previously
+>>> s.update({'update key':1})
+>>> s.accessed, s.modified
+(True, True)
+>>> s.get('update key', None)
+1
+
+# test .has_key()
+>>> s.modified = s.accessed = False   # Reset to pretend this wasn't accessed previously
+>>> s.has_key('update key')
+True
+>>> s.accessed, s.modified
+(True, False)
+
+# test .values()
+>>> s = SessionBase()
+>>> s.values()
+[]
+>>> s.accessed
+True
+>>> s['x'] = 1
+>>> s.values()
+[1]
+
+# test .iterkeys()
+>>> s.accessed = False
+>>> i = s.iterkeys()
+>>> hasattr(i,'__iter__')
+True
+>>> s.accessed
+True
+>>> list(i)
+['x']
+
+# test .itervalues()
+>>> s.accessed = False
+>>> i = s.itervalues()
+>>> hasattr(i,'__iter__')
+True
+>>> s.accessed
+True
+>>> list(i)
+[1]
+
+# test .iteritems()
+>>> s.accessed = False
+>>> i = s.iteritems()
+>>> hasattr(i,'__iter__')
+True
+>>> s.accessed
+True
+>>> list(i)
+[('x', 1)]
+
+# test .clear()
+>>> s.modified = s.accessed = False
+>>> s.items()
+[('x', 1)]
+>>> s.clear()
+>>> s.items()
+[]
+>>> s.accessed, s.modified
+(True, True)
+
+#########################
+# Custom session expiry #
+#########################
+
+>>> from django.conf import settings
+>>> from datetime import datetime, timedelta
+
+>>> td10 = timedelta(seconds=10)
+
+# A normal session has a max age equal to settings
+>>> s.get_expiry_age() == settings.SESSION_COOKIE_AGE
+True
+
+# So does a custom session with an idle expiration time of 0 (but it'll expire
+# at browser close)
+>>> s.set_expiry(0)
+>>> s.get_expiry_age() == settings.SESSION_COOKIE_AGE
+True
+
+# Custom session idle expiration time
+>>> s.set_expiry(10)
+>>> delta = s.get_expiry_date() - datetime.now()
+>>> delta.seconds in (9, 10)
+True
+>>> age = s.get_expiry_age()
+>>> age in (9, 10)
+True
+
+# Custom session fixed expiry date (timedelta)
+>>> s.set_expiry(td10)
+>>> delta = s.get_expiry_date() - datetime.now()
+>>> delta.seconds in (9, 10)
+True
+>>> age = s.get_expiry_age()
+>>> age in (9, 10)
+True
+
+# Custom session fixed expiry date (fixed datetime)
+>>> s.set_expiry(datetime.now() + td10)
+>>> delta = s.get_expiry_date() - datetime.now()
+>>> delta.seconds in (9, 10)
+True
+>>> age = s.get_expiry_age()
+>>> age in (9, 10)
+True
+
+# Set back to default session age
+>>> s.set_expiry(None)
+>>> s.get_expiry_age() == settings.SESSION_COOKIE_AGE
+True
+
+# Allow to set back to default session age even if no alternate has been set
+>>> s.set_expiry(None)
+
+
+# We're changing the setting then reverting back to the original setting at the
+# end of these tests.
+>>> original_expire_at_browser_close = settings.SESSION_EXPIRE_AT_BROWSER_CLOSE
+>>> settings.SESSION_EXPIRE_AT_BROWSER_CLOSE = False
+
+# Custom session age
+>>> s.set_expiry(10)
+>>> s.get_expire_at_browser_close()
+False
+
+# Custom expire-at-browser-close
+>>> s.set_expiry(0)
+>>> s.get_expire_at_browser_close()
+True
+
+# Default session age
+>>> s.set_expiry(None)
+>>> s.get_expire_at_browser_close()
+False
+
+>>> settings.SESSION_EXPIRE_AT_BROWSER_CLOSE = True
+
+# Custom session age
+>>> s.set_expiry(10)
+>>> s.get_expire_at_browser_close()
+False
+
+# Custom expire-at-browser-close
+>>> s.set_expiry(0)
+>>> s.get_expire_at_browser_close()
+True
+
+# Default session age
+>>> s.set_expiry(None)
+>>> s.get_expire_at_browser_close()
+True
+
+>>> settings.SESSION_EXPIRE_AT_BROWSER_CLOSE = original_expire_at_browser_close
+"""
+
+if __name__ == '__main__':
+    import doctest
+    doctest.testmod()
diff --git a/webapp/django/contrib/sitemaps/__init__.py b/webapp/django/contrib/sitemaps/__init__.py
new file mode 100644
index 0000000..2d0e047
--- /dev/null
+++ b/webapp/django/contrib/sitemaps/__init__.py
@@ -0,0 +1,100 @@
+from django.core import urlresolvers, paginator
+import urllib
+
+PING_URL = "http://www.google.com/webmasters/tools/ping"
+
+class SitemapNotFound(Exception):
+    pass
+
+def ping_google(sitemap_url=None, ping_url=PING_URL):
+    """
+    Alerts Google that the sitemap for the current site has been updated.
+    If sitemap_url is provided, it should be an absolute path to the sitemap
+    for this site -- e.g., '/sitemap.xml'. If sitemap_url is not provided, this
+    function will attempt to deduce it by using urlresolvers.reverse().
+    """
+    if sitemap_url is None:
+        try:
+            # First, try to get the "index" sitemap URL.
+            sitemap_url = urlresolvers.reverse('django.contrib.sitemaps.views.index')
+        except urlresolvers.NoReverseMatch:
+            try:
+                # Next, try for the "global" sitemap URL.
+                sitemap_url = urlresolvers.reverse('django.contrib.sitemaps.views.sitemap')
+            except urlresolvers.NoReverseMatch:
+                pass
+
+    if sitemap_url is None:
+        raise SitemapNotFound("You didn't provide a sitemap_url, and the sitemap URL couldn't be auto-detected.")
+
+    from django.contrib.sites.models import Site
+    current_site = Site.objects.get_current()
+    url = "http://%s%s" % (current_site.domain, sitemap_url)
+    params = urllib.urlencode({'sitemap':url})
+    urllib.urlopen("%s?%s" % (ping_url, params))
+
+class Sitemap:
+    # This limit is defined by Google. See the index documentation at
+    # http://sitemaps.org/protocol.php#index.
+    limit = 50000
+
+    def __get(self, name, obj, default=None):
+        try:
+            attr = getattr(self, name)
+        except AttributeError:
+            return default
+        if callable(attr):
+            return attr(obj)
+        return attr
+
+    def items(self):
+        return []
+
+    def location(self, obj):
+        return obj.get_absolute_url()
+
+    def _get_paginator(self):
+        if not hasattr(self, "_paginator"):
+            self._paginator = paginator.Paginator(self.items(), self.limit)
+        return self._paginator
+    paginator = property(_get_paginator)
+
+    def get_urls(self, page=1):
+        from django.contrib.sites.models import Site
+        current_site = Site.objects.get_current()
+        urls = []
+        for item in self.paginator.page(page).object_list:
+            loc = "http://%s%s" % (current_site.domain, self.__get('location', item))
+            url_info = {
+                'location':   loc,
+                'lastmod':    self.__get('lastmod', item, None),
+                'changefreq': self.__get('changefreq', item, None),
+                'priority':   self.__get('priority', item, None)
+            }
+            urls.append(url_info)
+        return urls
+
+class FlatPageSitemap(Sitemap):
+    def items(self):
+        from django.contrib.sites.models import Site
+        current_site = Site.objects.get_current()
+        return current_site.flatpage_set.all()
+
+class GenericSitemap(Sitemap):
+    priority = None
+    changefreq = None
+
+    def __init__(self, info_dict, priority=None, changefreq=None):
+        self.queryset = info_dict['queryset']
+        self.date_field = info_dict.get('date_field', None)
+        self.priority = priority
+        self.changefreq = changefreq
+
+    def items(self):
+        # Make sure to return a clone; we don't want premature evaluation.
+        return self.queryset.filter()
+
+    def lastmod(self, item):
+        if self.date_field is not None:
+            return getattr(item, self.date_field)
+        return None
diff --git a/webapp/django/contrib/sitemaps/management/__init__.py b/webapp/django/contrib/sitemaps/management/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/sitemaps/management/__init__.py
diff --git a/webapp/django/contrib/sitemaps/management/commands/__init__.py b/webapp/django/contrib/sitemaps/management/commands/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/sitemaps/management/commands/__init__.py
diff --git a/webapp/django/contrib/sitemaps/management/commands/ping_google.py b/webapp/django/contrib/sitemaps/management/commands/ping_google.py
new file mode 100644
index 0000000..afff04b
--- /dev/null
+++ b/webapp/django/contrib/sitemaps/management/commands/ping_google.py
@@ -0,0 +1,14 @@
+from django.core.management.base import BaseCommand
+from django.contrib.sitemaps import ping_google
+
+
+class Command(BaseCommand):
+    help = "Ping google with an updated sitemap, pass optional url of sitemap"
+
+    def execute(self, *args, **options):
+        if len(args) == 1:
+            sitemap_url = args[0]
+        else:
+            sitemap_url = None
+        ping_google(sitemap_url=sitemap_url)
+
diff --git a/webapp/django/contrib/sitemaps/templates/sitemap.xml b/webapp/django/contrib/sitemaps/templates/sitemap.xml
new file mode 100644
index 0000000..c0d529d
--- /dev/null
+++ b/webapp/django/contrib/sitemaps/templates/sitemap.xml
@@ -0,0 +1,14 @@
+{% autoescape off %}<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+{% spaceless %}
+{% for url in urlset %}
+  <url>
+    <loc>{{ url.location|escape }}</loc>
+    {% if url.lastmod %}<lastmod>{{ url.lastmod|date:"Y-m-d" }}</lastmod>{% endif %}
+    {% if url.changefreq %}<changefreq>{{ url.changefreq }}</changefreq>{% endif %}
+    {% if url.priority %}<priority>{{ url.priority }}</priority>{% endif %}
+   </url>
+{% endfor %}
+{% endspaceless %}
+</urlset>
+{% endautoescape %}
diff --git a/webapp/django/contrib/sitemaps/templates/sitemap_index.xml b/webapp/django/contrib/sitemaps/templates/sitemap_index.xml
new file mode 100644
index 0000000..497ae8b
--- /dev/null
+++ b/webapp/django/contrib/sitemaps/templates/sitemap_index.xml
@@ -0,0 +1,5 @@
+{% autoescape off %}<?xml version="1.0" encoding="UTF-8"?>
+<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+{% for location in sitemaps %}<sitemap><loc>{{ location|escape }}</loc></sitemap>{% endfor %}
+</sitemapindex>
+{% endautoescape %}
diff --git a/webapp/django/contrib/sitemaps/views.py b/webapp/django/contrib/sitemaps/views.py
new file mode 100644
index 0000000..7a5fe38
--- /dev/null
+++ b/webapp/django/contrib/sitemaps/views.py
@@ -0,0 +1,45 @@
+from django.http import HttpResponse, Http404
+from django.template import loader
+from django.contrib.sites.models import Site
+from django.core import urlresolvers
+from django.utils.encoding import smart_str
+from django.core.paginator import EmptyPage, PageNotAnInteger
+
+def index(request, sitemaps):
+    current_site = Site.objects.get_current()
+    sites = []
+    protocol = request.is_secure() and 'https' or 'http'
+    for section, site in sitemaps.items():
+        if callable(site):
+            pages = site().paginator.num_pages
+        else:
+            pages = site.paginator.num_pages
+        sitemap_url = urlresolvers.reverse('django.contrib.sitemaps.views.sitemap', kwargs={'section': section})
+        sites.append('%s://%s%s' % (protocol, current_site.domain, sitemap_url))
+        if pages > 1:
+            for page in range(2, pages+1):
+                sites.append('%s://%s%s?p=%s' % (protocol, current_site.domain, sitemap_url, page))
+    xml = loader.render_to_string('sitemap_index.xml', {'sitemaps': sites})
+    return HttpResponse(xml, mimetype='application/xml')
+
+def sitemap(request, sitemaps, section=None):
+    maps, urls = [], []
+    if section is not None:
+        if section not in sitemaps:
+            raise Http404("No sitemap available for section: %r" % section)
+        maps.append(sitemaps[section])
+    else:
+        maps = sitemaps.values()
+    page = request.GET.get("p", 1)
+    for site in maps:
+        try:
+            if callable(site):
+                urls.extend(site().get_urls(page))
+            else:
+                urls.extend(site.get_urls(page))
+        except EmptyPage:
+            raise Http404("Page %s empty" % page)
+        except PageNotAnInteger:
+            raise Http404("No page '%s'" % page)
+    xml = smart_str(loader.render_to_string('sitemap.xml', {'urlset': urls}))
+    return HttpResponse(xml, mimetype='application/xml')
diff --git a/webapp/django/contrib/sites/__init__.py b/webapp/django/contrib/sites/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/sites/__init__.py
diff --git a/webapp/django/contrib/sites/admin.py b/webapp/django/contrib/sites/admin.py
new file mode 100644
index 0000000..2442c24
--- /dev/null
+++ b/webapp/django/contrib/sites/admin.py
@@ -0,0 +1,9 @@
+from django.contrib import admin
+from django.contrib.sites.models import Site
+
+
+class SiteAdmin(admin.ModelAdmin):
+    list_display = ('domain', 'name')
+    search_fields = ('domain', 'name')
+
+admin.site.register(Site, SiteAdmin)
\ No newline at end of file
diff --git a/webapp/django/contrib/sites/management.py b/webapp/django/contrib/sites/management.py
new file mode 100644
index 0000000..25c0760
--- /dev/null
+++ b/webapp/django/contrib/sites/management.py
@@ -0,0 +1,17 @@
+"""
+Creates the default Site object.
+"""
+
+from django.db.models import signals
+from django.contrib.sites.models import Site
+from django.contrib.sites import models as site_app
+
+def create_default_site(app, created_models, verbosity, **kwargs):
+    if Site in created_models:
+        if verbosity >= 2:
+            print "Creating example.com Site object"
+        s = Site(domain="example.com", name="example.com")
+        s.save()
+    Site.objects.clear_cache()
+
+signals.post_syncdb.connect(create_default_site, sender=site_app)
diff --git a/webapp/django/contrib/sites/managers.py b/webapp/django/contrib/sites/managers.py
new file mode 100644
index 0000000..d49244f
--- /dev/null
+++ b/webapp/django/contrib/sites/managers.py
@@ -0,0 +1,20 @@
+from django.conf import settings
+from django.db import models
+from django.db.models.fields import FieldDoesNotExist
+
+class CurrentSiteManager(models.Manager):
+    "Use this to limit objects to those associated with the current site."
+    def __init__(self, field_name='site'):
+        super(CurrentSiteManager, self).__init__()
+        self.__field_name = field_name
+        self.__is_validated = False
+
+    def get_query_set(self):
+        if not self.__is_validated:
+            try:
+                self.model._meta.get_field(self.__field_name)
+            except FieldDoesNotExist:
+                raise ValueError, "%s couldn't find a field named %s in %s." % \
+                    (self.__class__.__name__, self.__field_name, self.model._meta.object_name)
+            self.__is_validated = True
+        return super(CurrentSiteManager, self).get_query_set().filter(**{self.__field_name + '__id__exact': settings.SITE_ID})
diff --git a/webapp/django/contrib/sites/models.py b/webapp/django/contrib/sites/models.py
new file mode 100644
index 0000000..c44e5ce
--- /dev/null
+++ b/webapp/django/contrib/sites/models.py
@@ -0,0 +1,71 @@
+from django.db import models
+from django.utils.translation import ugettext_lazy as _
+
+SITE_CACHE = {}
+
+class SiteManager(models.Manager):
+    def get_current(self):
+        """
+        Returns the current ``Site`` based on the SITE_ID in the
+        project's settings. The ``Site`` object is cached the first
+        time it's retrieved from the database.
+        """
+        from django.conf import settings
+        try:
+            sid = settings.SITE_ID
+        except AttributeError:
+            from django.core.exceptions import ImproperlyConfigured
+            raise ImproperlyConfigured("You're using the Django \"sites framework\" without having set the SITE_ID setting. Create a site in your database and set the SITE_ID setting to fix this error.")
+        try:
+            current_site = SITE_CACHE[sid]
+        except KeyError:
+            current_site = self.get(pk=sid)
+            SITE_CACHE[sid] = current_site
+        return current_site
+
+    def clear_cache(self):
+        """Clears the ``Site`` object cache."""
+        global SITE_CACHE
+        SITE_CACHE = {}
+
+class Site(models.Model):
+    domain = models.CharField(_('domain name'), max_length=100)
+    name = models.CharField(_('display name'), max_length=50)
+    objects = SiteManager()
+
+    class Meta:
+        db_table = 'django_site'
+        verbose_name = _('site')
+        verbose_name_plural = _('sites')
+        ordering = ('domain',)
+
+    def __unicode__(self):
+        return self.domain
+    
+    def delete(self):
+        pk = self.pk
+        super(Site, self).delete()
+        try:
+            del(SITE_CACHE[pk])
+        except KeyError:
+            pass
+
+class RequestSite(object):
+    """
+    A class that shares the primary interface of Site (i.e., it has
+    ``domain`` and ``name`` attributes) but gets its data from a Django
+    HttpRequest object rather than from a database.
+
+    The save() and delete() methods raise NotImplementedError.
+    """
+    def __init__(self, request):
+        self.domain = self.name = request.get_host()
+
+    def __unicode__(self):
+        return self.domain
+
+    def save(self):
+        raise NotImplementedError('RequestSite cannot be saved.')
+
+    def delete(self):
+        raise NotImplementedError('RequestSite cannot be deleted.')
diff --git a/webapp/django/contrib/sites/tests.py b/webapp/django/contrib/sites/tests.py
new file mode 100644
index 0000000..f39f7a2
--- /dev/null
+++ b/webapp/django/contrib/sites/tests.py
@@ -0,0 +1,16 @@
+"""
+>>> from django.contrib.sites.models import Site
+>>> from django.conf import settings
+>>> Site(id=settings.SITE_ID, domain="example.com", name="example.com").save()
+ 	
+>>> # Make sure that get_current() does not return a deleted Site object.
+>>> s = Site.objects.get_current()
+>>> isinstance(s, Site)
+True
+
+>>> s.delete()
+>>> Site.objects.get_current()
+Traceback (most recent call last):
+...
+DoesNotExist: Site matching query does not exist.
+"""
diff --git a/webapp/django/contrib/syndication/__init__.py b/webapp/django/contrib/syndication/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/syndication/__init__.py
diff --git a/webapp/django/contrib/syndication/feeds.py b/webapp/django/contrib/syndication/feeds.py
new file mode 100644
index 0000000..a1f0810
--- /dev/null
+++ b/webapp/django/contrib/syndication/feeds.py
@@ -0,0 +1,178 @@
+from datetime import datetime, timedelta
+
+from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist
+from django.template import loader, Template, TemplateDoesNotExist
+from django.contrib.sites.models import Site, RequestSite
+from django.utils import feedgenerator
+from django.utils.tzinfo import FixedOffset
+from django.utils.encoding import smart_unicode, iri_to_uri
+from django.conf import settings         
+from django.template import RequestContext
+
+def add_domain(domain, url):
+    if not (url.startswith('http://') or url.startswith('https://')):
+        # 'url' must already be ASCII and URL-quoted, so no need for encoding
+        # conversions here.
+        url = iri_to_uri(u'http://%s%s' % (domain, url))
+    return url
+
+class FeedDoesNotExist(ObjectDoesNotExist):
+    pass
+
+class Feed(object):
+    item_pubdate = None
+    item_enclosure_url = None
+    feed_type = feedgenerator.DefaultFeed
+    title_template = None
+    description_template = None
+
+    def __init__(self, slug, request):
+        self.slug = slug
+        self.request = request
+        self.feed_url = request.path
+        self.title_template_name = self.title_template or ('feeds/%s_title.html' % slug)
+        self.description_template_name = self.description_template or ('feeds/%s_description.html' % slug)
+
+    def item_link(self, item):
+        try:
+            return item.get_absolute_url()
+        except AttributeError:
+            raise ImproperlyConfigured, "Give your %s class a get_absolute_url() method, or define an item_link() method in your Feed class." % item.__class__.__name__
+
+    def __get_dynamic_attr(self, attname, obj, default=None):
+        try:
+            attr = getattr(self, attname)
+        except AttributeError:
+            return default
+        if callable(attr):
+            # Check func_code.co_argcount rather than try/excepting the
+            # function and catching the TypeError, because something inside
+            # the function may raise the TypeError. This technique is more
+            # accurate.
+            if hasattr(attr, 'func_code'):
+                argcount = attr.func_code.co_argcount
+            else:
+                argcount = attr.__call__.func_code.co_argcount
+            if argcount == 2: # one argument is 'self'
+                return attr(obj)
+            else:
+                return attr()
+        return attr
+
+    def feed_extra_kwargs(self, obj):
+        """
+        Returns an extra keyword arguments dictionary that is used when
+        initializing the feed generator.
+        """
+        return {}
+
+    def item_extra_kwargs(self, item):
+        """
+        Returns an extra keyword arguments dictionary that is used with
+        the `add_item` call of the feed generator.
+        """
+        return {}
+
+    def get_object(self, bits):
+        return None
+
+    def get_feed(self, url=None):
+        """
+        Returns a feedgenerator.DefaultFeed object, fully populated, for
+        this feed. Raises FeedDoesNotExist for invalid parameters.
+        """
+        if url:
+            bits = url.split('/')
+        else:
+            bits = []
+
+        try:
+            obj = self.get_object(bits)
+        except ObjectDoesNotExist:
+            raise FeedDoesNotExist
+
+        if Site._meta.installed:
+            current_site = Site.objects.get_current()
+        else:
+            current_site = RequestSite(self.request)
+        
+        link = self.__get_dynamic_attr('link', obj)
+        link = add_domain(current_site.domain, link)
+
+        feed = self.feed_type(
+            title = self.__get_dynamic_attr('title', obj),
+            subtitle = self.__get_dynamic_attr('subtitle', obj),
+            link = link,
+            description = self.__get_dynamic_attr('description', obj),
+            language = settings.LANGUAGE_CODE.decode(),
+            feed_url = add_domain(current_site.domain,
+                                  self.__get_dynamic_attr('feed_url', obj)),
+            author_name = self.__get_dynamic_attr('author_name', obj),
+            author_link = self.__get_dynamic_attr('author_link', obj),
+            author_email = self.__get_dynamic_attr('author_email', obj),
+            categories = self.__get_dynamic_attr('categories', obj),
+            feed_copyright = self.__get_dynamic_attr('feed_copyright', obj),
+            feed_guid = self.__get_dynamic_attr('feed_guid', obj),
+            ttl = self.__get_dynamic_attr('ttl', obj),
+            **self.feed_extra_kwargs(obj)
+        )
+
+        try:
+            title_tmp = loader.get_template(self.title_template_name)
+        except TemplateDoesNotExist:
+            title_tmp = Template('{{ obj }}')
+        try:
+            description_tmp = loader.get_template(self.description_template_name)
+        except TemplateDoesNotExist:
+            description_tmp = Template('{{ obj }}')
+
+        for item in self.__get_dynamic_attr('items', obj):
+            link = add_domain(current_site.domain, self.__get_dynamic_attr('item_link', item))
+            enc = None
+            enc_url = self.__get_dynamic_attr('item_enclosure_url', item)
+            if enc_url:
+                enc = feedgenerator.Enclosure(
+                    url = smart_unicode(enc_url),
+                    length = smart_unicode(self.__get_dynamic_attr('item_enclosure_length', item)),
+                    mime_type = smart_unicode(self.__get_dynamic_attr('item_enclosure_mime_type', item))
+                )
+            author_name = self.__get_dynamic_attr('item_author_name', item)
+            if author_name is not None:
+                author_email = self.__get_dynamic_attr('item_author_email', item)
+                author_link = self.__get_dynamic_attr('item_author_link', item)
+            else:
+                author_email = author_link = None
+
+            pubdate = self.__get_dynamic_attr('item_pubdate', item)
+            if pubdate:
+                now = datetime.now()
+                utcnow = datetime.utcnow()
+
+                # Must always subtract smaller time from larger time here.
+                if utcnow > now:
+                    sign = -1
+                    tzDifference = (utcnow - now)
+                else:
+                    sign = 1
+                    tzDifference = (now - utcnow)
+
+                # Round the timezone offset to the nearest half hour.
+                tzOffsetMinutes = sign * ((tzDifference.seconds / 60 + 15) / 30) * 30
+                tzOffset = timedelta(minutes=tzOffsetMinutes)
+                pubdate = pubdate.replace(tzinfo=FixedOffset(tzOffset))
+
+            feed.add_item(
+                title = title_tmp.render(RequestContext(self.request, {'obj': item, 'site': current_site})),
+                link = link,
+                description = description_tmp.render(RequestContext(self.request, {'obj': item, 'site': current_site})),
+                unique_id = self.__get_dynamic_attr('item_guid', item, link),
+                enclosure = enc,
+                pubdate = pubdate,
+                author_name = author_name,
+                author_email = author_email,
+                author_link = author_link,
+                categories = self.__get_dynamic_attr('item_categories', item),
+                item_copyright = self.__get_dynamic_attr('item_copyright', item),
+                **self.item_extra_kwargs(item)
+            )
+        return feed
diff --git a/webapp/django/contrib/syndication/views.py b/webapp/django/contrib/syndication/views.py
new file mode 100644
index 0000000..423d333
--- /dev/null
+++ b/webapp/django/contrib/syndication/views.py
@@ -0,0 +1,25 @@
+from django.contrib.syndication import feeds
+from django.http import HttpResponse, Http404
+
+def feed(request, url, feed_dict=None):
+    if not feed_dict:
+        raise Http404, "No feeds are registered."
+
+    try:
+        slug, param = url.split('/', 1)
+    except ValueError:
+        slug, param = url, ''
+
+    try:
+        f = feed_dict[slug]
+    except KeyError:
+        raise Http404, "Slug %r isn't registered." % slug
+
+    try:
+        feedgen = f(slug, request).get_feed(param)
+    except feeds.FeedDoesNotExist:
+        raise Http404, "Invalid feed parameters. Slug %r is valid, but other parameters, or lack thereof, are not." % slug
+
+    response = HttpResponse(mimetype=feedgen.mime_type)
+    feedgen.write(response, 'utf-8')
+    return response
diff --git a/webapp/django/contrib/webdesign/__init__.py b/webapp/django/contrib/webdesign/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/webdesign/__init__.py
diff --git a/webapp/django/contrib/webdesign/lorem_ipsum.py b/webapp/django/contrib/webdesign/lorem_ipsum.py
new file mode 100644
index 0000000..4ad175d
--- /dev/null
+++ b/webapp/django/contrib/webdesign/lorem_ipsum.py
@@ -0,0 +1,101 @@
+"""
+Utility functions for generating "lorem ipsum" Latin text.
+"""
+
+import random
+
+COMMON_P = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
+
+WORDS = ('exercitationem', 'perferendis', 'perspiciatis', 'laborum', 'eveniet',
+        'sunt', 'iure', 'nam', 'nobis', 'eum', 'cum', 'officiis', 'excepturi',
+        'odio', 'consectetur', 'quasi', 'aut', 'quisquam', 'vel', 'eligendi',
+        'itaque', 'non', 'odit', 'tempore', 'quaerat', 'dignissimos',
+        'facilis', 'neque', 'nihil', 'expedita', 'vitae', 'vero', 'ipsum',
+        'nisi', 'animi', 'cumque', 'pariatur', 'velit', 'modi', 'natus',
+        'iusto', 'eaque', 'sequi', 'illo', 'sed', 'ex', 'et', 'voluptatibus',
+        'tempora', 'veritatis', 'ratione', 'assumenda', 'incidunt', 'nostrum',
+        'placeat', 'aliquid', 'fuga', 'provident', 'praesentium', 'rem',
+        'necessitatibus', 'suscipit', 'adipisci', 'quidem', 'possimus',
+        'voluptas', 'debitis', 'sint', 'accusantium', 'unde', 'sapiente',
+        'voluptate', 'qui', 'aspernatur', 'laudantium', 'soluta', 'amet',
+        'quo', 'aliquam', 'saepe', 'culpa', 'libero', 'ipsa', 'dicta',
+        'reiciendis', 'nesciunt', 'doloribus', 'autem', 'impedit', 'minima',
+        'maiores', 'repudiandae', 'ipsam', 'obcaecati', 'ullam', 'enim',
+        'totam', 'delectus', 'ducimus', 'quis', 'voluptates', 'dolores',
+        'molestiae', 'harum', 'dolorem', 'quia', 'voluptatem', 'molestias',
+        'magni', 'distinctio', 'omnis', 'illum', 'dolorum', 'voluptatum', 'ea',
+        'quas', 'quam', 'corporis', 'quae', 'blanditiis', 'atque', 'deserunt',
+        'laboriosam', 'earum', 'consequuntur', 'hic', 'cupiditate',
+        'quibusdam', 'accusamus', 'ut', 'rerum', 'error', 'minus', 'eius',
+        'ab', 'ad', 'nemo', 'fugit', 'officia', 'at', 'in', 'id', 'quos',
+        'reprehenderit', 'numquam', 'iste', 'fugiat', 'sit', 'inventore',
+        'beatae', 'repellendus', 'magnam', 'recusandae', 'quod', 'explicabo',
+        'doloremque', 'aperiam', 'consequatur', 'asperiores', 'commodi',
+        'optio', 'dolor', 'labore', 'temporibus', 'repellat', 'veniam',
+        'architecto', 'est', 'esse', 'mollitia', 'nulla', 'a', 'similique',
+        'eos', 'alias', 'dolore', 'tenetur', 'deleniti', 'porro', 'facere',
+        'maxime', 'corrupti')
+
+COMMON_WORDS = ('lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur',
+        'adipisicing', 'elit', 'sed', 'do', 'eiusmod', 'tempor', 'incididunt',
+        'ut', 'labore', 'et', 'dolore', 'magna', 'aliqua')
+
+def sentence():
+    """
+    Returns a randomly generated sentence of lorem ipsum text.
+
+    The first word is capitalized, and the sentence ends in either a period or
+    question mark. Commas are added at random.
+    """
+    # Determine the number of comma-separated sections and number of words in
+    # each section for this sentence.
+    sections = [u' '.join(random.sample(WORDS, random.randint(3, 12))) for i in range(random.randint(1, 5))]
+    s = u', '.join(sections)
+    # Convert to sentence case and add end punctuation.
+    return u'%s%s%s' % (s[0].upper(), s[1:], random.choice('?.'))
+
+def paragraph():
+    """
+    Returns a randomly generated paragraph of lorem ipsum text.
+
+    The paragraph consists of between 1 and 4 sentences, inclusive.
+    """
+    return u' '.join([sentence() for i in range(random.randint(1, 4))])
+
+def paragraphs(count, common=True):
+    """
+    Returns a list of paragraphs as returned by paragraph().
+
+    If `common` is True, then the first paragraph will be the standard
+    'lorem ipsum' paragraph. Otherwise, the first paragraph will be random
+    Latin text. Either way, subsequent paragraphs will be random Latin text.
+    """
+    paras = []
+    for i in range(count):
+        if common and i == 0:
+            paras.append(COMMON_P)
+        else:
+            paras.append(paragraph())
+    return paras
+
+def words(count, common=True):
+    """
+    Returns a string of `count` lorem ipsum words separated by a single space.
+
+    If `common` is True, then the first 19 words will be the standard
+    'lorem ipsum' words. Otherwise, all words will be selected randomly.
+    """
+    if common:
+        word_list = list(COMMON_WORDS)
+    else:
+        word_list = []
+    c = len(word_list)
+    if count > c:
+        count -= c
+        while count > 0:
+            c = min(count, len(WORDS))
+            count -= c
+            word_list += random.sample(WORDS, c)
+    else:
+        word_list = word_list[:count]
+    return u' '.join(word_list)
diff --git a/webapp/django/contrib/webdesign/models.py b/webapp/django/contrib/webdesign/models.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/webdesign/models.py
diff --git a/webapp/django/contrib/webdesign/templatetags/__init__.py b/webapp/django/contrib/webdesign/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/contrib/webdesign/templatetags/__init__.py
diff --git a/webapp/django/contrib/webdesign/templatetags/webdesign.py b/webapp/django/contrib/webdesign/templatetags/webdesign.py
new file mode 100644
index 0000000..1eb1790
--- /dev/null
+++ b/webapp/django/contrib/webdesign/templatetags/webdesign.py
@@ -0,0 +1,67 @@
+from django.contrib.webdesign.lorem_ipsum import words, paragraphs
+from django import template
+
+register = template.Library()
+
+class LoremNode(template.Node):
+    def __init__(self, count, method, common):
+        self.count, self.method, self.common = count, method, common
+
+    def render(self, context):
+        try:
+            count = int(self.count.resolve(context))
+        except (ValueError, TypeError):
+            count = 1
+        if self.method == 'w':
+            return words(count, common=self.common)
+        else:
+            paras = paragraphs(count, common=self.common)
+        if self.method == 'p':
+            paras = ['<p>%s</p>' % p for p in paras]
+        return u'\n\n'.join(paras)
+
+#@register.tag
+def lorem(parser, token):
+    """
+    Creates random Latin text useful for providing test data in templates.
+
+    Usage format::
+
+        {% lorem [count] [method] [random] %}
+
+    ``count`` is a number (or variable) containing the number of paragraphs or
+    words to generate (default is 1).
+
+    ``method`` is either ``w`` for words, ``p`` for HTML paragraphs, ``b`` for
+    plain-text paragraph blocks (default is ``b``).
+
+    ``random`` is the word ``random``, which if given, does not use the common
+    paragraph (starting "Lorem ipsum dolor sit amet, consectetuer...").
+
+    Examples:
+        * ``{% lorem %}`` will output the common "lorem ipsum" paragraph
+        * ``{% lorem 3 p %}`` will output the common "lorem ipsum" paragraph
+          and two random paragraphs each wrapped in HTML ``<p>`` tags
+        * ``{% lorem 2 w random %}`` will output two random latin words
+    """
+    bits = list(token.split_contents())
+    tagname = bits[0]
+    # Random bit
+    common = bits[-1] != 'random'
+    if not common:
+        bits.pop()
+    # Method bit
+    if bits[-1] in ('w', 'p', 'b'):
+        method = bits.pop()
+    else:
+        method = 'b'
+    # Count bit
+    if len(bits) > 1:
+        count = bits.pop()
+    else:
+        count = '1'
+    count = parser.compile_filter(count)
+    if len(bits) != 1:
+        raise template.TemplateSyntaxError("Incorrect format for %r tag" % tagname)
+    return LoremNode(count, method, common)
+lorem = register.tag(lorem)
diff --git a/webapp/django/contrib/webdesign/tests.py b/webapp/django/contrib/webdesign/tests.py
new file mode 100644
index 0000000..d155620
--- /dev/null
+++ b/webapp/django/contrib/webdesign/tests.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+
+r"""
+>>> words(7)
+u'lorem ipsum dolor sit amet consectetur adipisicing'
+
+>>> paragraphs(1)
+['Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.']
+
+>>> from django.template import loader, Context
+>>> t = loader.get_template_from_string("{% load webdesign %}{% lorem 3 w %}")
+>>> t.render(Context({}))
+u'lorem ipsum dolor'
+"""
+
+from django.contrib.webdesign.lorem_ipsum import *
+
+if __name__ == '__main__':
+    import doctest
+    doctest.testmod()
diff --git a/webapp/django/core/__init__.py b/webapp/django/core/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/core/__init__.py
diff --git a/webapp/django/core/cache/__init__.py b/webapp/django/core/cache/__init__.py
new file mode 100644
index 0000000..93e7adb
--- /dev/null
+++ b/webapp/django/core/cache/__init__.py
@@ -0,0 +1,64 @@
+"""
+Caching framework.
+
+This package defines set of cache backends that all conform to a simple API.
+In a nutshell, a cache is a set of values -- which can be any object that
+may be pickled -- identified by string keys.  For the complete API, see
+the abstract BaseCache class in django.core.cache.backends.base.
+
+Client code should not access a cache backend directly; instead it should
+either use the "cache" variable made available here, or it should use the
+get_cache() function made available here. get_cache() takes a backend URI
+(e.g. "memcached://127.0.0.1:11211/") and returns an instance of a backend
+cache class.
+
+See docs/cache.txt for information on the public API.
+"""
+
+from cgi import parse_qsl
+from django.conf import settings
+from django.core import signals
+from django.core.cache.backends.base import InvalidCacheBackendError
+
+# Name for use in settings file --> name of module in "backends" directory.
+# Any backend scheme that is not in this dictionary is treated as a Python
+# import path to a custom backend.
+BACKENDS = {
+    'memcached': 'memcached',
+    'locmem': 'locmem',
+    'file': 'filebased',
+    'db': 'db',
+    'dummy': 'dummy',
+}
+
+def get_cache(backend_uri):
+    if backend_uri.find(':') == -1:
+        raise InvalidCacheBackendError, "Backend URI must start with scheme://"
+    scheme, rest = backend_uri.split(':', 1)
+    if not rest.startswith('//'):
+        raise InvalidCacheBackendError, "Backend URI must start with scheme://"
+
+    host = rest[2:]
+    qpos = rest.find('?')
+    if qpos != -1:
+        params = dict(parse_qsl(rest[qpos+1:]))
+        host = rest[2:qpos]
+    else:
+        params = {}
+    if host.endswith('/'):
+        host = host[:-1]
+
+    if scheme in BACKENDS:
+        module = __import__('django.core.cache.backends.%s' % BACKENDS[scheme], {}, {}, [''])
+    else:
+        module = __import__(scheme, {}, {}, [''])
+    return getattr(module, 'CacheClass')(host, params)
+
+cache = get_cache(settings.CACHE_BACKEND)
+
+# Some caches -- pythont-memcached in particular -- need to do a cleanup at the
+# end of a request cycle. If the cache provides a close() method, wire it up
+# here.
+if hasattr(cache, 'close'):
+    signals.request_finished.connect(cache.close)
+
diff --git a/webapp/django/core/cache/backends/__init__.py b/webapp/django/core/cache/backends/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/core/cache/backends/__init__.py
diff --git a/webapp/django/core/cache/backends/base.py b/webapp/django/core/cache/backends/base.py
new file mode 100644
index 0000000..cb5fe06
--- /dev/null
+++ b/webapp/django/core/cache/backends/base.py
@@ -0,0 +1,75 @@
+"Base Cache class."
+
+from django.core.exceptions import ImproperlyConfigured
+
+class InvalidCacheBackendError(ImproperlyConfigured):
+    pass
+
+class BaseCache(object):
+    def __init__(self, params):
+        timeout = params.get('timeout', 300)
+        try:
+            timeout = int(timeout)
+        except (ValueError, TypeError):
+            timeout = 300
+        self.default_timeout = timeout
+
+    def add(self, key, value, timeout=None):
+        """
+        Set a value in the cache if the key does not already exist. If
+        timeout is given, that timeout will be used for the key; otherwise
+        the default cache timeout will be used.
+
+        Returns True if the value was stored, False otherwise.
+        """
+        raise NotImplementedError
+
+    def get(self, key, default=None):
+        """
+        Fetch a given key from the cache. If the key does not exist, return
+        default, which itself defaults to None.
+        """
+        raise NotImplementedError
+
+    def set(self, key, value, timeout=None):
+        """
+        Set a value in the cache. If timeout is given, that timeout will be
+        used for the key; otherwise the default cache timeout will be used.
+        """
+        raise NotImplementedError
+
+    def delete(self, key):
+        """
+        Delete a key from the cache, failing silently.
+        """
+        raise NotImplementedError
+
+    def get_many(self, keys):
+        """
+        Fetch a bunch of keys from the cache. For certain backends (memcached,
+        pgsql) this can be *much* faster when fetching multiple values.
+
+        Returns a dict mapping each key in keys to its value. If the given
+        key is missing, it will be missing from the response dict.
+        """
+        d = {}
+        for k in keys:
+            val = self.get(k)
+            if val is not None:
+                d[k] = val
+        return d
+
+    def has_key(self, key):
+        """
+        Returns True if the key is in the cache and has not expired.
+        """
+        return self.get(key) is not None
+
+    def __contains__(self, key):
+        """
+        Returns True if the key is in the cache and has not expired.
+        """
+        # This is a separate method, rather than just a copy of has_key(),
+        # so that it always has the same functionality as has_key(), even
+        # if a subclass overrides it.
+        return self.has_key(key)
diff --git a/webapp/django/core/cache/backends/db.py b/webapp/django/core/cache/backends/db.py
new file mode 100644
index 0000000..d2b422a
--- /dev/null
+++ b/webapp/django/core/cache/backends/db.py
@@ -0,0 +1,89 @@
+"Database cache backend."
+
+from django.core.cache.backends.base import BaseCache
+from django.db import connection, transaction, DatabaseError
+import base64, time
+from datetime import datetime
+try:
+    import cPickle as pickle
+except ImportError:
+    import pickle
+
+class CacheClass(BaseCache):
+    def __init__(self, table, params):
+        BaseCache.__init__(self, params)
+        self._table = table
+        max_entries = params.get('max_entries', 300)
+        try:
+            self._max_entries = int(max_entries)
+        except (ValueError, TypeError):
+            self._max_entries = 300
+        cull_frequency = params.get('cull_frequency', 3)
+        try:
+            self._cull_frequency = int(cull_frequency)
+        except (ValueError, TypeError):
+            self._cull_frequency = 3
+
+    def get(self, key, default=None):
+        cursor = connection.cursor()
+        cursor.execute("SELECT cache_key, value, expires FROM %s WHERE cache_key = %%s" % self._table, [key])
+        row = cursor.fetchone()
+        if row is None:
+            return default
+        now = datetime.now()
+        if row[2] < now:
+            cursor.execute("DELETE FROM %s WHERE cache_key = %%s" % self._table, [key])
+            transaction.commit_unless_managed()
+            return default
+        return pickle.loads(base64.decodestring(row[1]))
+
+    def set(self, key, value, timeout=None):
+        self._base_set('set', key, value, timeout)
+
+    def add(self, key, value, timeout=None):
+        return self._base_set('add', key, value, timeout)
+
+    def _base_set(self, mode, key, value, timeout=None):
+        if timeout is None:
+            timeout = self.default_timeout
+        cursor = connection.cursor()
+        cursor.execute("SELECT COUNT(*) FROM %s" % self._table)
+        num = cursor.fetchone()[0]
+        now = datetime.now().replace(microsecond=0)
+        exp = datetime.fromtimestamp(time.time() + timeout).replace(microsecond=0)
+        if num > self._max_entries:
+            self._cull(cursor, now)
+        encoded = base64.encodestring(pickle.dumps(value, 2)).strip()
+        cursor.execute("SELECT cache_key FROM %s WHERE cache_key = %%s" % self._table, [key])
+        try:
+            if mode == 'set' and cursor.fetchone():
+                cursor.execute("UPDATE %s SET value = %%s, expires = %%s WHERE cache_key = %%s" % self._table, [encoded, str(exp), key])
+            else:
+                cursor.execute("INSERT INTO %s (cache_key, value, expires) VALUES (%%s, %%s, %%s)" % self._table, [key, encoded, str(exp)])
+        except DatabaseError:
+            # To be threadsafe, updates/inserts are allowed to fail silently
+            return False
+        else:
+            transaction.commit_unless_managed()
+            return True
+
+    def delete(self, key):
+        cursor = connection.cursor()
+        cursor.execute("DELETE FROM %s WHERE cache_key = %%s" % self._table, [key])
+        transaction.commit_unless_managed()
+
+    def has_key(self, key):
+        cursor = connection.cursor()
+        cursor.execute("SELECT cache_key FROM %s WHERE cache_key = %%s" % self._table, [key])
+        return cursor.fetchone() is not None
+
+    def _cull(self, cursor, now):
+        if self._cull_frequency == 0:
+            cursor.execute("DELETE FROM %s" % self._table)
+        else:
+            cursor.execute("DELETE FROM %s WHERE expires < %%s" % self._table, [str(now)])
+            cursor.execute("SELECT COUNT(*) FROM %s" % self._table)
+            num = cursor.fetchone()[0]
+            if num > self._max_entries:
+                cursor.execute("SELECT cache_key FROM %s ORDER BY cache_key LIMIT 1 OFFSET %%s" % self._table, [num / self._cull_frequency])
+                cursor.execute("DELETE FROM %s WHERE cache_key < %%s" % self._table, [cursor.fetchone()[0]])
diff --git a/webapp/django/core/cache/backends/dummy.py b/webapp/django/core/cache/backends/dummy.py
new file mode 100644
index 0000000..e479703
--- /dev/null
+++ b/webapp/django/core/cache/backends/dummy.py
@@ -0,0 +1,25 @@
+"Dummy cache backend"
+
+from django.core.cache.backends.base import BaseCache
+
+class CacheClass(BaseCache):
+    def __init__(self, *args, **kwargs):
+        pass
+
+    def add(self, *args, **kwargs):
+        return True
+
+    def get(self, key, default=None):
+        return default
+
+    def set(self, *args, **kwargs):
+        pass
+
+    def delete(self, *args, **kwargs):
+        pass
+
+    def get_many(self, *args, **kwargs):
+        return {}
+
+    def has_key(self, *args, **kwargs):
+        return False
diff --git a/webapp/django/core/cache/backends/filebased.py b/webapp/django/core/cache/backends/filebased.py
new file mode 100644
index 0000000..181197a
--- /dev/null
+++ b/webapp/django/core/cache/backends/filebased.py
@@ -0,0 +1,152 @@
+"File-based cache backend"
+
+import os
+import time
+try:
+    import cPickle as pickle
+except ImportError:
+    import pickle
+
+from django.core.cache.backends.base import BaseCache
+from django.utils.hashcompat import md5_constructor
+
+class CacheClass(BaseCache):
+    def __init__(self, dir, params):
+        BaseCache.__init__(self, params)
+
+        max_entries = params.get('max_entries', 300)
+        try:
+            self._max_entries = int(max_entries)
+        except (ValueError, TypeError):
+            self._max_entries = 300
+
+        cull_frequency = params.get('cull_frequency', 3)
+        try:
+            self._cull_frequency = int(cull_frequency)
+        except (ValueError, TypeError):
+            self._cull_frequency = 3
+
+        self._dir = dir
+        if not os.path.exists(self._dir):
+            self._createdir()
+
+    def add(self, key, value, timeout=None):
+        if self.has_key(key):
+            return False
+
+        self.set(key, value, timeout)
+        return True
+
+    def get(self, key, default=None):
+        fname = self._key_to_file(key)
+        try:
+            f = open(fname, 'rb')
+            exp = pickle.load(f)
+            now = time.time()
+            if exp < now:
+                f.close()
+                self._delete(fname)
+            else:
+                return pickle.load(f)
+        except (IOError, OSError, EOFError, pickle.PickleError):
+            pass
+        return default
+
+    def set(self, key, value, timeout=None):
+        fname = self._key_to_file(key)
+        dirname = os.path.dirname(fname)
+
+        if timeout is None:
+            timeout = self.default_timeout
+
+        self._cull()
+
+        try:
+            if not os.path.exists(dirname):
+                os.makedirs(dirname)
+
+            f = open(fname, 'wb')
+            now = time.time()
+            pickle.dump(now + timeout, f, pickle.HIGHEST_PROTOCOL)
+            pickle.dump(value, f, pickle.HIGHEST_PROTOCOL)
+        except (IOError, OSError):
+            pass
+
+    def delete(self, key):
+        try:
+            self._delete(self._key_to_file(key))
+        except (IOError, OSError):
+            pass
+
+    def _delete(self, fname):
+        os.remove(fname)
+        try:
+            # Remove the 2 subdirs if they're empty
+            dirname = os.path.dirname(fname)
+            os.rmdir(dirname)
+            os.rmdir(os.path.dirname(dirname))
+        except (IOError, OSError):
+            pass
+
+    def has_key(self, key):
+        fname = self._key_to_file(key)
+        try:
+            f = open(fname, 'rb')
+            exp = pickle.load(f)
+            now = time.time()
+            if exp < now:
+                f.close()
+                self._delete(fname)
+                return False
+            else:
+                return True
+        except (IOError, OSError, EOFError, pickle.PickleError):
+            return False
+
+    def _cull(self):
+        if int(self._num_entries) < self._max_entries:
+            return
+
+        try:
+            filelist = os.listdir(self._dir)
+        except (IOError, OSError):
+            return
+
+        if self._cull_frequency == 0:
+            doomed = filelist
+        else:
+            doomed = [os.path.join(self._dir, k) for (i, k) in enumerate(filelist) if i % self._cull_frequency == 0]
+
+        for topdir in doomed:
+            try:
+                for root, _, files in os.walk(topdir):
+                    for f in files:
+                        self._delete(os.path.join(root, f))
+            except (IOError, OSError):
+                pass
+
+    def _createdir(self):
+        try:
+            os.makedirs(self._dir)
+        except OSError:
+            raise EnvironmentError, "Cache directory '%s' does not exist and could not be created'" % self._dir
+
+    def _key_to_file(self, key):
+        """
+        Convert the filename into an md5 string. We'll turn the first couple
+        bits of the path into directory prefixes to be nice to filesystems
+        that have problems with large numbers of files in a directory.
+
+        Thus, a cache key of "foo" gets turnned into a file named
+        ``{cache-dir}ac/bd/18db4cc2f85cedef654fccc4a4d8``.
+        """
+        path = md5_constructor(key.encode('utf-8')).hexdigest()
+        path = os.path.join(path[:2], path[2:4], path[4:])
+        return os.path.join(self._dir, path)
+
+    def _get_num_entries(self):
+        count = 0
+        for _,_,files in os.walk(self._dir):
+            count += len(files)
+        return count
+    _num_entries = property(_get_num_entries)
diff --git a/webapp/django/core/cache/backends/locmem.py b/webapp/django/core/cache/backends/locmem.py
new file mode 100644
index 0000000..15a169d
--- /dev/null
+++ b/webapp/django/core/cache/backends/locmem.py
@@ -0,0 +1,129 @@
+"Thread-safe in-memory cache backend."
+
+import time
+try:
+    import cPickle as pickle
+except ImportError:
+    import pickle
+
+from django.core.cache.backends.base import BaseCache
+from django.utils.synch import RWLock
+
+class CacheClass(BaseCache):
+    def __init__(self, _, params):
+        BaseCache.__init__(self, params)
+        self._cache = {}
+        self._expire_info = {}
+
+        max_entries = params.get('max_entries', 300)
+        try:
+            self._max_entries = int(max_entries)
+        except (ValueError, TypeError):
+            self._max_entries = 300
+
+        cull_frequency = params.get('cull_frequency', 3)
+        try:
+            self._cull_frequency = int(cull_frequency)
+        except (ValueError, TypeError):
+            self._cull_frequency = 3
+
+        self._lock = RWLock()
+
+    def add(self, key, value, timeout=None):
+        self._lock.writer_enters()
+        try:
+            exp = self._expire_info.get(key)
+            if exp is None or exp <= time.time():
+                try:
+                    self._set(key, pickle.dumps(value), timeout)
+                    return True
+                except pickle.PickleError:
+                    pass
+            return False
+        finally:
+            self._lock.writer_leaves()
+
+    def get(self, key, default=None):
+        self._lock.reader_enters()
+        try:
+            exp = self._expire_info.get(key)
+            if exp is None:
+                return default
+            elif exp > time.time():
+                try:
+                    return pickle.loads(self._cache[key])
+                except pickle.PickleError:
+                    return default
+        finally:
+            self._lock.reader_leaves()
+        self._lock.writer_enters()
+        try:
+            del self._cache[key]
+            del self._expire_info[key]
+            return default
+        finally:
+            self._lock.writer_leaves()
+
+    def _set(self, key, value, timeout=None):
+        if len(self._cache) >= self._max_entries:
+            self._cull()
+        if timeout is None:
+            timeout = self.default_timeout
+        self._cache[key] = value
+        self._expire_info[key] = time.time() + timeout
+
+    def set(self, key, value, timeout=None):
+        self._lock.writer_enters()
+        # Python 2.3 and 2.4 don't allow combined try-except-finally blocks.
+        try:
+            try:
+                self._set(key, pickle.dumps(value), timeout)
+            except pickle.PickleError:
+                pass
+        finally:
+            self._lock.writer_leaves()
+
+    def has_key(self, key):
+        self._lock.reader_enters()
+        try:
+            exp = self._expire_info.get(key)
+            if exp is None:
+                return False
+            elif exp > time.time():
+                return True
+        finally:
+            self._lock.reader_leaves()
+
+        self._lock.writer_enters()
+        try:
+            del self._cache[key]
+            del self._expire_info[key]
+            return False
+        finally:
+            self._lock.writer_leaves()
+
+    def _cull(self):
+        if self._cull_frequency == 0:
+            self._cache.clear()
+            self._expire_info.clear()
+        else:
+            doomed = [k for (i, k) in enumerate(self._cache) if i % self._cull_frequency == 0]
+            for k in doomed:
+                self._delete(k)
+
+    def _delete(self, key):
+        try:
+            del self._cache[key]
+        except KeyError:
+            pass
+        try:
+            del self._expire_info[key]
+        except KeyError:
+            pass
+
+    def delete(self, key):
+        self._lock.writer_enters()
+        try:
+            self._delete(key)
+        finally:
+            self._lock.writer_leaves()
diff --git a/webapp/django/core/cache/backends/memcached.py b/webapp/django/core/cache/backends/memcached.py
new file mode 100644
index 0000000..beb8844
--- /dev/null
+++ b/webapp/django/core/cache/backends/memcached.py
@@ -0,0 +1,47 @@
+"Memcached cache backend"
+
+from django.core.cache.backends.base import BaseCache, InvalidCacheBackendError
+from django.utils.encoding import smart_unicode, smart_str
+
+try:
+    import cmemcache as memcache
+except ImportError:
+    try:
+        import memcache
+    except:
+        raise InvalidCacheBackendError("Memcached cache backend requires either the 'memcache' or 'cmemcache' library")
+
+class CacheClass(BaseCache):
+    def __init__(self, server, params):
+        BaseCache.__init__(self, params)
+        self._cache = memcache.Client(server.split(';'))
+
+    def add(self, key, value, timeout=0):
+        if isinstance(value, unicode):
+            value = value.encode('utf-8')
+        return self._cache.add(smart_str(key), value, timeout or self.default_timeout)
+
+    def get(self, key, default=None):
+        val = self._cache.get(smart_str(key))
+        if val is None:
+            return default
+        else:
+            if isinstance(val, basestring):
+                return smart_unicode(val)
+            else:
+                return val
+
+    def set(self, key, value, timeout=0):
+        if isinstance(value, unicode):
+            value = value.encode('utf-8')
+        self._cache.set(smart_str(key), value, timeout or self.default_timeout)
+
+    def delete(self, key):
+        self._cache.delete(smart_str(key))
+
+    def get_many(self, keys):
+        return self._cache.get_multi(map(smart_str,keys))
+
+    def close(self, **kwargs):
+        self._cache.disconnect_all()
+
diff --git a/webapp/django/core/context_processors.py b/webapp/django/core/context_processors.py
new file mode 100644
index 0000000..cb07125
--- /dev/null
+++ b/webapp/django/core/context_processors.py
@@ -0,0 +1,85 @@
+"""
+A set of request processors that return dictionaries to be merged into a
+template context. Each function takes the request object as its only parameter
+and returns a dictionary to add to the context.
+
+These are referenced from the setting TEMPLATE_CONTEXT_PROCESSORS and used by
+RequestContext.
+"""
+
+from django.conf import settings
+
+def auth(request):
+    """
+    Returns context variables required by apps that use Django's authentication
+    system.
+
+    If there is no 'user' attribute in the request, uses AnonymousUser (from
+    django.contrib.auth).
+    """
+    if hasattr(request, 'user'):
+        user = request.user
+    else:
+        from django.contrib.auth.models import AnonymousUser
+        user = AnonymousUser()
+    return {
+        'user': user,
+        'messages': user.get_and_delete_messages(),
+        'perms': PermWrapper(user),
+    }
+
+def debug(request):
+    "Returns context variables helpful for debugging."
+    context_extras = {}
+    if settings.DEBUG and request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS:
+        context_extras['debug'] = True
+        from django.db import connection
+        context_extras['sql_queries'] = connection.queries
+    return context_extras
+
+def i18n(request):
+    from django.utils import translation
+
+    context_extras = {}
+    context_extras['LANGUAGES'] = settings.LANGUAGES
+    context_extras['LANGUAGE_CODE'] = translation.get_language()
+    context_extras['LANGUAGE_BIDI'] = translation.get_language_bidi()
+
+    return context_extras
+
+def media(request):
+    """
+    Adds media-related context variables to the context.
+
+    """
+    return {'MEDIA_URL': settings.MEDIA_URL}
+
+def request(request):
+    return {'request': request}
+
+# PermWrapper and PermLookupDict proxy the permissions system into objects that
+# the template system can understand.
+
+class PermLookupDict(object):
+    def __init__(self, user, module_name):
+        self.user, self.module_name = user, module_name
+
+    def __repr__(self):
+        return str(self.user.get_all_permissions())
+
+    def __getitem__(self, perm_name):
+        return self.user.has_perm("%s.%s" % (self.module_name, perm_name))
+
+    def __nonzero__(self):
+        return self.user.has_module_perms(self.module_name)
+
+class PermWrapper(object):
+    def __init__(self, user):
+        self.user = user
+
+    def __getitem__(self, module_name):
+        return PermLookupDict(self.user, module_name)
+        
+    def __iter__(self):
+        # I am large, I contain multitudes.
+        raise TypeError("PermWrapper is not iterable.")
diff --git a/webapp/django/core/exceptions.py b/webapp/django/core/exceptions.py
new file mode 100644
index 0000000..e5df8ca
--- /dev/null
+++ b/webapp/django/core/exceptions.py
@@ -0,0 +1,34 @@
+"Global Django exceptions"
+
+class ObjectDoesNotExist(Exception):
+    "The requested object does not exist"
+    silent_variable_failure = True
+
+class MultipleObjectsReturned(Exception):
+    "The query returned multiple objects when only one was expected."
+    pass
+
+class SuspiciousOperation(Exception):
+    "The user did something suspicious"
+    pass
+
+class PermissionDenied(Exception):
+    "The user did not have permission to do that"
+    pass
+
+class ViewDoesNotExist(Exception):
+    "The requested view does not exist"
+    pass
+
+class MiddlewareNotUsed(Exception):
+    "This middleware is not used in this server configuration"
+    pass
+
+class ImproperlyConfigured(Exception):
+    "Django is somehow improperly configured"
+    pass
+
+class FieldError(Exception):
+    """Some kind of problem with a model field."""
+    pass
+
diff --git a/webapp/django/core/files/__init__.py b/webapp/django/core/files/__init__.py
new file mode 100644
index 0000000..0c3ef57
--- /dev/null
+++ b/webapp/django/core/files/__init__.py
@@ -0,0 +1 @@
+from django.core.files.base import File
diff --git a/webapp/django/core/files/base.py b/webapp/django/core/files/base.py
new file mode 100644
index 0000000..69739d6
--- /dev/null
+++ b/webapp/django/core/files/base.py
@@ -0,0 +1,169 @@
+import os
+
+from django.utils.encoding import smart_str, smart_unicode
+
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+
+class File(object):
+    DEFAULT_CHUNK_SIZE = 64 * 2**10
+
+    def __init__(self, file):
+        self.file = file
+        self._name = file.name
+        self._mode = file.mode
+        self._closed = False
+
+    def __str__(self):
+        return smart_str(self.name or '')
+
+    def __unicode__(self):
+        return smart_unicode(self.name or u'')
+
+    def __repr__(self):
+        return "<%s: %s>" % (self.__class__.__name__, self or "None")
+
+    def __nonzero__(self):
+        return not not self.name
+
+    def __len__(self):
+        return self.size
+
+    def _get_name(self):
+        return self._name
+    name = property(_get_name)
+
+    def _get_mode(self):
+        return self._mode
+    mode = property(_get_mode)
+
+    def _get_closed(self):
+        return self._closed
+    closed = property(_get_closed)
+
+    def _get_size(self):
+        if not hasattr(self, '_size'):
+            if hasattr(self.file, 'size'):
+                self._size = self.file.size
+            elif os.path.exists(self.file.name):
+                self._size = os.path.getsize(self.file.name)
+            else:
+                raise AttributeError("Unable to determine the file's size.")
+        return self._size
+
+    def _set_size(self, size):
+        self._size = size
+
+    size = property(_get_size, _set_size)
+
+    def chunks(self, chunk_size=None):
+        """
+        Read the file and yield chucks of ``chunk_size`` bytes (defaults to
+        ``UploadedFile.DEFAULT_CHUNK_SIZE``).
+        """
+        if not chunk_size:
+            chunk_size = self.__class__.DEFAULT_CHUNK_SIZE
+
+        if hasattr(self, 'seek'):
+            self.seek(0)
+        # Assume the pointer is at zero...
+        counter = self.size
+
+        while counter > 0:
+            yield self.read(chunk_size)
+            counter -= chunk_size
+
+    def multiple_chunks(self, chunk_size=None):
+        """
+        Returns ``True`` if you can expect multiple chunks.
+
+        NB: If a particular file representation is in memory, subclasses should
+        always return ``False`` -- there's no good reason to read from memory in
+        chunks.
+        """
+        if not chunk_size:
+            chunk_size = self.DEFAULT_CHUNK_SIZE
+        return self.size > chunk_size
+
+    def xreadlines(self):
+        return iter(self)
+
+    def readlines(self):
+        return list(self.xreadlines())
+
+    def __iter__(self):
+        # Iterate over this file-like object by newlines
+        buffer_ = None
+        for chunk in self.chunks():
+            chunk_buffer = StringIO(chunk)
+
+            for line in chunk_buffer:
+                if buffer_:
+                    line = buffer_ + line
+                    buffer_ = None
+
+                # If this is the end of a line, yield
+                # otherwise, wait for the next round
+                if line[-1] in ('\n', '\r'):
+                    yield line
+                else:
+                    buffer_ = line
+
+        if buffer_ is not None:
+            yield buffer_
+
+    def open(self, mode=None):
+        if not self.closed:
+            self.seek(0)
+        elif os.path.exists(self.file.name):
+            self.file = open(self.file.name, mode or self.file.mode)
+        else:
+            raise ValueError("The file cannot be reopened.")
+
+    def seek(self, position):
+        self.file.seek(position)
+
+    def tell(self):
+        return self.file.tell()
+
+    def read(self, num_bytes=None):
+        if num_bytes is None:
+            return self.file.read()
+        return self.file.read(num_bytes)
+
+    def write(self, content):
+        if not self.mode.startswith('w'):
+            raise IOError("File was not opened with write access.")
+        self.file.write(content)
+
+    def flush(self):
+        if not self.mode.startswith('w'):
+            raise IOError("File was not opened with write access.")
+        self.file.flush()
+
+    def close(self):
+        self.file.close()
+        self._closed = True
+
+class ContentFile(File):
+    """
+    A File-like object that takes just raw content, rather than an actual file.
+    """
+    def __init__(self, content):
+        self.file = StringIO(content or '')
+        self.size = len(content or '')
+        self.file.seek(0)
+        self._closed = False
+
+    def __str__(self):
+        return 'Raw content'
+
+    def __nonzero__(self):
+        return True
+
+    def open(self, mode=None):
+        if self._closed:
+            self._closed = False
+        self.seek(0)
diff --git a/webapp/django/core/files/images.py b/webapp/django/core/files/images.py
new file mode 100644
index 0000000..5ddcdd4
--- /dev/null
+++ b/webapp/django/core/files/images.py
@@ -0,0 +1,42 @@
+"""
+Utility functions for handling images.
+
+Requires PIL, as you might imagine.
+"""
+
+from django.core.files import File
+
+class ImageFile(File):
+    """
+    A mixin for use alongside django.core.files.base.File, which provides
+    additional features for dealing with images.
+    """
+    def _get_width(self):
+        return self._get_image_dimensions()[0]
+    width = property(_get_width)
+
+    def _get_height(self):
+        return self._get_image_dimensions()[1]
+    height = property(_get_height)
+
+    def _get_image_dimensions(self):
+        if not hasattr(self, '_dimensions_cache'):
+            self._dimensions_cache = get_image_dimensions(self)
+        return self._dimensions_cache
+
+def get_image_dimensions(file_or_path):
+    """Returns the (width, height) of an image, given an open file or a path."""
+    from PIL import ImageFile as PILImageFile
+    p = PILImageFile.Parser()
+    if hasattr(file_or_path, 'read'):
+        file = file_or_path
+    else:
+        file = open(file_or_path, 'rb')
+    while 1:
+        data = file.read(1024)
+        if not data:
+            break
+        p.feed(data)
+        if p.image:
+            return p.image.size
+    return None
diff --git a/webapp/django/core/files/locks.py b/webapp/django/core/files/locks.py
new file mode 100644
index 0000000..98a1155
--- /dev/null
+++ b/webapp/django/core/files/locks.py
@@ -0,0 +1,70 @@
+"""
+Portable file locking utilities.
+
+Based partially on example by Jonathan Feignberg <jdf@pobox.com> in the Python
+Cookbook, licensed under the Python Software License.
+
+    http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65203
+
+Example Usage::
+
+    >>> from django.core.files import locks
+    >>> f = open('./file', 'wb')
+    >>> locks.lock(f, locks.LOCK_EX)
+    >>> f.write('Django')
+    >>> f.close()
+"""
+
+__all__ = ('LOCK_EX','LOCK_SH','LOCK_NB','lock','unlock')
+
+system_type = None
+
+try:
+    import win32con
+    import win32file
+    import pywintypes
+    LOCK_EX = win32con.LOCKFILE_EXCLUSIVE_LOCK
+    LOCK_SH = 0
+    LOCK_NB = win32con.LOCKFILE_FAIL_IMMEDIATELY
+    __overlapped = pywintypes.OVERLAPPED()
+    system_type = 'nt'
+except (ImportError, AttributeError):
+    pass
+
+try:
+    import fcntl
+    LOCK_EX = fcntl.LOCK_EX
+    LOCK_SH = fcntl.LOCK_SH
+    LOCK_NB = fcntl.LOCK_NB
+    system_type = 'posix'
+except (ImportError, AttributeError):
+    pass
+
+def fd(f):
+    """Get a filedescriptor from something which could be a file or an fd."""
+    return hasattr(f, 'fileno') and f.fileno() or f
+
+if system_type == 'nt':
+    def lock(file, flags):
+        hfile = win32file._get_osfhandle(fd(file))
+        win32file.LockFileEx(hfile, flags, 0, -0x10000, __overlapped)
+
+    def unlock(file):
+        hfile = win32file._get_osfhandle(fd(file))
+        win32file.UnlockFileEx(hfile, 0, -0x10000, __overlapped)
+elif system_type == 'posix':
+    def lock(file, flags):
+        fcntl.flock(fd(file), flags)
+
+    def unlock(file):
+        fcntl.flock(fd(file), fcntl.LOCK_UN)
+else:
+    # File locking is not supported.
+    LOCK_EX = LOCK_SH = LOCK_NB = None
+
+    # Dummy functions that don't do anything.
+    def lock(file, flags):
+        pass
+
+    def unlock(file):
+        pass
diff --git a/webapp/django/core/files/move.py b/webapp/django/core/files/move.py
new file mode 100644
index 0000000..58a0ab1
--- /dev/null
+++ b/webapp/django/core/files/move.py
@@ -0,0 +1,88 @@
+"""
+Move a file in the safest way possible::
+
+    >>> from django.core.files.move import file_move_save
+    >>> file_move_save("/tmp/old_file", "/tmp/new_file")
+"""
+
+import os
+from django.core.files import locks
+
+try:
+    from shutil import copystat
+except ImportError:
+    def copystat(src, dst):
+        """Copy all stat info (mode bits, atime and mtime) from src to dst"""
+        st = os.stat(src)
+        mode = stat.S_IMODE(st.st_mode)
+        if hasattr(os, 'utime'):
+            os.utime(dst, (st.st_atime, st.st_mtime))
+        if hasattr(os, 'chmod'):
+            os.chmod(dst, mode)
+
+__all__ = ['file_move_safe']
+
+def _samefile(src, dst):
+    # Macintosh, Unix.
+    if hasattr(os.path,'samefile'):
+        try:
+            return os.path.samefile(src, dst)
+        except OSError:
+            return False
+
+    # All other platforms: check for same pathname.
+    return (os.path.normcase(os.path.abspath(src)) ==
+            os.path.normcase(os.path.abspath(dst)))
+
+def file_move_safe(old_file_name, new_file_name, chunk_size = 1024*64, allow_overwrite=False):
+    """
+    Moves a file from one location to another in the safest way possible.
+
+    First, try using ``shutils.move``, which is OS-dependent but doesn't break
+    if moving across filesystems. Then, try ``os.rename``, which will break
+    across filesystems. Finally, streams manually from one file to another in
+    pure Python.
+
+    If the destination file exists and ``allow_overwrite`` is ``False``, this
+    function will throw an ``IOError``.
+    """
+
+    # There's no reason to move if we don't have to.
+    if _samefile(old_file_name, new_file_name):
+        return
+
+    try:
+        os.rename(old_file_name, new_file_name)
+        return
+    except OSError:
+        # This will happen with os.rename if moving to another filesystem
+        # or when moving opened files on certain operating systems
+        pass
+
+    # first open the old file, so that it won't go away
+    old_file = open(old_file_name, 'rb')
+    try:
+        # now open the new file, not forgetting allow_overwrite
+        fd = os.open(new_file_name, os.O_WRONLY | os.O_CREAT | getattr(os, 'O_BINARY', 0) |
+                                    (not allow_overwrite and os.O_EXCL or 0))
+        try:
+            locks.lock(fd, locks.LOCK_EX)
+            current_chunk = None
+            while current_chunk != '':
+                current_chunk = old_file.read(chunk_size)
+                os.write(fd, current_chunk)
+        finally:
+            locks.unlock(fd)
+            os.close(fd)
+    finally:
+        old_file.close()
+    copystat(old_file_name, new_file_name)
+
+    try:
+        os.remove(old_file_name)
+    except OSError, e:
+        # Certain operating systems (Cygwin and Windows)
+        # fail when deleting opened files, ignore it
+        if getattr(e, 'winerror', 0) != 32:
+            # FIXME: should we also ignore errno 13?
+            raise
diff --git a/webapp/django/core/files/storage.py b/webapp/django/core/files/storage.py
new file mode 100644
index 0000000..30d9be9
--- /dev/null
+++ b/webapp/django/core/files/storage.py
@@ -0,0 +1,224 @@
+import os
+import urlparse
+
+from django.conf import settings
+from django.core.exceptions import ImproperlyConfigured, SuspiciousOperation
+from django.utils.encoding import force_unicode
+from django.utils.text import get_valid_filename
+from django.utils._os import safe_join
+from django.core.files import locks, File
+from django.core.files.move import file_move_safe
+
+__all__ = ('Storage', 'FileSystemStorage', 'DefaultStorage', 'default_storage')
+
+class Storage(object):
+    """
+    A base storage class, providing some default behaviors that all other
+    storage systems can inherit or override, as necessary.
+    """
+
+    # The following methods represent a public interface to private methods.
+    # These shouldn't be overridden by subclasses unless absolutely necessary.
+
+    def open(self, name, mode='rb', mixin=None):
+        """
+        Retrieves the specified file from storage, using the optional mixin
+        class to customize what features are available on the File returned.
+        """
+        file = self._open(name, mode)
+        if mixin:
+            # Add the mixin as a parent class of the File returned from storage.
+            file.__class__ = type(mixin.__name__, (mixin, file.__class__), {})
+        return file
+
+    def save(self, name, content):
+        """
+        Saves new content to the file specified by name. The content should be a
+        proper File object, ready to be read from the beginning.
+        """
+        # Get the proper name for the file, as it will actually be saved.
+        if name is None:
+            name = content.name
+        
+        name = self.get_available_name(name)
+        name = self._save(name, content)
+
+        # Store filenames with forward slashes, even on Windows
+        return force_unicode(name.replace('\\', '/'))
+
+    # These methods are part of the public API, with default implementations.
+
+    def get_valid_name(self, name):
+        """
+        Returns a filename, based on the provided filename, that's suitable for
+        use in the target storage system.
+        """
+        return get_valid_filename(name)
+
+    def get_available_name(self, name):
+        """
+        Returns a filename that's free on the target storage system, and
+        available for new content to be written to.
+        """
+        # If the filename already exists, keep adding an underscore to the name
+        # of the file until the filename doesn't exist.
+        while self.exists(name):
+            try:
+                dot_index = name.rindex('.')
+            except ValueError: # filename has no dot
+                name += '_'
+            else:
+                name = name[:dot_index] + '_' + name[dot_index:]
+        return name
+
+    def path(self, name):
+        """
+        Returns a local filesystem path where the file can be retrieved using
+        Python's built-in open() function. Storage systems that can't be
+        accessed using open() should *not* implement this method.
+        """
+        raise NotImplementedError("This backend doesn't support absolute paths.")
+
+    # The following methods form the public API for storage systems, but with
+    # no default implementations. Subclasses must implement *all* of these.
+
+    def delete(self, name):
+        """
+        Deletes the specified file from the storage system.
+        """
+        raise NotImplementedError()
+
+    def exists(self, name):
+        """
+        Returns True if a file referened by the given name already exists in the
+        storage system, or False if the name is available for a new file.
+        """
+        raise NotImplementedError()
+
+    def listdir(self, path):
+        """
+        Lists the contents of the specified path, returning a 2-tuple of lists;
+        the first item being directories, the second item being files.
+        """
+        raise NotImplementedError()
+
+    def size(self, name):
+        """
+        Returns the total size, in bytes, of the file specified by name.
+        """
+        raise NotImplementedError()
+
+    def url(self, name):
+        """
+        Returns an absolute URL where the file's contents can be accessed
+        directly by a web browser.
+        """
+        raise NotImplementedError()
+
+class FileSystemStorage(Storage):
+    """
+    Standard filesystem storage
+    """
+
+    def __init__(self, location=settings.MEDIA_ROOT, base_url=settings.MEDIA_URL):
+        self.location = os.path.abspath(location)
+        self.base_url = base_url
+
+    def _open(self, name, mode='rb'):
+        return File(open(self.path(name), mode))
+
+    def _save(self, name, content):
+        full_path = self.path(name)
+
+        directory = os.path.dirname(full_path)
+        if not os.path.exists(directory):
+            os.makedirs(directory)
+        elif not os.path.isdir(directory):
+            raise IOError("%s exists and is not a directory." % directory)
+
+        # There's a potential race condition between get_available_name and
+        # saving the file; it's possible that two threads might return the
+        # same name, at which point all sorts of fun happens. So we need to
+        # try to create the file, but if it already exists we have to go back
+        # to get_available_name() and try again.
+
+        while True:
+            try:
+                # This file has a file path that we can move.
+                if hasattr(content, 'temporary_file_path'):
+                    file_move_safe(content.temporary_file_path(), full_path)
+                    content.close()
+
+                # This is a normal uploadedfile that we can stream.
+                else:
+                    # This fun binary flag incantation makes os.open throw an
+                    # OSError if the file already exists before we open it.
+                    fd = os.open(full_path, os.O_WRONLY | os.O_CREAT | os.O_EXCL | getattr(os, 'O_BINARY', 0))
+                    try:
+                        locks.lock(fd, locks.LOCK_EX)
+                        for chunk in content.chunks():
+                            os.write(fd, chunk)
+                    finally:
+                        locks.unlock(fd)
+                        os.close(fd)
+            except OSError:
+                # Ooops, we need a new file name.
+                name = self.get_available_name(name)
+                full_path = self.path(name)
+            else:
+                # OK, the file save worked. Break out of the loop.
+                break
+                
+        return name
+
+    def delete(self, name):
+        name = self.path(name)
+        # If the file exists, delete it from the filesystem.
+        if os.path.exists(name):
+            os.remove(name)
+
+    def exists(self, name):
+        return os.path.exists(self.path(name))
+
+    def listdir(self, path):
+        path = self.path(path)
+        directories, files = [], []
+        for entry in os.listdir(path):
+            if os.path.isdir(os.path.join(path, entry)):
+                directories.append(entry)
+            else:
+                files.append(entry)
+        return directories, files
+
+    def path(self, name):
+        try:
+            path = safe_join(self.location, name)
+        except ValueError:
+            raise SuspiciousOperation("Attempted access to '%s' denied." % name)
+        return os.path.normpath(path)
+
+    def size(self, name):
+        return os.path.getsize(self.path(name))
+
+    def url(self, name):
+        if self.base_url is None:
+            raise ValueError("This file is not accessible via a URL.")
+        return urlparse.urljoin(self.base_url, name).replace('\\', '/')
+
+def get_storage_class(import_path):
+    try:
+        dot = import_path.rindex('.')
+    except ValueError:
+        raise ImproperlyConfigured("%s isn't a storage module." % import_path)
+    module, classname = import_path[:dot], import_path[dot+1:]
+    try:
+        mod = __import__(module, {}, {}, [''])
+    except ImportError, e:
+        raise ImproperlyConfigured('Error importing storage module %s: "%s"' % (module, e))
+    try:
+        return getattr(mod, classname)
+    except AttributeError:
+        raise ImproperlyConfigured('Storage module "%s" does not define a "%s" class.' % (module, classname))
+
+DefaultStorage = get_storage_class(settings.DEFAULT_FILE_STORAGE)
+default_storage = DefaultStorage()
diff --git a/webapp/django/core/files/temp.py b/webapp/django/core/files/temp.py
new file mode 100644
index 0000000..f0d7d74
--- /dev/null
+++ b/webapp/django/core/files/temp.py
@@ -0,0 +1,62 @@
+"""
+The temp module provides a NamedTemporaryFile that can be re-opened on any
+platform. Most platforms use the standard Python tempfile.TemporaryFile class,
+but MS Windows users are given a custom class.
+
+This is needed because in Windows NT, the default implementation of
+NamedTemporaryFile uses the O_TEMPORARY flag, and thus cannot be reopened [1].
+
+1: http://mail.python.org/pipermail/python-list/2005-December/359474.html
+"""
+
+import os
+import tempfile
+
+__all__ = ('NamedTemporaryFile', 'gettempdir',)
+
+if os.name == 'nt':
+    class TemporaryFile(object):
+        """
+        Temporary file object constructor that works in Windows and supports
+        reopening of the temporary file in windows.
+        """
+        def __init__(self, mode='w+b', bufsize=-1, suffix='', prefix='',
+                dir=None):
+            fd, name = tempfile.mkstemp(suffix=suffix, prefix=prefix,
+                                          dir=dir)
+            self.name = name
+            self.file = os.fdopen(fd, mode, bufsize)
+            self.close_called = False
+
+        # Because close can be called during shutdown
+        # we need to cache os.unlink and access it
+        # as self.unlink only
+        unlink = os.unlink
+
+        def close(self):
+            if not self.close_called:
+                self.close_called = True
+                try:
+                    self.file.close()
+                except (OSError, IOError):
+                    pass
+                try:
+                    self.unlink(self.name)
+                except (OSError):
+                    pass
+
+        def __del__(self):
+            self.close()
+
+        def read(self, *args):          return self.file.read(*args)
+        def seek(self, offset):         return self.file.seek(offset)
+        def write(self, s):             return self.file.write(s)
+        def __iter__(self):             return iter(self.file)
+        def readlines(self, size=None): return self.file.readlines(size)
+        def xreadlines(self):           return self.file.xreadlines()
+
+    NamedTemporaryFile = TemporaryFile
+else:
+    NamedTemporaryFile = tempfile.NamedTemporaryFile
+
+gettempdir = tempfile.gettempdir
diff --git a/webapp/django/core/files/uploadedfile.py b/webapp/django/core/files/uploadedfile.py
new file mode 100644
index 0000000..afbcdba
--- /dev/null
+++ b/webapp/django/core/files/uploadedfile.py
@@ -0,0 +1,156 @@
+"""
+Classes representing uploaded files.
+"""
+
+import os
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+
+from django.conf import settings
+from django.core.files.base import File
+from django.core.files import temp as tempfile
+
+__all__ = ('UploadedFile', 'TemporaryUploadedFile', 'InMemoryUploadedFile',
+           'SimpleUploadedFile')
+
+class UploadedFile(File):
+    """
+    A abstract uploaded file (``TemporaryUploadedFile`` and
+    ``InMemoryUploadedFile`` are the built-in concrete subclasses).
+
+    An ``UploadedFile`` object behaves somewhat like a file object and
+    represents some file data that the user submitted with a form.
+    """
+    DEFAULT_CHUNK_SIZE = 64 * 2**10
+
+    def __init__(self, name=None, content_type=None, size=None, charset=None):
+        self.name = name
+        self.size = size
+        self.content_type = content_type
+        self.charset = charset
+
+    def __repr__(self):
+        return "<%s: %s (%s)>" % (self.__class__.__name__, self.name, self.content_type)
+
+    def _get_name(self):
+        return self._name
+
+    def _set_name(self, name):
+        # Sanitize the file name so that it can't be dangerous.
+        if name is not None:
+            # Just use the basename of the file -- anything else is dangerous.
+            name = os.path.basename(name)
+
+            # File names longer than 255 characters can cause problems on older OSes.
+            if len(name) > 255:
+                name, ext = os.path.splitext(name)
+                name = name[:255 - len(ext)] + ext
+
+        self._name = name
+
+    name = property(_get_name, _set_name)
+
+    # Abstract methods; subclasses *must* define read() and probably should
+    # define open/close.
+    def read(self, num_bytes=None):
+        raise NotImplementedError()
+
+    def open(self):
+        pass
+
+    def close(self):
+        pass
+
+class TemporaryUploadedFile(UploadedFile):
+    """
+    A file uploaded to a temporary location (i.e. stream-to-disk).
+    """
+    def __init__(self, name, content_type, size, charset):
+        super(TemporaryUploadedFile, self).__init__(name, content_type, size, charset)
+        if settings.FILE_UPLOAD_TEMP_DIR:
+            self._file = tempfile.NamedTemporaryFile(suffix='.upload', dir=settings.FILE_UPLOAD_TEMP_DIR)
+        else:
+            self._file = tempfile.NamedTemporaryFile(suffix='.upload')
+
+    def temporary_file_path(self):
+        """
+        Returns the full path of this file.
+        """
+        return self._file.name
+
+    # Most methods on this object get proxied to NamedTemporaryFile.
+    # We can't directly subclass because NamedTemporaryFile is actually a
+    # factory function
+    def read(self, *args):          return self._file.read(*args)
+    def seek(self, offset):         return self._file.seek(offset)
+    def write(self, s):             return self._file.write(s)
+    def __iter__(self):             return iter(self._file)
+    def readlines(self, size=None): return self._file.readlines(size)
+    def xreadlines(self):           return self._file.xreadlines()
+    def close(self):
+        try:
+            return self._file.close()
+        except OSError, e:
+            if e.errno == 2:
+                # Means the file was moved or deleted before the tempfile could unlink it.
+                # Still sets self._file.close_called and calls self._file.file.close()
+                # before the exception
+                return
+            else:
+                raise e
+
+class InMemoryUploadedFile(UploadedFile):
+    """
+    A file uploaded into memory (i.e. stream-to-memory).
+    """
+    def __init__(self, file, field_name, name, content_type, size, charset):
+        super(InMemoryUploadedFile, self).__init__(name, content_type, size, charset)
+        self.file = file
+        self.field_name = field_name
+        self.file.seek(0)
+
+    def seek(self, *args, **kwargs):
+        self.file.seek(*args, **kwargs)
+
+    def open(self):
+        self.seek(0)
+
+    def read(self, *args, **kwargs):
+        return self.file.read(*args, **kwargs)
+
+    def chunks(self, chunk_size=None):
+        self.file.seek(0)
+        yield self.read()
+
+    def multiple_chunks(self, chunk_size=None):
+        # Since it's in memory, we'll never have multiple chunks.
+        return False
+
+class SimpleUploadedFile(InMemoryUploadedFile):
+    """
+    A simple representation of a file, which just has content, size, and a name.
+    """
+    def __init__(self, name, content, content_type='text/plain'):
+        self.file = StringIO(content or '')
+        self.name = name
+        self.field_name = None
+        self.size = len(content or '')
+        self.content_type = content_type
+        self.charset = None
+        self.file.seek(0)
+
+    def from_dict(cls, file_dict):
+        """
+        Creates a SimpleUploadedFile object from
+        a dictionary object with the following keys:
+           - filename
+           - content-type
+           - content
+        """
+        return cls(file_dict['filename'],
+                   file_dict['content'],
+                   file_dict.get('content-type', 'text/plain'))
+
+    from_dict = classmethod(from_dict)
diff --git a/webapp/django/core/files/uploadhandler.py b/webapp/django/core/files/uploadhandler.py
new file mode 100644
index 0000000..fa4d2df
--- /dev/null
+++ b/webapp/django/core/files/uploadhandler.py
@@ -0,0 +1,213 @@
+"""
+Base file upload handler classes, and the built-in concrete subclasses
+"""
+
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+
+from django.conf import settings
+from django.core.exceptions import ImproperlyConfigured
+from django.core.files.uploadedfile import TemporaryUploadedFile, InMemoryUploadedFile
+
+__all__ = ['UploadFileException','StopUpload', 'SkipFile', 'FileUploadHandler',
+           'TemporaryFileUploadHandler', 'MemoryFileUploadHandler',
+           'load_handler']
+
+class UploadFileException(Exception):
+    """
+    Any error having to do with uploading files.
+    """
+    pass
+
+class StopUpload(UploadFileException):
+    """
+    This exception is raised when an upload must abort.
+    """
+    def __init__(self, connection_reset=False):
+        """
+        If ``connection_reset`` is ``True``, Django knows will halt the upload
+        without consuming the rest of the upload. This will cause the browser to
+        show a "connection reset" error.
+        """
+        self.connection_reset = connection_reset
+
+    def __unicode__(self):
+        if self.connection_reset:
+            return u'StopUpload: Halt current upload.'
+        else:
+            return u'StopUpload: Consume request data, then halt.'
+
+class SkipFile(UploadFileException):
+    """
+    This exception is raised by an upload handler that wants to skip a given file.
+    """
+    pass
+    
+class StopFutureHandlers(UploadFileException):
+    """
+    Upload handers that have handled a file and do not want future handlers to
+    run should raise this exception instead of returning None.
+    """
+    pass
+
+class FileUploadHandler(object):
+    """
+    Base class for streaming upload handlers.
+    """
+    chunk_size = 64 * 2 ** 10 #: The default chunk size is 64 KB.
+
+    def __init__(self, request=None):
+        self.file_name = None
+        self.content_type = None
+        self.content_length = None
+        self.charset = None
+        self.request = request
+
+    def handle_raw_input(self, input_data, META, content_length, boundary, encoding=None):
+        """
+        Handle the raw input from the client.
+
+        Parameters:
+
+            :input_data:
+                An object that supports reading via .read().
+            :META:
+                ``request.META``.
+            :content_length:
+                The (integer) value of the Content-Length header from the
+                client.
+            :boundary: The boundary from the Content-Type header. Be sure to
+                prepend two '--'.
+        """
+        pass
+
+    def new_file(self, field_name, file_name, content_type, content_length, charset=None):
+        """
+        Signal that a new file has been started.
+
+        Warning: As with any data from the client, you should not trust
+        content_length (and sometimes won't even get it).
+        """
+        self.field_name = field_name
+        self.file_name = file_name
+        self.content_type = content_type
+        self.content_length = content_length
+        self.charset = charset
+
+    def receive_data_chunk(self, raw_data, start):
+        """
+        Receive data from the streamed upload parser. ``start`` is the position
+        in the file of the chunk.
+        """
+        raise NotImplementedError()
+
+    def file_complete(self, file_size):
+        """
+        Signal that a file has completed. File size corresponds to the actual
+        size accumulated by all the chunks.
+
+        Subclasses must should return a valid ``UploadedFile`` object.
+        """
+        raise NotImplementedError()
+
+    def upload_complete(self):
+        """
+        Signal that the upload is complete. Subclasses should perform cleanup
+        that is necessary for this handler.
+        """
+        pass
+
+class TemporaryFileUploadHandler(FileUploadHandler):
+    """
+    Upload handler that streams data into a temporary file.
+    """
+    def __init__(self, *args, **kwargs):
+        super(TemporaryFileUploadHandler, self).__init__(*args, **kwargs)
+
+    def new_file(self, file_name, *args, **kwargs):
+        """
+        Create the file object to append to as data is coming in.
+        """
+        super(TemporaryFileUploadHandler, self).new_file(file_name, *args, **kwargs)
+        self.file = TemporaryUploadedFile(self.file_name, self.content_type, 0, self.charset)
+
+    def receive_data_chunk(self, raw_data, start):
+        self.file.write(raw_data)
+
+    def file_complete(self, file_size):
+        self.file.seek(0)
+        self.file.size = file_size
+        return self.file
+
+class MemoryFileUploadHandler(FileUploadHandler):
+    """
+    File upload handler to stream uploads into memory (used for small files).
+    """
+
+    def handle_raw_input(self, input_data, META, content_length, boundary, encoding=None):
+        """
+        Use the content_length to signal whether or not this handler should be in use.
+        """
+        # Check the content-length header to see if we should
+        # If the the post is too large, we cannot use the Memory handler.
+        if content_length > settings.FILE_UPLOAD_MAX_MEMORY_SIZE:
+            self.activated = False
+        else:
+            self.activated = True
+
+    def new_file(self, *args, **kwargs):
+        super(MemoryFileUploadHandler, self).new_file(*args, **kwargs)
+        if self.activated:
+            self.file = StringIO()
+            raise StopFutureHandlers()
+
+    def receive_data_chunk(self, raw_data, start):
+        """
+        Add the data to the StringIO file.
+        """
+        if self.activated:
+            self.file.write(raw_data)
+        else:
+            return raw_data
+
+    def file_complete(self, file_size):
+        """
+        Return a file object if we're activated.
+        """
+        if not self.activated:
+            return
+
+        return InMemoryUploadedFile(
+            file = self.file,
+            field_name = self.field_name,
+            name = self.file_name,
+            content_type = self.content_type,
+            size = file_size,
+            charset = self.charset
+        )
+
+
+def load_handler(path, *args, **kwargs):
+    """
+    Given a path to a handler, return an instance of that handler.
+
+    E.g.::
+        >>> load_handler('django.core.files.uploadhandler.TemporaryFileUploadHandler', request)
+        <TemporaryFileUploadHandler object at 0x...>
+
+    """
+    i = path.rfind('.')
+    module, attr = path[:i], path[i+1:]
+    try:
+        mod = __import__(module, {}, {}, [attr])
+    except ImportError, e:
+        raise ImproperlyConfigured('Error importing upload handler module %s: "%s"' % (module, e))
+    except ValueError, e:
+        raise ImproperlyConfigured('Error importing upload handler module. Is FILE_UPLOAD_HANDLERS a correctly defined list or tuple?')
+    try:
+        cls = getattr(mod, attr)
+    except AttributeError:
+        raise ImproperlyConfigured('Module "%s" does not define a "%s" upload handler backend' % (module, attr))
+    return cls(*args, **kwargs)
diff --git a/webapp/django/core/handlers/__init__.py b/webapp/django/core/handlers/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/core/handlers/__init__.py
diff --git a/webapp/django/core/handlers/base.py b/webapp/django/core/handlers/base.py
new file mode 100644
index 0000000..b34d0e0
--- /dev/null
+++ b/webapp/django/core/handlers/base.py
@@ -0,0 +1,200 @@
+import sys
+
+from django import http
+from django.core import signals
+from django.utils.encoding import force_unicode
+
+class BaseHandler(object):
+    # Changes that are always applied to a response (in this order).
+    response_fixes = [
+        http.fix_location_header,
+        http.conditional_content_removal,
+        http.fix_IE_for_attach,
+        http.fix_IE_for_vary,
+    ]
+
+    def __init__(self):
+        self._request_middleware = self._view_middleware = self._response_middleware = self._exception_middleware = None
+
+    def load_middleware(self):
+        """
+        Populate middleware lists from settings.MIDDLEWARE_CLASSES.
+
+        Must be called after the environment is fixed (see __call__).
+        """
+        from django.conf import settings
+        from django.core import exceptions
+        self._request_middleware = []
+        self._view_middleware = []
+        self._response_middleware = []
+        self._exception_middleware = []
+        for middleware_path in settings.MIDDLEWARE_CLASSES:
+            try:
+                dot = middleware_path.rindex('.')
+            except ValueError:
+                raise exceptions.ImproperlyConfigured, '%s isn\'t a middleware module' % middleware_path
+            mw_module, mw_classname = middleware_path[:dot], middleware_path[dot+1:]
+            try:
+                mod = __import__(mw_module, {}, {}, [''])
+            except ImportError, e:
+                raise exceptions.ImproperlyConfigured, 'Error importing middleware %s: "%s"' % (mw_module, e)
+            try:
+                mw_class = getattr(mod, mw_classname)
+            except AttributeError:
+                raise exceptions.ImproperlyConfigured, 'Middleware module "%s" does not define a "%s" class' % (mw_module, mw_classname)
+
+            try:
+                mw_instance = mw_class()
+            except exceptions.MiddlewareNotUsed:
+                continue
+
+            if hasattr(mw_instance, 'process_request'):
+                self._request_middleware.append(mw_instance.process_request)
+            if hasattr(mw_instance, 'process_view'):
+                self._view_middleware.append(mw_instance.process_view)
+            if hasattr(mw_instance, 'process_response'):
+                self._response_middleware.insert(0, mw_instance.process_response)
+            if hasattr(mw_instance, 'process_exception'):
+                self._exception_middleware.insert(0, mw_instance.process_exception)
+
+    def get_response(self, request):
+        "Returns an HttpResponse object for the given HttpRequest"
+        from django.core import exceptions, urlresolvers
+        from django.conf import settings
+
+        # Apply request middleware
+        for middleware_method in self._request_middleware:
+            response = middleware_method(request)
+            if response:
+                return response
+
+        # Get urlconf from request object, if available.  Otherwise use default.
+        urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF)
+
+        resolver = urlresolvers.RegexURLResolver(r'^/', urlconf)
+        try:
+            callback, callback_args, callback_kwargs = resolver.resolve(
+                    request.path_info)
+
+            # Apply view middleware
+            for middleware_method in self._view_middleware:
+                response = middleware_method(request, callback, callback_args, callback_kwargs)
+                if response:
+                    return response
+
+            try:
+                response = callback(request, *callback_args, **callback_kwargs)
+            except Exception, e:
+                # If the view raised an exception, run it through exception
+                # middleware, and if the exception middleware returns a
+                # response, use that. Otherwise, reraise the exception.
+                for middleware_method in self._exception_middleware:
+                    response = middleware_method(request, e)
+                    if response:
+                        return response
+                raise
+
+            # Complain if the view returned None (a common error).
+            if response is None:
+                try:
+                    view_name = callback.func_name # If it's a function
+                except AttributeError:
+                    view_name = callback.__class__.__name__ + '.__call__' # If it's a class
+                raise ValueError, "The view %s.%s didn't return an HttpResponse object." % (callback.__module__, view_name)
+
+            return response
+        except http.Http404, e:
+            if settings.DEBUG:
+                from django.views import debug
+                return debug.technical_404_response(request, e)
+            else:
+                try:
+                    callback, param_dict = resolver.resolve404()
+                    return callback(request, **param_dict)
+                except:
+                    try:
+                        return self.handle_uncaught_exception(request, resolver, sys.exc_info())
+                    finally:
+                        receivers = signals.got_request_exception.send(sender=self.__class__, request=request)
+        except exceptions.PermissionDenied:
+            return http.HttpResponseForbidden('<h1>Permission denied</h1>')
+        except SystemExit:
+            # Allow sys.exit() to actually exit. See tickets #1023 and #4701
+            raise
+        except: # Handle everything else, including SuspiciousOperation, etc.
+            # Get the exception info now, in case another exception is thrown later.
+            exc_info = sys.exc_info()
+            receivers = signals.got_request_exception.send(sender=self.__class__, request=request)
+            return self.handle_uncaught_exception(request, resolver, exc_info)
+
+    def handle_uncaught_exception(self, request, resolver, exc_info):
+        """
+        Processing for any otherwise uncaught exceptions (those that will
+        generate HTTP 500 responses). Can be overridden by subclasses who want
+        customised 500 handling.
+
+        Be *very* careful when overriding this because the error could be
+        caused by anything, so assuming something like the database is always
+        available would be an error.
+        """
+        from django.conf import settings
+        from django.core.mail import mail_admins
+
+        if settings.DEBUG_PROPAGATE_EXCEPTIONS:
+            raise
+
+        if settings.DEBUG:
+            from django.views import debug
+            return debug.technical_500_response(request, *exc_info)
+
+        # When DEBUG is False, send an error message to the admins.
+        subject = 'Error (%s IP): %s' % ((request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS and 'internal' or 'EXTERNAL'), request.path)
+        try:
+            request_repr = repr(request)
+        except:
+            request_repr = "Request repr() unavailable"
+        message = "%s\n\n%s" % (self._get_traceback(exc_info), request_repr)
+        mail_admins(subject, message, fail_silently=True)
+        # Return an HttpResponse that displays a friendly error message.
+        callback, param_dict = resolver.resolve500()
+        return callback(request, **param_dict)
+
+    def _get_traceback(self, exc_info=None):
+        "Helper function to return the traceback as a string"
+        import traceback
+        return '\n'.join(traceback.format_exception(*(exc_info or sys.exc_info())))
+
+    def apply_response_fixes(self, request, response):
+        """
+        Applies each of the functions in self.response_fixes to the request and
+        response, modifying the response in the process. Returns the new
+        response.
+        """
+        for func in self.response_fixes:
+            response = func(request, response)
+        return response
+
+def get_script_name(environ):
+    """
+    Returns the equivalent of the HTTP request's SCRIPT_NAME environment
+    variable. If Apache mod_rewrite has been used, returns what would have been
+    the script name prior to any rewriting (so it's the script name as seen
+    from the client's perspective), unless DJANGO_USE_POST_REWRITE is set (to
+    anything).
+    """
+    from django.conf import settings
+    if settings.FORCE_SCRIPT_NAME is not None:
+        return force_unicode(settings.FORCE_SCRIPT_NAME)
+
+    # If Apache's mod_rewrite had a whack at the URL, Apache set either
+    # SCRIPT_URL or REDIRECT_URL to the full resource URL before applying any
+    # rewrites. Unfortunately not every webserver (lighttpd!) passes this
+    # information through all the time, so FORCE_SCRIPT_NAME, above, is still
+    # needed.
+    script_url = environ.get('SCRIPT_URL', u'')
+    if not script_url:
+        script_url = environ.get('REDIRECT_URL', u'')
+    if script_url:
+        return force_unicode(script_url[:-len(environ.get('PATH_INFO', ''))])
+    return force_unicode(environ.get('SCRIPT_NAME', u''))
+
diff --git a/webapp/django/core/handlers/modpython.py b/webapp/django/core/handlers/modpython.py
new file mode 100644
index 0000000..aa3fb23
--- /dev/null
+++ b/webapp/django/core/handlers/modpython.py
@@ -0,0 +1,210 @@
+import os
+from pprint import pformat
+
+from django import http
+from django.core import signals
+from django.core.handlers.base import BaseHandler
+from django.core.urlresolvers import set_script_prefix
+from django.utils import datastructures
+from django.utils.encoding import force_unicode, smart_str
+
+# NOTE: do *not* import settings (or any module which eventually imports
+# settings) until after ModPythonHandler has been called; otherwise os.environ
+# won't be set up correctly (with respect to settings).
+
+class ModPythonRequest(http.HttpRequest):
+    def __init__(self, req):
+        self._req = req
+        # FIXME: This isn't ideal. The request URI may be encoded (it's
+        # non-normalized) slightly differently to the "real" SCRIPT_NAME
+        # and PATH_INFO values. This causes problems when we compute path_info,
+        # below. For now, don't use script names that will be subject to
+        # encoding/decoding.
+        self.path = force_unicode(req.uri)
+        root = req.get_options().get('django.root', '')
+        self.django_root = root
+        # req.path_info isn't necessarily computed correctly in all
+        # circumstances (it's out of mod_python's control a bit), so we use
+        # req.uri and some string manipulations to get the right value.
+        if root and req.uri.startswith(root):
+            self.path_info = force_unicode(req.uri[len(root):])
+        else:
+            self.path_info = self.path
+        if not self.path_info:
+            # Django prefers empty paths to be '/', rather than '', to give us
+            # a common start character for URL patterns. So this is a little
+            # naughty, but also pretty harmless.
+            self.path_info = u'/'
+
+    def __repr__(self):
+        # Since this is called as part of error handling, we need to be very
+        # robust against potentially malformed input.
+        try:
+            get = pformat(self.GET)
+        except:
+            get = '<could not parse>'
+        try:
+            post = pformat(self.POST)
+        except:
+            post = '<could not parse>'
+        try:
+            cookies = pformat(self.COOKIES)
+        except:
+            cookies = '<could not parse>'
+        try:
+            meta = pformat(self.META)
+        except:
+            meta = '<could not parse>'
+        return smart_str(u'<ModPythonRequest\npath:%s,\nGET:%s,\nPOST:%s,\nCOOKIES:%s,\nMETA:%s>' %
+                         (self.path, unicode(get), unicode(post),
+                          unicode(cookies), unicode(meta)))
+
+    def get_full_path(self):
+        return '%s%s' % (self.path, self._req.args and ('?' + self._req.args) or '')
+
+    def is_secure(self):
+        try:
+            return self._req.is_https()
+        except AttributeError:
+            # mod_python < 3.2.10 doesn't have req.is_https().
+            return self._req.subprocess_env.get('HTTPS', '').lower() in ('on', '1')
+
+    def _load_post_and_files(self):
+        "Populates self._post and self._files"
+        if 'content-type' in self._req.headers_in and self._req.headers_in['content-type'].startswith('multipart'):
+            self._raw_post_data = ''
+            self._post, self._files = self.parse_file_upload(self.META, self._req)
+        else:
+            self._post, self._files = http.QueryDict(self.raw_post_data, encoding=self._encoding), datastructures.MultiValueDict()
+
+    def _get_request(self):
+        if not hasattr(self, '_request'):
+            self._request = datastructures.MergeDict(self.POST, self.GET)
+        return self._request
+
+    def _get_get(self):
+        if not hasattr(self, '_get'):
+            self._get = http.QueryDict(self._req.args, encoding=self._encoding)
+        return self._get
+
+    def _set_get(self, get):
+        self._get = get
+
+    def _get_post(self):
+        if not hasattr(self, '_post'):
+            self._load_post_and_files()
+        return self._post
+
+    def _set_post(self, post):
+        self._post = post
+
+    def _get_cookies(self):
+        if not hasattr(self, '_cookies'):
+            self._cookies = http.parse_cookie(self._req.headers_in.get('cookie', ''))
+        return self._cookies
+
+    def _set_cookies(self, cookies):
+        self._cookies = cookies
+
+    def _get_files(self):
+        if not hasattr(self, '_files'):
+            self._load_post_and_files()
+        return self._files
+
+    def _get_meta(self):
+        "Lazy loader that returns self.META dictionary"
+        if not hasattr(self, '_meta'):
+            self._meta = {
+                'AUTH_TYPE':         self._req.ap_auth_type,
+                'CONTENT_LENGTH':    self._req.clength, # This may be wrong
+                'CONTENT_TYPE':      self._req.content_type, # This may be wrong
+                'GATEWAY_INTERFACE': 'CGI/1.1',
+                'PATH_INFO':         self.path_info,
+                'PATH_TRANSLATED':   None, # Not supported
+                'QUERY_STRING':      self._req.args,
+                'REMOTE_ADDR':       self._req.connection.remote_ip,
+                'REMOTE_HOST':       None, # DNS lookups not supported
+                'REMOTE_IDENT':      self._req.connection.remote_logname,
+                'REMOTE_USER':       self._req.user,
+                'REQUEST_METHOD':    self._req.method,
+                'SCRIPT_NAME':       self.django_root,
+                'SERVER_NAME':       self._req.server.server_hostname,
+                'SERVER_PORT':       self._req.server.port,
+                'SERVER_PROTOCOL':   self._req.protocol,
+                'SERVER_SOFTWARE':   'mod_python'
+            }
+            for key, value in self._req.headers_in.items():
+                key = 'HTTP_' + key.upper().replace('-', '_')
+                self._meta[key] = value
+        return self._meta
+
+    def _get_raw_post_data(self):
+        try:
+            return self._raw_post_data
+        except AttributeError:
+            self._raw_post_data = self._req.read()
+            return self._raw_post_data
+
+    def _get_method(self):
+        return self.META['REQUEST_METHOD'].upper()
+
+    GET = property(_get_get, _set_get)
+    POST = property(_get_post, _set_post)
+    COOKIES = property(_get_cookies, _set_cookies)
+    FILES = property(_get_files)
+    META = property(_get_meta)
+    REQUEST = property(_get_request)
+    raw_post_data = property(_get_raw_post_data)
+    method = property(_get_method)
+
+class ModPythonHandler(BaseHandler):
+    request_class = ModPythonRequest
+
+    def __call__(self, req):
+        # mod_python fakes the environ, and thus doesn't process SetEnv.  This fixes that
+        os.environ.update(req.subprocess_env)
+
+        # now that the environ works we can see the correct settings, so imports
+        # that use settings now can work
+        from django.conf import settings
+
+        # if we need to set up middleware, now that settings works we can do it now.
+        if self._request_middleware is None:
+            self.load_middleware()
+
+        set_script_prefix(req.get_options().get('django.root', ''))
+        signals.request_started.send(sender=self.__class__)
+        try:
+            try:
+                request = self.request_class(req)
+            except UnicodeDecodeError:
+                response = http.HttpResponseBadRequest()
+            else:
+                response = self.get_response(request)
+
+                # Apply response middleware
+                for middleware_method in self._response_middleware:
+                    response = middleware_method(request, response)
+                response = self.apply_response_fixes(request, response)
+        finally:
+            signals.request_finished.send(sender=self.__class__)
+
+        # Convert our custom HttpResponse object back into the mod_python req.
+        req.content_type = response['Content-Type']
+        for key, value in response.items():
+            if key != 'content-type':
+                req.headers_out[str(key)] = str(value)
+        for c in response.cookies.values():
+            req.headers_out.add('Set-Cookie', c.output(header=''))
+        req.status = response.status_code
+        try:
+            for chunk in response:
+                req.write(chunk)
+        finally:
+            response.close()
+
+        return 0 # mod_python.apache.OK
+
+def handler(req):
+    # mod_python hooks into this function.
+    return ModPythonHandler()(req)
diff --git a/webapp/django/core/handlers/profiler-hotshot.py b/webapp/django/core/handlers/profiler-hotshot.py
new file mode 100644
index 0000000..6cf94b0
--- /dev/null
+++ b/webapp/django/core/handlers/profiler-hotshot.py
@@ -0,0 +1,22 @@
+import hotshot, time, os
+from django.core.handlers.modpython import ModPythonHandler
+
+PROFILE_DATA_DIR = "/var/log/cmsprofile"
+
+def handler(req):
+    '''
+    Handler that uses hotshot to store profile data.
+
+    Stores profile data in PROFILE_DATA_DIR.  Since hotshot has no way (that I
+    know of) to append profile data to a single file, each request gets its own
+    profile.  The file names are in the format <url>.<n>.prof where <url> is
+    the request path with "/" replaced by ".", and <n> is a timestamp with
+    microseconds to prevent overwriting files.
+
+    Use the gather_profile_stats.py script to gather these individual request
+    profiles into aggregated profiles by request path.
+    '''
+    profname = "%s.%.3f.prof" % (req.uri.strip("/").replace('/', '.'), time.time())
+    profname = os.path.join(PROFILE_DATA_DIR, profname)
+    prof = hotshot.Profile(profname)
+    return prof.runcall(ModPythonHandler(), req)
diff --git a/webapp/django/core/handlers/wsgi.py b/webapp/django/core/handlers/wsgi.py
new file mode 100644
index 0000000..d1336b3
--- /dev/null
+++ b/webapp/django/core/handlers/wsgi.py
@@ -0,0 +1,238 @@
+from threading import Lock
+from pprint import pformat
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+
+from django import http
+from django.core import signals
+from django.core.handlers import base
+from django.core.urlresolvers import set_script_prefix
+from django.utils import datastructures
+from django.utils.encoding import force_unicode
+
+# See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
+STATUS_CODE_TEXT = {
+    100: 'CONTINUE',
+    101: 'SWITCHING PROTOCOLS',
+    200: 'OK',
+    201: 'CREATED',
+    202: 'ACCEPTED',
+    203: 'NON-AUTHORITATIVE INFORMATION',
+    204: 'NO CONTENT',
+    205: 'RESET CONTENT',
+    206: 'PARTIAL CONTENT',
+    300: 'MULTIPLE CHOICES',
+    301: 'MOVED PERMANENTLY',
+    302: 'FOUND',
+    303: 'SEE OTHER',
+    304: 'NOT MODIFIED',
+    305: 'USE PROXY',
+    306: 'RESERVED',
+    307: 'TEMPORARY REDIRECT',
+    400: 'BAD REQUEST',
+    401: 'UNAUTHORIZED',
+    402: 'PAYMENT REQUIRED',
+    403: 'FORBIDDEN',
+    404: 'NOT FOUND',
+    405: 'METHOD NOT ALLOWED',
+    406: 'NOT ACCEPTABLE',
+    407: 'PROXY AUTHENTICATION REQUIRED',
+    408: 'REQUEST TIMEOUT',
+    409: 'CONFLICT',
+    410: 'GONE',
+    411: 'LENGTH REQUIRED',
+    412: 'PRECONDITION FAILED',
+    413: 'REQUEST ENTITY TOO LARGE',
+    414: 'REQUEST-URI TOO LONG',
+    415: 'UNSUPPORTED MEDIA TYPE',
+    416: 'REQUESTED RANGE NOT SATISFIABLE',
+    417: 'EXPECTATION FAILED',
+    500: 'INTERNAL SERVER ERROR',
+    501: 'NOT IMPLEMENTED',
+    502: 'BAD GATEWAY',
+    503: 'SERVICE UNAVAILABLE',
+    504: 'GATEWAY TIMEOUT',
+    505: 'HTTP VERSION NOT SUPPORTED',
+}
+
+def safe_copyfileobj(fsrc, fdst, length=16*1024, size=0):
+    """
+    A version of shutil.copyfileobj that will not read more than 'size' bytes.
+    This makes it safe from clients sending more than CONTENT_LENGTH bytes of
+    data in the body.
+    """
+    if not size:
+        return
+    while size > 0:
+        buf = fsrc.read(min(length, size))
+        if not buf:
+            break
+        fdst.write(buf)
+        size -= len(buf)
+
+class WSGIRequest(http.HttpRequest):
+    def __init__(self, environ):
+        script_name = base.get_script_name(environ)
+        path_info = force_unicode(environ.get('PATH_INFO', u'/'))
+        if not path_info:
+            # Sometimes PATH_INFO exists, but is empty (e.g. accessing
+            # the SCRIPT_NAME URL without a trailing slash). We really need to
+            # operate as if they'd requested '/'. Not amazingly nice to force
+            # the path like this, but should be harmless.
+            path_info = u'/'
+        self.environ = environ
+        self.path_info = path_info
+        self.path = '%s%s' % (script_name, path_info)
+        self.META = environ
+        self.META['PATH_INFO'] = path_info
+        self.META['SCRIPT_NAME'] = script_name
+        self.method = environ['REQUEST_METHOD'].upper()
+
+    def __repr__(self):
+        # Since this is called as part of error handling, we need to be very
+        # robust against potentially malformed input.
+        try:
+            get = pformat(self.GET)
+        except:
+            get = '<could not parse>'
+        try:
+            post = pformat(self.POST)
+        except:
+            post = '<could not parse>'
+        try:
+            cookies = pformat(self.COOKIES)
+        except:
+            cookies = '<could not parse>'
+        try:
+            meta = pformat(self.META)
+        except:
+            meta = '<could not parse>'
+        return '<WSGIRequest\nGET:%s,\nPOST:%s,\nCOOKIES:%s,\nMETA:%s>' % \
+            (get, post, cookies, meta)
+
+    def get_full_path(self):
+        return '%s%s' % (self.path, self.environ.get('QUERY_STRING', '') and ('?' + self.environ.get('QUERY_STRING', '')) or '')
+
+    def is_secure(self):
+        return 'wsgi.url_scheme' in self.environ \
+            and self.environ['wsgi.url_scheme'] == 'https'
+
+    def _load_post_and_files(self):
+        # Populates self._post and self._files
+        if self.method == 'POST':
+            if self.environ.get('CONTENT_TYPE', '').startswith('multipart'):
+                self._raw_post_data = ''
+                self._post, self._files = self.parse_file_upload(self.META, self.environ['wsgi.input'])
+            else:
+                self._post, self._files = http.QueryDict(self.raw_post_data, encoding=self._encoding), datastructures.MultiValueDict()
+        else:
+            self._post, self._files = http.QueryDict('', encoding=self._encoding), datastructures.MultiValueDict()
+
+    def _get_request(self):
+        if not hasattr(self, '_request'):
+            self._request = datastructures.MergeDict(self.POST, self.GET)
+        return self._request
+
+    def _get_get(self):
+        if not hasattr(self, '_get'):
+            # The WSGI spec says 'QUERY_STRING' may be absent.
+            self._get = http.QueryDict(self.environ.get('QUERY_STRING', ''), encoding=self._encoding)
+        return self._get
+
+    def _set_get(self, get):
+        self._get = get
+
+    def _get_post(self):
+        if not hasattr(self, '_post'):
+            self._load_post_and_files()
+        return self._post
+
+    def _set_post(self, post):
+        self._post = post
+
+    def _get_cookies(self):
+        if not hasattr(self, '_cookies'):
+            self._cookies = http.parse_cookie(self.environ.get('HTTP_COOKIE', ''))
+        return self._cookies
+
+    def _set_cookies(self, cookies):
+        self._cookies = cookies
+
+    def _get_files(self):
+        if not hasattr(self, '_files'):
+            self._load_post_and_files()
+        return self._files
+
+    def _get_raw_post_data(self):
+        try:
+            return self._raw_post_data
+        except AttributeError:
+            buf = StringIO()
+            try:
+                # CONTENT_LENGTH might be absent if POST doesn't have content at all (lighttpd)
+                content_length = int(self.environ.get('CONTENT_LENGTH', 0))
+            except (ValueError, TypeError):
+                # If CONTENT_LENGTH was empty string or not an integer, don't
+                # error out. We've also seen None passed in here (against all
+                # specs, but see ticket #8259), so we handle TypeError as well.
+                content_length = 0
+            if content_length > 0:
+                safe_copyfileobj(self.environ['wsgi.input'], buf,
+                        size=content_length)
+            self._raw_post_data = buf.getvalue()
+            buf.close()
+            return self._raw_post_data
+
+    GET = property(_get_get, _set_get)
+    POST = property(_get_post, _set_post)
+    COOKIES = property(_get_cookies, _set_cookies)
+    FILES = property(_get_files)
+    REQUEST = property(_get_request)
+    raw_post_data = property(_get_raw_post_data)
+
+class WSGIHandler(base.BaseHandler):
+    initLock = Lock()
+    request_class = WSGIRequest
+
+    def __call__(self, environ, start_response):
+        from django.conf import settings
+
+        # Set up middleware if needed. We couldn't do this earlier, because
+        # settings weren't available.
+        if self._request_middleware is None:
+            self.initLock.acquire()
+            # Check that middleware is still uninitialised.
+            if self._request_middleware is None:
+                self.load_middleware()
+            self.initLock.release()
+
+        set_script_prefix(base.get_script_name(environ))
+        signals.request_started.send(sender=self.__class__)
+        try:
+            try:
+                request = self.request_class(environ)
+            except UnicodeDecodeError:
+                response = http.HttpResponseBadRequest()
+            else:
+                response = self.get_response(request)
+
+                # Apply response middleware
+                for middleware_method in self._response_middleware:
+                    response = middleware_method(request, response)
+                response = self.apply_response_fixes(request, response)
+        finally:
+            signals.request_finished.send(sender=self.__class__)
+
+        try:
+            status_text = STATUS_CODE_TEXT[response.status_code]
+        except KeyError:
+            status_text = 'UNKNOWN STATUS CODE'
+        status = '%s %s' % (response.status_code, status_text)
+        response_headers = [(str(k), str(v)) for k, v in response.items()]
+        for c in response.cookies.values():
+            response_headers.append(('Set-Cookie', str(c.output(header=''))))
+        start_response(status, response_headers)
+        return response
+
diff --git a/webapp/django/core/mail.py b/webapp/django/core/mail.py
new file mode 100644
index 0000000..1ac2a39
--- /dev/null
+++ b/webapp/django/core/mail.py
@@ -0,0 +1,371 @@
+"""
+Tools for sending email.
+"""
+
+import mimetypes
+import os
+import smtplib
+import socket
+import time
+import random
+from email import Charset, Encoders
+from email.MIMEText import MIMEText
+from email.MIMEMultipart import MIMEMultipart
+from email.MIMEBase import MIMEBase
+from email.Header import Header
+from email.Utils import formatdate, parseaddr, formataddr
+
+from django.conf import settings
+from django.utils.encoding import smart_str, force_unicode
+
+# Don't BASE64-encode UTF-8 messages so that we avoid unwanted attention from
+# some spam filters.
+Charset.add_charset('utf-8', Charset.SHORTEST, Charset.QP, 'utf-8')
+
+# Default MIME type to use on attachments (if it is not explicitly given
+# and cannot be guessed).
+DEFAULT_ATTACHMENT_MIME_TYPE = 'application/octet-stream'
+
+# Cache the hostname, but do it lazily: socket.getfqdn() can take a couple of
+# seconds, which slows down the restart of the server.
+class CachedDnsName(object):
+    def __str__(self):
+        return self.get_fqdn()
+
+    def get_fqdn(self):
+        if not hasattr(self, '_fqdn'):
+            self._fqdn = socket.getfqdn()
+        return self._fqdn
+
+DNS_NAME = CachedDnsName()
+
+# Copied from Python standard library, with the following modifications:
+# * Used cached hostname for performance.
+# * Added try/except to support lack of getpid() in Jython (#5496).
+def make_msgid(idstring=None):
+    """Returns a string suitable for RFC 2822 compliant Message-ID, e.g:
+
+    <20020201195627.33539.96671@nightshade.la.mastaler.com>
+
+    Optional idstring if given is a string used to strengthen the
+    uniqueness of the message id.
+    """
+    timeval = time.time()
+    utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval))
+    try:
+        pid = os.getpid()
+    except AttributeError:
+        # No getpid() in Jython, for example.
+        pid = 1
+    randint = random.randrange(100000)
+    if idstring is None:
+        idstring = ''
+    else:
+        idstring = '.' + idstring
+    idhost = DNS_NAME
+    msgid = '<%s.%s.%s%s@%s>' % (utcdate, pid, randint, idstring, idhost)
+    return msgid
+
+class BadHeaderError(ValueError):
+    pass
+
+def forbid_multi_line_headers(name, val):
+    """Forbids multi-line headers, to prevent header injection."""
+    val = force_unicode(val)
+    if '\n' in val or '\r' in val:
+        raise BadHeaderError("Header values can't contain newlines (got %r for header %r)" % (val, name))
+    try:
+        val = val.encode('ascii')
+    except UnicodeEncodeError:
+        if name.lower() in ('to', 'from', 'cc'):
+            result = []
+            for item in val.split(', '):
+                nm, addr = parseaddr(item)
+                nm = str(Header(nm, settings.DEFAULT_CHARSET))
+                result.append(formataddr((nm, str(addr))))
+            val = ', '.join(result)
+        else:
+            val = Header(val, settings.DEFAULT_CHARSET)
+    else:
+        if name.lower() == 'subject':
+            val = Header(val)
+    return name, val
+
+class SafeMIMEText(MIMEText):
+    def __setitem__(self, name, val):
+        name, val = forbid_multi_line_headers(name, val)
+        MIMEText.__setitem__(self, name, val)
+
+class SafeMIMEMultipart(MIMEMultipart):
+    def __setitem__(self, name, val):
+        name, val = forbid_multi_line_headers(name, val)
+        MIMEMultipart.__setitem__(self, name, val)
+
+class SMTPConnection(object):
+    """
+    A wrapper that manages the SMTP network connection.
+    """
+
+    def __init__(self, host=None, port=None, username=None, password=None,
+                 use_tls=None, fail_silently=False):
+        self.host = host or settings.EMAIL_HOST
+        self.port = port or settings.EMAIL_PORT
+        self.username = username or settings.EMAIL_HOST_USER
+        self.password = password or settings.EMAIL_HOST_PASSWORD
+        self.use_tls = (use_tls is not None) and use_tls or settings.EMAIL_USE_TLS
+        self.fail_silently = fail_silently
+        self.connection = None
+
+    def open(self):
+        """
+        Ensures we have a connection to the email server. Returns whether or
+        not a new connection was required (True or False).
+        """
+        if self.connection:
+            # Nothing to do if the connection is already open.
+            return False
+        try:
+            # If local_hostname is not specified, socket.getfqdn() gets used.
+            # For performance, we use the cached FQDN for local_hostname.
+            self.connection = smtplib.SMTP(self.host, self.port,
+                                           local_hostname=DNS_NAME.get_fqdn())
+            if self.use_tls:
+                self.connection.ehlo()
+                self.connection.starttls()
+                self.connection.ehlo()
+            if self.username and self.password:
+                self.connection.login(self.username, self.password)
+            return True
+        except:
+            if not self.fail_silently:
+                raise
+
+    def close(self):
+        """Closes the connection to the email server."""
+        try:
+            try:
+                self.connection.quit()
+            except socket.sslerror:
+                # This happens when calling quit() on a TLS connection
+                # sometimes.
+                self.connection.close()
+            except:
+                if self.fail_silently:
+                    return
+                raise
+        finally:
+            self.connection = None
+
+    def send_messages(self, email_messages):
+        """
+        Sends one or more EmailMessage objects and returns the number of email
+        messages sent.
+        """
+        if not email_messages:
+            return
+        new_conn_created = self.open()
+        if not self.connection:
+            # We failed silently on open(). Trying to send would be pointless.
+            return
+        num_sent = 0
+        for message in email_messages:
+            sent = self._send(message)
+            if sent:
+                num_sent += 1
+        if new_conn_created:
+            self.close()
+        return num_sent
+
+    def _send(self, email_message):
+        """A helper method that does the actual sending."""
+        if not email_message.recipients():
+            return False
+        try:
+            self.connection.sendmail(email_message.from_email,
+                    email_message.recipients(),
+                    email_message.message().as_string())
+        except:
+            if not self.fail_silently:
+                raise
+            return False
+        return True
+
+class EmailMessage(object):
+    """
+    A container for email information.
+    """
+    content_subtype = 'plain'
+    multipart_subtype = 'mixed'
+    encoding = None     # None => use settings default
+
+    def __init__(self, subject='', body='', from_email=None, to=None, bcc=None,
+            connection=None, attachments=None, headers=None):
+        """
+        Initialize a single email message (which can be sent to multiple
+        recipients).
+
+        All strings used to create the message can be unicode strings (or UTF-8
+        bytestrings). The SafeMIMEText class will handle any necessary encoding
+        conversions.
+        """
+        if to:
+            assert not isinstance(to, basestring), '"to" argument must be a list or tuple'
+            self.to = list(to)
+        else:
+            self.to = []
+        if bcc:
+            assert not isinstance(bcc, basestring), '"bcc" argument must be a list or tuple'
+            self.bcc = list(bcc)
+        else:
+            self.bcc = []
+        self.from_email = from_email or settings.DEFAULT_FROM_EMAIL
+        self.subject = subject
+        self.body = body
+        self.attachments = attachments or []
+        self.extra_headers = headers or {}
+        self.connection = connection
+
+    def get_connection(self, fail_silently=False):
+        if not self.connection:
+            self.connection = SMTPConnection(fail_silently=fail_silently)
+        return self.connection
+
+    def message(self):
+        encoding = self.encoding or settings.DEFAULT_CHARSET
+        msg = SafeMIMEText(smart_str(self.body, settings.DEFAULT_CHARSET),
+                           self.content_subtype, encoding)
+        if self.attachments:
+            body_msg = msg
+            msg = SafeMIMEMultipart(_subtype=self.multipart_subtype)
+            if self.body:
+                msg.attach(body_msg)
+            for attachment in self.attachments:
+                if isinstance(attachment, MIMEBase):
+                    msg.attach(attachment)
+                else:
+                    msg.attach(self._create_attachment(*attachment))
+        msg['Subject'] = self.subject
+        msg['From'] = self.from_email
+        msg['To'] = ', '.join(self.to)
+        msg['Date'] = formatdate()
+        msg['Message-ID'] = make_msgid()
+        for name, value in self.extra_headers.items():
+            msg[name] = value
+        return msg
+
+    def recipients(self):
+        """
+        Returns a list of all recipients of the email (includes direct
+        addressees as well as Bcc entries).
+        """
+        return self.to + self.bcc
+
+    def send(self, fail_silently=False):
+        """Sends the email message."""
+        return self.get_connection(fail_silently).send_messages([self])
+
+    def attach(self, filename=None, content=None, mimetype=None):
+        """
+        Attaches a file with the given filename and content. The filename can
+        be omitted (useful for multipart/alternative messages) and the mimetype
+        is guessed, if not provided.
+
+        If the first parameter is a MIMEBase subclass it is inserted directly
+        into the resulting message attachments.
+        """
+        if isinstance(filename, MIMEBase):
+            assert content == mimetype == None
+            self.attachments.append(filename)
+        else:
+            assert content is not None
+            self.attachments.append((filename, content, mimetype))
+
+    def attach_file(self, path, mimetype=None):
+        """Attaches a file from the filesystem."""
+        filename = os.path.basename(path)
+        content = open(path, 'rb').read()
+        self.attach(filename, content, mimetype)
+
+    def _create_attachment(self, filename, content, mimetype=None):
+        """
+        Converts the filename, content, mimetype triple into a MIME attachment
+        object.
+        """
+        if mimetype is None:
+            mimetype, _ = mimetypes.guess_type(filename)
+            if mimetype is None:
+                mimetype = DEFAULT_ATTACHMENT_MIME_TYPE
+        basetype, subtype = mimetype.split('/', 1)
+        if basetype == 'text':
+            attachment = SafeMIMEText(smart_str(content,
+                settings.DEFAULT_CHARSET), subtype, settings.DEFAULT_CHARSET)
+        else:
+            # Encode non-text attachments with base64.
+            attachment = MIMEBase(basetype, subtype)
+            attachment.set_payload(content)
+            Encoders.encode_base64(attachment)
+        if filename:
+            attachment.add_header('Content-Disposition', 'attachment',
+                                  filename=filename)
+        return attachment
+
+class EmailMultiAlternatives(EmailMessage):
+    """
+    A version of EmailMessage that makes it easy to send multipart/alternative
+    messages. For example, including text and HTML versions of the text is
+    made easier.
+    """
+    multipart_subtype = 'alternative'
+
+    def attach_alternative(self, content, mimetype=None):
+        """Attach an alternative content representation."""
+        self.attach(content=content, mimetype=mimetype)
+
+def send_mail(subject, message, from_email, recipient_list,
+              fail_silently=False, auth_user=None, auth_password=None):
+    """
+    Easy wrapper for sending a single message to a recipient list. All members
+    of the recipient list will see the other recipients in the 'To' field.
+
+    If auth_user is None, the EMAIL_HOST_USER setting is used.
+    If auth_password is None, the EMAIL_HOST_PASSWORD setting is used.
+
+    Note: The API for this method is frozen. New code wanting to extend the
+    functionality should use the EmailMessage class directly.
+    """
+    connection = SMTPConnection(username=auth_user, password=auth_password,
+                                fail_silently=fail_silently)
+    return EmailMessage(subject, message, from_email, recipient_list,
+                        connection=connection).send()
+
+def send_mass_mail(datatuple, fail_silently=False, auth_user=None,
+                   auth_password=None):
+    """
+    Given a datatuple of (subject, message, from_email, recipient_list), sends
+    each message to each recipient list. Returns the number of e-mails sent.
+
+    If from_email is None, the DEFAULT_FROM_EMAIL setting is used.
+    If auth_user and auth_password are set, they're used to log in.
+    If auth_user is None, the EMAIL_HOST_USER setting is used.
+    If auth_password is None, the EMAIL_HOST_PASSWORD setting is used.
+
+    Note: The API for this method is frozen. New code wanting to extend the
+    functionality should use the EmailMessage class directly.
+    """
+    connection = SMTPConnection(username=auth_user, password=auth_password,
+                                fail_silently=fail_silently)
+    messages = [EmailMessage(subject, message, sender, recipient)
+                for subject, message, sender, recipient in datatuple]
+    return connection.send_messages(messages)
+
+def mail_admins(subject, message, fail_silently=False):
+    """Sends a message to the admins, as defined by the ADMINS setting."""
+    EmailMessage(settings.EMAIL_SUBJECT_PREFIX + subject, message,
+                 settings.SERVER_EMAIL, [a[1] for a in settings.ADMINS]
+                 ).send(fail_silently=fail_silently)
+
+def mail_managers(subject, message, fail_silently=False):
+    """Sends a message to the managers, as defined by the MANAGERS setting."""
+    EmailMessage(settings.EMAIL_SUBJECT_PREFIX + subject, message,
+                 settings.SERVER_EMAIL, [a[1] for a in settings.MANAGERS]
+                 ).send(fail_silently=fail_silently)
diff --git a/webapp/django/core/management/__init__.py b/webapp/django/core/management/__init__.py
new file mode 100644
index 0000000..fc1e82b
--- /dev/null
+++ b/webapp/django/core/management/__init__.py
@@ -0,0 +1,334 @@
+import os
+import sys
+from optparse import OptionParser
+import imp
+
+import django
+from django.core.management.base import BaseCommand, CommandError, handle_default_options
+
+# For backwards compatibility: get_version() used to be in this module.
+get_version = django.get_version
+
+# A cache of loaded commands, so that call_command
+# doesn't have to reload every time it's called.
+_commands = None
+
+def find_commands(management_dir):
+    """
+    Given a path to a management directory, returns a list of all the command
+    names that are available.
+
+    Returns an empty list if no commands are defined.
+    """
+    command_dir = os.path.join(management_dir, 'commands')
+    try:
+        return [f[:-3] for f in os.listdir(command_dir)
+                if not f.startswith('_') and f.endswith('.py')]
+    except OSError:
+        return []
+
+def find_management_module(app_name):
+    """
+    Determines the path to the management module for the given app_name,
+    without actually importing the application or the management module.
+
+    Raises ImportError if the management module cannot be found for any reason.
+    """
+    parts = app_name.split('.')
+    parts.append('management')
+    parts.reverse()
+    part = parts.pop()
+    path = None
+    
+    # When using manage.py, the project module is added to the path,
+    # loaded, then removed from the path. This means that 
+    # testproject.testapp.models can be loaded in future, even if
+    # testproject isn't in the path. When looking for the management
+    # module, we need look for the case where the project name is part
+    # of the app_name but the project directory itself isn't on the path.
+    try:
+        f, path, descr = imp.find_module(part,path)
+    except ImportError,e:
+        if os.path.basename(os.getcwd()) != part:
+            raise e
+        
+    while parts:
+        part = parts.pop()
+        f, path, descr = imp.find_module(part, path and [path] or None)
+    return path
+
+def load_command_class(app_name, name):
+    """
+    Given a command name and an application name, returns the Command
+    class instance. All errors raised by the import process
+    (ImportError, AttributeError) are allowed to propagate.
+    """
+    return getattr(__import__('%s.management.commands.%s' % (app_name, name),
+                   {}, {}, ['Command']), 'Command')()
+
+def get_commands():
+    """
+    Returns a dictionary mapping command names to their callback applications.
+
+    This works by looking for a management.commands package in django.core, and
+    in each installed application -- if a commands package exists, all commands
+    in that package are registered.
+
+    Core commands are always included. If a settings module has been
+    specified, user-defined commands will also be included, the
+    startproject command will be disabled, and the startapp command
+    will be modified to use the directory in which the settings module appears.
+
+    The dictionary is in the format {command_name: app_name}. Key-value
+    pairs from this dictionary can then be used in calls to
+    load_command_class(app_name, command_name)
+
+    If a specific version of a command must be loaded (e.g., with the
+    startapp command), the instantiated module can be placed in the
+    dictionary in place of the application name.
+
+    The dictionary is cached on the first call and reused on subsequent
+    calls.
+    """
+    global _commands
+    if _commands is None:
+        _commands = dict([(name, 'django.core') for name in find_commands(__path__[0])])
+
+        # Find the installed apps
+        try:
+            from django.conf import settings
+            apps = settings.INSTALLED_APPS
+        except (AttributeError, EnvironmentError, ImportError):
+            apps = []
+
+        # Find the project directory
+        try:
+            from django.conf import settings
+            project_directory = setup_environ(
+                __import__(
+                    settings.SETTINGS_MODULE, {}, {}, 
+                    (settings.SETTINGS_MODULE.split(".")[-1],)
+                )
+            )
+        except (AttributeError, EnvironmentError, ImportError):
+            project_directory = None
+
+        # Find and load the management module for each installed app.
+        for app_name in apps:
+            try:
+                path = find_management_module(app_name)
+                _commands.update(dict([(name, app_name)
+                                       for name in find_commands(path)]))
+            except ImportError:
+                pass # No management module - ignore this app
+
+        if project_directory:
+            # Remove the "startproject" command from self.commands, because
+            # that's a django-admin.py command, not a manage.py command.
+            del _commands['startproject']
+
+            # Override the startapp command so that it always uses the
+            # project_directory, not the current working directory
+            # (which is default).
+            from django.core.management.commands.startapp import ProjectCommand
+            _commands['startapp'] = ProjectCommand(project_directory)
+
+    return _commands
+
+def call_command(name, *args, **options):
+    """
+    Calls the given command, with the given options and args/kwargs.
+
+    This is the primary API you should use for calling specific commands.
+
+    Some examples:
+        call_command('syncdb')
+        call_command('shell', plain=True)
+        call_command('sqlall', 'myapp')
+    """
+    try:
+        app_name = get_commands()[name]
+        if isinstance(app_name, BaseCommand):
+            # If the command is already loaded, use it directly.
+            klass = app_name
+        else:
+            klass = load_command_class(app_name, name)
+    except KeyError:
+        raise CommandError, "Unknown command: %r" % name
+    return klass.execute(*args, **options)
+
+class LaxOptionParser(OptionParser):
+    """
+    An option parser that doesn't raise any errors on unknown options.
+
+    This is needed because the --settings and --pythonpath options affect
+    the commands (and thus the options) that are available to the user.
+    """
+    def error(self, msg):
+        pass
+    
+    def print_help(self):
+        """Output nothing.
+        
+        The lax options are included in the normal option parser, so under
+        normal usage, we don't need to print the lax options.
+        """
+        pass
+    
+    def print_lax_help(self):
+        """Output the basic options available to every command.
+        
+        This just redirects to the default print_help() behaviour.
+        """
+        OptionParser.print_help(self)
+        
+    def _process_args(self, largs, rargs, values):
+        """
+        Overrides OptionParser._process_args to exclusively handle default
+        options and ignore args and other options. 
+        
+        This overrides the behavior of the super class, which stop parsing 
+        at the first unrecognized option.
+        """
+        while rargs:
+            arg = rargs[0]
+            try:
+                if arg[0:2] == "--" and len(arg) > 2:
+                    # process a single long option (possibly with value(s))
+                    # the superclass code pops the arg off rargs
+                    self._process_long_opt(rargs, values)
+                elif arg[:1] == "-" and len(arg) > 1:
+                    # process a cluster of short options (possibly with
+                    # value(s) for the last one only)
+                    # the superclass code pops the arg off rargs
+                    self._process_short_opts(rargs, values)
+                else:
+                    # it's either a non-default option or an arg
+                    # either way, add it to the args list so we can keep
+                    # dealing with options
+                    del rargs[0]
+                    raise error
+            except:
+                largs.append(arg)
+
+class ManagementUtility(object):
+    """
+    Encapsulates the logic of the django-admin.py and manage.py utilities.
+
+    A ManagementUtility has a number of commands, which can be manipulated
+    by editing the self.commands dictionary.
+    """
+    def __init__(self, argv=None):
+        self.argv = argv or sys.argv[:]
+        self.prog_name = os.path.basename(self.argv[0])
+
+    def main_help_text(self):
+        """
+        Returns the script's main help text, as a string.
+        """
+        usage = ['',"Type '%s help <subcommand>' for help on a specific subcommand." % self.prog_name,'']
+        usage.append('Available subcommands:')
+        commands = get_commands().keys()
+        commands.sort()
+        for cmd in commands:
+            usage.append('  %s' % cmd)
+        return '\n'.join(usage)
+
+    def fetch_command(self, subcommand):
+        """
+        Tries to fetch the given subcommand, printing a message with the
+        appropriate command called from the command line (usually
+        "django-admin.py" or "manage.py") if it can't be found.
+        """
+        try:
+            app_name = get_commands()[subcommand]
+            if isinstance(app_name, BaseCommand):
+                # If the command is already loaded, use it directly.
+                klass = app_name
+            else:
+                klass = load_command_class(app_name, subcommand)
+        except KeyError:
+            sys.stderr.write("Unknown command: %r\nType '%s help' for usage.\n" % \
+                (subcommand, self.prog_name))
+            sys.exit(1)
+        return klass
+
+    def execute(self):
+        """
+        Given the command-line arguments, this figures out which subcommand is
+        being run, creates a parser appropriate to that command, and runs it.
+        """
+        # Preprocess options to extract --settings and --pythonpath.
+        # These options could affect the commands that are available, so they
+        # must be processed early.
+        parser = LaxOptionParser(usage="%prog subcommand [options] [args]",
+                                 version=get_version(), 
+                                 option_list=BaseCommand.option_list)
+        try:
+            options, args = parser.parse_args(self.argv)
+            handle_default_options(options)
+        except:
+            pass # Ignore any option errors at this point.
+
+        try:
+            subcommand = self.argv[1]
+        except IndexError:
+            sys.stderr.write("Type '%s help' for usage.\n" % self.prog_name)
+            sys.exit(1)
+
+        if subcommand == 'help':
+            if len(args) > 2:
+                self.fetch_command(args[2]).print_help(self.prog_name, args[2])
+            else:
+                parser.print_lax_help()
+                sys.stderr.write(self.main_help_text() + '\n')
+                sys.exit(1)
+        # Special-cases: We want 'django-admin.py --version' and
+        # 'django-admin.py --help' to work, for backwards compatibility.
+        elif self.argv[1:] == ['--version']:
+            # LaxOptionParser already takes care of printing the version.
+            pass
+        elif self.argv[1:] == ['--help']:
+            parser.print_lax_help()
+            sys.stderr.write(self.main_help_text() + '\n')
+        else:
+            self.fetch_command(subcommand).run_from_argv(self.argv)
+
+def setup_environ(settings_mod):
+    """
+    Configures the runtime environment. This can also be used by external
+    scripts wanting to set up a similar environment to manage.py.
+    Returns the project directory (assuming the passed settings module is
+    directly in the project directory).
+    """
+    # Add this project to sys.path so that it's importable in the conventional
+    # way. For example, if this file (manage.py) lives in a directory
+    # "myproject", this code would add "/path/to/myproject" to sys.path.
+    project_directory, settings_filename = os.path.split(settings_mod.__file__)
+    if project_directory == os.curdir or not project_directory:
+        project_directory = os.getcwd()
+    project_name = os.path.basename(project_directory)
+    settings_name = os.path.splitext(settings_filename)[0]
+    sys.path.append(os.path.join(project_directory, os.pardir))
+    project_module = __import__(project_name, {}, {}, [''])
+    sys.path.pop()
+
+    # Set DJANGO_SETTINGS_MODULE appropriately.
+    os.environ['DJANGO_SETTINGS_MODULE'] = '%s.%s' % (project_name, settings_name)
+    return project_directory
+
+def execute_from_command_line(argv=None):
+    """
+    A simple method that runs a ManagementUtility.
+    """
+    utility = ManagementUtility(argv)
+    utility.execute()
+
+def execute_manager(settings_mod, argv=None):
+    """
+    Like execute_from_command_line(), but for use by manage.py, a
+    project-specific django-admin.py utility.
+    """
+    setup_environ(settings_mod)
+    utility = ManagementUtility(argv)
+    utility.execute()
diff --git a/webapp/django/core/management/base.py b/webapp/django/core/management/base.py
new file mode 100644
index 0000000..20cc7c0
--- /dev/null
+++ b/webapp/django/core/management/base.py
@@ -0,0 +1,242 @@
+import os
+import sys
+from optparse import make_option, OptionParser
+
+import django
+from django.core.exceptions import ImproperlyConfigured
+from django.core.management.color import color_style
+
+try:
+    set
+except NameError:
+    from sets import Set as set     # For Python 2.3
+
+class CommandError(Exception):
+    pass
+
+def handle_default_options(options):
+    """
+    Include any default options that all commands should accept
+    here so that ManagementUtility can handle them before searching
+    for user commands.
+    """
+    if options.settings:
+        os.environ['DJANGO_SETTINGS_MODULE'] = options.settings
+    if options.pythonpath:
+        sys.path.insert(0, options.pythonpath)
+
+class BaseCommand(object):
+    # Metadata about this command.
+    option_list = (
+        make_option('--settings',
+            help='The Python path to a settings module, e.g. "myproject.settings.main". If this isn\'t provided, the DJANGO_SETTINGS_MODULE environment variable will be used.'),
+        make_option('--pythonpath',
+            help='A directory to add to the Python path, e.g. "/home/djangoprojects/myproject".'),
+        make_option('--traceback', action='store_true',
+            help='Print traceback on exception'),
+    )
+    help = ''
+    args = ''
+
+    # Configuration shortcuts that alter various logic.
+    can_import_settings = True
+    requires_model_validation = True
+    output_transaction = False # Whether to wrap the output in a "BEGIN; COMMIT;"
+
+    def __init__(self):
+        self.style = color_style()
+
+    def get_version(self):
+        """
+        Returns the Django version, which should be correct for all built-in
+        Django commands. User-supplied commands should override this method.
+        """
+        return django.get_version()
+
+    def usage(self, subcommand):
+        usage = '%%prog %s [options] %s' % (subcommand, self.args)
+        if self.help:
+            return '%s\n\n%s' % (usage, self.help)
+        else:
+            return usage
+
+    def create_parser(self, prog_name, subcommand):
+        return OptionParser(prog=prog_name,
+                            usage=self.usage(subcommand),
+                            version=self.get_version(),
+                            option_list=self.option_list)
+
+    def print_help(self, prog_name, subcommand):
+        parser = self.create_parser(prog_name, subcommand)
+        parser.print_help()
+
+    def run_from_argv(self, argv):
+        parser = self.create_parser(argv[0], argv[1])
+        options, args = parser.parse_args(argv[2:])
+        handle_default_options(options)
+        self.execute(*args, **options.__dict__)
+
+    def execute(self, *args, **options):
+        # Switch to English, because django-admin.py creates database content
+        # like permissions, and those shouldn't contain any translations.
+        # But only do this if we can assume we have a working settings file,
+        # because django.utils.translation requires settings.
+        if self.can_import_settings:
+            try:
+                from django.utils import translation
+                translation.activate('en-us')
+            except ImportError, e:
+                # If settings should be available, but aren't, 
+                # raise the error and quit.
+                sys.stderr.write(self.style.ERROR(str('Error: %s\n' % e)))
+                sys.exit(1)
+        try:
+            if self.requires_model_validation:
+                self.validate()
+            output = self.handle(*args, **options)
+            if output:
+                if self.output_transaction:
+                    # This needs to be imported here, because it relies on settings.
+                    from django.db import connection
+                    if connection.ops.start_transaction_sql():
+                        print self.style.SQL_KEYWORD(connection.ops.start_transaction_sql())
+                print output
+                if self.output_transaction:
+                    print self.style.SQL_KEYWORD("COMMIT;")
+        except CommandError, e:
+            sys.stderr.write(self.style.ERROR(str('Error: %s\n' % e)))
+            sys.exit(1)
+
+    def validate(self, app=None, display_num_errors=False):
+        """
+        Validates the given app, raising CommandError for any errors.
+
+        If app is None, then this will validate all installed apps.
+        """
+        from django.core.management.validation import get_validation_errors
+        try:
+            from cStringIO import StringIO
+        except ImportError:
+            from StringIO import StringIO
+        s = StringIO()
+        num_errors = get_validation_errors(s, app)
+        if num_errors:
+            s.seek(0)
+            error_text = s.read()
+            raise CommandError("One or more models did not validate:\n%s" % error_text)
+        if display_num_errors:
+            print "%s error%s found" % (num_errors, num_errors != 1 and 's' or '')
+
+    def handle(self, *args, **options):
+        raise NotImplementedError()
+
+class AppCommand(BaseCommand):
+    args = '<appname appname ...>'
+
+    def handle(self, *app_labels, **options):
+        from django.db import models
+        if not app_labels:
+            raise CommandError('Enter at least one appname.')
+        try:
+            app_list = [models.get_app(app_label) for app_label in app_labels]
+        except (ImproperlyConfigured, ImportError), e:
+            raise CommandError("%s. Are you sure your INSTALLED_APPS setting is correct?" % e)
+        output = []
+        for app in app_list:
+            app_output = self.handle_app(app, **options)
+            if app_output:
+                output.append(app_output)
+        return '\n'.join(output)
+
+    def handle_app(self, app, **options):
+        raise NotImplementedError()
+
+class LabelCommand(BaseCommand):
+    args = '<label label ...>'
+    label = 'label'
+
+    def handle(self, *labels, **options):
+        if not labels:
+            raise CommandError('Enter at least one %s.' % self.label)
+
+        output = []
+        for label in labels:
+            label_output = self.handle_label(label, **options)
+            if label_output:
+                output.append(label_output)
+        return '\n'.join(output)
+
+    def handle_label(self, label, **options):
+        raise NotImplementedError()
+
+class NoArgsCommand(BaseCommand):
+    args = ''
+
+    def handle(self, *args, **options):
+        if args:
+            raise CommandError("Command doesn't accept any arguments")
+        return self.handle_noargs(**options)
+
+    def handle_noargs(self, **options):
+        raise NotImplementedError()
+
+def copy_helper(style, app_or_project, name, directory, other_name=''):
+    """
+    Copies either a Django application layout template or a Django project
+    layout template into the specified directory.
+    """
+    # style -- A color style object (see django.core.management.color).
+    # app_or_project -- The string 'app' or 'project'.
+    # name -- The name of the application or project.
+    # directory -- The directory to which the layout template should be copied.
+    # other_name -- When copying an application layout, this should be the name
+    #               of the project.
+    import re
+    import shutil
+    other = {'project': 'app', 'app': 'project'}[app_or_project]
+    if not re.search(r'^\w+$', name): # If it's not a valid directory name.
+        raise CommandError("%r is not a valid %s name. Please use only numbers, letters and underscores." % (name, app_or_project))
+    top_dir = os.path.join(directory, name)
+    try:
+        os.mkdir(top_dir)
+    except OSError, e:
+        raise CommandError(e)
+
+    # Determine where the app or project templates are. Use
+    # django.__path__[0] because we don't know into which directory
+    # django has been installed.
+    template_dir = os.path.join(django.__path__[0], 'conf', '%s_template' % app_or_project)
+
+    for d, subdirs, files in os.walk(template_dir):
+        relative_dir = d[len(template_dir)+1:].replace('%s_name' % app_or_project, name)
+        if relative_dir:
+            os.mkdir(os.path.join(top_dir, relative_dir))
+        for i, subdir in enumerate(subdirs):
+            if subdir.startswith('.'):
+                del subdirs[i]
+        for f in files:
+            if f.endswith('.pyc'):
+                continue
+            path_old = os.path.join(d, f)
+            path_new = os.path.join(top_dir, relative_dir, f.replace('%s_name' % app_or_project, name))
+            fp_old = open(path_old, 'r')
+            fp_new = open(path_new, 'w')
+            fp_new.write(fp_old.read().replace('{{ %s_name }}' % app_or_project, name).replace('{{ %s_name }}' % other, other_name))
+            fp_old.close()
+            fp_new.close()
+            try:
+                shutil.copymode(path_old, path_new)
+                _make_writeable(path_new)
+            except OSError:
+                sys.stderr.write(style.NOTICE("Notice: Couldn't set permission bits on %s. You're probably using an uncommon filesystem setup. No problem.\n" % path_new))
+
+def _make_writeable(filename):
+    "Makes sure that the file is writeable. Useful if our source is read-only."
+    import stat
+    if sys.platform.startswith('java'):
+        # On Jython there is no os.access()
+        return
+    if not os.access(filename, os.W_OK):
+        st = os.stat(filename)
+        new_permissions = stat.S_IMODE(st.st_mode) | stat.S_IWUSR
+        os.chmod(filename, new_permissions)
diff --git a/webapp/django/core/management/color.py b/webapp/django/core/management/color.py
new file mode 100644
index 0000000..f5e3939
--- /dev/null
+++ b/webapp/django/core/management/color.py
@@ -0,0 +1,41 @@
+"""
+Sets up the terminal color scheme.
+"""
+
+import sys
+
+from django.utils import termcolors
+
+def supports_color():
+    """
+    Returns True if the running system's terminal supports color, and False
+    otherwise.
+    """
+    unsupported_platform = (sys.platform in ('win32', 'Pocket PC'))
+    # isatty is not always implemented, #6223.
+    is_a_tty = hasattr(sys.stdout, 'isatty') and sys.stdout.isatty()
+    if unsupported_platform or not is_a_tty:
+        return False
+    return True
+
+def color_style():
+    """Returns a Style object with the Django color scheme."""
+    if not supports_color():
+        return no_style()
+    class dummy: pass
+    style = dummy()
+    style.ERROR = termcolors.make_style(fg='red', opts=('bold',))
+    style.ERROR_OUTPUT = termcolors.make_style(fg='red', opts=('bold',))
+    style.NOTICE = termcolors.make_style(fg='red')
+    style.SQL_FIELD = termcolors.make_style(fg='green', opts=('bold',))
+    style.SQL_COLTYPE = termcolors.make_style(fg='green')
+    style.SQL_KEYWORD = termcolors.make_style(fg='yellow')
+    style.SQL_TABLE = termcolors.make_style(opts=('bold',))
+    return style
+
+def no_style():
+    """Returns a Style object that has no colors."""
+    class dummy:
+        def __getattr__(self, attr):
+            return lambda x: x
+    return dummy()
diff --git a/webapp/django/core/management/commands/__init__.py b/webapp/django/core/management/commands/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/core/management/commands/__init__.py
diff --git a/webapp/django/core/management/commands/adminindex.py b/webapp/django/core/management/commands/adminindex.py
new file mode 100644
index 0000000..4f38913
--- /dev/null
+++ b/webapp/django/core/management/commands/adminindex.py
@@ -0,0 +1,34 @@
+from django.core.management.base import AppCommand
+from django.utils.encoding import force_unicode
+from django.utils.text import capfirst
+
+MODULE_TEMPLATE = '''    {%% if perms.%(app)s.%(addperm)s or perms.%(app)s.%(changeperm)s %%}
+    <tr>
+        <th>{%% if perms.%(app)s.%(changeperm)s %%}<a href="%(app)s/%(mod)s/">{%% endif %%}%(name)s{%% if perms.%(app)s.%(changeperm)s %%}</a>{%% endif %%}</th>
+        <td class="x50">{%% if perms.%(app)s.%(addperm)s %%}<a href="%(app)s/%(mod)s/add/" class="addlink">{%% endif %%}Add{%% if perms.%(app)s.%(addperm)s %%}</a>{%% endif %%}</td>
+        <td class="x75">{%% if perms.%(app)s.%(changeperm)s %%}<a href="%(app)s/%(mod)s/" class="changelink">{%% endif %%}Change{%% if perms.%(app)s.%(changeperm)s %%}</a>{%% endif %%}</td>
+    </tr>
+    {%% endif %%}'''
+
+class Command(AppCommand):
+    help = 'Prints the admin-index template snippet for the given app name(s).'
+
+    def handle_app(self, app, **options):
+        from django.db.models import get_models
+        output = []
+        app_models = get_models(app)
+        app_label = app_models[0]._meta.app_label
+        output.append('{%% if perms.%s %%}' % app_label)
+        output.append('<div class="module"><h2>%s</h2><table>' % app_label.title())
+        for model in app_models:
+            if model._meta.admin:
+                output.append(MODULE_TEMPLATE % {
+                    'app': app_label,
+                    'mod': model._meta.module_name,
+                    'name': force_unicode(capfirst(model._meta.verbose_name_plural)),
+                    'addperm': model._meta.get_add_permission(),
+                    'changeperm': model._meta.get_change_permission(),
+                })
+        output.append('</table></div>')
+        output.append('{% endif %}')
+        return '\n'.join(output)
diff --git a/webapp/django/core/management/commands/cleanup.py b/webapp/django/core/management/commands/cleanup.py
new file mode 100644
index 0000000..a5c932b
--- /dev/null
+++ b/webapp/django/core/management/commands/cleanup.py
@@ -0,0 +1,11 @@
+import datetime
+from django.core.management.base import NoArgsCommand
+
+class Command(NoArgsCommand):
+    help = "Can be run as a cronjob or directly to clean out old data from the database (only expired sessions at the moment)."
+
+    def handle_noargs(self, **options):
+        from django.db import transaction
+        from django.contrib.sessions.models import Session
+        Session.objects.filter(expire_date__lt=datetime.datetime.now()).delete()
+        transaction.commit_unless_managed()
diff --git a/webapp/django/core/management/commands/compilemessages.py b/webapp/django/core/management/commands/compilemessages.py
new file mode 100644
index 0000000..d1f1647
--- /dev/null
+++ b/webapp/django/core/management/commands/compilemessages.py
@@ -0,0 +1,57 @@
+import os
+import sys
+from optparse import make_option
+from django.core.management.base import BaseCommand, CommandError
+
+try:
+    set
+except NameError:
+    from sets import Set as set     # For Python 2.3
+
+def compile_messages(locale=None):
+    basedirs = [os.path.join('conf', 'locale'), 'locale']
+    if os.environ.get('DJANGO_SETTINGS_MODULE'):
+        from django.conf import settings
+        basedirs.extend(settings.LOCALE_PATHS)
+
+    # Gather existing directories.
+    basedirs = set(map(os.path.abspath, filter(os.path.isdir, basedirs)))
+
+    if not basedirs:
+        raise CommandError("This script should be run from the Django SVN tree or your project or app tree, or with the settings module specified.")
+
+    for basedir in basedirs:
+        if locale:
+            basedir = os.path.join(basedir, locale, 'LC_MESSAGES')
+        for dirpath, dirnames, filenames in os.walk(basedir):
+            for f in filenames:
+                if f.endswith('.po'):
+                    sys.stderr.write('processing file %s in %s\n' % (f, dirpath))
+                    pf = os.path.splitext(os.path.join(dirpath, f))[0]
+                    # Store the names of the .mo and .po files in an environment
+                    # variable, rather than doing a string replacement into the
+                    # command, so that we can take advantage of shell quoting, to
+                    # quote any malicious characters/escaping.
+                    # See http://cyberelk.net/tim/articles/cmdline/ar01s02.html
+                    os.environ['djangocompilemo'] = pf + '.mo'
+                    os.environ['djangocompilepo'] = pf + '.po'
+                    if sys.platform == 'win32': # Different shell-variable syntax
+                        cmd = 'msgfmt --check-format -o "%djangocompilemo%" "%djangocompilepo%"'
+                    else:
+                        cmd = 'msgfmt --check-format -o "$djangocompilemo" "$djangocompilepo"'
+                    os.system(cmd)
+
+
+class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--locale', '-l', dest='locale',
+            help='The locale to process. Default is to process all.'),
+    )
+    help = 'Compiles .po files to .mo files for use with builtin gettext support.'
+
+    requires_model_validation = False
+    can_import_settings = False
+
+    def handle(self, **options):
+        locale = options.get('locale')
+        compile_messages(locale)
diff --git a/webapp/django/core/management/commands/createcachetable.py b/webapp/django/core/management/commands/createcachetable.py
new file mode 100644
index 0000000..098bca7
--- /dev/null
+++ b/webapp/django/core/management/commands/createcachetable.py
@@ -0,0 +1,42 @@
+from django.core.management.base import LabelCommand
+
+class Command(LabelCommand):
+    help = "Creates the table needed to use the SQL cache backend."
+    args = "<tablename>"
+    label = 'tablename'
+
+    requires_model_validation = False
+
+    def handle_label(self, tablename, **options):
+        from django.db import connection, transaction, models
+        fields = (
+            # "key" is a reserved word in MySQL, so use "cache_key" instead.
+            models.CharField(name='cache_key', max_length=255, unique=True, primary_key=True),
+            models.TextField(name='value'),
+            models.DateTimeField(name='expires', db_index=True),
+        )
+        table_output = []
+        index_output = []
+        qn = connection.ops.quote_name
+        for f in fields:
+            field_output = [qn(f.name), f.db_type()]
+            field_output.append("%sNULL" % (not f.null and "NOT " or ""))
+            if f.primary_key:
+                field_output.append("PRIMARY KEY")
+            elif f.unique:
+                field_output.append("UNIQUE")
+            if f.db_index:
+                unique = f.unique and "UNIQUE " or ""
+                index_output.append("CREATE %sINDEX %s_%s ON %s (%s);" % \
+                    (unique, tablename, f.name, qn(tablename),
+                    qn(f.name)))
+            table_output.append(" ".join(field_output))
+        full_statement = ["CREATE TABLE %s (" % qn(tablename)]
+        for i, line in enumerate(table_output):
+            full_statement.append('    %s%s' % (line, i < len(table_output)-1 and ',' or ''))
+        full_statement.append(');')
+        curs = connection.cursor()
+        curs.execute("\n".join(full_statement))
+        for statement in index_output:
+            curs.execute(statement)
+        transaction.commit_unless_managed()
diff --git a/webapp/django/core/management/commands/dbshell.py b/webapp/django/core/management/commands/dbshell.py
new file mode 100644
index 0000000..18faa6a
--- /dev/null
+++ b/webapp/django/core/management/commands/dbshell.py
@@ -0,0 +1,10 @@
+from django.core.management.base import NoArgsCommand
+
+class Command(NoArgsCommand):
+    help = "Runs the command-line client for the current DATABASE_ENGINE."
+
+    requires_model_validation = False
+
+    def handle_noargs(self, **options):
+        from django.db import connection
+        connection.client.runshell()
diff --git a/webapp/django/core/management/commands/diffsettings.py b/webapp/django/core/management/commands/diffsettings.py
new file mode 100644
index 0000000..2459f11
--- /dev/null
+++ b/webapp/django/core/management/commands/diffsettings.py
@@ -0,0 +1,32 @@
+from django.core.management.base import NoArgsCommand
+
+def module_to_dict(module, omittable=lambda k: k.startswith('_')):
+    "Converts a module namespace to a Python dictionary. Used by get_settings_diff."
+    return dict([(k, repr(v)) for k, v in module.__dict__.items() if not omittable(k)])
+
+class Command(NoArgsCommand):
+    help = """Displays differences between the current settings.py and Django's
+    default settings. Settings that don't appear in the defaults are
+    followed by "###"."""
+
+    requires_model_validation = False
+
+    def handle_noargs(self, **options):
+        # Inspired by Postfix's "postconf -n".
+        from django.conf import settings, global_settings
+
+        # Because settings are imported lazily, we need to explicitly load them.
+        settings._import_settings()
+
+        user_settings = module_to_dict(settings._target)
+        default_settings = module_to_dict(global_settings)
+
+        output = []
+        keys = user_settings.keys()
+        keys.sort()
+        for key in keys:
+            if key not in default_settings:
+                output.append("%s = %s  ###" % (key, user_settings[key]))
+            elif user_settings[key] != default_settings[key]:
+                output.append("%s = %s" % (key, user_settings[key]))
+        print '\n'.join(output)
diff --git a/webapp/django/core/management/commands/dumpdata.py b/webapp/django/core/management/commands/dumpdata.py
new file mode 100644
index 0000000..2559d57
--- /dev/null
+++ b/webapp/django/core/management/commands/dumpdata.py
@@ -0,0 +1,52 @@
+from django.core.management.base import BaseCommand, CommandError
+from django.core import serializers
+
+from optparse import make_option
+
+class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--format', default='json', dest='format',
+            help='Specifies the output serialization format for fixtures.'),
+        make_option('--indent', default=None, dest='indent', type='int',
+            help='Specifies the indent level to use when pretty-printing output'),
+        make_option('-e', '--exclude', dest='exclude',action='append', default=[], 
+            help='App to exclude (use multiple --exclude to exclude multiple apps).'),
+    )
+    help = 'Output the contents of the database as a fixture of the given format.'
+    args = '[appname ...]'
+
+    def handle(self, *app_labels, **options):
+        from django.db.models import get_app, get_apps, get_models
+
+        format = options.get('format','json')
+        indent = options.get('indent',None)
+        exclude = options.get('exclude',[])
+        show_traceback = options.get('traceback', False)
+
+        excluded_apps = [get_app(app_label) for app_label in exclude]
+
+        if len(app_labels) == 0:
+            app_list = [app for app in get_apps() if app not in excluded_apps]
+        else:
+            app_list = [get_app(app_label) for app_label in app_labels]
+
+        # Check that the serialization format exists; this is a shortcut to
+        # avoid collating all the objects and _then_ failing.
+        if format not in serializers.get_public_serializer_formats():
+            raise CommandError("Unknown serialization format: %s" % format)
+
+        try:
+            serializers.get_serializer(format)
+        except KeyError:
+            raise CommandError("Unknown serialization format: %s" % format)
+
+        objects = []
+        for app in app_list:
+            for model in get_models(app):
+                objects.extend(model._default_manager.all())
+        try:
+            return serializers.serialize(format, objects, indent=indent)
+        except Exception, e:
+            if show_traceback:
+                raise
+            raise CommandError("Unable to serialize database: %s" % e)
diff --git a/webapp/django/core/management/commands/flush.py b/webapp/django/core/management/commands/flush.py
new file mode 100644
index 0000000..51d5034
--- /dev/null
+++ b/webapp/django/core/management/commands/flush.py
@@ -0,0 +1,70 @@
+from django.core.management.base import NoArgsCommand, CommandError
+from django.core.management.color import no_style
+from optparse import make_option
+
+class Command(NoArgsCommand):
+    option_list = NoArgsCommand.option_list + (
+        make_option('--verbosity', action='store', dest='verbosity', default='1',
+            type='choice', choices=['0', '1', '2'],
+            help='Verbosity level; 0=minimal output, 1=normal output, 2=all output'),
+        make_option('--noinput', action='store_false', dest='interactive', default=True,
+            help='Tells Django to NOT prompt the user for input of any kind.'),
+    )
+    help = "Executes ``sqlflush`` on the current database."
+
+    def handle_noargs(self, **options):
+        from django.conf import settings
+        from django.db import connection, transaction, models
+        from django.core.management.sql import sql_flush, emit_post_sync_signal
+
+        verbosity = int(options.get('verbosity', 1))
+        interactive = options.get('interactive')
+
+        self.style = no_style()
+
+        # Import the 'management' module within each installed app, to register
+        # dispatcher events.
+        for app_name in settings.INSTALLED_APPS:
+            try:
+                __import__(app_name + '.management', {}, {}, [''])
+            except ImportError:
+                pass
+
+        sql_list = sql_flush(self.style, only_django=True)
+
+        if interactive:
+            confirm = raw_input("""You have requested a flush of the database.
+This will IRREVERSIBLY DESTROY all data currently in the %r database,
+and return each table to the state it was in after syncdb.
+Are you sure you want to do this?
+
+    Type 'yes' to continue, or 'no' to cancel: """ % settings.DATABASE_NAME)
+        else:
+            confirm = 'yes'
+
+        if confirm == 'yes':
+            try:
+                cursor = connection.cursor()
+                for sql in sql_list:
+                    cursor.execute(sql)
+            except Exception, e:
+                transaction.rollback_unless_managed()
+                raise CommandError("""Database %s couldn't be flushed. Possible reasons:
+      * The database isn't running or isn't configured correctly.
+      * At least one of the expected database tables doesn't exist.
+      * The SQL was invalid.
+    Hint: Look at the output of 'django-admin.py sqlflush'. That's the SQL this command wasn't able to run.
+    The full error: %s""" % (settings.DATABASE_NAME, e))
+            transaction.commit_unless_managed()
+
+            # Emit the post sync signal. This allows individual
+            # applications to respond as if the database had been
+            # sync'd from scratch.
+            emit_post_sync_signal(models.get_models(), verbosity, interactive)
+
+            # Reinstall the initial_data fixture.
+            from django.core.management import call_command
+            call_command('loaddata', 'initial_data', **options)
+
+        else:
+            print "Flush cancelled."
diff --git a/webapp/django/core/management/commands/inspectdb.py b/webapp/django/core/management/commands/inspectdb.py
new file mode 100644
index 0000000..6e84ed6
--- /dev/null
+++ b/webapp/django/core/management/commands/inspectdb.py
@@ -0,0 +1,125 @@
+from django.core.management.base import NoArgsCommand, CommandError
+
+class Command(NoArgsCommand):
+    help = "Introspects the database tables in the given database and outputs a Django model module."
+
+    requires_model_validation = False
+
+    def handle_noargs(self, **options):
+        try:
+            for line in self.handle_inspection():
+                print line
+        except NotImplementedError:
+            raise CommandError("Database inspection isn't supported for the currently selected database backend.")
+
+    def handle_inspection(self):
+        from django.db import connection
+        import keyword
+
+        table2model = lambda table_name: table_name.title().replace('_', '').replace(' ', '').replace('-', '')
+
+        cursor = connection.cursor()
+        yield "# This is an auto-generated Django model module."
+        yield "# You'll have to do the following manually to clean this up:"
+        yield "#     * Rearrange models' order"
+        yield "#     * Make sure each model has one field with primary_key=True"
+        yield "# Feel free to rename the models, but don't rename db_table values or field names."
+        yield "#"
+        yield "# Also note: You'll have to insert the output of 'django-admin.py sqlcustom [appname]'"
+        yield "# into your database."
+        yield ''
+        yield 'from django.db import models'
+        yield ''
+        for table_name in connection.introspection.get_table_list(cursor):
+            yield 'class %s(models.Model):' % table2model(table_name)
+            try:
+                relations = connection.introspection.get_relations(cursor, table_name)
+            except NotImplementedError:
+                relations = {}
+            try:
+                indexes = connection.introspection.get_indexes(cursor, table_name)
+            except NotImplementedError:
+                indexes = {}
+            for i, row in enumerate(connection.introspection.get_table_description(cursor, table_name)):
+                att_name = row[0].lower()
+                comment_notes = [] # Holds Field notes, to be displayed in a Python comment.
+                extra_params = {}  # Holds Field parameters such as 'db_column'.
+
+                # If we need to do field name modifiations, 
+                # remember the original field name
+                if ' ' in att_name or '-' in att_name or keyword.iskeyword(att_name):
+                    extra_params['db_column'] = att_name
+                  
+                # Now modify the field name to make it python compatible.  
+                if ' ' in att_name:
+                    att_name = att_name.replace(' ', '_')
+                    comment_notes.append('Field renamed to remove spaces.')
+                if '-' in att_name:
+                    att_name = att_name.replace('-', '_')
+                    comment_notes.append('Field renamed to remove dashes.')
+                if keyword.iskeyword(att_name):
+                    att_name += '_field'
+                    comment_notes.append('Field renamed because it was a Python reserved word.')
+
+                if i in relations:
+                    rel_to = relations[i][1] == table_name and "'self'" or table2model(relations[i][1])
+                    field_type = 'ForeignKey(%s' % rel_to
+                    if att_name.endswith('_id'):
+                        att_name = att_name[:-3]
+                    else:
+                        extra_params['db_column'] = att_name
+                else:
+                    try:
+                        field_type = connection.introspection.data_types_reverse[row[1]]
+                    except KeyError:
+                        field_type = 'TextField'
+                        comment_notes.append('This field type is a guess.')
+
+                    # This is a hook for DATA_TYPES_REVERSE to return a tuple of
+                    # (field_type, extra_params_dict).
+                    if type(field_type) is tuple:
+                        field_type, new_params = field_type
+                        extra_params.update(new_params)
+
+                    # Add max_length for all CharFields.
+                    if field_type == 'CharField' and row[3]:
+                        extra_params['max_length'] = row[3]
+
+                    if field_type == 'DecimalField':
+                        extra_params['max_digits'] = row[4]
+                        extra_params['decimal_places'] = row[5]
+
+                    # Add primary_key and unique, if necessary.
+                    column_name = extra_params.get('db_column', att_name)
+                    if column_name in indexes:
+                        if indexes[column_name]['primary_key']:
+                            extra_params['primary_key'] = True
+                        elif indexes[column_name]['unique']:
+                            extra_params['unique'] = True
+
+                    field_type += '('
+
+                # Don't output 'id = meta.AutoField(primary_key=True)', because
+                # that's assumed if it doesn't exist.
+                if att_name == 'id' and field_type == 'AutoField(' and extra_params == {'primary_key': True}:
+                    continue
+
+                # Add 'null' and 'blank', if the 'null_ok' flag was present in the
+                # table description.
+                if row[6]: # If it's NULL...
+                    extra_params['blank'] = True
+                    if not field_type in ('TextField(', 'CharField('):
+                        extra_params['null'] = True
+
+                field_desc = '%s = models.%s' % (att_name, field_type)
+                if extra_params:
+                    if not field_desc.endswith('('):
+                        field_desc += ', '
+                    field_desc += ', '.join(['%s=%r' % (k, v) for k, v in extra_params.items()])
+                field_desc += ')'
+                if comment_notes:
+                    field_desc += ' # ' + ' '.join(comment_notes)
+                yield '    %s' % field_desc
+            yield '    class Meta:'
+            yield '        db_table = %r' % table_name
+            yield ''
diff --git a/webapp/django/core/management/commands/loaddata.py b/webapp/django/core/management/commands/loaddata.py
new file mode 100644
index 0000000..c69eeb9
--- /dev/null
+++ b/webapp/django/core/management/commands/loaddata.py
@@ -0,0 +1,181 @@
+from django.core.management.base import BaseCommand
+from django.core.management.color import no_style
+from optparse import make_option
+import sys
+import os
+
+try:
+    set
+except NameError:
+    from sets import Set as set   # Python 2.3 fallback
+
+class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--verbosity', action='store', dest='verbosity', default='1',
+            type='choice', choices=['0', '1', '2'],
+            help='Verbosity level; 0=minimal output, 1=normal output, 2=all output'),
+    )
+    help = 'Installs the named fixture(s) in the database.'
+    args = "fixture [fixture ...]"
+
+    def handle(self, *fixture_labels, **options):
+        from django.db.models import get_apps
+        from django.core import serializers
+        from django.db import connection, transaction
+        from django.conf import settings
+
+        self.style = no_style()
+
+        verbosity = int(options.get('verbosity', 1))
+        show_traceback = options.get('traceback', False)
+        
+        # commit is a stealth option - it isn't really useful as 
+        # a command line option, but it can be useful when invoking
+        # loaddata from within another script. 
+        # If commit=True, loaddata will use its own transaction;
+        # if commit=False, the data load SQL will become part of
+        # the transaction in place when loaddata was invoked.
+        commit = options.get('commit', True)
+        
+        # Keep a count of the installed objects and fixtures
+        fixture_count = 0
+        object_count = 0
+        objects_per_fixture = []
+        models = set()
+
+        humanize = lambda dirname: dirname and "'%s'" % dirname or 'absolute path'
+
+        # Get a cursor (even though we don't need one yet). This has
+        # the side effect of initializing the test database (if
+        # it isn't already initialized).
+        cursor = connection.cursor()
+
+        # Start transaction management. All fixtures are installed in a
+        # single transaction to ensure that all references are resolved.
+        if commit:
+            transaction.commit_unless_managed()
+            transaction.enter_transaction_management()
+            transaction.managed(True)
+
+        app_fixtures = [os.path.join(os.path.dirname(app.__file__), 'fixtures') for app in get_apps()]
+        for fixture_label in fixture_labels:
+            parts = fixture_label.split('.')
+            if len(parts) == 1:
+                fixture_name = fixture_label
+                formats = serializers.get_public_serializer_formats()
+            else:
+                fixture_name, format = '.'.join(parts[:-1]), parts[-1]
+                if format in serializers.get_public_serializer_formats():
+                    formats = [format]
+                else:
+                    formats = []
+
+            if formats:
+                if verbosity > 1:
+                    print "Loading '%s' fixtures..." % fixture_name
+            else:
+                sys.stderr.write(
+                    self.style.ERROR("Problem installing fixture '%s': %s is not a known serialization format." %
+                        (fixture_name, format)))
+                transaction.rollback()
+                transaction.leave_transaction_management()
+                return
+
+            if os.path.isabs(fixture_name):
+                fixture_dirs = [fixture_name]
+            else:
+                fixture_dirs = app_fixtures + list(settings.FIXTURE_DIRS) + ['']
+
+            for fixture_dir in fixture_dirs:
+                if verbosity > 1:
+                    print "Checking %s for fixtures..." % humanize(fixture_dir)
+
+                label_found = False
+                for format in formats:
+                    serializer = serializers.get_serializer(format)
+                    if verbosity > 1:
+                        print "Trying %s for %s fixture '%s'..." % \
+                            (humanize(fixture_dir), format, fixture_name)
+                    try:
+                        full_path = os.path.join(fixture_dir, '.'.join([fixture_name, format]))
+                        fixture = open(full_path, 'r')
+                        if label_found:
+                            fixture.close()
+                            print self.style.ERROR("Multiple fixtures named '%s' in %s. Aborting." %
+                                (fixture_name, humanize(fixture_dir)))
+                            transaction.rollback()
+                            transaction.leave_transaction_management()
+                            return
+                        else:
+                            fixture_count += 1
+                            objects_per_fixture.append(0)
+                            if verbosity > 0:
+                                print "Installing %s fixture '%s' from %s." % \
+                                    (format, fixture_name, humanize(fixture_dir))
+                            try:
+                                objects = serializers.deserialize(format, fixture)
+                                for obj in objects:
+                                    object_count += 1
+                                    objects_per_fixture[-1] += 1
+                                    models.add(obj.object.__class__)
+                                    obj.save()
+                                label_found = True
+                            except (SystemExit, KeyboardInterrupt):
+                                raise
+                            except Exception:
+                                import traceback
+                                fixture.close()
+                                transaction.rollback()
+                                transaction.leave_transaction_management()
+                                if show_traceback:
+                                    import traceback
+                                    traceback.print_exc()
+                                else:
+                                    sys.stderr.write(
+                                        self.style.ERROR("Problem installing fixture '%s': %s\n" %
+                                             (full_path, traceback.format_exc())))
+                                return
+                            fixture.close()
+                    except:
+                        if verbosity > 1:
+                            print "No %s fixture '%s' in %s." % \
+                                (format, fixture_name, humanize(fixture_dir))
+
+
+        # If any of the fixtures we loaded contain 0 objects, assume that an
+        # error was encountered during fixture loading.
+        if 0 in objects_per_fixture:
+            sys.stderr.write(
+                self.style.ERROR("No fixture data found for '%s'. (File format may be invalid.)" %
+                    (fixture_name)))
+            transaction.rollback()
+            transaction.leave_transaction_management()
+            return
+            
+        # If we found even one object in a fixture, we need to reset the
+        # database sequences.
+        if object_count > 0:
+            sequence_sql = connection.ops.sequence_reset_sql(self.style, models)
+            if sequence_sql:
+                if verbosity > 1:
+                    print "Resetting sequences"
+                for line in sequence_sql:
+                    cursor.execute(line)
+        
+        if commit:
+            transaction.commit()
+            transaction.leave_transaction_management()
+
+        if object_count == 0:
+            if verbosity > 1:
+                print "No fixtures found."
+        else:
+            if verbosity > 0:
+                print "Installed %d object(s) from %d fixture(s)" % (object_count, fixture_count)
+                
+        # Close the DB connection. This is required as a workaround for an
+        # edge case in MySQL: if the same connection is used to
+        # create tables, load data, and query, the query can return
+        # incorrect results. See Django #7572, MySQL #37735.
+        if commit:
+            connection.close()
diff --git a/webapp/django/core/management/commands/makemessages.py b/webapp/django/core/management/commands/makemessages.py
new file mode 100644
index 0000000..aaa99ee
--- /dev/null
+++ b/webapp/django/core/management/commands/makemessages.py
@@ -0,0 +1,205 @@
+import re
+import os
+import sys
+from itertools import dropwhile
+from optparse import make_option
+from django.core.management.base import CommandError, BaseCommand
+
+try:
+    set
+except NameError:
+    from sets import Set as set     # For Python 2.3
+
+pythonize_re = re.compile(r'\n\s*//')
+
+def handle_extensions(extensions=('html',)):
+    """
+    organizes multiple extensions that are separated with commas or passed by
+    using --extension/-e multiple times.
+
+    for example: running 'django-admin makemessages -e js,txt -e xhtml -a'
+    would result in a extension list: ['.js', '.txt', '.xhtml']
+
+    >>> handle_extensions(['.html', 'html,js,py,py,py,.py', 'py,.py'])
+    ['.html', '.js']
+    >>> handle_extensions(['.html, txt,.tpl'])
+    ['.html', '.tpl', '.txt']
+    """
+    ext_list = []
+    for ext in extensions:
+        ext_list.extend(ext.replace(' ','').split(','))
+    for i, ext in enumerate(ext_list):
+        if not ext.startswith('.'):
+            ext_list[i] = '.%s' % ext_list[i]
+
+    # we don't want *.py files here because of the way non-*.py files
+    # are handled in make_messages() (they are copied to file.ext.py files to
+    # trick xgettext to parse them as Python files)
+    return set([x for x in ext_list if x != '.py'])
+
+def make_messages(locale=None, domain='django', verbosity='1', all=False, extensions=None):
+    """
+    Uses the locale directory from the Django SVN tree or an application/
+    project to process all
+    """
+    # Need to ensure that the i18n framework is enabled
+    from django.conf import settings
+    if settings.configured:
+        settings.USE_I18N = True
+    else:
+        settings.configure(USE_I18N = True)
+
+    from django.utils.translation import templatize
+
+    if os.path.isdir(os.path.join('conf', 'locale')):
+        localedir = os.path.abspath(os.path.join('conf', 'locale'))
+    elif os.path.isdir('locale'):
+        localedir = os.path.abspath('locale')
+    else:
+        raise CommandError("This script should be run from the Django SVN tree or your project or app tree. If you did indeed run it from the SVN checkout or your project or application, maybe you are just missing the conf/locale (in the django tree) or locale (for project and application) directory? It is not created automatically, you have to create it by hand if you want to enable i18n for your project or application.")
+
+    if domain not in ('django', 'djangojs'):
+        raise CommandError("currently makemessages only supports domains 'django' and 'djangojs'")
+
+    if (locale is None and not all) or domain is None:
+        # backwards compatible error message
+        if not sys.argv[0].endswith("make-messages.py"):
+            message = "Type '%s help %s' for usage.\n" % (os.path.basename(sys.argv[0]), sys.argv[1])
+        else:
+            message = "usage: make-messages.py -l <language>\n   or: make-messages.py -a\n"
+        raise CommandError(message)
+
+    languages = []
+    if locale is not None:
+        languages.append(locale)
+    elif all:
+        languages = [el for el in os.listdir(localedir) if not el.startswith('.')]
+
+    for locale in languages:
+        if verbosity > 0:
+            print "processing language", locale
+        basedir = os.path.join(localedir, locale, 'LC_MESSAGES')
+        if not os.path.isdir(basedir):
+            os.makedirs(basedir)
+
+        pofile = os.path.join(basedir, '%s.po' % domain)
+        potfile = os.path.join(basedir, '%s.pot' % domain)
+
+        if os.path.exists(potfile):
+            os.unlink(potfile)
+
+        all_files = []
+        for (dirpath, dirnames, filenames) in os.walk("."):
+            all_files.extend([(dirpath, f) for f in filenames])
+        all_files.sort()
+        for dirpath, file in all_files:
+            file_base, file_ext = os.path.splitext(file)
+            if domain == 'djangojs' and file_ext == '.js':
+                if verbosity > 1:
+                    sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
+                src = open(os.path.join(dirpath, file), "rb").read()
+                src = pythonize_re.sub('\n#', src)
+                open(os.path.join(dirpath, '%s.py' % file), "wb").write(src)
+                thefile = '%s.py' % file
+                cmd = 'xgettext -d %s -L Perl --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --from-code UTF-8 -o - "%s"' % (domain, os.path.join(dirpath, thefile))
+                (stdin, stdout, stderr) = os.popen3(cmd, 't')
+                msgs = stdout.read()
+                errors = stderr.read()
+                if errors:
+                    raise CommandError("errors happened while running xgettext on %s\n%s" % (file, errors))
+                old = '#: '+os.path.join(dirpath, thefile)[2:]
+                new = '#: '+os.path.join(dirpath, file)[2:]
+                msgs = msgs.replace(old, new)
+                if os.path.exists(potfile):
+                    # Strip the header
+                    msgs = '\n'.join(dropwhile(len, msgs.split('\n')))
+                else:
+                    msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8')
+                if msgs:
+                    open(potfile, 'ab').write(msgs)
+                os.unlink(os.path.join(dirpath, thefile))
+            elif domain == 'django' and (file_ext == '.py' or file_ext in extensions):
+                thefile = file
+                if file_ext in extensions:
+                    src = open(os.path.join(dirpath, file), "rb").read()
+                    thefile = '%s.py' % file
+                    open(os.path.join(dirpath, thefile), "wb").write(templatize(src))
+                if verbosity > 1:
+                    sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
+                cmd = 'xgettext -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --keyword=ugettext_noop --keyword=ugettext_lazy --keyword=ungettext_lazy:1,2 --from-code UTF-8 -o - "%s"' % (
+                    domain, os.path.join(dirpath, thefile))
+                (stdin, stdout, stderr) = os.popen3(cmd, 't')
+                msgs = stdout.read()
+                errors = stderr.read()
+                if errors:
+                    raise CommandError("errors happened while running xgettext on %s\n%s" % (file, errors))
+                if thefile != file:
+                    old = '#: '+os.path.join(dirpath, thefile)[2:]
+                    new = '#: '+os.path.join(dirpath, file)[2:]
+                    msgs = msgs.replace(old, new)
+                if os.path.exists(potfile):
+                    # Strip the header
+                    msgs = '\n'.join(dropwhile(len, msgs.split('\n')))
+                else:
+                    msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8')
+                if msgs:
+                    open(potfile, 'ab').write(msgs)
+                if thefile != file:
+                    os.unlink(os.path.join(dirpath, thefile))
+
+        if os.path.exists(potfile):
+            (stdin, stdout, stderr) = os.popen3('msguniq --to-code=utf-8 "%s"' % potfile, 'b')
+            msgs = stdout.read()
+            errors = stderr.read()
+            if errors:
+                raise CommandError("errors happened while running msguniq\n%s" % errors)
+            open(potfile, 'w').write(msgs)
+            if os.path.exists(pofile):
+                (stdin, stdout, stderr) = os.popen3('msgmerge -q "%s" "%s"' % (pofile, potfile), 'b')
+                msgs = stdout.read()
+                errors = stderr.read()
+                if errors:
+                    raise CommandError("errors happened while running msgmerge\n%s" % errors)
+            open(pofile, 'wb').write(msgs)
+            os.unlink(potfile)
+
+
+class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--locale', '-l', default=None, dest='locale',
+            help='Creates or updates the message files only for the given locale (e.g. pt_BR).'),
+        make_option('--domain', '-d', default='django', dest='domain',
+            help='The domain of the message files (default: "django").'),
+        make_option('--verbosity', '-v', action='store', dest='verbosity',
+            default='1', type='choice', choices=['0', '1', '2'],
+            help='Verbosity level; 0=minimal output, 1=normal output, 2=all output'),
+        make_option('--all', '-a', action='store_true', dest='all',
+            default=False, help='Reexamines all source code and templates for new translation strings and updates all message files for all available languages.'),
+        make_option('--extension', '-e', dest='extensions',
+            help='The file extension(s) to examine (default: ".html", separate multiple extensions with commas, or use -e multiple times)',
+            action='append'),
+    )
+    help = "Runs over the entire source tree of the current directory and pulls out all strings marked for translation. It creates (or updates) a message file in the conf/locale (in the django tree) or locale (for project and application) directory."
+
+    requires_model_validation = False
+    can_import_settings = False
+
+    def handle(self, *args, **options):
+        if len(args) != 0:
+            raise CommandError("Command doesn't accept any arguments")
+
+        locale = options.get('locale')
+        domain = options.get('domain')
+        verbosity = int(options.get('verbosity'))
+        process_all = options.get('all')
+        extensions = options.get('extensions') or ['html']
+
+        if domain == 'djangojs':
+            extensions = []
+        else:
+            extensions = handle_extensions(extensions)
+
+        if '.js' in extensions:
+            raise CommandError("JavaScript files should be examined by using the special 'djangojs' domain only.")
+
+        make_messages(locale, domain, verbosity, process_all, extensions)
diff --git a/webapp/django/core/management/commands/reset.py b/webapp/django/core/management/commands/reset.py
new file mode 100644
index 0000000..3e7ca9f
--- /dev/null
+++ b/webapp/django/core/management/commands/reset.py
@@ -0,0 +1,52 @@
+from django.core.management.base import AppCommand, CommandError
+from django.core.management.color import no_style
+from optparse import make_option
+
+class Command(AppCommand):
+    option_list = AppCommand.option_list + (
+        make_option('--noinput', action='store_false', dest='interactive', default=True,
+            help='Tells Django to NOT prompt the user for input of any kind.'),
+    )
+    help = "Executes ``sqlreset`` for the given app(s) in the current database."
+    args = '[appname ...]'
+
+    output_transaction = True
+
+    def handle_app(self, app, **options):
+        from django.db import connection, transaction
+        from django.conf import settings
+        from django.core.management.sql import sql_reset
+
+        app_name = app.__name__.split('.')[-2]
+
+        self.style = no_style()
+
+        sql_list = sql_reset(app, self.style)
+
+        if options.get('interactive'):
+            confirm = raw_input("""
+You have requested a database reset.
+This will IRREVERSIBLY DESTROY any data for
+the "%s" application in the database "%s".
+Are you sure you want to do this?
+
+Type 'yes' to continue, or 'no' to cancel: """ % (app_name, settings.DATABASE_NAME))
+        else:
+            confirm = 'yes'
+
+        if confirm == 'yes':
+            try:
+                cursor = connection.cursor()
+                for sql in sql_list:
+                    cursor.execute(sql)
+            except Exception, e:
+                transaction.rollback_unless_managed()
+                raise CommandError("""Error: %s couldn't be reset. Possible reasons:
+  * The database isn't running or isn't configured correctly.
+  * At least one of the database tables doesn't exist.
+  * The SQL was invalid.
+Hint: Look at the output of 'django-admin.py sqlreset %s'. That's the SQL this command wasn't able to run.
+The full error: %s""" % (app_name, app_name, e))
+            transaction.commit_unless_managed()
+        else:
+            print "Reset cancelled."
diff --git a/webapp/django/core/management/commands/runfcgi.py b/webapp/django/core/management/commands/runfcgi.py
new file mode 100644
index 0000000..a60d4eb
--- /dev/null
+++ b/webapp/django/core/management/commands/runfcgi.py
@@ -0,0 +1,20 @@
+from django.core.management.base import BaseCommand
+
+class Command(BaseCommand):
+    help = "Runs this project as a FastCGI application. Requires flup."
+    args = '[various KEY=val options, use `runfcgi help` for help]'
+
+    def handle(self, *args, **options):
+        from django.conf import settings
+        from django.utils import translation
+        # Activate the current language, because it won't get activated later.
+        try:
+            translation.activate(settings.LANGUAGE_CODE)
+        except AttributeError:
+            pass
+        from django.core.servers.fastcgi import runfastcgi
+        runfastcgi(args)
+        
+    def usage(self, subcommand):
+        from django.core.servers.fastcgi import FASTCGI_HELP
+        return FASTCGI_HELP
diff --git a/webapp/django/core/management/commands/runserver.py b/webapp/django/core/management/commands/runserver.py
new file mode 100644
index 0000000..12808bc
--- /dev/null
+++ b/webapp/django/core/management/commands/runserver.py
@@ -0,0 +1,77 @@
+from django.core.management.base import BaseCommand, CommandError
+from optparse import make_option
+import os
+import sys
+
+class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--noreload', action='store_false', dest='use_reloader', default=True,
+            help='Tells Django to NOT use the auto-reloader.'),
+        make_option('--adminmedia', dest='admin_media_path', default='',
+            help='Specifies the directory from which to serve admin media.'),
+    )
+    help = "Starts a lightweight Web server for development."
+    args = '[optional port number, or ipaddr:port]'
+
+    # Validation is called explicitly each time the server is reloaded.
+    requires_model_validation = False
+
+    def handle(self, addrport='', *args, **options):
+        import django
+        from django.core.servers.basehttp import run, AdminMediaHandler, WSGIServerException
+        from django.core.handlers.wsgi import WSGIHandler
+        if args:
+            raise CommandError('Usage is runserver %s' % self.args)
+        if not addrport:
+            addr = ''
+            port = '8000'
+        else:
+            try:
+                addr, port = addrport.split(':')
+            except ValueError:
+                addr, port = '', addrport
+        if not addr:
+            addr = '127.0.0.1'
+
+        if not port.isdigit():
+            raise CommandError("%r is not a valid port number." % port)
+
+        use_reloader = options.get('use_reloader', True)
+        admin_media_path = options.get('admin_media_path', '')
+        shutdown_message = options.get('shutdown_message', '')
+        quit_command = (sys.platform == 'win32') and 'CTRL-BREAK' or 'CONTROL-C'
+
+        def inner_run():
+            from django.conf import settings
+            print "Validating models..."
+            self.validate(display_num_errors=True)
+            print "\nDjango version %s, using settings %r" % (django.get_version(), settings.SETTINGS_MODULE)
+            print "Development server is running at http://%s:%s/" % (addr, port)
+            print "Quit the server with %s." % quit_command
+            try:
+                path = admin_media_path or django.__path__[0] + '/contrib/admin/media'
+                handler = AdminMediaHandler(WSGIHandler(), path)
+                run(addr, int(port), handler)
+            except WSGIServerException, e:
+                # Use helpful error messages instead of ugly tracebacks.
+                ERRORS = {
+                    13: "You don't have permission to access that port.",
+                    98: "That port is already in use.",
+                    99: "That IP address can't be assigned-to.",
+                }
+                try:
+                    error_text = ERRORS[e.args[0].args[0]]
+                except (AttributeError, KeyError):
+                    error_text = str(e)
+                sys.stderr.write(self.style.ERROR("Error: %s" % error_text) + '\n')
+                # Need to use an OS exit because sys.exit doesn't work in a thread
+                os._exit(1)
+            except KeyboardInterrupt:
+                if shutdown_message:
+                    print shutdown_message
+                sys.exit(0)
+        if use_reloader:
+            from django.utils import autoreload
+            autoreload.main(inner_run)
+        else:
+            inner_run()
diff --git a/webapp/django/core/management/commands/shell.py b/webapp/django/core/management/commands/shell.py
new file mode 100644
index 0000000..9616902
--- /dev/null
+++ b/webapp/django/core/management/commands/shell.py
@@ -0,0 +1,59 @@
+import os
+from django.core.management.base import NoArgsCommand
+from optparse import make_option
+
+class Command(NoArgsCommand):
+    option_list = NoArgsCommand.option_list + (
+        make_option('--plain', action='store_true', dest='plain',
+            help='Tells Django to use plain Python, not IPython.'),
+    )
+    help = "Runs a Python interactive interpreter. Tries to use IPython, if it's available."
+
+    requires_model_validation = False
+
+    def handle_noargs(self, **options):
+        # XXX: (Temporary) workaround for ticket #1796: force early loading of all
+        # models from installed apps.
+        from django.db.models.loading import get_models
+        loaded_models = get_models()
+
+        use_plain = options.get('plain', False)
+
+        try:
+            if use_plain:
+                # Don't bother loading IPython, because the user wants plain Python.
+                raise ImportError
+            import IPython
+            # Explicitly pass an empty list as arguments, because otherwise IPython
+            # would use sys.argv from this script.
+            shell = IPython.Shell.IPShell(argv=[])
+            shell.mainloop()
+        except ImportError:
+            import code
+            # Set up a dictionary to serve as the environment for the shell, so
+            # that tab completion works on objects that are imported at runtime.
+            # See ticket 5082.
+            imported_objects = {}
+            try: # Try activating rlcompleter, because it's handy.
+                import readline
+            except ImportError:
+                pass
+            else:
+                # We don't have to wrap the following import in a 'try', because
+                # we already know 'readline' was imported successfully.
+                import rlcompleter
+                readline.set_completer(rlcompleter.Completer(imported_objects).complete)
+                readline.parse_and_bind("tab:complete")
+
+            # We want to honor both $PYTHONSTARTUP and .pythonrc.py, so follow system
+            # conventions and get $PYTHONSTARTUP first then import user.
+            if not use_plain: 
+                pythonrc = os.environ.get("PYTHONSTARTUP") 
+                if pythonrc and os.path.isfile(pythonrc): 
+                    try: 
+                        execfile(pythonrc) 
+                    except NameError: 
+                        pass
+                # This will import .pythonrc.py as a side-effect
+                import user
+            code.interact(local=imported_objects)
diff --git a/webapp/django/core/management/commands/sql.py b/webapp/django/core/management/commands/sql.py
new file mode 100644
index 0000000..bc68a1e
--- /dev/null
+++ b/webapp/django/core/management/commands/sql.py
@@ -0,0 +1,10 @@
+from django.core.management.base import AppCommand
+
+class Command(AppCommand):
+    help = "Prints the CREATE TABLE SQL statements for the given app name(s)."
+
+    output_transaction = True
+
+    def handle_app(self, app, **options):
+        from django.core.management.sql import sql_create
+        return u'\n'.join(sql_create(app, self.style)).encode('utf-8')
diff --git a/webapp/django/core/management/commands/sqlall.py b/webapp/django/core/management/commands/sqlall.py
new file mode 100644
index 0000000..5d510f1
--- /dev/null
+++ b/webapp/django/core/management/commands/sqlall.py
@@ -0,0 +1,10 @@
+from django.core.management.base import AppCommand
+
+class Command(AppCommand):
+    help = "Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s)."
+
+    output_transaction = True
+
+    def handle_app(self, app, **options):
+        from django.core.management.sql import sql_all
+        return u'\n'.join(sql_all(app, self.style)).encode('utf-8')
diff --git a/webapp/django/core/management/commands/sqlclear.py b/webapp/django/core/management/commands/sqlclear.py
new file mode 100644
index 0000000..8550e88
--- /dev/null
+++ b/webapp/django/core/management/commands/sqlclear.py
@@ -0,0 +1,10 @@
+from django.core.management.base import AppCommand
+
+class Command(AppCommand):
+    help = "Prints the DROP TABLE SQL statements for the given app name(s)."
+
+    output_transaction = True
+
+    def handle_app(self, app, **options):
+        from django.core.management.sql import sql_delete
+        return u'\n'.join(sql_delete(app, self.style)).encode('utf-8')
diff --git a/webapp/django/core/management/commands/sqlcustom.py b/webapp/django/core/management/commands/sqlcustom.py
new file mode 100644
index 0000000..465330d
--- /dev/null
+++ b/webapp/django/core/management/commands/sqlcustom.py
@@ -0,0 +1,10 @@
+from django.core.management.base import AppCommand
+
+class Command(AppCommand):
+    help = "Prints the custom table modifying SQL statements for the given app name(s)."
+
+    output_transaction = True
+
+    def handle_app(self, app, **options):
+        from django.core.management.sql import sql_custom
+        return u'\n'.join(sql_custom(app, self.style)).encode('utf-8')
diff --git a/webapp/django/core/management/commands/sqlflush.py b/webapp/django/core/management/commands/sqlflush.py
new file mode 100644
index 0000000..d0f71d3
--- /dev/null
+++ b/webapp/django/core/management/commands/sqlflush.py
@@ -0,0 +1,10 @@
+from django.core.management.base import NoArgsCommand
+
+class Command(NoArgsCommand):
+    help = "Returns a list of the SQL statements required to return all tables in the database to the state they were in just after they were installed."
+
+    output_transaction = True
+
+    def handle_noargs(self, **options):
+        from django.core.management.sql import sql_flush
+        return u'\n'.join(sql_flush(self.style, only_django=True)).encode('utf-8')
diff --git a/webapp/django/core/management/commands/sqlindexes.py b/webapp/django/core/management/commands/sqlindexes.py
new file mode 100644
index 0000000..9693588
--- /dev/null
+++ b/webapp/django/core/management/commands/sqlindexes.py
@@ -0,0 +1,10 @@
+from django.core.management.base import AppCommand
+
+class Command(AppCommand):
+    help = "Prints the CREATE INDEX SQL statements for the given model module name(s)."
+
+    output_transaction = True
+
+    def handle_app(self, app, **options):
+        from django.core.management.sql import sql_indexes
+        return u'\n'.join(sql_indexes(app, self.style)).encode('utf-8')
diff --git a/webapp/django/core/management/commands/sqlinitialdata.py b/webapp/django/core/management/commands/sqlinitialdata.py
new file mode 100644
index 0000000..b9e2249
--- /dev/null
+++ b/webapp/django/core/management/commands/sqlinitialdata.py
@@ -0,0 +1,7 @@
+from django.core.management.base import AppCommand, CommandError
+
+class Command(AppCommand):
+    help = "RENAMED: see 'sqlcustom'"
+
+    def handle(self, *apps, **options):
+        raise CommandError("This command has been renamed. Use the 'sqlcustom' command instead.")
diff --git a/webapp/django/core/management/commands/sqlreset.py b/webapp/django/core/management/commands/sqlreset.py
new file mode 100644
index 0000000..ec40848
--- /dev/null
+++ b/webapp/django/core/management/commands/sqlreset.py
@@ -0,0 +1,10 @@
+from django.core.management.base import AppCommand
+
+class Command(AppCommand):
+    help = "Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s)."
+
+    output_transaction = True
+
+    def handle_app(self, app, **options):
+        from django.core.management.sql import sql_reset
+        return u'\n'.join(sql_reset(app, self.style)).encode('utf-8')
diff --git a/webapp/django/core/management/commands/sqlsequencereset.py b/webapp/django/core/management/commands/sqlsequencereset.py
new file mode 100644
index 0000000..e8dad0b
--- /dev/null
+++ b/webapp/django/core/management/commands/sqlsequencereset.py
@@ -0,0 +1,9 @@
+from django.core.management.base import AppCommand
+
+class Command(AppCommand):
+    help = 'Prints the SQL statements for resetting sequences for the given app name(s).'
+    output_transaction = True
+
+    def handle_app(self, app, **options):
+        from django.db import connection, models
+        return u'\n'.join(connection.ops.sequence_reset_sql(self.style, models.get_models(app))).encode('utf-8')
diff --git a/webapp/django/core/management/commands/startapp.py b/webapp/django/core/management/commands/startapp.py
new file mode 100644
index 0000000..a81c427
--- /dev/null
+++ b/webapp/django/core/management/commands/startapp.py
@@ -0,0 +1,46 @@
+import os
+
+from django.core.management.base import copy_helper, CommandError, LabelCommand
+
+class Command(LabelCommand):
+    help = "Creates a Django app directory structure for the given app name in the current directory."
+    args = "[appname]"
+    label = 'application name'
+
+    requires_model_validation = False
+    # Can't import settings during this command, because they haven't
+    # necessarily been created.
+    can_import_settings = False
+
+    def handle_label(self, app_name, directory=None, **options):
+        if directory is None:
+            directory = os.getcwd()
+
+        # Determine the project_name by using the basename of directory,
+        # which should be the full path of the project directory (or the
+        # current directory if no directory was passed).
+        project_name = os.path.basename(directory)
+        if app_name == project_name:
+            raise CommandError("You cannot create an app with the same name"
+                               " (%r) as your project." % app_name)
+
+        # Check that the app_name cannot be imported.
+        try:
+            __import__(app_name)
+        except ImportError:
+            pass
+        else:
+            raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name)
+
+        copy_helper(self.style, 'app', app_name, directory, project_name)
+
+class ProjectCommand(Command):
+    help = ("Creates a Django app directory structure for the given app name"
+            " in this project's directory.")
+
+    def __init__(self, project_directory):
+        super(ProjectCommand, self).__init__()
+        self.project_directory = project_directory
+
+    def handle_label(self, app_name, **options):
+        super(ProjectCommand, self).handle_label(app_name, self.project_directory, **options)
diff --git a/webapp/django/core/management/commands/startproject.py b/webapp/django/core/management/commands/startproject.py
new file mode 100644
index 0000000..540a64d
--- /dev/null
+++ b/webapp/django/core/management/commands/startproject.py
@@ -0,0 +1,38 @@
+from django.core.management.base import copy_helper, CommandError, LabelCommand
+import os
+import re
+from random import choice
+
+class Command(LabelCommand):
+    help = "Creates a Django project directory structure for the given project name in the current directory."
+    args = "[projectname]"
+    label = 'project name'
+
+    requires_model_validation = False
+    # Can't import settings during this command, because they haven't
+    # necessarily been created.
+    can_import_settings = False
+
+    def handle_label(self, project_name, **options):
+        # Determine the project_name a bit naively -- by looking at the name of
+        # the parent directory.
+        directory = os.getcwd()
+
+        # Check that the project_name cannot be imported.
+        try:
+            __import__(project_name)
+        except ImportError:
+            pass
+        else:
+            raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name)
+
+        copy_helper(self.style, 'project', project_name, directory)
+
+        # Create a random SECRET_KEY hash, and put it in the main settings.
+        main_settings_file = os.path.join(directory, project_name, 'settings.py')
+        settings_contents = open(main_settings_file, 'r').read()
+        fp = open(main_settings_file, 'w')
+        secret_key = ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)])
+        settings_contents = re.sub(r"(?<=SECRET_KEY = ')'", secret_key + "'", settings_contents)
+        fp.write(settings_contents)
+        fp.close()
diff --git a/webapp/django/core/management/commands/syncdb.py b/webapp/django/core/management/commands/syncdb.py
new file mode 100644
index 0000000..7aeed49
--- /dev/null
+++ b/webapp/django/core/management/commands/syncdb.py
@@ -0,0 +1,152 @@
+from django.core.management.base import NoArgsCommand
+from django.core.management.color import no_style
+from optparse import make_option
+import sys
+
+try:
+    set
+except NameError:
+    from sets import Set as set   # Python 2.3 fallback
+
+class Command(NoArgsCommand):
+    option_list = NoArgsCommand.option_list + (
+        make_option('--verbosity', action='store', dest='verbosity', default='1',
+            type='choice', choices=['0', '1', '2'],
+            help='Verbosity level; 0=minimal output, 1=normal output, 2=all output'),
+        make_option('--noinput', action='store_false', dest='interactive', default=True,
+            help='Tells Django to NOT prompt the user for input of any kind.'),
+    )
+    help = "Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created."
+
+    def handle_noargs(self, **options):
+        from django.db import connection, transaction, models
+        from django.conf import settings
+        from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
+
+        verbosity = int(options.get('verbosity', 1))
+        interactive = options.get('interactive')
+        show_traceback = options.get('traceback', False)
+
+        self.style = no_style()
+
+        # Import the 'management' module within each installed app, to register
+        # dispatcher events.
+        for app_name in settings.INSTALLED_APPS:
+            try:
+                __import__(app_name + '.management', {}, {}, [''])
+            except ImportError, exc:
+                # This is slightly hackish. We want to ignore ImportErrors
+                # if the "management" module itself is missing -- but we don't
+                # want to ignore the exception if the management module exists
+                # but raises an ImportError for some reason. The only way we
+                # can do this is to check the text of the exception. Note that
+                # we're a bit broad in how we check the text, because different
+                # Python implementations may not use the same text. 
+                # CPython uses the text "No module named management"
+                # PyPy uses "No module named myproject.myapp.management"
+                msg = exc.args[0]
+                if not msg.startswith('No module named') or 'management' not in msg:
+                    raise
+
+        cursor = connection.cursor()
+
+        # Get a list of already installed *models* so that references work right.
+        tables = connection.introspection.table_names()
+        seen_models = connection.introspection.installed_models(tables)
+        created_models = set()
+        pending_references = {}
+
+        # Create the tables for each model
+        for app in models.get_apps():
+            app_name = app.__name__.split('.')[-2]
+            model_list = models.get_models(app)
+            for model in model_list:
+                # Create the model's database table, if it doesn't already exist.
+                if verbosity >= 2:
+                    print "Processing %s.%s model" % (app_name, model._meta.object_name)
+                if connection.introspection.table_name_converter(model._meta.db_table) in tables:
+                    continue
+                sql, references = connection.creation.sql_create_model(model, self.style, seen_models)
+                seen_models.add(model)
+                created_models.add(model)
+                for refto, refs in references.items():
+                    pending_references.setdefault(refto, []).extend(refs)
+                    if refto in seen_models:
+                        sql.extend(connection.creation.sql_for_pending_references(refto, self.style, pending_references))
+                sql.extend(connection.creation.sql_for_pending_references(model, self.style, pending_references))
+                if verbosity >= 1:
+                    print "Creating table %s" % model._meta.db_table
+                for statement in sql:
+                    cursor.execute(statement)
+                tables.append(connection.introspection.table_name_converter(model._meta.db_table))
+
+        # Create the m2m tables. This must be done after all tables have been created
+        # to ensure that all referred tables will exist.
+        for app in models.get_apps():
+            app_name = app.__name__.split('.')[-2]
+            model_list = models.get_models(app)
+            for model in model_list:
+                if model in created_models:
+                    sql = connection.creation.sql_for_many_to_many(model, self.style)
+                    if sql:
+                        if verbosity >= 2:
+                            print "Creating many-to-many tables for %s.%s model" % (app_name, model._meta.object_name)
+                        for statement in sql:
+                            cursor.execute(statement)
+
+        transaction.commit_unless_managed()
+
+        # Send the post_syncdb signal, so individual apps can do whatever they need
+        # to do at this point.
+        emit_post_sync_signal(created_models, verbosity, interactive)
+        
+        # The connection may have been closed by a syncdb handler.
+        cursor = connection.cursor()
+        
+        # Install custom SQL for the app (but only if this
+        # is a model we've just created)
+        for app in models.get_apps():
+            app_name = app.__name__.split('.')[-2]
+            for model in models.get_models(app):
+                if model in created_models:
+                    custom_sql = custom_sql_for_model(model, self.style)
+                    if custom_sql:
+                        if verbosity >= 1:
+                            print "Installing custom SQL for %s.%s model" % (app_name, model._meta.object_name)
+                        try:
+                            for sql in custom_sql:
+                                cursor.execute(sql)
+                        except Exception, e:
+                            sys.stderr.write("Failed to install custom SQL for %s.%s model: %s\n" % \
+                                                (app_name, model._meta.object_name, e))
+                            if show_traceback:
+                                import traceback
+                                traceback.print_exc()
+                            transaction.rollback_unless_managed()
+                        else:
+                            transaction.commit_unless_managed()
+                    else:
+                        if verbosity >= 2:
+                            print "No custom SQL for %s.%s model" % (app_name, model._meta.object_name)
+        # Install SQL indicies for all newly created models
+        for app in models.get_apps():
+            app_name = app.__name__.split('.')[-2]
+            for model in models.get_models(app):
+                if model in created_models:
+                    index_sql = connection.creation.sql_indexes_for_model(model, self.style)
+                    if index_sql:
+                        if verbosity >= 1:
+                            print "Installing index for %s.%s model" % (app_name, model._meta.object_name)
+                        try:
+                            for sql in index_sql:
+                                cursor.execute(sql)
+                        except Exception, e:
+                            sys.stderr.write("Failed to install index for %s.%s model: %s\n" % \
+                                                (app_name, model._meta.object_name, e))
+                            transaction.rollback_unless_managed()
+                        else:
+                            transaction.commit_unless_managed()
+
+        # Install the 'initial_data' fixture, using format discovery
+        from django.core.management import call_command
+        call_command('loaddata', 'initial_data', verbosity=verbosity)
diff --git a/webapp/django/core/management/commands/test.py b/webapp/django/core/management/commands/test.py
new file mode 100644
index 0000000..ef7b197
--- /dev/null
+++ b/webapp/django/core/management/commands/test.py
@@ -0,0 +1,35 @@
+from django.core.management.base import BaseCommand
+from optparse import make_option
+import sys
+
+class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--verbosity', action='store', dest='verbosity', default='1',
+            type='choice', choices=['0', '1', '2'],
+            help='Verbosity level; 0=minimal output, 1=normal output, 2=all output'),
+        make_option('--noinput', action='store_false', dest='interactive', default=True,
+            help='Tells Django to NOT prompt the user for input of any kind.'),
+    )
+    help = 'Runs the test suite for the specified applications, or the entire site if no apps are specified.'
+    args = '[appname ...]'
+
+    requires_model_validation = False
+
+    def handle(self, *test_labels, **options):
+        from django.conf import settings
+
+        verbosity = int(options.get('verbosity', 1))
+        interactive = options.get('interactive', True)
+    
+        test_path = settings.TEST_RUNNER.split('.')
+        # Allow for Python 2.5 relative paths
+        if len(test_path) > 1:
+            test_module_name = '.'.join(test_path[:-1])
+        else:
+            test_module_name = '.'
+        test_module = __import__(test_module_name, {}, {}, test_path[-1])
+        test_runner = getattr(test_module, test_path[-1])
+
+        failures = test_runner(test_labels, verbosity=verbosity, interactive=interactive)
+        if failures:
+            sys.exit(failures)
diff --git a/webapp/django/core/management/commands/testserver.py b/webapp/django/core/management/commands/testserver.py
new file mode 100644
index 0000000..78983e7
--- /dev/null
+++ b/webapp/django/core/management/commands/testserver.py
@@ -0,0 +1,36 @@
+from django.core.management.base import BaseCommand
+
+from optparse import make_option
+
+class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--verbosity', action='store', dest='verbosity', default='1',
+            type='choice', choices=['0', '1', '2'],
+            help='Verbosity level; 0=minimal output, 1=normal output, 2=all output'),
+        make_option('--addrport', action='store', dest='addrport', 
+            type='string', default='',
+            help='port number or ipaddr:port to run the server on'),
+    )
+    help = 'Runs a development server with data from the given fixture(s).'
+    args = '[fixture ...]'
+
+    requires_model_validation = False
+
+    def handle(self, *fixture_labels, **options):
+        from django.core.management import call_command
+        from django.db import connection
+
+        verbosity = int(options.get('verbosity', 1))
+        addrport = options.get('addrport')
+
+        # Create a test database.
+        db_name = connection.creation.create_test_db(verbosity=verbosity)
+
+        # Import the fixture data into the test database.
+        call_command('loaddata', *fixture_labels, **{'verbosity': verbosity})
+
+        # Run the development server. Turn off auto-reloading because it causes
+        # a strange error -- it causes this handle() method to be called
+        # multiple times.
+        shutdown_message = '\nServer stopped.\nNote that the test database, %r, has not been deleted. You can explore it on your own.' % db_name
+        call_command('runserver', addrport=addrport, shutdown_message=shutdown_message, use_reloader=False)
diff --git a/webapp/django/core/management/commands/validate.py b/webapp/django/core/management/commands/validate.py
new file mode 100644
index 0000000..760d41c
--- /dev/null
+++ b/webapp/django/core/management/commands/validate.py
@@ -0,0 +1,9 @@
+from django.core.management.base import NoArgsCommand
+
+class Command(NoArgsCommand):
+    help = "Validates all installed models."
+
+    requires_model_validation = False
+
+    def handle_noargs(self, **options):
+        self.validate(display_num_errors=True)
diff --git a/webapp/django/core/management/sql.py b/webapp/django/core/management/sql.py
new file mode 100644
index 0000000..4874a49
--- /dev/null
+++ b/webapp/django/core/management/sql.py
@@ -0,0 +1,205 @@
+from django.core.management.base import CommandError
+import os
+import re
+
+try:
+    set
+except NameError:
+    from sets import Set as set   # Python 2.3 fallback
+
+def sql_create(app, style):
+    "Returns a list of the CREATE TABLE SQL statements for the given app."
+    from django.db import connection, models
+    from django.conf import settings
+
+    if settings.DATABASE_ENGINE == 'dummy':
+        # This must be the "dummy" database backend, which means the user
+        # hasn't set DATABASE_ENGINE.
+        raise CommandError("Django doesn't know which syntax to use for your SQL statements,\n" +
+            "because you haven't specified the DATABASE_ENGINE setting.\n" +
+            "Edit your settings file and change DATABASE_ENGINE to something like 'postgresql' or 'mysql'.")
+
+    # Get installed models, so we generate REFERENCES right.
+    # We trim models from the current app so that the sqlreset command does not
+    # generate invalid SQL (leaving models out of known_models is harmless, so
+    # we can be conservative).
+    app_models = models.get_models(app)
+    final_output = []
+    tables = connection.introspection.table_names()
+    known_models = set([model for model in connection.introspection.installed_models(tables) if model not in app_models])
+    pending_references = {}
+
+    for model in app_models:
+        output, references = connection.creation.sql_create_model(model, style, known_models)
+        final_output.extend(output)
+        for refto, refs in references.items():
+            pending_references.setdefault(refto, []).extend(refs)
+            if refto in known_models:
+                final_output.extend(connection.creation.sql_for_pending_references(refto, style, pending_references))
+        final_output.extend(connection.creation.sql_for_pending_references(model, style, pending_references))
+        # Keep track of the fact that we've created the table for this model.
+        known_models.add(model)
+
+    # Create the many-to-many join tables.
+    for model in app_models:
+        final_output.extend(connection.creation.sql_for_many_to_many(model, style))
+
+    # Handle references to tables that are from other apps
+    # but don't exist physically.
+    not_installed_models = set(pending_references.keys())
+    if not_installed_models:
+        alter_sql = []
+        for model in not_installed_models:
+            alter_sql.extend(['-- ' + sql for sql in
+                connection.creation.sql_for_pending_references(model, style, pending_references)])
+        if alter_sql:
+            final_output.append('-- The following references should be added but depend on non-existent tables:')
+            final_output.extend(alter_sql)
+
+    return final_output
+
+def sql_delete(app, style):
+    "Returns a list of the DROP TABLE SQL statements for the given app."
+    from django.db import connection, models
+    from django.db.backends.util import truncate_name
+    from django.contrib.contenttypes import generic
+
+    # This should work even if a connection isn't available
+    try:
+        cursor = connection.cursor()
+    except:
+        cursor = None
+
+    # Figure out which tables already exist
+    if cursor:
+        table_names = connection.introspection.get_table_list(cursor)
+    else:
+        table_names = []
+
+    output = []
+
+    # Output DROP TABLE statements for standard application tables.
+    to_delete = set()
+
+    references_to_delete = {}
+    app_models = models.get_models(app)
+    for model in app_models:
+        if cursor and connection.introspection.table_name_converter(model._meta.db_table) in table_names:
+            # The table exists, so it needs to be dropped
+            opts = model._meta
+            for f in opts.local_fields:
+                if f.rel and f.rel.to not in to_delete:
+                    references_to_delete.setdefault(f.rel.to, []).append( (model, f) )
+
+            to_delete.add(model)
+
+    for model in app_models:
+        if connection.introspection.table_name_converter(model._meta.db_table) in table_names:
+            output.extend(connection.creation.sql_destroy_model(model, references_to_delete, style))
+
+    # Output DROP TABLE statements for many-to-many tables.
+    for model in app_models:
+        opts = model._meta
+        for f in opts.local_many_to_many:
+            if cursor and connection.introspection.table_name_converter(f.m2m_db_table()) in table_names:
+                output.extend(connection.creation.sql_destroy_many_to_many(model, f, style))
+
+    # Close database connection explicitly, in case this output is being piped
+    # directly into a database client, to avoid locking issues.
+    if cursor:
+        cursor.close()
+        connection.close()
+
+    return output[::-1] # Reverse it, to deal with table dependencies.
+
+def sql_reset(app, style):
+    "Returns a list of the DROP TABLE SQL, then the CREATE TABLE SQL, for the given module."
+    return sql_delete(app, style) + sql_all(app, style)
+
+def sql_flush(style, only_django=False):
+    """
+    Returns a list of the SQL statements used to flush the database.
+    
+    If only_django is True, then only table names that have associated Django
+    models and are in INSTALLED_APPS will be included.
+    """
+    from django.db import connection
+    if only_django:
+        tables = connection.introspection.django_table_names()
+    else:
+        tables = connection.introspection.table_names()
+    statements = connection.ops.sql_flush(style, tables, connection.introspection.sequence_list())
+    return statements
+
+def sql_custom(app, style):
+    "Returns a list of the custom table modifying SQL statements for the given app."
+    from django.db.models import get_models
+    output = []
+
+    app_models = get_models(app)
+    app_dir = os.path.normpath(os.path.join(os.path.dirname(app.__file__), 'sql'))
+
+    for model in app_models:
+        output.extend(custom_sql_for_model(model, style))
+
+    return output
+
+def sql_indexes(app, style):
+    "Returns a list of the CREATE INDEX SQL statements for all models in the given app."
+    from django.db import connection, models
+    output = []
+    for model in models.get_models(app):
+        output.extend(connection.creation.sql_indexes_for_model(model, style))
+    return output
+
+def sql_all(app, style):
+    "Returns a list of CREATE TABLE SQL, initial-data inserts, and CREATE INDEX SQL for the given module."
+    return sql_create(app, style) + sql_custom(app, style) + sql_indexes(app, style)
+
+def custom_sql_for_model(model, style):
+    from django.db import models
+    from django.conf import settings
+
+    opts = model._meta
+    app_dir = os.path.normpath(os.path.join(os.path.dirname(models.get_app(model._meta.app_label).__file__), 'sql'))
+    output = []
+
+    # Post-creation SQL should come before any initial SQL data is loaded.
+    # However, this should not be done for fields that are part of a a parent
+    # model (via model inheritance).
+    nm = opts.init_name_map()
+    post_sql_fields = [f for f in opts.local_fields if hasattr(f, 'post_create_sql')]
+    for f in post_sql_fields:
+        output.extend(f.post_create_sql(style, model._meta.db_table))
+
+    # Some backends can't execute more than one SQL statement at a time,
+    # so split into separate statements.
+    statements = re.compile(r";[ \t]*$", re.M)
+
+    # Find custom SQL, if it's available.
+    sql_files = [os.path.join(app_dir, "%s.%s.sql" % (opts.object_name.lower(), settings.DATABASE_ENGINE)),
+                 os.path.join(app_dir, "%s.sql" % opts.object_name.lower())]
+    for sql_file in sql_files:
+        if os.path.exists(sql_file):
+            fp = open(sql_file, 'U')
+            for statement in statements.split(fp.read().decode(settings.FILE_CHARSET)):
+                # Remove any comments from the file
+                statement = re.sub(ur"--.*([\n\Z]|$)", "", statement)
+                if statement.strip():
+                    output.append(statement + u";")
+            fp.close()
+
+    return output
+
+
+def emit_post_sync_signal(created_models, verbosity, interactive):
+    from django.db import models
+    from django.dispatch import dispatcher
+    # Emit the post_sync signal for every application.
+    for app in models.get_apps():
+        app_name = app.__name__.split('.')[-2]
+        if verbosity >= 2:
+            print "Running post-sync handlers for application", app_name
+        models.signals.post_syncdb.send(sender=app, app=app,
+            created_models=created_models, verbosity=verbosity,
+            interactive=interactive)
diff --git a/webapp/django/core/management/validation.py b/webapp/django/core/management/validation.py
new file mode 100644
index 0000000..0b3542c
--- /dev/null
+++ b/webapp/django/core/management/validation.py
@@ -0,0 +1,221 @@
+import sys
+from django.core.management.color import color_style
+from django.utils.itercompat import is_iterable
+
+class ModelErrorCollection:
+    def __init__(self, outfile=sys.stdout):
+        self.errors = []
+        self.outfile = outfile
+        self.style = color_style()
+
+    def add(self, context, error):
+        self.errors.append((context, error))
+        self.outfile.write(self.style.ERROR("%s: %s\n" % (context, error)))
+
+def get_validation_errors(outfile, app=None):
+    """
+    Validates all models that are part of the specified app. If no app name is provided,
+    validates all models of all installed apps. Writes errors, if any, to outfile.
+    Returns number of errors.
+    """
+    from django.conf import settings
+    from django.db import models, connection
+    from django.db.models.loading import get_app_errors
+    from django.db.models.fields.related import RelatedObject
+
+    e = ModelErrorCollection(outfile)
+
+    for (app_name, error) in get_app_errors().items():
+        e.add(app_name, error)
+
+    for cls in models.get_models(app):
+        opts = cls._meta
+
+        # Do field-specific validation.
+        for f in opts.local_fields:
+            if f.name == 'id' and not f.primary_key and opts.pk.name == 'id':
+                e.add(opts, '"%s": You can\'t use "id" as a field name, because each model automatically gets an "id" field if none of the fields have primary_key=True. You need to either remove/rename your "id" field or add primary_key=True to a field.' % f.name)
+            if f.name.endswith('_'):
+                e.add(opts, '"%s": Field names cannot end with underscores, because this would lead to ambiguous queryset filters.' % f.name)
+            if isinstance(f, models.CharField) and f.max_length in (None, 0):
+                e.add(opts, '"%s": CharFields require a "max_length" attribute.' % f.name)
+            if isinstance(f, models.DecimalField):
+                if f.decimal_places is None:
+                    e.add(opts, '"%s": DecimalFields require a "decimal_places" attribute.' % f.name)
+                if f.max_digits is None:
+                    e.add(opts, '"%s": DecimalFields require a "max_digits" attribute.' % f.name)
+            if isinstance(f, models.FileField) and not f.upload_to:
+                e.add(opts, '"%s": FileFields require an "upload_to" attribute.' % f.name)
+            if isinstance(f, models.ImageField):
+                try:
+                    from PIL import Image
+                except ImportError:
+                    e.add(opts, '"%s": To use ImageFields, you need to install the Python Imaging Library. Get it at http://www.pythonware.com/products/pil/ .' % f.name)
+            if f.choices:
+                if isinstance(f.choices, basestring) or not is_iterable(f.choices):
+                    e.add(opts, '"%s": "choices" should be iterable (e.g., a tuple or list).' % f.name)
+                else:
+                    for c in f.choices:
+                        if not type(c) in (tuple, list) or len(c) != 2:
+                            e.add(opts, '"%s": "choices" should be a sequence of two-tuples.' % f.name)
+            if f.db_index not in (None, True, False):
+                e.add(opts, '"%s": "db_index" should be either None, True or False.' % f.name)
+
+            # Perform any backend-specific field validation.
+            connection.validation.validate_field(e, opts, f)
+
+            # Check to see if the related field will clash with any existing
+            # fields, m2m fields, m2m related objects or related objects
+            if f.rel:
+                if f.rel.to not in models.get_models():
+                    e.add(opts, "'%s' has a relation with model %s, which has either not been installed or is abstract." % (f.name, f.rel.to))
+                # it is a string and we could not find the model it refers to
+                # so skip the next section
+                if isinstance(f.rel.to, (str, unicode)):
+                    continue
+
+                rel_opts = f.rel.to._meta
+                rel_name = RelatedObject(f.rel.to, cls, f).get_accessor_name()
+                rel_query_name = f.related_query_name()
+                for r in rel_opts.fields:
+                    if r.name == rel_name:
+                        e.add(opts, "Accessor for field '%s' clashes with field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.name, f.name))
+                    if r.name == rel_query_name:
+                        e.add(opts, "Reverse query name for field '%s' clashes with field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.name, f.name))
+                for r in rel_opts.local_many_to_many:
+                    if r.name == rel_name:
+                        e.add(opts, "Accessor for field '%s' clashes with m2m field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.name, f.name))
+                    if r.name == rel_query_name:
+                        e.add(opts, "Reverse query name for field '%s' clashes with m2m field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.name, f.name))
+                for r in rel_opts.get_all_related_many_to_many_objects():
+                    if r.get_accessor_name() == rel_name:
+                        e.add(opts, "Accessor for field '%s' clashes with related m2m field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                    if r.get_accessor_name() == rel_query_name:
+                        e.add(opts, "Reverse query name for field '%s' clashes with related m2m field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                for r in rel_opts.get_all_related_objects():
+                    if r.field is not f:
+                        if r.get_accessor_name() == rel_name:
+                            e.add(opts, "Accessor for field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                        if r.get_accessor_name() == rel_query_name:
+                            e.add(opts, "Reverse query name for field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+
+        seen_intermediary_signatures = []
+        for i, f in enumerate(opts.local_many_to_many):
+            # Check to see if the related m2m field will clash with any
+            # existing fields, m2m fields, m2m related objects or related
+            # objects
+            if f.rel.to not in models.get_models():
+                e.add(opts, "'%s' has an m2m relation with model %s, which has either not been installed or is abstract." % (f.name, f.rel.to))
+                # it is a string and we could not find the model it refers to
+                # so skip the next section
+                if isinstance(f.rel.to, (str, unicode)):
+                    continue
+
+            # Check that the field is not set to unique.  ManyToManyFields do not support unique.
+            if f.unique:
+                e.add(opts, "ManyToManyFields cannot be unique.  Remove the unique argument on '%s'." % f.name)
+
+            if getattr(f.rel, 'through', None) is not None:
+                if hasattr(f.rel, 'through_model'):
+                    from_model, to_model = cls, f.rel.to
+                    if from_model == to_model and f.rel.symmetrical:
+                        e.add(opts, "Many-to-many fields with intermediate tables cannot be symmetrical.")
+                    seen_from, seen_to, seen_self = False, False, 0
+                    for inter_field in f.rel.through_model._meta.fields:
+                        rel_to = getattr(inter_field.rel, 'to', None)
+                        if from_model == to_model: # relation to self
+                            if rel_to == from_model:
+                                seen_self += 1
+                            if seen_self > 2:
+                                e.add(opts, "Intermediary model %s has more than two foreign keys to %s, which is ambiguous and is not permitted." % (f.rel.through_model._meta.object_name, from_model._meta.object_name))
+                        else:
+                            if rel_to == from_model:
+                                if seen_from:
+                                    e.add(opts, "Intermediary model %s has more than one foreign key to %s, which is ambiguous and is not permitted." % (f.rel.through_model._meta.object_name, rel_from._meta.object_name))
+                                else:
+                                    seen_from = True
+                            elif rel_to == to_model:
+                                if seen_to:
+                                    e.add(opts, "Intermediary model %s has more than one foreign key to %s, which is ambiguous and is not permitted." % (f.rel.through_model._meta.object_name, rel_to._meta.object_name))
+                                else:
+                                    seen_to = True
+                    if f.rel.through_model not in models.get_models():
+                        e.add(opts, "'%s' specifies an m2m relation through model %s, which has not been installed." % (f.name, f.rel.through))
+                    signature = (f.rel.to, cls, f.rel.through_model)
+                    if signature in seen_intermediary_signatures:
+                        e.add(opts, "The model %s has two manually-defined m2m relations through the model %s, which is not permitted. Please consider using an extra field on your intermediary model instead." % (cls._meta.object_name, f.rel.through_model._meta.object_name))
+                    else:
+                        seen_intermediary_signatures.append(signature)
+                    seen_related_fk, seen_this_fk = False, False
+                    for field in f.rel.through_model._meta.fields:
+                        if field.rel:
+                            if not seen_related_fk and field.rel.to == f.rel.to:
+                                seen_related_fk = True
+                            elif field.rel.to == cls:
+                                seen_this_fk = True
+                    if not seen_related_fk or not seen_this_fk:
+                        e.add(opts, "'%s' has a manually-defined m2m relation through model %s, which does not have foreign keys to %s and %s" % (f.name, f.rel.through, f.rel.to._meta.object_name, cls._meta.object_name))
+                else:
+                    e.add(opts, "'%s' specifies an m2m relation through model %s, which has not been installed" % (f.name, f.rel.through))
+
+            rel_opts = f.rel.to._meta
+            rel_name = RelatedObject(f.rel.to, cls, f).get_accessor_name()
+            rel_query_name = f.related_query_name()
+            # If rel_name is none, there is no reverse accessor (this only
+            # occurs for symmetrical m2m relations to self). If this is the
+            # case, there are no clashes to check for this field, as there are
+            # no reverse descriptors for this field.
+            if rel_name is not None:
+                for r in rel_opts.fields:
+                    if r.name == rel_name:
+                        e.add(opts, "Accessor for m2m field '%s' clashes with field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.name, f.name))
+                    if r.name == rel_query_name:
+                        e.add(opts, "Reverse query name for m2m field '%s' clashes with field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.name, f.name))
+                for r in rel_opts.local_many_to_many:
+                    if r.name == rel_name:
+                        e.add(opts, "Accessor for m2m field '%s' clashes with m2m field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.name, f.name))
+                    if r.name == rel_query_name:
+                        e.add(opts, "Reverse query name for m2m field '%s' clashes with m2m field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.name, f.name))
+                for r in rel_opts.get_all_related_many_to_many_objects():
+                    if r.field is not f:
+                        if r.get_accessor_name() == rel_name:
+                            e.add(opts, "Accessor for m2m field '%s' clashes with related m2m field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                        if r.get_accessor_name() == rel_query_name:
+                            e.add(opts, "Reverse query name for m2m field '%s' clashes with related m2m field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                for r in rel_opts.get_all_related_objects():
+                    if r.get_accessor_name() == rel_name:
+                        e.add(opts, "Accessor for m2m field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                    if r.get_accessor_name() == rel_query_name:
+                        e.add(opts, "Reverse query name for m2m field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+
+        # Check ordering attribute.
+        if opts.ordering:
+            for field_name in opts.ordering:
+                if field_name == '?': continue
+                if field_name.startswith('-'):
+                    field_name = field_name[1:]
+                if opts.order_with_respect_to and field_name == '_order':
+                    continue
+                # Skip ordering in the format field1__field2 (FIXME: checking
+                # this format would be nice, but it's a little fiddly).
+                if '_' in field_name:
+                    continue
+                try:
+                    opts.get_field(field_name, many_to_many=False)
+                except models.FieldDoesNotExist:
+                    e.add(opts, '"ordering" refers to "%s", a field that doesn\'t exist.' % field_name)
+
+        # Check unique_together.
+        for ut in opts.unique_together:
+            for field_name in ut:
+                try:
+                    f = opts.get_field(field_name, many_to_many=True)
+                except models.FieldDoesNotExist:
+                    e.add(opts, '"unique_together" refers to %s, a field that doesn\'t exist. Check your syntax.' % field_name)
+                else:
+                    if isinstance(f.rel, models.ManyToManyRel):
+                        e.add(opts, '"unique_together" refers to %s. ManyToManyFields are not supported in unique_together.' % f.name)
+                    if f not in opts.local_fields:
+                        e.add(opts, '"unique_together" refers to %s. This is not in the same model as the unique_together statement.' % f.name)
+
+    return len(e.errors)
diff --git a/webapp/django/core/paginator.py b/webapp/django/core/paginator.py
new file mode 100644
index 0000000..495cdf2
--- /dev/null
+++ b/webapp/django/core/paginator.py
@@ -0,0 +1,120 @@
+from math import ceil
+
+class InvalidPage(Exception):
+    pass
+
+class PageNotAnInteger(InvalidPage):
+    pass
+
+class EmptyPage(InvalidPage):
+    pass
+
+class Paginator(object):
+    def __init__(self, object_list, per_page, orphans=0, allow_empty_first_page=True):
+        self.object_list = object_list
+        self.per_page = per_page
+        self.orphans = orphans
+        self.allow_empty_first_page = allow_empty_first_page
+        self._num_pages = self._count = None
+
+    def validate_number(self, number):
+        "Validates the given 1-based page number."
+        try:
+            number = int(number)
+        except ValueError:
+            raise PageNotAnInteger('That page number is not an integer')
+        if number < 1:
+            raise EmptyPage('That page number is less than 1')
+        if number > self.num_pages:
+            if number == 1 and self.allow_empty_first_page:
+                pass
+            else:
+                raise EmptyPage('That page contains no results')
+        return number
+
+    def page(self, number):
+        "Returns a Page object for the given 1-based page number."
+        number = self.validate_number(number)
+        bottom = (number - 1) * self.per_page
+        top = bottom + self.per_page
+        if top + self.orphans >= self.count:
+            top = self.count
+        return Page(self.object_list[bottom:top], number, self)
+
+    def _get_count(self):
+        "Returns the total number of objects, across all pages."
+        if self._count is None:
+            try:
+                self._count = self.object_list.count()
+            except (AttributeError, TypeError):
+                # AttributeError if object_list has no count() method.
+                # TypeError if object_list.count() requires arguments
+                # (i.e. is of type list).
+                self._count = len(self.object_list)
+        return self._count
+    count = property(_get_count)
+
+    def _get_num_pages(self):
+        "Returns the total number of pages."
+        if self._num_pages is None:
+            if self.count == 0 and not self.allow_empty_first_page:
+                self._num_pages = 0
+            else:
+                hits = max(1, self.count - self.orphans)
+                self._num_pages = int(ceil(hits / float(self.per_page)))
+        return self._num_pages
+    num_pages = property(_get_num_pages)
+
+    def _get_page_range(self):
+        """
+        Returns a 1-based range of pages for iterating through within
+        a template for loop.
+        """
+        return range(1, self.num_pages + 1)
+    page_range = property(_get_page_range)
+
+QuerySetPaginator = Paginator # For backwards-compatibility.
+
+class Page(object):
+    def __init__(self, object_list, number, paginator):
+        self.object_list = object_list
+        self.number = number
+        self.paginator = paginator
+
+    def __repr__(self):
+        return '<Page %s of %s>' % (self.number, self.paginator.num_pages)
+
+    def has_next(self):
+        return self.number < self.paginator.num_pages
+
+    def has_previous(self):
+        return self.number > 1
+
+    def has_other_pages(self):
+        return self.has_previous() or self.has_next()
+
+    def next_page_number(self):
+        return self.number + 1
+
+    def previous_page_number(self):
+        return self.number - 1
+
+    def start_index(self):
+        """
+        Returns the 1-based index of the first object on this page,
+        relative to total objects in the paginator.
+        """
+        # Special case, return zero if no items.
+        if self.paginator.count == 0:
+            return 0
+        return (self.paginator.per_page * (self.number - 1)) + 1
+
+    def end_index(self):
+        """
+        Returns the 1-based index of the last object on this page,
+        relative to total objects found (hits).
+        """
+        # Special case for the last page because there can be orphans.
+        if self.number == self.paginator.num_pages:
+            return self.paginator.count
+        return self.number * self.paginator.per_page
diff --git a/webapp/django/core/serializers/__init__.py b/webapp/django/core/serializers/__init__.py
new file mode 100644
index 0000000..5365efe
--- /dev/null
+++ b/webapp/django/core/serializers/__init__.py
@@ -0,0 +1,112 @@
+"""
+Interfaces for serializing Django objects.
+
+Usage::
+
+    from django.core import serializers
+    json = serializers.serialize("json", some_query_set)
+    objects = list(serializers.deserialize("json", json))
+
+To add your own serializers, use the SERIALIZATION_MODULES setting::
+
+    SERIALIZATION_MODULES = {
+        "csv" : "path.to.csv.serializer",
+        "txt" : "path.to.txt.serializer",
+    }
+
+"""
+
+from django.conf import settings
+
+# Built-in serializers
+BUILTIN_SERIALIZERS = {
+    "xml"    : "django.core.serializers.xml_serializer",
+    "python" : "django.core.serializers.python",
+    "json"   : "django.core.serializers.json",
+}
+
+# Check for PyYaml and register the serializer if it's available.
+try:
+    import yaml
+    BUILTIN_SERIALIZERS["yaml"] = "django.core.serializers.pyyaml"
+except ImportError:
+    pass
+
+_serializers = {}
+
+def register_serializer(format, serializer_module, serializers=None):
+    """"Register a new serializer. 
+    
+    ``serializer_module`` should be the fully qualified module name
+    for the serializer.
+    
+    If ``serializers`` is provided, the registration will be added
+    to the provided dictionary.
+    
+    If ``serializers`` is not provided, the registration will be made
+    directly into the global register of serializers. Adding serializers
+    directly is not a thread-safe operation.
+    """
+    module = __import__(serializer_module, {}, {}, [''])
+    if serializers is None:
+        _serializers[format] = module
+    else:
+        serializers[format] = module
+        
+def unregister_serializer(format):
+    "Unregister a given serializer. This is not a thread-safe operation."
+    del _serializers[format]
+
+def get_serializer(format):
+    if not _serializers:
+        _load_serializers()
+    return _serializers[format].Serializer
+
+def get_serializer_formats():
+    if not _serializers:
+        _load_serializers()
+    return _serializers.keys()
+
+def get_public_serializer_formats():
+    if not _serializers:
+        _load_serializers()
+    return [k for k, v in _serializers.iteritems() if not v.Serializer.internal_use_only]
+
+def get_deserializer(format):
+    if not _serializers:
+        _load_serializers()
+    return _serializers[format].Deserializer
+
+def serialize(format, queryset, **options):
+    """
+    Serialize a queryset (or any iterator that returns database objects) using
+    a certain serializer.
+    """
+    s = get_serializer(format)()
+    s.serialize(queryset, **options)
+    return s.getvalue()
+
+def deserialize(format, stream_or_string):
+    """
+    Deserialize a stream or a string. Returns an iterator that yields ``(obj,
+    m2m_relation_dict)``, where ``obj`` is a instantiated -- but *unsaved* --
+    object, and ``m2m_relation_dict`` is a dictionary of ``{m2m_field_name :
+    list_of_related_objects}``.
+    """
+    d = get_deserializer(format)
+    return d(stream_or_string)
+
+def _load_serializers():
+    """
+    Register built-in and settings-defined serializers. This is done lazily so
+    that user code has a chance to (e.g.) set up custom settings without
+    needing to be careful of import order.
+    """
+    global _serializers
+    serializers = {}
+    for format in BUILTIN_SERIALIZERS:
+        register_serializer(format, BUILTIN_SERIALIZERS[format], serializers)
+    if hasattr(settings, "SERIALIZATION_MODULES"):
+        for format in settings.SERIALIZATION_MODULES:
+            register_serializer(format, settings.SERIALIZATION_MODULES[format], serializers)
+    _serializers = serializers
diff --git a/webapp/django/core/serializers/base.py b/webapp/django/core/serializers/base.py
new file mode 100644
index 0000000..bfd785a
--- /dev/null
+++ b/webapp/django/core/serializers/base.py
@@ -0,0 +1,175 @@
+"""
+Module for abstract serializer/unserializer base classes.
+"""
+
+from StringIO import StringIO
+
+from django.db import models
+from django.utils.encoding import smart_str, smart_unicode
+from django.utils import datetime_safe
+
+class SerializationError(Exception):
+    """Something bad happened during serialization."""
+    pass
+
+class DeserializationError(Exception):
+    """Something bad happened during deserialization."""
+    pass
+
+class Serializer(object):
+    """
+    Abstract serializer base class.
+    """
+
+    # Indicates if the implemented serializer is only available for
+    # internal Django use.
+    internal_use_only = False
+
+    def serialize(self, queryset, **options):
+        """
+        Serialize a queryset.
+        """
+        self.options = options
+
+        self.stream = options.get("stream", StringIO())
+        self.selected_fields = options.get("fields")
+
+        self.start_serialization()
+        for obj in queryset:
+            self.start_object(obj)
+            for field in obj._meta.local_fields:
+                if field.serialize:
+                    if field.rel is None:
+                        if self.selected_fields is None or field.attname in self.selected_fields:
+                            self.handle_field(obj, field)
+                    else:
+                        if self.selected_fields is None or field.attname[:-3] in self.selected_fields:
+                            self.handle_fk_field(obj, field)
+            for field in obj._meta.many_to_many:
+                if field.serialize:
+                    if self.selected_fields is None or field.attname in self.selected_fields:
+                        self.handle_m2m_field(obj, field)
+            self.end_object(obj)
+        self.end_serialization()
+        return self.getvalue()
+
+    def get_string_value(self, obj, field):
+        """
+        Convert a field's value to a string.
+        """
+        if isinstance(field, models.DateTimeField):
+            d = datetime_safe.new_datetime(getattr(obj, field.name))
+            value = d.strftime("%Y-%m-%d %H:%M:%S")
+        else:
+            value = field.flatten_data(follow=None, obj=obj).get(field.name, "")
+        return smart_unicode(value)
+
+    def start_serialization(self):
+        """
+        Called when serializing of the queryset starts.
+        """
+        raise NotImplementedError
+
+    def end_serialization(self):
+        """
+        Called when serializing of the queryset ends.
+        """
+        pass
+
+    def start_object(self, obj):
+        """
+        Called when serializing of an object starts.
+        """
+        raise NotImplementedError
+
+    def end_object(self, obj):
+        """
+        Called when serializing of an object ends.
+        """
+        pass
+
+    def handle_field(self, obj, field):
+        """
+        Called to handle each individual (non-relational) field on an object.
+        """
+        raise NotImplementedError
+
+    def handle_fk_field(self, obj, field):
+        """
+        Called to handle a ForeignKey field.
+        """
+        raise NotImplementedError
+
+    def handle_m2m_field(self, obj, field):
+        """
+        Called to handle a ManyToManyField.
+        """
+        raise NotImplementedError
+
+    def getvalue(self):
+        """
+        Return the fully serialized queryset (or None if the output stream is
+        not seekable).
+        """
+        if callable(getattr(self.stream, 'getvalue', None)):
+            return self.stream.getvalue()
+
+class Deserializer(object):
+    """
+    Abstract base deserializer class.
+    """
+
+    def __init__(self, stream_or_string, **options):
+        """
+        Init this serializer given a stream or a string
+        """
+        self.options = options
+        if isinstance(stream_or_string, basestring):
+            self.stream = StringIO(stream_or_string)
+        else:
+            self.stream = stream_or_string
+        # hack to make sure that the models have all been loaded before
+        # deserialization starts (otherwise subclass calls to get_model()
+        # and friends might fail...)
+        models.get_apps()
+
+    def __iter__(self):
+        return self
+
+    def next(self):
+        """Iteration iterface -- return the next item in the stream"""
+        raise NotImplementedError
+
+class DeserializedObject(object):
+    """
+    A deserialized model.
+
+    Basically a container for holding the pre-saved deserialized data along
+    with the many-to-many data saved with the object.
+
+    Call ``save()`` to save the object (with the many-to-many data) to the
+    database; call ``save(save_m2m=False)`` to save just the object fields
+    (and not touch the many-to-many stuff.)
+    """
+
+    def __init__(self, obj, m2m_data=None):
+        self.object = obj
+        self.m2m_data = m2m_data
+
+    def __repr__(self):
+        return "<DeserializedObject: %s>" % smart_str(self.object)
+
+    def save(self, save_m2m=True):
+        # Call save on the Model baseclass directly. This bypasses any
+        # model-defined save. The save is also forced to be raw.
+        # This ensures that the data that is deserialized is literally
+        # what came from the file, not post-processed by pre_save/save
+        # methods.
+        models.Model.save_base(self.object, raw=True)
+        if self.m2m_data and save_m2m:
+            for accessor_name, object_list in self.m2m_data.items():
+                setattr(self.object, accessor_name, object_list)
+
+        # prevent a second (possibly accidental) call to save() from saving
+        # the m2m data twice.
+        self.m2m_data = None
diff --git a/webapp/django/core/serializers/json.py b/webapp/django/core/serializers/json.py
new file mode 100644
index 0000000..97e5bc9
--- /dev/null
+++ b/webapp/django/core/serializers/json.py
@@ -0,0 +1,68 @@
+"""
+Serialize data to/from JSON
+"""
+
+import datetime
+from StringIO import StringIO
+
+from django.core.serializers.python import Serializer as PythonSerializer
+from django.core.serializers.python import Deserializer as PythonDeserializer
+from django.utils import datetime_safe
+from django.utils import simplejson
+
+try:
+    import decimal
+except ImportError:
+    from django.utils import _decimal as decimal    # Python 2.3 fallback
+
+class Serializer(PythonSerializer):
+    """
+    Convert a queryset to JSON.
+    """
+    internal_use_only = False
+
+    def end_serialization(self):
+        self.options.pop('stream', None)
+        self.options.pop('fields', None)
+        simplejson.dump(self.objects, self.stream, cls=DjangoJSONEncoder, **self.options)
+
+    def getvalue(self):
+        if callable(getattr(self.stream, 'getvalue', None)):
+            return self.stream.getvalue()
+
+def Deserializer(stream_or_string, **options):
+    """
+    Deserialize a stream or string of JSON data.
+    """
+    if isinstance(stream_or_string, basestring):
+        stream = StringIO(stream_or_string)
+    else:
+        stream = stream_or_string
+    for obj in PythonDeserializer(simplejson.load(stream)):
+        yield obj
+
+class DjangoJSONEncoder(simplejson.JSONEncoder):
+    """
+    JSONEncoder subclass that knows how to encode date/time and decimal types.
+    """
+
+    DATE_FORMAT = "%Y-%m-%d"
+    TIME_FORMAT = "%H:%M:%S"
+
+    def default(self, o):
+        if isinstance(o, datetime.datetime):
+            d = datetime_safe.new_datetime(o)
+            return d.strftime("%s %s" % (self.DATE_FORMAT, self.TIME_FORMAT))
+        elif isinstance(o, datetime.date):
+            d = datetime_safe.new_date(o)
+            return d.strftime(self.DATE_FORMAT)
+        elif isinstance(o, datetime.time):
+            return o.strftime(self.TIME_FORMAT)
+        elif isinstance(o, decimal.Decimal):
+            return str(o)
+        else:
+            return super(DjangoJSONEncoder, self).default(o)
+
+# Older, deprecated class name (for backwards compatibility purposes).
+DateTimeAwareJSONEncoder = DjangoJSONEncoder
+
diff --git a/webapp/django/core/serializers/python.py b/webapp/django/core/serializers/python.py
new file mode 100644
index 0000000..c129c06
--- /dev/null
+++ b/webapp/django/core/serializers/python.py
@@ -0,0 +1,108 @@
+"""
+A Python "serializer". Doesn't do much serializing per se -- just converts to
+and from basic Python data types (lists, dicts, strings, etc.). Useful as a basis for
+other serializers.
+"""
+
+from django.conf import settings
+from django.core.serializers import base
+from django.db import models
+from django.utils.encoding import smart_unicode
+
+class Serializer(base.Serializer):
+    """
+    Serializes a QuerySet to basic Python objects.
+    """
+    
+    internal_use_only = True
+    
+    def start_serialization(self):
+        self._current = None
+        self.objects = []
+
+    def end_serialization(self):
+        pass
+
+    def start_object(self, obj):
+        self._current = {}
+
+    def end_object(self, obj):
+        self.objects.append({
+            "model"  : smart_unicode(obj._meta),
+            "pk"     : smart_unicode(obj._get_pk_val(), strings_only=True),
+            "fields" : self._current
+        })
+        self._current = None
+
+    def handle_field(self, obj, field):
+        self._current[field.name] = smart_unicode(getattr(obj, field.name), strings_only=True)
+
+    def handle_fk_field(self, obj, field):
+        related = getattr(obj, field.name)
+        if related is not None:
+            if field.rel.field_name == related._meta.pk.name:
+                # Related to remote object via primary key
+                related = related._get_pk_val()
+            else:
+                # Related to remote object via other field
+                related = getattr(related, field.rel.field_name)
+        self._current[field.name] = smart_unicode(related, strings_only=True)
+
+    def handle_m2m_field(self, obj, field):
+        if field.creates_table:
+            self._current[field.name] = [smart_unicode(related._get_pk_val(), strings_only=True)
+                               for related in getattr(obj, field.name).iterator()]
+
+    def getvalue(self):
+        return self.objects
+
+def Deserializer(object_list, **options):
+    """
+    Deserialize simple Python objects back into Django ORM instances.
+
+    It's expected that you pass the Python objects themselves (instead of a
+    stream or a string) to the constructor
+    """
+    models.get_apps()
+    for d in object_list:
+        # Look up the model and starting build a dict of data for it.
+        Model = _get_model(d["model"])
+        data = {Model._meta.pk.attname : Model._meta.pk.to_python(d["pk"])}
+        m2m_data = {}
+
+        # Handle each field
+        for (field_name, field_value) in d["fields"].iteritems():
+            if isinstance(field_value, str):
+                field_value = smart_unicode(field_value, options.get("encoding", settings.DEFAULT_CHARSET), strings_only=True)
+
+            field = Model._meta.get_field(field_name)
+
+            # Handle M2M relations
+            if field.rel and isinstance(field.rel, models.ManyToManyRel):
+                m2m_convert = field.rel.to._meta.pk.to_python
+                m2m_data[field.name] = [m2m_convert(smart_unicode(pk)) for pk in field_value]
+
+            # Handle FK fields
+            elif field.rel and isinstance(field.rel, models.ManyToOneRel):
+                if field_value:
+                    data[field.attname] = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
+                else:
+                    data[field.attname] = None
+
+            # Handle all other fields
+            else:
+                data[field.name] = field.to_python(field_value)
+
+        yield base.DeserializedObject(Model(**data), m2m_data)
+
+def _get_model(model_identifier):
+    """
+    Helper to look up a model from an "app_label.module_name" string.
+    """
+    try:
+        Model = models.get_model(*model_identifier.split("."))
+    except TypeError:
+        Model = None
+    if Model is None:
+        raise base.DeserializationError(u"Invalid model identifier: '%s'" % model_identifier)
+    return Model
diff --git a/webapp/django/core/serializers/pyyaml.py b/webapp/django/core/serializers/pyyaml.py
new file mode 100644
index 0000000..ac77166
--- /dev/null
+++ b/webapp/django/core/serializers/pyyaml.py
@@ -0,0 +1,51 @@
+"""
+YAML serializer.
+
+Requires PyYaml (http://pyyaml.org/), but that's checked for in __init__.
+"""
+
+from StringIO import StringIO
+import yaml
+
+from django.db import models
+from django.core.serializers.python import Serializer as PythonSerializer
+from django.core.serializers.python import Deserializer as PythonDeserializer
+
+class Serializer(PythonSerializer):
+    """
+    Convert a queryset to YAML.
+    """
+    
+    internal_use_only = False
+    
+    def handle_field(self, obj, field):
+        # A nasty special case: base YAML doesn't support serialization of time
+        # types (as opposed to dates or datetimes, which it does support). Since
+        # we want to use the "safe" serializer for better interoperability, we
+        # need to do something with those pesky times. Converting 'em to strings
+        # isn't perfect, but it's better than a "!!python/time" type which would
+        # halt deserialization under any other language.
+        if isinstance(field, models.TimeField) and getattr(obj, field.name) is not None:
+            self._current[field.name] = str(getattr(obj, field.name))
+        else:
+            super(Serializer, self).handle_field(obj, field)
+    
+    def end_serialization(self):
+        self.options.pop('stream', None)
+        self.options.pop('fields', None)
+        yaml.safe_dump(self.objects, self.stream, **self.options)
+
+    def getvalue(self):
+        return self.stream.getvalue()
+
+def Deserializer(stream_or_string, **options):
+    """
+    Deserialize a stream or string of YAML data.
+    """
+    if isinstance(stream_or_string, basestring):
+        stream = StringIO(stream_or_string)
+    else:
+        stream = stream_or_string
+    for obj in PythonDeserializer(yaml.load(stream)):
+        yield obj
+
diff --git a/webapp/django/core/serializers/xml_serializer.py b/webapp/django/core/serializers/xml_serializer.py
new file mode 100644
index 0000000..04498db
--- /dev/null
+++ b/webapp/django/core/serializers/xml_serializer.py
@@ -0,0 +1,238 @@
+"""
+XML serializer.
+"""
+
+from django.conf import settings
+from django.core.serializers import base
+from django.db import models
+from django.utils.xmlutils import SimplerXMLGenerator
+from django.utils.encoding import smart_unicode
+from xml.dom import pulldom
+
+class Serializer(base.Serializer):
+    """
+    Serializes a QuerySet to XML.
+    """
+
+    def indent(self, level):
+        if self.options.get('indent', None) is not None:
+            self.xml.ignorableWhitespace('\n' + ' ' * self.options.get('indent', None) * level)
+
+    def start_serialization(self):
+        """
+        Start serialization -- open the XML document and the root element.
+        """
+        self.xml = SimplerXMLGenerator(self.stream, self.options.get("encoding", settings.DEFAULT_CHARSET))
+        self.xml.startDocument()
+        self.xml.startElement("django-objects", {"version" : "1.0"})
+
+    def end_serialization(self):
+        """
+        End serialization -- end the document.
+        """
+        self.indent(0)
+        self.xml.endElement("django-objects")
+        self.xml.endDocument()
+
+    def start_object(self, obj):
+        """
+        Called as each object is handled.
+        """
+        if not hasattr(obj, "_meta"):
+            raise base.SerializationError("Non-model object (%s) encountered during serialization" % type(obj))
+
+        self.indent(1)
+        self.xml.startElement("object", {
+            "pk"    : smart_unicode(obj._get_pk_val()),
+            "model" : smart_unicode(obj._meta),
+        })
+
+    def end_object(self, obj):
+        """
+        Called after handling all fields for an object.
+        """
+        self.indent(1)
+        self.xml.endElement("object")
+
+    def handle_field(self, obj, field):
+        """
+        Called to handle each field on an object (except for ForeignKeys and
+        ManyToManyFields)
+        """
+        self.indent(2)
+        self.xml.startElement("field", {
+            "name" : field.name,
+            "type" : field.get_internal_type()
+        })
+
+        # Get a "string version" of the object's data (this is handled by the
+        # serializer base class).
+        if getattr(obj, field.name) is not None:
+            value = self.get_string_value(obj, field)
+            self.xml.characters(smart_unicode(value))
+        else:
+            self.xml.addQuickElement("None")
+
+        self.xml.endElement("field")
+
+    def handle_fk_field(self, obj, field):
+        """
+        Called to handle a ForeignKey (we need to treat them slightly
+        differently from regular fields).
+        """
+        self._start_relational_field(field)
+        related = getattr(obj, field.name)
+        if related is not None:
+            if field.rel.field_name == related._meta.pk.name:
+                # Related to remote object via primary key
+                related = related._get_pk_val()
+            else:
+                # Related to remote object via other field
+                related = getattr(related, field.rel.field_name)
+            self.xml.characters(smart_unicode(related))
+        else:
+            self.xml.addQuickElement("None")
+        self.xml.endElement("field")
+
+    def handle_m2m_field(self, obj, field):
+        """
+        Called to handle a ManyToManyField. Related objects are only
+        serialized as references to the object's PK (i.e. the related *data*
+        is not dumped, just the relation).
+        """
+        if field.creates_table:
+            self._start_relational_field(field)
+            for relobj in getattr(obj, field.name).iterator():
+                self.xml.addQuickElement("object", attrs={"pk" : smart_unicode(relobj._get_pk_val())})
+            self.xml.endElement("field")
+
+    def _start_relational_field(self, field):
+        """
+        Helper to output the <field> element for relational fields
+        """
+        self.indent(2)
+        self.xml.startElement("field", {
+            "name" : field.name,
+            "rel"  : field.rel.__class__.__name__,
+            "to"   : smart_unicode(field.rel.to._meta),
+        })
+
+class Deserializer(base.Deserializer):
+    """
+    Deserialize XML.
+    """
+
+    def __init__(self, stream_or_string, **options):
+        super(Deserializer, self).__init__(stream_or_string, **options)
+        self.event_stream = pulldom.parse(self.stream)
+
+    def next(self):
+        for event, node in self.event_stream:
+            if event == "START_ELEMENT" and node.nodeName == "object":
+                self.event_stream.expandNode(node)
+                return self._handle_object(node)
+        raise StopIteration
+
+    def _handle_object(self, node):
+        """
+        Convert an <object> node to a DeserializedObject.
+        """
+        # Look up the model using the model loading mechanism. If this fails,
+        # bail.
+        Model = self._get_model_from_node(node, "model")
+
+        # Start building a data dictionary from the object.  If the node is
+        # missing the pk attribute, bail.
+        pk = node.getAttribute("pk")
+        if not pk:
+            raise base.DeserializationError("<object> node is missing the 'pk' attribute")
+
+        data = {Model._meta.pk.attname : Model._meta.pk.to_python(pk)}
+
+        # Also start building a dict of m2m data (this is saved as
+        # {m2m_accessor_attribute : [list_of_related_objects]})
+        m2m_data = {}
+
+        # Deseralize each field.
+        for field_node in node.getElementsByTagName("field"):
+            # If the field is missing the name attribute, bail (are you
+            # sensing a pattern here?)
+            field_name = field_node.getAttribute("name")
+            if not field_name:
+                raise base.DeserializationError("<field> node is missing the 'name' attribute")
+
+            # Get the field from the Model. This will raise a
+            # FieldDoesNotExist if, well, the field doesn't exist, which will
+            # be propagated correctly.
+            field = Model._meta.get_field(field_name)
+
+            # As is usually the case, relation fields get the special treatment.
+            if field.rel and isinstance(field.rel, models.ManyToManyRel):
+                m2m_data[field.name] = self._handle_m2m_field_node(field_node, field)
+            elif field.rel and isinstance(field.rel, models.ManyToOneRel):
+                data[field.attname] = self._handle_fk_field_node(field_node, field)
+            else:
+                if field_node.getElementsByTagName('None'):
+                    value = None
+                else:
+                    value = field.to_python(getInnerText(field_node).strip())
+                data[field.name] = value
+
+        # Return a DeserializedObject so that the m2m data has a place to live.
+        return base.DeserializedObject(Model(**data), m2m_data)
+
+    def _handle_fk_field_node(self, node, field):
+        """
+        Handle a <field> node for a ForeignKey
+        """
+        # Check if there is a child node named 'None', returning None if so.
+        if node.getElementsByTagName('None'):
+            return None
+        else:
+            return field.rel.to._meta.get_field(field.rel.field_name).to_python(
+                       getInnerText(node).strip())
+
+    def _handle_m2m_field_node(self, node, field):
+        """
+        Handle a <field> node for a ManyToManyField.
+        """
+        return [field.rel.to._meta.pk.to_python(
+                    c.getAttribute("pk"))
+                    for c in node.getElementsByTagName("object")]
+
+    def _get_model_from_node(self, node, attr):
+        """
+        Helper to look up a model from a <object model=...> or a <field
+        rel=... to=...> node.
+        """
+        model_identifier = node.getAttribute(attr)
+        if not model_identifier:
+            raise base.DeserializationError(
+                "<%s> node is missing the required '%s' attribute" \
+                    % (node.nodeName, attr))
+        try:
+            Model = models.get_model(*model_identifier.split("."))
+        except TypeError:
+            Model = None
+        if Model is None:
+            raise base.DeserializationError(
+                "<%s> node has invalid model identifier: '%s'" % \
+                    (node.nodeName, model_identifier))
+        return Model
+
+
+def getInnerText(node):
+    """
+    Get all the inner text of a DOM node (recursively).
+    """
+    # inspired by http://mail.python.org/pipermail/xml-sig/2005-March/011022.html
+    inner_text = []
+    for child in node.childNodes:
+        if child.nodeType == child.TEXT_NODE or child.nodeType == child.CDATA_SECTION_NODE:
+            inner_text.append(child.data)
+        elif child.nodeType == child.ELEMENT_NODE:
+            inner_text.extend(getInnerText(child))
+        else:
+           pass
+    return u"".join(inner_text)
+
diff --git a/webapp/django/core/servers/__init__.py b/webapp/django/core/servers/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/core/servers/__init__.py
diff --git a/webapp/django/core/servers/basehttp.py b/webapp/django/core/servers/basehttp.py
new file mode 100644
index 0000000..f88f8c7
--- /dev/null
+++ b/webapp/django/core/servers/basehttp.py
@@ -0,0 +1,665 @@
+"""
+BaseHTTPServer that implements the Python WSGI protocol (PEP 333, rev 1.21).
+
+Adapted from wsgiref.simple_server: http://svn.eby-sarna.com/wsgiref/
+
+This is a simple server for use in testing or debugging Django apps. It hasn't
+been reviewed for security issues. Don't use it for production use.
+"""
+
+from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
+import mimetypes
+import os
+import re
+import sys
+import urllib
+
+from django.utils.http import http_date
+
+__version__ = "0.1"
+__all__ = ['WSGIServer','WSGIRequestHandler']
+
+server_version = "WSGIServer/" + __version__
+sys_version = "Python/" + sys.version.split()[0]
+software_version = server_version + ' ' + sys_version
+
+class WSGIServerException(Exception):
+    pass
+
+class FileWrapper(object):
+    """Wrapper to convert file-like objects to iterables"""
+
+    def __init__(self, filelike, blksize=8192):
+        self.filelike = filelike
+        self.blksize = blksize
+        if hasattr(filelike,'close'):
+            self.close = filelike.close
+
+    def __getitem__(self,key):
+        data = self.filelike.read(self.blksize)
+        if data:
+            return data
+        raise IndexError
+
+    def __iter__(self):
+        return self
+
+    def next(self):
+        data = self.filelike.read(self.blksize)
+        if data:
+            return data
+        raise StopIteration
+
+# Regular expression that matches `special' characters in parameters, the
+# existence of which force quoting of the parameter value.
+tspecials = re.compile(r'[ \(\)<>@,;:\\"/\[\]\?=]')
+
+def _formatparam(param, value=None, quote=1):
+    """Convenience function to format and return a key=value pair.
+
+    This will quote the value if needed or if quote is true.
+    """
+    if value is not None and len(value) > 0:
+        if quote or tspecials.search(value):
+            value = value.replace('\\', '\\\\').replace('"', r'\"')
+            return '%s="%s"' % (param, value)
+        else:
+            return '%s=%s' % (param, value)
+    else:
+        return param
+
+class Headers(object):
+    """Manage a collection of HTTP response headers"""
+    def __init__(self,headers):
+        if not isinstance(headers, list):
+            raise TypeError("Headers must be a list of name/value tuples")
+        self._headers = headers
+
+    def __len__(self):
+        """Return the total number of headers, including duplicates."""
+        return len(self._headers)
+
+    def __setitem__(self, name, val):
+        """Set the value of a header."""
+        del self[name]
+        self._headers.append((name, val))
+
+    def __delitem__(self,name):
+        """Delete all occurrences of a header, if present.
+
+        Does *not* raise an exception if the header is missing.
+        """
+        name = name.lower()
+        self._headers[:] = [kv for kv in self._headers if kv[0].lower()<>name]
+
+    def __getitem__(self,name):
+        """Get the first header value for 'name'
+
+        Return None if the header is missing instead of raising an exception.
+
+        Note that if the header appeared multiple times, the first exactly which
+        occurrance gets returned is undefined.  Use getall() to get all
+        the values matching a header field name.
+        """
+        return self.get(name)
+
+    def has_key(self, name):
+        """Return true if the message contains the header."""
+        return self.get(name) is not None
+
+    __contains__ = has_key
+
+    def get_all(self, name):
+        """Return a list of all the values for the named field.
+
+        These will be sorted in the order they appeared in the original header
+        list or were added to this instance, and may contain duplicates.  Any
+        fields deleted and re-inserted are always appended to the header list.
+        If no fields exist with the given name, returns an empty list.
+        """
+        name = name.lower()
+        return [kv[1] for kv in self._headers if kv[0].lower()==name]
+
+
+    def get(self,name,default=None):
+        """Get the first header value for 'name', or return 'default'"""
+        name = name.lower()
+        for k,v in self._headers:
+            if k.lower()==name:
+                return v
+        return default
+
+    def keys(self):
+        """Return a list of all the header field names.
+
+        These will be sorted in the order they appeared in the original header
+        list, or were added to this instance, and may contain duplicates.
+        Any fields deleted and re-inserted are always appended to the header
+        list.
+        """
+        return [k for k, v in self._headers]
+
+    def values(self):
+        """Return a list of all header values.
+
+        These will be sorted in the order they appeared in the original header
+        list, or were added to this instance, and may contain duplicates.
+        Any fields deleted and re-inserted are always appended to the header
+        list.
+        """
+        return [v for k, v in self._headers]
+
+    def items(self):
+        """Get all the header fields and values.
+
+        These will be sorted in the order they were in the original header
+        list, or were added to this instance, and may contain duplicates.
+        Any fields deleted and re-inserted are always appended to the header
+        list.
+        """
+        return self._headers[:]
+
+    def __repr__(self):
+        return "Headers(%s)" % `self._headers`
+
+    def __str__(self):
+        """str() returns the formatted headers, complete with end line,
+        suitable for direct HTTP transmission."""
+        return '\r\n'.join(["%s: %s" % kv for kv in self._headers]+['',''])
+
+    def setdefault(self,name,value):
+        """Return first matching header value for 'name', or 'value'
+
+        If there is no header named 'name', add a new header with name 'name'
+        and value 'value'."""
+        result = self.get(name)
+        if result is None:
+            self._headers.append((name,value))
+            return value
+        else:
+            return result
+
+    def add_header(self, _name, _value, **_params):
+        """Extended header setting.
+
+        _name is the header field to add.  keyword arguments can be used to set
+        additional parameters for the header field, with underscores converted
+        to dashes.  Normally the parameter will be added as key="value" unless
+        value is None, in which case only the key will be added.
+
+        Example:
+
+        h.add_header('content-disposition', 'attachment', filename='bud.gif')
+
+        Note that unlike the corresponding 'email.Message' method, this does
+        *not* handle '(charset, language, value)' tuples: all values must be
+        strings or None.
+        """
+        parts = []
+        if _value is not None:
+            parts.append(_value)
+        for k, v in _params.items():
+            if v is None:
+                parts.append(k.replace('_', '-'))
+            else:
+                parts.append(_formatparam(k.replace('_', '-'), v))
+        self._headers.append((_name, "; ".join(parts)))
+
+def guess_scheme(environ):
+    """Return a guess for whether 'wsgi.url_scheme' should be 'http' or 'https'
+    """
+    if environ.get("HTTPS") in ('yes','on','1'):
+        return 'https'
+    else:
+        return 'http'
+
+_hop_headers = {
+    'connection':1, 'keep-alive':1, 'proxy-authenticate':1,
+    'proxy-authorization':1, 'te':1, 'trailers':1, 'transfer-encoding':1,
+    'upgrade':1
+}
+
+def is_hop_by_hop(header_name):
+    """Return true if 'header_name' is an HTTP/1.1 "Hop-by-Hop" header"""
+    return header_name.lower() in _hop_headers
+
+class ServerHandler(object):
+    """Manage the invocation of a WSGI application"""
+
+    # Configuration parameters; can override per-subclass or per-instance
+    wsgi_version = (1,0)
+    wsgi_multithread = True
+    wsgi_multiprocess = True
+    wsgi_run_once = False
+
+    origin_server = True    # We are transmitting direct to client
+    http_version  = "1.0"   # Version that should be used for response
+    server_software = software_version
+
+    # os_environ is used to supply configuration from the OS environment:
+    # by default it's a copy of 'os.environ' as of import time, but you can
+    # override this in e.g. your __init__ method.
+    os_environ = dict(os.environ.items())
+
+    # Collaborator classes
+    wsgi_file_wrapper = FileWrapper     # set to None to disable
+    headers_class = Headers             # must be a Headers-like class
+
+    # Error handling (also per-subclass or per-instance)
+    traceback_limit = None  # Print entire traceback to self.get_stderr()
+    error_status = "500 INTERNAL SERVER ERROR"
+    error_headers = [('Content-Type','text/plain')]
+
+    # State variables (don't mess with these)
+    status = result = None
+    headers_sent = False
+    headers = None
+    bytes_sent = 0
+
+    def __init__(self, stdin, stdout, stderr, environ, multithread=True,
+        multiprocess=False):
+        self.stdin = stdin
+        self.stdout = stdout
+        self.stderr = stderr
+        self.base_env = environ
+        self.wsgi_multithread = multithread
+        self.wsgi_multiprocess = multiprocess
+
+    def run(self, application):
+        """Invoke the application"""
+        # Note to self: don't move the close()!  Asynchronous servers shouldn't
+        # call close() from finish_response(), so if you close() anywhere but
+        # the double-error branch here, you'll break asynchronous servers by
+        # prematurely closing.  Async servers must return from 'run()' without
+        # closing if there might still be output to iterate over.
+        try:
+            self.setup_environ()
+            self.result = application(self.environ, self.start_response)
+            self.finish_response()
+        except:
+            try:
+                self.handle_error()
+            except:
+                # If we get an error handling an error, just give up already!
+                self.close()
+                raise   # ...and let the actual server figure it out.
+
+    def setup_environ(self):
+        """Set up the environment for one request"""
+
+        env = self.environ = self.os_environ.copy()
+        self.add_cgi_vars()
+
+        env['wsgi.input']        = self.get_stdin()
+        env['wsgi.errors']       = self.get_stderr()
+        env['wsgi.version']      = self.wsgi_version
+        env['wsgi.run_once']     = self.wsgi_run_once
+        env['wsgi.url_scheme']   = self.get_scheme()
+        env['wsgi.multithread']  = self.wsgi_multithread
+        env['wsgi.multiprocess'] = self.wsgi_multiprocess
+
+        if self.wsgi_file_wrapper is not None:
+            env['wsgi.file_wrapper'] = self.wsgi_file_wrapper
+
+        if self.origin_server and self.server_software:
+            env.setdefault('SERVER_SOFTWARE',self.server_software)
+
+    def finish_response(self):
+        """Send any iterable data, then close self and the iterable
+
+        Subclasses intended for use in asynchronous servers will
+        want to redefine this method, such that it sets up callbacks
+        in the event loop to iterate over the data, and to call
+        'self.close()' once the response is finished.
+        """
+        if not self.result_is_file() and not self.sendfile():
+            for data in self.result:
+                self.write(data)
+            self.finish_content()
+        self.close()
+
+    def get_scheme(self):
+        """Return the URL scheme being used"""
+        return guess_scheme(self.environ)
+
+    def set_content_length(self):
+        """Compute Content-Length or switch to chunked encoding if possible"""
+        try:
+            blocks = len(self.result)
+        except (TypeError, AttributeError, NotImplementedError):
+            pass
+        else:
+            if blocks==1:
+                self.headers['Content-Length'] = str(self.bytes_sent)
+                return
+        # XXX Try for chunked encoding if origin server and client is 1.1
+
+    def cleanup_headers(self):
+        """Make any necessary header changes or defaults
+
+        Subclasses can extend this to add other defaults.
+        """
+        if 'Content-Length' not in self.headers:
+            self.set_content_length()
+
+    def start_response(self, status, headers,exc_info=None):
+        """'start_response()' callable as specified by PEP 333"""
+
+        if exc_info:
+            try:
+                if self.headers_sent:
+                    # Re-raise original exception if headers sent
+                    raise exc_info[0], exc_info[1], exc_info[2]
+            finally:
+                exc_info = None        # avoid dangling circular ref
+        elif self.headers is not None:
+            raise AssertionError("Headers already set!")
+
+        assert isinstance(status, str),"Status must be a string"
+        assert len(status)>=4,"Status must be at least 4 characters"
+        assert int(status[:3]),"Status message must begin w/3-digit code"
+        assert status[3]==" ", "Status message must have a space after code"
+        if __debug__:
+            for name,val in headers:
+                assert isinstance(name, str),"Header names must be strings"
+                assert isinstance(val, str),"Header values must be strings"
+                assert not is_hop_by_hop(name),"Hop-by-hop headers not allowed"
+        self.status = status
+        self.headers = self.headers_class(headers)
+        return self.write
+
+    def send_preamble(self):
+        """Transmit version/status/date/server, via self._write()"""
+        if self.origin_server:
+            if self.client_is_modern():
+                self._write('HTTP/%s %s\r\n' % (self.http_version,self.status))
+                if 'Date' not in self.headers:
+                    self._write(
+                        'Date: %s\r\n' % http_date()
+                    )
+                if self.server_software and 'Server' not in self.headers:
+                    self._write('Server: %s\r\n' % self.server_software)
+        else:
+            self._write('Status: %s\r\n' % self.status)
+
+    def write(self, data):
+        """'write()' callable as specified by PEP 333"""
+
+        assert isinstance(data, str), "write() argument must be string"
+
+        if not self.status:
+            raise AssertionError("write() before start_response()")
+
+        elif not self.headers_sent:
+            # Before the first output, send the stored headers
+            self.bytes_sent = len(data)    # make sure we know content-length
+            self.send_headers()
+        else:
+            self.bytes_sent += len(data)
+
+        # XXX check Content-Length and truncate if too many bytes written?
+
+        # If data is too large, socket will choke, so write chunks no larger
+        # than 32MB at a time.
+        length = len(data)
+        if length > 33554432:
+            offset = 0
+            while offset < length:
+                chunk_size = min(33554432, length)
+                self._write(data[offset:offset+chunk_size])
+                self._flush()
+                offset += chunk_size
+        else:
+            self._write(data)
+            self._flush()
+
+    def sendfile(self):
+        """Platform-specific file transmission
+
+        Override this method in subclasses to support platform-specific
+        file transmission.  It is only called if the application's
+        return iterable ('self.result') is an instance of
+        'self.wsgi_file_wrapper'.
+
+        This method should return a true value if it was able to actually
+        transmit the wrapped file-like object using a platform-specific
+        approach.  It should return a false value if normal iteration
+        should be used instead.  An exception can be raised to indicate
+        that transmission was attempted, but failed.
+
+        NOTE: this method should call 'self.send_headers()' if
+        'self.headers_sent' is false and it is going to attempt direct
+        transmission of the file1.
+        """
+        return False   # No platform-specific transmission by default
+
+    def finish_content(self):
+        """Ensure headers and content have both been sent"""
+        if not self.headers_sent:
+            self.headers['Content-Length'] = "0"
+            self.send_headers()
+        else:
+            pass # XXX check if content-length was too short?
+
+    def close(self):
+        try:
+            self.request_handler.log_request(self.status.split(' ',1)[0], self.bytes_sent)
+        finally:
+            try:
+                if hasattr(self.result,'close'):
+                    self.result.close()
+            finally:
+                self.result = self.headers = self.status = self.environ = None
+                self.bytes_sent = 0; self.headers_sent = False
+
+    def send_headers(self):
+        """Transmit headers to the client, via self._write()"""
+        self.cleanup_headers()
+        self.headers_sent = True
+        if not self.origin_server or self.client_is_modern():
+            self.send_preamble()
+            self._write(str(self.headers))
+
+    def result_is_file(self):
+        """True if 'self.result' is an instance of 'self.wsgi_file_wrapper'"""
+        wrapper = self.wsgi_file_wrapper
+        return wrapper is not None and isinstance(self.result,wrapper)
+
+    def client_is_modern(self):
+        """True if client can accept status and headers"""
+        return self.environ['SERVER_PROTOCOL'].upper() != 'HTTP/0.9'
+
+    def log_exception(self,exc_info):
+        """Log the 'exc_info' tuple in the server log
+
+        Subclasses may override to retarget the output or change its format.
+        """
+        try:
+            from traceback import print_exception
+            stderr = self.get_stderr()
+            print_exception(
+                exc_info[0], exc_info[1], exc_info[2],
+                self.traceback_limit, stderr
+            )
+            stderr.flush()
+        finally:
+            exc_info = None
+
+    def handle_error(self):
+        """Log current error, and send error output to client if possible"""
+        self.log_exception(sys.exc_info())
+        if not self.headers_sent:
+            self.result = self.error_output(self.environ, self.start_response)
+            self.finish_response()
+        # XXX else: attempt advanced recovery techniques for HTML or text?
+
+    def error_output(self, environ, start_response):
+        import traceback
+        start_response(self.error_status, self.error_headers[:], sys.exc_info())
+        return ['\n'.join(traceback.format_exception(*sys.exc_info()))]
+
+    # Pure abstract methods; *must* be overridden in subclasses
+
+    def _write(self,data):
+        self.stdout.write(data)
+        self._write = self.stdout.write
+
+    def _flush(self):
+        self.stdout.flush()
+        self._flush = self.stdout.flush
+
+    def get_stdin(self):
+        return self.stdin
+
+    def get_stderr(self):
+        return self.stderr
+
+    def add_cgi_vars(self):
+        self.environ.update(self.base_env)
+
+class WSGIServer(HTTPServer):
+    """BaseHTTPServer that implements the Python WSGI protocol"""
+    application = None
+
+    def server_bind(self):
+        """Override server_bind to store the server name."""
+        try:
+            HTTPServer.server_bind(self)
+        except Exception, e:
+            raise WSGIServerException, e
+        self.setup_environ()
+
+    def setup_environ(self):
+        # Set up base environment
+        env = self.base_environ = {}
+        env['SERVER_NAME'] = self.server_name
+        env['GATEWAY_INTERFACE'] = 'CGI/1.1'
+        env['SERVER_PORT'] = str(self.server_port)
+        env['REMOTE_HOST']=''
+        env['CONTENT_LENGTH']=''
+        env['SCRIPT_NAME'] = ''
+
+    def get_app(self):
+        return self.application
+
+    def set_app(self,application):
+        self.application = application
+
+class WSGIRequestHandler(BaseHTTPRequestHandler):
+    server_version = "WSGIServer/" + __version__
+
+    def __init__(self, *args, **kwargs):
+        from django.conf import settings
+        self.admin_media_prefix = settings.ADMIN_MEDIA_PREFIX
+        # We set self.path to avoid crashes in log_message() on unsupported
+        # requests (like "OPTIONS").
+        self.path = ''
+        BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
+
+    def get_environ(self):
+        env = self.server.base_environ.copy()
+        env['SERVER_PROTOCOL'] = self.request_version
+        env['REQUEST_METHOD'] = self.command
+        if '?' in self.path:
+            path,query = self.path.split('?',1)
+        else:
+            path,query = self.path,''
+
+        env['PATH_INFO'] = urllib.unquote(path)
+        env['QUERY_STRING'] = query
+        env['REMOTE_ADDR'] = self.client_address[0]
+
+        if self.headers.typeheader is None:
+            env['CONTENT_TYPE'] = self.headers.type
+        else:
+            env['CONTENT_TYPE'] = self.headers.typeheader
+
+        length = self.headers.getheader('content-length')
+        if length:
+            env['CONTENT_LENGTH'] = length
+
+        for h in self.headers.headers:
+            k,v = h.split(':',1)
+            k=k.replace('-','_').upper(); v=v.strip()
+            if k in env:
+                continue                    # skip content length, type,etc.
+            if 'HTTP_'+k in env:
+                env['HTTP_'+k] += ','+v     # comma-separate multiple headers
+            else:
+                env['HTTP_'+k] = v
+        return env
+
+    def get_stderr(self):
+        return sys.stderr
+
+    def handle(self):
+        """Handle a single HTTP request"""
+        self.raw_requestline = self.rfile.readline()
+        if not self.parse_request(): # An error code has been sent, just exit
+            return
+        handler = ServerHandler(self.rfile, self.wfile, self.get_stderr(), self.get_environ())
+        handler.request_handler = self      # backpointer for logging
+        handler.run(self.server.get_app())
+
+    def log_message(self, format, *args):
+        # Don't bother logging requests for admin images or the favicon.
+        if self.path.startswith(self.admin_media_prefix) or self.path == '/favicon.ico':
+            return
+        sys.stderr.write("[%s] %s\n" % (self.log_date_time_string(), format % args))
+
+class AdminMediaHandler(object):
+    """
+    WSGI middleware that intercepts calls to the admin media directory, as
+    defined by the ADMIN_MEDIA_PREFIX setting, and serves those images.
+    Use this ONLY LOCALLY, for development! This hasn't been tested for
+    security and is not super efficient.
+    """
+    def __init__(self, application, media_dir=None):
+        from django.conf import settings
+        self.application = application
+        if not media_dir:
+            import django
+            self.media_dir = django.__path__[0] + '/contrib/admin/media'
+        else:
+            self.media_dir = media_dir
+        self.media_url = settings.ADMIN_MEDIA_PREFIX
+
+    def __call__(self, environ, start_response):
+        import os.path
+
+        # Ignore requests that aren't under ADMIN_MEDIA_PREFIX. Also ignore
+        # all requests if ADMIN_MEDIA_PREFIX isn't a relative URL.
+        if self.media_url.startswith('http://') or self.media_url.startswith('https://') \
+            or not environ['PATH_INFO'].startswith(self.media_url):
+            return self.application(environ, start_response)
+
+        # Find the admin file and serve it up, if it exists and is readable.
+        relative_url = environ['PATH_INFO'][len(self.media_url):]
+        file_path = os.path.join(self.media_dir, relative_url)
+        if not os.path.exists(file_path):
+            status = '404 NOT FOUND'
+            headers = {'Content-type': 'text/plain'}
+            output = ['Page not found: %s' % file_path]
+        else:
+            try:
+                fp = open(file_path, 'rb')
+            except IOError:
+                status = '401 UNAUTHORIZED'
+                headers = {'Content-type': 'text/plain'}
+                output = ['Permission denied: %s' % file_path]
+            else:
+                status = '200 OK'
+                headers = {}
+                mime_type = mimetypes.guess_type(file_path)[0]
+                if mime_type:
+                    headers['Content-Type'] = mime_type
+                output = [fp.read()]
+                fp.close()
+        start_response(status, headers.items())
+        return output
+
+def run(addr, port, wsgi_handler):
+    server_address = (addr, port)
+    httpd = WSGIServer(server_address, WSGIRequestHandler)
+    httpd.set_app(wsgi_handler)
+    httpd.serve_forever()
diff --git a/webapp/django/core/servers/fastcgi.py b/webapp/django/core/servers/fastcgi.py
new file mode 100644
index 0000000..dc4c35b
--- /dev/null
+++ b/webapp/django/core/servers/fastcgi.py
@@ -0,0 +1,179 @@
+"""
+FastCGI (or SCGI, or AJP1.3 ...) server that implements the WSGI protocol.
+
+Uses the flup python package: http://www.saddi.com/software/flup/
+
+This is a adaptation of the flup package to add FastCGI server support
+to run Django apps from Web servers that support the FastCGI protocol.
+This module can be run standalone or from the django-admin / manage.py
+scripts using the "runfcgi" directive.
+
+Run with the extra option "help" for a list of additional options you can
+pass to this server.
+"""
+
+import sys, os
+
+__version__ = "0.1"
+__all__ = ["runfastcgi"]
+
+FASTCGI_HELP = r"""
+  Run this project as a fastcgi (or some other protocol supported
+  by flup) application. To do this, the flup package from
+  http://www.saddi.com/software/flup/ is required.
+
+   runfcgi [options] [fcgi settings]
+
+Optional Fcgi settings: (setting=value)
+  protocol=PROTOCOL    fcgi, scgi, ajp, ... (default fcgi)
+  host=HOSTNAME        hostname to listen on..
+  port=PORTNUM         port to listen on.
+  socket=FILE          UNIX socket to listen on.
+  method=IMPL          prefork or threaded (default prefork)
+  maxrequests=NUMBER   number of requests a child handles before it is 
+                       killed and a new child is forked (0 = no limit).
+  maxspare=NUMBER      max number of spare processes / threads
+  minspare=NUMBER      min number of spare processes / threads.
+  maxchildren=NUMBER   hard limit number of processes / threads
+  daemonize=BOOL       whether to detach from terminal.
+  pidfile=FILE         write the spawned process-id to this file.
+  workdir=DIRECTORY    change to this directory when daemonizing.
+  outlog=FILE          write stdout to this file.
+  errlog=FILE          write stderr to this file.
+  umask=UMASK          umask to use when daemonizing (default 022).
+
+Examples:
+  Run a "standard" fastcgi process on a file-descriptor
+  (for webservers which spawn your processes for you)
+    $ manage.py runfcgi method=threaded
+
+  Run a scgi server on a TCP host/port
+    $ manage.py runfcgi protocol=scgi method=prefork host=127.0.0.1 port=8025
+
+  Run a fastcgi server on a UNIX domain socket (posix platforms only)
+    $ manage.py runfcgi method=prefork socket=/tmp/fcgi.sock
+
+  Run a fastCGI as a daemon and write the spawned PID in a file
+    $ manage.py runfcgi socket=/tmp/fcgi.sock method=prefork \
+        daemonize=true pidfile=/var/run/django-fcgi.pid
+
+"""
+
+FASTCGI_OPTIONS = {
+    'protocol': 'fcgi',
+    'host': None,
+    'port': None,
+    'socket': None,
+    'method': 'fork',
+    'daemonize': None,
+    'workdir': '/',
+    'pidfile': None,
+    'maxspare': 5,
+    'minspare': 2,
+    'maxchildren': 50,
+    'maxrequests': 0,
+    'outlog': None,
+    'errlog': None,
+    'umask': None,
+}
+
+def fastcgi_help(message=None):
+    print FASTCGI_HELP
+    if message:
+        print message
+    return False
+
+def runfastcgi(argset=[], **kwargs):
+    options = FASTCGI_OPTIONS.copy()
+    options.update(kwargs)
+    for x in argset:
+        if "=" in x:
+            k, v = x.split('=', 1)
+        else:
+            k, v = x, True
+        options[k.lower()] = v
+
+    if "help" in options:
+        return fastcgi_help()
+
+    try:
+        import flup
+    except ImportError, e:
+        print >> sys.stderr, "ERROR: %s" % e
+        print >> sys.stderr, "  Unable to load the flup package.  In order to run django"
+        print >> sys.stderr, "  as a FastCGI application, you will need to get flup from"
+        print >> sys.stderr, "  http://www.saddi.com/software/flup/   If you've already"
+        print >> sys.stderr, "  installed flup, then make sure you have it in your PYTHONPATH."
+        return False
+
+    flup_module = 'server.' + options['protocol']
+
+    if options['method'] in ('prefork', 'fork'):
+        wsgi_opts = {
+            'maxSpare': int(options["maxspare"]),
+            'minSpare': int(options["minspare"]),
+            'maxChildren': int(options["maxchildren"]),
+            'maxRequests': int(options["maxrequests"]), 
+        }
+        flup_module += '_fork'
+    elif options['method'] in ('thread', 'threaded'):
+        wsgi_opts = {
+            'maxSpare': int(options["maxspare"]),
+            'minSpare': int(options["minspare"]),
+            'maxThreads': int(options["maxchildren"]),
+        }
+    else:
+        return fastcgi_help("ERROR: Implementation must be one of prefork or thread.")
+
+    wsgi_opts['debug'] = False # Turn off flup tracebacks
+
+    try:
+        WSGIServer = getattr(__import__('flup.' + flup_module, '', '', flup_module), 'WSGIServer')
+    except:
+        print "Can't import flup." + flup_module
+        return False
+
+    # Prep up and go
+    from django.core.handlers.wsgi import WSGIHandler
+
+    if options["host"] and options["port"] and not options["socket"]:
+        wsgi_opts['bindAddress'] = (options["host"], int(options["port"]))
+    elif options["socket"] and not options["host"] and not options["port"]:
+        wsgi_opts['bindAddress'] = options["socket"]
+    elif not options["socket"] and not options["host"] and not options["port"]:
+        wsgi_opts['bindAddress'] = None
+    else:
+        return fastcgi_help("Invalid combination of host, port, socket.")
+
+    if options["daemonize"] is None:
+        # Default to daemonizing if we're running on a socket/named pipe.
+        daemonize = (wsgi_opts['bindAddress'] is not None)
+    else:
+        if options["daemonize"].lower() in ('true', 'yes', 't'):
+            daemonize = True
+        elif options["daemonize"].lower() in ('false', 'no', 'f'):
+            daemonize = False
+        else:
+            return fastcgi_help("ERROR: Invalid option for daemonize parameter.")
+
+    daemon_kwargs = {}
+    if options['outlog']:
+        daemon_kwargs['out_log'] = options['outlog']
+    if options['errlog']:
+        daemon_kwargs['err_log'] = options['errlog']
+    if options['umask']:
+        daemon_kwargs['umask'] = int(options['umask'])
+
+    if daemonize:
+        from django.utils.daemonize import become_daemon
+        become_daemon(our_home_dir=options["workdir"], **daemon_kwargs)
+
+    if options["pidfile"]:
+        fp = open(options["pidfile"], "w")
+        fp.write("%d\n" % os.getpid())
+        fp.close()
+
+    WSGIServer(WSGIHandler(), **wsgi_opts).run()
+
+if __name__ == '__main__':
+    runfastcgi(sys.argv[1:])
diff --git a/webapp/django/core/signals.py b/webapp/django/core/signals.py
new file mode 100644
index 0000000..a14af00
--- /dev/null
+++ b/webapp/django/core/signals.py
@@ -0,0 +1,5 @@
+from django.dispatch import Signal
+
+request_started = Signal()
+request_finished = Signal()
+got_request_exception = Signal(providing_args=["request"])
diff --git a/webapp/django/core/template_loader.py b/webapp/django/core/template_loader.py
new file mode 100644
index 0000000..ee86178
--- /dev/null
+++ b/webapp/django/core/template_loader.py
@@ -0,0 +1,7 @@
+# This module is DEPRECATED!
+#
+# You should no longer be using django.template_loader.
+#
+# Use django.template.loader instead.
+
+from django.template.loader import *
diff --git a/webapp/django/core/urlresolvers.py b/webapp/django/core/urlresolvers.py
new file mode 100644
index 0000000..f6e09c1
--- /dev/null
+++ b/webapp/django/core/urlresolvers.py
@@ -0,0 +1,330 @@
+"""
+This module converts requested URLs to callback view functions.
+
+RegexURLResolver is the main class here. Its resolve() method takes a URL (as
+a string) and returns a tuple in this format:
+
+    (view_function, function_args, function_kwargs)
+"""
+
+import re
+
+from django.http import Http404
+from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist
+from django.utils.encoding import iri_to_uri, force_unicode, smart_str
+from django.utils.functional import memoize
+from django.utils.thread_support import currentThread
+
+try:
+    reversed
+except NameError:
+    from django.utils.itercompat import reversed     # Python 2.3 fallback
+
+_resolver_cache = {} # Maps urlconf modules to RegexURLResolver instances.
+_callable_cache = {} # Maps view and url pattern names to their view functions.
+
+# SCRIPT_NAME prefixes for each thread are stored here. If there's no entry for
+# the current thread (which is the only one we ever access), it is assumed to
+# be empty.
+_prefixes = {}
+
+class Resolver404(Http404):
+    pass
+
+class NoReverseMatch(Exception):
+    # Don't make this raise an error when used in a template.
+    silent_variable_failure = True
+
+def get_callable(lookup_view, can_fail=False):
+    """
+    Convert a string version of a function name to the callable object.
+
+    If the lookup_view is not an import path, it is assumed to be a URL pattern
+    label and the original string is returned.
+
+    If can_fail is True, lookup_view might be a URL pattern label, so errors
+    during the import fail and the string is returned.
+    """
+    if not callable(lookup_view):
+        try:
+            # Bail early for non-ASCII strings (they can't be functions).
+            lookup_view = lookup_view.encode('ascii')
+            mod_name, func_name = get_mod_func(lookup_view)
+            if func_name != '':
+                lookup_view = getattr(__import__(mod_name, {}, {}, ['']), func_name)
+        except (ImportError, AttributeError):
+            if not can_fail:
+                raise
+        except UnicodeEncodeError:
+            pass
+    return lookup_view
+get_callable = memoize(get_callable, _callable_cache, 1)
+
+def get_resolver(urlconf):
+    if urlconf is None:
+        from django.conf import settings
+        urlconf = settings.ROOT_URLCONF
+    return RegexURLResolver(r'^/', urlconf)
+get_resolver = memoize(get_resolver, _resolver_cache, 1)
+
+def get_mod_func(callback):
+    # Converts 'django.views.news.stories.story_detail' to
+    # ['django.views.news.stories', 'story_detail']
+    try:
+        dot = callback.rindex('.')
+    except ValueError:
+        return callback, ''
+    return callback[:dot], callback[dot+1:]
+
+def reverse_helper(regex, *args, **kwargs):
+    """
+    Does a "reverse" lookup -- returns the URL for the given args/kwargs.
+    The args/kwargs are applied to the given compiled regular expression.
+    For example:
+
+        >>> reverse_helper(re.compile('^places/(\d+)/$'), 3)
+        'places/3/'
+        >>> reverse_helper(re.compile('^places/(?P<id>\d+)/$'), id=3)
+        'places/3/'
+        >>> reverse_helper(re.compile('^people/(?P<state>\w\w)/(\w+)/$'), 'adrian', state='il')
+        'people/il/adrian/'
+
+    Raises NoReverseMatch if the args/kwargs aren't valid for the regex.
+    """
+    # TODO: Handle nested parenthesis in the following regex.
+    result = re.sub(r'\(([^)]+)\)', MatchChecker(args, kwargs), regex.pattern)
+    return result.replace('^', '').replace('$', '').replace('\\', '')
+
+class MatchChecker(object):
+    "Class used in reverse RegexURLPattern lookup."
+    def __init__(self, args, kwargs):
+        self.args, self.kwargs = args, kwargs
+        self.current_arg = 0
+
+    def __call__(self, match_obj):
+        # match_obj.group(1) is the contents of the parenthesis.
+        # First we need to figure out whether it's a named or unnamed group.
+        #
+        grouped = match_obj.group(1)
+        m = re.search(r'^\?P<(\w+)>(.*?)$', grouped, re.UNICODE)
+        if m: # If this was a named group...
+            # m.group(1) is the name of the group
+            # m.group(2) is the regex.
+            try:
+                value = self.kwargs[m.group(1)]
+            except KeyError:
+                # It was a named group, but the arg was passed in as a
+                # positional arg or not at all.
+                try:
+                    value = self.args[self.current_arg]
+                    self.current_arg += 1
+                except IndexError:
+                    # The arg wasn't passed in.
+                    raise NoReverseMatch('Not enough positional arguments passed in')
+            test_regex = m.group(2)
+        else: # Otherwise, this was a positional (unnamed) group.
+            try:
+                value = self.args[self.current_arg]
+                self.current_arg += 1
+            except IndexError:
+                # The arg wasn't passed in.
+                raise NoReverseMatch('Not enough positional arguments passed in')
+            test_regex = grouped
+        # Note we're using re.match here on purpose because the start of
+        # to string needs to match.
+        if not re.match(test_regex + '$', force_unicode(value), re.UNICODE):
+            raise NoReverseMatch("Value %r didn't match regular expression %r" % (value, test_regex))
+        return force_unicode(value)
+
+class RegexURLPattern(object):
+    def __init__(self, regex, callback, default_args=None, name=None):
+        # regex is a string representing a regular expression.
+        # callback is either a string like 'foo.views.news.stories.story_detail'
+        # which represents the path to a module and a view function name, or a
+        # callable object (view).
+        self.regex = re.compile(regex, re.UNICODE)
+        if callable(callback):
+            self._callback = callback
+        else:
+            self._callback = None
+            self._callback_str = callback
+        self.default_args = default_args or {}
+        self.name = name
+
+    def __repr__(self):
+        return '<%s %s %s>' % (self.__class__.__name__, self.name, self.regex.pattern)
+
+    def add_prefix(self, prefix):
+        """
+        Adds the prefix string to a string-based callback.
+        """
+        if not prefix or not hasattr(self, '_callback_str'):
+            return
+        self._callback_str = prefix + '.' + self._callback_str
+
+    def resolve(self, path):
+        match = self.regex.search(path)
+        if match:
+            # If there are any named groups, use those as kwargs, ignoring
+            # non-named groups. Otherwise, pass all non-named arguments as
+            # positional arguments.
+            kwargs = match.groupdict()
+            if kwargs:
+                args = ()
+            else:
+                args = match.groups()
+            # In both cases, pass any extra_kwargs as **kwargs.
+            kwargs.update(self.default_args)
+
+            return self.callback, args, kwargs
+
+    def _get_callback(self):
+        if self._callback is not None:
+            return self._callback
+        try:
+            self._callback = get_callable(self._callback_str)
+        except ImportError, e:
+            mod_name, _ = get_mod_func(self._callback_str)
+            raise ViewDoesNotExist, "Could not import %s. Error was: %s" % (mod_name, str(e))
+        except AttributeError, e:
+            mod_name, func_name = get_mod_func(self._callback_str)
+            raise ViewDoesNotExist, "Tried %s in module %s. Error was: %s" % (func_name, mod_name, str(e))
+        return self._callback
+    callback = property(_get_callback)
+
+    def reverse(self, viewname, *args, **kwargs):
+        mod_name, func_name = get_mod_func(viewname)
+        try:
+            lookup_view = getattr(__import__(mod_name, {}, {}, ['']), func_name)
+        except (ImportError, AttributeError):
+            raise NoReverseMatch
+        if lookup_view != self.callback:
+            raise NoReverseMatch
+        return self.reverse_helper(*args, **kwargs)
+
+    def reverse_helper(self, *args, **kwargs):
+        return reverse_helper(self.regex, *args, **kwargs)
+
+class RegexURLResolver(object):
+    def __init__(self, regex, urlconf_name, default_kwargs=None):
+        # regex is a string representing a regular expression.
+        # urlconf_name is a string representing the module containing urlconfs.
+        self.regex = re.compile(regex, re.UNICODE)
+        self.urlconf_name = urlconf_name
+        self.callback = None
+        self.default_kwargs = default_kwargs or {}
+        self._reverse_dict = {}
+
+    def __repr__(self):
+        return '<%s %s %s>' % (self.__class__.__name__, self.urlconf_name, self.regex.pattern)
+
+    def _get_reverse_dict(self):
+        if not self._reverse_dict and hasattr(self.urlconf_module, 'urlpatterns'):
+            for pattern in reversed(self.urlconf_module.urlpatterns):
+                if isinstance(pattern, RegexURLResolver):
+                    for key, value in pattern.reverse_dict.iteritems():
+                        self._reverse_dict[key] = (pattern,) + value
+                else:
+                    self._reverse_dict[pattern.callback] = (pattern,)
+                    self._reverse_dict[pattern.name] = (pattern,)
+        return self._reverse_dict
+    reverse_dict = property(_get_reverse_dict)
+
+    def resolve(self, path):
+        tried = []
+        match = self.regex.search(path)
+        if match:
+            new_path = path[match.end():]
+            for pattern in self.urlconf_module.urlpatterns:
+                try:
+                    sub_match = pattern.resolve(new_path)
+                except Resolver404, e:
+                    tried.extend([(pattern.regex.pattern + '   ' + t) for t in e.args[0]['tried']])
+                else:
+                    if sub_match:
+                        sub_match_dict = dict([(smart_str(k), v) for k, v in match.groupdict().items()])
+                        sub_match_dict.update(self.default_kwargs)
+                        for k, v in sub_match[2].iteritems():
+                            sub_match_dict[smart_str(k)] = v
+                        return sub_match[0], sub_match[1], sub_match_dict
+                    tried.append(pattern.regex.pattern)
+            raise Resolver404, {'tried': tried, 'path': new_path}
+
+    def _get_urlconf_module(self):
+        try:
+            return self._urlconf_module
+        except AttributeError:
+            try:
+                self._urlconf_module = __import__(self.urlconf_name, {}, {}, [''])
+            except Exception, e:
+                # Either an invalid urlconf_name, such as "foo.bar.", or some
+                # kind of problem during the actual import.
+                raise ImproperlyConfigured, "Error while importing URLconf %r: %s" % (self.urlconf_name, e)
+            return self._urlconf_module
+    urlconf_module = property(_get_urlconf_module)
+
+    def _get_url_patterns(self):
+        return self.urlconf_module.urlpatterns
+    url_patterns = property(_get_url_patterns)
+
+    def _resolve_special(self, view_type):
+        callback = getattr(self.urlconf_module, 'handler%s' % view_type)
+        mod_name, func_name = get_mod_func(callback)
+        try:
+            return getattr(__import__(mod_name, {}, {}, ['']), func_name), {}
+        except (ImportError, AttributeError), e:
+            raise ViewDoesNotExist, "Tried %s. Error was: %s" % (callback, str(e))
+
+    def resolve404(self):
+        return self._resolve_special('404')
+
+    def resolve500(self):
+        return self._resolve_special('500')
+
+    def reverse(self, lookup_view, *args, **kwargs):
+        try:
+            lookup_view = get_callable(lookup_view, True)
+        except (ImportError, AttributeError):
+            raise NoReverseMatch("'%s' is not a callable." % lookup_view)
+        if lookup_view in self.reverse_dict:
+            return u''.join([reverse_helper(part.regex, *args, **kwargs) for part in self.reverse_dict[lookup_view]])
+        raise NoReverseMatch("Reverse for '%s' not found." % lookup_view)
+
+    def reverse_helper(self, lookup_view, *args, **kwargs):
+        sub_match = self.reverse(lookup_view, *args, **kwargs)
+        result = reverse_helper(self.regex, *args, **kwargs)
+        return result + sub_match
+
+def resolve(path, urlconf=None):
+    return get_resolver(urlconf).resolve(path)
+
+def reverse(viewname, urlconf=None, args=None, kwargs=None, prefix=None):
+    args = args or []
+    kwargs = kwargs or {}
+    if prefix is None:
+        prefix = get_script_prefix()
+    return iri_to_uri(u'%s%s' % (prefix, get_resolver(urlconf).reverse(viewname,
+            *args, **kwargs)))
+
+def clear_url_caches():
+    global _resolver_cache
+    global _callable_cache
+    _resolver_cache.clear()
+    _callable_cache.clear()
+
+def set_script_prefix(prefix):
+    """
+    Sets the script prefix for the current thread.
+    """
+    if not prefix.endswith('/'):
+        prefix += '/'
+    _prefixes[currentThread()] = prefix
+
+def get_script_prefix():
+    """
+    Returns the currently active script prefix. Useful for client code that
+    wishes to construct their own URLs manually (although accessing the request
+    instance is normally going to be a lot cleaner).
+    """
+    return _prefixes.get(currentThread(), u'/')
+
diff --git a/webapp/django/core/validators.py b/webapp/django/core/validators.py
new file mode 100644
index 0000000..f94db40
--- /dev/null
+++ b/webapp/django/core/validators.py
@@ -0,0 +1,598 @@
+"""
+A library of validators that return None and raise ValidationError when the
+provided data isn't valid.
+
+Validators may be callable classes, and they may have an 'always_test'
+attribute. If an 'always_test' attribute exists (regardless of value), the
+validator will *always* be run, regardless of whether its associated
+form field is required.
+"""
+
+import urllib2
+import re
+try:
+    from decimal import Decimal, DecimalException
+except ImportError:
+    from django.utils._decimal import Decimal, DecimalException    # Python 2.3
+
+from django.conf import settings
+from django.utils.translation import ugettext as _, ugettext_lazy, ungettext
+from django.utils.functional import Promise, lazy
+from django.utils.encoding import force_unicode, smart_str
+
+_datere = r'\d{4}-\d{1,2}-\d{1,2}'
+_timere = r'(?:[01]?[0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?'
+alnum_re = re.compile(r'^\w+$')
+alnumurl_re = re.compile(r'^[-\w/]+$')
+ansi_date_re = re.compile('^%s$' % _datere)
+ansi_time_re = re.compile('^%s$' % _timere)
+ansi_datetime_re = re.compile('^%s %s$' % (_datere, _timere))
+email_re = re.compile(
+    r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*"  # dot-atom
+    r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"' # quoted-string
+    r')@(?:[A-Z0-9-]+\.)+[A-Z]{2,6}$', re.IGNORECASE)  # domain
+integer_re = re.compile(r'^-?\d+$')
+ip4_re = re.compile(r'^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$')
+phone_re = re.compile(r'^[A-PR-Y0-9]{3}-[A-PR-Y0-9]{3}-[A-PR-Y0-9]{4}$', re.IGNORECASE)
+slug_re = re.compile(r'^[-\w]+$')
+url_re = re.compile(r'^https?://\S+$')
+
+lazy_inter = lazy(lambda a,b: force_unicode(a) % b, unicode)
+
+class ValidationError(Exception):
+    def __init__(self, message):
+        "ValidationError can be passed a string or a list."
+        if isinstance(message, list):
+            self.messages = [force_unicode(msg) for msg in message]
+        else:
+            assert isinstance(message, (basestring, Promise)), ("%s should be a string" % repr(message))
+            self.messages = [force_unicode(message)]
+
+    def __str__(self):
+        # This is needed because, without a __str__(), printing an exception
+        # instance would result in this:
+        # AttributeError: ValidationError instance has no attribute 'args'
+        # See http://www.python.org/doc/current/tut/node10.html#handling
+        return str(self.messages)
+
+class CriticalValidationError(Exception):
+    def __init__(self, message):
+        "ValidationError can be passed a string or a list."
+        if isinstance(message, list):
+            self.messages = [force_unicode(msg) for msg in message]
+        else:
+            assert isinstance(message, (basestring, Promise)), ("'%s' should be a string" % message)
+            self.messages = [force_unicode(message)]
+
+    def __str__(self):
+        return str(self.messages)
+
+def isAlphaNumeric(field_data, all_data):
+    if not alnum_re.search(field_data):
+        raise ValidationError, _("This value must contain only letters, numbers and underscores.")
+
+def isAlphaNumericURL(field_data, all_data):
+    if not alnumurl_re.search(field_data):
+        raise ValidationError, _("This value must contain only letters, numbers, underscores, dashes or slashes.")
+
+def isSlug(field_data, all_data):
+    if not slug_re.search(field_data):
+        raise ValidationError, _("This value must contain only letters, numbers, underscores or hyphens.")
+
+def isLowerCase(field_data, all_data):
+    if field_data.lower() != field_data:
+        raise ValidationError, _("Uppercase letters are not allowed here.")
+
+def isUpperCase(field_data, all_data):
+    if field_data.upper() != field_data:
+        raise ValidationError, _("Lowercase letters are not allowed here.")
+
+def isCommaSeparatedIntegerList(field_data, all_data):
+    for supposed_int in field_data.split(','):
+        try:
+            int(supposed_int)
+        except ValueError:
+            raise ValidationError, _("Enter only digits separated by commas.")
+
+def isCommaSeparatedEmailList(field_data, all_data):
+    """
+    Checks that field_data is a string of e-mail addresses separated by commas.
+    Blank field_data values will not throw a validation error, and whitespace
+    is allowed around the commas.
+    """
+    for supposed_email in field_data.split(','):
+        try:
+            isValidEmail(supposed_email.strip(), '')
+        except ValidationError:
+            raise ValidationError, _("Enter valid e-mail addresses separated by commas.")
+
+def isValidIPAddress4(field_data, all_data):
+    if not ip4_re.search(field_data):
+        raise ValidationError, _("Please enter a valid IP address.")
+
+def isNotEmpty(field_data, all_data):
+    if field_data.strip() == '':
+        raise ValidationError, _("Empty values are not allowed here.")
+
+def isOnlyDigits(field_data, all_data):
+    if not field_data.isdigit():
+        raise ValidationError, _("Non-numeric characters aren't allowed here.")
+
+def isNotOnlyDigits(field_data, all_data):
+    if field_data.isdigit():
+        raise ValidationError, _("This value can't be comprised solely of digits.")
+
+def isInteger(field_data, all_data):
+    # This differs from isOnlyDigits because this accepts the negative sign
+    if not integer_re.search(field_data):
+        raise ValidationError, _("Enter a whole number.")
+
+def isOnlyLetters(field_data, all_data):
+    if not field_data.isalpha():
+        raise ValidationError, _("Only alphabetical characters are allowed here.")
+
+def _isValidDate(date_string):
+    """
+    A helper function used by isValidANSIDate and isValidANSIDatetime to
+    check if the date is valid.  The date string is assumed to already be in
+    YYYY-MM-DD format.
+    """
+    from datetime import date
+    # Could use time.strptime here and catch errors, but datetime.date below
+    # produces much friendlier error messages.
+    year, month, day = map(int, date_string.split('-'))
+    try:
+        date(year, month, day)
+    except ValueError, e:
+        msg = _('Invalid date: %s') % _(str(e))
+        raise ValidationError, msg
+
+def isValidANSIDate(field_data, all_data):
+    if not ansi_date_re.search(field_data):
+        raise ValidationError, _('Enter a valid date in YYYY-MM-DD format.')
+    _isValidDate(field_data)
+
+def isValidANSITime(field_data, all_data):
+    if not ansi_time_re.search(field_data):
+        raise ValidationError, _('Enter a valid time in HH:MM format.')
+
+def isValidANSIDatetime(field_data, all_data):
+    if not ansi_datetime_re.search(field_data):
+        raise ValidationError, _('Enter a valid date/time in YYYY-MM-DD HH:MM format.')
+    _isValidDate(field_data.split()[0])
+
+def isValidEmail(field_data, all_data):
+    if not email_re.search(field_data):
+        raise ValidationError, _('Enter a valid e-mail address.')
+
+def isValidImage(field_data, all_data):
+    """
+    Checks that the file-upload field data contains a valid image (GIF, JPG,
+    PNG, possibly others -- whatever the Python Imaging Library supports).
+    """
+    from PIL import Image
+    from cStringIO import StringIO
+    try:
+        content = field_data.read()
+    except TypeError:
+        raise ValidationError, _("No file was submitted. Check the encoding type on the form.")
+    try:
+        # load() is the only method that can spot a truncated JPEG,
+        #  but it cannot be called sanely after verify()
+        trial_image = Image.open(StringIO(content))
+        trial_image.load()
+        # verify() is the only method that can spot a corrupt PNG,
+        #  but it must be called immediately after the constructor
+        trial_image = Image.open(StringIO(content))
+        trial_image.verify()
+    except Exception: # Python Imaging Library doesn't recognize it as an image
+        raise ValidationError, _("Upload a valid image. The file you uploaded was either not an image or a corrupted image.")
+
+def isValidImageURL(field_data, all_data):
+    uc = URLMimeTypeCheck(('image/jpeg', 'image/gif', 'image/png'))
+    try:
+        uc(field_data, all_data)
+    except URLMimeTypeCheck.InvalidContentType:
+        raise ValidationError, _("The URL %s does not point to a valid image.") % field_data
+
+def isValidPhone(field_data, all_data):
+    if not phone_re.search(field_data):
+        raise ValidationError, _('Phone numbers must be in XXX-XXX-XXXX format. "%s" is invalid.') % field_data
+
+def isValidQuicktimeVideoURL(field_data, all_data):
+    "Checks that the given URL is a video that can be played by QuickTime (qt, mpeg)"
+    uc = URLMimeTypeCheck(('video/quicktime', 'video/mpeg',))
+    try:
+        uc(field_data, all_data)
+    except URLMimeTypeCheck.InvalidContentType:
+        raise ValidationError, _("The URL %s does not point to a valid QuickTime video.") % field_data
+
+def isValidURL(field_data, all_data):
+    if not url_re.search(field_data):
+        raise ValidationError, _("A valid URL is required.")
+
+def isValidHTML(field_data, all_data):
+    import urllib, urllib2
+    try:
+        u = urllib2.urlopen('http://validator.w3.org/check', urllib.urlencode({'fragment': field_data, 'output': 'xml'}))
+    except:
+        # Validator or Internet connection is unavailable. Fail silently.
+        return
+    html_is_valid = (u.headers.get('x-w3c-validator-status', 'Invalid') == 'Valid')
+    if html_is_valid:
+        return
+    from xml.dom.minidom import parseString
+    error_messages = [e.firstChild.wholeText for e in parseString(u.read()).getElementsByTagName('messages')[0].getElementsByTagName('msg')]
+    raise ValidationError, _("Valid HTML is required. Specific errors are:\n%s") % "\n".join(error_messages)
+
+def isWellFormedXml(field_data, all_data):
+    from xml.dom.minidom import parseString
+    try:
+        parseString(field_data)
+    except Exception, e: # Naked except because we're not sure what will be thrown
+        raise ValidationError, _("Badly formed XML: %s") % str(e)
+
+def isWellFormedXmlFragment(field_data, all_data):
+    isWellFormedXml('<root>%s</root>' % field_data, all_data)
+
+def isExistingURL(field_data, all_data):
+    try:
+        headers = {
+            "Accept" : "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
+            "Accept-Language" : "en-us,en;q=0.5",
+            "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
+            "Connection" : "close",
+            "User-Agent": settings.URL_VALIDATOR_USER_AGENT
+            }
+        req = urllib2.Request(field_data,None, headers)
+        u = urllib2.urlopen(req)
+    except ValueError:
+        raise ValidationError, _("Invalid URL: %s") % field_data
+    except urllib2.HTTPError, e:
+        # 401s are valid; they just mean authorization is required.
+        # 301 and 302 are redirects; they just mean look somewhere else.
+        if str(e.code) not in ('401','301','302'):
+            raise ValidationError, _("The URL %s is a broken link.") % field_data
+    except: # urllib2.URLError, httplib.InvalidURL, etc.
+        raise ValidationError, _("The URL %s is a broken link.") % field_data
+
+def isValidUSState(field_data, all_data):
+    "Checks that the given string is a valid two-letter U.S. state abbreviation"
+    states = ['AA', 'AE', 'AK', 'AL', 'AP', 'AR', 'AS', 'AZ', 'CA', 'CO', 'CT', 'DC', 'DE', 'FL', 'FM', 'GA', 'GU', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MH', 'MI', 'MN', 'MO', 'MP', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'PR', 'PW', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VA', 'VI', 'VT', 'WA', 'WI', 'WV', 'WY']
+    if field_data.upper() not in states:
+        raise ValidationError, _("Enter a valid U.S. state abbreviation.")
+
+def hasNoProfanities(field_data, all_data):
+    """
+    Checks that the given string has no profanities in it. This does a simple
+    check for whether each profanity exists within the string, so 'fuck' will
+    catch 'motherfucker' as well. Raises a ValidationError such as:
+        Watch your mouth! The words "f--k" and "s--t" are not allowed here.
+    """
+    field_data = field_data.lower() # normalize
+    words_seen = [w for w in settings.PROFANITIES_LIST if w in field_data]
+    if words_seen:
+        from django.utils.text import get_text_list
+        plural = len(words_seen)
+        raise ValidationError, ungettext("Watch your mouth! The word %s is not allowed here.",
+            "Watch your mouth! The words %s are not allowed here.", plural) % \
+            get_text_list(['"%s%s%s"' % (i[0], '-'*(len(i)-2), i[-1]) for i in words_seen], _('and'))
+
+class AlwaysMatchesOtherField(object):
+    def __init__(self, other_field_name, error_message=None):
+        self.other = other_field_name
+        self.error_message = error_message or lazy_inter(ugettext_lazy("This field must match the '%s' field."), self.other)
+        self.always_test = True
+
+    def __call__(self, field_data, all_data):
+        if field_data != all_data[self.other]:
+            raise ValidationError, self.error_message
+
+class ValidateIfOtherFieldEquals(object):
+    def __init__(self, other_field, other_value, validator_list):
+        self.other_field, self.other_value = other_field, other_value
+        self.validator_list = validator_list
+        self.always_test = True
+
+    def __call__(self, field_data, all_data):
+        if self.other_field in all_data and all_data[self.other_field] == self.other_value:
+            for v in self.validator_list:
+                v(field_data, all_data)
+
+class RequiredIfOtherFieldNotGiven(object):
+    def __init__(self, other_field_name, error_message=ugettext_lazy("Please enter something for at least one field.")):
+        self.other, self.error_message = other_field_name, error_message
+        self.always_test = True
+
+    def __call__(self, field_data, all_data):
+        if not all_data.get(self.other, False) and not field_data:
+            raise ValidationError, self.error_message
+
+class RequiredIfOtherFieldsGiven(object):
+    def __init__(self, other_field_names, error_message=ugettext_lazy("Please enter both fields or leave them both empty.")):
+        self.other, self.error_message = other_field_names, error_message
+        self.always_test = True
+
+    def __call__(self, field_data, all_data):
+        for field in self.other:
+            if all_data.get(field, False) and not field_data:
+                raise ValidationError, self.error_message
+
+class RequiredIfOtherFieldGiven(RequiredIfOtherFieldsGiven):
+    "Like RequiredIfOtherFieldsGiven, but takes a single field name instead of a list."
+    def __init__(self, other_field_name, error_message=ugettext_lazy("Please enter both fields or leave them both empty.")):
+        RequiredIfOtherFieldsGiven.__init__(self, [other_field_name], error_message)
+
+class RequiredIfOtherFieldEquals(object):
+    def __init__(self, other_field, other_value, error_message=None, other_label=None):
+        self.other_field = other_field
+        self.other_value = other_value
+        other_label = other_label or other_value
+        self.error_message = error_message or lazy_inter(ugettext_lazy("This field must be given if %(field)s is %(value)s"), {
+            'field': other_field, 'value': other_label})
+        self.always_test = True
+
+    def __call__(self, field_data, all_data):
+        if self.other_field in all_data and all_data[self.other_field] == self.other_value and not field_data:
+            raise ValidationError(self.error_message)
+
+class RequiredIfOtherFieldDoesNotEqual(object):
+    def __init__(self, other_field, other_value, other_label=None, error_message=None):
+        self.other_field = other_field
+        self.other_value = other_value
+        other_label = other_label or other_value
+        self.error_message = error_message or lazy_inter(ugettext_lazy("This field must be given if %(field)s is not %(value)s"), {
+            'field': other_field, 'value': other_label})
+        self.always_test = True
+
+    def __call__(self, field_data, all_data):
+        if self.other_field in all_data and all_data[self.other_field] != self.other_value and not field_data:
+            raise ValidationError(self.error_message)
+
+class IsLessThanOtherField(object):
+    def __init__(self, other_field_name, error_message):
+        self.other, self.error_message = other_field_name, error_message
+
+    def __call__(self, field_data, all_data):
+        if field_data > all_data[self.other]:
+            raise ValidationError, self.error_message
+
+class UniqueAmongstFieldsWithPrefix(object):
+    def __init__(self, field_name, prefix, error_message):
+        self.field_name, self.prefix = field_name, prefix
+        self.error_message = error_message or ugettext_lazy("Duplicate values are not allowed.")
+
+    def __call__(self, field_data, all_data):
+        for field_name, value in all_data.items():
+            if field_name != self.field_name and value == field_data:
+                raise ValidationError, self.error_message
+
+class NumberIsInRange(object):
+    """
+    Validator that tests if a value is in a range (inclusive).
+    """
+    def __init__(self, lower=None, upper=None, error_message=''):
+        self.lower, self.upper = lower, upper
+        if not error_message:
+            if lower and upper:
+                 self.error_message = _("This value must be between %(lower)s and %(upper)s.") % {'lower': lower, 'upper': upper}
+            elif lower:
+                self.error_message = _("This value must be at least %s.") % lower
+            elif upper:
+                self.error_message = _("This value must be no more than %s.") % upper
+        else:
+            self.error_message = error_message
+
+    def __call__(self, field_data, all_data):
+        # Try to make the value numeric. If this fails, we assume another
+        # validator will catch the problem.
+        try:
+            val = float(field_data)
+        except ValueError:
+            return
+
+        # Now validate
+        if self.lower and self.upper and (val < self.lower or val > self.upper):
+            raise ValidationError(self.error_message)
+        elif self.lower and val < self.lower:
+            raise ValidationError(self.error_message)
+        elif self.upper and val > self.upper:
+            raise ValidationError(self.error_message)
+
+class IsAPowerOf(object):
+    """
+    Usage: If you create an instance of the IsPowerOf validator:
+        v = IsAPowerOf(2)
+
+    The following calls will succeed:
+        v(4, None)
+        v(8, None)
+        v(16, None)
+
+    But this call:
+        v(17, None)
+    will raise "django.core.validators.ValidationError: ['This value must be a power of 2.']"
+    """
+    def __init__(self, power_of):
+        self.power_of = power_of
+
+    def __call__(self, field_data, all_data):
+        from math import log
+        val = log(int(field_data)) / log(self.power_of)
+        if val != int(val):
+            raise ValidationError, _("This value must be a power of %s.") % self.power_of
+
+class IsValidDecimal(object):
+    def __init__(self, max_digits, decimal_places):
+        self.max_digits, self.decimal_places = max_digits, decimal_places
+
+    def __call__(self, field_data, all_data):
+        try:
+            val = Decimal(field_data)
+        except DecimalException:
+            raise ValidationError, _("Please enter a valid decimal number.")
+
+        pieces = str(val).lstrip("-").split('.')
+        decimals = (len(pieces) == 2) and len(pieces[1]) or 0
+        digits = len(pieces[0])
+
+        if digits + decimals > self.max_digits:
+            raise ValidationError, ungettext("Please enter a valid decimal number with at most %s total digit.",
+                "Please enter a valid decimal number with at most %s total digits.", self.max_digits) % self.max_digits
+        if digits > (self.max_digits - self.decimal_places):
+            raise ValidationError, ungettext( "Please enter a valid decimal number with a whole part of at most %s digit.",
+                "Please enter a valid decimal number with a whole part of at most %s digits.", str(self.max_digits-self.decimal_places)) % str(self.max_digits-self.decimal_places)
+        if decimals > self.decimal_places:
+            raise ValidationError, ungettext("Please enter a valid decimal number with at most %s decimal place.",
+                "Please enter a valid decimal number with at most %s decimal places.", self.decimal_places) % self.decimal_places
+
+def isValidFloat(field_data, all_data):
+    data = smart_str(field_data)
+    try:
+        float(data)
+    except ValueError:
+        raise ValidationError, _("Please enter a valid floating point number.")
+
+class HasAllowableSize(object):
+    """
+    Checks that the file-upload field data is a certain size. min_size and
+    max_size are measurements in bytes.
+    """
+    def __init__(self, min_size=None, max_size=None, min_error_message=None, max_error_message=None):
+        self.min_size, self.max_size = min_size, max_size
+        self.min_error_message = min_error_message or lazy_inter(ugettext_lazy("Make sure your uploaded file is at least %s bytes big."), min_size)
+        self.max_error_message = max_error_message or lazy_inter(ugettext_lazy("Make sure your uploaded file is at most %s bytes big."), max_size)
+
+    def __call__(self, field_data, all_data):
+        try:
+            content = field_data.read()
+        except TypeError:
+            raise ValidationError, ugettext_lazy("No file was submitted. Check the encoding type on the form.")
+        if self.min_size is not None and len(content) < self.min_size:
+            raise ValidationError, self.min_error_message
+        if self.max_size is not None and len(content) > self.max_size:
+            raise ValidationError, self.max_error_message
+
+class MatchesRegularExpression(object):
+    """
+    Checks that the field matches the given regular-expression. The regex
+    should be in string format, not already compiled.
+    """
+    def __init__(self, regexp, error_message=ugettext_lazy("The format for this field is wrong.")):
+        self.regexp = re.compile(regexp)
+        self.error_message = error_message
+
+    def __call__(self, field_data, all_data):
+        if not self.regexp.search(field_data):
+            raise ValidationError(self.error_message)
+
+class AnyValidator(object):
+    """
+    This validator tries all given validators. If any one of them succeeds,
+    validation passes. If none of them succeeds, the given message is thrown
+    as a validation error. The message is rather unspecific, so it's best to
+    specify one on instantiation.
+    """
+    def __init__(self, validator_list=None, error_message=ugettext_lazy("This field is invalid.")):
+        if validator_list is None: validator_list = []
+        self.validator_list = validator_list
+        self.error_message = error_message
+        for v in validator_list:
+            if hasattr(v, 'always_test'):
+                self.always_test = True
+
+    def __call__(self, field_data, all_data):
+        for v in self.validator_list:
+            try:
+                v(field_data, all_data)
+                return
+            except ValidationError, e:
+                pass
+        raise ValidationError(self.error_message)
+
+class URLMimeTypeCheck(object):
+    "Checks that the provided URL points to a document with a listed mime type"
+    class CouldNotRetrieve(ValidationError):
+        pass
+    class InvalidContentType(ValidationError):
+        pass
+
+    def __init__(self, mime_type_list):
+        self.mime_type_list = mime_type_list
+
+    def __call__(self, field_data, all_data):
+        import urllib2
+        try:
+            isValidURL(field_data, all_data)
+        except ValidationError:
+            raise
+        try:
+            info = urllib2.urlopen(field_data).info()
+        except (urllib2.HTTPError, urllib2.URLError):
+            raise URLMimeTypeCheck.CouldNotRetrieve, _("Could not retrieve anything from %s.") % field_data
+        content_type = info['content-type']
+        if content_type not in self.mime_type_list:
+            raise URLMimeTypeCheck.InvalidContentType, _("The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'.") % {
+                'url': field_data, 'contenttype': content_type}
+
+class RelaxNGCompact(object):
+    "Validate against a Relax NG compact schema"
+    def __init__(self, schema_path, additional_root_element=None):
+        self.schema_path = schema_path
+        self.additional_root_element = additional_root_element
+
+    def __call__(self, field_data, all_data):
+        import os, tempfile
+        if self.additional_root_element:
+            field_data = '<%(are)s>%(data)s\n</%(are)s>' % {
+                'are': self.additional_root_element,
+                'data': field_data
+            }
+        filename = tempfile.mktemp() # Insecure, but nothing else worked
+        fp = open(filename, 'w')
+        fp.write(field_data)
+        fp.close()
+        if not os.path.exists(settings.JING_PATH):
+            raise Exception, "%s not found!" % settings.JING_PATH
+        p = os.popen('%s -c %s %s' % (settings.JING_PATH, self.schema_path, filename))
+        errors = [line.strip() for line in p.readlines()]
+        p.close()
+        os.unlink(filename)
+        display_errors = []
+        lines = field_data.split('\n')
+        for error in errors:
+            ignored, line, level, message = error.split(':', 3)
+            # Scrape the Jing error messages to reword them more nicely.
+            m = re.search(r'Expected "(.*?)" to terminate element starting on line (\d+)', message)
+            if m:
+                display_errors.append(_('Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "%(start)s".)') % \
+                    {'tag':m.group(1).replace('/', ''), 'line':m.group(2), 'start':lines[int(m.group(2)) - 1][:30]})
+                continue
+            if message.strip() == 'text not allowed here':
+                display_errors.append(_('Some text starting on line %(line)s is not allowed in that context. (Line starts with "%(start)s".)') % \
+                    {'line':line, 'start':lines[int(line) - 1][:30]})
+                continue
+            m = re.search(r'\s*attribute "(.*?)" not allowed at this point; ignored', message)
+            if m:
+                display_errors.append(_('"%(attr)s" on line %(line)s is an invalid attribute. (Line starts with "%(start)s".)') % \
+                    {'attr':m.group(1), 'line':line, 'start':lines[int(line) - 1][:30]})
+                continue
+            m = re.search(r'\s*unknown element "(.*?)"', message)
+            if m:
+                display_errors.append(_('"<%(tag)s>" on line %(line)s is an invalid tag. (Line starts with "%(start)s".)') % \
+                    {'tag':m.group(1), 'line':line, 'start':lines[int(line) - 1][:30]})
+                continue
+            if message.strip() == 'required attributes missing':
+                display_errors.append(_('A tag on line %(line)s is missing one or more required attributes. (Line starts with "%(start)s".)') % \
+                    {'line':line, 'start':lines[int(line) - 1][:30]})
+                continue
+            m = re.search(r'\s*bad value for attribute "(.*?)"', message)
+            if m:
+                display_errors.append(_('The "%(attr)s" attribute on line %(line)s has an invalid value. (Line starts with "%(start)s".)') % \
+                    {'attr':m.group(1), 'line':line, 'start':lines[int(line) - 1][:30]})
+                continue
+            # Failing all those checks, use the default error message.
+            display_error = 'Line %s: %s [%s]' % (line, message, level.strip())
+            display_errors.append(display_error)
+        if len(display_errors) > 0:
+            raise ValidationError, display_errors
diff --git a/webapp/django/core/xheaders.py b/webapp/django/core/xheaders.py
new file mode 100644
index 0000000..34335f1
--- /dev/null
+++ b/webapp/django/core/xheaders.py
@@ -0,0 +1,24 @@
+"""
+Pages in Django can are served up with custom HTTP headers containing useful
+information about those pages -- namely, the content type and object ID.
+
+This module contains utility functions for retrieving and doing interesting
+things with these special "X-Headers" (so called because the HTTP spec demands
+that custom headers are prefixed with "X-").
+
+Next time you're at slashdot.org, watch out for X-Fry and X-Bender. :)
+"""
+
+def populate_xheaders(request, response, model, object_id):
+    """
+    Adds the "X-Object-Type" and "X-Object-Id" headers to the given
+    HttpResponse according to the given model and object_id -- but only if the
+    given HttpRequest object has an IP address within the INTERNAL_IPS setting
+    or if the request is from a logged in staff member.
+    """
+    from django.conf import settings
+    if (request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS
+            or (hasattr(request, 'user') and request.user.is_authenticated()
+                and request.user.is_staff)):
+        response['X-Object-Type'] = "%s.%s" % (model._meta.app_label, model._meta.object_name.lower())
+        response['X-Object-Id'] = str(object_id)
diff --git a/webapp/django/db/__init__.py b/webapp/django/db/__init__.py
new file mode 100644
index 0000000..d15fd32
--- /dev/null
+++ b/webapp/django/db/__init__.py
@@ -0,0 +1,63 @@
+import os
+from django.conf import settings
+from django.core import signals
+from django.core.exceptions import ImproperlyConfigured
+from django.utils.functional import curry
+
+__all__ = ('backend', 'connection', 'DatabaseError', 'IntegrityError')
+
+if not settings.DATABASE_ENGINE:
+    settings.DATABASE_ENGINE = 'dummy'
+
+try:
+    # Most of the time, the database backend will be one of the official
+    # backends that ships with Django, so look there first.
+    _import_path = 'django.db.backends.'
+    backend = __import__('%s%s.base' % (_import_path, settings.DATABASE_ENGINE), {}, {}, [''])
+except ImportError, e:
+    # If the import failed, we might be looking for a database backend
+    # distributed external to Django. So we'll try that next.
+    try:
+        _import_path = ''
+        backend = __import__('%s.base' % settings.DATABASE_ENGINE, {}, {}, [''])
+    except ImportError, e_user:
+        # The database backend wasn't found. Display a helpful error message
+        # listing all possible (built-in) database backends.
+        backend_dir = os.path.join(__path__[0], 'backends')
+        try:
+            available_backends = [f for f in os.listdir(backend_dir) if not f.startswith('_') and not f.startswith('.') and not f.endswith('.py') and not f.endswith('.pyc')]
+        except EnvironmentError:
+            available_backends = []
+        available_backends.sort()
+        if settings.DATABASE_ENGINE not in available_backends:
+            raise ImproperlyConfigured, "%r isn't an available database backend. Available options are: %s\nError was: %s" % \
+                (settings.DATABASE_ENGINE, ", ".join(map(repr, available_backends)), e_user)
+        else:
+            raise # If there's some other error, this must be an error in Django itself.
+
+# Convenient aliases for backend bits.
+connection = backend.DatabaseWrapper(**settings.DATABASE_OPTIONS)
+DatabaseError = backend.DatabaseError
+IntegrityError = backend.IntegrityError
+
+# Register an event that closes the database connection
+# when a Django request is finished.
+def close_connection(**kwargs):
+    connection.close()
+signals.request_finished.connect(close_connection)
+
+# Register an event that resets connection.queries
+# when a Django request is started.
+def reset_queries(**kwargs):
+    connection.queries = []
+signals.request_started.connect(reset_queries)
+
+# Register an event that rolls back the connection
+# when a Django request has an exception.
+def _rollback_on_exception(**kwargs):
+    from django.db import transaction
+    try:
+        transaction.rollback_unless_managed()
+    except DatabaseError:
+        pass
+signals.got_request_exception.connect(_rollback_on_exception)
diff --git a/webapp/django/db/backends/__init__.py b/webapp/django/db/backends/__init__.py
new file mode 100644
index 0000000..074fa0e
--- /dev/null
+++ b/webapp/django/db/backends/__init__.py
@@ -0,0 +1,448 @@
+try:
+    # Only exists in Python 2.4+
+    from threading import local
+except ImportError:
+    # Import copy of _thread_local.py from Python 2.4
+    from django.utils._threading_local import local
+try:
+    set
+except NameError:
+    # Python 2.3 compat
+    from sets import Set as set
+
+from django.db.backends import util
+from django.utils import datetime_safe
+
+class BaseDatabaseWrapper(local):
+    """
+    Represents a database connection.
+    """
+    ops = None
+    def __init__(self, **kwargs):
+        self.connection = None
+        self.queries = []
+        self.options = kwargs
+
+    def _commit(self):
+        if self.connection is not None:
+            return self.connection.commit()
+
+    def _rollback(self):
+        if self.connection is not None:
+            return self.connection.rollback()
+
+    def _savepoint(self, sid):
+        if not self.features.uses_savepoints:
+            return
+        self.connection.cursor().execute(self.ops.savepoint_create_sql(sid))
+
+    def _savepoint_rollback(self, sid):
+        if not self.features.uses_savepoints:
+            return
+        self.connection.cursor().execute(self.ops.savepoint_rollback_sql(sid))
+
+    def _savepoint_commit(self, sid):
+        if not self.features.uses_savepoints:
+            return
+        self.connection.cursor().execute(self.ops.savepoint_commit_sql(sid))
+
+    def close(self):
+        if self.connection is not None:
+            self.connection.close()
+            self.connection = None
+
+    def cursor(self):
+        from django.conf import settings
+        cursor = self._cursor(settings)
+        if settings.DEBUG:
+            return self.make_debug_cursor(cursor)
+        return cursor
+
+    def make_debug_cursor(self, cursor):
+        return util.CursorDebugWrapper(cursor, self)
+
+class BaseDatabaseFeatures(object):
+    # True if django.db.backend.utils.typecast_timestamp is used on values
+    # returned from dates() calls.
+    needs_datetime_string_cast = True
+    uses_custom_query_class = False
+    empty_fetchmany_value = []
+    update_can_self_select = True
+    interprets_empty_strings_as_nulls = False
+    can_use_chunked_reads = True
+    uses_savepoints = False
+
+class BaseDatabaseOperations(object):
+    """
+    This class encapsulates all backend-specific differences, such as the way
+    a backend performs ordering or calculates the ID of a recently-inserted
+    row.
+    """
+    def autoinc_sql(self, table, column):
+        """
+        Returns any SQL needed to support auto-incrementing primary keys, or
+        None if no SQL is necessary.
+
+        This SQL is executed when a table is created.
+        """
+        return None
+
+    def date_extract_sql(self, lookup_type, field_name):
+        """
+        Given a lookup_type of 'year', 'month' or 'day', returns the SQL that
+        extracts a value from the given date field field_name.
+        """
+        raise NotImplementedError()
+
+    def date_trunc_sql(self, lookup_type, field_name):
+        """
+        Given a lookup_type of 'year', 'month' or 'day', returns the SQL that
+        truncates the given date field field_name to a DATE object with only
+        the given specificity.
+        """
+        raise NotImplementedError()
+
+    def datetime_cast_sql(self):
+        """
+        Returns the SQL necessary to cast a datetime value so that it will be
+        retrieved as a Python datetime object instead of a string.
+
+        This SQL should include a '%s' in place of the field's name.
+        """
+        return "%s"
+
+    def deferrable_sql(self):
+        """
+        Returns the SQL necessary to make a constraint "initially deferred"
+        during a CREATE TABLE statement.
+        """
+        return ''
+
+    def drop_foreignkey_sql(self):
+        """
+        Returns the SQL command that drops a foreign key.
+        """
+        return "DROP CONSTRAINT"
+
+    def drop_sequence_sql(self, table):
+        """
+        Returns any SQL necessary to drop the sequence for the given table.
+        Returns None if no SQL is necessary.
+        """
+        return None
+
+    def field_cast_sql(self, db_type):
+        """
+        Given a column type (e.g. 'BLOB', 'VARCHAR'), returns the SQL necessary
+        to cast it before using it in a WHERE statement. Note that the
+        resulting string should contain a '%s' placeholder for the column being
+        searched against.
+        """
+        return '%s'
+
+    def fulltext_search_sql(self, field_name):
+        """
+        Returns the SQL WHERE clause to use in order to perform a full-text
+        search of the given field_name. Note that the resulting string should
+        contain a '%s' placeholder for the value being searched against.
+        """
+        raise NotImplementedError('Full-text search is not implemented for this database backend')
+
+    def last_executed_query(self, cursor, sql, params):
+        """
+        Returns a string of the query last executed by the given cursor, with
+        placeholders replaced with actual values.
+
+        `sql` is the raw query containing placeholders, and `params` is the
+        sequence of parameters. These are used by default, but this method
+        exists for database backends to provide a better implementation
+        according to their own quoting schemes.
+        """
+        from django.utils.encoding import smart_unicode, force_unicode
+
+        # Convert params to contain Unicode values.
+        to_unicode = lambda s: force_unicode(s, strings_only=True)
+        if isinstance(params, (list, tuple)):
+            u_params = tuple([to_unicode(val) for val in params])
+        else:
+            u_params = dict([(to_unicode(k), to_unicode(v)) for k, v in params.items()])
+
+        return smart_unicode(sql) % u_params
+
+    def last_insert_id(self, cursor, table_name, pk_name):
+        """
+        Given a cursor object that has just performed an INSERT statement into
+        a table that has an auto-incrementing ID, returns the newly created ID.
+
+        This method also receives the table name and the name of the primary-key
+        column.
+        """
+        return cursor.lastrowid
+
+    def lookup_cast(self, lookup_type):
+        """
+        Returns the string to use in a query when performing lookups
+        ("contains", "like", etc). The resulting string should contain a '%s'
+        placeholder for the column being searched against.
+        """
+        return "%s"
+
+    def max_name_length(self):
+        """
+        Returns the maximum length of table and column names, or None if there
+        is no limit.
+        """
+        return None
+
+    def no_limit_value(self):
+        """
+        Returns the value to use for the LIMIT when we are wanting "LIMIT
+        infinity". Returns None if the limit clause can be omitted in this case.
+        """
+        # FIXME: API may need to change once Oracle backend is repaired.
+        raise NotImplementedError()
+
+    def pk_default_value(self):
+        """
+        Returns the value to use during an INSERT statement to specify that
+        the field should use its default value.
+        """
+        return 'DEFAULT'
+
+    def query_class(self, DefaultQueryClass):
+        """
+        Given the default Query class, returns a custom Query class
+        to use for this backend. Returns None if a custom Query isn't used.
+        See also BaseDatabaseFeatures.uses_custom_query_class, which regulates
+        whether this method is called at all.
+        """
+        return None
+
+    def quote_name(self, name):
+        """
+        Returns a quoted version of the given table, index or column name. Does
+        not quote the given name if it's already been quoted.
+        """
+        raise NotImplementedError()
+
+    def random_function_sql(self):
+        """
+        Returns a SQL expression that returns a random value.
+        """
+        return 'RANDOM()'
+
+    def regex_lookup(self, lookup_type):
+        """
+        Returns the string to use in a query when performing regular expression
+        lookups (using "regex" or "iregex"). The resulting string should
+        contain a '%s' placeholder for the column being searched against.
+
+        If the feature is not supported (or part of it is not supported), a
+        NotImplementedError exception can be raised.
+        """
+        raise NotImplementedError
+
+    def savepoint_create_sql(self, sid):
+        """
+        Returns the SQL for starting a new savepoint. Only required if the
+        "uses_savepoints" feature is True. The "sid" parameter is a string
+        for the savepoint id.
+        """
+        raise NotImplementedError
+
+    def savepoint_commit_sql(self, sid):
+        """
+        Returns the SQL for committing the given savepoint.
+        """
+        raise NotImplementedError
+
+    def savepoint_rollback_sql(self, sid):
+        """
+        Returns the SQL for rolling back the given savepoint.
+        """
+        raise NotImplementedError
+
+    def sql_flush(self, style, tables, sequences):
+        """
+        Returns a list of SQL statements required to remove all data from
+        the given database tables (without actually removing the tables
+        themselves).
+
+        The `style` argument is a Style object as returned by either
+        color_style() or no_style() in django.core.management.color.
+        """
+        raise NotImplementedError()
+
+    def sequence_reset_sql(self, style, model_list):
+        """
+        Returns a list of the SQL statements required to reset sequences for
+        the given models.
+
+        The `style` argument is a Style object as returned by either
+        color_style() or no_style() in django.core.management.color.
+        """
+        return [] # No sequence reset required by default.
+
+    def start_transaction_sql(self):
+        """
+        Returns the SQL statement required to start a transaction.
+        """
+        return "BEGIN;"
+
+    def sql_for_tablespace(self, tablespace, inline=False):
+        """
+        Returns the SQL that will be appended to tables or rows to define
+        a tablespace. Returns '' if the backend doesn't use tablespaces.
+        """
+        return ''
+
+    def prep_for_like_query(self, x):
+        """Prepares a value for use in a LIKE query."""
+        from django.utils.encoding import smart_unicode
+        return smart_unicode(x).replace("\\", "\\\\").replace("%", "\%").replace("_", "\_")
+
+    def value_to_db_date(self, value):
+        """
+        Transform a date value to an object compatible with what is expected
+        by the backend driver for date columns.
+        """
+        if value is None:
+            return None
+        return datetime_safe.new_date(value).strftime('%Y-%m-%d')
+
+    def value_to_db_datetime(self, value):
+        """
+        Transform a datetime value to an object compatible with what is expected
+        by the backend driver for datetime columns.
+        """
+        if value is None:
+            return None
+        return unicode(value)
+
+    def value_to_db_time(self, value):
+        """
+        Transform a datetime value to an object compatible with what is expected
+        by the backend driver for time columns.
+        """
+        if value is None:
+            return None
+        return unicode(value)
+
+    def value_to_db_decimal(self, value, max_digits, decimal_places):
+        """
+        Transform a decimal.Decimal value to an object compatible with what is
+        expected by the backend driver for decimal (numeric) columns.
+        """
+        if value is None:
+            return None
+        return util.format_number(value, max_digits, decimal_places)
+
+    def year_lookup_bounds(self, value):
+        """
+        Returns a two-elements list with the lower and upper bound to be used
+        with a BETWEEN operator to query a field value using a year lookup
+
+        `value` is an int, containing the looked-up year.
+        """
+        first = '%s-01-01 00:00:00'
+        second = '%s-12-31 23:59:59.999999'
+        return [first % value, second % value]
+
+    def year_lookup_bounds_for_date_field(self, value):
+        """
+        Returns a two-elements list with the lower and upper bound to be used
+        with a BETWEEN operator to query a DateField value using a year lookup
+
+        `value` is an int, containing the looked-up year.
+
+        By default, it just calls `self.year_lookup_bounds`. Some backends need
+        this hook because on their DB date fields can't be compared to values
+        which include a time part.
+        """
+        return self.year_lookup_bounds(value)
+
+class BaseDatabaseIntrospection(object):
+    """
+    This class encapsulates all backend-specific introspection utilities
+    """
+    data_types_reverse = {}
+
+    def __init__(self, connection):
+        self.connection = connection
+
+    def table_name_converter(self, name):
+        """Apply a conversion to the name for the purposes of comparison.
+
+        The default table name converter is for case sensitive comparison.
+        """
+        return name
+
+    def table_names(self):
+        "Returns a list of names of all tables that exist in the database."
+        cursor = self.connection.cursor()
+        return self.get_table_list(cursor)
+
+    def django_table_names(self, only_existing=False):
+        """
+        Returns a list of all table names that have associated Django models and
+        are in INSTALLED_APPS.
+
+        If only_existing is True, the resulting list will only include the tables
+        that actually exist in the database.
+        """
+        from django.db import models
+        tables = set()
+        for app in models.get_apps():
+            for model in models.get_models(app):
+                tables.add(model._meta.db_table)
+                tables.update([f.m2m_db_table() for f in model._meta.local_many_to_many])
+        if only_existing:
+            tables = [t for t in tables if t in self.table_names()]
+        return tables
+
+    def installed_models(self, tables):
+        "Returns a set of all models represented by the provided list of table names."
+        from django.db import models
+        all_models = []
+        for app in models.get_apps():
+            for model in models.get_models(app):
+                all_models.append(model)
+        return set([m for m in all_models
+            if self.table_name_converter(m._meta.db_table) in map(self.table_name_converter, tables)
+        ])
+
+    def sequence_list(self):
+        "Returns a list of information about all DB sequences for all models in all apps."
+        from django.db import models
+
+        apps = models.get_apps()
+        sequence_list = []
+
+        for app in apps:
+            for model in models.get_models(app):
+                for f in model._meta.local_fields:
+                    if isinstance(f, models.AutoField):
+                        sequence_list.append({'table': model._meta.db_table, 'column': f.column})
+                        break # Only one AutoField is allowed per model, so don't bother continuing.
+
+                for f in model._meta.local_many_to_many:
+                    sequence_list.append({'table': f.m2m_db_table(), 'column': None})
+
+        return sequence_list
+
+class BaseDatabaseClient(object):
+    """
+    This class encapsualtes all backend-specific methods for opening a
+    client shell
+    """
+    def runshell(self):
+        raise NotImplementedError()
+
+class BaseDatabaseValidation(object):
+    """
+    This class encapsualtes all backend-specific model validation.
+    """
+    def validate_field(self, errors, opts, f):
+        "By default, there is no backend-specific validation"
+        pass
+
diff --git a/webapp/django/db/backends/creation.py b/webapp/django/db/backends/creation.py
new file mode 100644
index 0000000..e746035
--- /dev/null
+++ b/webapp/django/db/backends/creation.py
@@ -0,0 +1,404 @@
+import sys
+import time
+try:
+    set
+except NameError:
+    # Python 2.3 compat
+    from sets import Set as set
+
+from django.conf import settings
+from django.core.management import call_command
+
+# The prefix to put on the default database name when creating
+# the test database.
+TEST_DATABASE_PREFIX = 'test_'
+
+class BaseDatabaseCreation(object):
+    """
+    This class encapsulates all backend-specific differences that pertain to
+    database *creation*, such as the column types to use for particular Django
+    Fields, the SQL used to create and destroy tables, and the creation and
+    destruction of test databases.
+    """
+    data_types = {}
+
+    def __init__(self, connection):
+        self.connection = connection
+
+    def sql_create_model(self, model, style, known_models=set()):
+        """
+        Returns the SQL required to create a single model, as a tuple of:
+            (list_of_sql, pending_references_dict)
+        """
+        from django.db import models
+
+        opts = model._meta
+        final_output = []
+        table_output = []
+        pending_references = {}
+        qn = self.connection.ops.quote_name
+        for f in opts.local_fields:
+            col_type = f.db_type()
+            tablespace = f.db_tablespace or opts.db_tablespace
+            if col_type is None:
+                # Skip ManyToManyFields, because they're not represented as
+                # database columns in this table.
+                continue
+            # Make the definition (e.g. 'foo VARCHAR(30)') for this field.
+            field_output = [style.SQL_FIELD(qn(f.column)),
+                style.SQL_COLTYPE(col_type)]
+            field_output.append(style.SQL_KEYWORD('%sNULL' % (not f.null and 'NOT ' or '')))
+            if f.primary_key:
+                field_output.append(style.SQL_KEYWORD('PRIMARY KEY'))
+            elif f.unique:
+                field_output.append(style.SQL_KEYWORD('UNIQUE'))
+            if tablespace and f.unique:
+                # We must specify the index tablespace inline, because we
+                # won't be generating a CREATE INDEX statement for this field.
+                field_output.append(self.connection.ops.tablespace_sql(tablespace, inline=True))
+            if f.rel:
+                ref_output, pending = self.sql_for_inline_foreign_key_references(f, known_models, style)
+                if pending:
+                    pr = pending_references.setdefault(f.rel.to, []).append((model, f))
+                else:
+                    field_output.extend(ref_output)
+            table_output.append(' '.join(field_output))
+        if opts.order_with_respect_to:
+            table_output.append(style.SQL_FIELD(qn('_order')) + ' ' + \
+                style.SQL_COLTYPE(models.IntegerField().db_type()) + ' ' + \
+                style.SQL_KEYWORD('NULL'))
+        for field_constraints in opts.unique_together:
+            table_output.append(style.SQL_KEYWORD('UNIQUE') + ' (%s)' % \
+                ", ".join([style.SQL_FIELD(qn(opts.get_field(f).column)) for f in field_constraints]))
+
+        full_statement = [style.SQL_KEYWORD('CREATE TABLE') + ' ' + style.SQL_TABLE(qn(opts.db_table)) + ' (']
+        for i, line in enumerate(table_output): # Combine and add commas.
+            full_statement.append('    %s%s' % (line, i < len(table_output)-1 and ',' or ''))
+        full_statement.append(')')
+        if opts.db_tablespace:
+            full_statement.append(self.connection.ops.tablespace_sql(opts.db_tablespace))
+        full_statement.append(';')
+        final_output.append('\n'.join(full_statement))
+
+        if opts.has_auto_field:
+            # Add any extra SQL needed to support auto-incrementing primary keys.
+            auto_column = opts.auto_field.db_column or opts.auto_field.name
+            autoinc_sql = self.connection.ops.autoinc_sql(opts.db_table, auto_column)
+            if autoinc_sql:
+                for stmt in autoinc_sql:
+                    final_output.append(stmt)
+
+        return final_output, pending_references
+
+    def sql_for_inline_foreign_key_references(self, field, known_models, style):
+        "Return the SQL snippet defining the foreign key reference for a field"
+        qn = self.connection.ops.quote_name
+        if field.rel.to in known_models:
+            output = [style.SQL_KEYWORD('REFERENCES') + ' ' + \
+                style.SQL_TABLE(qn(field.rel.to._meta.db_table)) + ' (' + \
+                style.SQL_FIELD(qn(field.rel.to._meta.get_field(field.rel.field_name).column)) + ')' +
+                self.connection.ops.deferrable_sql()
+            ]
+            pending = False
+        else:
+            # We haven't yet created the table to which this field
+            # is related, so save it for later.
+            output = []
+            pending = True
+
+        return output, pending
+
+    def sql_for_pending_references(self, model, style, pending_references):
+        "Returns any ALTER TABLE statements to add constraints after the fact."
+        from django.db.backends.util import truncate_name
+
+        qn = self.connection.ops.quote_name
+        final_output = []
+        opts = model._meta
+        if model in pending_references:
+            for rel_class, f in pending_references[model]:
+                rel_opts = rel_class._meta
+                r_table = rel_opts.db_table
+                r_col = f.column
+                table = opts.db_table
+                col = opts.get_field(f.rel.field_name).column
+                # For MySQL, r_name must be unique in the first 64 characters.
+                # So we are careful with character usage here.
+                r_name = '%s_refs_%s_%x' % (r_col, col, abs(hash((r_table, table))))
+                final_output.append(style.SQL_KEYWORD('ALTER TABLE') + ' %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s (%s)%s;' % \
+                    (qn(r_table), truncate_name(r_name, self.connection.ops.max_name_length()),
+                    qn(r_col), qn(table), qn(col),
+                    self.connection.ops.deferrable_sql()))
+            del pending_references[model]
+        return final_output
+
+    def sql_for_many_to_many(self, model, style):
+        "Return the CREATE TABLE statments for all the many-to-many tables defined on a model"
+        output = []
+        for f in model._meta.local_many_to_many:
+            output.extend(self.sql_for_many_to_many_field(model, f, style))
+        return output
+
+    def sql_for_many_to_many_field(self, model, f, style):
+        "Return the CREATE TABLE statements for a single m2m field"
+        from django.db import models
+        from django.db.backends.util import truncate_name
+
+        output = []
+        if f.creates_table:
+            opts = model._meta
+            qn = self.connection.ops.quote_name
+            tablespace = f.db_tablespace or opts.db_tablespace
+            if tablespace:
+                sql = self.connection.ops.tablespace_sql(tablespace, inline=True)
+                if sql:
+                    tablespace_sql = ' ' + sql
+                else:
+                    tablespace_sql = ''
+            else:
+                tablespace_sql = ''
+            table_output = [style.SQL_KEYWORD('CREATE TABLE') + ' ' + \
+                style.SQL_TABLE(qn(f.m2m_db_table())) + ' (']
+            table_output.append('    %s %s %s%s,' %
+                (style.SQL_FIELD(qn('id')),
+                style.SQL_COLTYPE(models.AutoField(primary_key=True).db_type()),
+                style.SQL_KEYWORD('NOT NULL PRIMARY KEY'),
+                tablespace_sql))
+
+            deferred = []
+            inline_output, deferred = self.sql_for_inline_many_to_many_references(model, f, style)
+            table_output.extend(inline_output)
+
+            table_output.append('    %s (%s, %s)%s' %
+                (style.SQL_KEYWORD('UNIQUE'),
+                style.SQL_FIELD(qn(f.m2m_column_name())),
+                style.SQL_FIELD(qn(f.m2m_reverse_name())),
+                tablespace_sql))
+            table_output.append(')')
+            if opts.db_tablespace:
+                # f.db_tablespace is only for indices, so ignore its value here.
+                table_output.append(self.connection.ops.tablespace_sql(opts.db_tablespace))
+            table_output.append(';')
+            output.append('\n'.join(table_output))
+
+            for r_table, r_col, table, col in deferred:
+                r_name = '%s_refs_%s_%x' % (r_col, col,
+                        abs(hash((r_table, table))))
+                output.append(style.SQL_KEYWORD('ALTER TABLE') + ' %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s (%s)%s;' %
+                (qn(r_table),
+                truncate_name(r_name, self.connection.ops.max_name_length()),
+                qn(r_col), qn(table), qn(col),
+                self.connection.ops.deferrable_sql()))
+
+            # Add any extra SQL needed to support auto-incrementing PKs
+            autoinc_sql = self.connection.ops.autoinc_sql(f.m2m_db_table(), 'id')
+            if autoinc_sql:
+                for stmt in autoinc_sql:
+                    output.append(stmt)
+        return output
+
+    def sql_for_inline_many_to_many_references(self, model, field, style):
+        "Create the references to other tables required by a many-to-many table"
+        from django.db import models
+        opts = model._meta
+        qn = self.connection.ops.quote_name
+
+        table_output = [
+            '    %s %s %s %s (%s)%s,' %
+                (style.SQL_FIELD(qn(field.m2m_column_name())),
+                style.SQL_COLTYPE(models.ForeignKey(model).db_type()),
+                style.SQL_KEYWORD('NOT NULL REFERENCES'),
+                style.SQL_TABLE(qn(opts.db_table)),
+                style.SQL_FIELD(qn(opts.pk.column)),
+                self.connection.ops.deferrable_sql()),
+            '    %s %s %s %s (%s)%s,' %
+                (style.SQL_FIELD(qn(field.m2m_reverse_name())),
+                style.SQL_COLTYPE(models.ForeignKey(field.rel.to).db_type()),
+                style.SQL_KEYWORD('NOT NULL REFERENCES'),
+                style.SQL_TABLE(qn(field.rel.to._meta.db_table)),
+                style.SQL_FIELD(qn(field.rel.to._meta.pk.column)),
+                self.connection.ops.deferrable_sql())
+        ]
+        deferred = []
+
+        return table_output, deferred
+
+    def sql_indexes_for_model(self, model, style):
+        "Returns the CREATE INDEX SQL statements for a single model"
+        output = []
+        for f in model._meta.local_fields:
+            output.extend(self.sql_indexes_for_field(model, f, style))
+        return output
+
+    def sql_indexes_for_field(self, model, f, style):
+        "Return the CREATE INDEX SQL statements for a single model field"
+        if f.db_index and not f.unique:
+            qn = self.connection.ops.quote_name
+            tablespace = f.db_tablespace or model._meta.db_tablespace
+            if tablespace:
+                sql = self.connection.ops.tablespace_sql(tablespace)
+                if sql:
+                    tablespace_sql = ' ' + sql
+                else:
+                    tablespace_sql = ''
+            else:
+                tablespace_sql = ''
+            output = [style.SQL_KEYWORD('CREATE INDEX') + ' ' +
+                style.SQL_TABLE(qn('%s_%s' % (model._meta.db_table, f.column))) + ' ' +
+                style.SQL_KEYWORD('ON') + ' ' +
+                style.SQL_TABLE(qn(model._meta.db_table)) + ' ' +
+                "(%s)" % style.SQL_FIELD(qn(f.column)) +
+                "%s;" % tablespace_sql]
+        else:
+            output = []
+        return output
+
+    def sql_destroy_model(self, model, references_to_delete, style):
+        "Return the DROP TABLE and restraint dropping statements for a single model"
+        # Drop the table now
+        qn = self.connection.ops.quote_name
+        output = ['%s %s;' % (style.SQL_KEYWORD('DROP TABLE'),
+                              style.SQL_TABLE(qn(model._meta.db_table)))]
+        if model in references_to_delete:
+            output.extend(self.sql_remove_table_constraints(model, references_to_delete, style))
+
+        if model._meta.has_auto_field:
+            ds = self.connection.ops.drop_sequence_sql(model._meta.db_table)
+            if ds:
+                output.append(ds)
+        return output
+
+    def sql_remove_table_constraints(self, model, references_to_delete, style):
+        from django.db.backends.util import truncate_name
+
+        output = []
+        qn = self.connection.ops.quote_name
+        for rel_class, f in references_to_delete[model]:
+            table = rel_class._meta.db_table
+            col = f.column
+            r_table = model._meta.db_table
+            r_col = model._meta.get_field(f.rel.field_name).column
+            r_name = '%s_refs_%s_%x' % (col, r_col, abs(hash((table, r_table))))
+            output.append('%s %s %s %s;' % \
+                (style.SQL_KEYWORD('ALTER TABLE'),
+                style.SQL_TABLE(qn(table)),
+                style.SQL_KEYWORD(self.connection.ops.drop_foreignkey_sql()),
+                style.SQL_FIELD(truncate_name(r_name, self.connection.ops.max_name_length()))))
+        del references_to_delete[model]
+        return output
+
+    def sql_destroy_many_to_many(self, model, f, style):
+        "Returns the DROP TABLE statements for a single m2m field"
+        qn = self.connection.ops.quote_name
+        output = []
+        if f.creates_table:
+            output.append("%s %s;" % (style.SQL_KEYWORD('DROP TABLE'),
+                style.SQL_TABLE(qn(f.m2m_db_table()))))
+            ds = self.connection.ops.drop_sequence_sql("%s_%s" % (model._meta.db_table, f.column))
+            if ds:
+                output.append(ds)
+        return output
+
+    def create_test_db(self, verbosity=1, autoclobber=False):
+        """
+        Creates a test database, prompting the user for confirmation if the
+        database already exists. Returns the name of the test database created.
+        """
+        if verbosity >= 1:
+            print "Creating test database..."
+
+        test_database_name = self._create_test_db(verbosity, autoclobber)
+
+        self.connection.close()
+        settings.DATABASE_NAME = test_database_name
+
+        call_command('syncdb', verbosity=verbosity, interactive=False)
+
+        if settings.CACHE_BACKEND.startswith('db://'):
+            cache_name = settings.CACHE_BACKEND[len('db://'):]
+            call_command('createcachetable', cache_name)
+
+        # Get a cursor (even though we don't need one yet). This has
+        # the side effect of initializing the test database.
+        cursor = self.connection.cursor()
+
+        return test_database_name
+
+    def _create_test_db(self, verbosity, autoclobber):
+        "Internal implementation - creates the test db tables."
+        suffix = self.sql_table_creation_suffix()
+
+        if settings.TEST_DATABASE_NAME:
+            test_database_name = settings.TEST_DATABASE_NAME
+        else:
+            test_database_name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME
+
+        qn = self.connection.ops.quote_name
+
+        # Create the test database and connect to it. We need to autocommit
+        # if the database supports it because PostgreSQL doesn't allow
+        # CREATE/DROP DATABASE statements within transactions.
+        cursor = self.connection.cursor()
+        self.set_autocommit()
+        try:
+            cursor.execute("CREATE DATABASE %s %s" % (qn(test_database_name), suffix))
+        except Exception, e:
+            sys.stderr.write("Got an error creating the test database: %s\n" % e)
+            if not autoclobber:
+                confirm = raw_input("Type 'yes' if you would like to try deleting the test database '%s', or 'no' to cancel: " % test_database_name)
+            if autoclobber or confirm == 'yes':
+                try:
+                    if verbosity >= 1:
+                        print "Destroying old test database..."
+                    cursor.execute("DROP DATABASE %s" % qn(test_database_name))
+                    if verbosity >= 1:
+                        print "Creating test database..."
+                    cursor.execute("CREATE DATABASE %s %s" % (qn(test_database_name), suffix))
+                except Exception, e:
+                    sys.stderr.write("Got an error recreating the test database: %s\n" % e)
+                    sys.exit(2)
+            else:
+                print "Tests cancelled."
+                sys.exit(1)
+
+        return test_database_name
+
+    def destroy_test_db(self, old_database_name, verbosity=1):
+        """
+        Destroy a test database, prompting the user for confirmation if the
+        database already exists. Returns the name of the test database created.
+        """
+        if verbosity >= 1:
+            print "Destroying test database..."
+        self.connection.close()
+        test_database_name = settings.DATABASE_NAME
+        settings.DATABASE_NAME = old_database_name
+
+        self._destroy_test_db(test_database_name, verbosity)
+
+    def _destroy_test_db(self, test_database_name, verbosity):
+        "Internal implementation - remove the test db tables."
+        # Remove the test database to clean up after
+        # ourselves. Connect to the previous database (not the test database)
+        # to do so, because it's not allowed to delete a database while being
+        # connected to it.
+        cursor = self.connection.cursor()
+        self.set_autocommit()
+        time.sleep(1) # To avoid "database is being accessed by other users" errors.
+        cursor.execute("DROP DATABASE %s" % self.connection.ops.quote_name(test_database_name))
+        self.connection.close()
+
+    def set_autocommit(self):
+        "Make sure a connection is in autocommit mode."
+        if hasattr(self.connection.connection, "autocommit"):
+            if callable(self.connection.connection.autocommit):
+                self.connection.connection.autocommit(True)
+            else:
+                self.connection.connection.autocommit = True
+        elif hasattr(self.connection.connection, "set_isolation_level"):
+            self.connection.connection.set_isolation_level(0)
+
+    def sql_table_creation_suffix(self):
+        "SQL to append to the end of the test table creation statements"
+        return ''
+
diff --git a/webapp/django/db/backends/dummy/__init__.py b/webapp/django/db/backends/dummy/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/db/backends/dummy/__init__.py
diff --git a/webapp/django/db/backends/dummy/base.py b/webapp/django/db/backends/dummy/base.py
new file mode 100644
index 0000000..530ea9c
--- /dev/null
+++ b/webapp/django/db/backends/dummy/base.py
@@ -0,0 +1,55 @@
+"""
+Dummy database backend for Django.
+
+Django uses this if the DATABASE_ENGINE setting is empty (None or empty string).
+
+Each of these API functions, except connection.close(), raises
+ImproperlyConfigured.
+"""
+
+from django.core.exceptions import ImproperlyConfigured
+from django.db.backends import *
+from django.db.backends.creation import BaseDatabaseCreation
+
+def complain(*args, **kwargs):
+    raise ImproperlyConfigured, "You haven't set the DATABASE_ENGINE setting yet."
+
+def ignore(*args, **kwargs):
+    pass
+
+class DatabaseError(Exception):
+    pass
+
+class IntegrityError(DatabaseError):
+    pass
+
+class DatabaseOperations(BaseDatabaseOperations):
+    quote_name = complain
+
+class DatabaseClient(BaseDatabaseClient):
+    runshell = complain
+    
+class DatabaseIntrospection(BaseDatabaseIntrospection):
+    get_table_list = complain
+    get_table_description = complain
+    get_relations = complain
+    get_indexes = complain
+    
+class DatabaseWrapper(object):    
+    operators = {}
+    cursor = complain
+    _commit = complain
+    _rollback = ignore
+
+    def __init__(self, *args, **kwargs):
+        super(DatabaseWrapper, self).__init__(*args, **kwargs)
+
+        self.features = BaseDatabaseFeatures()
+        self.ops = DatabaseOperations()
+        self.client = DatabaseClient()
+        self.creation = BaseDatabaseCreation(self)
+        self.introspection = DatabaseIntrospection(self)
+        self.validation = BaseDatabaseValidation()
+
+    def close(self):
+        pass
diff --git a/webapp/django/db/backends/mysql/__init__.py b/webapp/django/db/backends/mysql/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/db/backends/mysql/__init__.py
diff --git a/webapp/django/db/backends/mysql/base.py b/webapp/django/db/backends/mysql/base.py
new file mode 100644
index 0000000..07fb700
--- /dev/null
+++ b/webapp/django/db/backends/mysql/base.py
@@ -0,0 +1,227 @@
+"""
+MySQL database backend for Django.
+
+Requires MySQLdb: http://sourceforge.net/projects/mysql-python
+"""
+
+import re
+
+try:
+    import MySQLdb as Database
+except ImportError, e:
+    from django.core.exceptions import ImproperlyConfigured
+    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
+
+# We want version (1, 2, 1, 'final', 2) or later. We can't just use
+# lexicographic ordering in this check because then (1, 2, 1, 'gamma')
+# inadvertently passes the version test.
+version = Database.version_info
+if (version < (1,2,1) or (version[:3] == (1, 2, 1) and
+        (len(version) < 5 or version[3] != 'final' or version[4] < 2))):
+    from django.core.exceptions import ImproperlyConfigured
+    raise ImproperlyConfigured("MySQLdb-1.2.1p2 or newer is required; you have %s" % Database.__version__)
+
+from MySQLdb.converters import conversions
+from MySQLdb.constants import FIELD_TYPE, FLAG
+
+from django.db.backends import *
+from django.db.backends.mysql.client import DatabaseClient
+from django.db.backends.mysql.creation import DatabaseCreation
+from django.db.backends.mysql.introspection import DatabaseIntrospection
+from django.db.backends.mysql.validation import DatabaseValidation
+
+# Raise exceptions for database warnings if DEBUG is on
+from django.conf import settings
+if settings.DEBUG:
+    from warnings import filterwarnings
+    filterwarnings("error", category=Database.Warning)
+
+DatabaseError = Database.DatabaseError
+IntegrityError = Database.IntegrityError
+
+# MySQLdb-1.2.1 supports the Python boolean type, and only uses datetime
+# module for time-related columns; older versions could have used mx.DateTime
+# or strings if there were no datetime module. However, MySQLdb still returns
+# TIME columns as timedelta -- they are more like timedelta in terms of actual
+# behavior as they are signed and include days -- and Django expects time, so
+# we still need to override that.
+django_conversions = conversions.copy()
+django_conversions.update({
+    FIELD_TYPE.TIME: util.typecast_time,
+    FIELD_TYPE.DECIMAL: util.typecast_decimal,
+    FIELD_TYPE.NEWDECIMAL: util.typecast_decimal,
+})
+
+# This should match the numerical portion of the version numbers (we can treat
+# versions like 5.0.24 and 5.0.24a as the same). Based on the list of version
+# at http://dev.mysql.com/doc/refman/4.1/en/news.html and
+# http://dev.mysql.com/doc/refman/5.0/en/news.html .
+server_version_re = re.compile(r'(\d{1,2})\.(\d{1,2})\.(\d{1,2})')
+
+# MySQLdb-1.2.1 and newer automatically makes use of SHOW WARNINGS on
+# MySQL-4.1 and newer, so the MysqlDebugWrapper is unnecessary. Since the
+# point is to raise Warnings as exceptions, this can be done with the Python
+# warning module, and this is setup when the connection is created, and the
+# standard util.CursorDebugWrapper can be used. Also, using sql_mode
+# TRADITIONAL will automatically cause most warnings to be treated as errors.
+
+class DatabaseFeatures(BaseDatabaseFeatures):
+    empty_fetchmany_value = ()
+    update_can_self_select = False
+
+class DatabaseOperations(BaseDatabaseOperations):
+    def date_extract_sql(self, lookup_type, field_name):
+        # http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
+        return "EXTRACT(%s FROM %s)" % (lookup_type.upper(), field_name)
+
+    def date_trunc_sql(self, lookup_type, field_name):
+        fields = ['year', 'month', 'day', 'hour', 'minute', 'second']
+        format = ('%%Y-', '%%m', '-%%d', ' %%H:', '%%i', ':%%s') # Use double percents to escape.
+        format_def = ('0000-', '01', '-01', ' 00:', '00', ':00')
+        try:
+            i = fields.index(lookup_type) + 1
+        except ValueError:
+            sql = field_name
+        else:
+            format_str = ''.join([f for f in format[:i]] + [f for f in format_def[i:]])
+            sql = "CAST(DATE_FORMAT(%s, '%s') AS DATETIME)" % (field_name, format_str)
+        return sql
+
+    def drop_foreignkey_sql(self):
+        return "DROP FOREIGN KEY"
+
+    def fulltext_search_sql(self, field_name):
+        return 'MATCH (%s) AGAINST (%%s IN BOOLEAN MODE)' % field_name
+
+    def no_limit_value(self):
+        # 2**64 - 1, as recommended by the MySQL documentation
+        return 18446744073709551615L
+
+    def quote_name(self, name):
+        if name.startswith("`") and name.endswith("`"):
+            return name # Quoting once is enough.
+        return "`%s`" % name
+
+    def random_function_sql(self):
+        return 'RAND()'
+
+    def sql_flush(self, style, tables, sequences):
+        # NB: The generated SQL below is specific to MySQL
+        # 'TRUNCATE x;', 'TRUNCATE y;', 'TRUNCATE z;'... style SQL statements
+        # to clear all tables of all data
+        if tables:
+            sql = ['SET FOREIGN_KEY_CHECKS = 0;']
+            for table in tables:
+                sql.append('%s %s;' % (style.SQL_KEYWORD('TRUNCATE'), style.SQL_FIELD(self.quote_name(table))))
+            sql.append('SET FOREIGN_KEY_CHECKS = 1;')
+
+            # 'ALTER TABLE table AUTO_INCREMENT = 1;'... style SQL statements
+            # to reset sequence indices
+            sql.extend(["%s %s %s %s %s;" % \
+                (style.SQL_KEYWORD('ALTER'),
+                 style.SQL_KEYWORD('TABLE'),
+                 style.SQL_TABLE(self.quote_name(sequence['table'])),
+                 style.SQL_KEYWORD('AUTO_INCREMENT'),
+                 style.SQL_FIELD('= 1'),
+                ) for sequence in sequences])
+            return sql
+        else:
+            return []
+
+    def value_to_db_datetime(self, value):
+        # MySQL doesn't support microseconds
+        if value is None:
+            return None
+        return unicode(value.replace(microsecond=0))
+
+    def value_to_db_time(self, value):
+        # MySQL doesn't support microseconds
+        if value is None:
+            return None
+        return unicode(value.replace(microsecond=0))
+
+    def year_lookup_bounds(self, value):
+        # Again, no microseconds
+        first = '%s-01-01 00:00:00'
+        second = '%s-12-31 23:59:59.99'
+        return [first % value, second % value]
+
+class DatabaseWrapper(BaseDatabaseWrapper):
+
+    operators = {
+        'exact': '= %s',
+        'iexact': 'LIKE %s',
+        'contains': 'LIKE BINARY %s',
+        'icontains': 'LIKE %s',
+        'regex': 'REGEXP BINARY %s',
+        'iregex': 'REGEXP %s',
+        'gt': '> %s',
+        'gte': '>= %s',
+        'lt': '< %s',
+        'lte': '<= %s',
+        'startswith': 'LIKE BINARY %s',
+        'endswith': 'LIKE BINARY %s',
+        'istartswith': 'LIKE %s',
+        'iendswith': 'LIKE %s',
+    }
+
+    def __init__(self, **kwargs):
+        super(DatabaseWrapper, self).__init__(**kwargs)
+        self.server_version = None
+
+        self.features = DatabaseFeatures()
+        self.ops = DatabaseOperations()
+        self.client = DatabaseClient()
+        self.creation = DatabaseCreation(self)
+        self.introspection = DatabaseIntrospection(self)
+        self.validation = DatabaseValidation()
+
+    def _valid_connection(self):
+        if self.connection is not None:
+            try:
+                self.connection.ping()
+                return True
+            except DatabaseError:
+                self.connection.close()
+                self.connection = None
+        return False
+
+    def _cursor(self, settings):
+        if not self._valid_connection():
+            kwargs = {
+                'conv': django_conversions,
+                'charset': 'utf8',
+                'use_unicode': True,
+            }
+            if settings.DATABASE_USER:
+                kwargs['user'] = settings.DATABASE_USER
+            if settings.DATABASE_NAME:
+                kwargs['db'] = settings.DATABASE_NAME
+            if settings.DATABASE_PASSWORD:
+                kwargs['passwd'] = settings.DATABASE_PASSWORD
+            if settings.DATABASE_HOST.startswith('/'):
+                kwargs['unix_socket'] = settings.DATABASE_HOST
+            elif settings.DATABASE_HOST:
+                kwargs['host'] = settings.DATABASE_HOST
+            if settings.DATABASE_PORT:
+                kwargs['port'] = int(settings.DATABASE_PORT)
+            kwargs.update(self.options)
+            self.connection = Database.connect(**kwargs)
+        cursor = self.connection.cursor()
+        return cursor
+
+    def _rollback(self):
+        try:
+            BaseDatabaseWrapper._rollback(self)
+        except Database.NotSupportedError:
+            pass
+
+    def get_server_version(self):
+        if not self.server_version:
+            if not self._valid_connection():
+                self.cursor()
+            m = server_version_re.match(self.connection.get_server_info())
+            if not m:
+                raise Exception('Unable to determine MySQL version from version string %r' % self.connection.get_server_info())
+            self.server_version = tuple([int(x) for x in m.groups()])
+        return self.server_version
diff --git a/webapp/django/db/backends/mysql/client.py b/webapp/django/db/backends/mysql/client.py
new file mode 100644
index 0000000..2475886
--- /dev/null
+++ b/webapp/django/db/backends/mysql/client.py
@@ -0,0 +1,29 @@
+from django.db.backends import BaseDatabaseClient
+from django.conf import settings
+import os
+
+class DatabaseClient(BaseDatabaseClient):
+    def runshell(self):
+        args = ['']
+        db = settings.DATABASE_OPTIONS.get('db', settings.DATABASE_NAME)
+        user = settings.DATABASE_OPTIONS.get('user', settings.DATABASE_USER)
+        passwd = settings.DATABASE_OPTIONS.get('passwd', settings.DATABASE_PASSWORD)
+        host = settings.DATABASE_OPTIONS.get('host', settings.DATABASE_HOST)
+        port = settings.DATABASE_OPTIONS.get('port', settings.DATABASE_PORT)
+        defaults_file = settings.DATABASE_OPTIONS.get('read_default_file')
+        # Seems to be no good way to set sql_mode with CLI
+    
+        if defaults_file:
+            args += ["--defaults-file=%s" % defaults_file]
+        if user:
+            args += ["--user=%s" % user]
+        if passwd:
+            args += ["--password=%s" % passwd]
+        if host:
+            args += ["--host=%s" % host]
+        if port:
+            args += ["--port=%s" % port]
+        if db:
+            args += [db]
+
+        os.execvp('mysql', args)
diff --git a/webapp/django/db/backends/mysql/creation.py b/webapp/django/db/backends/mysql/creation.py
new file mode 100644
index 0000000..96faaac
--- /dev/null
+++ b/webapp/django/db/backends/mysql/creation.py
@@ -0,0 +1,68 @@
+from django.conf import settings
+from django.db.backends.creation import BaseDatabaseCreation
+
+class DatabaseCreation(BaseDatabaseCreation):
+    # This dictionary maps Field objects to their associated MySQL column
+    # types, as strings. Column-type strings can contain format strings; they'll
+    # be interpolated against the values of Field.__dict__ before being output.
+    # If a column type is set to None, it won't be included in the output.
+    data_types = {
+        'AutoField':         'integer AUTO_INCREMENT',
+        'BooleanField':      'bool',
+        'CharField':         'varchar(%(max_length)s)',
+        'CommaSeparatedIntegerField': 'varchar(%(max_length)s)',
+        'DateField':         'date',
+        'DateTimeField':     'datetime',
+        'DecimalField':      'numeric(%(max_digits)s, %(decimal_places)s)',
+        'FileField':         'varchar(%(max_length)s)',
+        'FilePathField':     'varchar(%(max_length)s)',
+        'FloatField':        'double precision',
+        'IntegerField':      'integer',
+        'IPAddressField':    'char(15)',
+        'NullBooleanField':  'bool',
+        'OneToOneField':     'integer',
+        'PhoneNumberField':  'varchar(20)',
+        'PositiveIntegerField': 'integer UNSIGNED',
+        'PositiveSmallIntegerField': 'smallint UNSIGNED',
+        'SlugField':         'varchar(%(max_length)s)',
+        'SmallIntegerField': 'smallint',
+        'TextField':         'longtext',
+        'TimeField':         'time',
+        'USStateField':      'varchar(2)',
+    }
+
+    def sql_table_creation_suffix(self):
+        suffix = []
+        if settings.TEST_DATABASE_CHARSET:
+            suffix.append('CHARACTER SET %s' % settings.TEST_DATABASE_CHARSET)
+        if settings.TEST_DATABASE_COLLATION:
+            suffix.append('COLLATE %s' % settings.TEST_DATABASE_COLLATION)
+        return ' '.join(suffix)
+
+    def sql_for_inline_foreign_key_references(self, field, known_models, style):
+        "All inline references are pending under MySQL"
+        return [], True
+        
+    def sql_for_inline_many_to_many_references(self, model, field, style):
+        from django.db import models
+        opts = model._meta
+        qn = self.connection.ops.quote_name
+        
+        table_output = [
+            '    %s %s %s,' %
+                (style.SQL_FIELD(qn(field.m2m_column_name())),
+                style.SQL_COLTYPE(models.ForeignKey(model).db_type()),
+                style.SQL_KEYWORD('NOT NULL')),
+            '    %s %s %s,' %
+            (style.SQL_FIELD(qn(field.m2m_reverse_name())),
+            style.SQL_COLTYPE(models.ForeignKey(field.rel.to).db_type()),
+            style.SQL_KEYWORD('NOT NULL'))
+        ]
+        deferred = [
+            (field.m2m_db_table(), field.m2m_column_name(), opts.db_table,
+                opts.pk.column),
+            (field.m2m_db_table(), field.m2m_reverse_name(),
+                field.rel.to._meta.db_table, field.rel.to._meta.pk.column)
+            ]
+        return table_output, deferred
+        
\ No newline at end of file
diff --git a/webapp/django/db/backends/mysql/introspection.py b/webapp/django/db/backends/mysql/introspection.py
new file mode 100644
index 0000000..d8d59b7
--- /dev/null
+++ b/webapp/django/db/backends/mysql/introspection.py
@@ -0,0 +1,98 @@
+from django.db.backends import BaseDatabaseIntrospection
+from MySQLdb import ProgrammingError, OperationalError
+from MySQLdb.constants import FIELD_TYPE
+import re
+
+foreign_key_re = re.compile(r"\sCONSTRAINT `[^`]*` FOREIGN KEY \(`([^`]*)`\) REFERENCES `([^`]*)` \(`([^`]*)`\)")
+
+class DatabaseIntrospection(BaseDatabaseIntrospection):
+    data_types_reverse = {
+        FIELD_TYPE.BLOB: 'TextField',
+        FIELD_TYPE.CHAR: 'CharField',
+        FIELD_TYPE.DECIMAL: 'DecimalField',
+        FIELD_TYPE.NEWDECIMAL: 'DecimalField',
+        FIELD_TYPE.DATE: 'DateField',
+        FIELD_TYPE.DATETIME: 'DateTimeField',
+        FIELD_TYPE.DOUBLE: 'FloatField',
+        FIELD_TYPE.FLOAT: 'FloatField',
+        FIELD_TYPE.INT24: 'IntegerField',
+        FIELD_TYPE.LONG: 'IntegerField',
+        FIELD_TYPE.LONGLONG: 'IntegerField',
+        FIELD_TYPE.SHORT: 'IntegerField',
+        FIELD_TYPE.STRING: 'CharField',
+        FIELD_TYPE.TIMESTAMP: 'DateTimeField',
+        FIELD_TYPE.TINY: 'IntegerField',
+        FIELD_TYPE.TINY_BLOB: 'TextField',
+        FIELD_TYPE.MEDIUM_BLOB: 'TextField',
+        FIELD_TYPE.LONG_BLOB: 'TextField',
+        FIELD_TYPE.VAR_STRING: 'CharField',
+    }
+
+    def get_table_list(self, cursor):
+        "Returns a list of table names in the current database."
+        cursor.execute("SHOW TABLES")
+        return [row[0] for row in cursor.fetchall()]
+
+    def get_table_description(self, cursor, table_name):
+        "Returns a description of the table, with the DB-API cursor.description interface."
+        cursor.execute("SELECT * FROM %s LIMIT 1" % self.connection.ops.quote_name(table_name))
+        return cursor.description
+
+    def _name_to_index(self, cursor, table_name):
+        """
+        Returns a dictionary of {field_name: field_index} for the given table.
+        Indexes are 0-based.
+        """
+        return dict([(d[0], i) for i, d in enumerate(self.get_table_description(cursor, table_name))])
+
+    def get_relations(self, cursor, table_name):
+        """
+        Returns a dictionary of {field_index: (field_index_other_table, other_table)}
+        representing all relationships to the given table. Indexes are 0-based.
+        """
+        my_field_dict = self._name_to_index(cursor, table_name)
+        constraints = []
+        relations = {}
+        try:
+            # This should work for MySQL 5.0.
+            cursor.execute("""
+                SELECT column_name, referenced_table_name, referenced_column_name
+                FROM information_schema.key_column_usage
+                WHERE table_name = %s
+                    AND table_schema = DATABASE()
+                    AND referenced_table_name IS NOT NULL
+                    AND referenced_column_name IS NOT NULL""", [table_name])
+            constraints.extend(cursor.fetchall())
+        except (ProgrammingError, OperationalError):
+            # Fall back to "SHOW CREATE TABLE", for previous MySQL versions.
+            # Go through all constraints and save the equal matches.
+            cursor.execute("SHOW CREATE TABLE %s" % self.connection.ops.quote_name(table_name))
+            for row in cursor.fetchall():
+                pos = 0
+                while True:
+                    match = foreign_key_re.search(row[1], pos)
+                    if match == None:
+                        break
+                    pos = match.end()
+                    constraints.append(match.groups())
+
+        for my_fieldname, other_table, other_field in constraints:
+            other_field_index = self._name_to_index(cursor, other_table)[other_field]
+            my_field_index = my_field_dict[my_fieldname]
+            relations[my_field_index] = (other_field_index, other_table)
+
+        return relations
+
+    def get_indexes(self, cursor, table_name):
+        """
+        Returns a dictionary of fieldname -> infodict for the given table,
+        where each infodict is in the format:
+            {'primary_key': boolean representing whether it's the primary key,
+             'unique': boolean representing whether it's a unique index}
+        """
+        cursor.execute("SHOW INDEX FROM %s" % self.connection.ops.quote_name(table_name))
+        indexes = {}
+        for row in cursor.fetchall():
+            indexes[row[4]] = {'primary_key': (row[2] == 'PRIMARY'), 'unique': not bool(row[1])}
+        return indexes
+
diff --git a/webapp/django/db/backends/mysql/validation.py b/webapp/django/db/backends/mysql/validation.py
new file mode 100644
index 0000000..85354a8
--- /dev/null
+++ b/webapp/django/db/backends/mysql/validation.py
@@ -0,0 +1,13 @@
+from django.db.backends import BaseDatabaseValidation
+
+class DatabaseValidation(BaseDatabaseValidation):
+    def validate_field(self, errors, opts, f):
+        "Prior to MySQL 5.0.3, character fields could not exceed 255 characters"
+        from django.db import models
+        from django.db import connection
+        db_version = connection.get_server_version()
+        if db_version < (5, 0, 3) and isinstance(f, (models.CharField, models.CommaSeparatedIntegerField, models.SlugField)) and f.max_length > 255:
+            errors.add(opts,
+                '"%s": %s cannot have a "max_length" greater than 255 when you are using a version of MySQL prior to 5.0.3 (you are using %s).' % 
+                (f.name, f.__class__.__name__, '.'.join([str(n) for n in db_version[:3]])))
+    
\ No newline at end of file
diff --git a/webapp/django/db/backends/oracle/__init__.py b/webapp/django/db/backends/oracle/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/db/backends/oracle/__init__.py
diff --git a/webapp/django/db/backends/oracle/base.py b/webapp/django/db/backends/oracle/base.py
new file mode 100644
index 0000000..b8bc6d0
--- /dev/null
+++ b/webapp/django/db/backends/oracle/base.py
@@ -0,0 +1,425 @@
+"""
+Oracle database backend for Django.
+
+Requires cx_Oracle: http://www.python.net/crew/atuining/cx_Oracle/
+"""
+
+import os
+import datetime
+import time
+
+# Oracle takes client-side character set encoding from the environment.
+os.environ['NLS_LANG'] = '.UTF8'
+try:
+    import cx_Oracle as Database
+except ImportError, e:
+    from django.core.exceptions import ImproperlyConfigured
+    raise ImproperlyConfigured("Error loading cx_Oracle module: %s" % e)
+
+from django.db.backends import *
+from django.db.backends.oracle import query
+from django.db.backends.oracle.client import DatabaseClient
+from django.db.backends.oracle.creation import DatabaseCreation
+from django.db.backends.oracle.introspection import DatabaseIntrospection
+from django.utils.encoding import smart_str, force_unicode
+
+DatabaseError = Database.Error
+IntegrityError = Database.IntegrityError
+
+
+class DatabaseFeatures(BaseDatabaseFeatures):
+    empty_fetchmany_value = ()
+    needs_datetime_string_cast = False
+    uses_custom_query_class = True
+    interprets_empty_strings_as_nulls = True
+
+
+class DatabaseOperations(BaseDatabaseOperations):
+    def autoinc_sql(self, table, column):
+        # To simulate auto-incrementing primary keys in Oracle, we have to
+        # create a sequence and a trigger.
+        sq_name = get_sequence_name(table)
+        tr_name = get_trigger_name(table)
+        tbl_name = self.quote_name(table)
+        col_name = self.quote_name(column)
+        sequence_sql = """
+            DECLARE
+                i INTEGER;
+            BEGIN
+                SELECT COUNT(*) INTO i FROM USER_CATALOG
+                    WHERE TABLE_NAME = '%(sq_name)s' AND TABLE_TYPE = 'SEQUENCE';
+                IF i = 0 THEN
+                    EXECUTE IMMEDIATE 'CREATE SEQUENCE %(sq_name)s';
+                END IF;
+            END;
+            /""" % locals()
+        trigger_sql = """
+            CREATE OR REPLACE TRIGGER %(tr_name)s
+            BEFORE INSERT ON %(tbl_name)s
+            FOR EACH ROW
+            WHEN (new.%(col_name)s IS NULL)
+                BEGIN
+                    SELECT %(sq_name)s.nextval
+                    INTO :new.%(col_name)s FROM dual;
+                END;
+                /""" % locals()
+        return sequence_sql, trigger_sql
+
+    def date_extract_sql(self, lookup_type, field_name):
+        # http://download-east.oracle.com/docs/cd/B10501_01/server.920/a96540/functions42a.htm#1017163
+        return "EXTRACT(%s FROM %s)" % (lookup_type, field_name)
+
+    def date_trunc_sql(self, lookup_type, field_name):
+        # Oracle uses TRUNC() for both dates and numbers.
+        # http://download-east.oracle.com/docs/cd/B10501_01/server.920/a96540/functions155a.htm#SQLRF06151
+        if lookup_type == 'day':
+            sql = 'TRUNC(%s)' % field_name
+        else:
+            sql = "TRUNC(%s, '%s')" % (field_name, lookup_type)
+        return sql
+
+    def datetime_cast_sql(self):
+        return "TO_TIMESTAMP(%s, 'YYYY-MM-DD HH24:MI:SS.FF')"
+
+    def deferrable_sql(self):
+        return " DEFERRABLE INITIALLY DEFERRED"
+
+    def drop_sequence_sql(self, table):
+        return "DROP SEQUENCE %s;" % self.quote_name(get_sequence_name(table))
+
+    def field_cast_sql(self, db_type):
+        if db_type and db_type.endswith('LOB'):
+            return "DBMS_LOB.SUBSTR(%s)"
+        else:
+            return "%s"
+
+    def last_insert_id(self, cursor, table_name, pk_name):
+        sq_name = util.truncate_name(table_name, self.max_name_length() - 3)
+        cursor.execute('SELECT %s_sq.currval FROM dual' % sq_name)
+        return cursor.fetchone()[0]
+
+    def lookup_cast(self, lookup_type):
+        if lookup_type in ('iexact', 'icontains', 'istartswith', 'iendswith'):
+            return "UPPER(%s)"
+        return "%s"
+
+    def max_name_length(self):
+        return 30
+
+    def query_class(self, DefaultQueryClass):
+        return query.query_class(DefaultQueryClass, Database)
+
+    def quote_name(self, name):
+        # SQL92 requires delimited (quoted) names to be case-sensitive.  When
+        # not quoted, Oracle has case-insensitive behavior for identifiers, but
+        # always defaults to uppercase.
+        # We simplify things by making Oracle identifiers always uppercase.
+        if not name.startswith('"') and not name.endswith('"'):
+            name = '"%s"' % util.truncate_name(name.upper(), self.max_name_length())
+        return name.upper()
+
+    def random_function_sql(self):
+        return "DBMS_RANDOM.RANDOM"
+
+    def regex_lookup_9(self, lookup_type):
+        raise NotImplementedError("Regexes are not supported in Oracle before version 10g.")
+
+    def regex_lookup_10(self, lookup_type):
+        if lookup_type == 'regex':
+            match_option = "'c'"
+        else:
+            match_option = "'i'"
+        return 'REGEXP_LIKE(%%s, %%s, %s)' % match_option
+
+    def regex_lookup(self, lookup_type):
+        # If regex_lookup is called before it's been initialized, then create
+        # a cursor to initialize it and recur.
+        from django.db import connection
+        connection.cursor()
+        return connection.ops.regex_lookup(lookup_type)
+
+    def sql_flush(self, style, tables, sequences):
+        # Return a list of 'TRUNCATE x;', 'TRUNCATE y;',
+        # 'TRUNCATE z;'... style SQL statements
+        if tables:
+            # Oracle does support TRUNCATE, but it seems to get us into
+            # FK referential trouble, whereas DELETE FROM table works.
+            sql = ['%s %s %s;' % \
+                    (style.SQL_KEYWORD('DELETE'),
+                     style.SQL_KEYWORD('FROM'),
+                     style.SQL_FIELD(self.quote_name(table))
+                     ) for table in tables]
+            # Since we've just deleted all the rows, running our sequence
+            # ALTER code will reset the sequence to 0.
+            for sequence_info in sequences:
+                sequence_name = get_sequence_name(sequence_info['table'])
+                table_name = self.quote_name(sequence_info['table'])
+                column_name = self.quote_name(sequence_info['column'] or 'id')
+                query = _get_sequence_reset_sql() % {'sequence': sequence_name,
+                                                     'table': table_name,
+                                                     'column': column_name}
+                sql.append(query)
+            return sql
+        else:
+            return []
+
+    def sequence_reset_sql(self, style, model_list):
+        from django.db import models
+        output = []
+        query = _get_sequence_reset_sql()
+        for model in model_list:
+            for f in model._meta.local_fields:
+                if isinstance(f, models.AutoField):
+                    table_name = self.quote_name(model._meta.db_table)
+                    sequence_name = get_sequence_name(model._meta.db_table)
+                    column_name = self.quote_name(f.column)
+                    output.append(query % {'sequence': sequence_name,
+                                           'table': table_name,
+                                           'column': column_name})
+                    break # Only one AutoField is allowed per model, so don't bother continuing.
+            for f in model._meta.many_to_many:
+                table_name = self.quote_name(f.m2m_db_table())
+                sequence_name = get_sequence_name(f.m2m_db_table())
+                column_name = self.quote_name('id')
+                output.append(query % {'sequence': sequence_name,
+                                       'table': table_name,
+                                       'column': column_name})
+        return output
+
+    def start_transaction_sql(self):
+        return ''
+
+    def tablespace_sql(self, tablespace, inline=False):
+        return "%sTABLESPACE %s" % ((inline and "USING INDEX " or ""), self.quote_name(tablespace))
+
+    def value_to_db_time(self, value):
+        if value is None:
+            return None
+        if isinstance(value, basestring):
+            return datetime.datetime(*(time.strptime(value, '%H:%M:%S')[:6]))
+        return datetime.datetime(1900, 1, 1, value.hour, value.minute,
+                                 value.second, value.microsecond)
+
+    def year_lookup_bounds_for_date_field(self, value):
+        first = '%s-01-01'
+        second = '%s-12-31'
+        return [first % value, second % value]
+
+
+class DatabaseWrapper(BaseDatabaseWrapper):
+
+    operators = {
+        'exact': '= %s',
+        'iexact': '= UPPER(%s)',
+        'contains': "LIKEC %s ESCAPE '\\'",
+        'icontains': "LIKEC UPPER(%s) ESCAPE '\\'",
+        'gt': '> %s',
+        'gte': '>= %s',
+        'lt': '< %s',
+        'lte': '<= %s',
+        'startswith': "LIKEC %s ESCAPE '\\'",
+        'endswith': "LIKEC %s ESCAPE '\\'",
+        'istartswith': "LIKEC UPPER(%s) ESCAPE '\\'",
+        'iendswith': "LIKEC UPPER(%s) ESCAPE '\\'",
+    }
+    oracle_version = None
+
+    def __init__(self, *args, **kwargs):
+        super(DatabaseWrapper, self).__init__(*args, **kwargs)
+
+        self.features = DatabaseFeatures()
+        self.ops = DatabaseOperations()
+        self.client = DatabaseClient()
+        self.creation = DatabaseCreation(self)
+        self.introspection = DatabaseIntrospection(self)
+        self.validation = BaseDatabaseValidation()
+
+    def _valid_connection(self):
+        return self.connection is not None
+
+    def _cursor(self, settings):
+        cursor = None
+        if not self._valid_connection():
+            if len(settings.DATABASE_HOST.strip()) == 0:
+                settings.DATABASE_HOST = 'localhost'
+            if len(settings.DATABASE_PORT.strip()) != 0:
+                dsn = Database.makedsn(settings.DATABASE_HOST, int(settings.DATABASE_PORT), settings.DATABASE_NAME)
+                self.connection = Database.connect(settings.DATABASE_USER, settings.DATABASE_PASSWORD, dsn, **self.options)
+            else:
+                conn_string = "%s/%s@%s" % (settings.DATABASE_USER, settings.DATABASE_PASSWORD, settings.DATABASE_NAME)
+                self.connection = Database.connect(conn_string, **self.options)
+            cursor = FormatStylePlaceholderCursor(self.connection)
+            # Set oracle date to ansi date format.  This only needs to execute
+            # once when we create a new connection.
+            cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD' "
+                           "NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF'")
+            try:
+                self.oracle_version = int(self.connection.version.split('.')[0])
+                # There's no way for the DatabaseOperations class to know the
+                # currently active Oracle version, so we do some setups here.
+                # TODO: Multi-db support will need a better solution (a way to
+                # communicate the current version).
+                if self.oracle_version <= 9:
+                    self.ops.regex_lookup = self.ops.regex_lookup_9
+                else:
+                    self.ops.regex_lookup = self.ops.regex_lookup_10
+            except ValueError:
+                pass
+            try:
+                self.connection.stmtcachesize = 20
+            except:
+                # Django docs specify cx_Oracle version 4.3.1 or higher, but
+                # stmtcachesize is available only in 4.3.2 and up.
+                pass
+        if not cursor:
+            cursor = FormatStylePlaceholderCursor(self.connection)
+        # Default arraysize of 1 is highly sub-optimal.
+        cursor.arraysize = 100
+        return cursor
+
+
+class OracleParam(object):
+    """
+    Wrapper object for formatting parameters for Oracle. If the string
+    representation of the value is large enough (greater than 4000 characters)
+    the input size needs to be set as NCLOB. Alternatively, if the parameter has
+    an `input_size` attribute, then the value of the `input_size` attribute will
+    be used instead. Otherwise, no input size will be set for the parameter when
+    executing the query.
+    """
+    def __init__(self, param, charset, strings_only=False):
+        self.smart_str = smart_str(param, charset, strings_only)
+        if hasattr(param, 'input_size'):
+            # If parameter has `input_size` attribute, use that.
+            self.input_size = param.input_size
+        elif isinstance(param, basestring) and len(param) > 4000:
+            # Mark any string parameter greater than 4000 characters as an NCLOB.
+            self.input_size = Database.NCLOB
+        else:
+            self.input_size = None
+
+
+class FormatStylePlaceholderCursor(Database.Cursor):
+    """
+    Django uses "format" (e.g. '%s') style placeholders, but Oracle uses ":var"
+    style. This fixes it -- but note that if you want to use a literal "%s" in
+    a query, you'll need to use "%%s".
+
+    We also do automatic conversion between Unicode on the Python side and
+    UTF-8 -- for talking to Oracle -- in here.
+    """
+    charset = 'utf-8'
+
+    def _format_params(self, params):
+        if isinstance(params, dict):
+            result = {}
+            for key, value in params.items():
+                result[smart_str(key, self.charset)] = OracleParam(param, self.charset)
+            return result
+        else:
+            return tuple([OracleParam(p, self.charset, True) for p in params])
+
+    def _guess_input_sizes(self, params_list):
+        if isinstance(params_list[0], dict):
+            sizes = {}
+            iterators = [params.iteritems() for params in params_list]
+        else:
+            sizes = [None] * len(params_list[0])
+            iterators = [enumerate(params) for params in params_list]
+        for iterator in iterators:
+            for key, value in iterator:
+                if value.input_size: sizes[key] = value.input_size
+        if isinstance(sizes, dict):
+            self.setinputsizes(**sizes)
+        else:
+            self.setinputsizes(*sizes)
+
+    def _param_generator(self, params):
+        if isinstance(params, dict):
+            return dict([(k, p.smart_str) for k, p in params.iteritems()])
+        else:
+            return [p.smart_str for p in params]
+
+    def execute(self, query, params=None):
+        if params is None:
+            params = []
+        else:
+            params = self._format_params(params)
+        args = [(':arg%d' % i) for i in range(len(params))]
+        # cx_Oracle wants no trailing ';' for SQL statements.  For PL/SQL, it
+        # it does want a trailing ';' but not a trailing '/'.  However, these
+        # characters must be included in the original query in case the query
+        # is being passed to SQL*Plus.
+        if query.endswith(';') or query.endswith('/'):
+            query = query[:-1]
+        query = smart_str(query, self.charset) % tuple(args)
+        self._guess_input_sizes([params])
+        return Database.Cursor.execute(self, query, self._param_generator(params))
+
+    def executemany(self, query, params=None):
+        try:
+          args = [(':arg%d' % i) for i in range(len(params[0]))]
+        except (IndexError, TypeError):
+          # No params given, nothing to do
+          return None
+        # cx_Oracle wants no trailing ';' for SQL statements.  For PL/SQL, it
+        # it does want a trailing ';' but not a trailing '/'.  However, these
+        # characters must be included in the original query in case the query
+        # is being passed to SQL*Plus.
+        if query.endswith(';') or query.endswith('/'):
+            query = query[:-1]
+        query = smart_str(query, self.charset) % tuple(args)
+        formatted = [self._format_params(i) for i in params]
+        self._guess_input_sizes(formatted)
+        return Database.Cursor.executemany(self, query, [self._param_generator(p) for p in formatted])
+
+    def fetchone(self):
+        row = Database.Cursor.fetchone(self)
+        if row is None:
+            return row
+        return tuple([to_unicode(e) for e in row])
+
+    def fetchmany(self, size=None):
+        if size is None:
+            size = self.arraysize
+        return tuple([tuple([to_unicode(e) for e in r]) for r in Database.Cursor.fetchmany(self, size)])
+
+    def fetchall(self):
+        return tuple([tuple([to_unicode(e) for e in r]) for r in Database.Cursor.fetchall(self)])
+
+def to_unicode(s):
+    """
+    Convert strings to Unicode objects (and return all other data types
+    unchanged).
+    """
+    if isinstance(s, basestring):
+        return force_unicode(s)
+    return s
+
+def _get_sequence_reset_sql():
+    # TODO: colorize this SQL code with style.SQL_KEYWORD(), etc.
+    return """
+        DECLARE
+            startvalue integer;
+            cval integer;
+        BEGIN
+            LOCK TABLE %(table)s IN SHARE MODE;
+            SELECT NVL(MAX(%(column)s), 0) INTO startvalue FROM %(table)s;
+            SELECT %(sequence)s.nextval INTO cval FROM dual;
+            cval := startvalue - cval;
+            IF cval != 0 THEN
+                EXECUTE IMMEDIATE 'ALTER SEQUENCE %(sequence)s MINVALUE 0 INCREMENT BY '||cval;
+                SELECT %(sequence)s.nextval INTO cval FROM dual;
+                EXECUTE IMMEDIATE 'ALTER SEQUENCE %(sequence)s INCREMENT BY 1';
+            END IF;
+            COMMIT;
+        END;
+        /"""
+
+def get_sequence_name(table):
+    name_length = DatabaseOperations().max_name_length() - 3
+    return '%s_SQ' % util.truncate_name(table, name_length).upper()
+
+def get_trigger_name(table):
+    name_length = DatabaseOperations().max_name_length() - 3
+    return '%s_TR' % util.truncate_name(table, name_length).upper()
diff --git a/webapp/django/db/backends/oracle/client.py b/webapp/django/db/backends/oracle/client.py
new file mode 100644
index 0000000..77fc9b9
--- /dev/null
+++ b/webapp/django/db/backends/oracle/client.py
@@ -0,0 +1,13 @@
+from django.db.backends import BaseDatabaseClient
+from django.conf import settings
+import os
+
+class DatabaseClient(BaseDatabaseClient):
+    def runshell(self):
+        dsn = settings.DATABASE_USER
+        if settings.DATABASE_PASSWORD:
+            dsn += "/%s" % settings.DATABASE_PASSWORD
+        if settings.DATABASE_NAME:
+            dsn += "@%s" % settings.DATABASE_NAME
+        args = ["sqlplus", "-L", dsn]
+        os.execvp("sqlplus", args)
diff --git a/webapp/django/db/backends/oracle/creation.py b/webapp/django/db/backends/oracle/creation.py
new file mode 100644
index 0000000..99c1b11
--- /dev/null
+++ b/webapp/django/db/backends/oracle/creation.py
@@ -0,0 +1,291 @@
+import sys, time
+from django.conf import settings
+from django.core import management
+from django.db.backends.creation import BaseDatabaseCreation
+
+TEST_DATABASE_PREFIX = 'test_'
+PASSWORD = 'Im_a_lumberjack'
+
+class DatabaseCreation(BaseDatabaseCreation):
+    # This dictionary maps Field objects to their associated Oracle column
+    # types, as strings. Column-type strings can contain format strings; they'll
+    # be interpolated against the values of Field.__dict__ before being output.
+    # If a column type is set to None, it won't be included in the output.
+    #
+    # Any format strings starting with "qn_" are quoted before being used in the
+    # output (the "qn_" prefix is stripped before the lookup is performed.
+
+    data_types = {
+        'AutoField':                    'NUMBER(11)',
+        'BooleanField':                 'NUMBER(1) CHECK (%(qn_column)s IN (0,1))',
+        'CharField':                    'NVARCHAR2(%(max_length)s)',
+        'CommaSeparatedIntegerField':   'VARCHAR2(%(max_length)s)',
+        'DateField':                    'DATE',
+        'DateTimeField':                'TIMESTAMP',
+        'DecimalField':                 'NUMBER(%(max_digits)s, %(decimal_places)s)',
+        'FileField':                    'NVARCHAR2(%(max_length)s)',
+        'FilePathField':                'NVARCHAR2(%(max_length)s)',
+        'FloatField':                   'DOUBLE PRECISION',
+        'IntegerField':                 'NUMBER(11)',
+        'IPAddressField':               'VARCHAR2(15)',
+        'NullBooleanField':             'NUMBER(1) CHECK ((%(qn_column)s IN (0,1)) OR (%(qn_column)s IS NULL))',
+        'OneToOneField':                'NUMBER(11)',
+        'PhoneNumberField':             'VARCHAR2(20)',
+        'PositiveIntegerField':         'NUMBER(11) CHECK (%(qn_column)s >= 0)',
+        'PositiveSmallIntegerField':    'NUMBER(11) CHECK (%(qn_column)s >= 0)',
+        'SlugField':                    'NVARCHAR2(50)',
+        'SmallIntegerField':            'NUMBER(11)',
+        'TextField':                    'NCLOB',
+        'TimeField':                    'TIMESTAMP',
+        'URLField':                     'VARCHAR2(%(max_length)s)',
+        'USStateField':                 'CHAR(2)',
+    }
+
+    remember = {}
+
+    def _create_test_db(self, verbosity=1, autoclobber=False):
+        TEST_DATABASE_NAME = self._test_database_name(settings)
+        TEST_DATABASE_USER = self._test_database_user(settings)
+        TEST_DATABASE_PASSWD = self._test_database_passwd(settings)
+        TEST_DATABASE_TBLSPACE = self._test_database_tblspace(settings)
+        TEST_DATABASE_TBLSPACE_TMP = self._test_database_tblspace_tmp(settings)
+
+        parameters = {
+            'dbname': TEST_DATABASE_NAME,
+            'user': TEST_DATABASE_USER,
+            'password': TEST_DATABASE_PASSWD,
+            'tblspace': TEST_DATABASE_TBLSPACE,
+            'tblspace_temp': TEST_DATABASE_TBLSPACE_TMP,
+        }
+
+        self.remember['user'] = settings.DATABASE_USER
+        self.remember['passwd'] = settings.DATABASE_PASSWORD
+
+        cursor = self.connection.cursor()
+        if self._test_database_create(settings):
+            if verbosity >= 1:
+                print 'Creating test database...'
+            try:
+                self._execute_test_db_creation(cursor, parameters, verbosity)
+            except Exception, e:
+                sys.stderr.write("Got an error creating the test database: %s\n" % e)
+                if not autoclobber:
+                    confirm = raw_input("It appears the test database, %s, already exists. Type 'yes' to delete it, or 'no' to cancel: " % TEST_DATABASE_NAME)
+                if autoclobber or confirm == 'yes':
+                    try:
+                        if verbosity >= 1:
+                            print "Destroying old test database..."
+                        self._execute_test_db_destruction(cursor, parameters, verbosity)
+                        if verbosity >= 1:
+                            print "Creating test database..."
+                        self._execute_test_db_creation(cursor, parameters, verbosity)
+                    except Exception, e:
+                        sys.stderr.write("Got an error recreating the test database: %s\n" % e)
+                        sys.exit(2)
+                else:
+                    print "Tests cancelled."
+                    sys.exit(1)
+
+        if self._test_user_create(settings):
+            if verbosity >= 1:
+                print "Creating test user..."
+            try:
+                self._create_test_user(cursor, parameters, verbosity)
+            except Exception, e:
+                sys.stderr.write("Got an error creating the test user: %s\n" % e)
+                if not autoclobber:
+                    confirm = raw_input("It appears the test user, %s, already exists. Type 'yes' to delete it, or 'no' to cancel: " % TEST_DATABASE_USER)
+                if autoclobber or confirm == 'yes':
+                    try:
+                        if verbosity >= 1:
+                            print "Destroying old test user..."
+                        self._destroy_test_user(cursor, parameters, verbosity)
+                        if verbosity >= 1:
+                            print "Creating test user..."
+                        self._create_test_user(cursor, parameters, verbosity)
+                    except Exception, e:
+                        sys.stderr.write("Got an error recreating the test user: %s\n" % e)
+                        sys.exit(2)
+                else:
+                    print "Tests cancelled."
+                    sys.exit(1)
+
+        settings.DATABASE_USER = TEST_DATABASE_USER
+        settings.DATABASE_PASSWORD = TEST_DATABASE_PASSWD
+
+        return settings.DATABASE_NAME
+
+    def _destroy_test_db(self, test_database_name, verbosity=1):
+        """
+        Destroy a test database, prompting the user for confirmation if the
+        database already exists. Returns the name of the test database created.
+        """
+        TEST_DATABASE_NAME = self._test_database_name(settings)
+        TEST_DATABASE_USER = self._test_database_user(settings)
+        TEST_DATABASE_PASSWD = self._test_database_passwd(settings)
+        TEST_DATABASE_TBLSPACE = self._test_database_tblspace(settings)
+        TEST_DATABASE_TBLSPACE_TMP = self._test_database_tblspace_tmp(settings)
+
+        settings.DATABASE_USER = self.remember['user']
+        settings.DATABASE_PASSWORD = self.remember['passwd']
+
+        parameters = {
+            'dbname': TEST_DATABASE_NAME,
+            'user': TEST_DATABASE_USER,
+            'password': TEST_DATABASE_PASSWD,
+            'tblspace': TEST_DATABASE_TBLSPACE,
+            'tblspace_temp': TEST_DATABASE_TBLSPACE_TMP,
+        }
+
+        self.remember['user'] = settings.DATABASE_USER
+        self.remember['passwd'] = settings.DATABASE_PASSWORD
+
+        cursor = self.connection.cursor()
+        time.sleep(1) # To avoid "database is being accessed by other users" errors.
+        if self._test_user_create(settings):
+            if verbosity >= 1:
+                print 'Destroying test user...'
+            self._destroy_test_user(cursor, parameters, verbosity)
+        if self._test_database_create(settings):
+            if verbosity >= 1:
+                print 'Destroying test database tables...'
+            self._execute_test_db_destruction(cursor, parameters, verbosity)
+        self.connection.close()
+
+    def _execute_test_db_creation(self, cursor, parameters, verbosity):
+        if verbosity >= 2:
+            print "_create_test_db(): dbname = %s" % parameters['dbname']
+        statements = [
+            """CREATE TABLESPACE %(tblspace)s
+               DATAFILE '%(tblspace)s.dbf' SIZE 20M
+               REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 100M
+            """,
+            """CREATE TEMPORARY TABLESPACE %(tblspace_temp)s
+               TEMPFILE '%(tblspace_temp)s.dbf' SIZE 20M
+               REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 100M
+            """,
+        ]
+        self._execute_statements(cursor, statements, parameters, verbosity)
+
+    def _create_test_user(self, cursor, parameters, verbosity):
+        if verbosity >= 2:
+            print "_create_test_user(): username = %s" % parameters['user']
+        statements = [
+            """CREATE USER %(user)s
+               IDENTIFIED BY %(password)s
+               DEFAULT TABLESPACE %(tblspace)s
+               TEMPORARY TABLESPACE %(tblspace_temp)s
+            """,
+            """GRANT CONNECT, RESOURCE TO %(user)s""",
+        ]
+        self._execute_statements(cursor, statements, parameters, verbosity)
+
+    def _execute_test_db_destruction(self, cursor, parameters, verbosity):
+        if verbosity >= 2:
+            print "_execute_test_db_destruction(): dbname=%s" % parameters['dbname']
+        statements = [
+            'DROP TABLESPACE %(tblspace)s INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS',
+            'DROP TABLESPACE %(tblspace_temp)s INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS',
+            ]
+        self._execute_statements(cursor, statements, parameters, verbosity)
+
+    def _destroy_test_user(self, cursor, parameters, verbosity):
+        if verbosity >= 2:
+            print "_destroy_test_user(): user=%s" % parameters['user']
+            print "Be patient.  This can take some time..."
+        statements = [
+            'DROP USER %(user)s CASCADE',
+        ]
+        self._execute_statements(cursor, statements, parameters, verbosity)
+
+    def _execute_statements(self, cursor, statements, parameters, verbosity):
+        for template in statements:
+            stmt = template % parameters
+            if verbosity >= 2:
+                print stmt
+            try:
+                cursor.execute(stmt)
+            except Exception, err:
+                sys.stderr.write("Failed (%s)\n" % (err))
+                raise
+
+    def _test_database_name(self, settings):
+        name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME
+        try:
+            if settings.TEST_DATABASE_NAME:
+                name = settings.TEST_DATABASE_NAME
+        except AttributeError:
+            pass
+        except:
+            raise
+        return name
+
+    def _test_database_create(self, settings):
+        name = True
+        try:
+            if settings.TEST_DATABASE_CREATE:
+                name = True
+            else:
+                name = False
+        except AttributeError:
+            pass
+        except:
+            raise
+        return name
+
+    def _test_user_create(self, settings):
+        name = True
+        try:
+            if settings.TEST_USER_CREATE:
+                name = True
+            else:
+                name = False
+        except AttributeError:
+            pass
+        except:
+            raise
+        return name
+
+    def _test_database_user(self, ettings):
+        name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME
+        try:
+            if settings.TEST_DATABASE_USER:
+                name = settings.TEST_DATABASE_USER
+        except AttributeError:
+            pass
+        except:
+            raise
+        return name
+
+    def _test_database_passwd(self, settings):
+        name = PASSWORD
+        try:
+            if settings.TEST_DATABASE_PASSWD:
+                name = settings.TEST_DATABASE_PASSWD
+        except AttributeError:
+            pass
+        except:
+            raise
+        return name
+
+    def _test_database_tblspace(self, settings):
+        name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME
+        try:
+            if settings.TEST_DATABASE_TBLSPACE:
+                name = settings.TEST_DATABASE_TBLSPACE
+        except AttributeError:
+            pass
+        except:
+            raise
+        return name
+
+    def _test_database_tblspace_tmp(self, settings):
+        name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME + '_temp'
+        try:
+            if settings.TEST_DATABASE_TBLSPACE_TMP:
+                name = settings.TEST_DATABASE_TBLSPACE_TMP
+        except AttributeError:
+            pass
+        except:
+            raise
+        return name
diff --git a/webapp/django/db/backends/oracle/introspection.py b/webapp/django/db/backends/oracle/introspection.py
new file mode 100644
index 0000000..890e30a
--- /dev/null
+++ b/webapp/django/db/backends/oracle/introspection.py
@@ -0,0 +1,103 @@
+from django.db.backends import BaseDatabaseIntrospection
+import cx_Oracle
+import re
+
+foreign_key_re = re.compile(r"\sCONSTRAINT `[^`]*` FOREIGN KEY \(`([^`]*)`\) REFERENCES `([^`]*)` \(`([^`]*)`\)")
+
+class DatabaseIntrospection(BaseDatabaseIntrospection):
+    # Maps type objects to Django Field types.
+    data_types_reverse = {
+        cx_Oracle.CLOB: 'TextField',
+        cx_Oracle.DATETIME: 'DateTimeField',
+        cx_Oracle.FIXED_CHAR: 'CharField',
+        cx_Oracle.NCLOB: 'TextField',
+        cx_Oracle.NUMBER: 'DecimalField',
+        cx_Oracle.STRING: 'CharField',
+        cx_Oracle.TIMESTAMP: 'DateTimeField',
+    }
+
+    def get_table_list(self, cursor):
+        "Returns a list of table names in the current database."
+        cursor.execute("SELECT TABLE_NAME FROM USER_TABLES")
+        return [row[0].upper() for row in cursor.fetchall()]
+
+    def get_table_description(self, cursor, table_name):
+        "Returns a description of the table, with the DB-API cursor.description interface."
+        cursor.execute("SELECT * FROM %s WHERE ROWNUM < 2" % self.connection.ops.quote_name(table_name))
+        return cursor.description
+
+    def table_name_converter(self, name):
+        "Table name comparison is case insensitive under Oracle"
+        return name.upper()
+        
+    def _name_to_index(self, cursor, table_name):
+        """
+        Returns a dictionary of {field_name: field_index} for the given table.
+        Indexes are 0-based.
+        """
+        return dict([(d[0], i) for i, d in enumerate(self.get_table_description(cursor, table_name))])
+
+    def get_relations(self, cursor, table_name):
+        """
+        Returns a dictionary of {field_index: (field_index_other_table, other_table)}
+        representing all relationships to the given table. Indexes are 0-based.
+        """
+        cursor.execute("""
+    SELECT ta.column_id - 1, tb.table_name, tb.column_id - 1
+    FROM   user_constraints, USER_CONS_COLUMNS ca, USER_CONS_COLUMNS cb,
+           user_tab_cols ta, user_tab_cols tb
+    WHERE  user_constraints.table_name = %s AND
+           ta.table_name = %s AND
+           ta.column_name = ca.column_name AND
+           ca.table_name = %s AND
+           user_constraints.constraint_name = ca.constraint_name AND
+           user_constraints.r_constraint_name = cb.constraint_name AND
+           cb.table_name = tb.table_name AND
+           cb.column_name = tb.column_name AND
+           ca.position = cb.position""", [table_name, table_name, table_name])
+
+        relations = {}
+        for row in cursor.fetchall():
+            relations[row[0]] = (row[2], row[1])
+        return relations
+
+    def get_indexes(self, cursor, table_name):
+        """
+        Returns a dictionary of fieldname -> infodict for the given table,
+        where each infodict is in the format:
+            {'primary_key': boolean representing whether it's the primary key,
+             'unique': boolean representing whether it's a unique index}
+        """
+        # This query retrieves each index on the given table, including the
+        # first associated field name
+        # "We were in the nick of time; you were in great peril!"
+        sql = """
+    WITH primarycols AS (
+     SELECT user_cons_columns.table_name, user_cons_columns.column_name, 1 AS PRIMARYCOL
+     FROM   user_cons_columns, user_constraints
+     WHERE  user_cons_columns.constraint_name = user_constraints.constraint_name AND
+            user_constraints.constraint_type = 'P' AND
+            user_cons_columns.table_name = %s),
+     uniquecols AS (
+     SELECT user_ind_columns.table_name, user_ind_columns.column_name, 1 AS UNIQUECOL
+     FROM   user_indexes, user_ind_columns
+     WHERE  uniqueness = 'UNIQUE' AND
+            user_indexes.index_name = user_ind_columns.index_name AND
+            user_ind_columns.table_name = %s)
+    SELECT allcols.column_name, primarycols.primarycol, uniquecols.UNIQUECOL
+    FROM   (SELECT column_name FROM primarycols UNION SELECT column_name FROM
+    uniquecols) allcols,
+          primarycols, uniquecols
+    WHERE  allcols.column_name = primarycols.column_name (+) AND
+          allcols.column_name = uniquecols.column_name (+)
+        """
+        cursor.execute(sql, [table_name, table_name])
+        indexes = {}
+        for row in cursor.fetchall():
+            # row[1] (idx.indkey) is stored in the DB as an array. It comes out as
+            # a string of space-separated integers. This designates the field
+            # indexes (1-based) of the fields that have indexes on the table.
+            # Here, we skip any indexes across multiple fields.
+            indexes[row[0]] = {'primary_key': row[1], 'unique': row[2]}
+        return indexes
+
diff --git a/webapp/django/db/backends/oracle/query.py b/webapp/django/db/backends/oracle/query.py
new file mode 100644
index 0000000..85e2f68
--- /dev/null
+++ b/webapp/django/db/backends/oracle/query.py
@@ -0,0 +1,145 @@
+"""
+Custom Query class for Oracle.
+Derives from: django.db.models.sql.query.Query
+"""
+
+import datetime
+
+from django.db.backends import util
+
+# Cache. Maps default query class to new Oracle query class.
+_classes = {}
+
+def query_class(QueryClass, Database):
+    """
+    Returns a custom django.db.models.sql.query.Query subclass that is
+    appropriate for Oracle.
+
+    The 'Database' module (cx_Oracle) is passed in here so that all the setup
+    required to import it only needs to be done by the calling module.
+    """
+    global _classes
+    try:
+        return _classes[QueryClass]
+    except KeyError:
+        pass
+
+    class OracleQuery(QueryClass):
+        def resolve_columns(self, row, fields=()):
+            index_start = len(self.extra_select.keys())
+            values = [self.convert_values(v, None) for v in row[:index_start]]
+            for value, field in map(None, row[index_start:], fields):
+                values.append(self.convert_values(value, field))
+            return values
+
+        def convert_values(self, value, field):
+            from django.db.models.fields import DateField, DateTimeField, \
+                 TimeField, BooleanField, NullBooleanField, DecimalField, Field
+            if isinstance(value, Database.LOB):
+                value = value.read()
+            # Oracle stores empty strings as null. We need to undo this in
+            # order to adhere to the Django convention of using the empty
+            # string instead of null, but only if the field accepts the
+            # empty string.
+            if value is None and isinstance(field, Field) and field.empty_strings_allowed:
+                value = u''
+            # Convert 1 or 0 to True or False
+            elif value in (1, 0) and isinstance(field, (BooleanField, NullBooleanField)):
+                value = bool(value)
+            # Convert floats to decimals
+            elif value is not None and isinstance(field, DecimalField):
+                value = util.typecast_decimal(field.format_number(value))
+            # cx_Oracle always returns datetime.datetime objects for
+            # DATE and TIMESTAMP columns, but Django wants to see a
+            # python datetime.date, .time, or .datetime.  We use the type
+            # of the Field to determine which to cast to, but it's not
+            # always available.
+            # As a workaround, we cast to date if all the time-related
+            # values are 0, or to time if the date is 1/1/1900.
+            # This could be cleaned a bit by adding a method to the Field
+            # classes to normalize values from the database (the to_python
+            # method is used for validation and isn't what we want here).
+            elif isinstance(value, Database.Timestamp):
+                # In Python 2.3, the cx_Oracle driver returns its own
+                # Timestamp object that we must convert to a datetime class.
+                if not isinstance(value, datetime.datetime):
+                    value = datetime.datetime(value.year, value.month,
+                            value.day, value.hour, value.minute, value.second,
+                            value.fsecond)
+                if isinstance(field, DateTimeField):
+                    # DateTimeField subclasses DateField so must be checked
+                    # first.
+                    pass
+                elif isinstance(field, DateField):
+                    value = value.date()
+                elif isinstance(field, TimeField) or (value.year == 1900 and value.month == value.day == 1):
+                    value = value.time()
+                elif value.hour == value.minute == value.second == value.microsecond == 0:
+                    value = value.date()
+            return value
+
+        def as_sql(self, with_limits=True, with_col_aliases=False):
+            """
+            Creates the SQL for this query. Returns the SQL string and list
+            of parameters.  This is overriden from the original Query class
+            to handle the additional SQL Oracle requires to emulate LIMIT
+            and OFFSET.
+
+            If 'with_limits' is False, any limit/offset information is not
+            included in the query.
+            """
+
+            # The `do_offset` flag indicates whether we need to construct
+            # the SQL needed to use limit/offset with Oracle.
+            do_offset = with_limits and (self.high_mark is not None
+                                         or self.low_mark)
+            if not do_offset:
+                sql, params = super(OracleQuery, self).as_sql(with_limits=False,
+                        with_col_aliases=with_col_aliases)
+            else:
+                # `get_columns` needs to be called before `get_ordering` to
+                # populate `_select_alias`.
+                self.pre_sql_setup()
+                self.get_columns()
+                ordering = self.get_ordering()
+
+                # Oracle's ROW_NUMBER() function requires an ORDER BY clause.
+                if ordering:
+                    rn_orderby = ', '.join(ordering)
+                else:
+                    # Create a default ORDER BY since none was specified.
+                    qn = self.quote_name_unless_alias
+                    opts = self.model._meta
+                    rn_orderby = '%s.%s' % (qn(opts.db_table),
+                        qn(opts.fields[0].db_column or opts.fields[0].column))
+
+                # Ensure the base query SELECTs our special "_RN" column
+                self.extra_select['_RN'] = ('ROW_NUMBER() OVER (ORDER BY %s)'
+                                            % rn_orderby, '')
+                sql, params = super(OracleQuery, self).as_sql(with_limits=False,
+                                                        with_col_aliases=True)
+
+                # Wrap the base query in an outer SELECT * with boundaries on
+                # the "_RN" column.  This is the canonical way to emulate LIMIT
+                # and OFFSET on Oracle.
+                sql = 'SELECT * FROM (%s) WHERE "_RN" > %d' % (sql, self.low_mark)
+                if self.high_mark is not None:
+                    sql = '%s AND "_RN" <= %d' % (sql, self.high_mark)
+
+            return sql, params
+
+        def set_limits(self, low=None, high=None):
+            super(OracleQuery, self).set_limits(low, high)
+            # We need to select the row number for the LIMIT/OFFSET sql.
+            # A placeholder is added to extra_select now, because as_sql is
+            # too late to be modifying extra_select.  However, the actual sql
+            # depends on the ordering, so that is generated in as_sql.
+            self.extra_select['_RN'] = ('1', '')
+
+        def clear_limits(self):
+            super(OracleQuery, self).clear_limits()
+            if '_RN' in self.extra_select:
+                del self.extra_select['_RN']
+
+    _classes[QueryClass] = OracleQuery
+    return OracleQuery
diff --git a/webapp/django/db/backends/postgresql/__init__.py b/webapp/django/db/backends/postgresql/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/db/backends/postgresql/__init__.py
diff --git a/webapp/django/db/backends/postgresql/base.py b/webapp/django/db/backends/postgresql/base.py
new file mode 100644
index 0000000..376d7ba
--- /dev/null
+++ b/webapp/django/db/backends/postgresql/base.py
@@ -0,0 +1,148 @@
+"""
+PostgreSQL database backend for Django.
+
+Requires psycopg 1: http://initd.org/projects/psycopg1
+"""
+
+from django.db.backends import *
+from django.db.backends.postgresql.client import DatabaseClient
+from django.db.backends.postgresql.creation import DatabaseCreation
+from django.db.backends.postgresql.introspection import DatabaseIntrospection
+from django.db.backends.postgresql.operations import DatabaseOperations
+from django.db.backends.postgresql.version import get_version
+from django.utils.encoding import smart_str, smart_unicode
+
+try:
+    import psycopg as Database
+except ImportError, e:
+    from django.core.exceptions import ImproperlyConfigured
+    raise ImproperlyConfigured("Error loading psycopg module: %s" % e)
+
+DatabaseError = Database.DatabaseError
+IntegrityError = Database.IntegrityError
+
+class UnicodeCursorWrapper(object):
+    """
+    A thin wrapper around psycopg cursors that allows them to accept Unicode
+    strings as params.
+
+    This is necessary because psycopg doesn't apply any DB quoting to
+    parameters that are Unicode strings. If a param is Unicode, this will
+    convert it to a bytestring using database client's encoding before passing
+    it to psycopg.
+
+    All results retrieved from the database are converted into Unicode strings
+    before being returned to the caller.
+    """
+    def __init__(self, cursor, charset):
+        self.cursor = cursor
+        self.charset = charset
+
+    def format_params(self, params):
+        if isinstance(params, dict):
+            result = {}
+            charset = self.charset
+            for key, value in params.items():
+                result[smart_str(key, charset)] = smart_str(value, charset)
+            return result
+        else:
+            return tuple([smart_str(p, self.charset, True) for p in params])
+
+    def execute(self, sql, params=()):
+        return self.cursor.execute(smart_str(sql, self.charset), self.format_params(params))
+
+    def executemany(self, sql, param_list):
+        new_param_list = [self.format_params(params) for params in param_list]
+        return self.cursor.executemany(sql, new_param_list)
+
+    def __getattr__(self, attr):
+        if attr in self.__dict__:
+            return self.__dict__[attr]
+        else:
+            return getattr(self.cursor, attr)
+
+    def __iter__(self):
+        return iter(self.cursor)
+
+class DatabaseFeatures(BaseDatabaseFeatures):
+    uses_savepoints = True
+
+class DatabaseWrapper(BaseDatabaseWrapper):
+    operators = {
+        'exact': '= %s',
+        'iexact': '= UPPER(%s)',
+        'contains': 'LIKE %s',
+        'icontains': 'LIKE UPPER(%s)',
+        'regex': '~ %s',
+        'iregex': '~* %s',
+        'gt': '> %s',
+        'gte': '>= %s',
+        'lt': '< %s',
+        'lte': '<= %s',
+        'startswith': 'LIKE %s',
+        'endswith': 'LIKE %s',
+        'istartswith': 'LIKE UPPER(%s)',
+        'iendswith': 'LIKE UPPER(%s)',
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(DatabaseWrapper, self).__init__(*args, **kwargs)
+
+        self.features = DatabaseFeatures()
+        self.ops = DatabaseOperations()
+        self.client = DatabaseClient()
+        self.creation = DatabaseCreation(self)
+        self.introspection = DatabaseIntrospection(self)
+        self.validation = BaseDatabaseValidation()
+
+    def _cursor(self, settings):
+        set_tz = False
+        if self.connection is None:
+            set_tz = True
+            if settings.DATABASE_NAME == '':
+                from django.core.exceptions import ImproperlyConfigured
+                raise ImproperlyConfigured("You need to specify DATABASE_NAME in your Django settings file.")
+            conn_string = "dbname=%s" % settings.DATABASE_NAME
+            if settings.DATABASE_USER:
+                conn_string = "user=%s %s" % (settings.DATABASE_USER, conn_string)
+            if settings.DATABASE_PASSWORD:
+                conn_string += " password='%s'" % settings.DATABASE_PASSWORD
+            if settings.DATABASE_HOST:
+                conn_string += " host=%s" % settings.DATABASE_HOST
+            if settings.DATABASE_PORT:
+                conn_string += " port=%s" % settings.DATABASE_PORT
+            self.connection = Database.connect(conn_string, **self.options)
+            self.connection.set_isolation_level(1) # make transactions transparent to all cursors
+        cursor = self.connection.cursor()
+        if set_tz:
+            cursor.execute("SET TIME ZONE %s", [settings.TIME_ZONE])
+            if not hasattr(self, '_version'):
+                version = get_version(cursor)
+                self.__class__._version = version
+                if version < (8, 0):
+                    # No savepoint support for earlier version of PostgreSQL.
+                    self.features.uses_savepoints = False
+        cursor.execute("SET client_encoding to 'UNICODE'")
+        cursor = UnicodeCursorWrapper(cursor, 'utf-8')
+        return cursor
+
+def typecast_string(s):
+    """
+    Cast all returned strings to unicode strings.
+    """
+    if not s and not isinstance(s, str):
+        return s
+    return smart_unicode(s)
+
+# Register these custom typecasts, because Django expects dates/times to be
+# in Python's native (standard-library) datetime/time format, whereas psycopg
+# use mx.DateTime by default.
+try:
+    Database.register_type(Database.new_type((1082,), "DATE", util.typecast_date))
+except AttributeError:
+    raise Exception("You appear to be using psycopg version 2. Set your DATABASE_ENGINE to 'postgresql_psycopg2' instead of 'postgresql'.")
+Database.register_type(Database.new_type((1083,1266), "TIME", util.typecast_time))
+Database.register_type(Database.new_type((1114,1184), "TIMESTAMP", util.typecast_timestamp))
+Database.register_type(Database.new_type((16,), "BOOLEAN", util.typecast_boolean))
+Database.register_type(Database.new_type((1700,), "NUMERIC", util.typecast_decimal))
+Database.register_type(Database.new_type(Database.types[1043].values, 'STRING', typecast_string))
diff --git a/webapp/django/db/backends/postgresql/client.py b/webapp/django/db/backends/postgresql/client.py
new file mode 100644
index 0000000..28daed8
--- /dev/null
+++ b/webapp/django/db/backends/postgresql/client.py
@@ -0,0 +1,17 @@
+from django.db.backends import BaseDatabaseClient
+from django.conf import settings
+import os
+
+class DatabaseClient(BaseDatabaseClient):
+    def runshell(self):
+        args = ['psql']
+        if settings.DATABASE_USER:
+            args += ["-U", settings.DATABASE_USER]
+        if settings.DATABASE_PASSWORD:
+            args += ["-W"]
+        if settings.DATABASE_HOST:
+            args.extend(["-h", settings.DATABASE_HOST])
+        if settings.DATABASE_PORT:
+            args.extend(["-p", str(settings.DATABASE_PORT)])
+        args += [settings.DATABASE_NAME]
+        os.execvp('psql', args)
diff --git a/webapp/django/db/backends/postgresql/creation.py b/webapp/django/db/backends/postgresql/creation.py
new file mode 100644
index 0000000..3e537e3
--- /dev/null
+++ b/webapp/django/db/backends/postgresql/creation.py
@@ -0,0 +1,38 @@
+from django.conf import settings
+from django.db.backends.creation import BaseDatabaseCreation
+
+class DatabaseCreation(BaseDatabaseCreation):
+    # This dictionary maps Field objects to their associated PostgreSQL column
+    # types, as strings. Column-type strings can contain format strings; they'll
+    # be interpolated against the values of Field.__dict__ before being output.
+    # If a column type is set to None, it won't be included in the output.
+    data_types = {
+        'AutoField':         'serial',
+        'BooleanField':      'boolean',
+        'CharField':         'varchar(%(max_length)s)',
+        'CommaSeparatedIntegerField': 'varchar(%(max_length)s)',
+        'DateField':         'date',
+        'DateTimeField':     'timestamp with time zone',
+        'DecimalField':      'numeric(%(max_digits)s, %(decimal_places)s)',
+        'FileField':         'varchar(%(max_length)s)',
+        'FilePathField':     'varchar(%(max_length)s)',
+        'FloatField':        'double precision',
+        'IntegerField':      'integer',
+        'IPAddressField':    'inet',
+        'NullBooleanField':  'boolean',
+        'OneToOneField':     'integer',
+        'PhoneNumberField':  'varchar(20)',
+        'PositiveIntegerField': 'integer CHECK ("%(column)s" >= 0)',
+        'PositiveSmallIntegerField': 'smallint CHECK ("%(column)s" >= 0)',
+        'SlugField':         'varchar(%(max_length)s)',
+        'SmallIntegerField': 'smallint',
+        'TextField':         'text',
+        'TimeField':         'time',
+        'USStateField':      'varchar(2)',
+    }
+
+    def sql_table_creation_suffix(self):
+        assert settings.TEST_DATABASE_COLLATION is None, "PostgreSQL does not support collation setting at database creation time."
+        if settings.TEST_DATABASE_CHARSET:
+            return "WITH ENCODING '%s'" % settings.TEST_DATABASE_CHARSET
+        return ''
diff --git a/webapp/django/db/backends/postgresql/introspection.py b/webapp/django/db/backends/postgresql/introspection.py
new file mode 100644
index 0000000..7b3ab3b
--- /dev/null
+++ b/webapp/django/db/backends/postgresql/introspection.py
@@ -0,0 +1,86 @@
+from django.db.backends import BaseDatabaseIntrospection
+
+class DatabaseIntrospection(BaseDatabaseIntrospection):
+    # Maps type codes to Django Field types.
+    data_types_reverse = {
+        16: 'BooleanField',
+        21: 'SmallIntegerField',
+        23: 'IntegerField',
+        25: 'TextField',
+        701: 'FloatField',
+        869: 'IPAddressField',
+        1043: 'CharField',
+        1082: 'DateField',
+        1083: 'TimeField',
+        1114: 'DateTimeField',
+        1184: 'DateTimeField',
+        1266: 'TimeField',
+        1700: 'DecimalField',
+    }
+        
+    def get_table_list(self, cursor):
+        "Returns a list of table names in the current database."
+        cursor.execute("""
+            SELECT c.relname
+            FROM pg_catalog.pg_class c
+            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
+            WHERE c.relkind IN ('r', 'v', '')
+                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
+                AND pg_catalog.pg_table_is_visible(c.oid)""")
+        return [row[0] for row in cursor.fetchall()]
+
+    def get_table_description(self, cursor, table_name):
+        "Returns a description of the table, with the DB-API cursor.description interface."
+        cursor.execute("SELECT * FROM %s LIMIT 1" % self.connection.ops.quote_name(table_name))
+        return cursor.description
+
+    def get_relations(self, cursor, table_name):
+        """
+        Returns a dictionary of {field_index: (field_index_other_table, other_table)}
+        representing all relationships to the given table. Indexes are 0-based.
+        """
+        cursor.execute("""
+            SELECT con.conkey, con.confkey, c2.relname
+            FROM pg_constraint con, pg_class c1, pg_class c2
+            WHERE c1.oid = con.conrelid
+                AND c2.oid = con.confrelid
+                AND c1.relname = %s
+                AND con.contype = 'f'""", [table_name])
+        relations = {}
+        for row in cursor.fetchall():
+            try:
+                # row[0] and row[1] are like "{2}", so strip the curly braces.
+                relations[int(row[0][1:-1]) - 1] = (int(row[1][1:-1]) - 1, row[2])
+            except ValueError:
+                continue
+        return relations
+
+    def get_indexes(self, cursor, table_name):
+        """
+        Returns a dictionary of fieldname -> infodict for the given table,
+        where each infodict is in the format:
+            {'primary_key': boolean representing whether it's the primary key,
+             'unique': boolean representing whether it's a unique index}
+        """
+        # This query retrieves each index on the given table, including the
+        # first associated field name
+        cursor.execute("""
+            SELECT attr.attname, idx.indkey, idx.indisunique, idx.indisprimary
+            FROM pg_catalog.pg_class c, pg_catalog.pg_class c2,
+                pg_catalog.pg_index idx, pg_catalog.pg_attribute attr
+            WHERE c.oid = idx.indrelid
+                AND idx.indexrelid = c2.oid
+                AND attr.attrelid = c.oid
+                AND attr.attnum = idx.indkey[0]
+                AND c.relname = %s""", [table_name])
+        indexes = {}
+        for row in cursor.fetchall():
+            # row[1] (idx.indkey) is stored in the DB as an array. It comes out as
+            # a string of space-separated integers. This designates the field
+            # indexes (1-based) of the fields that have indexes on the table.
+            # Here, we skip any indexes across multiple fields.
+            if ' ' in row[1]:
+                continue
+            indexes[row[0]] = {'primary_key': row[3], 'unique': row[2]}
+        return indexes
+
diff --git a/webapp/django/db/backends/postgresql/operations.py b/webapp/django/db/backends/postgresql/operations.py
new file mode 100644
index 0000000..01cc1fc
--- /dev/null
+++ b/webapp/django/db/backends/postgresql/operations.py
@@ -0,0 +1,144 @@
+import re
+
+from django.db.backends import BaseDatabaseOperations
+
+server_version_re = re.compile(r'PostgreSQL (\d{1,2})\.(\d{1,2})\.?(\d{1,2})?')
+
+# This DatabaseOperations class lives in here instead of base.py because it's
+# used by both the 'postgresql' and 'postgresql_psycopg2' backends.
+
+class DatabaseOperations(BaseDatabaseOperations):
+    def __init__(self):
+        self._postgres_version = None
+
+    def _get_postgres_version(self):
+        if self._postgres_version is None:
+            from django.db import connection
+            cursor = connection.cursor()
+            cursor.execute("SELECT version()")
+            version_string = cursor.fetchone()[0]
+            m = server_version_re.match(version_string)
+            if not m:
+                raise Exception('Unable to determine PostgreSQL version from version() function string: %r' % version_string)
+            self._postgres_version = [int(val) for val in m.groups() if val]
+        return self._postgres_version
+    postgres_version = property(_get_postgres_version)
+
+    def date_extract_sql(self, lookup_type, field_name):
+        # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT
+        return "EXTRACT('%s' FROM %s)" % (lookup_type, field_name)
+
+    def date_trunc_sql(self, lookup_type, field_name):
+        # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC
+        return "DATE_TRUNC('%s', %s)" % (lookup_type, field_name)
+
+    def deferrable_sql(self):
+        return " DEFERRABLE INITIALLY DEFERRED"
+
+    def lookup_cast(self, lookup_type):
+        lookup = '%s'
+
+        # Cast text lookups to text to allow things like filter(x__contains=4)
+        if lookup_type in ('iexact', 'contains', 'icontains', 'startswith',
+                           'istartswith', 'endswith', 'iendswith'):
+            lookup = "%s::text"
+
+        # Use UPPER(x) for case-insensitive lookups; it's faster.
+        if lookup_type in ('iexact', 'icontains', 'istartswith', 'iendswith'):
+            lookup = 'UPPER(%s)' % lookup
+
+        return lookup
+
+    def field_cast_sql(self, db_type):
+        if db_type == 'inet':
+            return 'HOST(%s)'
+        return '%s'
+
+    def last_insert_id(self, cursor, table_name, pk_name):
+        cursor.execute("SELECT CURRVAL('\"%s_%s_seq\"')" % (table_name, pk_name))
+        return cursor.fetchone()[0]
+
+    def no_limit_value(self):
+        return None
+
+    def quote_name(self, name):
+        if name.startswith('"') and name.endswith('"'):
+            return name # Quoting once is enough.
+        return '"%s"' % name
+
+    def sql_flush(self, style, tables, sequences):
+        if tables:
+            if self.postgres_version[0] >= 8 and self.postgres_version[1] >= 1:
+                # Postgres 8.1+ can do 'TRUNCATE x, y, z...;'. In fact, it *has to*
+                # in order to be able to truncate tables referenced by a foreign
+                # key in any other table. The result is a single SQL TRUNCATE
+                # statement.
+                sql = ['%s %s;' % \
+                    (style.SQL_KEYWORD('TRUNCATE'),
+                     style.SQL_FIELD(', '.join([self.quote_name(table) for table in tables]))
+                )]
+            else:
+                # Older versions of Postgres can't do TRUNCATE in a single call, so
+                # they must use a simple delete.
+                sql = ['%s %s %s;' % \
+                        (style.SQL_KEYWORD('DELETE'),
+                         style.SQL_KEYWORD('FROM'),
+                         style.SQL_FIELD(self.quote_name(table))
+                         ) for table in tables]
+
+            # 'ALTER SEQUENCE sequence_name RESTART WITH 1;'... style SQL statements
+            # to reset sequence indices
+            for sequence_info in sequences:
+                table_name = sequence_info['table']
+                column_name = sequence_info['column']
+                if column_name and len(column_name) > 0:
+                    sequence_name = '%s_%s_seq' % (table_name, column_name)
+                else:
+                    sequence_name = '%s_id_seq' % table_name
+                sql.append("%s setval('%s', 1, false);" % \
+                    (style.SQL_KEYWORD('SELECT'),
+                    style.SQL_FIELD(self.quote_name(sequence_name)))
+                )
+            return sql
+        else:
+            return []
+
+    def sequence_reset_sql(self, style, model_list):
+        from django.db import models
+        output = []
+        qn = self.quote_name
+        for model in model_list:
+            # Use `coalesce` to set the sequence for each model to the max pk value if there are records,
+            # or 1 if there are none. Set the `is_called` property (the third argument to `setval`) to true
+            # if there are records (as the max pk value is already in use), otherwise set it to false.
+            for f in model._meta.local_fields:
+                if isinstance(f, models.AutoField):
+                    output.append("%s setval('%s', coalesce(max(%s), 1), max(%s) %s null) %s %s;" % \
+                        (style.SQL_KEYWORD('SELECT'),
+                        style.SQL_FIELD(qn('%s_%s_seq' % (model._meta.db_table, f.column))),
+                        style.SQL_FIELD(qn(f.column)),
+                        style.SQL_FIELD(qn(f.column)),
+                        style.SQL_KEYWORD('IS NOT'),
+                        style.SQL_KEYWORD('FROM'),
+                        style.SQL_TABLE(qn(model._meta.db_table))))
+                    break # Only one AutoField is allowed per model, so don't bother continuing.
+            for f in model._meta.many_to_many:
+                output.append("%s setval('%s', coalesce(max(%s), 1), max(%s) %s null) %s %s;" % \
+                    (style.SQL_KEYWORD('SELECT'),
+                    style.SQL_FIELD(qn('%s_id_seq' % f.m2m_db_table())),
+                    style.SQL_FIELD(qn('id')),
+                    style.SQL_FIELD(qn('id')),
+                    style.SQL_KEYWORD('IS NOT'),
+                    style.SQL_KEYWORD('FROM'),
+                    style.SQL_TABLE(qn(f.m2m_db_table()))))
+        return output
+
+    def savepoint_create_sql(self, sid):
+        return "SAVEPOINT %s" % sid
+
+    def savepoint_commit_sql(self, sid):
+        return "RELEASE SAVEPOINT %s" % sid
+
+    def savepoint_rollback_sql(self, sid):
+        return "ROLLBACK TO SAVEPOINT %s" % sid
+
diff --git a/webapp/django/db/backends/postgresql/version.py b/webapp/django/db/backends/postgresql/version.py
new file mode 100644
index 0000000..e14d791
--- /dev/null
+++ b/webapp/django/db/backends/postgresql/version.py
@@ -0,0 +1,18 @@
+"""
+Extracts the version of the PostgreSQL server.
+"""
+
+import re
+
+VERSION_RE = re.compile(r'PostgreSQL (\d+)\.(\d+)\.')
+
+def get_version(cursor):
+    """
+    Returns a tuple representing the major and minor version number of the
+    server. For example, (7, 4) or (8, 3).
+    """
+    cursor.execute("SELECT version()")
+    version = cursor.fetchone()[0]
+    major, minor = VERSION_RE.search(version).groups()
+    return int(major), int(minor)
+
diff --git a/webapp/django/db/backends/postgresql_psycopg2/__init__.py b/webapp/django/db/backends/postgresql_psycopg2/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/db/backends/postgresql_psycopg2/__init__.py
diff --git a/webapp/django/db/backends/postgresql_psycopg2/base.py b/webapp/django/db/backends/postgresql_psycopg2/base.py
new file mode 100644
index 0000000..6ecf86b
--- /dev/null
+++ b/webapp/django/db/backends/postgresql_psycopg2/base.py
@@ -0,0 +1,97 @@
+"""
+PostgreSQL database backend for Django.
+
+Requires psycopg 2: http://initd.org/projects/psycopg2
+"""
+
+from django.db.backends import *
+from django.db.backends.postgresql.operations import DatabaseOperations as PostgresqlDatabaseOperations
+from django.db.backends.postgresql.client import DatabaseClient
+from django.db.backends.postgresql.creation import DatabaseCreation
+from django.db.backends.postgresql.version import get_version
+from django.db.backends.postgresql_psycopg2.introspection import DatabaseIntrospection
+from django.utils.safestring import SafeUnicode, SafeString
+
+try:
+    import psycopg2 as Database
+    import psycopg2.extensions
+except ImportError, e:
+    from django.core.exceptions import ImproperlyConfigured
+    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
+
+DatabaseError = Database.DatabaseError
+IntegrityError = Database.IntegrityError
+
+psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
+psycopg2.extensions.register_adapter(SafeString, psycopg2.extensions.QuotedString)
+psycopg2.extensions.register_adapter(SafeUnicode, psycopg2.extensions.QuotedString)
+
+class DatabaseFeatures(BaseDatabaseFeatures):
+    needs_datetime_string_cast = False
+    uses_savepoints = True
+
+class DatabaseOperations(PostgresqlDatabaseOperations):
+    def last_executed_query(self, cursor, sql, params):
+        # With psycopg2, cursor objects have a "query" attribute that is the
+        # exact query sent to the database. See docs here:
+        # http://www.initd.org/tracker/psycopg/wiki/psycopg2_documentation#postgresql-status-message-and-executed-query
+        return cursor.query
+
+class DatabaseWrapper(BaseDatabaseWrapper):
+    operators = {
+        'exact': '= %s',
+        'iexact': '= UPPER(%s)',
+        'contains': 'LIKE %s',
+        'icontains': 'LIKE UPPER(%s)',
+        'regex': '~ %s',
+        'iregex': '~* %s',
+        'gt': '> %s',
+        'gte': '>= %s',
+        'lt': '< %s',
+        'lte': '<= %s',
+        'startswith': 'LIKE %s',
+        'endswith': 'LIKE %s',
+        'istartswith': 'LIKE UPPER(%s)',
+        'iendswith': 'LIKE UPPER(%s)',
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(DatabaseWrapper, self).__init__(*args, **kwargs)
+        
+        self.features = DatabaseFeatures()
+        self.ops = DatabaseOperations()
+        self.client = DatabaseClient()
+        self.creation = DatabaseCreation(self)
+        self.introspection = DatabaseIntrospection(self)
+        self.validation = BaseDatabaseValidation()
+
+    def _cursor(self, settings):
+        set_tz = False
+        if self.connection is None:
+            set_tz = True
+            if settings.DATABASE_NAME == '':
+                from django.core.exceptions import ImproperlyConfigured
+                raise ImproperlyConfigured("You need to specify DATABASE_NAME in your Django settings file.")
+            conn_string = "dbname=%s" % settings.DATABASE_NAME
+            if settings.DATABASE_USER:
+                conn_string = "user=%s %s" % (settings.DATABASE_USER, conn_string)
+            if settings.DATABASE_PASSWORD:
+                conn_string += " password='%s'" % settings.DATABASE_PASSWORD
+            if settings.DATABASE_HOST:
+                conn_string += " host=%s" % settings.DATABASE_HOST
+            if settings.DATABASE_PORT:
+                conn_string += " port=%s" % settings.DATABASE_PORT
+            self.connection = Database.connect(conn_string, **self.options)
+            self.connection.set_isolation_level(1) # make transactions transparent to all cursors
+            self.connection.set_client_encoding('UTF8')
+        cursor = self.connection.cursor()
+        cursor.tzinfo_factory = None
+        if set_tz:
+            cursor.execute("SET TIME ZONE %s", [settings.TIME_ZONE])
+            if not hasattr(self, '_version'):
+                version = get_version(cursor)
+                self.__class__._version = version
+                if version < (8, 0):
+                    # No savepoint support for earlier version of PostgreSQL.
+                    self.features.uses_savepoints = False
+        return cursor
diff --git a/webapp/django/db/backends/postgresql_psycopg2/introspection.py b/webapp/django/db/backends/postgresql_psycopg2/introspection.py
new file mode 100644
index 0000000..83bd9b4
--- /dev/null
+++ b/webapp/django/db/backends/postgresql_psycopg2/introspection.py
@@ -0,0 +1,21 @@
+from django.db.backends.postgresql.introspection import DatabaseIntrospection as PostgresDatabaseIntrospection
+
+class DatabaseIntrospection(PostgresDatabaseIntrospection):
+
+    def get_relations(self, cursor, table_name):
+        """
+        Returns a dictionary of {field_index: (field_index_other_table, other_table)}
+        representing all relationships to the given table. Indexes are 0-based.
+        """
+        cursor.execute("""
+            SELECT con.conkey, con.confkey, c2.relname
+            FROM pg_constraint con, pg_class c1, pg_class c2
+            WHERE c1.oid = con.conrelid
+                AND c2.oid = con.confrelid
+                AND c1.relname = %s
+                AND con.contype = 'f'""", [table_name])
+        relations = {}
+        for row in cursor.fetchall():
+            # row[0] and row[1] are single-item lists, so grab the single item.
+            relations[row[0][0] - 1] = (row[1][0] - 1, row[2])
+        return relations
diff --git a/webapp/django/db/backends/sqlite3/__init__.py b/webapp/django/db/backends/sqlite3/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/db/backends/sqlite3/__init__.py
diff --git a/webapp/django/db/backends/sqlite3/base.py b/webapp/django/db/backends/sqlite3/base.py
new file mode 100644
index 0000000..64da52e
--- /dev/null
+++ b/webapp/django/db/backends/sqlite3/base.py
@@ -0,0 +1,204 @@
+"""
+SQLite3 backend for django.
+
+Python 2.3 and 2.4 require pysqlite2 (http://pysqlite.org/).
+
+Python 2.5 and later use the sqlite3 module in the standard library.
+"""
+
+from django.db.backends import *
+from django.db.backends.sqlite3.client import DatabaseClient
+from django.db.backends.sqlite3.creation import DatabaseCreation
+from django.db.backends.sqlite3.introspection import DatabaseIntrospection
+
+try:
+    try:
+        from sqlite3 import dbapi2 as Database
+    except ImportError:
+        from pysqlite2 import dbapi2 as Database
+except ImportError, e:
+    import sys
+    from django.core.exceptions import ImproperlyConfigured
+    if sys.version_info < (2, 5, 0):
+        module = 'pysqlite2'
+    else:
+        module = 'sqlite3'
+    raise ImproperlyConfigured, "Error loading %s module: %s" % (module, e)
+
+try:
+    import decimal
+except ImportError:
+    from django.utils import _decimal as decimal # for Python 2.3
+
+DatabaseError = Database.DatabaseError
+IntegrityError = Database.IntegrityError
+
+Database.register_converter("bool", lambda s: str(s) == '1')
+Database.register_converter("time", util.typecast_time)
+Database.register_converter("date", util.typecast_date)
+Database.register_converter("datetime", util.typecast_timestamp)
+Database.register_converter("timestamp", util.typecast_timestamp)
+Database.register_converter("TIMESTAMP", util.typecast_timestamp)
+Database.register_converter("decimal", util.typecast_decimal)
+Database.register_adapter(decimal.Decimal, util.rev_typecast_decimal)
+if Database.version_info >= (2,4,1):
+    # Starting in 2.4.1, the str type is not accepted anymore, therefore,
+    # we convert all str objects to Unicode
+    # As registering a adapter for a primitive type causes a small
+    # slow-down, this adapter is only registered for sqlite3 versions
+    # needing it.
+    Database.register_adapter(str, lambda s:s.decode('utf-8'))
+
+class DatabaseFeatures(BaseDatabaseFeatures):
+    # SQLite cannot handle us only partially reading from a cursor's result set
+    # and then writing the same rows to the database in another cursor. This
+    # setting ensures we always read result sets fully into memory all in one
+    # go.
+    can_use_chunked_reads = False
+
+class DatabaseOperations(BaseDatabaseOperations):
+    def date_extract_sql(self, lookup_type, field_name):
+        # sqlite doesn't support extract, so we fake it with the user-defined
+        # function django_extract that's registered in connect().
+        return 'django_extract("%s", %s)' % (lookup_type.lower(), field_name)
+
+    def date_trunc_sql(self, lookup_type, field_name):
+        # sqlite doesn't support DATE_TRUNC, so we fake it with a user-defined
+        # function django_date_trunc that's registered in connect().
+        return 'django_date_trunc("%s", %s)' % (lookup_type.lower(), field_name)
+
+    def drop_foreignkey_sql(self):
+        return ""
+
+    def pk_default_value(self):
+        return 'NULL'
+
+    def quote_name(self, name):
+        if name.startswith('"') and name.endswith('"'):
+            return name # Quoting once is enough.
+        return '"%s"' % name
+
+    def no_limit_value(self):
+        return -1
+
+    def sql_flush(self, style, tables, sequences):
+        # NB: The generated SQL below is specific to SQLite
+        # Note: The DELETE FROM... SQL generated below works for SQLite databases
+        # because constraints don't exist
+        sql = ['%s %s %s;' % \
+                (style.SQL_KEYWORD('DELETE'),
+                 style.SQL_KEYWORD('FROM'),
+                 style.SQL_FIELD(self.quote_name(table))
+                 ) for table in tables]
+        # Note: No requirement for reset of auto-incremented indices (cf. other
+        # sql_flush() implementations). Just return SQL at this point
+        return sql
+
+    def year_lookup_bounds(self, value):
+        first = '%s-01-01'
+        second = '%s-12-31 23:59:59.999999'
+        return [first % value, second % value]
+
+class DatabaseWrapper(BaseDatabaseWrapper):
+    
+    # SQLite requires LIKE statements to include an ESCAPE clause if the value
+    # being escaped has a percent or underscore in it.
+    # See http://www.sqlite.org/lang_expr.html for an explanation.
+    operators = {
+        'exact': '= %s',
+        'iexact': "LIKE %s ESCAPE '\\'",
+        'contains': "LIKE %s ESCAPE '\\'",
+        'icontains': "LIKE %s ESCAPE '\\'",
+        'regex': 'REGEXP %s',
+        'iregex': "REGEXP '(?i)' || %s",
+        'gt': '> %s',
+        'gte': '>= %s',
+        'lt': '< %s',
+        'lte': '<= %s',
+        'startswith': "LIKE %s ESCAPE '\\'",
+        'endswith': "LIKE %s ESCAPE '\\'",
+        'istartswith': "LIKE %s ESCAPE '\\'",
+        'iendswith': "LIKE %s ESCAPE '\\'",
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(DatabaseWrapper, self).__init__(*args, **kwargs)
+        
+        self.features = DatabaseFeatures()
+        self.ops = DatabaseOperations()
+        self.client = DatabaseClient()
+        self.creation = DatabaseCreation(self)
+        self.introspection = DatabaseIntrospection(self)
+        self.validation = BaseDatabaseValidation()
+
+    def _cursor(self, settings):
+        if self.connection is None:
+            if not settings.DATABASE_NAME:
+                from django.core.exceptions import ImproperlyConfigured
+                raise ImproperlyConfigured, "Please fill out DATABASE_NAME in the settings module before using the database."
+            kwargs = {
+                'database': settings.DATABASE_NAME,
+                'detect_types': Database.PARSE_DECLTYPES | Database.PARSE_COLNAMES,
+            }
+            kwargs.update(self.options)
+            self.connection = Database.connect(**kwargs)
+            # Register extract, date_trunc, and regexp functions.
+            self.connection.create_function("django_extract", 2, _sqlite_extract)
+            self.connection.create_function("django_date_trunc", 2, _sqlite_date_trunc)
+            self.connection.create_function("regexp", 2, _sqlite_regexp)
+        return self.connection.cursor(factory=SQLiteCursorWrapper)
+
+    def close(self):
+        from django.conf import settings
+        # If database is in memory, closing the connection destroys the
+        # database. To prevent accidental data loss, ignore close requests on
+        # an in-memory db.
+        if settings.DATABASE_NAME != ":memory:":
+            BaseDatabaseWrapper.close(self)
+
+class SQLiteCursorWrapper(Database.Cursor):
+    """
+    Django uses "format" style placeholders, but pysqlite2 uses "qmark" style.
+    This fixes it -- but note that if you want to use a literal "%s" in a query,
+    you'll need to use "%%s".
+    """
+    def execute(self, query, params=()):
+        query = self.convert_query(query, len(params))
+        return Database.Cursor.execute(self, query, params)
+
+    def executemany(self, query, param_list):
+        try:
+          query = self.convert_query(query, len(param_list[0]))
+          return Database.Cursor.executemany(self, query, param_list)
+        except (IndexError,TypeError):
+          # No parameter list provided
+          return None
+
+    def convert_query(self, query, num_params):
+        return query % tuple("?" * num_params)
+
+def _sqlite_extract(lookup_type, dt):
+    try:
+        dt = util.typecast_timestamp(dt)
+    except (ValueError, TypeError):
+        return None
+    return unicode(getattr(dt, lookup_type))
+
+def _sqlite_date_trunc(lookup_type, dt):
+    try:
+        dt = util.typecast_timestamp(dt)
+    except (ValueError, TypeError):
+        return None
+    if lookup_type == 'year':
+        return "%i-01-01 00:00:00" % dt.year
+    elif lookup_type == 'month':
+        return "%i-%02i-01 00:00:00" % (dt.year, dt.month)
+    elif lookup_type == 'day':
+        return "%i-%02i-%02i 00:00:00" % (dt.year, dt.month, dt.day)
+
+def _sqlite_regexp(re_pattern, re_string):
+    import re
+    try:
+        return bool(re.search(re_pattern, re_string))
+    except:
+        return False
diff --git a/webapp/django/db/backends/sqlite3/client.py b/webapp/django/db/backends/sqlite3/client.py
new file mode 100644
index 0000000..affb1c2
--- /dev/null
+++ b/webapp/django/db/backends/sqlite3/client.py
@@ -0,0 +1,8 @@
+from django.db.backends import BaseDatabaseClient
+from django.conf import settings
+import os
+
+class DatabaseClient(BaseDatabaseClient):
+    def runshell(self):
+        args = ['', settings.DATABASE_NAME]
+        os.execvp('sqlite3', args)
diff --git a/webapp/django/db/backends/sqlite3/creation.py b/webapp/django/db/backends/sqlite3/creation.py
new file mode 100644
index 0000000..8943854
--- /dev/null
+++ b/webapp/django/db/backends/sqlite3/creation.py
@@ -0,0 +1,72 @@
+import os
+import sys
+from django.conf import settings
+from django.db.backends.creation import BaseDatabaseCreation
+
+class DatabaseCreation(BaseDatabaseCreation):
+    # SQLite doesn't actually support most of these types, but it "does the right
+    # thing" given more verbose field definitions, so leave them as is so that
+    # schema inspection is more useful.
+    data_types = {
+        'AutoField':                    'integer',
+        'BooleanField':                 'bool',
+        'CharField':                    'varchar(%(max_length)s)',
+        'CommaSeparatedIntegerField':   'varchar(%(max_length)s)',
+        'DateField':                    'date',
+        'DateTimeField':                'datetime',
+        'DecimalField':                 'decimal',
+        'FileField':                    'varchar(%(max_length)s)',
+        'FilePathField':                'varchar(%(max_length)s)',
+        'FloatField':                   'real',
+        'IntegerField':                 'integer',
+        'IPAddressField':               'char(15)',
+        'NullBooleanField':             'bool',
+        'OneToOneField':                'integer',
+        'PhoneNumberField':             'varchar(20)',
+        'PositiveIntegerField':         'integer unsigned',
+        'PositiveSmallIntegerField':    'smallint unsigned',
+        'SlugField':                    'varchar(%(max_length)s)',
+        'SmallIntegerField':            'smallint',
+        'TextField':                    'text',
+        'TimeField':                    'time',
+        'USStateField':                 'varchar(2)',
+    }
+    
+    def sql_for_pending_references(self, model, style, pending_references):
+        "SQLite3 doesn't support constraints"
+        return []
+
+    def sql_remove_table_constraints(self, model, references_to_delete, style):
+        "SQLite3 doesn't support constraints"
+        return []
+        
+    def _create_test_db(self, verbosity, autoclobber):
+        if settings.TEST_DATABASE_NAME and settings.TEST_DATABASE_NAME != ":memory:":
+            test_database_name = settings.TEST_DATABASE_NAME
+            # Erase the old test database
+            if verbosity >= 1:
+                print "Destroying old test database..."
+            if os.access(test_database_name, os.F_OK):
+                if not autoclobber:
+                    confirm = raw_input("Type 'yes' if you would like to try deleting the test database '%s', or 'no' to cancel: " % test_database_name)
+                if autoclobber or confirm == 'yes':
+                  try:
+                      if verbosity >= 1:
+                          print "Destroying old test database..."
+                      os.remove(test_database_name)
+                  except Exception, e:
+                      sys.stderr.write("Got an error deleting the old test database: %s\n" % e)
+                      sys.exit(2)
+                else:
+                    print "Tests cancelled."
+                    sys.exit(1)
+            if verbosity >= 1:
+                print "Creating test database..."
+        else:
+            test_database_name = ":memory:"
+        return test_database_name
+        
+    def _destroy_test_db(self, test_database_name, verbosity):
+        if test_database_name and test_database_name != ":memory:":
+            # Remove the SQLite database file
+            os.remove(test_database_name)
diff --git a/webapp/django/db/backends/sqlite3/introspection.py b/webapp/django/db/backends/sqlite3/introspection.py
new file mode 100644
index 0000000..5e26f33
--- /dev/null
+++ b/webapp/django/db/backends/sqlite3/introspection.py
@@ -0,0 +1,89 @@
+from django.db.backends import BaseDatabaseIntrospection
+
+# This light wrapper "fakes" a dictionary interface, because some SQLite data
+# types include variables in them -- e.g. "varchar(30)" -- and can't be matched
+# as a simple dictionary lookup.
+class FlexibleFieldLookupDict:
+    # Maps SQL types to Django Field types. Some of the SQL types have multiple
+    # entries here because SQLite allows for anything and doesn't normalize the
+    # field type; it uses whatever was given.
+    base_data_types_reverse = {
+        'bool': 'BooleanField',
+        'boolean': 'BooleanField',
+        'smallint': 'SmallIntegerField',
+        'smallinteger': 'SmallIntegerField',
+        'int': 'IntegerField',
+        'integer': 'IntegerField',
+        'text': 'TextField',
+        'char': 'CharField',
+        'date': 'DateField',
+        'datetime': 'DateTimeField',
+        'time': 'TimeField',
+    }
+
+    def __getitem__(self, key):
+        key = key.lower()
+        try:
+            return self.base_data_types_reverse[key]
+        except KeyError:
+            import re
+            m = re.search(r'^\s*(?:var)?char\s*\(\s*(\d+)\s*\)\s*$', key)
+            if m:
+                return ('CharField', {'max_length': int(m.group(1))})
+            raise KeyError
+
+class DatabaseIntrospection(BaseDatabaseIntrospection):
+    data_types_reverse = FlexibleFieldLookupDict()
+        
+    def get_table_list(self, cursor):
+        "Returns a list of table names in the current database."
+        # Skip the sqlite_sequence system table used for autoincrement key
+        # generation.
+        cursor.execute("""
+            SELECT name FROM sqlite_master
+            WHERE type='table' AND NOT name='sqlite_sequence'
+            ORDER BY name""")
+        return [row[0] for row in cursor.fetchall()]
+
+    def get_table_description(self, cursor, table_name):
+        "Returns a description of the table, with the DB-API cursor.description interface."
+        return [(info['name'], info['type'], None, None, None, None,
+                 info['null_ok']) for info in self._table_info(cursor, table_name)]
+
+    def get_relations(self, cursor, table_name):
+        raise NotImplementedError
+
+    def get_indexes(self, cursor, table_name):
+        """
+        Returns a dictionary of fieldname -> infodict for the given table,
+        where each infodict is in the format:
+            {'primary_key': boolean representing whether it's the primary key,
+             'unique': boolean representing whether it's a unique index}
+        """
+        indexes = {}
+        for info in self._table_info(cursor, table_name):
+            indexes[info['name']] = {'primary_key': info['pk'] != 0,
+                                     'unique': False}
+        cursor.execute('PRAGMA index_list(%s)' % self.connection.ops.quote_name(table_name))
+        # seq, name, unique
+        for index, unique in [(field[1], field[2]) for field in cursor.fetchall()]:
+            if not unique:
+                continue
+            cursor.execute('PRAGMA index_info(%s)' % self.connection.ops.quote_name(index))
+            info = cursor.fetchall()
+            # Skip indexes across multiple fields
+            if len(info) != 1:
+                continue
+            name = info[0][2] # seqno, cid, name
+            indexes[name]['unique'] = True
+        return indexes
+
+    def _table_info(self, cursor, name):
+        cursor.execute('PRAGMA table_info(%s)' % self.connection.ops.quote_name(name))
+        # cid, name, type, notnull, dflt_value, pk
+        return [{'name': field[1],
+                 'type': field[2],
+                 'null_ok': not field[3],
+                 'pk': field[5]     # undocumented
+                 } for field in cursor.fetchall()]
+
diff --git a/webapp/django/db/backends/util.py b/webapp/django/db/backends/util.py
new file mode 100644
index 0000000..7228b40
--- /dev/null
+++ b/webapp/django/db/backends/util.py
@@ -0,0 +1,127 @@
+import datetime
+from time import time
+
+from django.utils.hashcompat import md5_constructor
+
+try:
+    import decimal
+except ImportError:
+    from django.utils import _decimal as decimal    # for Python 2.3
+
+class CursorDebugWrapper(object):
+    def __init__(self, cursor, db):
+        self.cursor = cursor
+        self.db = db # Instance of a BaseDatabaseWrapper subclass
+
+    def execute(self, sql, params=()):
+        start = time()
+        try:
+            return self.cursor.execute(sql, params)
+        finally:
+            stop = time()
+            sql = self.db.ops.last_executed_query(self.cursor, sql, params)
+            self.db.queries.append({
+                'sql': sql,
+                'time': "%.3f" % (stop - start),
+            })
+
+    def executemany(self, sql, param_list):
+        start = time()
+        try:
+            return self.cursor.executemany(sql, param_list)
+        finally:
+            stop = time()
+            self.db.queries.append({
+                'sql': '%s times: %s' % (len(param_list), sql),
+                'time': "%.3f" % (stop - start),
+            })
+
+    def __getattr__(self, attr):
+        if attr in self.__dict__:
+            return self.__dict__[attr]
+        else:
+            return getattr(self.cursor, attr)
+
+    def __iter__(self):
+        return iter(self.cursor)
+
+###############################################
+# Converters from database (string) to Python #
+###############################################
+
+def typecast_date(s):
+    return s and datetime.date(*map(int, s.split('-'))) or None # returns None if s is null
+
+def typecast_time(s): # does NOT store time zone information
+    if not s: return None
+    hour, minutes, seconds = s.split(':')
+    if '.' in seconds: # check whether seconds have a fractional part
+        seconds, microseconds = seconds.split('.')
+    else:
+        microseconds = '0'
+    return datetime.time(int(hour), int(minutes), int(seconds), int(float('.'+microseconds) * 1000000))
+
+def typecast_timestamp(s): # does NOT store time zone information
+    # "2005-07-29 15:48:00.590358-05"
+    # "2005-07-29 09:56:00-05"
+    if not s: return None
+    if not ' ' in s: return typecast_date(s)
+    d, t = s.split()
+    # Extract timezone information, if it exists. Currently we just throw
+    # it away, but in the future we may make use of it.
+    if '-' in t:
+        t, tz = t.split('-', 1)
+        tz = '-' + tz
+    elif '+' in t:
+        t, tz = t.split('+', 1)
+        tz = '+' + tz
+    else:
+        tz = ''
+    dates = d.split('-')
+    times = t.split(':')
+    seconds = times[2]
+    if '.' in seconds: # check whether seconds have a fractional part
+        seconds, microseconds = seconds.split('.')
+    else:
+        microseconds = '0'
+    return datetime.datetime(int(dates[0]), int(dates[1]), int(dates[2]),
+        int(times[0]), int(times[1]), int(seconds), int(float('.'+microseconds) * 1000000))
+
+def typecast_boolean(s):
+    if s is None: return None
+    if not s: return False
+    return str(s)[0].lower() == 't'
+
+def typecast_decimal(s):
+    if s is None or s == '':
+        return None
+    return decimal.Decimal(s)
+
+###############################################
+# Converters from Python to database (string) #
+###############################################
+
+def rev_typecast_boolean(obj, d):
+    return obj and '1' or '0'
+
+def rev_typecast_decimal(d):
+    if d is None:
+        return None
+    return str(d)
+
+def truncate_name(name, length=None):
+    """Shortens a string to a repeatable mangled version with the given length.
+    """
+    if length is None or len(name) <= length:
+        return name
+
+    hash = md5_constructor(name).hexdigest()[:4]
+
+    return '%s%s' % (name[:length-4], hash)
+
+def format_number(value, max_digits, decimal_places):
+    """
+    Formats a number into a string with the requisite number of digits and
+    decimal places.
+    """
+    return u"%.*f" % (decimal_places, value)
diff --git a/webapp/django/db/models/__init__.py b/webapp/django/db/models/__init__.py
new file mode 100644
index 0000000..cbd6855
--- /dev/null
+++ b/webapp/django/db/models/__init__.py
@@ -0,0 +1,32 @@
+from django.conf import settings
+from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured
+from django.core import validators
+from django.db import connection
+from django.db.models.loading import get_apps, get_app, get_models, get_model, register_models
+from django.db.models.query import Q
+from django.db.models.manager import Manager
+from django.db.models.base import Model
+from django.db.models.fields import *
+from django.db.models.fields.subclassing import SubfieldBase
+from django.db.models.fields.files import FileField, ImageField
+from django.db.models.fields.related import ForeignKey, OneToOneField, ManyToManyField, ManyToOneRel, ManyToManyRel, OneToOneRel, TABULAR, STACKED
+from django.db.models import signals
+
+# Admin stages.
+ADD, CHANGE, BOTH = 1, 2, 3
+
+def permalink(func):
+    """
+    Decorator that calls urlresolvers.reverse() to return a URL using
+    parameters returned by the decorated function "func".
+
+    "func" should be a function that returns a tuple in one of the
+    following formats:
+        (viewname, viewargs)
+        (viewname, viewargs, viewkwargs)
+    """
+    from django.core.urlresolvers import reverse
+    def inner(*args, **kwargs):
+        bits = func(*args, **kwargs)
+        return reverse(bits[0], None, *bits[1:3])
+    return inner
diff --git a/webapp/django/db/models/base.py b/webapp/django/db/models/base.py
new file mode 100644
index 0000000..115d82b
--- /dev/null
+++ b/webapp/django/db/models/base.py
@@ -0,0 +1,504 @@
+import copy
+import types
+import sys
+import os
+from itertools import izip
+try:
+    set
+except NameError:
+    from sets import Set as set     # Python 2.3 fallback.
+
+import django.db.models.manipulators    # Imported to register signal handler.
+import django.db.models.manager         # Ditto.
+from django.core import validators
+from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned, FieldError
+from django.db.models.fields import AutoField
+from django.db.models.fields.related import OneToOneRel, ManyToOneRel, OneToOneField
+from django.db.models.query import delete_objects, Q, CollectedObjects
+from django.db.models.options import Options
+from django.db import connection, transaction, DatabaseError
+from django.db.models import signals
+from django.db.models.loading import register_models, get_model
+from django.utils.functional import curry
+from django.utils.encoding import smart_str, force_unicode, smart_unicode
+from django.core.files.move import file_move_safe
+from django.core.files import locks
+from django.conf import settings
+
+
+class ModelBase(type):
+    """
+    Metaclass for all models.
+    """
+    def __new__(cls, name, bases, attrs):
+        super_new = super(ModelBase, cls).__new__
+        parents = [b for b in bases if isinstance(b, ModelBase)]
+        if not parents:
+            # If this isn't a subclass of Model, don't do anything special.
+            return super_new(cls, name, bases, attrs)
+
+        # Create the class.
+        module = attrs.pop('__module__')
+        new_class = super_new(cls, name, bases, {'__module__': module})
+        attr_meta = attrs.pop('Meta', None)
+        abstract = getattr(attr_meta, 'abstract', False)
+        if not attr_meta:
+            meta = getattr(new_class, 'Meta', None)
+        else:
+            meta = attr_meta
+        base_meta = getattr(new_class, '_meta', None)
+
+        if getattr(meta, 'app_label', None) is None:
+            # Figure out the app_label by looking one level up.
+            # For 'django.contrib.sites.models', this would be 'sites'.
+            model_module = sys.modules[new_class.__module__]
+            kwargs = {"app_label": model_module.__name__.split('.')[-2]}
+        else:
+            kwargs = {}
+
+        new_class.add_to_class('_meta', Options(meta, **kwargs))
+        if not abstract:
+            new_class.add_to_class('DoesNotExist',
+                    subclass_exception('DoesNotExist', ObjectDoesNotExist, module))
+            new_class.add_to_class('MultipleObjectsReturned',
+                    subclass_exception('MultipleObjectsReturned', MultipleObjectsReturned, module))
+            if base_meta and not base_meta.abstract:
+                # Non-abstract child classes inherit some attributes from their
+                # non-abstract parent (unless an ABC comes before it in the
+                # method resolution order).
+                if not hasattr(meta, 'ordering'):
+                    new_class._meta.ordering = base_meta.ordering
+                if not hasattr(meta, 'get_latest_by'):
+                    new_class._meta.get_latest_by = base_meta.get_latest_by
+
+        old_default_mgr = None
+        if getattr(new_class, '_default_manager', None):
+            # We have a parent who set the default manager.
+            if new_class._default_manager.model._meta.abstract:
+                old_default_mgr = new_class._default_manager
+            new_class._default_manager = None
+
+        # Bail out early if we have already created this class.
+        m = get_model(new_class._meta.app_label, name, False)
+        if m is not None:
+            return m
+
+        # Add all attributes to the class.
+        for obj_name, obj in attrs.items():
+            new_class.add_to_class(obj_name, obj)
+
+        # Do the appropriate setup for any model parents.
+        o2o_map = dict([(f.rel.to, f) for f in new_class._meta.local_fields
+                if isinstance(f, OneToOneField)])
+        for base in parents:
+            if not hasattr(base, '_meta'):
+                # Things without _meta aren't functional models, so they're
+                # uninteresting parents.
+                continue
+            if not base._meta.abstract:
+                if base in o2o_map:
+                    field = o2o_map[base]
+                    field.primary_key = True
+                    new_class._meta.setup_pk(field)
+                else:
+                    attr_name = '%s_ptr' % base._meta.module_name
+                    field = OneToOneField(base, name=attr_name,
+                            auto_created=True, parent_link=True)
+                    new_class.add_to_class(attr_name, field)
+                new_class._meta.parents[base] = field
+            else:
+                # The abstract base class case.
+                names = set([f.name for f in new_class._meta.local_fields + new_class._meta.many_to_many])
+                for field in base._meta.local_fields + base._meta.local_many_to_many:
+                    if field.name in names:
+                        raise FieldError('Local field %r in class %r clashes with field of similar name from abstract base class %r'
+                                % (field.name, name, base.__name__))
+                    new_class.add_to_class(field.name, copy.deepcopy(field))
+
+        if abstract:
+            # Abstract base models can't be instantiated and don't appear in
+            # the list of models for an app. We do the final setup for them a
+            # little differently from normal models.
+            attr_meta.abstract = False
+            new_class.Meta = attr_meta
+            return new_class
+
+        if old_default_mgr and not new_class._default_manager:
+            new_class._default_manager = old_default_mgr._copy_to_model(new_class)
+        new_class._prepare()
+        register_models(new_class._meta.app_label, new_class)
+
+        # Because of the way imports happen (recursively), we may or may not be
+        # the first time this model tries to register with the framework. There
+        # should only be one class for each model, so we always return the
+        # registered version.
+        return get_model(new_class._meta.app_label, name, False)
+
+    def add_to_class(cls, name, value):
+        if hasattr(value, 'contribute_to_class'):
+            value.contribute_to_class(cls, name)
+        else:
+            setattr(cls, name, value)
+
+    def _prepare(cls):
+        """
+        Creates some methods once self._meta has been populated.
+        """
+        opts = cls._meta
+        opts._prepare(cls)
+
+        if opts.order_with_respect_to:
+            cls.get_next_in_order = curry(cls._get_next_or_previous_in_order, is_next=True)
+            cls.get_previous_in_order = curry(cls._get_next_or_previous_in_order, is_next=False)
+            setattr(opts.order_with_respect_to.rel.to, 'get_%s_order' % cls.__name__.lower(), curry(method_get_order, cls))
+            setattr(opts.order_with_respect_to.rel.to, 'set_%s_order' % cls.__name__.lower(), curry(method_set_order, cls))
+
+        # Give the class a docstring -- its definition.
+        if cls.__doc__ is None:
+            cls.__doc__ = "%s(%s)" % (cls.__name__, ", ".join([f.attname for f in opts.fields]))
+
+        if hasattr(cls, 'get_absolute_url'):
+            cls.get_absolute_url = curry(get_absolute_url, opts, cls.get_absolute_url)
+
+        signals.class_prepared.send(sender=cls)
+
+
+class Model(object):
+    __metaclass__ = ModelBase
+
+    def __init__(self, *args, **kwargs):
+        signals.pre_init.send(sender=self.__class__, args=args, kwargs=kwargs)
+
+        # There is a rather weird disparity here; if kwargs, it's set, then args
+        # overrides it. It should be one or the other; don't duplicate the work
+        # The reason for the kwargs check is that standard iterator passes in by
+        # args, and instantiation for iteration is 33% faster.
+        args_len = len(args)
+        if args_len > len(self._meta.fields):
+            # Daft, but matches old exception sans the err msg.
+            raise IndexError("Number of args exceeds number of fields")
+
+        fields_iter = iter(self._meta.fields)
+        if not kwargs:
+            # The ordering of the izip calls matter - izip throws StopIteration
+            # when an iter throws it. So if the first iter throws it, the second
+            # is *not* consumed. We rely on this, so don't change the order
+            # without changing the logic.
+            for val, field in izip(args, fields_iter):
+                setattr(self, field.attname, val)
+        else:
+            # Slower, kwargs-ready version.
+            for val, field in izip(args, fields_iter):
+                setattr(self, field.attname, val)
+                kwargs.pop(field.name, None)
+                # Maintain compatibility with existing calls.
+                if isinstance(field.rel, ManyToOneRel):
+                    kwargs.pop(field.attname, None)
+
+        # Now we're left with the unprocessed fields that *must* come from
+        # keywords, or default.
+
+        for field in fields_iter:
+            rel_obj = None
+            if kwargs:
+                if isinstance(field.rel, ManyToOneRel):
+                    try:
+                        # Assume object instance was passed in.
+                        rel_obj = kwargs.pop(field.name)
+                    except KeyError:
+                        try:
+                            # Object instance wasn't passed in -- must be an ID.
+                            val = kwargs.pop(field.attname)
+                        except KeyError:
+                            val = field.get_default()
+                    else:
+                        # Object instance was passed in. Special case: You can
+                        # pass in "None" for related objects if it's allowed.
+                        if rel_obj is None and field.null:
+                            val = None
+                else:
+                    val = kwargs.pop(field.attname, field.get_default())
+            else:
+                val = field.get_default()
+            # If we got passed a related instance, set it using the field.name
+            # instead of field.attname (e.g. "user" instead of "user_id") so
+            # that the object gets properly cached (and type checked) by the
+            # RelatedObjectDescriptor.
+            if rel_obj:
+                setattr(self, field.name, rel_obj)
+            else:
+                setattr(self, field.attname, val)
+
+        if kwargs:
+            for prop in kwargs.keys():
+                try:
+                    if isinstance(getattr(self.__class__, prop), property):
+                        setattr(self, prop, kwargs.pop(prop))
+                except AttributeError:
+                    pass
+            if kwargs:
+                raise TypeError, "'%s' is an invalid keyword argument for this function" % kwargs.keys()[0]
+        signals.post_init.send(sender=self.__class__, instance=self)
+
+    def __repr__(self):
+        return smart_str(u'<%s: %s>' % (self.__class__.__name__, unicode(self)))
+
+    def __str__(self):
+        if hasattr(self, '__unicode__'):
+            return force_unicode(self).encode('utf-8')
+        return '%s object' % self.__class__.__name__
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self._get_pk_val() == other._get_pk_val()
+
+    def __ne__(self, other):
+        return not self.__eq__(other)
+
+    def __hash__(self):
+        return hash(self._get_pk_val())
+
+    def _get_pk_val(self, meta=None):
+        if not meta:
+            meta = self._meta
+        return getattr(self, meta.pk.attname)
+
+    def _set_pk_val(self, value):
+        return setattr(self, self._meta.pk.attname, value)
+
+    pk = property(_get_pk_val, _set_pk_val)
+
+    def save(self, force_insert=False, force_update=False):
+        """
+        Saves the current instance. Override this in a subclass if you want to
+        control the saving process.
+
+        The 'force_insert' and 'force_update' parameters can be used to insist
+        that the "save" must be an SQL insert or update (or equivalent for
+        non-SQL backends), respectively. Normally, they should not be set.
+        """
+        if force_insert and force_update:
+            raise ValueError("Cannot force both insert and updating in "
+                    "model saving.")
+        self.save_base(force_insert=force_insert, force_update=force_update)
+
+    save.alters_data = True
+
+    def save_base(self, raw=False, cls=None, force_insert=False,
+            force_update=False):
+        """
+        Does the heavy-lifting involved in saving. Subclasses shouldn't need to
+        override this method. It's separate from save() in order to hide the
+        need for overrides of save() to pass around internal-only parameters
+        ('raw' and 'cls').
+        """
+        assert not (force_insert and force_update)
+        if not cls:
+            cls = self.__class__
+            meta = self._meta
+            signal = True
+            signals.pre_save.send(sender=self.__class__, instance=self, raw=raw)
+        else:
+            meta = cls._meta
+            signal = False
+
+        # If we are in a raw save, save the object exactly as presented.
+        # That means that we don't try to be smart about saving attributes
+        # that might have come from the parent class - we just save the
+        # attributes we have been given to the class we have been given.
+        if not raw:
+            for parent, field in meta.parents.items():
+                # At this point, parent's primary key field may be unknown
+                # (for example, from administration form which doesn't fill
+                # this field). If so, fill it.
+                if getattr(self, parent._meta.pk.attname) is None and getattr(self, field.attname) is not None:
+                    setattr(self, parent._meta.pk.attname, getattr(self, field.attname))
+
+                self.save_base(raw, parent)
+                setattr(self, field.attname, self._get_pk_val(parent._meta))
+
+        non_pks = [f for f in meta.local_fields if not f.primary_key]
+
+        # First, try an UPDATE. If that doesn't update anything, do an INSERT.
+        pk_val = self._get_pk_val(meta)
+        # Note: the comparison with '' is required for compatibility with
+        # oldforms-style model creation.
+        pk_set = pk_val is not None and smart_unicode(pk_val) != u''
+        record_exists = True
+        manager = cls._default_manager
+        if pk_set:
+            # Determine whether a record with the primary key already exists.
+            if (force_update or (not force_insert and
+                    manager.filter(pk=pk_val).extra(select={'a': 1}).values('a').order_by())):
+                # It does already exist, so do an UPDATE.
+                if force_update or non_pks:
+                    values = [(f, None, f.get_db_prep_save(raw and getattr(self, f.attname) or f.pre_save(self, False))) for f in non_pks]
+                    rows = manager.filter(pk=pk_val)._update(values)
+                    if force_update and not rows:
+                        raise DatabaseError("Forced update did not affect any rows.")
+            else:
+                record_exists = False
+        if not pk_set or not record_exists:
+            if not pk_set:
+                if force_update:
+                    raise ValueError("Cannot force an update in save() with no primary key.")
+                values = [(f, f.get_db_prep_save(raw and getattr(self, f.attname) or f.pre_save(self, True))) for f in meta.local_fields if not isinstance(f, AutoField)]
+            else:
+                values = [(f, f.get_db_prep_save(raw and getattr(self, f.attname) or f.pre_save(self, True))) for f in meta.local_fields]
+
+            if meta.order_with_respect_to:
+                field = meta.order_with_respect_to
+                values.append((meta.get_field_by_name('_order')[0], manager.filter(**{field.name: getattr(self, field.attname)}).count()))
+            record_exists = False
+
+            update_pk = bool(meta.has_auto_field and not pk_set)
+            if values:
+                # Create a new record.
+                result = manager._insert(values, return_id=update_pk)
+            else:
+                # Create a new record with defaults for everything.
+                result = manager._insert([(meta.pk, connection.ops.pk_default_value())], return_id=update_pk, raw_values=True)
+
+            if update_pk:
+                setattr(self, meta.pk.attname, result)
+        transaction.commit_unless_managed()
+
+        if signal:
+            signals.post_save.send(sender=self.__class__, instance=self,
+                created=(not record_exists), raw=raw)
+
+    save_base.alters_data = True
+
+    def _collect_sub_objects(self, seen_objs, parent=None, nullable=False):
+        """
+        Recursively populates seen_objs with all objects related to this
+        object.
+
+        When done, seen_objs.items() will be in the format:
+            [(model_class, {pk_val: obj, pk_val: obj, ...}),
+             (model_class, {pk_val: obj, pk_val: obj, ...}), ...]
+        """
+        pk_val = self._get_pk_val()
+        if seen_objs.add(self.__class__, pk_val, self, parent, nullable):
+            return
+
+        for related in self._meta.get_all_related_objects():
+            rel_opts_name = related.get_accessor_name()
+            if isinstance(related.field.rel, OneToOneRel):
+                try:
+                    sub_obj = getattr(self, rel_opts_name)
+                except ObjectDoesNotExist:
+                    pass
+                else:
+                    sub_obj._collect_sub_objects(seen_objs, self.__class__, related.field.null)
+            else:
+                for sub_obj in getattr(self, rel_opts_name).all():
+                    sub_obj._collect_sub_objects(seen_objs, self.__class__, related.field.null)
+
+        # Handle any ancestors (for the model-inheritance case). We do this by
+        # traversing to the most remote parent classes -- those with no parents
+        # themselves -- and then adding those instances to the collection. That
+        # will include all the child instances down to "self".
+        parent_stack = self._meta.parents.values()
+        while parent_stack:
+            link = parent_stack.pop()
+            parent_obj = getattr(self, link.name)
+            if parent_obj._meta.parents:
+                parent_stack.extend(parent_obj._meta.parents.values())
+                continue
+            # At this point, parent_obj is base class (no ancestor models). So
+            # delete it and all its descendents.
+            parent_obj._collect_sub_objects(seen_objs)
+
+    def delete(self):
+        assert self._get_pk_val() is not None, "%s object can't be deleted because its %s attribute is set to None." % (self._meta.object_name, self._meta.pk.attname)
+
+        # Find all the objects than need to be deleted.
+        seen_objs = CollectedObjects()
+        self._collect_sub_objects(seen_objs)
+
+        # Actually delete the objects.
+        delete_objects(seen_objs)
+
+    delete.alters_data = True
+
+    def _get_FIELD_display(self, field):
+        value = getattr(self, field.attname)
+        return force_unicode(dict(field.flatchoices).get(value, value), strings_only=True)
+
+    def _get_next_or_previous_by_FIELD(self, field, is_next, **kwargs):
+        op = is_next and 'gt' or 'lt'
+        order = not is_next and '-' or ''
+        param = smart_str(getattr(self, field.attname))
+        q = Q(**{'%s__%s' % (field.name, op): param})
+        q = q|Q(**{field.name: param, 'pk__%s' % op: self.pk})
+        qs = self.__class__._default_manager.filter(**kwargs).filter(q).order_by('%s%s' % (order, field.name), '%spk' % order)
+        try:
+            return qs[0]
+        except IndexError:
+            raise self.DoesNotExist, "%s matching query does not exist." % self.__class__._meta.object_name
+
+    def _get_next_or_previous_in_order(self, is_next):
+        cachename = "__%s_order_cache" % is_next
+        if not hasattr(self, cachename):
+            qn = connection.ops.quote_name
+            op = is_next and '>' or '<'
+            order = not is_next and '-_order' or '_order'
+            order_field = self._meta.order_with_respect_to
+            # FIXME: When querysets support nested queries, this can be turned
+            # into a pure queryset operation.
+            where = ['%s %s (SELECT %s FROM %s WHERE %s=%%s)' % \
+                (qn('_order'), op, qn('_order'),
+                qn(self._meta.db_table), qn(self._meta.pk.column))]
+            params = [self.pk]
+            obj = self._default_manager.filter(**{order_field.name: getattr(self, order_field.attname)}).extra(where=where, params=params).order_by(order)[:1].get()
+            setattr(self, cachename, obj)
+        return getattr(self, cachename)
+
+
+
+############################################
+# HELPER FUNCTIONS (CURRIED MODEL METHODS) #
+############################################
+
+# ORDERING METHODS #########################
+
+def method_set_order(ordered_obj, self, id_list):
+    rel_val = getattr(self, ordered_obj._meta.order_with_respect_to.rel.field_name)
+    order_name = ordered_obj._meta.order_with_respect_to.name
+    # FIXME: It would be nice if there was an "update many" version of update
+    # for situations like this.
+    for i, j in enumerate(id_list):
+        ordered_obj.objects.filter(**{'pk': j, order_name: rel_val}).update(_order=i)
+    transaction.commit_unless_managed()
+
+
+def method_get_order(ordered_obj, self):
+    rel_val = getattr(self, ordered_obj._meta.order_with_respect_to.rel.field_name)
+    order_name = ordered_obj._meta.order_with_respect_to.name
+    pk_name = ordered_obj._meta.pk.name
+    return [r[pk_name] for r in
+            ordered_obj.objects.filter(**{order_name: rel_val}).values(pk_name)]
+
+
+##############################################
+# HELPER FUNCTIONS (CURRIED MODEL FUNCTIONS) #
+##############################################
+
+def get_absolute_url(opts, func, self, *args, **kwargs):
+    return settings.ABSOLUTE_URL_OVERRIDES.get('%s.%s' % (opts.app_label, opts.module_name), func)(self, *args, **kwargs)
+
+
+########
+# MISC #
+########
+
+class Empty(object):
+    pass
+
+if sys.version_info < (2, 5):
+    # Prior to Python 2.5, Exception was an old-style class
+    def subclass_exception(name, parent, unused):
+        return types.ClassType(name, (parent,), {})
+else:
+    def subclass_exception(name, parent, module):
+        return type(name, (parent,), {'__module__': module})
diff --git a/webapp/django/db/models/fields/__init__.py b/webapp/django/db/models/fields/__init__.py
new file mode 100644
index 0000000..b8d0567
--- /dev/null
+++ b/webapp/django/db/models/fields/__init__.py
@@ -0,0 +1,1035 @@
+import copy
+import datetime
+import os
+import time
+try:
+    import decimal
+except ImportError:
+    from django.utils import _decimal as decimal    # for Python 2.3
+
+from django.db import connection
+from django.db.models import signals
+from django.db.models.query_utils import QueryWrapper
+from django.dispatch import dispatcher
+from django.conf import settings
+from django.core import validators
+from django import oldforms
+from django import forms
+from django.core.exceptions import ObjectDoesNotExist
+from django.utils.datastructures import DictWrapper
+from django.utils.functional import curry
+from django.utils.itercompat import tee
+from django.utils.text import capfirst
+from django.utils.translation import ugettext_lazy, ugettext as _
+from django.utils.encoding import smart_unicode, force_unicode, smart_str
+from django.utils import datetime_safe
+
+class NOT_PROVIDED:
+    pass
+
+# The values to use for "blank" in SelectFields. Will be appended to the start of most "choices" lists.
+BLANK_CHOICE_DASH = [("", "---------")]
+BLANK_CHOICE_NONE = [("", "None")]
+
+class FieldDoesNotExist(Exception):
+    pass
+
+def manipulator_validator_unique(f, opts, self, field_data, all_data):
+    "Validates that the value is unique for this field."
+    lookup_type = f.get_validator_unique_lookup_type()
+    try:
+        old_obj = self.manager.get(**{lookup_type: field_data})
+    except ObjectDoesNotExist:
+        return
+    if getattr(self, 'original_object', None) and self.original_object._get_pk_val() == old_obj._get_pk_val():
+        return
+    raise validators.ValidationError, _("%(optname)s with this %(fieldname)s already exists.") % {'optname': capfirst(opts.verbose_name), 'fieldname': f.verbose_name}
+
+# A guide to Field parameters:
+#
+#   * name:      The name of the field specifed in the model.
+#   * attname:   The attribute to use on the model object. This is the same as
+#                "name", except in the case of ForeignKeys, where "_id" is
+#                appended.
+#   * db_column: The db_column specified in the model (or None).
+#   * column:    The database column for this field. This is the same as
+#                "attname", except if db_column is specified.
+#
+# Code that introspects values, or does other dynamic things, should use
+# attname. For example, this gets the primary key value of object "obj":
+#
+#     getattr(obj, opts.pk.attname)
+
+class Field(object):
+    # Designates whether empty strings fundamentally are allowed at the
+    # database level.
+    empty_strings_allowed = True
+
+    # These track each time a Field instance is created. Used to retain order.
+    # The auto_creation_counter is used for fields that Django implicitly
+    # creates, creation_counter is used for all user-specified fields.
+    creation_counter = 0
+    auto_creation_counter = -1
+
+    def __init__(self, verbose_name=None, name=None, primary_key=False,
+            max_length=None, unique=False, blank=False, null=False,
+            db_index=False, core=False, rel=None, default=NOT_PROVIDED,
+            editable=True, serialize=True, unique_for_date=None,
+            unique_for_month=None, unique_for_year=None, validator_list=None,
+            choices=None, help_text='', db_column=None, db_tablespace=None,
+            auto_created=False):
+        self.name = name
+        self.verbose_name = verbose_name
+        self.primary_key = primary_key
+        self.max_length, self._unique = max_length, unique
+        self.blank, self.null = blank, null
+        # Oracle treats the empty string ('') as null, so coerce the null
+        # option whenever '' is a possible value.
+        if self.empty_strings_allowed and connection.features.interprets_empty_strings_as_nulls:
+            self.null = True
+        self.core, self.rel, self.default = core, rel, default
+        self.editable = editable
+        self.serialize = serialize
+        self.validator_list = validator_list or []
+        self.unique_for_date, self.unique_for_month = unique_for_date, unique_for_month
+        self.unique_for_year = unique_for_year
+        self._choices = choices or []
+        self.help_text = help_text
+        self.db_column = db_column
+        self.db_tablespace = db_tablespace or settings.DEFAULT_INDEX_TABLESPACE
+        self.auto_created = auto_created
+
+        # Set db_index to True if the field has a relationship and doesn't explicitly set db_index.
+        self.db_index = db_index
+
+        # Adjust the appropriate creation counter, and save our local copy.
+        if auto_created:
+            self.creation_counter = Field.auto_creation_counter
+            Field.auto_creation_counter -= 1
+        else:
+            self.creation_counter = Field.creation_counter
+            Field.creation_counter += 1
+
+    def __cmp__(self, other):
+        # This is needed because bisect does not take a comparison function.
+        return cmp(self.creation_counter, other.creation_counter)
+
+    def __deepcopy__(self, memodict):
+        # We don't have to deepcopy very much here, since most things are not
+        # intended to be altered after initial creation.
+        obj = copy.copy(self)
+        if self.rel:
+            obj.rel = copy.copy(self.rel)
+        memodict[id(self)] = obj
+        return obj
+
+    def to_python(self, value):
+        """
+        Converts the input value into the expected Python data type, raising
+        validators.ValidationError if the data can't be converted. Returns the
+        converted value. Subclasses should override this.
+        """
+        return value
+
+    def db_type(self):
+        """
+        Returns the database column data type for this field, taking into
+        account the DATABASE_ENGINE setting.
+        """
+        # The default implementation of this method looks at the
+        # backend-specific DATA_TYPES dictionary, looking up the field by its
+        # "internal type".
+        #
+        # A Field class can implement the get_internal_type() method to specify
+        # which *preexisting* Django Field class it's most similar to -- i.e.,
+        # an XMLField is represented by a TEXT column type, which is the same
+        # as the TextField Django field type, which means XMLField's
+        # get_internal_type() returns 'TextField'.
+        #
+        # But the limitation of the get_internal_type() / data_types approach
+        # is that it cannot handle database column types that aren't already
+        # mapped to one of the built-in Django field types. In this case, you
+        # can implement db_type() instead of get_internal_type() to specify
+        # exactly which wacky database column type you want to use.
+        data = DictWrapper(self.__dict__, connection.ops.quote_name, "qn_")
+        try:
+            return connection.creation.data_types[self.get_internal_type()] % data
+        except KeyError:
+            return None
+
+    def unique(self):
+        return self._unique or self.primary_key
+    unique = property(unique)
+
+    def set_attributes_from_name(self, name):
+        self.name = name
+        self.attname, self.column = self.get_attname_column()
+        if self.verbose_name is None and name:
+            self.verbose_name = name.replace('_', ' ')
+
+    def contribute_to_class(self, cls, name):
+        self.set_attributes_from_name(name)
+        cls._meta.add_field(self)
+        if self.choices:
+            setattr(cls, 'get_%s_display' % self.name, curry(cls._get_FIELD_display, field=self))
+
+    def get_attname(self):
+        return self.name
+
+    def get_attname_column(self):
+        attname = self.get_attname()
+        column = self.db_column or attname
+        return attname, column
+
+    def get_cache_name(self):
+        return '_%s_cache' % self.name
+
+    def get_internal_type(self):
+        return self.__class__.__name__
+
+    def pre_save(self, model_instance, add):
+        "Returns field's value just before saving."
+        return getattr(model_instance, self.attname)
+
+    def get_db_prep_value(self, value):
+        """Returns field's value prepared for interacting with the database
+        backend.
+
+        Used by the default implementations of ``get_db_prep_save``and
+        `get_db_prep_lookup```
+        """
+        return value
+
+    def get_db_prep_save(self, value):
+        "Returns field's value prepared for saving into a database."
+        return self.get_db_prep_value(value)
+
+    def get_db_prep_lookup(self, lookup_type, value):
+        "Returns field's value prepared for database lookup."
+        if hasattr(value, 'as_sql'):
+            sql, params = value.as_sql()
+            return QueryWrapper(('(%s)' % sql), params)
+        if lookup_type in ('regex', 'iregex', 'month', 'day', 'search'):
+            return [value]
+        elif lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte'):
+            return [self.get_db_prep_value(value)]
+        elif lookup_type in ('range', 'in'):
+            return [self.get_db_prep_value(v) for v in value]
+        elif lookup_type in ('contains', 'icontains'):
+            return ["%%%s%%" % connection.ops.prep_for_like_query(value)]
+        elif lookup_type == 'iexact':
+            return [connection.ops.prep_for_like_query(value)]
+        elif lookup_type in ('startswith', 'istartswith'):
+            return ["%s%%" % connection.ops.prep_for_like_query(value)]
+        elif lookup_type in ('endswith', 'iendswith'):
+            return ["%%%s" % connection.ops.prep_for_like_query(value)]
+        elif lookup_type == 'isnull':
+            return []
+        elif lookup_type == 'year':
+            try:
+                value = int(value)
+            except ValueError:
+                raise ValueError("The __year lookup type requires an integer argument")
+
+            if self.get_internal_type() == 'DateField':
+                return connection.ops.year_lookup_bounds_for_date_field(value)
+            else:
+                return connection.ops.year_lookup_bounds(value)
+
+        raise TypeError("Field has invalid lookup: %s" % lookup_type)
+
+    def has_default(self):
+        "Returns a boolean of whether this field has a default value."
+        return self.default is not NOT_PROVIDED
+
+    def get_default(self):
+        "Returns the default value for this field."
+        if self.default is not NOT_PROVIDED:
+            if callable(self.default):
+                return self.default()
+            return force_unicode(self.default, strings_only=True)
+        if not self.empty_strings_allowed or (self.null and not connection.features.interprets_empty_strings_as_nulls):
+            return None
+        return ""
+
+    def get_manipulator_field_names(self, name_prefix):
+        """
+        Returns a list of field names that this object adds to the manipulator.
+        """
+        return [name_prefix + self.name]
+
+    def prepare_field_objs_and_params(self, manipulator, name_prefix):
+        params = {'validator_list': self.validator_list[:]}
+        if self.max_length and not self.choices: # Don't give SelectFields a max_length parameter.
+            params['max_length'] = self.max_length
+
+        if self.choices:
+            field_objs = [oldforms.SelectField]
+
+            params['choices'] = self.get_flatchoices()
+        else:
+            field_objs = self.get_manipulator_field_objs()
+        return (field_objs, params)
+
+    def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True):
+        """
+        Returns a list of oldforms.FormField instances for this field. It
+        calculates the choices at runtime, not at compile time.
+
+        name_prefix is a prefix to prepend to the "field_name" argument.
+        rel is a boolean specifying whether this field is in a related context.
+        """
+        field_objs, params = self.prepare_field_objs_and_params(manipulator, name_prefix)
+
+        # Add the "unique" validator(s).
+        for field_name_list in opts.unique_together:
+            if field_name_list[0] == self.name:
+                params['validator_list'].append(getattr(manipulator, 'isUnique%s' % '_'.join(field_name_list)))
+
+        # Add the "unique for..." validator(s).
+        if self.unique_for_date:
+            params['validator_list'].append(getattr(manipulator, 'isUnique%sFor%s' % (self.name, self.unique_for_date)))
+        if self.unique_for_month:
+            params['validator_list'].append(getattr(manipulator, 'isUnique%sFor%s' % (self.name, self.unique_for_month)))
+        if self.unique_for_year:
+            params['validator_list'].append(getattr(manipulator, 'isUnique%sFor%s' % (self.name, self.unique_for_year)))
+        if self.unique and not rel:
+            params['validator_list'].append(curry(manipulator_validator_unique, self, opts, manipulator))
+
+        # Only add is_required=True if the field cannot be blank. Primary keys
+        # are a special case, and fields in a related context should set this
+        # as False, because they'll be caught by a separate validator --
+        # RequiredIfOtherFieldGiven.
+        params['is_required'] = not self.blank and not self.primary_key and not rel
+
+        # BooleanFields (CheckboxFields) are a special case. They don't take
+        # is_required.
+        if isinstance(self, BooleanField):
+            del params['is_required']
+
+        # If this field is in a related context, check whether any other fields
+        # in the related object have core=True. If so, add a validator --
+        # RequiredIfOtherFieldsGiven -- to this FormField.
+        if rel and not self.blank and not isinstance(self, AutoField) and not isinstance(self, FileField):
+            # First, get the core fields, if any.
+            core_field_names = []
+            for f in opts.fields:
+                if f.core and f != self:
+                    core_field_names.extend(f.get_manipulator_field_names(name_prefix))
+            # Now, if there are any, add the validator to this FormField.
+            if core_field_names:
+                params['validator_list'].append(validators.RequiredIfOtherFieldsGiven(core_field_names, ugettext_lazy("This field is required.")))
+
+        # Finally, add the field_names.
+        field_names = self.get_manipulator_field_names(name_prefix)
+        return [man(field_name=field_names[i], **params) for i, man in enumerate(field_objs)]
+
+    def get_validator_unique_lookup_type(self):
+        return '%s__exact' % self.name
+
+    def get_manipulator_new_data(self, new_data, rel=False):
+        """
+        Given the full new_data dictionary (from the manipulator), returns this
+        field's data.
+        """
+        if rel:
+            return new_data.get(self.name, [self.get_default()])[0]
+        val = new_data.get(self.name, self.get_default())
+        if not self.empty_strings_allowed and val == '' and self.null:
+            val = None
+        return val
+
+    def get_choices(self, include_blank=True, blank_choice=BLANK_CHOICE_DASH):
+        """Returns choices with a default blank choices included, for use
+        as SelectField choices for this field."""
+        first_choice = include_blank and blank_choice or []
+        if self.choices:
+            return first_choice + list(self.choices)
+        rel_model = self.rel.to
+        if hasattr(self.rel, 'get_related_field'):
+            lst = [(getattr(x, self.rel.get_related_field().attname), smart_unicode(x)) for x in rel_model._default_manager.complex_filter(self.rel.limit_choices_to)]
+        else:
+            lst = [(x._get_pk_val(), smart_unicode(x)) for x in rel_model._default_manager.complex_filter(self.rel.limit_choices_to)]
+        return first_choice + lst
+
+    def get_choices_default(self):
+        return self.get_choices()
+
+    def get_flatchoices(self, include_blank=True, blank_choice=BLANK_CHOICE_DASH):
+        "Returns flattened choices with a default blank choice included."
+        first_choice = include_blank and blank_choice or []
+        return first_choice + list(self.flatchoices)
+
+    def _get_val_from_obj(self, obj):
+        if obj:
+            return getattr(obj, self.attname)
+        else:
+            return self.get_default()
+
+    def flatten_data(self, follow, obj=None):
+        """
+        Returns a dictionary mapping the field's manipulator field names to its
+        "flattened" string values for the admin view. obj is the instance to
+        extract the values from.
+        """
+        return {self.attname: self._get_val_from_obj(obj)}
+
+    def get_follow(self, override=None):
+        if override != None:
+            return override
+        else:
+            return self.editable
+
+    def bind(self, fieldmapping, original, bound_field_class):
+        return bound_field_class(self, fieldmapping, original)
+
+    def _get_choices(self):
+        if hasattr(self._choices, 'next'):
+            choices, self._choices = tee(self._choices)
+            return choices
+        else:
+            return self._choices
+    choices = property(_get_choices)
+
+    def _get_flatchoices(self):
+        """Flattened version of choices tuple."""
+        flat = []
+        for choice, value in self.choices:
+            if type(value) in (list, tuple):
+                flat.extend(value)
+            else:
+                flat.append((choice,value))
+        return flat
+    flatchoices = property(_get_flatchoices)
+
+    def save_form_data(self, instance, data):
+        setattr(instance, self.name, data)
+
+    def formfield(self, form_class=forms.CharField, **kwargs):
+        "Returns a django.forms.Field instance for this database Field."
+        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        if self.choices:
+            defaults['widget'] = forms.Select(choices=self.get_choices(include_blank=self.blank or not (self.has_default() or 'initial' in kwargs)))
+        if self.has_default():
+            defaults['initial'] = self.get_default()
+        defaults.update(kwargs)
+        return form_class(**defaults)
+
+    def value_from_object(self, obj):
+        "Returns the value of this field in the given model instance."
+        return getattr(obj, self.attname)
+
+class AutoField(Field):
+    empty_strings_allowed = False
+    def __init__(self, *args, **kwargs):
+        assert kwargs.get('primary_key', False) is True, "%ss must have primary_key=True." % self.__class__.__name__
+        kwargs['blank'] = True
+        Field.__init__(self, *args, **kwargs)
+
+    def to_python(self, value):
+        if value is None:
+            return value
+        try:
+            return int(value)
+        except (TypeError, ValueError):
+            raise validators.ValidationError, _("This value must be an integer.")
+
+    def get_db_prep_value(self, value):
+        if value is None:
+            return None
+        return int(value)
+
+    def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True):
+        if not rel:
+            return [] # Don't add a FormField unless it's in a related context.
+        return Field.get_manipulator_fields(self, opts, manipulator, change, name_prefix, rel, follow)
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.HiddenField]
+
+    def get_manipulator_new_data(self, new_data, rel=False):
+        # Never going to be called
+        # Not in main change pages
+        # ignored in related context
+        if not rel:
+            return None
+        return Field.get_manipulator_new_data(self, new_data, rel)
+
+    def contribute_to_class(self, cls, name):
+        assert not cls._meta.has_auto_field, "A model can't have more than one AutoField."
+        super(AutoField, self).contribute_to_class(cls, name)
+        cls._meta.has_auto_field = True
+        cls._meta.auto_field = self
+
+    def formfield(self, **kwargs):
+        return None
+
+class BooleanField(Field):
+    def __init__(self, *args, **kwargs):
+        kwargs['blank'] = True
+        if 'default' not in kwargs and not kwargs.get('null'):
+            kwargs['default'] = False
+        Field.__init__(self, *args, **kwargs)
+
+    def get_internal_type(self):
+        return "BooleanField"
+
+    def to_python(self, value):
+        if value in (True, False): return value
+        if value in ('t', 'True', '1'): return True
+        if value in ('f', 'False', '0'): return False
+        raise validators.ValidationError, _("This value must be either True or False.")
+
+    def get_db_prep_value(self, value):
+        if value is None:
+            return None
+        return bool(value)
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.CheckboxField]
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.BooleanField}
+        defaults.update(kwargs)
+        return super(BooleanField, self).formfield(**defaults)
+
+class CharField(Field):
+    def get_manipulator_field_objs(self):
+        return [oldforms.TextField]
+
+    def get_internal_type(self):
+        return "CharField"
+
+    def to_python(self, value):
+        if isinstance(value, basestring):
+            return value
+        if value is None:
+            if self.null:
+                return value
+            else:
+                raise validators.ValidationError, ugettext_lazy("This field cannot be null.")
+        return smart_unicode(value)
+
+    def formfield(self, **kwargs):
+        defaults = {'max_length': self.max_length}
+        defaults.update(kwargs)
+        return super(CharField, self).formfield(**defaults)
+
+# TODO: Maybe move this into contrib, because it's specialized.
+class CommaSeparatedIntegerField(CharField):
+    def get_manipulator_field_objs(self):
+        return [oldforms.CommaSeparatedIntegerField]
+
+class DateField(Field):
+    empty_strings_allowed = False
+    def __init__(self, verbose_name=None, name=None, auto_now=False, auto_now_add=False, **kwargs):
+        self.auto_now, self.auto_now_add = auto_now, auto_now_add
+        #HACKs : auto_now_add/auto_now should be done as a default or a pre_save.
+        if auto_now or auto_now_add:
+            kwargs['editable'] = False
+            kwargs['blank'] = True
+        Field.__init__(self, verbose_name, name, **kwargs)
+
+    def get_internal_type(self):
+        return "DateField"
+
+    def to_python(self, value):
+        if value is None:
+            return value
+        if isinstance(value, datetime.datetime):
+            return value.date()
+        if isinstance(value, datetime.date):
+            return value
+        validators.isValidANSIDate(value, None)
+        try:
+            return datetime.date(*time.strptime(value, '%Y-%m-%d')[:3])
+        except ValueError:
+            raise validators.ValidationError, _('Enter a valid date in YYYY-MM-DD format.')
+
+    def pre_save(self, model_instance, add):
+        if self.auto_now or (self.auto_now_add and add):
+            value = datetime.datetime.now()
+            setattr(model_instance, self.attname, value)
+            return value
+        else:
+            return super(DateField, self).pre_save(model_instance, add)
+
+    def contribute_to_class(self, cls, name):
+        super(DateField,self).contribute_to_class(cls, name)
+        if not self.null:
+            setattr(cls, 'get_next_by_%s' % self.name,
+                curry(cls._get_next_or_previous_by_FIELD, field=self, is_next=True))
+            setattr(cls, 'get_previous_by_%s' % self.name,
+                curry(cls._get_next_or_previous_by_FIELD, field=self, is_next=False))
+
+    # Needed because of horrible auto_now[_add] behaviour wrt. editable
+    def get_follow(self, override=None):
+        if override != None:
+            return override
+        else:
+            return self.editable or self.auto_now or self.auto_now_add
+
+    def get_db_prep_lookup(self, lookup_type, value):
+        # For "__month" and "__day" lookups, convert the value to a string so
+        # the database backend always sees a consistent type.
+        if lookup_type in ('month', 'day'):
+            return [force_unicode(value)]
+        return super(DateField, self).get_db_prep_lookup(lookup_type, value)
+
+    def get_db_prep_value(self, value):
+        # Casts dates into the format expected by the backend
+        return connection.ops.value_to_db_date(self.to_python(value))
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.DateField]
+
+    def flatten_data(self, follow, obj=None):
+        val = self._get_val_from_obj(obj)
+        if val is None:
+            data = ''
+        else:
+            data = datetime_safe.new_date(val).strftime("%Y-%m-%d")
+        return {self.attname: data}
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.DateField}
+        defaults.update(kwargs)
+        return super(DateField, self).formfield(**defaults)
+
+class DateTimeField(DateField):
+    def get_internal_type(self):
+        return "DateTimeField"
+
+    def to_python(self, value):
+        if value is None:
+            return value
+        if isinstance(value, datetime.datetime):
+            return value
+        if isinstance(value, datetime.date):
+            return datetime.datetime(value.year, value.month, value.day)
+
+        # Attempt to parse a datetime:
+        value = smart_str(value)
+        # split usecs, because they are not recognized by strptime.
+        if '.' in value:
+            try:
+                value, usecs = value.split('.')
+                usecs = int(usecs)
+            except ValueError:
+                raise validators.ValidationError, _('Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format.')
+        else:
+            usecs = 0
+        kwargs = {'microsecond': usecs}
+        try: # Seconds are optional, so try converting seconds first.
+            return datetime.datetime(*time.strptime(value, '%Y-%m-%d %H:%M:%S')[:6],
+                                     **kwargs)
+
+        except ValueError:
+            try: # Try without seconds.
+                return datetime.datetime(*time.strptime(value, '%Y-%m-%d %H:%M')[:5],
+                                         **kwargs)
+            except ValueError: # Try without hour/minutes/seconds.
+                try:
+                    return datetime.datetime(*time.strptime(value, '%Y-%m-%d')[:3],
+                                             **kwargs)
+                except ValueError:
+                    raise validators.ValidationError, _('Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format.')
+
+    def get_db_prep_value(self, value):
+        # Casts dates into the format expected by the backend
+        return connection.ops.value_to_db_datetime(self.to_python(value))
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.DateField, oldforms.TimeField]
+
+    def get_manipulator_field_names(self, name_prefix):
+        return [name_prefix + self.name + '_date', name_prefix + self.name + '_time']
+
+    def get_manipulator_new_data(self, new_data, rel=False):
+        date_field, time_field = self.get_manipulator_field_names('')
+        if rel:
+            d = new_data.get(date_field, [None])[0]
+            t = new_data.get(time_field, [None])[0]
+        else:
+            d = new_data.get(date_field, None)
+            t = new_data.get(time_field, None)
+        if d is not None and t is not None:
+            return datetime.datetime.combine(d, t)
+        return self.get_default()
+
+    def flatten_data(self,follow, obj = None):
+        val = self._get_val_from_obj(obj)
+        date_field, time_field = self.get_manipulator_field_names('')
+        if val is None:
+            date_data = time_data = ''
+        else:
+            d = datetime_safe.new_datetime(val)
+            date_data = d.strftime('%Y-%m-%d')
+            time_data = d.strftime('%H:%M:%S')
+        return {date_field: date_data, time_field: time_data}
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.DateTimeField}
+        defaults.update(kwargs)
+        return super(DateTimeField, self).formfield(**defaults)
+
+class DecimalField(Field):
+    empty_strings_allowed = False
+    def __init__(self, verbose_name=None, name=None, max_digits=None, decimal_places=None, **kwargs):
+        self.max_digits, self.decimal_places = max_digits, decimal_places
+        Field.__init__(self, verbose_name, name, **kwargs)
+
+    def get_internal_type(self):
+        return "DecimalField"
+
+    def to_python(self, value):
+        if value is None:
+            return value
+        try:
+            return decimal.Decimal(value)
+        except decimal.InvalidOperation:
+            raise validators.ValidationError(
+                _("This value must be a decimal number."))
+
+    def _format(self, value):
+        if isinstance(value, basestring) or value is None:
+            return value
+        else:
+            return self.format_number(value)
+
+    def format_number(self, value):
+        """
+        Formats a number into a string with the requisite number of digits and
+        decimal places.
+        """
+        # Method moved to django.db.backends.util.
+        #
+        # It is preserved because it is used by the oracle backend
+        # (django.db.backends.oracle.query), and also for
+        # backwards-compatibility with any external code which may have used
+        # this method.
+        from django.db.backends import util
+        return util.format_number(value, self.max_digits, self.decimal_places)
+
+    def get_db_prep_value(self, value):
+        return connection.ops.value_to_db_decimal(self.to_python(value),
+                self.max_digits, self.decimal_places)
+
+    def get_manipulator_field_objs(self):
+        return [curry(oldforms.DecimalField, max_digits=self.max_digits, decimal_places=self.decimal_places)]
+
+    def formfield(self, **kwargs):
+        defaults = {
+            'max_digits': self.max_digits,
+            'decimal_places': self.decimal_places,
+            'form_class': forms.DecimalField,
+        }
+        defaults.update(kwargs)
+        return super(DecimalField, self).formfield(**defaults)
+
+class EmailField(CharField):
+    def __init__(self, *args, **kwargs):
+        kwargs['max_length'] = kwargs.get('max_length', 75)
+        CharField.__init__(self, *args, **kwargs)
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.EmailField]
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.EmailField}
+        defaults.update(kwargs)
+        return super(EmailField, self).formfield(**defaults)
+
+class FilePathField(Field):
+    def __init__(self, verbose_name=None, name=None, path='', match=None, recursive=False, **kwargs):
+        self.path, self.match, self.recursive = path, match, recursive
+        kwargs['max_length'] = kwargs.get('max_length', 100)
+        Field.__init__(self, verbose_name, name, **kwargs)
+
+    def formfield(self, **kwargs):
+        defaults = {
+            'path': self.path,
+            'match': self.match,
+            'recursive': self.recursive,
+            'form_class': forms.FilePathField,
+        }
+        defaults.update(kwargs)
+        return super(FilePathField, self).formfield(**defaults)
+
+    def get_manipulator_field_objs(self):
+        return [curry(oldforms.FilePathField, path=self.path, match=self.match, recursive=self.recursive)]
+
+    def get_internal_type(self):
+        return "FilePathField"
+
+class FloatField(Field):
+    empty_strings_allowed = False
+
+    def get_db_prep_value(self, value):
+        if value is None:
+            return None
+        return float(value)
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.FloatField]
+
+    def get_internal_type(self):
+        return "FloatField"
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.FloatField}
+        defaults.update(kwargs)
+        return super(FloatField, self).formfield(**defaults)
+
+class IntegerField(Field):
+    empty_strings_allowed = False
+    def get_db_prep_value(self, value):
+        if value is None:
+            return None
+        return int(value)
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.IntegerField]
+
+    def get_internal_type(self):
+        return "IntegerField"
+
+    def to_python(self, value):
+        if value is None:
+            return value
+        try:
+            return int(value)
+        except (TypeError, ValueError):
+            raise validators.ValidationError, _("This value must be an integer.")
+                
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.IntegerField}
+        defaults.update(kwargs)
+        return super(IntegerField, self).formfield(**defaults)
+
+class IPAddressField(Field):
+    empty_strings_allowed = False
+    def __init__(self, *args, **kwargs):
+        kwargs['max_length'] = 15
+        Field.__init__(self, *args, **kwargs)
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.IPAddressField]
+
+    def get_internal_type(self):
+        return "IPAddressField"
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.IPAddressField}
+        defaults.update(kwargs)
+        return super(IPAddressField, self).formfield(**defaults)
+
+class NullBooleanField(Field):
+    empty_strings_allowed = False
+    def __init__(self, *args, **kwargs):
+        kwargs['null'] = True
+        Field.__init__(self, *args, **kwargs)
+
+    def get_internal_type(self):
+        return "NullBooleanField"
+
+    def to_python(self, value):
+        if value in (None, True, False): return value
+        if value in ('None'): return None
+        if value in ('t', 'True', '1'): return True
+        if value in ('f', 'False', '0'): return False
+        raise validators.ValidationError, _("This value must be either None, True or False.")
+
+    def get_db_prep_value(self, value):
+        if value is None:
+            return None
+        return bool(value)
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.NullBooleanField]
+
+    def formfield(self, **kwargs):
+        defaults = {
+            'form_class': forms.NullBooleanField,
+            'required': not self.blank,
+            'label': capfirst(self.verbose_name),
+            'help_text': self.help_text}
+        defaults.update(kwargs)
+        return super(NullBooleanField, self).formfield(**defaults)
+
+class PhoneNumberField(Field):
+    def get_manipulator_field_objs(self):
+        return [oldforms.PhoneNumberField]
+
+    def get_internal_type(self):
+        return "PhoneNumberField"
+
+    def formfield(self, **kwargs):
+        from django.contrib.localflavor.us.forms import USPhoneNumberField
+        defaults = {'form_class': USPhoneNumberField}
+        defaults.update(kwargs)
+        return super(PhoneNumberField, self).formfield(**defaults)
+
+class PositiveIntegerField(IntegerField):
+    def get_manipulator_field_objs(self):
+        return [oldforms.PositiveIntegerField]
+
+    def get_internal_type(self):
+        return "PositiveIntegerField"
+
+    def formfield(self, **kwargs):
+        defaults = {'min_value': 0}
+        defaults.update(kwargs)
+        return super(PositiveIntegerField, self).formfield(**defaults)
+
+class PositiveSmallIntegerField(IntegerField):
+    def get_manipulator_field_objs(self):
+        return [oldforms.PositiveSmallIntegerField]
+
+    def get_internal_type(self):
+        return "PositiveSmallIntegerField"
+
+    def formfield(self, **kwargs):
+        defaults = {'min_value': 0}
+        defaults.update(kwargs)
+        return super(PositiveSmallIntegerField, self).formfield(**defaults)
+
+class SlugField(CharField):
+    def __init__(self, *args, **kwargs):
+        kwargs['max_length'] = kwargs.get('max_length', 50)
+        kwargs.setdefault('validator_list', []).append(validators.isSlug)
+        # Set db_index=True unless it's been set manually.
+        if 'db_index' not in kwargs:
+            kwargs['db_index'] = True
+        super(SlugField, self).__init__(*args, **kwargs)
+
+    def get_internal_type(self):
+        return "SlugField"
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.RegexField, 'regex': r'^[a-zA-Z0-9_-]+$',
+            'error_messages': {'invalid': _(u"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.")},
+        }
+        defaults.update(kwargs)
+        return super(SlugField, self).formfield(**defaults)
+
+class SmallIntegerField(IntegerField):
+    def get_manipulator_field_objs(self):
+        return [oldforms.SmallIntegerField]
+
+    def get_internal_type(self):
+        return "SmallIntegerField"
+
+class TextField(Field):
+    def get_manipulator_field_objs(self):
+        return [oldforms.LargeTextField]
+
+    def get_internal_type(self):
+        return "TextField"
+
+    def formfield(self, **kwargs):
+        defaults = {'widget': forms.Textarea}
+        defaults.update(kwargs)
+        return super(TextField, self).formfield(**defaults)
+
+class TimeField(Field):
+    empty_strings_allowed = False
+    def __init__(self, verbose_name=None, name=None, auto_now=False, auto_now_add=False, **kwargs):
+        self.auto_now, self.auto_now_add = auto_now, auto_now_add
+        if auto_now or auto_now_add:
+            kwargs['editable'] = False
+        Field.__init__(self, verbose_name, name, **kwargs)
+
+    def get_internal_type(self):
+        return "TimeField"
+
+    def to_python(self, value):
+        if value is None:
+            return None
+        if isinstance(value, datetime.time):
+            return value
+
+        # Attempt to parse a datetime:
+        value = smart_str(value)
+        # split usecs, because they are not recognized by strptime.
+        if '.' in value:
+            try:
+                value, usecs = value.split('.')
+                usecs = int(usecs)
+            except ValueError:
+                raise validators.ValidationError, _('Enter a valid time in HH:MM[:ss[.uuuuuu]] format.')
+        else:
+            usecs = 0
+        kwargs = {'microsecond': usecs}
+
+        try: # Seconds are optional, so try converting seconds first.
+            return datetime.time(*time.strptime(value, '%H:%M:%S')[3:6],
+                                 **kwargs)
+        except ValueError:
+            try: # Try without seconds.
+                return datetime.time(*time.strptime(value, '%H:%M')[3:5],
+                                         **kwargs)
+            except ValueError:
+                raise validators.ValidationError, _('Enter a valid time in HH:MM[:ss[.uuuuuu]] format.')
+
+    def pre_save(self, model_instance, add):
+        if self.auto_now or (self.auto_now_add and add):
+            value = datetime.datetime.now().time()
+            setattr(model_instance, self.attname, value)
+            return value
+        else:
+            return super(TimeField, self).pre_save(model_instance, add)
+
+    def get_db_prep_value(self, value):
+        # Casts times into the format expected by the backend
+        return connection.ops.value_to_db_time(self.to_python(value))
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.TimeField]
+
+    def flatten_data(self,follow, obj = None):
+        val = self._get_val_from_obj(obj)
+        return {self.attname: (val is not None and val.strftime("%H:%M:%S") or '')}
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.TimeField}
+        defaults.update(kwargs)
+        return super(TimeField, self).formfield(**defaults)
+
+class URLField(CharField):
+    def __init__(self, verbose_name=None, name=None, verify_exists=True, **kwargs):
+        kwargs['max_length'] = kwargs.get('max_length', 200)
+        if verify_exists:
+            kwargs.setdefault('validator_list', []).append(validators.isExistingURL)
+        self.verify_exists = verify_exists
+        CharField.__init__(self, verbose_name, name, **kwargs)
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.URLField]
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.URLField, 'verify_exists': self.verify_exists}
+        defaults.update(kwargs)
+        return super(URLField, self).formfield(**defaults)
+
+class USStateField(Field):
+    def get_manipulator_field_objs(self):
+        return [oldforms.USStateField]
+
+    def get_internal_type(self):
+        return "USStateField"
+
+    def formfield(self, **kwargs):
+        from django.contrib.localflavor.us.forms import USStateSelect
+        defaults = {'widget': USStateSelect}
+        defaults.update(kwargs)
+        return super(USStateField, self).formfield(**defaults)
+
+class XMLField(TextField):
+    def __init__(self, verbose_name=None, name=None, schema_path=None, **kwargs):
+        self.schema_path = schema_path
+        Field.__init__(self, verbose_name, name, **kwargs)
+
+    def get_manipulator_field_objs(self):
+        return [curry(oldforms.XMLLargeTextField, schema_path=self.schema_path)]
+
diff --git a/webapp/django/db/models/fields/files.py b/webapp/django/db/models/fields/files.py
new file mode 100644
index 0000000..935dee6
--- /dev/null
+++ b/webapp/django/db/models/fields/files.py
@@ -0,0 +1,291 @@
+import datetime
+import os
+
+from django.conf import settings
+from django.db.models.fields import Field
+from django.core.files.base import File, ContentFile
+from django.core.files.storage import default_storage
+from django.core.files.images import ImageFile, get_image_dimensions
+from django.core.files.uploadedfile import UploadedFile
+from django.utils.functional import curry
+from django.db.models import signals
+from django.utils.encoding import force_unicode, smart_str
+from django.utils.translation import ugettext_lazy, ugettext as _
+from django import oldforms
+from django import forms
+from django.core import validators
+from django.db.models.loading import cache
+
+class FieldFile(File):
+    def __init__(self, instance, field, name):
+        self.instance = instance
+        self.field = field
+        self.storage = field.storage
+        self._name = name or u''
+        self._closed = False
+
+    def __eq__(self, other):
+        # Older code may be expecting FileField values to be simple strings.
+        # By overriding the == operator, it can remain backwards compatibility.
+        if hasattr(other, 'name'):
+            return self.name == other.name
+        return self.name == other
+
+    # The standard File contains most of the necessary properties, but
+    # FieldFiles can be instantiated without a name, so that needs to
+    # be checked for here.
+
+    def _require_file(self):
+        if not self:
+            raise ValueError("The '%s' attribute has no file associated with it." % self.field.name)
+
+    def _get_file(self):
+        self._require_file()
+        if not hasattr(self, '_file'):
+            self._file = self.storage.open(self.name, 'rb')
+        return self._file
+    file = property(_get_file)
+
+    def _get_path(self):
+        self._require_file()
+        return self.storage.path(self.name)
+    path = property(_get_path)
+
+    def _get_url(self):
+        self._require_file()
+        return self.storage.url(self.name)
+    url = property(_get_url)
+
+    def open(self, mode='rb'):
+        self._require_file()
+        return super(FieldFile, self).open(mode)
+    # open() doesn't alter the file's contents, but it does reset the pointer
+    open.alters_data = True
+
+    # In addition to the standard File API, FieldFiles have extra methods
+    # to further manipulate the underlying file, as well as update the
+    # associated model instance.
+
+    def save(self, name, content, save=True):
+        name = self.field.generate_filename(self.instance, name)
+        self._name = self.storage.save(name, content)
+        setattr(self.instance, self.field.name, self.name)
+
+        # Update the filesize cache
+        self._size = len(content)
+
+        # Save the object because it has changed, unless save is False
+        if save:
+            self.instance.save()
+    save.alters_data = True
+
+    def delete(self, save=True):
+        self.close()
+        self.storage.delete(self.name)
+
+        self._name = None
+        setattr(self.instance, self.field.name, self.name)
+
+        # Delete the filesize cache
+        if hasattr(self, '_size'):
+            del self._size
+
+        if save:
+            self.instance.save()
+    delete.alters_data = True
+
+    def __getstate__(self):
+        # FieldFile needs access to its associated model field and an instance
+        # it's attached to in order to work properly, but the only necessary
+        # data to be pickled is the file's name itself. Everything else will
+        # be restored later, by FileDescriptor below.
+        return {'_name': self.name, '_closed': False}
+
+class FileDescriptor(object):
+    def __init__(self, field):
+        self.field = field
+
+    def __get__(self, instance=None, owner=None):
+        if instance is None:
+            raise AttributeError, "%s can only be accessed from %s instances." % (self.field.name(self.owner.__name__))
+        file = instance.__dict__[self.field.name]
+        if not isinstance(file, FieldFile):
+            # Create a new instance of FieldFile, based on a given file name
+            instance.__dict__[self.field.name] = self.field.attr_class(instance, self.field, file)
+        elif not hasattr(file, 'field'):
+            # The FieldFile was pickled, so some attributes need to be reset.
+            file.instance = instance
+            file.field = self.field
+            file.storage = self.field.storage
+        return instance.__dict__[self.field.name]
+
+    def __set__(self, instance, value):
+        instance.__dict__[self.field.name] = value
+
+class FileField(Field):
+    attr_class = FieldFile
+
+    def __init__(self, verbose_name=None, name=None, upload_to='', storage=None, **kwargs):
+        for arg in ('core', 'primary_key', 'unique'):
+            if arg in kwargs:
+                raise TypeError("'%s' is not a valid argument for %s." % (arg, self.__class__))
+
+        self.storage = storage or default_storage
+        self.upload_to = upload_to
+        if callable(upload_to):
+            self.generate_filename = upload_to
+
+        kwargs['max_length'] = kwargs.get('max_length', 100)
+        super(FileField, self).__init__(verbose_name, name, **kwargs)
+
+    def get_internal_type(self):
+        return "FileField"
+
+    def get_db_prep_lookup(self, lookup_type, value):
+        if hasattr(value, 'name'):
+            value = value.name
+        return super(FileField, self).get_db_prep_lookup(lookup_type, value)
+
+    def get_db_prep_value(self, value):
+        "Returns field's value prepared for saving into a database."
+        # Need to convert File objects provided via a form to unicode for database insertion
+        if value is None:
+            return None
+        return unicode(value)
+
+    def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True):
+        field_list = Field.get_manipulator_fields(self, opts, manipulator, change, name_prefix, rel, follow)
+        if not self.blank:
+            if rel:
+                # This validator makes sure FileFields work in a related context.
+                class RequiredFileField(object):
+                    def __init__(self, other_field_names, other_file_field_name):
+                        self.other_field_names = other_field_names
+                        self.other_file_field_name = other_file_field_name
+                        self.always_test = True
+                    def __call__(self, field_data, all_data):
+                        if not all_data.get(self.other_file_field_name, False):
+                            c = validators.RequiredIfOtherFieldsGiven(self.other_field_names, ugettext_lazy("This field is required."))
+                            c(field_data, all_data)
+                # First, get the core fields, if any.
+                core_field_names = []
+                for f in opts.fields:
+                    if f.core and f != self:
+                        core_field_names.extend(f.get_manipulator_field_names(name_prefix))
+                # Now, if there are any, add the validator to this FormField.
+                if core_field_names:
+                    field_list[0].validator_list.append(RequiredFileField(core_field_names, field_list[1].field_name))
+            else:
+                v = validators.RequiredIfOtherFieldNotGiven(field_list[1].field_name, ugettext_lazy("This field is required."))
+                v.always_test = True
+                field_list[0].validator_list.append(v)
+                field_list[0].is_required = field_list[1].is_required = False
+
+        # If the raw path is passed in, validate it's under the MEDIA_ROOT.
+        def isWithinMediaRoot(field_data, all_data):
+            f = os.path.abspath(os.path.join(settings.MEDIA_ROOT, field_data))
+            if not f.startswith(os.path.abspath(os.path.normpath(settings.MEDIA_ROOT))):
+                raise validators.ValidationError(_("Enter a valid filename."))
+        field_list[1].validator_list.append(isWithinMediaRoot)
+        return field_list
+
+    def contribute_to_class(self, cls, name):
+        super(FileField, self).contribute_to_class(cls, name)
+        setattr(cls, self.name, FileDescriptor(self))
+        signals.post_delete.connect(self.delete_file, sender=cls)
+
+    def delete_file(self, instance, sender, **kwargs):
+        file = getattr(instance, self.attname)
+        # If no other object of this type references the file,
+        # and it's not the default value for future objects,
+        # delete it from the backend.
+        if file and file.name != self.default and \
+            not sender._default_manager.filter(**{self.name: file.name}):
+                file.delete(save=False)
+        elif file:
+            # Otherwise, just close the file, so it doesn't tie up resources.
+            file.close()
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.FileUploadField, oldforms.HiddenField]
+
+    def get_manipulator_field_names(self, name_prefix):
+        return [name_prefix + self.name + '_file', name_prefix + self.name]
+
+    def save_file(self, new_data, new_object, original_object, change, rel, save=True):
+        upload_field_name = self.get_manipulator_field_names('')[0]
+        if new_data.get(upload_field_name, False):
+            if rel:
+                file = new_data[upload_field_name][0]
+            else:
+                file = new_data[upload_field_name]
+
+            # Backwards-compatible support for files-as-dictionaries.
+            # We don't need to raise a warning because the storage backend will
+            # do so for us.
+            try:
+                filename = file.name
+            except AttributeError:
+                filename = file['filename']
+            filename = self.get_filename(filename)
+
+            getattr(new_object, self.attname).save(filename, file, save)
+
+    def get_directory_name(self):
+        return os.path.normpath(force_unicode(datetime.datetime.now().strftime(smart_str(self.upload_to))))
+
+    def get_filename(self, filename):
+        return os.path.normpath(self.storage.get_valid_name(os.path.basename(filename)))
+
+    def generate_filename(self, instance, filename):
+        return os.path.join(self.get_directory_name(), self.get_filename(filename))
+
+    def save_form_data(self, instance, data):
+        if data and isinstance(data, UploadedFile):
+            getattr(instance, self.name).save(data.name, data, save=False)
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.FileField}
+        # If a file has been provided previously, then the form doesn't require
+        # that a new file is provided this time.
+        # The code to mark the form field as not required is used by
+        # form_for_instance, but can probably be removed once form_for_instance
+        # is gone. ModelForm uses a different method to check for an existing file.
+        if 'initial' in kwargs:
+            defaults['required'] = False
+        defaults.update(kwargs)
+        return super(FileField, self).formfield(**defaults)
+
+class ImageFieldFile(ImageFile, FieldFile):
+    def save(self, name, content, save=True):
+        # Repopulate the image dimension cache.
+        self._dimensions_cache = get_image_dimensions(content)
+
+        # Update width/height fields, if needed
+        if self.field.width_field:
+            setattr(self.instance, self.field.width_field, self.width)
+        if self.field.height_field:
+            setattr(self.instance, self.field.height_field, self.height)
+
+        super(ImageFieldFile, self).save(name, content, save)
+
+    def delete(self, save=True):
+        # Clear the image dimensions cache
+        if hasattr(self, '_dimensions_cache'):
+            del self._dimensions_cache
+        super(ImageFieldFile, self).delete(save)
+
+class ImageField(FileField):
+    attr_class = ImageFieldFile
+
+    def __init__(self, verbose_name=None, name=None, width_field=None, height_field=None, **kwargs):
+        self.width_field, self.height_field = width_field, height_field
+        FileField.__init__(self, verbose_name, name, **kwargs)
+
+    def get_manipulator_field_objs(self):
+        return [oldforms.ImageUploadField, oldforms.HiddenField]
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.ImageField}
+        defaults.update(kwargs)
+        return super(ImageField, self).formfield(**defaults)
diff --git a/webapp/django/db/models/fields/proxy.py b/webapp/django/db/models/fields/proxy.py
new file mode 100644
index 0000000..31a31e3
--- /dev/null
+++ b/webapp/django/db/models/fields/proxy.py
@@ -0,0 +1,16 @@
+"""
+Field-like classes that aren't really fields. It's easier to use objects that
+have the same attributes as fields sometimes (avoids a lot of special casing).
+"""
+
+from django.db.models import fields
+
+class OrderWrt(fields.IntegerField):
+    """
+    A proxy for the _order database field that is used when
+    Meta.order_with_respect_to is specified.
+    """
+    name = '_order'
+    attname = '_order'
+    column = '_order'
+
diff --git a/webapp/django/db/models/fields/related.py b/webapp/django/db/models/fields/related.py
new file mode 100644
index 0000000..b09412a
--- /dev/null
+++ b/webapp/django/db/models/fields/related.py
@@ -0,0 +1,944 @@
+from django.db import connection, transaction
+from django.db.models import signals, get_model
+from django.db.models.fields import AutoField, Field, IntegerField, PositiveIntegerField, PositiveSmallIntegerField, FieldDoesNotExist
+from django.db.models.related import RelatedObject
+from django.db.models.query import QuerySet
+from django.db.models.query_utils import QueryWrapper
+from django.utils.translation import ugettext_lazy, string_concat, ungettext, ugettext as _
+from django.utils.functional import curry
+from django.core import validators
+from django import oldforms
+from django import forms
+
+try:
+    set
+except NameError:
+    from sets import Set as set   # Python 2.3 fallback
+
+# Values for Relation.edit_inline.
+TABULAR, STACKED = 1, 2
+
+RECURSIVE_RELATIONSHIP_CONSTANT = 'self'
+
+pending_lookups = {}
+
+def add_lazy_relation(cls, field, relation, operation):
+    """
+    Adds a lookup on ``cls`` when a related field is defined using a string,
+    i.e.::
+
+        class MyModel(Model):
+            fk = ForeignKey("AnotherModel")
+
+    This string can be:
+
+        * RECURSIVE_RELATIONSHIP_CONSTANT (i.e. "self") to indicate a recursive
+          relation.
+
+        * The name of a model (i.e "AnotherModel") to indicate another model in
+          the same app.
+
+        * An app-label and model name (i.e. "someapp.AnotherModel") to indicate
+          another model in a different app.
+
+    If the other model hasn't yet been loaded -- almost a given if you're using
+    lazy relationships -- then the relation won't be set up until the
+    class_prepared signal fires at the end of model initialization.
+    
+    operation is the work that must be performed once the relation can be resolved.
+    """
+    # Check for recursive relations
+    if relation == RECURSIVE_RELATIONSHIP_CONSTANT:
+        app_label = cls._meta.app_label
+        model_name = cls.__name__
+
+    else:
+        # Look for an "app.Model" relation
+        try:
+            app_label, model_name = relation.split(".")
+        except ValueError:
+            # If we can't split, assume a model in current app
+            app_label = cls._meta.app_label
+            model_name = relation
+
+    # Try to look up the related model, and if it's already loaded resolve the
+    # string right away. If get_model returns None, it means that the related
+    # model isn't loaded yet, so we need to pend the relation until the class
+    # is prepared.
+    model = get_model(app_label, model_name, False)
+    if model:
+        operation(field, model, cls)
+    else:
+        key = (app_label, model_name)
+        value = (cls, field, operation)
+        pending_lookups.setdefault(key, []).append(value)
+
+def do_pending_lookups(sender, **kwargs):
+    """
+    Handle any pending relations to the sending model. Sent from class_prepared.
+    """
+    key = (sender._meta.app_label, sender.__name__)
+    for cls, field, operation in pending_lookups.pop(key, []):
+        operation(field, sender, cls)
+
+signals.class_prepared.connect(do_pending_lookups)
+
+def manipulator_valid_rel_key(f, self, field_data, all_data):
+    "Validates that the value is a valid foreign key"
+    klass = f.rel.to
+    try:
+        klass._default_manager.get(**{f.rel.field_name: field_data})
+    except klass.DoesNotExist:
+        raise validators.ValidationError, _("Please enter a valid %s.") % f.verbose_name
+
+#HACK
+class RelatedField(object):
+    def contribute_to_class(self, cls, name):
+        sup = super(RelatedField, self)
+
+        # Add an accessor to allow easy determination of the related query path for this field
+        self.related_query_name = curry(self._get_related_query_name, cls._meta)
+
+        if hasattr(sup, 'contribute_to_class'):
+            sup.contribute_to_class(cls, name)
+
+        if not cls._meta.abstract and self.rel.related_name:
+            self.rel.related_name = self.rel.related_name % {'class': cls.__name__.lower()}
+
+        other = self.rel.to
+        if isinstance(other, basestring):
+            def resolve_related_class(field, model, cls):
+                field.rel.to = model
+                field.do_related_class(model, cls)
+            add_lazy_relation(cls, self, other, resolve_related_class)
+        else:
+            self.do_related_class(other, cls)
+
+    def set_attributes_from_rel(self):
+        self.name = self.name or (self.rel.to._meta.object_name.lower() + '_' + self.rel.to._meta.pk.name)
+        if self.verbose_name is None:
+            self.verbose_name = self.rel.to._meta.verbose_name
+        self.rel.field_name = self.rel.field_name or self.rel.to._meta.pk.name
+
+    def do_related_class(self, other, cls):
+        self.set_attributes_from_rel()
+        related = RelatedObject(other, cls, self)
+        if not cls._meta.abstract:
+            self.contribute_to_related_class(other, related)
+
+    def get_db_prep_lookup(self, lookup_type, value):
+        # If we are doing a lookup on a Related Field, we must be
+        # comparing object instances. The value should be the PK of value,
+        # not value itself.
+        def pk_trace(value):
+            # Value may be a primary key, or an object held in a relation.
+            # If it is an object, then we need to get the primary key value for
+            # that object. In certain conditions (especially one-to-one relations),
+            # the primary key may itself be an object - so we need to keep drilling
+            # down until we hit a value that can be used for a comparison.
+            v = value
+            try:
+                while True:
+                    v = getattr(v, v._meta.pk.name)
+            except AttributeError:
+                pass
+            return v
+
+        if hasattr(value, 'as_sql'):
+            sql, params = value.as_sql()
+            return QueryWrapper(('(%s)' % sql), params)
+        if lookup_type == 'exact':
+            return [pk_trace(value)]
+        if lookup_type == 'in':
+            return [pk_trace(v) for v in value]
+        elif lookup_type == 'isnull':
+            return []
+        raise TypeError, "Related Field has invalid lookup: %s" % lookup_type
+
+    def _get_related_query_name(self, opts):
+        # This method defines the name that can be used to identify this
+        # related object in a table-spanning query. It uses the lower-cased
+        # object_name by default, but this can be overridden with the
+        # "related_name" option.
+        return self.rel.related_name or opts.object_name.lower()
+
+class SingleRelatedObjectDescriptor(object):
+    # This class provides the functionality that makes the related-object
+    # managers available as attributes on a model class, for fields that have
+    # a single "remote" value, on the class pointed to by a related field.
+    # In the example "place.restaurant", the restaurant attribute is a
+    # SingleRelatedObjectDescriptor instance.
+    def __init__(self, related):
+        self.related = related
+        self.cache_name = '_%s_cache' % related.get_accessor_name()
+
+    def __get__(self, instance, instance_type=None):
+        if instance is None:
+            raise AttributeError, "%s must be accessed via instance" % self.related.opts.object_name
+
+        try:
+            return getattr(instance, self.cache_name)
+        except AttributeError:
+            params = {'%s__pk' % self.related.field.name: instance._get_pk_val()}
+            rel_obj = self.related.model._default_manager.get(**params)
+            setattr(instance, self.cache_name, rel_obj)
+            return rel_obj
+
+    def __set__(self, instance, value):
+        if instance is None:
+            raise AttributeError, "%s must be accessed via instance" % self.related.opts.object_name
+
+        # The similarity of the code below to the code in
+        # ReverseSingleRelatedObjectDescriptor is annoying, but there's a bunch
+        # of small differences that would make a common base class convoluted.
+
+        # If null=True, we can assign null here, but otherwise the value needs
+        # to be an instance of the related class.
+        if value is None and self.related.field.null == False:
+            raise ValueError('Cannot assign None: "%s.%s" does not allow null values.' %
+                                (instance._meta.object_name, self.related.get_accessor_name()))
+        elif value is not None and not isinstance(value, self.related.model):
+            raise ValueError('Cannot assign "%r": "%s.%s" must be a "%s" instance.' %
+                                (value, instance._meta.object_name,
+                                 self.related.get_accessor_name(), self.related.opts.object_name))
+
+        # Set the value of the related field
+        setattr(value, self.related.field.rel.get_related_field().attname, instance)
+
+        # Since we already know what the related object is, seed the related
+        # object caches now, too. This avoids another db hit if you get the
+        # object you just set.
+        setattr(instance, self.cache_name, value)
+        setattr(value, self.related.field.get_cache_name(), instance)
+
+class ReverseSingleRelatedObjectDescriptor(object):
+    # This class provides the functionality that makes the related-object
+    # managers available as attributes on a model class, for fields that have
+    # a single "remote" value, on the class that defines the related field.
+    # In the example "choice.poll", the poll attribute is a
+    # ReverseSingleRelatedObjectDescriptor instance.
+    def __init__(self, field_with_rel):
+        self.field = field_with_rel
+
+    def __get__(self, instance, instance_type=None):
+        if instance is None:
+            raise AttributeError, "%s must be accessed via instance" % self.field.name
+        cache_name = self.field.get_cache_name()
+        try:
+            return getattr(instance, cache_name)
+        except AttributeError:
+            val = getattr(instance, self.field.attname)
+            if val is None:
+                # If NULL is an allowed value, return it.
+                if self.field.null:
+                    return None
+                raise self.field.rel.to.DoesNotExist
+            other_field = self.field.rel.get_related_field()
+            if other_field.rel:
+                params = {'%s__pk' % self.field.rel.field_name: val}
+            else:
+                params = {'%s__exact' % self.field.rel.field_name: val}
+
+            # If the related manager indicates that it should be used for
+            # related fields, respect that.
+            rel_mgr = self.field.rel.to._default_manager
+            if getattr(rel_mgr, 'use_for_related_fields', False):
+                rel_obj = rel_mgr.get(**params)
+            else:
+                rel_obj = QuerySet(self.field.rel.to).get(**params)
+            setattr(instance, cache_name, rel_obj)
+            return rel_obj
+
+    def __set__(self, instance, value):
+        if instance is None:
+            raise AttributeError, "%s must be accessed via instance" % self._field.name
+
+        # If null=True, we can assign null here, but otherwise the value needs
+        # to be an instance of the related class.
+        if value is None and self.field.null == False:
+            raise ValueError('Cannot assign None: "%s.%s" does not allow null values.' %
+                                (instance._meta.object_name, self.field.name))
+        elif value is not None and not isinstance(value, self.field.rel.to):
+            raise ValueError('Cannot assign "%r": "%s.%s" must be a "%s" instance.' %
+                                (value, instance._meta.object_name,
+                                 self.field.name, self.field.rel.to._meta.object_name))
+
+        # Set the value of the related field
+        try:
+            val = getattr(value, self.field.rel.get_related_field().attname)
+        except AttributeError:
+            val = None
+        setattr(instance, self.field.attname, val)
+
+        # Since we already know what the related object is, seed the related
+        # object cache now, too. This avoids another db hit if you get the
+        # object you just set.
+        setattr(instance, self.field.get_cache_name(), value)
+
+class ForeignRelatedObjectsDescriptor(object):
+    # This class provides the functionality that makes the related-object
+    # managers available as attributes on a model class, for fields that have
+    # multiple "remote" values and have a ForeignKey pointed at them by
+    # some other model. In the example "poll.choice_set", the choice_set
+    # attribute is a ForeignRelatedObjectsDescriptor instance.
+    def __init__(self, related):
+        self.related = related   # RelatedObject instance
+
+    def __get__(self, instance, instance_type=None):
+        if instance is None:
+            raise AttributeError, "Manager must be accessed via instance"
+
+        rel_field = self.related.field
+        rel_model = self.related.model
+
+        # Dynamically create a class that subclasses the related
+        # model's default manager.
+        superclass = self.related.model._default_manager.__class__
+
+        class RelatedManager(superclass):
+            def get_query_set(self):
+                return superclass.get_query_set(self).filter(**(self.core_filters))
+
+            def add(self, *objs):
+                for obj in objs:
+                    setattr(obj, rel_field.name, instance)
+                    obj.save()
+            add.alters_data = True
+
+            def create(self, **kwargs):
+                new_obj = self.model(**kwargs)
+                self.add(new_obj)
+                return new_obj
+            create.alters_data = True
+
+            def get_or_create(self, **kwargs):
+                # Update kwargs with the related object that this
+                # ForeignRelatedObjectsDescriptor knows about.
+                kwargs.update({rel_field.name: instance})
+                return super(RelatedManager, self).get_or_create(**kwargs)
+            get_or_create.alters_data = True
+
+            # remove() and clear() are only provided if the ForeignKey can have a value of null.
+            if rel_field.null:
+                def remove(self, *objs):
+                    val = getattr(instance, rel_field.rel.get_related_field().attname)
+                    for obj in objs:
+                        # Is obj actually part of this descriptor set?
+                        if getattr(obj, rel_field.attname) == val:
+                            setattr(obj, rel_field.name, None)
+                            obj.save()
+                        else:
+                            raise rel_field.rel.to.DoesNotExist, "%r is not related to %r." % (obj, instance)
+                remove.alters_data = True
+
+                def clear(self):
+                    for obj in self.all():
+                        setattr(obj, rel_field.name, None)
+                        obj.save()
+                clear.alters_data = True
+
+        manager = RelatedManager()
+        attname = rel_field.rel.get_related_field().name
+        manager.core_filters = {'%s__%s' % (rel_field.name, attname):
+                getattr(instance, attname)}
+        manager.model = self.related.model
+
+        return manager
+
+    def __set__(self, instance, value):
+        if instance is None:
+            raise AttributeError, "Manager must be accessed via instance"
+
+        manager = self.__get__(instance)
+        # If the foreign key can support nulls, then completely clear the related set.
+        # Otherwise, just move the named objects into the set.
+        if self.related.field.null:
+            manager.clear()
+        manager.add(*value)
+
+def create_many_related_manager(superclass, through=False):
+    """Creates a manager that subclasses 'superclass' (which is a Manager)
+    and adds behavior for many-to-many related objects."""
+    class ManyRelatedManager(superclass):
+        def __init__(self, model=None, core_filters=None, instance=None, symmetrical=None,
+                join_table=None, source_col_name=None, target_col_name=None):
+            super(ManyRelatedManager, self).__init__()
+            self.core_filters = core_filters
+            self.model = model
+            self.symmetrical = symmetrical
+            self.instance = instance
+            self.join_table = join_table
+            self.source_col_name = source_col_name
+            self.target_col_name = target_col_name
+            self.through = through
+            self._pk_val = self.instance._get_pk_val()
+            if self._pk_val is None:
+                raise ValueError("%r instance needs to have a primary key value before a many-to-many relationship can be used." % instance.__class__.__name__)
+
+        def get_query_set(self):
+            return superclass.get_query_set(self)._next_is_sticky().filter(**(self.core_filters))
+
+        # If the ManyToMany relation has an intermediary model, 
+        # the add and remove methods do not exist.
+        if through is None:
+            def add(self, *objs):
+                self._add_items(self.source_col_name, self.target_col_name, *objs)
+
+                # If this is a symmetrical m2m relation to self, add the mirror entry in the m2m table
+                if self.symmetrical:
+                    self._add_items(self.target_col_name, self.source_col_name, *objs)
+            add.alters_data = True
+
+            def remove(self, *objs):
+                self._remove_items(self.source_col_name, self.target_col_name, *objs)
+
+                # If this is a symmetrical m2m relation to self, remove the mirror entry in the m2m table
+                if self.symmetrical:
+                    self._remove_items(self.target_col_name, self.source_col_name, *objs)
+            remove.alters_data = True
+
+        def clear(self):
+            self._clear_items(self.source_col_name)
+
+            # If this is a symmetrical m2m relation to self, clear the mirror entry in the m2m table
+            if self.symmetrical:
+                self._clear_items(self.target_col_name)
+        clear.alters_data = True
+
+        def create(self, **kwargs):
+            # This check needs to be done here, since we can't later remove this
+            # from the method lookup table, as we do with add and remove.
+            if through is not None:
+                raise AttributeError, "Cannot use create() on a ManyToManyField which specifies an intermediary model. Use %s's Manager instead." % through
+            new_obj = self.model(**kwargs)
+            new_obj.save()
+            self.add(new_obj)
+            return new_obj
+        create.alters_data = True
+
+        def get_or_create(self, **kwargs):
+            obj, created = \
+                    super(ManyRelatedManager, self).get_or_create(**kwargs)
+            # We only need to add() if created because if we got an object back
+            # from get() then the relationship already exists.
+            if created:
+                self.add(obj)
+            return obj, created
+        get_or_create.alters_data = True
+
+        def _add_items(self, source_col_name, target_col_name, *objs):
+            # join_table: name of the m2m link table
+            # source_col_name: the PK colname in join_table for the source object
+            # target_col_name: the PK colname in join_table for the target object
+            # *objs - objects to add. Either object instances, or primary keys of object instances.
+
+            # If there aren't any objects, there is nothing to do.
+            if objs:
+                # Check that all the objects are of the right type
+                new_ids = set()
+                for obj in objs:
+                    if isinstance(obj, self.model):
+                        new_ids.add(obj._get_pk_val())
+                    else:
+                        new_ids.add(obj)
+                # Add the newly created or already existing objects to the join table.
+                # First find out which items are already added, to avoid adding them twice
+                cursor = connection.cursor()
+                cursor.execute("SELECT %s FROM %s WHERE %s = %%s AND %s IN (%s)" % \
+                    (target_col_name, self.join_table, source_col_name,
+                    target_col_name, ",".join(['%s'] * len(new_ids))),
+                    [self._pk_val] + list(new_ids))
+                existing_ids = set([row[0] for row in cursor.fetchall()])
+
+                # Add the ones that aren't there already
+                for obj_id in (new_ids - existing_ids):
+                    cursor.execute("INSERT INTO %s (%s, %s) VALUES (%%s, %%s)" % \
+                        (self.join_table, source_col_name, target_col_name),
+                        [self._pk_val, obj_id])
+                transaction.commit_unless_managed()
+
+        def _remove_items(self, source_col_name, target_col_name, *objs):
+            # source_col_name: the PK colname in join_table for the source object
+            # target_col_name: the PK colname in join_table for the target object
+            # *objs - objects to remove
+
+            # If there aren't any objects, there is nothing to do.
+            if objs:
+                # Check that all the objects are of the right type
+                old_ids = set()
+                for obj in objs:
+                    if isinstance(obj, self.model):
+                        old_ids.add(obj._get_pk_val())
+                    else:
+                        old_ids.add(obj)
+                # Remove the specified objects from the join table
+                cursor = connection.cursor()
+                cursor.execute("DELETE FROM %s WHERE %s = %%s AND %s IN (%s)" % \
+                    (self.join_table, source_col_name,
+                    target_col_name, ",".join(['%s'] * len(old_ids))),
+                    [self._pk_val] + list(old_ids))
+                transaction.commit_unless_managed()
+
+        def _clear_items(self, source_col_name):
+            # source_col_name: the PK colname in join_table for the source object
+            cursor = connection.cursor()
+            cursor.execute("DELETE FROM %s WHERE %s = %%s" % \
+                (self.join_table, source_col_name),
+                [self._pk_val])
+            transaction.commit_unless_managed()
+
+    return ManyRelatedManager
+
+class ManyRelatedObjectsDescriptor(object):
+    # This class provides the functionality that makes the related-object
+    # managers available as attributes on a model class, for fields that have
+    # multiple "remote" values and have a ManyToManyField pointed at them by
+    # some other model (rather than having a ManyToManyField themselves).
+    # In the example "publication.article_set", the article_set attribute is a
+    # ManyRelatedObjectsDescriptor instance.
+    def __init__(self, related):
+        self.related = related   # RelatedObject instance
+
+    def __get__(self, instance, instance_type=None):
+        if instance is None:
+            raise AttributeError, "Manager must be accessed via instance"
+
+        # Dynamically create a class that subclasses the related
+        # model's default manager.
+        rel_model = self.related.model
+        superclass = rel_model._default_manager.__class__
+        RelatedManager = create_many_related_manager(superclass, self.related.field.rel.through)
+
+        qn = connection.ops.quote_name
+        manager = RelatedManager(
+            model=rel_model,
+            core_filters={'%s__pk' % self.related.field.name: instance._get_pk_val()},
+            instance=instance,
+            symmetrical=False,
+            join_table=qn(self.related.field.m2m_db_table()),
+            source_col_name=qn(self.related.field.m2m_reverse_name()),
+            target_col_name=qn(self.related.field.m2m_column_name())
+        )
+
+        return manager
+
+    def __set__(self, instance, value):
+        if instance is None:
+            raise AttributeError, "Manager must be accessed via instance"
+
+        through = getattr(self.related.field.rel, 'through', None)
+        if through is not None:
+            raise AttributeError, "Cannot set values on a ManyToManyField which specifies an intermediary model. Use %s's Manager instead." % through
+
+        manager = self.__get__(instance)
+        manager.clear()
+        manager.add(*value)
+
+class ReverseManyRelatedObjectsDescriptor(object):
+    # This class provides the functionality that makes the related-object
+    # managers available as attributes on a model class, for fields that have
+    # multiple "remote" values and have a ManyToManyField defined in their
+    # model (rather than having another model pointed *at* them).
+    # In the example "article.publications", the publications attribute is a
+    # ReverseManyRelatedObjectsDescriptor instance.
+    def __init__(self, m2m_field):
+        self.field = m2m_field
+
+    def __get__(self, instance, instance_type=None):
+        if instance is None:
+            raise AttributeError, "Manager must be accessed via instance"
+
+        # Dynamically create a class that subclasses the related
+        # model's default manager.
+        rel_model=self.field.rel.to
+        superclass = rel_model._default_manager.__class__
+        RelatedManager = create_many_related_manager(superclass, self.field.rel.through)
+
+        qn = connection.ops.quote_name
+        manager = RelatedManager(
+            model=rel_model,
+            core_filters={'%s__pk' % self.field.related_query_name(): instance._get_pk_val()},
+            instance=instance,
+            symmetrical=(self.field.rel.symmetrical and instance.__class__ == rel_model),
+            join_table=qn(self.field.m2m_db_table()),
+            source_col_name=qn(self.field.m2m_column_name()),
+            target_col_name=qn(self.field.m2m_reverse_name())
+        )
+
+        return manager
+
+    def __set__(self, instance, value):
+        if instance is None:
+            raise AttributeError, "Manager must be accessed via instance"
+
+        through = getattr(self.field.rel, 'through', None)
+        if through is not None:
+            raise AttributeError, "Cannot set values on a ManyToManyField which specifies an intermediary model.  Use %s's Manager instead." % through
+
+        manager = self.__get__(instance)
+        manager.clear()
+        manager.add(*value)
+
+class ManyToOneRel(object):
+    def __init__(self, to, field_name, num_in_admin=3, min_num_in_admin=None,
+            max_num_in_admin=None, num_extra_on_change=1, edit_inline=False,
+            related_name=None, limit_choices_to=None, lookup_overrides=None,
+            parent_link=False):
+        try:
+            to._meta
+        except AttributeError: # to._meta doesn't exist, so it must be RECURSIVE_RELATIONSHIP_CONSTANT
+            assert isinstance(to, basestring), "'to' must be either a model, a model name or the string %r" % RECURSIVE_RELATIONSHIP_CONSTANT
+        self.to, self.field_name = to, field_name
+        self.num_in_admin, self.edit_inline = num_in_admin, edit_inline
+        self.min_num_in_admin, self.max_num_in_admin = min_num_in_admin, max_num_in_admin
+        self.num_extra_on_change, self.related_name = num_extra_on_change, related_name
+        if limit_choices_to is None:
+            limit_choices_to = {}
+        self.limit_choices_to = limit_choices_to
+        self.lookup_overrides = lookup_overrides or {}
+        self.multiple = True
+        self.parent_link = parent_link
+
+    def get_related_field(self):
+        """
+        Returns the Field in the 'to' object to which this relationship is
+        tied.
+        """
+        data = self.to._meta.get_field_by_name(self.field_name)
+        if not data[2]:
+            raise FieldDoesNotExist("No related field named '%s'" %
+                    self.field_name)
+        return data[0]
+
+class OneToOneRel(ManyToOneRel):
+    def __init__(self, to, field_name, num_in_admin=0, min_num_in_admin=None,
+            max_num_in_admin=None, num_extra_on_change=None, edit_inline=False,
+            related_name=None, limit_choices_to=None, lookup_overrides=None,
+            parent_link=False):
+        # NOTE: *_num_in_admin and num_extra_on_change are intentionally
+        # ignored here. We accept them as parameters only to match the calling
+        # signature of ManyToOneRel.__init__().
+        super(OneToOneRel, self).__init__(to, field_name, num_in_admin,
+                edit_inline=edit_inline, related_name=related_name,
+                limit_choices_to=limit_choices_to,
+                lookup_overrides=lookup_overrides, parent_link=parent_link)
+        self.multiple = False
+
+class ManyToManyRel(object):
+    def __init__(self, to, num_in_admin=0, related_name=None,
+        limit_choices_to=None, symmetrical=True, through=None):
+        self.to = to
+        self.num_in_admin = num_in_admin
+        self.related_name = related_name
+        if limit_choices_to is None:
+            limit_choices_to = {}
+        self.limit_choices_to = limit_choices_to
+        self.edit_inline = False
+        self.symmetrical = symmetrical
+        self.multiple = True
+        self.through = through
+
+class ForeignKey(RelatedField, Field):
+    empty_strings_allowed = False
+    def __init__(self, to, to_field=None, rel_class=ManyToOneRel, **kwargs):
+        try:
+            to_name = to._meta.object_name.lower()
+        except AttributeError: # to._meta doesn't exist, so it must be RECURSIVE_RELATIONSHIP_CONSTANT
+            assert isinstance(to, basestring), "%s(%r) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string %r" % (self.__class__.__name__, to, RECURSIVE_RELATIONSHIP_CONSTANT)
+        else:
+            assert not to._meta.abstract, "%s cannot define a relation with abstract class %s" % (self.__class__.__name__, to._meta.object_name)
+            to_field = to_field or to._meta.pk.name
+        kwargs['verbose_name'] = kwargs.get('verbose_name', None)
+
+        kwargs['rel'] = rel_class(to, to_field,
+            num_in_admin=kwargs.pop('num_in_admin', 3),
+            min_num_in_admin=kwargs.pop('min_num_in_admin', None),
+            max_num_in_admin=kwargs.pop('max_num_in_admin', None),
+            num_extra_on_change=kwargs.pop('num_extra_on_change', 1),
+            edit_inline=kwargs.pop('edit_inline', False),
+            related_name=kwargs.pop('related_name', None),
+            limit_choices_to=kwargs.pop('limit_choices_to', None),
+            lookup_overrides=kwargs.pop('lookup_overrides', None),
+            parent_link=kwargs.pop('parent_link', False))
+        Field.__init__(self, **kwargs)
+
+        self.db_index = True
+
+    def get_attname(self):
+        return '%s_id' % self.name
+
+    def get_validator_unique_lookup_type(self):
+        return '%s__%s__exact' % (self.name, self.rel.get_related_field().name)
+
+    def prepare_field_objs_and_params(self, manipulator, name_prefix):
+        params = {'validator_list': self.validator_list[:], 'member_name': name_prefix + self.attname}
+        if self.null:
+            field_objs = [oldforms.NullSelectField]
+        else:
+            field_objs = [oldforms.SelectField]
+        params['choices'] = self.get_choices_default()
+        return field_objs, params
+
+    def get_default(self):
+        "Here we check if the default value is an object and return the to_field if so."
+        field_default = super(ForeignKey, self).get_default()
+        if isinstance(field_default, self.rel.to):
+            return getattr(field_default, self.rel.get_related_field().attname)
+        return field_default
+
+    def get_manipulator_field_objs(self):
+        rel_field = self.rel.get_related_field()
+        return [oldforms.IntegerField]
+
+    def get_db_prep_save(self, value):
+        if value == '' or value == None:
+            return None
+        else:
+            return self.rel.get_related_field().get_db_prep_save(value)
+
+    def flatten_data(self, follow, obj=None):
+        if not obj:
+            # In required many-to-one fields with only one available choice,
+            # select that one available choice. Note: For SelectFields
+            # we have to check that the length of choices is *2*, not 1,
+            # because SelectFields always have an initial "blank" value.
+            if not self.blank and self.choices:
+                choice_list = self.get_choices_default()
+                if len(choice_list) == 2:
+                    return {self.attname: choice_list[1][0]}
+        return Field.flatten_data(self, follow, obj)
+
+    def contribute_to_class(self, cls, name):
+        super(ForeignKey, self).contribute_to_class(cls, name)
+        setattr(cls, self.name, ReverseSingleRelatedObjectDescriptor(self))
+        if isinstance(self.rel.to, basestring):
+            target = self.rel.to
+        else:
+            target = self.rel.to._meta.db_table
+        cls._meta.duplicate_targets[self.column] = (target, "o2m")
+
+    def contribute_to_related_class(self, cls, related):
+        setattr(cls, related.get_accessor_name(), ForeignRelatedObjectsDescriptor(related))
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.ModelChoiceField, 'queryset': self.rel.to._default_manager.complex_filter(self.rel.limit_choices_to)}
+        defaults.update(kwargs)
+        return super(ForeignKey, self).formfield(**defaults)
+
+    def db_type(self):
+        # The database column type of a ForeignKey is the column type
+        # of the field to which it points. An exception is if the ForeignKey
+        # points to an AutoField/PositiveIntegerField/PositiveSmallIntegerField,
+        # in which case the column type is simply that of an IntegerField.
+        rel_field = self.rel.get_related_field()
+        if isinstance(rel_field, (AutoField, PositiveIntegerField, PositiveSmallIntegerField)):
+            return IntegerField().db_type()
+        return rel_field.db_type()
+
+class OneToOneField(ForeignKey):
+    """
+    A OneToOneField is essentially the same as a ForeignKey, with the exception
+    that always carries a "unique" constraint with it and the reverse relation
+    always returns the object pointed to (since there will only ever be one),
+    rather than returning a list.
+    """
+    def __init__(self, to, to_field=None, **kwargs):
+        kwargs['unique'] = True
+        if 'num_in_admin' not in kwargs:
+            kwargs['num_in_admin'] = 0
+        super(OneToOneField, self).__init__(to, to_field, OneToOneRel, **kwargs)
+
+    def contribute_to_related_class(self, cls, related):
+        setattr(cls, related.get_accessor_name(),
+                SingleRelatedObjectDescriptor(related))
+        if not cls._meta.one_to_one_field:
+            cls._meta.one_to_one_field = self
+    
+    def formfield(self, **kwargs):
+        if self.rel.parent_link:
+            return None
+        return super(OneToOneField, self).formfield(**kwargs)
+
+class ManyToManyField(RelatedField, Field):
+    def __init__(self, to, **kwargs):
+        try:
+            assert not to._meta.abstract, "%s cannot define a relation with abstract class %s" % (self.__class__.__name__, to._meta.object_name)
+        except AttributeError: # to._meta doesn't exist, so it must be RECURSIVE_RELATIONSHIP_CONSTANT
+            assert isinstance(to, basestring), "%s(%r) is invalid. First parameter to ManyToManyField must be either a model, a model name, or the string %r" % (self.__class__.__name__, to, RECURSIVE_RELATIONSHIP_CONSTANT)
+
+        kwargs['verbose_name'] = kwargs.get('verbose_name', None)
+        kwargs['rel'] = ManyToManyRel(to,
+            num_in_admin=kwargs.pop('num_in_admin', 0),
+            related_name=kwargs.pop('related_name', None),
+            limit_choices_to=kwargs.pop('limit_choices_to', None),
+            symmetrical=kwargs.pop('symmetrical', True),
+            through=kwargs.pop('through', None))
+            
+        self.db_table = kwargs.pop('db_table', None)
+        if kwargs['rel'].through is not None:
+            self.creates_table = False
+            assert self.db_table is None, "Cannot specify a db_table if an intermediary model is used."
+        else:
+            self.creates_table = True
+
+        Field.__init__(self, **kwargs)
+
+        msg = ugettext_lazy('Hold down "Control", or "Command" on a Mac, to select more than one.')
+        self.help_text = string_concat(self.help_text, ' ', msg)
+
+    def get_manipulator_field_objs(self):
+        choices = self.get_choices_default()
+        return [curry(oldforms.SelectMultipleField, size=min(max(len(choices), 5), 15), choices=choices)]
+
+    def get_choices_default(self):
+        return Field.get_choices(self, include_blank=False)
+
+    def _get_m2m_db_table(self, opts):
+        "Function that can be curried to provide the m2m table name for this relation"
+        if self.rel.through is not None:
+            return self.rel.through_model._meta.db_table
+        elif self.db_table:
+            return self.db_table
+        else:
+            return '%s_%s' % (opts.db_table, self.name)
+
+    def _get_m2m_column_name(self, related):
+        "Function that can be curried to provide the source column name for the m2m table"
+        try:
+            return self._m2m_column_name_cache
+        except:
+            if self.rel.through is not None:
+                for f in self.rel.through_model._meta.fields:
+                    if hasattr(f,'rel') and f.rel and f.rel.to == related.model:
+                        self._m2m_column_name_cache = f.column
+                        break
+            # If this is an m2m relation to self, avoid the inevitable name clash
+            elif related.model == related.parent_model:
+                self._m2m_column_name_cache = 'from_' + related.model._meta.object_name.lower() + '_id'
+            else:
+                self._m2m_column_name_cache = related.model._meta.object_name.lower() + '_id'
+                
+            # Return the newly cached value
+            return self._m2m_column_name_cache
+
+    def _get_m2m_reverse_name(self, related):
+        "Function that can be curried to provide the related column name for the m2m table"
+        try:
+            return self._m2m_reverse_name_cache
+        except:
+            if self.rel.through is not None:
+                found = False
+                for f in self.rel.through_model._meta.fields:
+                    if hasattr(f,'rel') and f.rel and f.rel.to == related.parent_model:
+                        if related.model == related.parent_model:
+                            # If this is an m2m-intermediate to self, 
+                            # the first foreign key you find will be 
+                            # the source column. Keep searching for
+                            # the second foreign key.
+                            if found:
+                                self._m2m_reverse_name_cache = f.column
+                                break
+                            else:
+                                found = True
+                        else:
+                            self._m2m_reverse_name_cache = f.column
+                            break
+            # If this is an m2m relation to self, avoid the inevitable name clash
+            elif related.model == related.parent_model:
+                self._m2m_reverse_name_cache = 'to_' + related.parent_model._meta.object_name.lower() + '_id'
+            else:
+                self._m2m_reverse_name_cache = related.parent_model._meta.object_name.lower() + '_id'
+
+            # Return the newly cached value
+            return self._m2m_reverse_name_cache
+
+    def isValidIDList(self, field_data, all_data):
+        "Validates that the value is a valid list of foreign keys"
+        mod = self.rel.to
+        try:
+            pks = map(int, field_data.split(','))
+        except ValueError:
+            # the CommaSeparatedIntegerField validator will catch this error
+            return
+        objects = mod._default_manager.in_bulk(pks)
+        if len(objects) != len(pks):
+            badkeys = [k for k in pks if k not in objects]
+            raise validators.ValidationError, ungettext("Please enter valid %(self)s IDs. The value %(value)r is invalid.",
+                    "Please enter valid %(self)s IDs. The values %(value)r are invalid.", len(badkeys)) % {
+                'self': self.verbose_name,
+                'value': len(badkeys) == 1 and badkeys[0] or tuple(badkeys),
+            }
+
+    def flatten_data(self, follow, obj = None):
+        new_data = {}
+        if obj:
+            instance_ids = [instance._get_pk_val() for instance in getattr(obj, self.name).all()]
+            new_data[self.name] = instance_ids
+        else:
+            # In required many-to-many fields with only one available choice,
+            # select that one available choice.
+            if not self.blank and not self.rel.edit_inline:
+                choices_list = self.get_choices_default()
+                if len(choices_list) == 1:
+                    new_data[self.name] = [choices_list[0][0]]
+        return new_data
+
+    def contribute_to_class(self, cls, name):
+        super(ManyToManyField, self).contribute_to_class(cls, name)        
+        # Add the descriptor for the m2m relation
+        setattr(cls, self.name, ReverseManyRelatedObjectsDescriptor(self))
+
+        # Set up the accessor for the m2m table name for the relation
+        self.m2m_db_table = curry(self._get_m2m_db_table, cls._meta)
+        
+        # Populate some necessary rel arguments so that cross-app relations
+        # work correctly.
+        if isinstance(self.rel.through, basestring):
+            def resolve_through_model(field, model, cls):
+                field.rel.through_model = model
+            add_lazy_relation(cls, self, self.rel.through, resolve_through_model)
+        elif self.rel.through:
+            self.rel.through_model = self.rel.through
+            self.rel.through = self.rel.through._meta.object_name
+            
+        if isinstance(self.rel.to, basestring):
+            target = self.rel.to
+        else:
+            target = self.rel.to._meta.db_table
+        cls._meta.duplicate_targets[self.column] = (target, "m2m")
+
+    def contribute_to_related_class(self, cls, related):
+        # m2m relations to self do not have a ManyRelatedObjectsDescriptor,
+        # as it would be redundant - unless the field is non-symmetrical.
+        if related.model != related.parent_model or not self.rel.symmetrical:
+            # Add the descriptor for the m2m relation
+            setattr(cls, related.get_accessor_name(), ManyRelatedObjectsDescriptor(related))
+
+        # Set up the accessors for the column names on the m2m table
+        self.m2m_column_name = curry(self._get_m2m_column_name, related)
+        self.m2m_reverse_name = curry(self._get_m2m_reverse_name, related)
+
+    def set_attributes_from_rel(self):
+        pass
+
+    def value_from_object(self, obj):
+        "Returns the value of this field in the given model instance."
+        return getattr(obj, self.attname).all()
+
+    def save_form_data(self, instance, data):
+        setattr(instance, self.attname, data)
+
+    def formfield(self, **kwargs):
+        defaults = {'form_class': forms.ModelMultipleChoiceField, 'queryset': self.rel.to._default_manager.complex_filter(self.rel.limit_choices_to)}
+        defaults.update(kwargs)
+        # If initial is passed in, it's a list of related objects, but the
+        # MultipleChoiceField takes a list of IDs.
+        if defaults.get('initial') is not None:
+            defaults['initial'] = [i._get_pk_val() for i in defaults['initial']]
+        return super(ManyToManyField, self).formfield(**defaults)
+
+    def db_type(self):
+        # A ManyToManyField is not represented by a single column,
+        # so return None.
+        return None
+
diff --git a/webapp/django/db/models/fields/subclassing.py b/webapp/django/db/models/fields/subclassing.py
new file mode 100644
index 0000000..10add10
--- /dev/null
+++ b/webapp/django/db/models/fields/subclassing.py
@@ -0,0 +1,50 @@
+"""
+Convenience routines for creating non-trivial Field subclasses.
+
+Add SubfieldBase as the __metaclass__ for your Field subclass, implement
+to_python() and the other necessary methods and everything will work seamlessly.
+"""
+
+class SubfieldBase(type):
+    """
+    A metaclass for custom Field subclasses. This ensures the model's attribute
+    has the descriptor protocol attached to it.
+    """
+    def __new__(cls, base, name, attrs):
+        new_class = super(SubfieldBase, cls).__new__(cls, base, name, attrs)
+        new_class.contribute_to_class = make_contrib(
+                attrs.get('contribute_to_class'))
+        return new_class
+
+class Creator(object):
+    """
+    A placeholder class that provides a way to set the attribute on the model.
+    """
+    def __init__(self, field):
+        self.field = field
+
+    def __get__(self, obj, type=None):
+        if obj is None:
+            raise AttributeError('Can only be accessed via an instance.')
+        return obj.__dict__[self.field.name]        
+
+    def __set__(self, obj, value):
+        obj.__dict__[self.field.name] = self.field.to_python(value)
+
+def make_contrib(func=None):
+    """
+    Returns a suitable contribute_to_class() method for the Field subclass.
+
+    If 'func' is passed in, it is the existing contribute_to_class() method on
+    the subclass and it is called before anything else. It is assumed in this
+    case that the existing contribute_to_class() calls all the necessary
+    superclass methods.
+    """
+    def contribute_to_class(self, cls, name):
+        if func:
+            func(self, cls, name)
+        else:
+            super(self.__class__, self).contribute_to_class(cls, name)
+        setattr(cls, self.name, Creator(self))
+
+    return contribute_to_class
diff --git a/webapp/django/db/models/loading.py b/webapp/django/db/models/loading.py
new file mode 100644
index 0000000..6837e07
--- /dev/null
+++ b/webapp/django/db/models/loading.py
@@ -0,0 +1,189 @@
+"Utilities for loading models and the modules that contain them."
+
+from django.conf import settings
+from django.core.exceptions import ImproperlyConfigured
+from django.utils.datastructures import SortedDict
+
+import sys
+import os
+import threading
+
+__all__ = ('get_apps', 'get_app', 'get_models', 'get_model', 'register_models',
+        'load_app', 'app_cache_ready')
+
+class AppCache(object):
+    """
+    A cache that stores installed applications and their models. Used to
+    provide reverse-relations and for app introspection (e.g. admin).
+    """
+    # Use the Borg pattern to share state between all instances. Details at
+    # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66531.
+    __shared_state = dict(
+        # Keys of app_store are the model modules for each application.
+        app_store = SortedDict(),
+
+        # Mapping of app_labels to a dictionary of model names to model code.
+        app_models = SortedDict(),
+
+        # Mapping of app_labels to errors raised when trying to import the app.
+        app_errors = {},
+
+        # -- Everything below here is only used when populating the cache --
+        loaded = False,
+        handled = {},
+        postponed = [],
+        nesting_level = 0,
+        write_lock = threading.RLock(),
+    )
+
+    def __init__(self):
+        self.__dict__ = self.__shared_state
+
+    def _populate(self):
+        """
+        Fill in all the cache information. This method is threadsafe, in the
+        sense that every caller will see the same state upon return, and if the
+        cache is already initialised, it does no work.
+        """
+        if self.loaded:
+            return
+        self.write_lock.acquire()
+        try:
+            if self.loaded:
+                return
+            for app_name in settings.INSTALLED_APPS:
+                if app_name in self.handled:
+                    continue
+                self.load_app(app_name, True)
+            if not self.nesting_level:
+                for app_name in self.postponed:
+                    self.load_app(app_name)
+                self.loaded = True
+        finally:
+            self.write_lock.release()
+
+    def load_app(self, app_name, can_postpone=False):
+        """
+        Loads the app with the provided fully qualified name, and returns the
+        model module.
+        """
+        self.handled[app_name] = None
+        self.nesting_level += 1
+        mod = __import__(app_name, {}, {}, ['models'])
+        self.nesting_level -= 1
+        if not hasattr(mod, 'models'):
+            if can_postpone:
+                # Either the app has no models, or the package is still being
+                # imported by Python and the model module isn't available yet.
+                # We will check again once all the recursion has finished (in
+                # populate).
+                self.postponed.append(app_name)
+            return None
+        if mod.models not in self.app_store:
+            self.app_store[mod.models] = len(self.app_store)
+        return mod.models
+
+    def app_cache_ready(self):
+        """
+        Returns true if the model cache is fully populated.
+
+        Useful for code that wants to cache the results of get_models() for
+        themselves once it is safe to do so.
+        """
+        return self.loaded
+
+    def get_apps(self):
+        "Returns a list of all installed modules that contain models."
+        self._populate()
+
+        # Ensure the returned list is always in the same order (with new apps
+        # added at the end). This avoids unstable ordering on the admin app
+        # list page, for example.
+        apps = [(v, k) for k, v in self.app_store.items()]
+        apps.sort()
+        return [elt[1] for elt in apps]
+
+    def get_app(self, app_label, emptyOK=False):
+        """
+        Returns the module containing the models for the given app_label. If
+        the app has no models in it and 'emptyOK' is True, returns None.
+        """
+        self._populate()
+        self.write_lock.acquire()
+        try:
+            for app_name in settings.INSTALLED_APPS:
+                if app_label == app_name.split('.')[-1]:
+                    mod = self.load_app(app_name, False)
+                    if mod is None:
+                        if emptyOK:
+                            return None
+                    else:
+                        return mod
+            raise ImproperlyConfigured, "App with label %s could not be found" % app_label
+        finally:
+            self.write_lock.release()
+
+    def get_app_errors(self):
+        "Returns the map of known problems with the INSTALLED_APPS."
+        self._populate()
+        return self.app_errors
+
+    def get_models(self, app_mod=None):
+        """
+        Given a module containing models, returns a list of the models.
+        Otherwise returns a list of all installed models.
+        """
+        self._populate()
+        if app_mod:
+            return self.app_models.get(app_mod.__name__.split('.')[-2], SortedDict()).values()
+        else:
+            model_list = []
+            for app_entry in self.app_models.itervalues():
+                model_list.extend(app_entry.values())
+            return model_list
+
+    def get_model(self, app_label, model_name, seed_cache=True):
+        """
+        Returns the model matching the given app_label and case-insensitive
+        model_name.
+
+        Returns None if no model is found.
+        """
+        if seed_cache:
+            self._populate()
+        return self.app_models.get(app_label, SortedDict()).get(model_name.lower())
+
+    def register_models(self, app_label, *models):
+        """
+        Register a set of models as belonging to an app.
+        """
+        for model in models:
+            # Store as 'name: model' pair in a dictionary
+            # in the app_models dictionary
+            model_name = model._meta.object_name.lower()
+            model_dict = self.app_models.setdefault(app_label, SortedDict())
+            if model_name in model_dict:
+                # The same model may be imported via different paths (e.g.
+                # appname.models and project.appname.models). We use the source
+                # filename as a means to detect identity.
+                fname1 = os.path.abspath(sys.modules[model.__module__].__file__)
+                fname2 = os.path.abspath(sys.modules[model_dict[model_name].__module__].__file__)
+                # Since the filename extension could be .py the first time and
+                # .pyc or .pyo the second time, ignore the extension when
+                # comparing.
+                if os.path.splitext(fname1)[0] == os.path.splitext(fname2)[0]:
+                    continue
+            model_dict[model_name] = model
+
+cache = AppCache()
+
+# These methods were always module level, so are kept that way for backwards
+# compatibility.
+get_apps = cache.get_apps
+get_app = cache.get_app
+get_app_errors = cache.get_app_errors
+get_models = cache.get_models
+get_model = cache.get_model
+register_models = cache.register_models
+load_app = cache.load_app
+app_cache_ready = cache.app_cache_ready
diff --git a/webapp/django/db/models/manager.py b/webapp/django/db/models/manager.py
new file mode 100644
index 0000000..96bd53f
--- /dev/null
+++ b/webapp/django/db/models/manager.py
@@ -0,0 +1,144 @@
+import copy
+
+from django.db.models.query import QuerySet, EmptyQuerySet, insert_query
+from django.db.models import signals
+from django.db.models.fields import FieldDoesNotExist
+
+def ensure_default_manager(sender, **kwargs):
+    cls = sender
+    if not getattr(cls, '_default_manager', None) and not cls._meta.abstract:
+        # Create the default manager, if needed.
+        try:
+            cls._meta.get_field('objects')
+            raise ValueError, "Model %s must specify a custom Manager, because it has a field named 'objects'" % cls.__name__
+        except FieldDoesNotExist:
+            pass
+        cls.add_to_class('objects', Manager())
+
+signals.class_prepared.connect(ensure_default_manager)
+
+class Manager(object):
+    # Tracks each time a Manager instance is created. Used to retain order.
+    creation_counter = 0
+
+    def __init__(self):
+        super(Manager, self).__init__()
+        # Increase the creation counter, and save our local copy.
+        self.creation_counter = Manager.creation_counter
+        Manager.creation_counter += 1
+        self.model = None
+
+    def contribute_to_class(self, model, name):
+        # TODO: Use weakref because of possible memory leak / circular reference.
+        self.model = model
+        setattr(model, name, ManagerDescriptor(self))
+        if not getattr(model, '_default_manager', None) or self.creation_counter < model._default_manager.creation_counter:
+            model._default_manager = self
+
+    def _copy_to_model(self, model):
+        """
+        Makes a copy of the manager and assigns it to 'model', which should be
+        a child of the existing model (used when inheriting a manager from an
+        abstract base class).
+        """
+        assert issubclass(model, self.model)
+        mgr = copy.copy(self)
+        mgr.model = model
+        return mgr
+
+    #######################
+    # PROXIES TO QUERYSET #
+    #######################
+
+    def get_empty_query_set(self):
+        return EmptyQuerySet(self.model)
+
+    def get_query_set(self):
+        """Returns a new QuerySet object.  Subclasses can override this method
+        to easily customize the behavior of the Manager.
+        """
+        return QuerySet(self.model)
+
+    def none(self):
+        return self.get_empty_query_set()
+
+    def all(self):
+        return self.get_query_set()
+
+    def count(self):
+        return self.get_query_set().count()
+
+    def dates(self, *args, **kwargs):
+        return self.get_query_set().dates(*args, **kwargs)
+
+    def distinct(self, *args, **kwargs):
+        return self.get_query_set().distinct(*args, **kwargs)
+
+    def extra(self, *args, **kwargs):
+        return self.get_query_set().extra(*args, **kwargs)
+
+    def get(self, *args, **kwargs):
+        return self.get_query_set().get(*args, **kwargs)
+
+    def get_or_create(self, **kwargs):
+        return self.get_query_set().get_or_create(**kwargs)
+
+    def create(self, **kwargs):
+        return self.get_query_set().create(**kwargs)
+
+    def filter(self, *args, **kwargs):
+        return self.get_query_set().filter(*args, **kwargs)
+
+    def complex_filter(self, *args, **kwargs):
+        return self.get_query_set().complex_filter(*args, **kwargs)
+
+    def exclude(self, *args, **kwargs):
+        return self.get_query_set().exclude(*args, **kwargs)
+
+    def in_bulk(self, *args, **kwargs):
+        return self.get_query_set().in_bulk(*args, **kwargs)
+
+    def iterator(self, *args, **kwargs):
+        return self.get_query_set().iterator(*args, **kwargs)
+
+    def latest(self, *args, **kwargs):
+        return self.get_query_set().latest(*args, **kwargs)
+
+    def order_by(self, *args, **kwargs):
+        return self.get_query_set().order_by(*args, **kwargs)
+
+    def select_related(self, *args, **kwargs):
+        return self.get_query_set().select_related(*args, **kwargs)
+
+    def values(self, *args, **kwargs):
+        return self.get_query_set().values(*args, **kwargs)
+
+    def values_list(self, *args, **kwargs):
+        return self.get_query_set().values_list(*args, **kwargs)
+
+    def update(self, *args, **kwargs):
+        return self.get_query_set().update(*args, **kwargs)
+
+    def reverse(self, *args, **kwargs):
+        return self.get_query_set().reverse(*args, **kwargs)
+
+    def _insert(self, values, **kwargs):
+        return insert_query(self.model, values, **kwargs)
+
+    def _update(self, values, **kwargs):
+        return self.get_query_set()._update(values, **kwargs)
+
+class ManagerDescriptor(object):
+    # This class ensures managers aren't accessible via model instances.
+    # For example, Poll.objects works, but poll_obj.objects raises AttributeError.
+    def __init__(self, manager):
+        self.manager = manager
+
+    def __get__(self, instance, type=None):
+        if instance != None:
+            raise AttributeError, "Manager isn't accessible via %s instances" % type.__name__
+        return self.manager
+
+class EmptyManager(Manager):
+    def get_query_set(self):
+        return self.get_empty_query_set()
diff --git a/webapp/django/db/models/manipulators.py b/webapp/django/db/models/manipulators.py
new file mode 100644
index 0000000..c657d01
--- /dev/null
+++ b/webapp/django/db/models/manipulators.py
@@ -0,0 +1,333 @@
+from django.core.exceptions import ObjectDoesNotExist
+from django import oldforms
+from django.core import validators
+from django.db.models.fields import AutoField
+from django.db.models.fields.files import FileField
+from django.db.models import signals
+from django.utils.functional import curry
+from django.utils.datastructures import DotExpandedDict
+from django.utils.text import capfirst
+from django.utils.encoding import smart_str
+from django.utils.translation import ugettext as _
+from django.utils import datetime_safe
+
+def add_manipulators(sender, **kwargs):
+    cls = sender
+    cls.add_to_class('AddManipulator', AutomaticAddManipulator)
+    cls.add_to_class('ChangeManipulator', AutomaticChangeManipulator)
+
+signals.class_prepared.connect(add_manipulators)
+
+class ManipulatorDescriptor(object):
+    # This class provides the functionality that makes the default model
+    # manipulators (AddManipulator and ChangeManipulator) available via the
+    # model class.
+    def __init__(self, name, base):
+        self.man = None # Cache of the manipulator class.
+        self.name = name
+        self.base = base
+
+    def __get__(self, instance, model=None):
+        if instance != None:
+            raise AttributeError, "Manipulator cannot be accessed via instance"
+        else:
+            if not self.man:
+                # Create a class that inherits from the "Manipulator" class
+                # given in the model class (if specified) and the automatic
+                # manipulator.
+                bases = [self.base]
+                if hasattr(model, 'Manipulator'):
+                    bases = [model.Manipulator] + bases
+                self.man = type(self.name, tuple(bases), {})
+                self.man._prepare(model)
+            return self.man
+
+class AutomaticManipulator(oldforms.Manipulator):
+    def _prepare(cls, model):
+        cls.model = model
+        cls.manager = model._default_manager
+        cls.opts = model._meta
+        for field_name_list in cls.opts.unique_together:
+            setattr(cls, 'isUnique%s' % '_'.join(field_name_list), curry(manipulator_validator_unique_together, field_name_list, cls.opts))
+        for f in cls.opts.fields:
+            if f.unique_for_date:
+                setattr(cls, 'isUnique%sFor%s' % (f.name, f.unique_for_date), curry(manipulator_validator_unique_for_date, f, cls.opts.get_field(f.unique_for_date), cls.opts, 'date'))
+            if f.unique_for_month:
+                setattr(cls, 'isUnique%sFor%s' % (f.name, f.unique_for_month), curry(manipulator_validator_unique_for_date, f, cls.opts.get_field(f.unique_for_month), cls.opts, 'month'))
+            if f.unique_for_year:
+                setattr(cls, 'isUnique%sFor%s' % (f.name, f.unique_for_year), curry(manipulator_validator_unique_for_date, f, cls.opts.get_field(f.unique_for_year), cls.opts, 'year'))
+    _prepare = classmethod(_prepare)
+
+    def contribute_to_class(cls, other_cls, name):
+        setattr(other_cls, name, ManipulatorDescriptor(name, cls))
+    contribute_to_class = classmethod(contribute_to_class)
+
+    def __init__(self, follow=None):
+        self.follow = self.opts.get_follow(follow)
+        self.fields = []
+
+        for f in self.opts.fields + self.opts.many_to_many:
+            if self.follow.get(f.name, False):
+                self.fields.extend(f.get_manipulator_fields(self.opts, self, self.change))
+
+        # Add fields for related objects.
+        for f in self.opts.get_all_related_objects():
+            if self.follow.get(f.name, False):
+                fol = self.follow[f.name]
+                self.fields.extend(f.get_manipulator_fields(self.opts, self, self.change, fol))
+
+        # Add field for ordering.
+        if self.change and self.opts.get_ordered_objects():
+            self.fields.append(oldforms.CommaSeparatedIntegerField(field_name="order_"))
+
+    def save(self, new_data):
+        # TODO: big cleanup when core fields go -> use recursive manipulators.
+        params = {}
+        for f in self.opts.fields:
+            # Fields with auto_now_add should keep their original value in the change stage.
+            auto_now_add = self.change and getattr(f, 'auto_now_add', False)
+            if self.follow.get(f.name, None) and not auto_now_add:
+                param = f.get_manipulator_new_data(new_data)
+            else:
+                if self.change:
+                    param = getattr(self.original_object, f.attname)
+                else:
+                    param = f.get_default()
+            params[f.attname] = param
+
+        if self.change:
+            params[self.opts.pk.attname] = self.obj_key
+
+        # First, create the basic object itself.
+        new_object = self.model(**params)
+
+        # Now that the object's been created, save any uploaded files.
+        for f in self.opts.fields:
+            if isinstance(f, FileField):
+                f.save_file(new_data, new_object, self.change and self.original_object or None, self.change, rel=False, save=False)
+
+        # Now save the object
+        new_object.save()
+
+        # Calculate which primary fields have changed.
+        if self.change:
+            self.fields_added, self.fields_changed, self.fields_deleted = [], [], []
+            for f in self.opts.fields:
+                if not f.primary_key and smart_str(getattr(self.original_object, f.attname)) != smart_str(getattr(new_object, f.attname)):
+                    self.fields_changed.append(f.verbose_name)
+
+        # Save many-to-many objects. Example: Set sites for a poll.
+        for f in self.opts.many_to_many:
+            if self.follow.get(f.name, None):
+                if not f.rel.edit_inline:
+                    new_vals = new_data.getlist(f.name)
+                    # First, clear the existing values.
+                    rel_manager = getattr(new_object, f.name)
+                    rel_manager.clear()
+                    # Then, set the new values.
+                    for n in new_vals:
+                        rel_manager.add(f.rel.to._default_manager.get(pk=n))
+                    # TODO: Add to 'fields_changed'
+
+        expanded_data = DotExpandedDict(dict(new_data))
+        # Save many-to-one objects. Example: Add the Choice objects for a Poll.
+        for related in self.opts.get_all_related_objects():
+            # Create obj_list, which is a DotExpandedDict such as this:
+            # [('0', {'id': ['940'], 'choice': ['This is the first choice']}),
+            #  ('1', {'id': ['941'], 'choice': ['This is the second choice']}),
+            #  ('2', {'id': [''], 'choice': ['']})]
+            child_follow = self.follow.get(related.name, None)
+
+            if child_follow:
+                obj_list = expanded_data.get(related.var_name, {}).items()
+                if not obj_list:
+                    continue
+
+                obj_list.sort(lambda x, y: cmp(int(x[0]), int(y[0])))
+
+                # For each related item...
+                for _, rel_new_data in obj_list:
+
+                    params = {}
+
+                    # Keep track of which core=True fields were provided.
+                    # If all core fields were given, the related object will be saved.
+                    # If none of the core fields were given, the object will be deleted.
+                    # If some, but not all, of the fields were given, the validator would
+                    # have caught that.
+                    all_cores_given, all_cores_blank = True, True
+
+                    # Get a reference to the old object. We'll use it to compare the
+                    # old to the new, to see which fields have changed.
+                    old_rel_obj = None
+                    if self.change:
+                        if rel_new_data[related.opts.pk.name][0]:
+                            try:
+                                old_rel_obj = getattr(self.original_object, related.get_accessor_name()).get(**{'%s__exact' % related.opts.pk.name: rel_new_data[related.opts.pk.attname][0]})
+                            except ObjectDoesNotExist:
+                                pass
+
+                    for f in related.opts.fields:
+                        if f.core and not isinstance(f, FileField) and f.get_manipulator_new_data(rel_new_data, rel=True) in (None, ''):
+                            all_cores_given = False
+                        elif f.core and not isinstance(f, FileField) and f.get_manipulator_new_data(rel_new_data, rel=True) not in (None, ''):
+                            all_cores_blank = False
+                        # If this field isn't editable, give it the same value it had
+                        # previously, according to the given ID. If the ID wasn't
+                        # given, use a default value. FileFields are also a special
+                        # case, because they'll be dealt with later.
+
+                        if f == related.field:
+                            param = getattr(new_object, related.field.rel.get_related_field().attname)
+                        elif (not self.change) and isinstance(f, AutoField):
+                            param = None
+                        elif self.change and (isinstance(f, FileField) or not child_follow.get(f.name, None)):
+                            if old_rel_obj:
+                                param = getattr(old_rel_obj, f.column)
+                            else:
+                                param = f.get_default()
+                        else:
+                            param = f.get_manipulator_new_data(rel_new_data, rel=True)
+                        if param != None:
+                            params[f.attname] = param
+
+                    # Create the related item.
+                    new_rel_obj = related.model(**params)
+
+                    # If all the core fields were provided (non-empty), save the item.
+                    if all_cores_given:
+                        new_rel_obj.save()
+
+                        # Save any uploaded files.
+                        for f in related.opts.fields:
+                            if child_follow.get(f.name, None):
+                                if isinstance(f, FileField) and rel_new_data.get(f.name, False):
+                                    f.save_file(rel_new_data, new_rel_obj, self.change and old_rel_obj or None, old_rel_obj is not None, rel=True)
+
+                        # Calculate whether any fields have changed.
+                        if self.change:
+                            if not old_rel_obj: # This object didn't exist before.
+                                self.fields_added.append('%s "%s"' % (related.opts.verbose_name, new_rel_obj))
+                            else:
+                                for f in related.opts.fields:
+                                    if not f.primary_key and f != related.field and smart_str(getattr(old_rel_obj, f.attname)) != smart_str(getattr(new_rel_obj, f.attname)):
+                                        self.fields_changed.append('%s for %s "%s"' % (f.verbose_name, related.opts.verbose_name, new_rel_obj))
+
+                        # Save many-to-many objects.
+                        for f in related.opts.many_to_many:
+                            if child_follow.get(f.name, None) and not f.rel.edit_inline:
+                                new_value = rel_new_data[f.attname]
+                                setattr(new_rel_obj, f.name, f.rel.to.objects.filter(pk__in=new_value))
+                                if self.change:
+                                    self.fields_changed.append('%s for %s "%s"' % (f.verbose_name, related.opts.verbose_name, new_rel_obj))
+
+                    # If, in the change stage, all of the core fields were blank and
+                    # the primary key (ID) was provided, delete the item.
+                    if self.change and all_cores_blank and old_rel_obj:
+                        new_rel_obj.delete()
+                        self.fields_deleted.append('%s "%s"' % (related.opts.verbose_name, old_rel_obj))
+
+        # Save the order, if applicable.
+        if self.change and self.opts.get_ordered_objects():
+            order = new_data['order_'] and map(int, new_data['order_'].split(',')) or []
+            for rel_opts in self.opts.get_ordered_objects():
+                getattr(new_object, 'set_%s_order' % rel_opts.object_name.lower())(order)
+        return new_object
+
+    def get_related_objects(self):
+        return self.opts.get_followed_related_objects(self.follow)
+
+    def flatten_data(self):
+        new_data = {}
+        obj = self.change and self.original_object or None
+        for f in self.opts.get_data_holders(self.follow):
+            fol = self.follow.get(f.name)
+            new_data.update(f.flatten_data(fol, obj))
+        return new_data
+
+class AutomaticAddManipulator(AutomaticManipulator):
+    change = False
+
+class AutomaticChangeManipulator(AutomaticManipulator):
+    change = True
+    def __init__(self, obj_key, follow=None):
+        self.obj_key = obj_key
+        try:
+            self.original_object = self.manager.get(pk=obj_key)
+        except ObjectDoesNotExist:
+            # If the object doesn't exist, this might be a manipulator for a
+            # one-to-one related object that hasn't created its subobject yet.
+            # For example, this might be a Restaurant for a Place that doesn't
+            # yet have restaurant information.
+            if self.opts.one_to_one_field:
+                # Sanity check -- Make sure the "parent" object exists.
+                # For example, make sure the Place exists for the Restaurant.
+                # Let the ObjectDoesNotExist exception propagate up.
+                limit_choices_to = self.opts.one_to_one_field.rel.limit_choices_to
+                lookup_kwargs = {'%s__exact' % self.opts.one_to_one_field.rel.field_name: obj_key}
+                self.opts.one_to_one_field.rel.to.get_model_module().complex_filter(limit_choices_to).get(**lookup_kwargs)
+                params = dict([(f.attname, f.get_default()) for f in self.opts.fields])
+                params[self.opts.pk.attname] = obj_key
+                self.original_object = self.opts.get_model_module().Klass(**params)
+            else:
+                raise
+        super(AutomaticChangeManipulator, self).__init__(follow=follow)
+
+def manipulator_validator_unique_together(field_name_list, opts, self, field_data, all_data):
+    from django.db.models.fields.related import ManyToOneRel
+    from django.utils.text import get_text_list
+    field_list = [opts.get_field(field_name) for field_name in field_name_list]
+    if isinstance(field_list[0].rel, ManyToOneRel):
+        kwargs = {'%s__%s__iexact' % (field_name_list[0], field_list[0].rel.field_name): field_data}
+    else:
+        kwargs = {'%s__iexact' % field_name_list[0]: field_data}
+    for f in field_list[1:]:
+        # This is really not going to work for fields that have different
+        # form fields, e.g. DateTime.
+        # This validation needs to occur after html2python to be effective.
+        field_val = all_data.get(f.name, None)
+        if field_val is None:
+            # This will be caught by another validator, assuming the field
+            # doesn't have blank=True.
+            return
+        if isinstance(f.rel, ManyToOneRel):
+            kwargs['%s__pk' % f.name] = field_val
+        else:
+            kwargs['%s__iexact' % f.name] = field_val
+    try:
+        old_obj = self.manager.get(**kwargs)
+    except ObjectDoesNotExist:
+        return
+    if hasattr(self, 'original_object') and self.original_object._get_pk_val() == old_obj._get_pk_val():
+        pass
+    else:
+        raise validators.ValidationError, _("%(object)s with this %(type)s already exists for the given %(field)s.") % \
+            {'object': capfirst(opts.verbose_name), 'type': field_list[0].verbose_name, 'field': get_text_list([f.verbose_name for f in field_list[1:]], _('and'))}
+
+def manipulator_validator_unique_for_date(from_field, date_field, opts, lookup_type, self, field_data, all_data):
+    from django.db.models.fields.related import ManyToOneRel
+    date_str = all_data.get(date_field.get_manipulator_field_names('')[0], None)
+    date_val = oldforms.DateField.html2python(date_str)
+    if date_val is None:
+        return # Date was invalid. This will be caught by another validator.
+    lookup_kwargs = {'%s__year' % date_field.name: date_val.year}
+    if isinstance(from_field.rel, ManyToOneRel):
+        lookup_kwargs['%s__pk' % from_field.name] = field_data
+    else:
+        lookup_kwargs['%s__iexact' % from_field.name] = field_data
+    if lookup_type in ('month', 'date'):
+        lookup_kwargs['%s__month' % date_field.name] = date_val.month
+    if lookup_type == 'date':
+        lookup_kwargs['%s__day' % date_field.name] = date_val.day
+    try:
+        old_obj = self.manager.get(**lookup_kwargs)
+    except ObjectDoesNotExist:
+        return
+    else:
+        if hasattr(self, 'original_object') and self.original_object._get_pk_val() == old_obj._get_pk_val():
+            pass
+        else:
+            format_string = (lookup_type == 'date') and '%B %d, %Y' or '%B %Y'
+            date_val = datetime_safe.new_datetime(date_val)
+            raise validators.ValidationError, "Please enter a different %s. The one you entered is already being used for %s." % \
+                (from_field.verbose_name, date_val.strftime(format_string))
diff --git a/webapp/django/db/models/options.py b/webapp/django/db/models/options.py
new file mode 100644
index 0000000..ffea6d5
--- /dev/null
+++ b/webapp/django/db/models/options.py
@@ -0,0 +1,486 @@
+import re
+from bisect import bisect
+try:
+    set
+except NameError:
+    from sets import Set as set     # Python 2.3 fallback
+
+from django.conf import settings
+from django.db.models.related import RelatedObject
+from django.db.models.fields.related import ManyToManyRel
+from django.db.models.fields import AutoField, FieldDoesNotExist
+from django.db.models.fields.proxy import OrderWrt
+from django.db.models.loading import get_models, app_cache_ready
+from django.utils.translation import activate, deactivate_all, get_language, string_concat
+from django.utils.encoding import force_unicode, smart_str
+from django.utils.datastructures import SortedDict
+
+# Calculate the verbose_name by converting from InitialCaps to "lowercase with spaces".
+get_verbose_name = lambda class_name: re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))', ' \\1', class_name).lower().strip()
+
+DEFAULT_NAMES = ('verbose_name', 'db_table', 'ordering',
+                 'unique_together', 'permissions', 'get_latest_by',
+                 'order_with_respect_to', 'app_label', 'db_tablespace',
+                 'abstract')
+
+class Options(object):
+    def __init__(self, meta, app_label=None):
+        self.local_fields, self.local_many_to_many = [], []
+        self.module_name, self.verbose_name = None, None
+        self.verbose_name_plural = None
+        self.db_table = ''
+        self.ordering = []
+        self.unique_together =  []
+        self.permissions =  []
+        self.object_name, self.app_label = None, app_label
+        self.get_latest_by = None
+        self.order_with_respect_to = None
+        self.db_tablespace = settings.DEFAULT_TABLESPACE
+        self.admin = None
+        self.meta = meta
+        self.pk = None
+        self.has_auto_field, self.auto_field = False, None
+        self.one_to_one_field = None
+        self.abstract = False
+        self.parents = SortedDict()
+        self.duplicate_targets = {}
+
+    def contribute_to_class(self, cls, name):
+        from django.db import connection
+        from django.db.backends.util import truncate_name
+
+        cls._meta = self
+        self.installed = re.sub('\.models$', '', cls.__module__) in settings.INSTALLED_APPS
+        # First, construct the default values for these options.
+        self.object_name = cls.__name__
+        self.module_name = self.object_name.lower()
+        self.verbose_name = get_verbose_name(self.object_name)
+
+        # Next, apply any overridden values from 'class Meta'.
+        if self.meta:
+            meta_attrs = self.meta.__dict__.copy()
+            for name in self.meta.__dict__:
+                # Ignore any private attributes that Django doesn't care about.
+                # NOTE: We can't modify a dictionary's contents while looping
+                # over it, so we loop over the *original* dictionary instead.
+                if name.startswith('_'):
+                    del meta_attrs[name]
+            for attr_name in DEFAULT_NAMES:
+                if attr_name in meta_attrs:
+                    setattr(self, attr_name, meta_attrs.pop(attr_name))
+                elif hasattr(self.meta, attr_name):
+                    setattr(self, attr_name, getattr(self.meta, attr_name))
+
+            # unique_together can be either a tuple of tuples, or a single
+            # tuple of two strings. Normalize it to a tuple of tuples, so that
+            # calling code can uniformly expect that.
+            ut = meta_attrs.pop('unique_together', getattr(self, 'unique_together'))
+            if ut and not isinstance(ut[0], (tuple, list)):
+                ut = (ut,)
+            setattr(self, 'unique_together', ut)
+
+            # verbose_name_plural is a special case because it uses a 's'
+            # by default.
+            setattr(self, 'verbose_name_plural', meta_attrs.pop('verbose_name_plural', string_concat(self.verbose_name, 's')))
+
+            # Any leftover attributes must be invalid.
+            if meta_attrs != {}:
+                raise TypeError, "'class Meta' got invalid attribute(s): %s" % ','.join(meta_attrs.keys())
+        else:
+            self.verbose_name_plural = string_concat(self.verbose_name, 's')
+        del self.meta
+
+        # If the db_table wasn't provided, use the app_label + module_name.
+        if not self.db_table:
+            self.db_table = "%s_%s" % (self.app_label, self.module_name)
+            self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
+
+
+    def _prepare(self, model):
+        if self.order_with_respect_to:
+            self.order_with_respect_to = self.get_field(self.order_with_respect_to)
+            self.ordering = ('_order',)
+        else:
+            self.order_with_respect_to = None
+
+        if self.pk is None:
+            if self.parents:
+                # Promote the first parent link in lieu of adding yet another
+                # field.
+                field = self.parents.value_for_index(0)
+                field.primary_key = True
+                self.setup_pk(field)
+            else:
+                auto = AutoField(verbose_name='ID', primary_key=True,
+                        auto_created=True)
+                model.add_to_class('id', auto)
+
+        # Determine any sets of fields that are pointing to the same targets
+        # (e.g. two ForeignKeys to the same remote model). The query
+        # construction code needs to know this. At the end of this,
+        # self.duplicate_targets will map each duplicate field column to the
+        # columns it duplicates.
+        collections = {}
+        for column, target in self.duplicate_targets.iteritems():
+            try:
+                collections[target].add(column)
+            except KeyError:
+                collections[target] = set([column])
+        self.duplicate_targets = {}
+        for elt in collections.itervalues():
+            if len(elt) == 1:
+                continue
+            for column in elt:
+                self.duplicate_targets[column] = elt.difference(set([column]))
+
+    def add_field(self, field):
+        # Insert the given field in the order in which it was created, using
+        # the "creation_counter" attribute of the field.
+        # Move many-to-many related fields from self.fields into
+        # self.many_to_many.
+        if field.rel and isinstance(field.rel, ManyToManyRel):
+            self.local_many_to_many.insert(bisect(self.local_many_to_many, field), field)
+            if hasattr(self, '_m2m_cache'):
+                del self._m2m_cache
+        else:
+            self.local_fields.insert(bisect(self.local_fields, field), field)
+            self.setup_pk(field)
+            if hasattr(self, '_field_cache'):
+                del self._field_cache
+                del self._field_name_cache
+
+        if hasattr(self, '_name_map'):
+            del self._name_map
+
+    def setup_pk(self, field):
+        if not self.pk and field.primary_key:
+            self.pk = field
+            field.serialize = False
+
+    def __repr__(self):
+        return '<Options for %s>' % self.object_name
+
+    def __str__(self):
+        return "%s.%s" % (smart_str(self.app_label), smart_str(self.module_name))
+
+    def verbose_name_raw(self):
+        """
+        There are a few places where the untranslated verbose name is needed
+        (so that we get the same value regardless of currently active
+        locale).
+        """
+        lang = get_language()
+        deactivate_all()
+        raw = force_unicode(self.verbose_name)
+        activate(lang)
+        return raw
+    verbose_name_raw = property(verbose_name_raw)
+
+    def _fields(self):
+        """
+        The getter for self.fields. This returns the list of field objects
+        available to this model (including through parent models).
+
+        Callers are not permitted to modify this list, since it's a reference
+        to this instance (not a copy).
+        """
+        try:
+            self._field_name_cache
+        except AttributeError:
+            self._fill_fields_cache()
+        return self._field_name_cache
+    fields = property(_fields)
+
+    def get_fields_with_model(self):
+        """
+        Returns a sequence of (field, model) pairs for all fields. The "model"
+        element is None for fields on the current model. Mostly of use when
+        constructing queries so that we know which model a field belongs to.
+        """
+        try:
+            self._field_cache
+        except AttributeError:
+            self._fill_fields_cache()
+        return self._field_cache
+
+    def _fill_fields_cache(self):
+        cache = []
+        for parent in self.parents:
+            for field, model in parent._meta.get_fields_with_model():
+                if model:
+                    cache.append((field, model))
+                else:
+                    cache.append((field, parent))
+        cache.extend([(f, None) for f in self.local_fields])
+        self._field_cache = tuple(cache)
+        self._field_name_cache = [x for x, _ in cache]
+
+    def _many_to_many(self):
+        try:
+            self._m2m_cache
+        except AttributeError:
+            self._fill_m2m_cache()
+        return self._m2m_cache.keys()
+    many_to_many = property(_many_to_many)
+
+    def get_m2m_with_model(self):
+        """
+        The many-to-many version of get_fields_with_model().
+        """
+        try:
+            self._m2m_cache
+        except AttributeError:
+            self._fill_m2m_cache()
+        return self._m2m_cache.items()
+
+    def _fill_m2m_cache(self):
+        cache = SortedDict()
+        for parent in self.parents:
+            for field, model in parent._meta.get_m2m_with_model():
+                if model:
+                    cache[field] = model
+                else:
+                    cache[field] = parent
+        for field in self.local_many_to_many:
+            cache[field] = None
+        self._m2m_cache = cache
+
+    def get_field(self, name, many_to_many=True):
+        """
+        Returns the requested field by name. Raises FieldDoesNotExist on error.
+        """
+        to_search = many_to_many and (self.fields + self.many_to_many) or self.fields
+        for f in to_search:
+            if f.name == name:
+                return f
+        raise FieldDoesNotExist, '%s has no field named %r' % (self.object_name, name)
+
+    def get_field_by_name(self, name):
+        """
+        Returns the (field_object, model, direct, m2m), where field_object is
+        the Field instance for the given name, model is the model containing
+        this field (None for local fields), direct is True if the field exists
+        on this model, and m2m is True for many-to-many relations. When
+        'direct' is False, 'field_object' is the corresponding RelatedObject
+        for this field (since the field doesn't have an instance associated
+        with it).
+
+        Uses a cache internally, so after the first access, this is very fast.
+        """
+        try:
+            try:
+                return self._name_map[name]
+            except AttributeError:
+                cache = self.init_name_map()
+                return cache[name]
+        except KeyError:
+            raise FieldDoesNotExist('%s has no field named %r'
+                    % (self.object_name, name))
+
+    def get_all_field_names(self):
+        """
+        Returns a list of all field names that are possible for this model
+        (including reverse relation names).
+        """
+        try:
+            cache = self._name_map
+        except AttributeError:
+            cache = self.init_name_map()
+        names = cache.keys()
+        names.sort()
+        return names
+
+    def init_name_map(self):
+        """
+        Initialises the field name -> field object mapping.
+        """
+        cache = {}
+        # We intentionally handle related m2m objects first so that symmetrical
+        # m2m accessor names can be overridden, if necessary.
+        for f, model in self.get_all_related_m2m_objects_with_model():
+            cache[f.field.related_query_name()] = (f, model, False, True)
+        for f, model in self.get_all_related_objects_with_model():
+            cache[f.field.related_query_name()] = (f, model, False, False)
+        for f, model in self.get_m2m_with_model():
+            cache[f.name] = (f, model, True, True)
+        for f, model in self.get_fields_with_model():
+            cache[f.name] = (f, model, True, False)
+        if self.order_with_respect_to:
+            cache['_order'] = OrderWrt(), None, True, False
+        if app_cache_ready():
+            self._name_map = cache
+        return cache
+
+    def get_add_permission(self):
+        return 'add_%s' % self.object_name.lower()
+
+    def get_change_permission(self):
+        return 'change_%s' % self.object_name.lower()
+
+    def get_delete_permission(self):
+        return 'delete_%s' % self.object_name.lower()
+
+    def get_all_related_objects(self, local_only=False):
+        try:
+            self._related_objects_cache
+        except AttributeError:
+            self._fill_related_objects_cache()
+        if local_only:
+            return [k for k, v in self._related_objects_cache.items() if not v]
+        return self._related_objects_cache.keys()
+
+    def get_all_related_objects_with_model(self):
+        """
+        Returns a list of (related-object, model) pairs. Similar to
+        get_fields_with_model().
+        """
+        try:
+            self._related_objects_cache
+        except AttributeError:
+            self._fill_related_objects_cache()
+        return self._related_objects_cache.items()
+
+    def _fill_related_objects_cache(self):
+        cache = SortedDict()
+        parent_list = self.get_parent_list()
+        for parent in self.parents:
+            for obj, model in parent._meta.get_all_related_objects_with_model():
+                if (obj.field.creation_counter < 0 or obj.field.rel.parent_link) and obj.model not in parent_list:
+                    continue
+                if not model:
+                    cache[obj] = parent
+                else:
+                    cache[obj] = model
+        for klass in get_models():
+            for f in klass._meta.local_fields:
+                if f.rel and not isinstance(f.rel.to, str) and self == f.rel.to._meta:
+                    cache[RelatedObject(f.rel.to, klass, f)] = None
+        self._related_objects_cache = cache
+
+    def get_all_related_many_to_many_objects(self, local_only=False):
+        try:
+            cache = self._related_many_to_many_cache
+        except AttributeError:
+            cache = self._fill_related_many_to_many_cache()
+        if local_only:
+            return [k for k, v in cache.items() if not v]
+        return cache.keys()
+
+    def get_all_related_m2m_objects_with_model(self):
+        """
+        Returns a list of (related-m2m-object, model) pairs. Similar to
+        get_fields_with_model().
+        """
+        try:
+            cache = self._related_many_to_many_cache
+        except AttributeError:
+            cache = self._fill_related_many_to_many_cache()
+        return cache.items()
+
+    def _fill_related_many_to_many_cache(self):
+        cache = SortedDict()
+        parent_list = self.get_parent_list()
+        for parent in self.parents:
+            for obj, model in parent._meta.get_all_related_m2m_objects_with_model():
+                if obj.field.creation_counter < 0 and obj.model not in parent_list:
+                    continue
+                if not model:
+                    cache[obj] = parent
+                else:
+                    cache[obj] = model
+        for klass in get_models():
+            for f in klass._meta.local_many_to_many:
+                if f.rel and not isinstance(f.rel.to, str) and self == f.rel.to._meta:
+                    cache[RelatedObject(f.rel.to, klass, f)] = None
+        if app_cache_ready():
+            self._related_many_to_many_cache = cache
+        return cache
+
+    def get_followed_related_objects(self, follow=None):
+        if follow == None:
+            follow = self.get_follow()
+        return [f for f in self.get_all_related_objects() if follow.get(f.name, None)]
+
+    def get_data_holders(self, follow=None):
+        if follow == None:
+            follow = self.get_follow()
+        return [f for f in self.fields + self.many_to_many + self.get_all_related_objects() if follow.get(f.name, None)]
+
+    def get_follow(self, override=None):
+        follow = {}
+        for f in self.fields + self.many_to_many + self.get_all_related_objects():
+            if override and f.name in override:
+                child_override = override[f.name]
+            else:
+                child_override = None
+            fol = f.get_follow(child_override)
+            if fol != None:
+                follow[f.name] = fol
+        return follow
+
+    def get_base_chain(self, model):
+        """
+        Returns a list of parent classes leading to 'model' (order from closet
+        to most distant ancestor). This has to handle the case were 'model' is
+        a granparent or even more distant relation.
+        """
+        if not self.parents:
+            return
+        if model in self.parents:
+            return [model]
+        for parent in self.parents:
+            res = parent._meta.get_base_chain(model)
+            if res:
+                res.insert(0, parent)
+                return res
+        raise TypeError('%r is not an ancestor of this model'
+                % model._meta.module_name)
+
+    def get_parent_list(self):
+        """
+        Returns a list of all the ancestor of this model as a list. Useful for
+        determining if something is an ancestor, regardless of lineage.
+        """
+        result = set()
+        for parent in self.parents:
+            result.add(parent)
+            result.update(parent._meta.get_parent_list())
+        return result
+
+    def get_ordered_objects(self):
+        "Returns a list of Options objects that are ordered with respect to this object."
+        if not hasattr(self, '_ordered_objects'):
+            objects = []
+            # TODO
+            #for klass in get_models(get_app(self.app_label)):
+            #    opts = klass._meta
+            #    if opts.order_with_respect_to and opts.order_with_respect_to.rel \
+            #        and self == opts.order_with_respect_to.rel.to._meta:
+            #        objects.append(opts)
+            self._ordered_objects = objects
+        return self._ordered_objects
+
+    def has_field_type(self, field_type, follow=None):
+        """
+        Returns True if this object's admin form has at least one of the given
+        field_type (e.g. FileField).
+        """
+        # TODO: follow
+        if not hasattr(self, '_field_types'):
+            self._field_types = {}
+        if field_type not in self._field_types:
+            try:
+                # First check self.fields.
+                for f in self.fields:
+                    if isinstance(f, field_type):
+                        raise StopIteration
+                # Failing that, check related fields.
+                for related in self.get_followed_related_objects(follow):
+                    for f in related.opts.fields:
+                        if isinstance(f, field_type):
+                            raise StopIteration
+            except StopIteration:
+                self._field_types[field_type] = True
+            else:
+                self._field_types[field_type] = False
+        return self._field_types[field_type]
diff --git a/webapp/django/db/models/query.py b/webapp/django/db/models/query.py
new file mode 100644
index 0000000..2ff1c26
--- /dev/null
+++ b/webapp/django/db/models/query.py
@@ -0,0 +1,884 @@
+try:
+    set
+except NameError:
+    from sets import Set as set     # Python 2.3 fallback
+
+from django.db import connection, transaction, IntegrityError
+from django.db.models.fields import DateField
+from django.db.models.query_utils import Q, select_related_descend
+from django.db.models import signals, sql
+from django.utils.datastructures import SortedDict
+
+
+# Used to control how many objects are worked with at once in some cases (e.g.
+# when deleting objects).
+CHUNK_SIZE = 100
+ITER_CHUNK_SIZE = CHUNK_SIZE
+
+# Pull into this namespace for backwards compatibility.
+EmptyResultSet = sql.EmptyResultSet
+
+
+class CyclicDependency(Exception):
+    """
+    An error when dealing with a collection of objects that have a cyclic
+    dependency, i.e. when deleting multiple objects.
+    """
+    pass
+
+
+class CollectedObjects(object):
+    """
+    A container that stores keys and lists of values along with remembering the
+    parent objects for all the keys.
+
+    This is used for the database object deletion routines so that we can
+    calculate the 'leaf' objects which should be deleted first.
+    """
+
+    def __init__(self):
+        self.data = {}
+        self.children = {}
+
+    def add(self, model, pk, obj, parent_model, nullable=False):
+        """
+        Adds an item to the container.
+
+        Arguments:
+        * model - the class of the object being added.
+        * pk - the primary key.
+        * obj - the object itself.
+        * parent_model - the model of the parent object that this object was
+          reached through.
+        * nullable - should be True if this relation is nullable.
+
+        Returns True if the item already existed in the structure and
+        False otherwise.
+        """
+        d = self.data.setdefault(model, SortedDict())
+        retval = pk in d
+        d[pk] = obj
+        # Nullable relationships can be ignored -- they are nulled out before
+        # deleting, and therefore do not affect the order in which objects
+        # have to be deleted.
+        if parent_model is not None and not nullable:
+            self.children.setdefault(parent_model, []).append(model)
+        return retval
+
+    def __contains__(self, key):
+        return self.data.__contains__(key)
+
+    def __getitem__(self, key):
+        return self.data[key]
+
+    def __nonzero__(self):
+        return bool(self.data)
+
+    def iteritems(self):
+        for k in self.ordered_keys():
+            yield k, self[k]
+
+    def items(self):
+        return list(self.iteritems())
+
+    def keys(self):
+        return self.ordered_keys()
+
+    def ordered_keys(self):
+        """
+        Returns the models in the order that they should be dealt with (i.e.
+        models with no dependencies first).
+        """
+        dealt_with = SortedDict()
+        # Start with items that have no children
+        models = self.data.keys()
+        while len(dealt_with) < len(models):
+            found = False
+            for model in models:
+                children = self.children.setdefault(model, [])
+                if len([c for c in children if c not in dealt_with]) == 0:
+                    dealt_with[model] = None
+                    found = True
+            if not found:
+                raise CyclicDependency(
+                    "There is a cyclic dependency of items to be processed.")
+
+        return dealt_with.keys()
+
+    def unordered_keys(self):
+        """
+        Fallback for the case where is a cyclic dependency but we don't  care.
+        """
+        return self.data.keys()
+
+
+class QuerySet(object):
+    """
+    Represents a lazy database lookup for a set of objects.
+    """
+    def __init__(self, model=None, query=None):
+        self.model = model
+        self.query = query or sql.Query(self.model, connection)
+        self._result_cache = None
+        self._iter = None
+        self._sticky_filter = False
+
+    ########################
+    # PYTHON MAGIC METHODS #
+    ########################
+
+    def __getstate__(self):
+        """
+        Allows the QuerySet to be pickled.
+        """
+        # Force the cache to be fully populated.
+        len(self)
+
+        obj_dict = self.__dict__.copy()
+        obj_dict['_iter'] = None
+        return obj_dict
+
+    def __repr__(self):
+        return repr(list(self))
+
+    def __len__(self):
+        # Since __len__ is called quite frequently (for example, as part of
+        # list(qs), we make some effort here to be as efficient as possible
+        # whilst not messing up any existing iterators against the QuerySet.
+        if self._result_cache is None:
+            if self._iter:
+                self._result_cache = list(self._iter)
+            else:
+                self._result_cache = list(self.iterator())
+        elif self._iter:
+            self._result_cache.extend(list(self._iter))
+        return len(self._result_cache)
+
+    def __iter__(self):
+        if self._result_cache is None:
+            self._iter = self.iterator()
+            self._result_cache = []
+        if self._iter:
+            return self._result_iter()
+        # Python's list iterator is better than our version when we're just
+        # iterating over the cache.
+        return iter(self._result_cache)
+
+    def _result_iter(self):
+        pos = 0
+        while 1:
+            upper = len(self._result_cache)
+            while pos < upper:
+                yield self._result_cache[pos]
+                pos = pos + 1
+            if not self._iter:
+                raise StopIteration
+            if len(self._result_cache) <= pos:
+                self._fill_cache()
+
+    def __nonzero__(self):
+        if self._result_cache is not None:
+            return bool(self._result_cache)
+        try:
+            iter(self).next()
+        except StopIteration:
+            return False
+        return True
+
+    def __getitem__(self, k):
+        """
+        Retrieves an item or slice from the set of results.
+        """
+        if not isinstance(k, (slice, int, long)):
+            raise TypeError
+        assert ((not isinstance(k, slice) and (k >= 0))
+                or (isinstance(k, slice) and (k.start is None or k.start >= 0)
+                    and (k.stop is None or k.stop >= 0))), \
+                "Negative indexing is not supported."
+
+        if self._result_cache is not None:
+            if self._iter is not None:
+                # The result cache has only been partially populated, so we may
+                # need to fill it out a bit more.
+                if isinstance(k, slice):
+                    if k.stop is not None:
+                        # Some people insist on passing in strings here.
+                        bound = int(k.stop)
+                    else:
+                        bound = None
+                else:
+                    bound = k + 1
+                if len(self._result_cache) < bound:
+                    self._fill_cache(bound - len(self._result_cache))
+            return self._result_cache[k]
+
+        if isinstance(k, slice):
+            qs = self._clone()
+            if k.start is not None:
+                start = int(k.start)
+            else:
+                start = None
+            if k.stop is not None:
+                stop = int(k.stop)
+            else:
+                stop = None
+            qs.query.set_limits(start, stop)
+            return k.step and list(qs)[::k.step] or qs
+        try:
+            qs = self._clone()
+            qs.query.set_limits(k, k + 1)
+            return list(qs)[0]
+        except self.model.DoesNotExist, e:
+            raise IndexError, e.args
+
+    def __and__(self, other):
+        self._merge_sanity_check(other)
+        if isinstance(other, EmptyQuerySet):
+            return other._clone()
+        combined = self._clone()
+        combined.query.combine(other.query, sql.AND)
+        return combined
+
+    def __or__(self, other):
+        self._merge_sanity_check(other)
+        combined = self._clone()
+        if isinstance(other, EmptyQuerySet):
+            return combined
+        combined.query.combine(other.query, sql.OR)
+        return combined
+
+    ####################################
+    # METHODS THAT DO DATABASE QUERIES #
+    ####################################
+
+    def iterator(self):
+        """
+        An iterator over the results from applying this QuerySet to the
+        database.
+        """
+        fill_cache = self.query.select_related
+        if isinstance(fill_cache, dict):
+            requested = fill_cache
+        else:
+            requested = None
+        max_depth = self.query.max_depth
+        extra_select = self.query.extra_select.keys()
+        index_start = len(extra_select)
+        for row in self.query.results_iter():
+            if fill_cache:
+                obj, _ = get_cached_row(self.model, row, index_start,
+                        max_depth, requested=requested)
+            else:
+                obj = self.model(*row[index_start:])
+            for i, k in enumerate(extra_select):
+                setattr(obj, k, row[i])
+            yield obj
+
+    def count(self):
+        """
+        Performs a SELECT COUNT() and returns the number of records as an
+        integer.
+
+        If the QuerySet is already fully cached this simply returns the length
+        of the cached results set to avoid multiple SELECT COUNT(*) calls.
+        """
+        if self._result_cache is not None and not self._iter:
+            return len(self._result_cache)
+
+        return self.query.get_count()
+
+    def get(self, *args, **kwargs):
+        """
+        Performs the query and returns a single object matching the given
+        keyword arguments.
+        """
+        clone = self.filter(*args, **kwargs)
+        num = len(clone)
+        if num == 1:
+            return clone._result_cache[0]
+        if not num:
+            raise self.model.DoesNotExist("%s matching query does not exist."
+                    % self.model._meta.object_name)
+        raise self.model.MultipleObjectsReturned("get() returned more than one %s -- it returned %s! Lookup parameters were %s"
+                % (self.model._meta.object_name, num, kwargs))
+
+    def create(self, **kwargs):
+        """
+        Creates a new object with the given kwargs, saving it to the database
+        and returning the created object.
+        """
+        obj = self.model(**kwargs)
+        obj.save()
+        return obj
+
+    def get_or_create(self, **kwargs):
+        """
+        Looks up an object with the given kwargs, creating one if necessary.
+        Returns a tuple of (object, created), where created is a boolean
+        specifying whether an object was created.
+        """
+        assert kwargs, \
+                'get_or_create() must be passed at least one keyword argument'
+        defaults = kwargs.pop('defaults', {})
+        try:
+            return self.get(**kwargs), False
+        except self.model.DoesNotExist:
+            try:
+                params = dict([(k, v) for k, v in kwargs.items() if '__' not in k])
+                params.update(defaults)
+                obj = self.model(**params)
+                sid = transaction.savepoint()
+                obj.save()
+                transaction.savepoint_commit(sid)
+                return obj, True
+            except IntegrityError, e:
+                transaction.savepoint_rollback(sid)
+                try:
+                    return self.get(**kwargs), False
+                except self.model.DoesNotExist:
+                    raise e
+
+    def latest(self, field_name=None):
+        """
+        Returns the latest object, according to the model's 'get_latest_by'
+        option or optional given field_name.
+        """
+        latest_by = field_name or self.model._meta.get_latest_by
+        assert bool(latest_by), "latest() requires either a field_name parameter or 'get_latest_by' in the model"
+        assert self.query.can_filter(), \
+                "Cannot change a query once a slice has been taken."
+        obj = self._clone()
+        obj.query.set_limits(high=1)
+        obj.query.add_ordering('-%s' % latest_by)
+        return obj.get()
+
+    def in_bulk(self, id_list):
+        """
+        Returns a dictionary mapping each of the given IDs to the object with
+        that ID.
+        """
+        assert self.query.can_filter(), \
+                "Cannot use 'limit' or 'offset' with in_bulk"
+        assert isinstance(id_list, (tuple,  list)), \
+                "in_bulk() must be provided with a list of IDs."
+        if not id_list:
+            return {}
+        qs = self._clone()
+        qs.query.add_filter(('pk__in', id_list))
+        return dict([(obj._get_pk_val(), obj) for obj in qs.iterator()])
+
+    def delete(self):
+        """
+        Deletes the records in the current QuerySet.
+        """
+        assert self.query.can_filter(), \
+                "Cannot use 'limit' or 'offset' with delete."
+
+        del_query = self._clone()
+
+        # Disable non-supported fields.
+        del_query.query.select_related = False
+        del_query.query.clear_ordering()
+
+        # Delete objects in chunks to prevent the list of related objects from
+        # becoming too long.
+        while 1:
+            # Collect all the objects to be deleted in this chunk, and all the
+            # objects that are related to the objects that are to be deleted.
+            seen_objs = CollectedObjects()
+            for object in del_query[:CHUNK_SIZE]:
+                object._collect_sub_objects(seen_objs)
+
+            if not seen_objs:
+                break
+            delete_objects(seen_objs)
+
+        # Clear the result cache, in case this QuerySet gets reused.
+        self._result_cache = None
+    delete.alters_data = True
+
+    def update(self, **kwargs):
+        """
+        Updates all elements in the current QuerySet, setting all the given
+        fields to the appropriate values.
+        """
+        assert self.query.can_filter(), \
+                "Cannot update a query once a slice has been taken."
+        query = self.query.clone(sql.UpdateQuery)
+        query.add_update_values(kwargs)
+        rows = query.execute_sql(None)
+        transaction.commit_unless_managed()
+        self._result_cache = None
+        return rows
+    update.alters_data = True
+
+    def _update(self, values):
+        """
+        A version of update that accepts field objects instead of field names.
+        Used primarily for model saving and not intended for use by general
+        code (it requires too much poking around at model internals to be
+        useful at that level).
+        """
+        assert self.query.can_filter(), \
+                "Cannot update a query once a slice has been taken."
+        query = self.query.clone(sql.UpdateQuery)
+        query.add_update_fields(values)
+        self._result_cache = None
+        return query.execute_sql(None)
+    _update.alters_data = True
+
+    ##################################################
+    # PUBLIC METHODS THAT RETURN A QUERYSET SUBCLASS #
+    ##################################################
+
+    def values(self, *fields):
+        return self._clone(klass=ValuesQuerySet, setup=True, _fields=fields)
+
+    def values_list(self, *fields, **kwargs):
+        flat = kwargs.pop('flat', False)
+        if kwargs:
+            raise TypeError('Unexpected keyword arguments to values_list: %s'
+                    % (kwargs.keys(),))
+        if flat and len(fields) > 1:
+            raise TypeError("'flat' is not valid when values_list is called with more than one field.")
+        return self._clone(klass=ValuesListQuerySet, setup=True, flat=flat,
+                _fields=fields)
+
+    def dates(self, field_name, kind, order='ASC'):
+        """
+        Returns a list of datetime objects representing all available dates for
+        the given field_name, scoped to 'kind'.
+        """
+        assert kind in ("month", "year", "day"), \
+                "'kind' must be one of 'year', 'month' or 'day'."
+        assert order in ('ASC', 'DESC'), \
+                "'order' must be either 'ASC' or 'DESC'."
+        return self._clone(klass=DateQuerySet, setup=True,
+                _field_name=field_name, _kind=kind, _order=order)
+
+    def none(self):
+        """
+        Returns an empty QuerySet.
+        """
+        return self._clone(klass=EmptyQuerySet)
+
+    ##################################################################
+    # PUBLIC METHODS THAT ALTER ATTRIBUTES AND RETURN A NEW QUERYSET #
+    ##################################################################
+
+    def all(self):
+        """
+        Returns a new QuerySet that is a copy of the current one. This allows a
+        QuerySet to proxy for a model manager in some cases.
+        """
+        return self._clone()
+
+    def filter(self, *args, **kwargs):
+        """
+        Returns a new QuerySet instance with the args ANDed to the existing
+        set.
+        """
+        return self._filter_or_exclude(False, *args, **kwargs)
+
+    def exclude(self, *args, **kwargs):
+        """
+        Returns a new QuerySet instance with NOT (args) ANDed to the existing
+        set.
+        """
+        return self._filter_or_exclude(True, *args, **kwargs)
+
+    def _filter_or_exclude(self, negate, *args, **kwargs):
+        if args or kwargs:
+            assert self.query.can_filter(), \
+                    "Cannot filter a query once a slice has been taken."
+
+        clone = self._clone()
+        if negate:
+            clone.query.add_q(~Q(*args, **kwargs))
+        else:
+            clone.query.add_q(Q(*args, **kwargs))
+        return clone
+
+    def complex_filter(self, filter_obj):
+        """
+        Returns a new QuerySet instance with filter_obj added to the filters.
+
+        filter_obj can be a Q object (or anything with an add_to_query()
+        method) or a dictionary of keyword lookup arguments.
+
+        This exists to support framework features such as 'limit_choices_to',
+        and usually it will be more natural to use other methods.
+        """
+        if isinstance(filter_obj, Q) or hasattr(filter_obj, 'add_to_query'):
+            clone = self._clone()
+            clone.query.add_q(filter_obj)
+            return clone
+        else:
+            return self._filter_or_exclude(None, **filter_obj)
+
+    def select_related(self, *fields, **kwargs):
+        """
+        Returns a new QuerySet instance that will select related objects.
+
+        If fields are specified, they must be ForeignKey fields and only those
+        related objects are included in the selection.
+        """
+        depth = kwargs.pop('depth', 0)
+        if kwargs:
+            raise TypeError('Unexpected keyword arguments to select_related: %s'
+                    % (kwargs.keys(),))
+        obj = self._clone()
+        if fields:
+            if depth:
+                raise TypeError('Cannot pass both "depth" and fields to select_related()')
+            obj.query.add_select_related(fields)
+        else:
+            obj.query.select_related = True
+        if depth:
+            obj.query.max_depth = depth
+        return obj
+
+    def dup_select_related(self, other):
+        """
+        Copies the related selection status from the QuerySet 'other' to the
+        current QuerySet.
+        """
+        self.query.select_related = other.query.select_related
+
+    def order_by(self, *field_names):
+        """
+        Returns a new QuerySet instance with the ordering changed.
+        """
+        assert self.query.can_filter(), \
+                "Cannot reorder a query once a slice has been taken."
+        obj = self._clone()
+        obj.query.clear_ordering()
+        obj.query.add_ordering(*field_names)
+        return obj
+
+    def distinct(self, true_or_false=True):
+        """
+        Returns a new QuerySet instance that will select only distinct results.
+        """
+        obj = self._clone()
+        obj.query.distinct = true_or_false
+        return obj
+
+    def extra(self, select=None, where=None, params=None, tables=None,
+              order_by=None, select_params=None):
+        """
+        Adds extra SQL fragments to the query.
+        """
+        assert self.query.can_filter(), \
+                "Cannot change a query once a slice has been taken"
+        clone = self._clone()
+        clone.query.add_extra(select, select_params, where, params, tables, order_by)
+        return clone
+
+    def reverse(self):
+        """
+        Reverses the ordering of the QuerySet.
+        """
+        clone = self._clone()
+        clone.query.standard_ordering = not clone.query.standard_ordering
+        return clone
+
+    ###################
+    # PRIVATE METHODS #
+    ###################
+
+    def _clone(self, klass=None, setup=False, **kwargs):
+        if klass is None:
+            klass = self.__class__
+        query = self.query.clone()
+        if self._sticky_filter:
+            query.filter_is_sticky = True
+        c = klass(model=self.model, query=query)
+        c.__dict__.update(kwargs)
+        if setup and hasattr(c, '_setup_query'):
+            c._setup_query()
+        return c
+
+    def _fill_cache(self, num=None):
+        """
+        Fills the result cache with 'num' more entries (or until the results
+        iterator is exhausted).
+        """
+        if self._iter:
+            try:
+                for i in range(num or ITER_CHUNK_SIZE):
+                    self._result_cache.append(self._iter.next())
+            except StopIteration:
+                self._iter = None
+
+    def _next_is_sticky(self):
+        """
+        Indicates that the next filter call and the one following that should
+        be treated as a single filter. This is only important when it comes to
+        determining when to reuse tables for many-to-many filters. Required so
+        that we can filter naturally on the results of related managers.
+
+        This doesn't return a clone of the current QuerySet (it returns
+        "self"). The method is only used internally and should be immediately
+        followed by a filter() that does create a clone.
+        """
+        self._sticky_filter = True
+        return self
+
+    def _merge_sanity_check(self, other):
+        """
+        Checks that we are merging two comparable QuerySet classes. By default
+        this does nothing, but see the ValuesQuerySet for an example of where
+        it's useful.
+        """
+        pass
+
+
+class ValuesQuerySet(QuerySet):
+    def __init__(self, *args, **kwargs):
+        super(ValuesQuerySet, self).__init__(*args, **kwargs)
+        # select_related isn't supported in values(). (FIXME -#3358)
+        self.query.select_related = False
+
+        # QuerySet.clone() will also set up the _fields attribute with the
+        # names of the model fields to select.
+
+    def iterator(self):
+        if (not self.extra_names and
+            len(self.field_names) != len(self.model._meta.fields)):
+            self.query.trim_extra_select(self.extra_names)
+        names = self.query.extra_select.keys() + self.field_names
+        for row in self.query.results_iter():
+            yield dict(zip(names, row))
+
+    def _setup_query(self):
+        """
+        Constructs the field_names list that the values query will be
+        retrieving.
+
+        Called by the _clone() method after initializing the rest of the
+        instance.
+        """
+        self.extra_names = []
+        if self._fields:
+            if not self.query.extra_select:
+                field_names = list(self._fields)
+            else:
+                field_names = []
+                for f in self._fields:
+                    if self.query.extra_select.has_key(f):
+                        self.extra_names.append(f)
+                    else:
+                        field_names.append(f)
+        else:
+            # Default to all fields.
+            field_names = [f.attname for f in self.model._meta.fields]
+
+        self.query.add_fields(field_names, False)
+        self.query.default_cols = False
+        self.field_names = field_names
+
+    def _clone(self, klass=None, setup=False, **kwargs):
+        """
+        Cloning a ValuesQuerySet preserves the current fields.
+        """
+        c = super(ValuesQuerySet, self)._clone(klass, **kwargs)
+        c._fields = self._fields[:]
+        c.field_names = self.field_names
+        c.extra_names = self.extra_names
+        if setup and hasattr(c, '_setup_query'):
+            c._setup_query()
+        return c
+
+    def _merge_sanity_check(self, other):
+        super(ValuesQuerySet, self)._merge_sanity_check(other)
+        if (set(self.extra_names) != set(other.extra_names) or
+                set(self.field_names) != set(other.field_names)):
+            raise TypeError("Merging '%s' classes must involve the same values in each case."
+                    % self.__class__.__name__)
+
+
+class ValuesListQuerySet(ValuesQuerySet):
+    def iterator(self):
+        self.query.trim_extra_select(self.extra_names)
+        if self.flat and len(self._fields) == 1:
+            for row in self.query.results_iter():
+                yield row[0]
+        elif not self.query.extra_select:
+            for row in self.query.results_iter():
+                yield tuple(row)
+        else:
+            # When extra(select=...) is involved, the extra cols come are
+            # always at the start of the row, so we need to reorder the fields
+            # to match the order in self._fields.
+            names = self.query.extra_select.keys() + self.field_names
+            for row in self.query.results_iter():
+                data = dict(zip(names, row))
+                yield tuple([data[f] for f in self._fields])
+
+    def _clone(self, *args, **kwargs):
+        clone = super(ValuesListQuerySet, self)._clone(*args, **kwargs)
+        clone.flat = self.flat
+        return clone
+
+
+class DateQuerySet(QuerySet):
+    def iterator(self):
+        return self.query.results_iter()
+
+    def _setup_query(self):
+        """
+        Sets up any special features of the query attribute.
+
+        Called by the _clone() method after initializing the rest of the
+        instance.
+        """
+        self.query = self.query.clone(klass=sql.DateQuery, setup=True)
+        self.query.select = []
+        field = self.model._meta.get_field(self._field_name, many_to_many=False)
+        assert isinstance(field, DateField), "%r isn't a DateField." \
+                % field_name
+        self.query.add_date_select(field, self._kind, self._order)
+        if field.null:
+            self.query.add_filter(('%s__isnull' % field.name, False))
+
+    def _clone(self, klass=None, setup=False, **kwargs):
+        c = super(DateQuerySet, self)._clone(klass, False, **kwargs)
+        c._field_name = self._field_name
+        c._kind = self._kind
+        if setup and hasattr(c, '_setup_query'):
+            c._setup_query()
+        return c
+
+
+class EmptyQuerySet(QuerySet):
+    def __init__(self, model=None, query=None):
+        super(EmptyQuerySet, self).__init__(model, query)
+        self._result_cache = []
+
+    def __and__(self, other):
+        return self._clone()
+
+    def __or__(self, other):
+        return other._clone()
+
+    def count(self):
+        return 0
+
+    def delete(self):
+        pass
+
+    def _clone(self, klass=None, setup=False, **kwargs):
+        c = super(EmptyQuerySet, self)._clone(klass, **kwargs)
+        c._result_cache = []
+        return c
+
+    def iterator(self):
+        # This slightly odd construction is because we need an empty generator
+        # (it raises StopIteration immediately).
+        yield iter([]).next()
+
+
+def get_cached_row(klass, row, index_start, max_depth=0, cur_depth=0,
+                   requested=None):
+    """
+    Helper function that recursively returns an object with the specified
+    related attributes already populated.
+    """
+    if max_depth and requested is None and cur_depth > max_depth:
+        # We've recursed deeply enough; stop now.
+        return None
+
+    restricted = requested is not None
+    index_end = index_start + len(klass._meta.fields)
+    fields = row[index_start:index_end]
+    if not [x for x in fields if x is not None]:
+        # If we only have a list of Nones, there was not related object.
+        return None, index_end
+    obj = klass(*fields)
+    for f in klass._meta.fields:
+        if not select_related_descend(f, restricted, requested):
+            continue
+        if restricted:
+            next = requested[f.name]
+        else:
+            next = None
+        cached_row = get_cached_row(f.rel.to, row, index_end, max_depth,
+                cur_depth+1, next)
+        if cached_row:
+            rel_obj, index_end = cached_row
+            setattr(obj, f.get_cache_name(), rel_obj)
+    return obj, index_end
+
+
+def delete_objects(seen_objs):
+    """
+    Iterate through a list of seen classes, and remove any instances that are
+    referred to.
+    """
+    try:
+        ordered_classes = seen_objs.keys()
+    except CyclicDependency:
+        # If there is a cyclic dependency, we cannot in general delete the
+        # objects.  However, if an appropriate transaction is set up, or if the
+        # database is lax enough, it will succeed. So for now, we go ahead and
+        # try anyway.
+        ordered_classes = seen_objs.unordered_keys()
+
+    obj_pairs = {}
+    for cls in ordered_classes:
+        items = seen_objs[cls].items()
+        items.sort()
+        obj_pairs[cls] = items
+
+        # Pre-notify all instances to be deleted.
+        for pk_val, instance in items:
+            signals.pre_delete.send(sender=cls, instance=instance)
+
+        pk_list = [pk for pk,instance in items]
+        del_query = sql.DeleteQuery(cls, connection)
+        del_query.delete_batch_related(pk_list)
+
+        update_query = sql.UpdateQuery(cls, connection)
+        for field, model in cls._meta.get_fields_with_model():
+            if (field.rel and field.null and field.rel.to in seen_objs and
+                    filter(lambda f: f.column == field.column,
+                    field.rel.to._meta.fields)):
+                if model:
+                    sql.UpdateQuery(model, connection).clear_related(field,
+                            pk_list)
+                else:
+                    update_query.clear_related(field, pk_list)
+
+    # Now delete the actual data.
+    for cls in ordered_classes:
+        items = obj_pairs[cls]
+        items.reverse()
+
+        pk_list = [pk for pk,instance in items]
+        del_query = sql.DeleteQuery(cls, connection)
+        del_query.delete_batch(pk_list)
+
+        # Last cleanup; set NULLs where there once was a reference to the
+        # object, NULL the primary key of the found objects, and perform
+        # post-notification.
+        for pk_val, instance in items:
+            for field in cls._meta.fields:
+                if field.rel and field.null and field.rel.to in seen_objs:
+                    setattr(instance, field.attname, None)
+
+            signals.post_delete.send(sender=cls, instance=instance)
+            setattr(instance, cls._meta.pk.attname, None)
+
+    transaction.commit_unless_managed()
+
+
+def insert_query(model, values, return_id=False, raw_values=False):
+    """
+    Inserts a new record for the given model. This provides an interface to
+    the InsertQuery class and is how Model.save() is implemented. It is not
+    part of the public API.
+    """
+    query = sql.InsertQuery(model, connection)
+    query.insert_values(values, raw_values)
+    return query.execute_sql(return_id)
diff --git a/webapp/django/db/models/query_utils.py b/webapp/django/db/models/query_utils.py
new file mode 100644
index 0000000..8dbb1ec
--- /dev/null
+++ b/webapp/django/db/models/query_utils.py
@@ -0,0 +1,67 @@
+"""
+Various data structures used in query construction.
+
+Factored out from django.db.models.query so that they can also be used by other
+modules without getting into circular import difficulties.
+"""
+
+from copy import deepcopy
+
+from django.utils import tree
+
+class QueryWrapper(object):
+    """
+    A type that indicates the contents are an SQL fragment and the associate
+    parameters. Can be used to pass opaque data to a where-clause, for example.
+    """
+    def __init__(self, sql, params):
+        self.data = sql, params
+
+class Q(tree.Node):
+    """
+    Encapsulates filters as objects that can then be combined logically (using
+    & and |).
+    """
+    # Connection types
+    AND = 'AND'
+    OR = 'OR'
+    default = AND
+
+    def __init__(self, *args, **kwargs):
+        super(Q, self).__init__(children=list(args) + kwargs.items())
+
+    def _combine(self, other, conn):
+        if not isinstance(other, Q):
+            raise TypeError(other)
+        obj = deepcopy(self)
+        obj.add(other, conn)
+        return obj
+
+    def __or__(self, other):
+        return self._combine(other, self.OR)
+
+    def __and__(self, other):
+        return self._combine(other, self.AND)
+
+    def __invert__(self):
+        obj = deepcopy(self)
+        obj.negate()
+        return obj
+
+def select_related_descend(field, restricted, requested):
+    """
+    Returns True if this field should be used to descend deeper for
+    select_related() purposes. Used by both the query construction code
+    (sql.query.fill_related_selections()) and the model instance creation code
+    (query.get_cached_row()).
+    """
+    if not field.rel:
+        return False
+    if field.rel.parent_link:
+        return False
+    if restricted and field.name not in requested:
+        return False
+    if not restricted and field.null:
+        return False
+    return True
+
diff --git a/webapp/django/db/models/related.py b/webapp/django/db/models/related.py
new file mode 100644
index 0000000..2c1dc5c
--- /dev/null
+++ b/webapp/django/db/models/related.py
@@ -0,0 +1,142 @@
+class BoundRelatedObject(object):
+    def __init__(self, related_object, field_mapping, original):
+        self.relation = related_object
+        self.field_mappings = field_mapping[related_object.name]
+
+    def template_name(self):
+        raise NotImplementedError
+
+    def __repr__(self):
+        return repr(self.__dict__)
+
+class RelatedObject(object):
+    def __init__(self, parent_model, model, field):
+        self.parent_model = parent_model
+        self.model = model
+        self.opts = model._meta
+        self.field = field
+        self.edit_inline = field.rel.edit_inline
+        self.name = '%s:%s' % (self.opts.app_label, self.opts.module_name)
+        self.var_name = self.opts.object_name.lower()
+
+    def flatten_data(self, follow, obj=None):
+        new_data = {}
+        rel_instances = self.get_list(obj)
+        for i, rel_instance in enumerate(rel_instances):
+            instance_data = {}
+            for f in self.opts.fields + self.opts.many_to_many:
+                # TODO: Fix for recursive manipulators.
+                fol = follow.get(f.name, None)
+                if fol:
+                    field_data = f.flatten_data(fol, rel_instance)
+                    for name, value in field_data.items():
+                        instance_data['%s.%d.%s' % (self.var_name, i, name)] = value
+            new_data.update(instance_data)
+        return new_data
+
+    def extract_data(self, data):
+        """
+        Pull out the data meant for inline objects of this class,
+        i.e. anything starting with our module name.
+        """
+        return data # TODO
+
+    def get_list(self, parent_instance=None):
+        "Get the list of this type of object from an instance of the parent class."
+        if parent_instance is not None:
+            attr = getattr(parent_instance, self.get_accessor_name())
+            if self.field.rel.multiple:
+                # For many-to-many relationships, return a list of objects
+                # corresponding to the xxx_num_in_admin options of the field
+                objects = list(attr.all())
+
+                count = len(objects) + self.field.rel.num_extra_on_change
+                if self.field.rel.min_num_in_admin:
+                    count = max(count, self.field.rel.min_num_in_admin)
+                if self.field.rel.max_num_in_admin:
+                    count = min(count, self.field.rel.max_num_in_admin)
+
+                change = count - len(objects)
+                if change > 0:
+                    return objects + [None] * change
+                if change < 0:
+                    return objects[:change]
+                else: # Just right
+                    return objects
+            else:
+                # A one-to-one relationship, so just return the single related
+                # object
+                return [attr]
+        else:
+            if self.field.rel.min_num_in_admin:
+                return [None] * max(self.field.rel.num_in_admin, self.field.rel.min_num_in_admin)
+            else:
+                return [None] * self.field.rel.num_in_admin
+
+    def get_db_prep_lookup(self, lookup_type, value):
+        # Defer to the actual field definition for db prep
+        return self.field.get_db_prep_lookup(lookup_type, value)
+        
+    def editable_fields(self):
+        "Get the fields in this class that should be edited inline."
+        return [f for f in self.opts.fields + self.opts.many_to_many if f.editable and f != self.field]
+
+    def get_follow(self, override=None):
+        if isinstance(override, bool):
+            if override:
+                over = {}
+            else:
+                return None
+        else:
+            if override:
+                over = override.copy()
+            elif self.edit_inline:
+                over = {}
+            else:
+                return None
+
+        over[self.field.name] = False
+        return self.opts.get_follow(over)
+
+    def get_manipulator_fields(self, opts, manipulator, change, follow):
+        if self.field.rel.multiple:
+            if change:
+                attr = getattr(manipulator.original_object, self.get_accessor_name())
+                count = attr.count()
+                count += self.field.rel.num_extra_on_change
+            else:
+                count = self.field.rel.num_in_admin
+            if self.field.rel.min_num_in_admin:
+                count = max(count, self.field.rel.min_num_in_admin)
+            if self.field.rel.max_num_in_admin:
+                count = min(count, self.field.rel.max_num_in_admin)
+        else:
+            count = 1
+
+        fields = []
+        for i in range(count):
+            for f in self.opts.fields + self.opts.many_to_many:
+                if follow.get(f.name, False):
+                    prefix = '%s.%d.' % (self.var_name, i)
+                    fields.extend(f.get_manipulator_fields(self.opts, manipulator, change,
+                                                           name_prefix=prefix, rel=True))
+        return fields
+
+    def __repr__(self):
+        return "<RelatedObject: %s related to %s>" % (self.name, self.field.name)
+
+    def bind(self, field_mapping, original, bound_related_object_class=BoundRelatedObject):
+        return bound_related_object_class(self, field_mapping, original)
+
+    def get_accessor_name(self):
+        # This method encapsulates the logic that decides what name to give an
+        # accessor descriptor that retrieves related many-to-one or
+        # many-to-many objects. It uses the lower-cased object_name + "_set",
+        # but this can be overridden with the "related_name" option.
+        if self.field.rel.multiple:
+            # If this is a symmetrical m2m relation on self, there is no reverse accessor.
+            if getattr(self.field.rel, 'symmetrical', False) and self.model == self.parent_model:
+                return None
+            return self.field.rel.related_name or (self.opts.object_name.lower() + '_set')
+        else:
+            return self.field.rel.related_name or (self.opts.object_name.lower())
diff --git a/webapp/django/db/models/signals.py b/webapp/django/db/models/signals.py
new file mode 100644
index 0000000..0455336
--- /dev/null
+++ b/webapp/django/db/models/signals.py
@@ -0,0 +1,14 @@
+from django.dispatch import Signal
+
+class_prepared = Signal(providing_args=["class"])
+
+pre_init = Signal(providing_args=["instance", "args", "kwargs"])
+post_init = Signal(providing_args=["instance"])
+
+pre_save = Signal(providing_args=["instance", "raw"])
+post_save = Signal(providing_args=["instance", "raw", "created"])
+
+pre_delete = Signal(providing_args=["instance"])
+post_delete = Signal(providing_args=["instance"])
+
+post_syncdb = Signal(providing_args=["class", "app", "created_models", "verbosity", "interactive"])
diff --git a/webapp/django/db/models/sql/__init__.py b/webapp/django/db/models/sql/__init__.py
new file mode 100644
index 0000000..7310982
--- /dev/null
+++ b/webapp/django/db/models/sql/__init__.py
@@ -0,0 +1,7 @@
+from query import *
+from subqueries import *
+from where import AND, OR
+from datastructures import EmptyResultSet
+
+__all__ = ['Query', 'AND', 'OR', 'EmptyResultSet']
+
diff --git a/webapp/django/db/models/sql/constants.py b/webapp/django/db/models/sql/constants.py
new file mode 100644
index 0000000..129a592
--- /dev/null
+++ b/webapp/django/db/models/sql/constants.py
@@ -0,0 +1,36 @@
+import re
+
+# Valid query types (a dictionary is used for speedy lookups).
+QUERY_TERMS = dict([(x, None) for x in (
+    'exact', 'iexact', 'contains', 'icontains', 'gt', 'gte', 'lt', 'lte', 'in',
+    'startswith', 'istartswith', 'endswith', 'iendswith', 'range', 'year',
+    'month', 'day', 'isnull', 'search', 'regex', 'iregex',
+    )])
+
+# Size of each "chunk" for get_iterator calls.
+# Larger values are slightly faster at the expense of more storage space.
+GET_ITERATOR_CHUNK_SIZE = 100
+
+# Separator used to split filter strings apart.
+LOOKUP_SEP = '__'
+
+# Constants to make looking up tuple values clearer.
+# Join lists
+TABLE_NAME = 0
+RHS_ALIAS = 1
+JOIN_TYPE = 2
+LHS_ALIAS = 3
+LHS_JOIN_COL = 4
+RHS_JOIN_COL = 5
+NULLABLE = 6
+
+# How many results to expect from a cursor.execute call
+MULTI = 'multi'
+SINGLE = 'single'
+
+ORDER_PATTERN = re.compile(r'\?|[-+]?[.\w]+$')
+ORDER_DIR = {
+    'ASC': ('ASC', 'DESC'),
+    'DESC': ('DESC', 'ASC')}
+
+
diff --git a/webapp/django/db/models/sql/datastructures.py b/webapp/django/db/models/sql/datastructures.py
new file mode 100644
index 0000000..913d8fd
--- /dev/null
+++ b/webapp/django/db/models/sql/datastructures.py
@@ -0,0 +1,103 @@
+"""
+Useful auxilliary data structures for query construction. Not useful outside
+the SQL domain.
+"""
+
+class EmptyResultSet(Exception):
+    pass
+
+class FullResultSet(Exception):
+    pass
+
+class MultiJoin(Exception):
+    """
+    Used by join construction code to indicate the point at which a
+    multi-valued join was attempted (if the caller wants to treat that
+    exceptionally).
+    """
+    def __init__(self, level):
+        self.level = level
+
+class Empty(object):
+    pass
+
+class RawValue(object):
+    def __init__(self, value):
+        self.value = value
+
+class Aggregate(object):
+    """
+    Base class for all aggregate-related classes (min, max, avg, count, sum).
+    """
+    def relabel_aliases(self, change_map):
+        """
+        Relabel the column alias, if necessary. Must be implemented by
+        subclasses.
+        """
+        raise NotImplementedError
+
+    def as_sql(self, quote_func=None):
+        """
+        Returns the SQL string fragment for this object.
+
+        The quote_func function is used to quote the column components. If
+        None, it defaults to doing nothing.
+
+        Must be implemented by subclasses.
+        """
+        raise NotImplementedError
+
+class Count(Aggregate):
+    """
+    Perform a count on the given column.
+    """
+    def __init__(self, col='*', distinct=False):
+        """
+        Set the column to count on (defaults to '*') and set whether the count
+        should be distinct or not.
+        """
+        self.col = col
+        self.distinct = distinct
+
+    def relabel_aliases(self, change_map):
+        c = self.col
+        if isinstance(c, (list, tuple)):
+            self.col = (change_map.get(c[0], c[0]), c[1])
+
+    def as_sql(self, quote_func=None):
+        if not quote_func:
+            quote_func = lambda x: x
+        if isinstance(self.col, (list, tuple)):
+            col = ('%s.%s' % tuple([quote_func(c) for c in self.col]))
+        elif hasattr(self.col, 'as_sql'):
+            col = self.col.as_sql(quote_func)
+        else:
+            col = self.col
+        if self.distinct:
+            return 'COUNT(DISTINCT %s)' % col
+        else:
+            return 'COUNT(%s)' % col
+
+class Date(object):
+    """
+    Add a date selection column.
+    """
+    def __init__(self, col, lookup_type, date_sql_func):
+        self.col = col
+        self.lookup_type = lookup_type
+        self.date_sql_func = date_sql_func
+
+    def relabel_aliases(self, change_map):
+        c = self.col
+        if isinstance(c, (list, tuple)):
+            self.col = (change_map.get(c[0], c[0]), c[1])
+
+    def as_sql(self, quote_func=None):
+        if not quote_func:
+            quote_func = lambda x: x
+        if isinstance(self.col, (list, tuple)):
+            col = '%s.%s' % tuple([quote_func(c) for c in self.col])
+        else:
+            col = self.col
+        return self.date_sql_func(self.lookup_type, col)
+
diff --git a/webapp/django/db/models/sql/query.py b/webapp/django/db/models/sql/query.py
new file mode 100644
index 0000000..287890a
--- /dev/null
+++ b/webapp/django/db/models/sql/query.py
@@ -0,0 +1,1705 @@
+"""
+Create SQL statements for QuerySets.
+
+The code in here encapsulates all of the SQL construction so that QuerySets
+themselves do not have to (and could be backed by things other than SQL
+databases). The abstraction barrier only works one way: this module has to know
+all about the internals of models in order to get the information it needs.
+"""
+
+from copy import deepcopy
+
+from django.utils.tree import Node
+from django.utils.datastructures import SortedDict
+from django.utils.encoding import force_unicode
+from django.db import connection
+from django.db.models import signals
+from django.db.models.fields import FieldDoesNotExist
+from django.db.models.query_utils import select_related_descend
+from django.db.models.sql.where import WhereNode, EverythingNode, AND, OR
+from django.db.models.sql.datastructures import Count
+from django.core.exceptions import FieldError
+from datastructures import EmptyResultSet, Empty, MultiJoin
+from constants import *
+
+try:
+    set
+except NameError:
+    from sets import Set as set     # Python 2.3 fallback
+
+__all__ = ['Query']
+
+class Query(object):
+    """
+    A single SQL query.
+    """
+    # SQL join types. These are part of the class because their string forms
+    # vary from database to database and can be customised by a subclass.
+    INNER = 'INNER JOIN'
+    LOUTER = 'LEFT OUTER JOIN'
+
+    alias_prefix = 'T'
+    query_terms = QUERY_TERMS
+
+    def __init__(self, model, connection, where=WhereNode):
+        self.model = model
+        self.connection = connection
+        self.alias_refcount = {}
+        self.alias_map = {}     # Maps alias to join information
+        self.table_map = {}     # Maps table names to list of aliases.
+        self.join_map = {}
+        self.rev_join_map = {}  # Reverse of join_map.
+        self.quote_cache = {}
+        self.default_cols = True
+        self.default_ordering = True
+        self.standard_ordering = True
+        self.ordering_aliases = []
+        self.start_meta = None
+        self.select_fields = []
+        self.related_select_fields = []
+        self.dupe_avoidance = {}
+        self.used_aliases = set()
+        self.filter_is_sticky = False
+
+        # SQL-related attributes
+        self.select = []
+        self.tables = []    # Aliases in the order they are created.
+        self.where = where()
+        self.where_class = where
+        self.group_by = []
+        self.having = []
+        self.order_by = []
+        self.low_mark, self.high_mark = 0, None  # Used for offset/limit
+        self.distinct = False
+        self.select_related = False
+        self.related_select_cols = []
+
+        # Arbitrary maximum limit for select_related. Prevents infinite
+        # recursion. Can be changed by the depth parameter to select_related().
+        self.max_depth = 5
+
+        # These are for extensions. The contents are more or less appended
+        # verbatim to the appropriate clause.
+        self.extra_select = SortedDict()  # Maps col_alias -> (col_sql, params).
+        self.extra_tables = ()
+        self.extra_where = ()
+        self.extra_params = ()
+        self.extra_order_by = ()
+
+    def __str__(self):
+        """
+        Returns the query as a string of SQL with the parameter values
+        substituted in.
+
+        Parameter values won't necessarily be quoted correctly, since that is
+        done by the database interface at execution time.
+        """
+        sql, params = self.as_sql()
+        return sql % params
+
+    def __deepcopy__(self, memo):
+        result= self.clone()
+        memo[id(self)] = result
+        return result
+
+    def __getstate__(self):
+        """
+        Pickling support.
+        """
+        obj_dict = self.__dict__.copy()
+        obj_dict['related_select_fields'] = []
+        obj_dict['related_select_cols'] = []
+        del obj_dict['connection']
+        return obj_dict
+
+    def __setstate__(self, obj_dict):
+        """
+        Unpickling support.
+        """
+        self.__dict__.update(obj_dict)
+        # XXX: Need a better solution for this when multi-db stuff is
+        # supported. It's the only class-reference to the module-level
+        # connection variable.
+        self.connection = connection
+
+    def get_meta(self):
+        """
+        Returns the Options instance (the model._meta) from which to start
+        processing. Normally, this is self.model._meta, but it can change.
+        """
+        if self.start_meta:
+            return self.start_meta
+        return self.model._meta
+
+    def quote_name_unless_alias(self, name):
+        """
+        A wrapper around connection.ops.quote_name that doesn't quote aliases
+        for table names. This avoids problems with some SQL dialects that treat
+        quoted strings specially (e.g. PostgreSQL).
+        """
+        if name in self.quote_cache:
+            return self.quote_cache[name]
+        if ((name in self.alias_map and name not in self.table_map) or
+                name in self.extra_select):
+            self.quote_cache[name] = name
+            return name
+        r = self.connection.ops.quote_name(name)
+        self.quote_cache[name] = r
+        return r
+
+    def clone(self, klass=None, **kwargs):
+        """
+        Creates a copy of the current instance. The 'kwargs' parameter can be
+        used by clients to update attributes after copying has taken place.
+        """
+        obj = Empty()
+        obj.__class__ = klass or self.__class__
+        obj.model = self.model
+        obj.connection = self.connection
+        obj.alias_refcount = self.alias_refcount.copy()
+        obj.alias_map = self.alias_map.copy()
+        obj.table_map = self.table_map.copy()
+        obj.join_map = self.join_map.copy()
+        obj.rev_join_map = self.rev_join_map.copy()
+        obj.quote_cache = {}
+        obj.default_cols = self.default_cols
+        obj.default_ordering = self.default_ordering
+        obj.standard_ordering = self.standard_ordering
+        obj.ordering_aliases = []
+        obj.start_meta = self.start_meta
+        obj.select_fields = self.select_fields[:]
+        obj.related_select_fields = self.related_select_fields[:]
+        obj.dupe_avoidance = self.dupe_avoidance.copy()
+        obj.select = self.select[:]
+        obj.tables = self.tables[:]
+        obj.where = deepcopy(self.where)
+        obj.where_class = self.where_class
+        obj.group_by = self.group_by[:]
+        obj.having = self.having[:]
+        obj.order_by = self.order_by[:]
+        obj.low_mark, obj.high_mark = self.low_mark, self.high_mark
+        obj.distinct = self.distinct
+        obj.select_related = self.select_related
+        obj.related_select_cols = []
+        obj.max_depth = self.max_depth
+        obj.extra_select = self.extra_select.copy()
+        obj.extra_tables = self.extra_tables
+        obj.extra_where = self.extra_where
+        obj.extra_params = self.extra_params
+        obj.extra_order_by = self.extra_order_by
+        if self.filter_is_sticky and self.used_aliases:
+            obj.used_aliases = self.used_aliases.copy()
+        else:
+            obj.used_aliases = set()
+        obj.filter_is_sticky = False
+        obj.__dict__.update(kwargs)
+        if hasattr(obj, '_setup_query'):
+            obj._setup_query()
+        return obj
+
+    def results_iter(self):
+        """
+        Returns an iterator over the results from executing this query.
+        """
+        resolve_columns = hasattr(self, 'resolve_columns')
+        fields = None
+        for rows in self.execute_sql(MULTI):
+            for row in rows:
+                if resolve_columns:
+                    if fields is None:
+                        # We only set this up here because
+                        # related_select_fields isn't populated until
+                        # execute_sql() has been called.
+                        if self.select_fields:
+                            fields = self.select_fields + self.related_select_fields
+                        else:
+                            fields = self.model._meta.fields
+                    row = self.resolve_columns(row, fields)
+                yield row
+
+    def get_count(self):
+        """
+        Performs a COUNT() query using the current filter constraints.
+        """
+        from subqueries import CountQuery
+        obj = self.clone()
+        obj.clear_ordering(True)
+        obj.clear_limits()
+        obj.select_related = False
+        obj.related_select_cols = []
+        obj.related_select_fields = []
+        if len(obj.select) > 1:
+            obj = self.clone(CountQuery, _query=obj, where=self.where_class(),
+                    distinct=False)
+            obj.select = []
+            obj.extra_select = SortedDict()
+        obj.add_count_column()
+        data = obj.execute_sql(SINGLE)
+        if not data:
+            return 0
+        number = data[0]
+
+        # Apply offset and limit constraints manually, since using LIMIT/OFFSET
+        # in SQL (in variants that provide them) doesn't change the COUNT
+        # output.
+        number = max(0, number - self.low_mark)
+        if self.high_mark:
+            number = min(number, self.high_mark - self.low_mark)
+
+        return number
+
+    def as_sql(self, with_limits=True, with_col_aliases=False):
+        """
+        Creates the SQL for this query. Returns the SQL string and list of
+        parameters.
+
+        If 'with_limits' is False, any limit/offset information is not included
+        in the query.
+        """
+        self.pre_sql_setup()
+        out_cols = self.get_columns(with_col_aliases)
+        ordering = self.get_ordering()
+
+        # This must come after 'select' and 'ordering' -- see docstring of
+        # get_from_clause() for details.
+        from_, f_params = self.get_from_clause()
+
+        where, w_params = self.where.as_sql(qn=self.quote_name_unless_alias)
+        params = []
+        for val in self.extra_select.itervalues():
+            params.extend(val[1])
+
+        result = ['SELECT']
+        if self.distinct:
+            result.append('DISTINCT')
+        result.append(', '.join(out_cols + self.ordering_aliases))
+
+        result.append('FROM')
+        result.extend(from_)
+        params.extend(f_params)
+
+        if where:
+            result.append('WHERE %s' % where)
+            params.extend(w_params)
+        if self.extra_where:
+            if not where:
+                result.append('WHERE')
+            else:
+                result.append('AND')
+            result.append(' AND '.join(self.extra_where))
+
+        if self.group_by:
+            grouping = self.get_grouping()
+            result.append('GROUP BY %s' % ', '.join(grouping))
+
+        if ordering:
+            result.append('ORDER BY %s' % ', '.join(ordering))
+
+        if with_limits:
+            if self.high_mark is not None:
+                result.append('LIMIT %d' % (self.high_mark - self.low_mark))
+            if self.low_mark:
+                if self.high_mark is None:
+                    val = self.connection.ops.no_limit_value()
+                    if val:
+                        result.append('LIMIT %d' % val)
+                result.append('OFFSET %d' % self.low_mark)
+
+        params.extend(self.extra_params)
+        return ' '.join(result), tuple(params)
+
+    def combine(self, rhs, connector):
+        """
+        Merge the 'rhs' query into the current one (with any 'rhs' effects
+        being applied *after* (that is, "to the right of") anything in the
+        current query. 'rhs' is not modified during a call to this function.
+
+        The 'connector' parameter describes how to connect filters from the
+        'rhs' query.
+        """
+        assert self.model == rhs.model, \
+                "Cannot combine queries on two different base models."
+        assert self.can_filter(), \
+                "Cannot combine queries once a slice has been taken."
+        assert self.distinct == rhs.distinct, \
+            "Cannot combine a unique query with a non-unique query."
+
+        # Work out how to relabel the rhs aliases, if necessary.
+        change_map = {}
+        used = set()
+        conjunction = (connector == AND)
+        first = True
+        for alias in rhs.tables:
+            if not rhs.alias_refcount[alias]:
+                # An unused alias.
+                continue
+            promote = (rhs.alias_map[alias][JOIN_TYPE] == self.LOUTER)
+            new_alias = self.join(rhs.rev_join_map[alias],
+                    (conjunction and not first), used, promote, not conjunction)
+            used.add(new_alias)
+            change_map[alias] = new_alias
+            first = False
+
+        # So that we don't exclude valid results in an "or" query combination,
+        # the first join that is exclusive to the lhs (self) must be converted
+        # to an outer join.
+        if not conjunction:
+            for alias in self.tables[1:]:
+                if self.alias_refcount[alias] == 1:
+                    self.promote_alias(alias, True)
+                    break
+
+        # Now relabel a copy of the rhs where-clause and add it to the current
+        # one.
+        if rhs.where:
+            w = deepcopy(rhs.where)
+            w.relabel_aliases(change_map)
+            if not self.where:
+                # Since 'self' matches everything, add an explicit "include
+                # everything" where-constraint so that connections between the
+                # where clauses won't exclude valid results.
+                self.where.add(EverythingNode(), AND)
+        elif self.where:
+            # rhs has an empty where clause.
+            w = self.where_class()
+            w.add(EverythingNode(), AND)
+        else:
+            w = self.where_class()
+        self.where.add(w, connector)
+
+        # Selection columns and extra extensions are those provided by 'rhs'.
+        self.select = []
+        for col in rhs.select:
+            if isinstance(col, (list, tuple)):
+                self.select.append((change_map.get(col[0], col[0]), col[1]))
+            else:
+                item = deepcopy(col)
+                item.relabel_aliases(change_map)
+                self.select.append(item)
+        self.select_fields = rhs.select_fields[:]
+
+        if connector == OR:
+            # It would be nice to be able to handle this, but the queries don't
+            # really make sense (or return consistent value sets). Not worth
+            # the extra complexity when you can write a real query instead.
+            if self.extra_select and rhs.extra_select:
+                raise ValueError("When merging querysets using 'or', you "
+                        "cannot have extra(select=...) on both sides.")
+            if self.extra_where and rhs.extra_where:
+                raise ValueError("When merging querysets using 'or', you "
+                        "cannot have extra(where=...) on both sides.")
+        self.extra_select.update(rhs.extra_select)
+        self.extra_tables += rhs.extra_tables
+        self.extra_where += rhs.extra_where
+        self.extra_params += rhs.extra_params
+
+        # Ordering uses the 'rhs' ordering, unless it has none, in which case
+        # the current ordering is used.
+        self.order_by = rhs.order_by and rhs.order_by[:] or self.order_by
+        self.extra_order_by = rhs.extra_order_by or self.extra_order_by
+
+    def pre_sql_setup(self):
+        """
+        Does any necessary class setup immediately prior to producing SQL. This
+        is for things that can't necessarily be done in __init__ because we
+        might not have all the pieces in place at that time.
+        """
+        if not self.tables:
+            self.join((None, self.model._meta.db_table, None, None))
+        if self.select_related and not self.related_select_cols:
+            self.fill_related_selections()
+
+    def get_columns(self, with_aliases=False):
+        """
+        Return the list of columns to use in the select statement. If no
+        columns have been specified, returns all columns relating to fields in
+        the model.
+
+        If 'with_aliases' is true, any column names that are duplicated
+        (without the table names) are given unique aliases. This is needed in
+        some cases to avoid ambiguitity with nested queries.
+        """
+        qn = self.quote_name_unless_alias
+        qn2 = self.connection.ops.quote_name
+        result = ['(%s) AS %s' % (col[0], qn2(alias)) for alias, col in self.extra_select.iteritems()]
+        aliases = set(self.extra_select.keys())
+        if with_aliases:
+            col_aliases = aliases.copy()
+        else:
+            col_aliases = set()
+        if self.select:
+            for col in self.select:
+                if isinstance(col, (list, tuple)):
+                    r = '%s.%s' % (qn(col[0]), qn(col[1]))
+                    if with_aliases and col[1] in col_aliases:
+                        c_alias = 'Col%d' % len(col_aliases)
+                        result.append('%s AS %s' % (r, c_alias))
+                        aliases.add(c_alias)
+                        col_aliases.add(c_alias)
+                    else:
+                        result.append(r)
+                        aliases.add(r)
+                        col_aliases.add(col[1])
+                else:
+                    result.append(col.as_sql(quote_func=qn))
+                    if hasattr(col, 'alias'):
+                        aliases.add(col.alias)
+                        col_aliases.add(col.alias)
+        elif self.default_cols:
+            cols, new_aliases = self.get_default_columns(with_aliases,
+                    col_aliases)
+            result.extend(cols)
+            aliases.update(new_aliases)
+        for table, col in self.related_select_cols:
+            r = '%s.%s' % (qn(table), qn(col))
+            if with_aliases and col in col_aliases:
+                c_alias = 'Col%d' % len(col_aliases)
+                result.append('%s AS %s' % (r, c_alias))
+                aliases.add(c_alias)
+                col_aliases.add(c_alias)
+            else:
+                result.append(r)
+                aliases.add(r)
+                col_aliases.add(col)
+
+        self._select_aliases = aliases
+        return result
+
+    def get_default_columns(self, with_aliases=False, col_aliases=None,
+            start_alias=None, opts=None, as_pairs=False):
+        """
+        Computes the default columns for selecting every field in the base
+        model.
+
+        Returns a list of strings, quoted appropriately for use in SQL
+        directly, as well as a set of aliases used in the select statement (if
+        'as_pairs' is True, returns a list of (alias, col_name) pairs instead
+        of strings as the first component and None as the second component).
+        """
+        result = []
+        if opts is None:
+            opts = self.model._meta
+        if start_alias:
+            table_alias = start_alias
+        else:
+            table_alias = self.tables[0]
+        root_pk = opts.pk.column
+        seen = {None: table_alias}
+        qn = self.quote_name_unless_alias
+        qn2 = self.connection.ops.quote_name
+        aliases = set()
+        for field, model in opts.get_fields_with_model():
+            try:
+                alias = seen[model]
+            except KeyError:
+                alias = self.join((table_alias, model._meta.db_table,
+                        root_pk, model._meta.pk.column))
+                seen[model] = alias
+            if as_pairs:
+                result.append((alias, field.column))
+                continue
+            if with_aliases and field.column in col_aliases:
+                c_alias = 'Col%d' % len(col_aliases)
+                result.append('%s.%s AS %s' % (qn(alias),
+                    qn2(field.column), c_alias))
+                col_aliases.add(c_alias)
+                aliases.add(c_alias)
+            else:
+                r = '%s.%s' % (qn(alias), qn2(field.column))
+                result.append(r)
+                aliases.add(r)
+                if with_aliases:
+                    col_aliases.add(field.column)
+        if as_pairs:
+            return result, None
+        return result, aliases
+
+    def get_from_clause(self):
+        """
+        Returns a list of strings that are joined together to go after the
+        "FROM" part of the query, as well as a list any extra parameters that
+        need to be included. Sub-classes, can override this to create a
+        from-clause via a "select", for example (e.g. CountQuery).
+
+        This should only be called after any SQL construction methods that
+        might change the tables we need. This means the select columns and
+        ordering must be done first.
+        """
+        result = []
+        qn = self.quote_name_unless_alias
+        qn2 = self.connection.ops.quote_name
+        first = True
+        for alias in self.tables:
+            if not self.alias_refcount[alias]:
+                continue
+            try:
+                name, alias, join_type, lhs, lhs_col, col, nullable = self.alias_map[alias]
+            except KeyError:
+                # Extra tables can end up in self.tables, but not in the
+                # alias_map if they aren't in a join. That's OK. We skip them.
+                continue
+            alias_str = (alias != name and ' %s' % alias or '')
+            if join_type and not first:
+                result.append('%s %s%s ON (%s.%s = %s.%s)'
+                        % (join_type, qn(name), alias_str, qn(lhs),
+                           qn2(lhs_col), qn(alias), qn2(col)))
+            else:
+                connector = not first and ', ' or ''
+                result.append('%s%s%s' % (connector, qn(name), alias_str))
+            first = False
+        for t in self.extra_tables:
+            alias, unused = self.table_alias(t)
+            # Only add the alias if it's not already present (the table_alias()
+            # calls increments the refcount, so an alias refcount of one means
+            # this is the only reference.
+            if alias not in self.alias_map or self.alias_refcount[alias] == 1:
+                connector = not first and ', ' or ''
+                result.append('%s%s' % (connector, qn(alias)))
+                first = False
+        return result, []
+
+    def get_grouping(self):
+        """
+        Returns a tuple representing the SQL elements in the "group by" clause.
+        """
+        qn = self.quote_name_unless_alias
+        result = []
+        for col in self.group_by:
+            if isinstance(col, (list, tuple)):
+                result.append('%s.%s' % (qn(col[0]), qn(col[1])))
+            elif hasattr(col, 'as_sql'):
+                result.append(col.as_sql(qn))
+            else:
+                result.append(str(col))
+        return result
+
+    def get_ordering(self):
+        """
+        Returns list representing the SQL elements in the "order by" clause.
+        Also sets the ordering_aliases attribute on this instance to a list of
+        extra aliases needed in the select.
+
+        Determining the ordering SQL can change the tables we need to include,
+        so this should be run *before* get_from_clause().
+        """
+        if self.extra_order_by:
+            ordering = self.extra_order_by
+        elif not self.default_ordering:
+            ordering = []
+        else:
+            ordering = self.order_by or self.model._meta.ordering
+        qn = self.quote_name_unless_alias
+        qn2 = self.connection.ops.quote_name
+        distinct = self.distinct
+        select_aliases = self._select_aliases
+        result = []
+        ordering_aliases = []
+        if self.standard_ordering:
+            asc, desc = ORDER_DIR['ASC']
+        else:
+            asc, desc = ORDER_DIR['DESC']
+        for field in ordering:
+            if field == '?':
+                result.append(self.connection.ops.random_function_sql())
+                continue
+            if isinstance(field, int):
+                if field < 0:
+                    order = desc
+                    field = -field
+                else:
+                    order = asc
+                result.append('%s %s' % (field, order))
+                continue
+            if '.' in field:
+                # This came in through an extra(order_by=...) addition. Pass it
+                # on verbatim.
+                col, order = get_order_dir(field, asc)
+                table, col = col.split('.', 1)
+                elt = '%s.%s' % (qn(table), col)
+                if not distinct or elt in select_aliases:
+                    result.append('%s %s' % (elt, order))
+            elif get_order_dir(field)[0] not in self.extra_select:
+                # 'col' is of the form 'field' or 'field1__field2' or
+                # '-field1__field2__field', etc.
+                for table, col, order in self.find_ordering_name(field,
+                        self.model._meta, default_order=asc):
+                    elt = '%s.%s' % (qn(table), qn2(col))
+                    if distinct and elt not in select_aliases:
+                        ordering_aliases.append(elt)
+                    result.append('%s %s' % (elt, order))
+            else:
+                col, order = get_order_dir(field, asc)
+                elt = qn(col)
+                if distinct and elt not in select_aliases:
+                    ordering_aliases.append(elt)
+                result.append('%s %s' % (elt, order))
+        self.ordering_aliases = ordering_aliases
+        return result
+
+    def find_ordering_name(self, name, opts, alias=None, default_order='ASC',
+            already_seen=None):
+        """
+        Returns the table alias (the name might be ambiguous, the alias will
+        not be) and column name for ordering by the given 'name' parameter.
+        The 'name' is of the form 'field1__field2__...__fieldN'.
+        """
+        name, order = get_order_dir(name, default_order)
+        pieces = name.split(LOOKUP_SEP)
+        if not alias:
+            alias = self.get_initial_alias()
+        field, target, opts, joins, last = self.setup_joins(pieces, opts,
+                alias, False)
+        alias = joins[-1]
+        col = target.column
+        if not field.rel:
+            # To avoid inadvertent trimming of a necessary alias, use the
+            # refcount to show that we are referencing a non-relation field on
+            # the model.
+            self.ref_alias(alias)
+
+        # Must use left outer joins for nullable fields.
+        for join in joins:
+            self.promote_alias(join)
+
+        # If we get to this point and the field is a relation to another model,
+        # append the default ordering for that model.
+        if field.rel and len(joins) > 1 and opts.ordering:
+            # Firstly, avoid infinite loops.
+            if not already_seen:
+                already_seen = set()
+            join_tuple = tuple([self.alias_map[j][TABLE_NAME] for j in joins])
+            if join_tuple in already_seen:
+                raise FieldError('Infinite loop caused by ordering.')
+            already_seen.add(join_tuple)
+
+            results = []
+            for item in opts.ordering:
+                results.extend(self.find_ordering_name(item, opts, alias,
+                        order, already_seen))
+            return results
+
+        if alias:
+            # We have to do the same "final join" optimisation as in
+            # add_filter, since the final column might not otherwise be part of
+            # the select set (so we can't order on it).
+            while 1:
+                join = self.alias_map[alias]
+                if col != join[RHS_JOIN_COL]:
+                    break
+                self.unref_alias(alias)
+                alias = join[LHS_ALIAS]
+                col = join[LHS_JOIN_COL]
+        return [(alias, col, order)]
+
+    def table_alias(self, table_name, create=False):
+        """
+        Returns a table alias for the given table_name and whether this is a
+        new alias or not.
+
+        If 'create' is true, a new alias is always created. Otherwise, the
+        most recently created alias for the table (if one exists) is reused.
+        """
+        current = self.table_map.get(table_name)
+        if not create and current:
+            alias = current[0]
+            self.alias_refcount[alias] += 1
+            return alias, False
+
+        # Create a new alias for this table.
+        if current:
+            alias = '%s%d' % (self.alias_prefix, len(self.alias_map) + 1)
+            current.append(alias)
+        else:
+            # The first occurence of a table uses the table name directly.
+            alias = table_name
+            self.table_map[alias] = [alias]
+        self.alias_refcount[alias] = 1
+        #self.alias_map[alias] = None
+        self.tables.append(alias)
+        return alias, True
+
+    def ref_alias(self, alias):
+        """ Increases the reference count for this alias. """
+        self.alias_refcount[alias] += 1
+
+    def unref_alias(self, alias):
+        """ Decreases the reference count for this alias. """
+        self.alias_refcount[alias] -= 1
+
+    def promote_alias(self, alias, unconditional=False):
+        """
+        Promotes the join type of an alias to an outer join if it's possible
+        for the join to contain NULL values on the left. If 'unconditional' is
+        False, the join is only promoted if it is nullable, otherwise it is
+        always promoted.
+
+        Returns True if the join was promoted.
+        """
+        if ((unconditional or self.alias_map[alias][NULLABLE]) and
+                self.alias_map[alias] != self.LOUTER):
+            data = list(self.alias_map[alias])
+            data[JOIN_TYPE] = self.LOUTER
+            self.alias_map[alias] = tuple(data)
+            return True
+        return False
+
+    def change_aliases(self, change_map):
+        """
+        Changes the aliases in change_map (which maps old-alias -> new-alias),
+        relabelling any references to them in select columns and the where
+        clause.
+        """
+        assert set(change_map.keys()).intersection(set(change_map.values())) == set()
+
+        # 1. Update references in "select" and "where".
+        self.where.relabel_aliases(change_map)
+        for pos, col in enumerate(self.select):
+            if isinstance(col, (list, tuple)):
+                self.select[pos] = (change_map.get(old_alias, old_alias), col[1])
+            else:
+                col.relabel_aliases(change_map)
+
+        # 2. Rename the alias in the internal table/alias datastructures.
+        for old_alias, new_alias in change_map.iteritems():
+            alias_data = list(self.alias_map[old_alias])
+            alias_data[RHS_ALIAS] = new_alias
+
+            t = self.rev_join_map[old_alias]
+            data = list(self.join_map[t])
+            data[data.index(old_alias)] = new_alias
+            self.join_map[t] = tuple(data)
+            self.rev_join_map[new_alias] = t
+            del self.rev_join_map[old_alias]
+            self.alias_refcount[new_alias] = self.alias_refcount[old_alias]
+            del self.alias_refcount[old_alias]
+            self.alias_map[new_alias] = tuple(alias_data)
+            del self.alias_map[old_alias]
+
+            table_aliases = self.table_map[alias_data[TABLE_NAME]]
+            for pos, alias in enumerate(table_aliases):
+                if alias == old_alias:
+                    table_aliases[pos] = new_alias
+                    break
+            for pos, alias in enumerate(self.tables):
+                if alias == old_alias:
+                    self.tables[pos] = new_alias
+                    break
+
+        # 3. Update any joins that refer to the old alias.
+        for alias, data in self.alias_map.iteritems():
+            lhs = data[LHS_ALIAS]
+            if lhs in change_map:
+                data = list(data)
+                data[LHS_ALIAS] = change_map[lhs]
+                self.alias_map[alias] = tuple(data)
+
+    def bump_prefix(self, exceptions=()):
+        """
+        Changes the alias prefix to the next letter in the alphabet and
+        relabels all the aliases. Even tables that previously had no alias will
+        get an alias after this call (it's mostly used for nested queries and
+        the outer query will already be using the non-aliased table name).
+
+        Subclasses who create their own prefix should override this method to
+        produce a similar result (a new prefix and relabelled aliases).
+
+        The 'exceptions' parameter is a container that holds alias names which
+        should not be changed.
+        """
+        assert ord(self.alias_prefix) < ord('Z')
+        self.alias_prefix = chr(ord(self.alias_prefix) + 1)
+        change_map = {}
+        prefix = self.alias_prefix
+        for pos, alias in enumerate(self.tables):
+            if alias in exceptions:
+                continue
+            new_alias = '%s%d' % (prefix, pos)
+            change_map[alias] = new_alias
+            self.tables[pos] = new_alias
+        self.change_aliases(change_map)
+
+    def get_initial_alias(self):
+        """
+        Returns the first alias for this query, after increasing its reference
+        count.
+        """
+        if self.tables:
+            alias = self.tables[0]
+            self.ref_alias(alias)
+        else:
+            alias = self.join((None, self.model._meta.db_table, None, None))
+        return alias
+
+    def count_active_tables(self):
+        """
+        Returns the number of tables in this query with a non-zero reference
+        count.
+        """
+        return len([1 for count in self.alias_refcount.itervalues() if count])
+
+    def join(self, connection, always_create=False, exclusions=(),
+            promote=False, outer_if_first=False, nullable=False, reuse=None):
+        """
+        Returns an alias for the join in 'connection', either reusing an
+        existing alias for that join or creating a new one. 'connection' is a
+        tuple (lhs, table, lhs_col, col) where 'lhs' is either an existing
+        table alias or a table name. The join correspods to the SQL equivalent
+        of::
+
+            lhs.lhs_col = table.col
+
+        If 'always_create' is True and 'reuse' is None, a new alias is always
+        created, regardless of whether one already exists or not. Otherwise
+        'reuse' must be a set and a new join is created unless one of the
+        aliases in `reuse` can be used.
+
+        If 'exclusions' is specified, it is something satisfying the container
+        protocol ("foo in exclusions" must work) and specifies a list of
+        aliases that should not be returned, even if they satisfy the join.
+
+        If 'promote' is True, the join type for the alias will be LOUTER (if
+        the alias previously existed, the join type will be promoted from INNER
+        to LOUTER, if necessary).
+
+        If 'outer_if_first' is True and a new join is created, it will have the
+        LOUTER join type. This is used when joining certain types of querysets
+        and Q-objects together.
+
+        If 'nullable' is True, the join can potentially involve NULL values and
+        is a candidate for promotion (to "left outer") when combining querysets.
+        """
+        lhs, table, lhs_col, col = connection
+        if lhs in self.alias_map:
+            lhs_table = self.alias_map[lhs][TABLE_NAME]
+        else:
+            lhs_table = lhs
+
+        if reuse and always_create and table in self.table_map:
+            # Convert the 'reuse' to case to be "exclude everything but the
+            # reusable set, minus exclusions, for this table".
+            exclusions = set(self.table_map[table]).difference(reuse).union(set(exclusions))
+            always_create = False
+        t_ident = (lhs_table, table, lhs_col, col)
+        if not always_create:
+            for alias in self.join_map.get(t_ident, ()):
+                if alias not in exclusions:
+                    if lhs_table and not self.alias_refcount[self.alias_map[alias][LHS_ALIAS]]:
+                        # The LHS of this join tuple is no longer part of the
+                        # query, so skip this possibility.
+                        continue
+                    self.ref_alias(alias)
+                    if promote:
+                        self.promote_alias(alias)
+                    return alias
+
+        # No reuse is possible, so we need a new alias.
+        alias, _ = self.table_alias(table, True)
+        if not lhs:
+            # Not all tables need to be joined to anything. No join type
+            # means the later columns are ignored.
+            join_type = None
+        elif promote or outer_if_first:
+            join_type = self.LOUTER
+        else:
+            join_type = self.INNER
+        join = (table, alias, join_type, lhs, lhs_col, col, nullable)
+        self.alias_map[alias] = join
+        if t_ident in self.join_map:
+            self.join_map[t_ident] += (alias,)
+        else:
+            self.join_map[t_ident] = (alias,)
+        self.rev_join_map[alias] = t_ident
+        return alias
+
+    def fill_related_selections(self, opts=None, root_alias=None, cur_depth=1,
+            used=None, requested=None, restricted=None, nullable=None,
+            dupe_set=None):
+        """
+        Fill in the information needed for a select_related query. The current
+        depth is measured as the number of connections away from the root model
+        (for example, cur_depth=1 means we are looking at models with direct
+        connections to the root model).
+        """
+        if not restricted and self.max_depth and cur_depth > self.max_depth:
+            # We've recursed far enough; bail out.
+            return
+
+        if not opts:
+            opts = self.get_meta()
+            root_alias = self.get_initial_alias()
+            self.related_select_cols = []
+            self.related_select_fields = []
+        if not used:
+            used = set()
+        if dupe_set is None:
+            dupe_set = set()
+        orig_dupe_set = dupe_set
+        orig_used = used
+
+        # Setup for the case when only particular related fields should be
+        # included in the related selection.
+        if requested is None and restricted is not False:
+            if isinstance(self.select_related, dict):
+                requested = self.select_related
+                restricted = True
+            else:
+                restricted = False
+
+        for f, model in opts.get_fields_with_model():
+            if not select_related_descend(f, restricted, requested):
+                continue
+            dupe_set = orig_dupe_set.copy()
+            used = orig_used.copy()
+            table = f.rel.to._meta.db_table
+            if nullable or f.null:
+                promote = True
+            else:
+                promote = False
+            if model:
+                int_opts = opts
+                alias = root_alias
+                for int_model in opts.get_base_chain(model):
+                    lhs_col = int_opts.parents[int_model].column
+                    dedupe = lhs_col in opts.duplicate_targets
+                    if dedupe:
+                        used.update(self.dupe_avoidance.get(id(opts), lhs_col),
+                                ())
+                        dupe_set.add((opts, lhs_col))
+                    int_opts = int_model._meta
+                    alias = self.join((alias, int_opts.db_table, lhs_col,
+                            int_opts.pk.column), exclusions=used,
+                            promote=promote)
+                    for (dupe_opts, dupe_col) in dupe_set:
+                        self.update_dupe_avoidance(dupe_opts, dupe_col, alias)
+            else:
+                alias = root_alias
+
+            dedupe = f.column in opts.duplicate_targets
+            if dupe_set or dedupe:
+                used.update(self.dupe_avoidance.get((id(opts), f.column), ()))
+                if dedupe:
+                    dupe_set.add((opts, f.column))
+
+            alias = self.join((alias, table, f.column,
+                    f.rel.get_related_field().column), exclusions=used,
+                    promote=promote)
+            used.add(alias)
+            self.related_select_cols.extend(self.get_default_columns(
+                start_alias=alias, opts=f.rel.to._meta, as_pairs=True)[0])
+            self.related_select_fields.extend(f.rel.to._meta.fields)
+            if restricted:
+                next = requested.get(f.name, {})
+            else:
+                next = False
+            if f.null is not None:
+                new_nullable = f.null
+            else:
+                new_nullable = None
+            for dupe_opts, dupe_col in dupe_set:
+                self.update_dupe_avoidance(dupe_opts, dupe_col, alias)
+            self.fill_related_selections(f.rel.to._meta, alias, cur_depth + 1,
+                    used, next, restricted, new_nullable, dupe_set)
+
+    def add_filter(self, filter_expr, connector=AND, negate=False, trim=False,
+            can_reuse=None):
+        """
+        Add a single filter to the query. The 'filter_expr' is a pair:
+        (filter_string, value). E.g. ('name__contains', 'fred')
+
+        If 'negate' is True, this is an exclude() filter. It's important to
+        note that this method does not negate anything in the where-clause
+        object when inserting the filter constraints. This is because negated
+        filters often require multiple calls to add_filter() and the negation
+        should only happen once. So the caller is responsible for this (the
+        caller will normally be add_q(), so that as an example).
+
+        If 'trim' is True, we automatically trim the final join group (used
+        internally when constructing nested queries).
+
+        If 'can_reuse' is a set, we are processing a component of a
+        multi-component filter (e.g. filter(Q1, Q2)). In this case, 'can_reuse'
+        will be a set of table aliases that can be reused in this filter, even
+        if we would otherwise force the creation of new aliases for a join
+        (needed for nested Q-filters). The set is updated by this method.
+        """
+        arg, value = filter_expr
+        parts = arg.split(LOOKUP_SEP)
+        if not parts:
+            raise FieldError("Cannot parse keyword query %r" % arg)
+
+        # Work out the lookup type and remove it from 'parts', if necessary.
+        if len(parts) == 1 or parts[-1] not in self.query_terms:
+            lookup_type = 'exact'
+        else:
+            lookup_type = parts.pop()
+
+        # Interpret '__exact=None' as the sql 'is NULL'; otherwise, reject all
+        # uses of None as a query value.
+        if value is None:
+            if lookup_type != 'exact':
+                raise ValueError("Cannot use None as a query value")
+            lookup_type = 'isnull'
+            value = True
+        elif callable(value):
+            value = value()
+
+        opts = self.get_meta()
+        alias = self.get_initial_alias()
+        allow_many = trim or not negate
+
+        try:
+            field, target, opts, join_list, last = self.setup_joins(parts, opts,
+                    alias, True, allow_many, can_reuse=can_reuse)
+        except MultiJoin, e:
+            self.split_exclude(filter_expr, LOOKUP_SEP.join(parts[:e.level]))
+            return
+        final = len(join_list)
+        penultimate = last.pop()
+        if penultimate == final:
+            penultimate = last.pop()
+        if trim and len(join_list) > 1:
+            extra = join_list[penultimate:]
+            join_list = join_list[:penultimate]
+            final = penultimate
+            penultimate = last.pop()
+            col = self.alias_map[extra[0]][LHS_JOIN_COL]
+            for alias in extra:
+                self.unref_alias(alias)
+        else:
+            col = target.column
+        alias = join_list[-1]
+
+        while final > 1:
+            # An optimization: if the final join is against the same column as
+            # we are comparing against, we can go back one step in the join
+            # chain and compare against the lhs of the join instead (and then
+            # repeat the optimization). The result, potentially, involves less
+            # table joins.
+            join = self.alias_map[alias]
+            if col != join[RHS_JOIN_COL]:
+                break
+            self.unref_alias(alias)
+            alias = join[LHS_ALIAS]
+            col = join[LHS_JOIN_COL]
+            join_list = join_list[:-1]
+            final -= 1
+            if final == penultimate:
+                penultimate = last.pop()
+
+        if (lookup_type == 'isnull' and value is True and not negate and
+                final > 1):
+            # If the comparison is against NULL, we need to use a left outer
+            # join when connecting to the previous model. We make that
+            # adjustment here. We don't do this unless needed as it's less
+            # efficient at the database level.
+            self.promote_alias(join_list[penultimate])
+
+        if connector == OR:
+            # Some joins may need to be promoted when adding a new filter to a
+            # disjunction. We walk the list of new joins and where it diverges
+            # from any previous joins (ref count is 1 in the table list), we
+            # make the new additions (and any existing ones not used in the new
+            # join list) an outer join.
+            join_it = iter(join_list)
+            table_it = iter(self.tables)
+            join_it.next(), table_it.next()
+            table_promote = False
+            for join in join_it:
+                table = table_it.next()
+                if join == table and self.alias_refcount[join] > 1:
+                    continue
+                join_promote = self.promote_alias(join)
+                if table != join:
+                    table_promote = self.promote_alias(table)
+                break
+            for join in join_it:
+                if self.promote_alias(join, join_promote):
+                    join_promote = True
+            for table in table_it:
+                # Some of these will have been promoted from the join_list, but
+                # that's harmless.
+                if self.promote_alias(table, table_promote):
+                    table_promote = True
+
+        self.where.add((alias, col, field, lookup_type, value), connector)
+
+        if negate:
+            for alias in join_list:
+                self.promote_alias(alias)
+            if lookup_type != 'isnull':
+                if final > 1:
+                    for alias in join_list:
+                        if self.alias_map[alias][JOIN_TYPE] == self.LOUTER:
+                            j_col = self.alias_map[alias][RHS_JOIN_COL]
+                            entry = self.where_class()
+                            entry.add((alias, j_col, None, 'isnull', True), AND)
+                            entry.negate()
+                            self.where.add(entry, AND)
+                            break
+                elif not (lookup_type == 'in' and not value) and field.null:
+                    # Leaky abstraction artifact: We have to specifically
+                    # exclude the "foo__in=[]" case from this handling, because
+                    # it's short-circuited in the Where class.
+                    entry = self.where_class()
+                    entry.add((alias, col, None, 'isnull', True), AND)
+                    entry.negate()
+                    self.where.add(entry, AND)
+
+        if can_reuse is not None:
+            can_reuse.update(join_list)
+
+    def add_q(self, q_object, used_aliases=None):
+        """
+        Adds a Q-object to the current filter.
+
+        Can also be used to add anything that has an 'add_to_query()' method.
+        """
+        if used_aliases is None:
+            used_aliases = self.used_aliases
+        if hasattr(q_object, 'add_to_query'):
+            # Complex custom objects are responsible for adding themselves.
+            q_object.add_to_query(self, used_aliases)
+        else:
+            if self.where and q_object.connector != AND and len(q_object) > 1:
+                self.where.start_subtree(AND)
+                subtree = True
+            else:
+                subtree = False
+            connector = AND
+            for child in q_object.children:
+                if isinstance(child, Node):
+                    self.where.start_subtree(connector)
+                    self.add_q(child, used_aliases)
+                    self.where.end_subtree()
+                else:
+                    self.add_filter(child, connector, q_object.negated,
+                            can_reuse=used_aliases)
+                connector = q_object.connector
+            if q_object.negated:
+                self.where.negate()
+            if subtree:
+                self.where.end_subtree()
+        if self.filter_is_sticky:
+            self.used_aliases = used_aliases
+
+    def setup_joins(self, names, opts, alias, dupe_multis, allow_many=True,
+            allow_explicit_fk=False, can_reuse=None):
+        """
+        Compute the necessary table joins for the passage through the fields
+        given in 'names'. 'opts' is the Options class for the current model
+        (which gives the table we are joining to), 'alias' is the alias for the
+        table we are joining to. If dupe_multis is True, any many-to-many or
+        many-to-one joins will always create a new alias (necessary for
+        disjunctive filters). If can_reuse is not None, it's a list of aliases
+        that can be reused in these joins (nothing else can be reused in this
+        case).
+
+        Returns the final field involved in the join, the target database
+        column (used for any 'where' constraint), the final 'opts' value and the
+        list of tables joined.
+        """
+        joins = [alias]
+        last = [0]
+        dupe_set = set()
+        exclusions = set()
+        for pos, name in enumerate(names):
+            try:
+                exclusions.add(int_alias)
+            except NameError:
+                pass
+            exclusions.add(alias)
+            last.append(len(joins))
+            if name == 'pk':
+                name = opts.pk.name
+
+            try:
+                field, model, direct, m2m = opts.get_field_by_name(name)
+            except FieldDoesNotExist:
+                for f in opts.fields:
+                    if allow_explicit_fk and name == f.attname:
+                        # XXX: A hack to allow foo_id to work in values() for
+                        # backwards compatibility purposes. If we dropped that
+                        # feature, this could be removed.
+                        field, model, direct, m2m = opts.get_field_by_name(f.name)
+                        break
+                else:
+                    names = opts.get_all_field_names()
+                    raise FieldError("Cannot resolve keyword %r into field. "
+                            "Choices are: %s" % (name, ", ".join(names)))
+
+            if not allow_many and (m2m or not direct):
+                for alias in joins:
+                    self.unref_alias(alias)
+                raise MultiJoin(pos + 1)
+            if model:
+                # The field lives on a base class of the current model.
+                for int_model in opts.get_base_chain(model):
+                    lhs_col = opts.parents[int_model].column
+                    dedupe = lhs_col in opts.duplicate_targets
+                    if dedupe:
+                        exclusions.update(self.dupe_avoidance.get(
+                                (id(opts), lhs_col), ()))
+                        dupe_set.add((opts, lhs_col))
+                    opts = int_model._meta
+                    alias = self.join((alias, opts.db_table, lhs_col,
+                            opts.pk.column), exclusions=exclusions)
+                    joins.append(alias)
+                    exclusions.add(alias)
+                    for (dupe_opts, dupe_col) in dupe_set:
+                        self.update_dupe_avoidance(dupe_opts, dupe_col, alias)
+            cached_data = opts._join_cache.get(name)
+            orig_opts = opts
+            dupe_col = direct and field.column or field.field.column
+            dedupe = dupe_col in opts.duplicate_targets
+            if dupe_set or dedupe:
+                if dedupe:
+                    dupe_set.add((opts, dupe_col))
+                exclusions.update(self.dupe_avoidance.get((id(opts), dupe_col),
+                        ()))
+
+            if direct:
+                if m2m:
+                    # Many-to-many field defined on the current model.
+                    if cached_data:
+                        (table1, from_col1, to_col1, table2, from_col2,
+                                to_col2, opts, target) = cached_data
+                    else:
+                        table1 = field.m2m_db_table()
+                        from_col1 = opts.pk.column
+                        to_col1 = field.m2m_column_name()
+                        opts = field.rel.to._meta
+                        table2 = opts.db_table
+                        from_col2 = field.m2m_reverse_name()
+                        to_col2 = opts.pk.column
+                        target = opts.pk
+                        orig_opts._join_cache[name] = (table1, from_col1,
+                                to_col1, table2, from_col2, to_col2, opts,
+                                target)
+
+                    int_alias = self.join((alias, table1, from_col1, to_col1),
+                            dupe_multis, exclusions, nullable=True,
+                            reuse=can_reuse)
+                    alias = self.join((int_alias, table2, from_col2, to_col2),
+                            dupe_multis, exclusions, nullable=True,
+                            reuse=can_reuse)
+                    joins.extend([int_alias, alias])
+                elif field.rel:
+                    # One-to-one or many-to-one field
+                    if cached_data:
+                        (table, from_col, to_col, opts, target) = cached_data
+                    else:
+                        opts = field.rel.to._meta
+                        target = field.rel.get_related_field()
+                        table = opts.db_table
+                        from_col = field.column
+                        to_col = target.column
+                        orig_opts._join_cache[name] = (table, from_col, to_col,
+                                opts, target)
+
+                    alias = self.join((alias, table, from_col, to_col),
+                            exclusions=exclusions, nullable=field.null)
+                    joins.append(alias)
+                else:
+                    # Non-relation fields.
+                    target = field
+                    break
+            else:
+                orig_field = field
+                field = field.field
+                if m2m:
+                    # Many-to-many field defined on the target model.
+                    if cached_data:
+                        (table1, from_col1, to_col1, table2, from_col2,
+                                to_col2, opts, target) = cached_data
+                    else:
+                        table1 = field.m2m_db_table()
+                        from_col1 = opts.pk.column
+                        to_col1 = field.m2m_reverse_name()
+                        opts = orig_field.opts
+                        table2 = opts.db_table
+                        from_col2 = field.m2m_column_name()
+                        to_col2 = opts.pk.column
+                        target = opts.pk
+                        orig_opts._join_cache[name] = (table1, from_col1,
+                                to_col1, table2, from_col2, to_col2, opts,
+                                target)
+
+                    int_alias = self.join((alias, table1, from_col1, to_col1),
+                            dupe_multis, exclusions, nullable=True,
+                            reuse=can_reuse)
+                    alias = self.join((int_alias, table2, from_col2, to_col2),
+                            dupe_multis, exclusions, nullable=True,
+                            reuse=can_reuse)
+                    joins.extend([int_alias, alias])
+                else:
+                    # One-to-many field (ForeignKey defined on the target model)
+                    if cached_data:
+                        (table, from_col, to_col, opts, target) = cached_data
+                    else:
+                        local_field = opts.get_field_by_name(
+                                field.rel.field_name)[0]
+                        opts = orig_field.opts
+                        table = opts.db_table
+                        from_col = local_field.column
+                        to_col = field.column
+                        target = opts.pk
+                        orig_opts._join_cache[name] = (table, from_col, to_col,
+                                opts, target)
+
+                    alias = self.join((alias, table, from_col, to_col),
+                            dupe_multis, exclusions, nullable=True,
+                            reuse=can_reuse)
+                    joins.append(alias)
+
+            for (dupe_opts, dupe_col) in dupe_set:
+                try:
+                    self.update_dupe_avoidance(dupe_opts, dupe_col, int_alias)
+                except NameError:
+                    self.update_dupe_avoidance(dupe_opts, dupe_col, alias)
+
+        if pos != len(names) - 1:
+            raise FieldError("Join on field %r not permitted." % name)
+
+        return field, target, opts, joins, last
+
+    def update_dupe_avoidance(self, opts, col, alias):
+        """
+        For a column that is one of multiple pointing to the same table, update
+        the internal data structures to note that this alias shouldn't be used
+        for those other columns.
+        """
+        ident = id(opts)
+        for name in opts.duplicate_targets[col]:
+            try:
+                self.dupe_avoidance[ident, name].add(alias)
+            except KeyError:
+                self.dupe_avoidance[ident, name] = set([alias])
+
+    def split_exclude(self, filter_expr, prefix):
+        """
+        When doing an exclude against any kind of N-to-many relation, we need
+        to use a subquery. This method constructs the nested query, given the
+        original exclude filter (filter_expr) and the portion up to the first
+        N-to-many relation field.
+        """
+        query = Query(self.model, self.connection)
+        query.add_filter(filter_expr)
+        query.set_start(prefix)
+        query.clear_ordering(True)
+        self.add_filter(('%s__in' % prefix, query), negate=True, trim=True)
+
+    def set_limits(self, low=None, high=None):
+        """
+        Adjusts the limits on the rows retrieved. We use low/high to set these,
+        as it makes it more Pythonic to read and write. When the SQL query is
+        created, they are converted to the appropriate offset and limit values.
+
+        Any limits passed in here are applied relative to the existing
+        constraints. So low is added to the current low value and both will be
+        clamped to any existing high value.
+        """
+        if high is not None:
+            if self.high_mark:
+                self.high_mark = min(self.high_mark, self.low_mark + high)
+            else:
+                self.high_mark = self.low_mark + high
+        if low is not None:
+            if self.high_mark:
+                self.low_mark = min(self.high_mark, self.low_mark + low)
+            else:
+                self.low_mark = self.low_mark + low
+
+    def clear_limits(self):
+        """
+        Clears any existing limits.
+        """
+        self.low_mark, self.high_mark = 0, None
+
+    def can_filter(self):
+        """
+        Returns True if adding filters to this instance is still possible.
+
+        Typically, this means no limits or offsets have been put on the results.
+        """
+        return not (self.low_mark or self.high_mark)
+
+    def add_fields(self, field_names, allow_m2m=True):
+        """
+        Adds the given (model) fields to the select set. The field names are
+        added in the order specified.
+        """
+        alias = self.get_initial_alias()
+        opts = self.get_meta()
+        try:
+            for name in field_names:
+                field, target, u2, joins, u3 = self.setup_joins(
+                        name.split(LOOKUP_SEP), opts, alias, False, allow_m2m,
+                        True)
+                final_alias = joins[-1]
+                col = target.column
+                if len(joins) > 1:
+                    join = self.alias_map[final_alias]
+                    if col == join[RHS_JOIN_COL]:
+                        self.unref_alias(final_alias)
+                        final_alias = join[LHS_ALIAS]
+                        col = join[LHS_JOIN_COL]
+                        joins = joins[:-1]
+                promote = False
+                for join in joins[1:]:
+                    # Only nullable aliases are promoted, so we don't end up
+                    # doing unnecessary left outer joins here.
+                    if self.promote_alias(join, promote):
+                        promote = True
+                self.select.append((final_alias, col))
+                self.select_fields.append(field)
+        except MultiJoin:
+            raise FieldError("Invalid field name: '%s'" % name)
+        except FieldError:
+            names = opts.get_all_field_names() + self.extra_select.keys()
+            names.sort()
+            raise FieldError("Cannot resolve keyword %r into field. "
+                    "Choices are: %s" % (name, ", ".join(names)))
+
+    def add_ordering(self, *ordering):
+        """
+        Adds items from the 'ordering' sequence to the query's "order by"
+        clause. These items are either field names (not column names) --
+        possibly with a direction prefix ('-' or '?') -- or ordinals,
+        corresponding to column positions in the 'select' list.
+
+        If 'ordering' is empty, all ordering is cleared from the query.
+        """
+        errors = []
+        for item in ordering:
+            if not ORDER_PATTERN.match(item):
+                errors.append(item)
+        if errors:
+            raise FieldError('Invalid order_by arguments: %s' % errors)
+        if ordering:
+            self.order_by.extend(ordering)
+        else:
+            self.default_ordering = False
+
+    def clear_ordering(self, force_empty=False):
+        """
+        Removes any ordering settings. If 'force_empty' is True, there will be
+        no ordering in the resulting query (not even the model's default).
+        """
+        self.order_by = []
+        self.extra_order_by = ()
+        if force_empty:
+            self.default_ordering = False
+
+    def add_count_column(self):
+        """
+        Converts the query to do count(...) or count(distinct(pk)) in order to
+        get its size.
+        """
+        # TODO: When group_by support is added, this needs to be adjusted so
+        # that it doesn't totally overwrite the select list.
+        if not self.distinct:
+            if not self.select:
+                select = Count()
+            else:
+                assert len(self.select) == 1, \
+                        "Cannot add count col with multiple cols in 'select': %r" % self.select
+                select = Count(self.select[0])
+        else:
+            opts = self.model._meta
+            if not self.select:
+                select = Count((self.join((None, opts.db_table, None, None)),
+                        opts.pk.column), True)
+            else:
+                # Because of SQL portability issues, multi-column, distinct
+                # counts need a sub-query -- see get_count() for details.
+                assert len(self.select) == 1, \
+                        "Cannot add count col with multiple cols in 'select'."
+                select = Count(self.select[0], True)
+
+            # Distinct handling is done in Count(), so don't do it at this
+            # level.
+            self.distinct = False
+        self.select = [select]
+        self.select_fields = [None]
+        self.extra_select = {}
+
+    def add_select_related(self, fields):
+        """
+        Sets up the select_related data structure so that we only select
+        certain related models (as opposed to all models, when
+        self.select_related=True).
+        """
+        field_dict = {}
+        for field in fields:
+            d = field_dict
+            for part in field.split(LOOKUP_SEP):
+                d = d.setdefault(part, {})
+        self.select_related = field_dict
+        self.related_select_cols = []
+        self.related_select_fields = []
+
+    def add_extra(self, select, select_params, where, params, tables, order_by):
+        """
+        Adds data to the various extra_* attributes for user-created additions
+        to the query.
+        """
+        if select:
+            # We need to pair any placeholder markers in the 'select'
+            # dictionary with their parameters in 'select_params' so that
+            # subsequent updates to the select dictionary also adjust the
+            # parameters appropriately.
+            select_pairs = SortedDict()
+            if select_params:
+                param_iter = iter(select_params)
+            else:
+                param_iter = iter([])
+            for name, entry in select.items():
+                entry = force_unicode(entry)
+                entry_params = []
+                pos = entry.find("%s")
+                while pos != -1:
+                    entry_params.append(param_iter.next())
+                    pos = entry.find("%s", pos + 2)
+                select_pairs[name] = (entry, entry_params)
+            # This is order preserving, since self.extra_select is a SortedDict.
+            self.extra_select.update(select_pairs)
+        if where:
+            self.extra_where += tuple(where)
+        if params:
+            self.extra_params += tuple(params)
+        if tables:
+            self.extra_tables += tuple(tables)
+        if order_by:
+            self.extra_order_by = order_by
+
+    def trim_extra_select(self, names):
+        """
+        Removes any aliases in the extra_select dictionary that aren't in
+        'names'.
+
+        This is needed if we are selecting certain values that don't incldue
+        all of the extra_select names.
+        """
+        for key in set(self.extra_select).difference(set(names)):
+            del self.extra_select[key]
+
+    def set_start(self, start):
+        """
+        Sets the table from which to start joining. The start position is
+        specified by the related attribute from the base model. This will
+        automatically set to the select column to be the column linked from the
+        previous table.
+
+        This method is primarily for internal use and the error checking isn't
+        as friendly as add_filter(). Mostly useful for querying directly
+        against the join table of many-to-many relation in a subquery.
+        """
+        opts = self.model._meta
+        alias = self.get_initial_alias()
+        field, col, opts, joins, last = self.setup_joins(
+                start.split(LOOKUP_SEP), opts, alias, False)
+        alias = joins[last[-1]]
+        self.select = [(alias, self.alias_map[alias][RHS_JOIN_COL])]
+        self.select_fields = [field]
+        self.start_meta = opts
+
+        # The call to setup_joins add an extra reference to everything in
+        # joins. So we need to unref everything once, and everything prior to
+        # the final join a second time.
+        for alias in joins:
+            self.unref_alias(alias)
+        for alias in joins[:last[-1]]:
+            self.unref_alias(alias)
+
+    def execute_sql(self, result_type=MULTI):
+        """
+        Run the query against the database and returns the result(s). The
+        return value is a single data item if result_type is SINGLE, or an
+        iterator over the results if the result_type is MULTI.
+
+        result_type is either MULTI (use fetchmany() to retrieve all rows),
+        SINGLE (only retrieve a single row), or None (no results expected, but
+        the cursor is returned, since it's used by subclasses such as
+        InsertQuery).
+        """
+        try:
+            sql, params = self.as_sql()
+            if not sql:
+                raise EmptyResultSet
+        except EmptyResultSet:
+            if result_type == MULTI:
+                return empty_iter()
+            else:
+                return
+
+        cursor = self.connection.cursor()
+        cursor.execute(sql, params)
+
+        if not result_type:
+            return cursor
+        if result_type == SINGLE:
+            if self.ordering_aliases:
+                return cursor.fetchone()[:-len(results.ordering_aliases)]
+            return cursor.fetchone()
+
+        # The MULTI case.
+        if self.ordering_aliases:
+            result = order_modified_iter(cursor, len(self.ordering_aliases),
+                    self.connection.features.empty_fetchmany_value)
+        else:
+            result = iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)),
+                    self.connection.features.empty_fetchmany_value)
+        if not self.connection.features.can_use_chunked_reads:
+            # If we are using non-chunked reads, we return the same data
+            # structure as normally, but ensure it is all read into memory
+            # before going any further.
+            return list(result)
+        return result
+
+# Use the backend's custom Query class if it defines one. Otherwise, use the
+# default.
+if connection.features.uses_custom_query_class:
+    Query = connection.ops.query_class(Query)
+
+def get_order_dir(field, default='ASC'):
+    """
+    Returns the field name and direction for an order specification. For
+    example, '-foo' is returned as ('foo', 'DESC').
+
+    The 'default' param is used to indicate which way no prefix (or a '+'
+    prefix) should sort. The '-' prefix always sorts the opposite way.
+    """
+    dirn = ORDER_DIR[default]
+    if field[0] == '-':
+        return field[1:], dirn[1]
+    return field, dirn[0]
+
+def empty_iter():
+    """
+    Returns an iterator containing no results.
+    """
+    yield iter([]).next()
+
+def order_modified_iter(cursor, trim, sentinel):
+    """
+    Yields blocks of rows from a cursor. We use this iterator in the special
+    case when extra output columns have been added to support ordering
+    requirements. We must trim those extra columns before anything else can use
+    the results, since they're only needed to make the SQL valid.
+    """
+    for rows in iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)),
+            sentinel):
+        yield [r[:-trim] for r in rows]
+
+def setup_join_cache(sender, **kwargs):
+    """
+    The information needed to join between model fields is something that is
+    invariant over the life of the model, so we cache it in the model's Options
+    class, rather than recomputing it all the time.
+
+    This method initialises the (empty) cache when the model is created.
+    """
+    sender._meta._join_cache = {}
+
+signals.class_prepared.connect(setup_join_cache)
+
diff --git a/webapp/django/db/models/sql/subqueries.py b/webapp/django/db/models/sql/subqueries.py
new file mode 100644
index 0000000..cea2a58
--- /dev/null
+++ b/webapp/django/db/models/sql/subqueries.py
@@ -0,0 +1,411 @@
+"""
+Query subclasses which provide extra functionality beyond simple data retrieval.
+"""
+
+from django.core.exceptions import FieldError
+from django.db.models.sql.constants import *
+from django.db.models.sql.datastructures import Date
+from django.db.models.sql.query import Query
+from django.db.models.sql.where import AND
+
+__all__ = ['DeleteQuery', 'UpdateQuery', 'InsertQuery', 'DateQuery',
+        'CountQuery']
+
+class DeleteQuery(Query):
+    """
+    Delete queries are done through this class, since they are more constrained
+    than general queries.
+    """
+    def as_sql(self):
+        """
+        Creates the SQL for this query. Returns the SQL string and list of
+        parameters.
+        """
+        assert len(self.tables) == 1, \
+                "Can only delete from one table at a time."
+        result = ['DELETE FROM %s' % self.quote_name_unless_alias(self.tables[0])]
+        where, params = self.where.as_sql()
+        result.append('WHERE %s' % where)
+        return ' '.join(result), tuple(params)
+
+    def do_query(self, table, where):
+        self.tables = [table]
+        self.where = where
+        self.execute_sql(None)
+
+    def delete_batch_related(self, pk_list):
+        """
+        Set up and execute delete queries for all the objects related to the
+        primary key values in pk_list. To delete the objects themselves, use
+        the delete_batch() method.
+
+        More than one physical query may be executed if there are a
+        lot of values in pk_list.
+        """
+        from django.contrib.contenttypes import generic
+        cls = self.model
+        for related in cls._meta.get_all_related_many_to_many_objects():
+            if not isinstance(related.field, generic.GenericRelation):
+                for offset in range(0, len(pk_list), GET_ITERATOR_CHUNK_SIZE):
+                    where = self.where_class()
+                    where.add((None, related.field.m2m_reverse_name(),
+                            related.field, 'in',
+                            pk_list[offset : offset+GET_ITERATOR_CHUNK_SIZE]),
+                            AND)
+                    self.do_query(related.field.m2m_db_table(), where)
+
+        for f in cls._meta.many_to_many:
+            w1 = self.where_class()
+            if isinstance(f, generic.GenericRelation):
+                from django.contrib.contenttypes.models import ContentType
+                field = f.rel.to._meta.get_field(f.content_type_field_name)
+                w1.add((None, field.column, field, 'exact',
+                        ContentType.objects.get_for_model(cls).id), AND)
+            for offset in range(0, len(pk_list), GET_ITERATOR_CHUNK_SIZE):
+                where = self.where_class()
+                where.add((None, f.m2m_column_name(), f, 'in',
+                        pk_list[offset : offset + GET_ITERATOR_CHUNK_SIZE]),
+                        AND)
+                if w1:
+                    where.add(w1, AND)
+                self.do_query(f.m2m_db_table(), where)
+
+    def delete_batch(self, pk_list):
+        """
+        Set up and execute delete queries for all the objects in pk_list. This
+        should be called after delete_batch_related(), if necessary.
+
+        More than one physical query may be executed if there are a
+        lot of values in pk_list.
+        """
+        for offset in range(0, len(pk_list), GET_ITERATOR_CHUNK_SIZE):
+            where = self.where_class()
+            field = self.model._meta.pk
+            where.add((None, field.column, field, 'in',
+                    pk_list[offset : offset + GET_ITERATOR_CHUNK_SIZE]), AND)
+            self.do_query(self.model._meta.db_table, where)
+
+class UpdateQuery(Query):
+    """
+    Represents an "update" SQL query.
+    """
+    def __init__(self, *args, **kwargs):
+        super(UpdateQuery, self).__init__(*args, **kwargs)
+        self._setup_query()
+
+    def _setup_query(self):
+        """
+        Runs on initialization and after cloning. Any attributes that would
+        normally be set in __init__ should go in here, instead, so that they
+        are also set up after a clone() call.
+        """
+        self.values = []
+        self.related_ids = None
+        if not hasattr(self, 'related_updates'):
+            self.related_updates = {}
+
+    def clone(self, klass=None, **kwargs):
+        return super(UpdateQuery, self).clone(klass,
+                related_updates=self.related_updates.copy, **kwargs)
+
+    def execute_sql(self, result_type=None):
+        """
+        Execute the specified update. Returns the number of rows affected by
+        the primary update query (there could be other updates on related
+        tables, but their rowcounts are not returned).
+        """
+        cursor = super(UpdateQuery, self).execute_sql(result_type)
+        rows = cursor.rowcount
+        del cursor
+        for query in self.get_related_updates():
+            query.execute_sql(result_type)
+        return rows
+
+    def as_sql(self):
+        """
+        Creates the SQL for this query. Returns the SQL string and list of
+        parameters.
+        """
+        self.pre_sql_setup()
+        if not self.values:
+            return '', ()
+        table = self.tables[0]
+        qn = self.quote_name_unless_alias
+        result = ['UPDATE %s' % qn(table)]
+        result.append('SET')
+        values, update_params = [], []
+        for name, val, placeholder in self.values:
+            if val is not None:
+                values.append('%s = %s' % (qn(name), placeholder))
+                update_params.append(val)
+            else:
+                values.append('%s = NULL' % qn(name))
+        result.append(', '.join(values))
+        where, params = self.where.as_sql()
+        if where:
+            result.append('WHERE %s' % where)
+        return ' '.join(result), tuple(update_params + params)
+
+    def pre_sql_setup(self):
+        """
+        If the update depends on results from other tables, we need to do some
+        munging of the "where" conditions to match the format required for
+        (portable) SQL updates. That is done here.
+
+        Further, if we are going to be running multiple updates, we pull out
+        the id values to update at this point so that they don't change as a
+        result of the progressive updates.
+        """
+        self.select_related = False
+        self.clear_ordering(True)
+        super(UpdateQuery, self).pre_sql_setup()
+        count = self.count_active_tables()
+        if not self.related_updates and count == 1:
+            return
+
+        # We need to use a sub-select in the where clause to filter on things
+        # from other tables.
+        query = self.clone(klass=Query)
+        query.bump_prefix()
+        query.extra_select = {}
+        first_table = query.tables[0]
+        if query.alias_refcount[first_table] == 1:
+            # We can remove one table from the inner query.
+            query.unref_alias(first_table)
+            for i in xrange(1, len(query.tables)):
+                table = query.tables[i]
+                if query.alias_refcount[table]:
+                    break
+            join_info = query.alias_map[table]
+            query.select = [(join_info[RHS_ALIAS], join_info[RHS_JOIN_COL])]
+            must_pre_select = False
+        else:
+            query.select = []
+            query.add_fields([query.model._meta.pk.name])
+            must_pre_select = not self.connection.features.update_can_self_select
+
+        # Now we adjust the current query: reset the where clause and get rid
+        # of all the tables we don't need (since they're in the sub-select).
+        self.where = self.where_class()
+        if self.related_updates or must_pre_select:
+            # Either we're using the idents in multiple update queries (so
+            # don't want them to change), or the db backend doesn't support
+            # selecting from the updating table (e.g. MySQL).
+            idents = []
+            for rows in query.execute_sql(MULTI):
+                idents.extend([r[0] for r in rows])
+            self.add_filter(('pk__in', idents))
+            self.related_ids = idents
+        else:
+            # The fast path. Filters and updates in one query.
+            self.add_filter(('pk__in', query))
+        for alias in self.tables[1:]:
+            self.alias_refcount[alias] = 0
+
+    def clear_related(self, related_field, pk_list):
+        """
+        Set up and execute an update query that clears related entries for the
+        keys in pk_list.
+
+        This is used by the QuerySet.delete_objects() method.
+        """
+        for offset in range(0, len(pk_list), GET_ITERATOR_CHUNK_SIZE):
+            self.where = self.where_class()
+            f = self.model._meta.pk
+            self.where.add((None, f.column, f, 'in',
+                    pk_list[offset : offset + GET_ITERATOR_CHUNK_SIZE]),
+                    AND)
+            self.values = [(related_field.column, None, '%s')]
+            self.execute_sql(None)
+
+    def add_update_values(self, values):
+        """
+        Convert a dictionary of field name to value mappings into an update
+        query. This is the entry point for the public update() method on
+        querysets.
+        """
+        values_seq = []
+        for name, val in values.iteritems():
+            field, model, direct, m2m = self.model._meta.get_field_by_name(name)
+            if not direct or m2m:
+                raise FieldError('Cannot update model field %r (only non-relations and foreign keys permitted).' % field)
+            values_seq.append((field, model, val))
+        return self.add_update_fields(values_seq)
+
+    def add_update_fields(self, values_seq):
+        """
+        Turn a sequence of (field, model, value) triples into an update query.
+        Used by add_update_values() as well as the "fast" update path when
+        saving models.
+        """
+        from django.db.models.base import Model
+        for field, model, val in values_seq:
+            # FIXME: Some sort of db_prep_* is probably more appropriate here.
+            if field.rel and isinstance(val, Model):
+                val = val.pk
+
+            # Getting the placeholder for the field.
+            if hasattr(field, 'get_placeholder'):
+                placeholder = field.get_placeholder(val)
+            else:
+                placeholder = '%s'
+
+            if model:
+                self.add_related_update(model, field.column, val, placeholder)
+            else:
+                self.values.append((field.column, val, placeholder))
+
+    def add_related_update(self, model, column, value, placeholder):
+        """
+        Adds (name, value) to an update query for an ancestor model.
+
+        Updates are coalesced so that we only run one update query per ancestor.
+        """
+        try:
+            self.related_updates[model].append((column, value, placeholder))
+        except KeyError:
+            self.related_updates[model] = [(column, value, placeholder)]
+
+    def get_related_updates(self):
+        """
+        Returns a list of query objects: one for each update required to an
+        ancestor model. Each query will have the same filtering conditions as
+        the current query but will only update a single table.
+        """
+        if not self.related_updates:
+            return []
+        result = []
+        for model, values in self.related_updates.iteritems():
+            query = UpdateQuery(model, self.connection)
+            query.values = values
+            if self.related_ids:
+                query.add_filter(('pk__in', self.related_ids))
+            result.append(query)
+        return result
+
+class InsertQuery(Query):
+    def __init__(self, *args, **kwargs):
+        super(InsertQuery, self).__init__(*args, **kwargs)
+        self.columns = []
+        self.values = []
+        self.params = ()
+
+    def clone(self, klass=None, **kwargs):
+        extras = {'columns': self.columns[:], 'values': self.values[:],
+                'params': self.params}
+        return super(InsertQuery, self).clone(klass, extras)
+
+    def as_sql(self):
+        # We don't need quote_name_unless_alias() here, since these are all
+        # going to be column names (so we can avoid the extra overhead).
+        qn = self.connection.ops.quote_name
+        result = ['INSERT INTO %s' % qn(self.model._meta.db_table)]
+        result.append('(%s)' % ', '.join([qn(c) for c in self.columns]))
+        result.append('VALUES (%s)' % ', '.join(self.values))
+        return ' '.join(result), self.params
+
+    def execute_sql(self, return_id=False):
+        cursor = super(InsertQuery, self).execute_sql(None)
+        if return_id:
+            return self.connection.ops.last_insert_id(cursor,
+                    self.model._meta.db_table, self.model._meta.pk.column)
+
+    def insert_values(self, insert_values, raw_values=False):
+        """
+        Set up the insert query from the 'insert_values' dictionary. The
+        dictionary gives the model field names and their target values.
+
+        If 'raw_values' is True, the values in the 'insert_values' dictionary
+        are inserted directly into the query, rather than passed as SQL
+        parameters. This provides a way to insert NULL and DEFAULT keywords
+        into the query, for example.
+        """
+        placeholders, values = [], []
+        for field, val in insert_values:
+            if hasattr(field, 'get_placeholder'):
+                # Some fields (e.g. geo fields) need special munging before
+                # they can be inserted.
+                placeholders.append(field.get_placeholder(val))
+            else:
+                placeholders.append('%s')
+
+            self.columns.append(field.column)
+            values.append(val)
+        if raw_values:
+            self.values.extend(values)
+        else:
+            self.params += tuple(values)
+            self.values.extend(placeholders)
+
+class DateQuery(Query):
+    """
+    A DateQuery is a normal query, except that it specifically selects a single
+    date field. This requires some special handling when converting the results
+    back to Python objects, so we put it in a separate class.
+    """
+    def __getstate__(self):
+        """
+        Special DateQuery-specific pickle handling.
+        """
+        for elt in self.select:
+            if isinstance(elt, Date):
+                # Eliminate a method reference that can't be pickled. The
+                # __setstate__ method restores this.
+                elt.date_sql_func = None
+        return super(DateQuery, self).__getstate__()
+
+    def __setstate__(self, obj_dict):
+        super(DateQuery, self).__setstate__(obj_dict)
+        for elt in self.select:
+            if isinstance(elt, Date):
+                self.date_sql_func = self.connection.ops.date_trunc_sql
+
+    def results_iter(self):
+        """
+        Returns an iterator over the results from executing this query.
+        """
+        resolve_columns = hasattr(self, 'resolve_columns')
+        if resolve_columns:
+            from django.db.models.fields import DateTimeField
+            fields = [DateTimeField()]
+        else:
+            from django.db.backends.util import typecast_timestamp
+            needs_string_cast = self.connection.features.needs_datetime_string_cast
+
+        offset = len(self.extra_select)
+        for rows in self.execute_sql(MULTI):
+            for row in rows:
+                date = row[offset]
+                if resolve_columns:
+                    date = self.resolve_columns([date], fields)[0]
+                elif needs_string_cast:
+                    date = typecast_timestamp(str(date))
+                yield date
+
+    def add_date_select(self, field, lookup_type, order='ASC'):
+        """
+        Converts the query into a date extraction query.
+        """
+        result = self.setup_joins([field.name], self.get_meta(),
+                self.get_initial_alias(), False)
+        alias = result[3][-1]
+        select = Date((alias, field.column), lookup_type,
+                self.connection.ops.date_trunc_sql)
+        self.select = [select]
+        self.select_fields = [None]
+        self.select_related = False # See #7097.
+        self.distinct = True
+        self.order_by = order == 'ASC' and [1] or [-1]
+
+class CountQuery(Query):
+    """
+    A CountQuery knows how to take a normal query which would select over
+    multiple distinct columns and turn it into SQL that can be used on a
+    variety of backends (it requires a select in the FROM clause).
+    """
+    def get_from_clause(self):
+        result, params = self._query.as_sql()
+        return ['(%s) A1' % result], params
+
+    def get_ordering(self):
+        return ()
diff --git a/webapp/django/db/models/sql/where.py b/webapp/django/db/models/sql/where.py
new file mode 100644
index 0000000..662d99a
--- /dev/null
+++ b/webapp/django/db/models/sql/where.py
@@ -0,0 +1,213 @@
+"""
+Code to manage the creation and SQL rendering of 'where' constraints.
+"""
+import datetime
+
+from django.utils import tree
+from django.db import connection
+from django.db.models.fields import Field
+from django.db.models.query_utils import QueryWrapper
+from datastructures import EmptyResultSet, FullResultSet
+
+# Connection types
+AND = 'AND'
+OR = 'OR'
+
+class WhereNode(tree.Node):
+    """
+    Used to represent the SQL where-clause.
+
+    The class is tied to the Query class that created it (in order to create
+    the correct SQL).
+
+    The children in this tree are usually either Q-like objects or lists of
+    [table_alias, field_name, db_type, lookup_type, value_annotation,
+    params]. However, a child could also be any class with as_sql() and
+    relabel_aliases() methods.
+    """
+    default = AND
+
+    def add(self, data, connector):
+        """
+        Add a node to the where-tree. If the data is a list or tuple, it is
+        expected to be of the form (alias, col_name, field_obj, lookup_type,
+        value), which is then slightly munged before being stored (to avoid
+        storing any reference to field objects). Otherwise, the 'data' is
+        stored unchanged and can be anything with an 'as_sql()' method.
+        """
+        # Because of circular imports, we need to import this here.
+        from django.db.models.base import ObjectDoesNotExist
+
+        if not isinstance(data, (list, tuple)):
+            super(WhereNode, self).add(data, connector)
+            return
+
+        alias, col, field, lookup_type, value = data
+        try:
+            if field:
+                params = field.get_db_prep_lookup(lookup_type, value)
+                db_type = field.db_type()
+            else:
+                # This is possible when we add a comparison to NULL sometimes
+                # (we don't really need to waste time looking up the associated
+                # field object).
+                params = Field().get_db_prep_lookup(lookup_type, value)
+                db_type = None
+        except ObjectDoesNotExist:
+            # This can happen when trying to insert a reference to a null pk.
+            # We break out of the normal path and indicate there's nothing to
+            # match.
+            super(WhereNode, self).add(NothingNode(), connector)
+            return
+        if isinstance(value, datetime.datetime):
+            annotation = datetime.datetime
+        else:
+            annotation = bool(value)
+        super(WhereNode, self).add((alias, col, db_type, lookup_type,
+                annotation, params), connector)
+
+    def as_sql(self, qn=None):
+        """
+        Returns the SQL version of the where clause and the value to be
+        substituted in. Returns None, None if this node is empty.
+
+        If 'node' is provided, that is the root of the SQL generation
+        (generally not needed except by the internal implementation for
+        recursion).
+        """
+        if not qn:
+            qn = connection.ops.quote_name
+        if not self.children:
+            return None, []
+        result = []
+        result_params = []
+        empty = True
+        for child in self.children:
+            try:
+                if hasattr(child, 'as_sql'):
+                    sql, params = child.as_sql(qn=qn)
+                else:
+                    # A leaf node in the tree.
+                    sql, params = self.make_atom(child, qn)
+            except EmptyResultSet:
+                if self.connector == AND and not self.negated:
+                    # We can bail out early in this particular case (only).
+                    raise
+                elif self.negated:
+                    empty = False
+                continue
+            except FullResultSet:
+                if self.connector == OR:
+                    if self.negated:
+                        empty = True
+                        break
+                    # We match everything. No need for any constraints.
+                    return '', []
+                if self.negated:
+                    empty = True
+                continue
+            empty = False
+            if sql:
+                result.append(sql)
+                result_params.extend(params)
+        if empty:
+            raise EmptyResultSet
+
+        conn = ' %s ' % self.connector
+        sql_string = conn.join(result)
+        if sql_string:
+            if self.negated:
+                sql_string = 'NOT (%s)' % sql_string
+            elif len(self.children) != 1:
+                sql_string = '(%s)' % sql_string
+        return sql_string, result_params
+
+    def make_atom(self, child, qn):
+        """
+        Turn a tuple (table_alias, column_name, db_type, lookup_type,
+        value_annot, params) into valid SQL.
+
+        Returns the string for the SQL fragment and the parameters to use for
+        it.
+        """
+        table_alias, name, db_type, lookup_type, value_annot, params = child
+        if table_alias:
+            lhs = '%s.%s' % (qn(table_alias), qn(name))
+        else:
+            lhs = qn(name)
+        field_sql = connection.ops.field_cast_sql(db_type) % lhs
+
+        if value_annot is datetime.datetime:
+            cast_sql = connection.ops.datetime_cast_sql()
+        else:
+            cast_sql = '%s'
+
+        if isinstance(params, QueryWrapper):
+            extra, params = params.data
+        else:
+            extra = ''
+
+        if lookup_type in connection.operators:
+            format = "%s %%s %s" % (connection.ops.lookup_cast(lookup_type),
+                    extra)
+            return (format % (field_sql,
+                    connection.operators[lookup_type] % cast_sql), params)
+
+        if lookup_type == 'in':
+            if not value_annot:
+                raise EmptyResultSet
+            if extra:
+                return ('%s IN %s' % (field_sql, extra), params)
+            return ('%s IN (%s)' % (field_sql, ', '.join(['%s'] * len(params))),
+                    params)
+        elif lookup_type in ('range', 'year'):
+            return ('%s BETWEEN %%s and %%s' % field_sql, params)
+        elif lookup_type in ('month', 'day'):
+            return ('%s = %%s' % connection.ops.date_extract_sql(lookup_type,
+                    field_sql), params)
+        elif lookup_type == 'isnull':
+            return ('%s IS %sNULL' % (field_sql,
+                (not value_annot and 'NOT ' or '')), ())
+        elif lookup_type == 'search':
+            return (connection.ops.fulltext_search_sql(field_sql), params)
+        elif lookup_type in ('regex', 'iregex'):
+            return connection.ops.regex_lookup(lookup_type) % (field_sql, cast_sql), params
+
+        raise TypeError('Invalid lookup_type: %r' % lookup_type)
+
+    def relabel_aliases(self, change_map, node=None):
+        """
+        Relabels the alias values of any children. 'change_map' is a dictionary
+        mapping old (current) alias values to the new values.
+        """
+        if not node:
+            node = self
+        for pos, child in enumerate(node.children):
+            if hasattr(child, 'relabel_aliases'):
+                child.relabel_aliases(change_map)
+            elif isinstance(child, tree.Node):
+                self.relabel_aliases(change_map, child)
+            else:
+                if child[0] in change_map:
+                    node.children[pos] = (change_map[child[0]],) + child[1:]
+
+class EverythingNode(object):
+    """
+    A node that matches everything.
+    """
+    def as_sql(self, qn=None):
+        raise FullResultSet
+
+    def relabel_aliases(self, change_map, node=None):
+        return
+
+class NothingNode(object):
+    """
+    A node that matches nothing.
+    """
+    def as_sql(self, qn=None):
+        raise EmptyResultSet
+
+    def relabel_aliases(self, change_map, node=None):
+        return
+
diff --git a/webapp/django/db/transaction.py b/webapp/django/db/transaction.py
new file mode 100644
index 0000000..506074f
--- /dev/null
+++ b/webapp/django/db/transaction.py
@@ -0,0 +1,267 @@
+"""
+This module implements a transaction manager that can be used to define
+transaction handling in a request or view function. It is used by transaction
+control middleware and decorators.
+
+The transaction manager can be in managed or in auto state. Auto state means the
+system is using a commit-on-save strategy (actually it's more like
+commit-on-change). As soon as the .save() or .delete() (or related) methods are
+called, a commit is made.
+
+Managed transactions don't do those commits, but will need some kind of manual
+or implicit commits or rollbacks.
+"""
+
+try:
+    import thread
+except ImportError:
+    import dummy_thread as thread
+try:
+    from functools import wraps
+except ImportError:
+    from django.utils.functional import wraps  # Python 2.3, 2.4 fallback.
+from django.db import connection
+from django.conf import settings
+
+class TransactionManagementError(Exception):
+    """
+    This exception is thrown when something bad happens with transaction
+    management.
+    """
+    pass
+
+# The states are dictionaries of lists. The key to the dict is the current
+# thread and the list is handled as a stack of values.
+state = {}
+savepoint_state = {}
+
+# The dirty flag is set by *_unless_managed functions to denote that the
+# code under transaction management has changed things to require a
+# database commit.
+dirty = {}
+
+def enter_transaction_management():
+    """
+    Enters transaction management for a running thread. It must be balanced with
+    the appropriate leave_transaction_management call, since the actual state is
+    managed as a stack.
+
+    The state and dirty flag are carried over from the surrounding block or
+    from the settings, if there is no surrounding block (dirty is always false
+    when no current block is running).
+    """
+    thread_ident = thread.get_ident()
+    if thread_ident in state and state[thread_ident]:
+        state[thread_ident].append(state[thread_ident][-1])
+    else:
+        state[thread_ident] = []
+        state[thread_ident].append(settings.TRANSACTIONS_MANAGED)
+    if thread_ident not in dirty:
+        dirty[thread_ident] = False
+
+def leave_transaction_management():
+    """
+    Leaves transaction management for a running thread. A dirty flag is carried
+    over to the surrounding block, as a commit will commit all changes, even
+    those from outside. (Commits are on connection level.)
+    """
+    thread_ident = thread.get_ident()
+    if thread_ident in state and state[thread_ident]:
+        del state[thread_ident][-1]
+    else:
+        raise TransactionManagementError("This code isn't under transaction management")
+    if dirty.get(thread_ident, False):
+        rollback()
+        raise TransactionManagementError("Transaction managed block ended with pending COMMIT/ROLLBACK")
+    dirty[thread_ident] = False
+
+def is_dirty():
+    """
+    Returns True if the current transaction requires a commit for changes to
+    happen.
+    """
+    return dirty.get(thread.get_ident(), False)
+
+def set_dirty():
+    """
+    Sets a dirty flag for the current thread and code streak. This can be used
+    to decide in a managed block of code to decide whether there are open
+    changes waiting for commit.
+    """
+    thread_ident = thread.get_ident()
+    if thread_ident in dirty:
+        dirty[thread_ident] = True
+    else:
+        raise TransactionManagementError("This code isn't under transaction management")
+
+def set_clean():
+    """
+    Resets a dirty flag for the current thread and code streak. This can be used
+    to decide in a managed block of code to decide whether a commit or rollback
+    should happen.
+    """
+    thread_ident = thread.get_ident()
+    if thread_ident in dirty:
+        dirty[thread_ident] = False
+    else:
+        raise TransactionManagementError("This code isn't under transaction management")
+    clean_savepoints()
+
+def clean_savepoints():
+    thread_ident = thread.get_ident()
+    if thread_ident in savepoint_state:
+        del savepoint_state[thread_ident]
+
+def is_managed():
+    """
+    Checks whether the transaction manager is in manual or in auto state.
+    """
+    thread_ident = thread.get_ident()
+    if thread_ident in state:
+        if state[thread_ident]:
+            return state[thread_ident][-1]
+    return settings.TRANSACTIONS_MANAGED
+
+def managed(flag=True):
+    """
+    Puts the transaction manager into a manual state: managed transactions have
+    to be committed explicitly by the user. If you switch off transaction
+    management and there is a pending commit/rollback, the data will be
+    commited.
+    """
+    thread_ident = thread.get_ident()
+    top = state.get(thread_ident, None)
+    if top:
+        top[-1] = flag
+        if not flag and is_dirty():
+            connection._commit()
+            set_clean()
+    else:
+        raise TransactionManagementError("This code isn't under transaction management")
+
+def commit_unless_managed():
+    """
+    Commits changes if the system is not in managed transaction mode.
+    """
+    if not is_managed():
+        connection._commit()
+        clean_savepoints()
+    else:
+        set_dirty()
+
+def rollback_unless_managed():
+    """
+    Rolls back changes if the system is not in managed transaction mode.
+    """
+    if not is_managed():
+        connection._rollback()
+    else:
+        set_dirty()
+
+def commit():
+    """
+    Does the commit itself and resets the dirty flag.
+    """
+    connection._commit()
+    set_clean()
+
+def rollback():
+    """
+    This function does the rollback itself and resets the dirty flag.
+    """
+    connection._rollback()
+    set_clean()
+
+def savepoint():
+    """
+    Creates a savepoint (if supported and required by the backend) inside the
+    current transaction. Returns an identifier for the savepoint that will be
+    used for the subsequent rollback or commit.
+    """
+    thread_ident = thread.get_ident()
+    if thread_ident in savepoint_state:
+        savepoint_state[thread_ident].append(None)
+    else:
+        savepoint_state[thread_ident] = [None]
+    tid = str(thread_ident).replace('-', '')
+    sid = "s%s_x%d" % (tid, len(savepoint_state[thread_ident]))
+    connection._savepoint(sid)
+    return sid
+
+def savepoint_rollback(sid):
+    """
+    Rolls back the most recent savepoint (if one exists). Does nothing if
+    savepoints are not supported.
+    """
+    if thread.get_ident() in savepoint_state:
+        connection._savepoint_rollback(sid)
+
+def savepoint_commit(sid):
+    """
+    Commits the most recent savepoint (if one exists). Does nothing if
+    savepoints are not supported.
+    """
+    if thread.get_ident() in savepoint_state:
+        connection._savepoint_commit(sid)
+
+##############
+# DECORATORS #
+##############
+
+def autocommit(func):
+    """
+    Decorator that activates commit on save. This is Django's default behavior;
+    this decorator is useful if you globally activated transaction management in
+    your settings file and want the default behavior in some view functions.
+    """
+    def _autocommit(*args, **kw):
+        try:
+            enter_transaction_management()
+            managed(False)
+            return func(*args, **kw)
+        finally:
+            leave_transaction_management()
+    return wraps(func)(_autocommit)
+
+def commit_on_success(func):
+    """
+    This decorator activates commit on response. This way, if the view function
+    runs successfully, a commit is made; if the viewfunc produces an exception,
+    a rollback is made. This is one of the most common ways to do transaction
+    control in web apps.
+    """
+    def _commit_on_success(*args, **kw):
+        try:
+            enter_transaction_management()
+            managed(True)
+            try:
+                res = func(*args, **kw)
+            except:
+                # All exceptions must be handled here (even string ones).
+                if is_dirty():
+                    rollback()
+                raise
+            else:
+                if is_dirty():
+                    commit()
+            return res
+        finally:
+            leave_transaction_management()
+    return wraps(func)(_commit_on_success)
+
+def commit_manually(func):
+    """
+    Decorator that activates manual transaction control. It just disables
+    automatic transaction control and doesn't do any commit/rollback of its
+    own -- it's up to the user to call the commit and rollback functions
+    themselves.
+    """
+    def _commit_manually(*args, **kw):
+        try:
+            enter_transaction_management()
+            managed(True)
+            return func(*args, **kw)
+        finally:
+            leave_transaction_management()
+
+    return wraps(func)(_commit_manually)
diff --git a/webapp/django/dispatch/__init__.py b/webapp/django/dispatch/__init__.py
new file mode 100644
index 0000000..0798acc
--- /dev/null
+++ b/webapp/django/dispatch/__init__.py
@@ -0,0 +1,9 @@
+"""Multi-consumer multi-producer dispatching mechanism
+
+Originally based on pydispatch (BSD) http://pypi.python.org/pypi/PyDispatcher/2.0.1
+See license.txt for original license.
+
+Heavily modified for Django's purposes.
+"""
+
+from django.dispatch.dispatcher import Signal
\ No newline at end of file
diff --git a/webapp/django/dispatch/dispatcher.py b/webapp/django/dispatch/dispatcher.py
new file mode 100644
index 0000000..ff659d3
--- /dev/null
+++ b/webapp/django/dispatch/dispatcher.py
@@ -0,0 +1,198 @@
+import weakref
+try:
+    set
+except NameError:
+    from sets import Set as set # Python 2.3 fallback
+
+from django.dispatch import saferef
+
+WEAKREF_TYPES = (weakref.ReferenceType, saferef.BoundMethodWeakref)
+
+def _make_id(target):
+    if hasattr(target, 'im_func'):
+        return (id(target.im_self), id(target.im_func))
+    return id(target)
+
+class Signal(object):
+    """Base class for all signals
+    
+    Internal attributes:
+        receivers -- { receriverkey (id) : weakref(receiver) }
+    """
+    
+    def __init__(self, providing_args=None):
+        """providing_args -- A list of the arguments this signal can pass along in
+                       a send() call.
+        """
+        self.receivers = []
+        if providing_args is None:
+            providing_args = []
+        self.providing_args = set(providing_args)
+
+    def connect(self, receiver, sender=None, weak=True, dispatch_uid=None):
+        """Connect receiver to sender for signal
+    
+        receiver -- a function or an instance method which is to
+            receive signals.  Receivers must be
+            hashable objects.
+
+            if weak is True, then receiver must be weak-referencable
+            (more precisely saferef.safeRef() must be able to create
+            a reference to the receiver).
+        
+            Receivers must be able to accept keyword arguments.
+
+            If receivers have a dispatch_uid attribute, the receiver will
+              not be added if another receiver already exists with that
+              dispatch_uid.
+
+        sender -- the sender to which the receiver should respond
+            Must either be of type Signal, or None to receive events
+            from any sender.
+
+        weak -- whether to use weak references to the receiver
+            By default, the module will attempt to use weak
+            references to the receiver objects.  If this parameter
+            is false, then strong references will be used.
+        
+        dispatch_uid -- an identifier used to uniquely identify a particular
+            instance of a receiver. This will usually be a string, though it
+            may be anything hashable.
+
+        returns None
+        """
+        from django.conf import settings
+        
+        if settings.DEBUG:
+            import inspect
+            assert inspect.getargspec(receiver)[2] is not None, \
+                "Signal receivers must accept keyword arguments (**kwargs)."
+        
+        if dispatch_uid:
+            lookup_key = (dispatch_uid, _make_id(sender))
+        else:
+            lookup_key = (_make_id(receiver), _make_id(sender))
+
+        if weak:
+            receiver = saferef.safeRef(receiver, onDelete=self._remove_receiver)
+
+        for r_key, _ in self.receivers:
+            if r_key == lookup_key:
+                break
+        else:
+            self.receivers.append((lookup_key, receiver))
+
+    def disconnect(self, receiver=None, sender=None, weak=True, dispatch_uid=None):
+        """Disconnect receiver from sender for signal
+    
+        receiver -- the registered receiver to disconnect. May be none if
+            dispatch_uid is specified.
+        sender -- the registered sender to disconnect
+        weak -- the weakref state to disconnect
+        dispatch_uid -- the unique identifier of the receiver to disconnect
+    
+        disconnect reverses the process of connect.
+
+        If weak references are used, disconnect need not be called.
+          The receiver will be remove from dispatch automatically.
+
+        returns None
+        """
+
+        if dispatch_uid:
+            lookup_key = (dispatch_uid, _make_id(sender))
+        else:
+            lookup_key = (_make_id(receiver), _make_id(sender))
+
+        for idx, (r_key, _) in enumerate(self.receivers):
+            if r_key == lookup_key:
+                del self.receivers[idx]
+
+    def send(self, sender, **named):
+        """Send signal from sender to all connected receivers.
+
+        sender -- the sender of the signal
+            Either a specific object or None.
+    
+        named -- named arguments which will be passed to receivers.
+
+        Returns a list of tuple pairs [(receiver, response), ... ].
+
+        If any receiver raises an error, the error propagates back
+        through send, terminating the dispatch loop, so it is quite
+        possible to not have all receivers called if a raises an
+        error.
+        """
+
+        responses = []
+        if not self.receivers:
+            return responses
+
+        for receiver in self._live_receivers(_make_id(sender)):
+            response = receiver(signal=self, sender=sender, **named)
+            responses.append((receiver, response))
+        return responses
+
+    def send_robust(self, sender, **named):
+        """Send signal from sender to all connected receivers catching errors
+
+        sender -- the sender of the signal
+            Can be any python object (normally one registered with
+            a connect if you actually want something to occur).
+
+        named -- named arguments which will be passed to receivers.
+            These arguments must be a subset of the argument names
+            defined in providing_args.
+
+        Return a list of tuple pairs [(receiver, response), ... ],
+        may raise DispatcherKeyError
+
+        if any receiver raises an error (specifically any subclass of Exception),
+        the error instance is returned as the result for that receiver.
+        """
+
+        responses = []
+        if not self.receivers:
+            return responses
+
+        # Call each receiver with whatever arguments it can accept.
+        # Return a list of tuple pairs [(receiver, response), ... ].
+        for receiver in self._live_receivers(_make_id(sender)):
+            try:
+                response = receiver(signal=self, sender=sender, **named)
+            except Exception, err:
+                responses.append((receiver, err))
+            else:
+                responses.append((receiver, response))
+        return responses
+
+    def _live_receivers(self, senderkey):
+        """Filter sequence of receivers to get resolved, live receivers
+
+        This checks for weak references
+        and resolves them, then returning only live
+        receivers.
+        """
+        none_senderkey = _make_id(None)
+
+        for (receiverkey, r_senderkey), receiver in self.receivers:
+            if r_senderkey == none_senderkey or r_senderkey == senderkey:
+                if isinstance(receiver, WEAKREF_TYPES):
+                    # Dereference the weak reference.
+                    receiver = receiver()
+                    if receiver is not None:
+                        yield receiver
+                else:
+                    yield receiver
+
+    def _remove_receiver(self, receiver):
+        """Remove dead receivers from connections."""
+
+        to_remove = []
+        for key, connected_receiver in self.receivers:
+            if connected_receiver == receiver:
+                to_remove.append(key)
+        for key in to_remove:
+            for idx, (r_key, _) in enumerate(self.receivers):
+                if r_key == key:
+                    del self.receivers[idx]
diff --git a/webapp/django/dispatch/license.txt b/webapp/django/dispatch/license.txt
new file mode 100644
index 0000000..505090d
--- /dev/null
+++ b/webapp/django/dispatch/license.txt
@@ -0,0 +1,36 @@
+django.dispatch was originally forked from PyDispatcher.
+
+PyDispatcher License:
+
+    Copyright (c) 2001-2003, Patrick K. O'Brien and Contributors
+    All rights reserved.
+    
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    
+        Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+    
+        Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials
+        provided with the distribution.
+    
+        The name of Patrick K. O'Brien, or the name of any Contributor,
+        may not be used to endorse or promote products derived from this 
+        software without specific prior written permission.
+    
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+    FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+    COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+    STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+    OF THE POSSIBILITY OF SUCH DAMAGE. 
+
diff --git a/webapp/django/dispatch/saferef.py b/webapp/django/dispatch/saferef.py
new file mode 100644
index 0000000..8bcfd8a
--- /dev/null
+++ b/webapp/django/dispatch/saferef.py
@@ -0,0 +1,250 @@
+"""
+"Safe weakrefs", originally from pyDispatcher.
+
+Provides a way to safely weakref any function, including bound methods (which
+aren't handled by the core weakref module).
+"""
+
+import weakref, traceback
+
+def safeRef(target, onDelete = None):
+    """Return a *safe* weak reference to a callable target
+
+    target -- the object to be weakly referenced, if it's a
+        bound method reference, will create a BoundMethodWeakref,
+        otherwise creates a simple weakref.
+    onDelete -- if provided, will have a hard reference stored
+        to the callable to be called after the safe reference
+        goes out of scope with the reference object, (either a
+        weakref or a BoundMethodWeakref) as argument.
+    """
+    if hasattr(target, 'im_self'):
+        if target.im_self is not None:
+            # Turn a bound method into a BoundMethodWeakref instance.
+            # Keep track of these instances for lookup by disconnect().
+            assert hasattr(target, 'im_func'), """safeRef target %r has im_self, but no im_func, don't know how to create reference"""%( target,)
+            reference = get_bound_method_weakref(
+                target=target,
+                onDelete=onDelete
+            )
+            return reference
+    if callable(onDelete):
+        return weakref.ref(target, onDelete)
+    else:
+        return weakref.ref( target )
+
+class BoundMethodWeakref(object):
+    """'Safe' and reusable weak references to instance methods
+
+    BoundMethodWeakref objects provide a mechanism for
+    referencing a bound method without requiring that the
+    method object itself (which is normally a transient
+    object) is kept alive.  Instead, the BoundMethodWeakref
+    object keeps weak references to both the object and the
+    function which together define the instance method.
+
+    Attributes:
+        key -- the identity key for the reference, calculated
+            by the class's calculateKey method applied to the
+            target instance method
+        deletionMethods -- sequence of callable objects taking
+            single argument, a reference to this object which
+            will be called when *either* the target object or
+            target function is garbage collected (i.e. when
+            this object becomes invalid).  These are specified
+            as the onDelete parameters of safeRef calls.
+        weakSelf -- weak reference to the target object
+        weakFunc -- weak reference to the target function
+
+    Class Attributes:
+        _allInstances -- class attribute pointing to all live
+            BoundMethodWeakref objects indexed by the class's
+            calculateKey(target) method applied to the target
+            objects.  This weak value dictionary is used to
+            short-circuit creation so that multiple references
+            to the same (object, function) pair produce the
+            same BoundMethodWeakref instance.
+
+    """
+    
+    _allInstances = weakref.WeakValueDictionary()
+    
+    def __new__( cls, target, onDelete=None, *arguments,**named ):
+        """Create new instance or return current instance
+
+        Basically this method of construction allows us to
+        short-circuit creation of references to already-
+        referenced instance methods.  The key corresponding
+        to the target is calculated, and if there is already
+        an existing reference, that is returned, with its
+        deletionMethods attribute updated.  Otherwise the
+        new instance is created and registered in the table
+        of already-referenced methods.
+        """
+        key = cls.calculateKey(target)
+        current =cls._allInstances.get(key)
+        if current is not None:
+            current.deletionMethods.append( onDelete)
+            return current
+        else:
+            base = super( BoundMethodWeakref, cls).__new__( cls )
+            cls._allInstances[key] = base
+            base.__init__( target, onDelete, *arguments,**named)
+            return base
+    
+    def __init__(self, target, onDelete=None):
+        """Return a weak-reference-like instance for a bound method
+
+        target -- the instance-method target for the weak
+            reference, must have im_self and im_func attributes
+            and be reconstructable via:
+                target.im_func.__get__( target.im_self )
+            which is true of built-in instance methods.
+        onDelete -- optional callback which will be called
+            when this weak reference ceases to be valid
+            (i.e. either the object or the function is garbage
+            collected).  Should take a single argument,
+            which will be passed a pointer to this object.
+        """
+        def remove(weak, self=self):
+            """Set self.isDead to true when method or instance is destroyed"""
+            methods = self.deletionMethods[:]
+            del self.deletionMethods[:]
+            try:
+                del self.__class__._allInstances[ self.key ]
+            except KeyError:
+                pass
+            for function in methods:
+                try:
+                    if callable( function ):
+                        function( self )
+                except Exception, e:
+                    try:
+                        traceback.print_exc()
+                    except AttributeError, err:
+                        print '''Exception during saferef %s cleanup function %s: %s'''%(
+                            self, function, e
+                        )
+        self.deletionMethods = [onDelete]
+        self.key = self.calculateKey( target )
+        self.weakSelf = weakref.ref(target.im_self, remove)
+        self.weakFunc = weakref.ref(target.im_func, remove)
+        self.selfName = str(target.im_self)
+        self.funcName = str(target.im_func.__name__)
+    
+    def calculateKey( cls, target ):
+        """Calculate the reference key for this reference
+
+        Currently this is a two-tuple of the id()'s of the
+        target object and the target function respectively.
+        """
+        return (id(target.im_self),id(target.im_func))
+    calculateKey = classmethod( calculateKey )
+    
+    def __str__(self):
+        """Give a friendly representation of the object"""
+        return """%s( %s.%s )"""%(
+            self.__class__.__name__,
+            self.selfName,
+            self.funcName,
+        )
+    
+    __repr__ = __str__
+    
+    def __nonzero__( self ):
+        """Whether we are still a valid reference"""
+        return self() is not None
+    
+    def __cmp__( self, other ):
+        """Compare with another reference"""
+        if not isinstance (other,self.__class__):
+            return cmp( self.__class__, type(other) )
+        return cmp( self.key, other.key)
+    
+    def __call__(self):
+        """Return a strong reference to the bound method
+
+        If the target cannot be retrieved, then will
+        return None, otherwise returns a bound instance
+        method for our object and function.
+
+        Note:
+            You may call this method any number of times,
+            as it does not invalidate the reference.
+        """
+        target = self.weakSelf()
+        if target is not None:
+            function = self.weakFunc()
+            if function is not None:
+                return function.__get__(target)
+        return None
+
+class BoundNonDescriptorMethodWeakref(BoundMethodWeakref):
+    """A specialized BoundMethodWeakref, for platforms where instance methods
+    are not descriptors.
+
+    It assumes that the function name and the target attribute name are the
+    same, instead of assuming that the function is a descriptor. This approach
+    is equally fast, but not 100% reliable because functions can be stored on an
+    attribute named differenty than the function's name such as in:
+
+    class A: pass
+    def foo(self): return "foo"
+    A.bar = foo
+
+    But this shouldn't be a common use case. So, on platforms where methods
+    aren't descriptors (such as Jython) this implementation has the advantage
+    of working in the most cases.
+    """
+    def __init__(self, target, onDelete=None):
+        """Return a weak-reference-like instance for a bound method
+
+        target -- the instance-method target for the weak
+            reference, must have im_self and im_func attributes
+            and be reconstructable via:
+                target.im_func.__get__( target.im_self )
+            which is true of built-in instance methods.
+        onDelete -- optional callback which will be called
+            when this weak reference ceases to be valid
+            (i.e. either the object or the function is garbage
+            collected).  Should take a single argument,
+            which will be passed a pointer to this object.
+        """
+        assert getattr(target.im_self, target.__name__) == target, \
+               ("method %s isn't available as the attribute %s of %s" %
+                (target, target.__name__, target.im_self))
+        super(BoundNonDescriptorMethodWeakref, self).__init__(target, onDelete)
+
+    def __call__(self):
+        """Return a strong reference to the bound method
+
+        If the target cannot be retrieved, then will
+        return None, otherwise returns a bound instance
+        method for our object and function.
+
+        Note:
+            You may call this method any number of times,
+            as it does not invalidate the reference.
+        """
+        target = self.weakSelf()
+        if target is not None:
+            function = self.weakFunc()
+            if function is not None:
+                # Using curry() would be another option, but it erases the
+                # "signature" of the function. That is, after a function is
+                # curried, the inspect module can't be used to determine how
+                # many arguments the function expects, nor what keyword
+                # arguments it supports, and pydispatcher needs this
+                # information.
+                return getattr(target, function.__name__)
+        return None
+
+def get_bound_method_weakref(target, onDelete):
+    """Instantiates the appropiate BoundMethodWeakRef, depending on the details of
+    the underlying class method implementation"""
+    if hasattr(target, '__get__'):
+        # target method is a descriptor, so the default implementation works:
+        return BoundMethodWeakref(target=target, onDelete=onDelete)
+    else:
+        # no luck, use the alternative implementation:
+        return BoundNonDescriptorMethodWeakref(target=target, onDelete=onDelete)
diff --git a/webapp/django/forms/__init__.py b/webapp/django/forms/__init__.py
new file mode 100644
index 0000000..0d9c68f
--- /dev/null
+++ b/webapp/django/forms/__init__.py
@@ -0,0 +1,17 @@
+"""
+Django validation and HTML form handling.
+
+TODO:
+    Default value for field
+    Field labels
+    Nestable Forms
+    FatalValidationError -- short-circuits all other validators on a form
+    ValidationWarning
+    "This form field requires foo.js" and form.js_includes()
+"""
+
+from util import ValidationError
+from widgets import *
+from fields import *
+from forms import *
+from models import *
diff --git a/webapp/django/forms/extras/__init__.py b/webapp/django/forms/extras/__init__.py
new file mode 100644
index 0000000..a7f6a9b
--- /dev/null
+++ b/webapp/django/forms/extras/__init__.py
@@ -0,0 +1 @@
+from widgets import *
diff --git a/webapp/django/forms/extras/widgets.py b/webapp/django/forms/extras/widgets.py
new file mode 100644
index 0000000..ffa7ba2
--- /dev/null
+++ b/webapp/django/forms/extras/widgets.py
@@ -0,0 +1,79 @@
+"""
+Extra HTML Widget classes
+"""
+
+import datetime
+import re
+
+from django.forms.widgets import Widget, Select
+from django.utils.dates import MONTHS
+from django.utils.safestring import mark_safe
+
+__all__ = ('SelectDateWidget',)
+
+RE_DATE = re.compile(r'(\d{4})-(\d\d?)-(\d\d?)$')
+
+class SelectDateWidget(Widget):
+    """
+    A Widget that splits date input into three <select> boxes.
+
+    This also serves as an example of a Widget that has more than one HTML
+    element and hence implements value_from_datadict.
+    """
+    month_field = '%s_month'
+    day_field = '%s_day'
+    year_field = '%s_year'
+
+    def __init__(self, attrs=None, years=None):
+        # years is an optional list/tuple of years to use in the "year" select box.
+        self.attrs = attrs or {}
+        if years:
+            self.years = years
+        else:
+            this_year = datetime.date.today().year
+            self.years = range(this_year, this_year+10)
+
+    def render(self, name, value, attrs=None):
+        try:
+            year_val, month_val, day_val = value.year, value.month, value.day
+        except AttributeError:
+            year_val = month_val = day_val = None
+            if isinstance(value, basestring):
+                match = RE_DATE.match(value)
+                if match:
+                    year_val, month_val, day_val = [int(v) for v in match.groups()]
+
+        output = []
+
+        if 'id' in self.attrs:
+            id_ = self.attrs['id']
+        else:
+            id_ = 'id_%s' % name
+
+        month_choices = MONTHS.items()
+        month_choices.sort()
+        local_attrs = self.build_attrs(id=self.month_field % id_)
+        select_html = Select(choices=month_choices).render(self.month_field % name, month_val, local_attrs)
+        output.append(select_html)
+
+        day_choices = [(i, i) for i in range(1, 32)]
+        local_attrs['id'] = self.day_field % id_
+        select_html = Select(choices=day_choices).render(self.day_field % name, day_val, local_attrs)
+        output.append(select_html)
+
+        year_choices = [(i, i) for i in self.years]
+        local_attrs['id'] = self.year_field % id_
+        select_html = Select(choices=year_choices).render(self.year_field % name, year_val, local_attrs)
+        output.append(select_html)
+
+        return mark_safe(u'\n'.join(output))
+
+    def id_for_label(self, id_):
+        return '%s_month' % id_
+    id_for_label = classmethod(id_for_label)
+
+    def value_from_datadict(self, data, files, name):
+        y, m, d = data.get(self.year_field % name), data.get(self.month_field % name), data.get(self.day_field % name)
+        if y and m and d:
+            return '%s-%s-%s' % (y, m, d)
+        return data.get(name, None)
diff --git a/webapp/django/forms/fields.py b/webapp/django/forms/fields.py
new file mode 100644
index 0000000..ee9b8c6
--- /dev/null
+++ b/webapp/django/forms/fields.py
@@ -0,0 +1,837 @@
+"""
+Field classes.
+"""
+
+import copy
+import datetime
+import os
+import re
+import time
+import urlparse
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+
+# Python 2.3 fallbacks
+try:
+    from decimal import Decimal, DecimalException
+except ImportError:
+    from django.utils._decimal import Decimal, DecimalException
+try:
+    set
+except NameError:
+    from sets import Set as set
+
+from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import smart_unicode, smart_str
+
+from util import ErrorList, ValidationError
+from widgets import TextInput, PasswordInput, HiddenInput, MultipleHiddenInput, FileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple, DateTimeInput, TimeInput
+from django.core.files.uploadedfile import SimpleUploadedFile as UploadedFile
+
+__all__ = (
+    'Field', 'CharField', 'IntegerField',
+    'DEFAULT_DATE_INPUT_FORMATS', 'DateField',
+    'DEFAULT_TIME_INPUT_FORMATS', 'TimeField',
+    'DEFAULT_DATETIME_INPUT_FORMATS', 'DateTimeField', 'TimeField',
+    'RegexField', 'EmailField', 'FileField', 'ImageField', 'URLField',
+    'BooleanField', 'NullBooleanField', 'ChoiceField', 'MultipleChoiceField',
+    'ComboField', 'MultiValueField', 'FloatField', 'DecimalField',
+    'SplitDateTimeField', 'IPAddressField', 'FilePathField',
+)
+
+# These values, if given to to_python(), will trigger the self.required check.
+EMPTY_VALUES = (None, '')
+
+
+class Field(object):
+    widget = TextInput # Default widget to use when rendering this type of Field.
+    hidden_widget = HiddenInput # Default widget to use when rendering this as "hidden".
+    default_error_messages = {
+        'required': _(u'This field is required.'),
+        'invalid': _(u'Enter a valid value.'),
+    }
+
+    # Tracks each time a Field instance is created. Used to retain order.
+    creation_counter = 0
+
+    def __init__(self, required=True, widget=None, label=None, initial=None,
+                 help_text=None, error_messages=None):
+        # required -- Boolean that specifies whether the field is required.
+        #             True by default.
+        # widget -- A Widget class, or instance of a Widget class, that should
+        #           be used for this Field when displaying it. Each Field has a
+        #           default Widget that it'll use if you don't specify this. In
+        #           most cases, the default widget is TextInput.
+        # label -- A verbose name for this field, for use in displaying this
+        #          field in a form. By default, Django will use a "pretty"
+        #          version of the form field name, if the Field is part of a
+        #          Form.
+        # initial -- A value to use in this Field's initial display. This value
+        #            is *not* used as a fallback if data isn't given.
+        # help_text -- An optional string to use as "help text" for this Field.
+        if label is not None:
+            label = smart_unicode(label)
+        self.required, self.label, self.initial = required, label, initial
+        if help_text is None:
+            self.help_text = u''
+        else:
+            self.help_text = smart_unicode(help_text)
+        widget = widget or self.widget
+        if isinstance(widget, type):
+            widget = widget()
+
+        # Hook into self.widget_attrs() for any Field-specific HTML attributes.
+        extra_attrs = self.widget_attrs(widget)
+        if extra_attrs:
+            widget.attrs.update(extra_attrs)
+
+        self.widget = widget
+
+        # Increase the creation counter, and save our local copy.
+        self.creation_counter = Field.creation_counter
+        Field.creation_counter += 1
+
+        def set_class_error_messages(messages, klass):
+            for base_class in klass.__bases__:
+                set_class_error_messages(messages, base_class)
+            messages.update(getattr(klass, 'default_error_messages', {}))
+
+        messages = {}
+        set_class_error_messages(messages, self.__class__)
+        messages.update(error_messages or {})
+        self.error_messages = messages
+
+    def clean(self, value):
+        """
+        Validates the given value and returns its "cleaned" value as an
+        appropriate Python object.
+
+        Raises ValidationError for any errors.
+        """
+        if self.required and value in EMPTY_VALUES:
+            raise ValidationError(self.error_messages['required'])
+        return value
+
+    def widget_attrs(self, widget):
+        """
+        Given a Widget instance (*not* a Widget class), returns a dictionary of
+        any HTML attributes that should be added to the Widget, based on this
+        Field.
+        """
+        return {}
+
+    def __deepcopy__(self, memo):
+        result = copy.copy(self)
+        memo[id(self)] = result
+        result.widget = copy.deepcopy(self.widget, memo)
+        return result
+
+class CharField(Field):
+    default_error_messages = {
+        'max_length': _(u'Ensure this value has at most %(max)d characters (it has %(length)d).'),
+        'min_length': _(u'Ensure this value has at least %(min)d characters (it has %(length)d).'),
+    }
+
+    def __init__(self, max_length=None, min_length=None, *args, **kwargs):
+        self.max_length, self.min_length = max_length, min_length
+        super(CharField, self).__init__(*args, **kwargs)
+
+    def clean(self, value):
+        "Validates max_length and min_length. Returns a Unicode object."
+        super(CharField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return u''
+        value = smart_unicode(value)
+        value_length = len(value)
+        if self.max_length is not None and value_length > self.max_length:
+            raise ValidationError(self.error_messages['max_length'] % {'max': self.max_length, 'length': value_length})
+        if self.min_length is not None and value_length < self.min_length:
+            raise ValidationError(self.error_messages['min_length'] % {'min': self.min_length, 'length': value_length})
+        return value
+
+    def widget_attrs(self, widget):
+        if self.max_length is not None and isinstance(widget, (TextInput, PasswordInput)):
+            # The HTML attribute is maxlength, not max_length.
+            return {'maxlength': str(self.max_length)}
+
+class IntegerField(Field):
+    default_error_messages = {
+        'invalid': _(u'Enter a whole number.'),
+        'max_value': _(u'Ensure this value is less than or equal to %s.'),
+        'min_value': _(u'Ensure this value is greater than or equal to %s.'),
+    }
+
+    def __init__(self, max_value=None, min_value=None, *args, **kwargs):
+        self.max_value, self.min_value = max_value, min_value
+        super(IntegerField, self).__init__(*args, **kwargs)
+
+    def clean(self, value):
+        """
+        Validates that int() can be called on the input. Returns the result
+        of int(). Returns None for empty values.
+        """
+        super(IntegerField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return None
+        try:
+            value = int(str(value))
+        except (ValueError, TypeError):
+            raise ValidationError(self.error_messages['invalid'])
+        if self.max_value is not None and value > self.max_value:
+            raise ValidationError(self.error_messages['max_value'] % self.max_value)
+        if self.min_value is not None and value < self.min_value:
+            raise ValidationError(self.error_messages['min_value'] % self.min_value)
+        return value
+
+class FloatField(Field):
+    default_error_messages = {
+        'invalid': _(u'Enter a number.'),
+        'max_value': _(u'Ensure this value is less than or equal to %s.'),
+        'min_value': _(u'Ensure this value is greater than or equal to %s.'),
+    }
+
+    def __init__(self, max_value=None, min_value=None, *args, **kwargs):
+        self.max_value, self.min_value = max_value, min_value
+        Field.__init__(self, *args, **kwargs)
+
+    def clean(self, value):
+        """
+        Validates that float() can be called on the input. Returns a float.
+        Returns None for empty values.
+        """
+        super(FloatField, self).clean(value)
+        if not self.required and value in EMPTY_VALUES:
+            return None
+        try:
+            value = float(value)
+        except (ValueError, TypeError):
+            raise ValidationError(self.error_messages['invalid'])
+        if self.max_value is not None and value > self.max_value:
+            raise ValidationError(self.error_messages['max_value'] % self.max_value)
+        if self.min_value is not None and value < self.min_value:
+            raise ValidationError(self.error_messages['min_value'] % self.min_value)
+        return value
+
+class DecimalField(Field):
+    default_error_messages = {
+        'invalid': _(u'Enter a number.'),
+        'max_value': _(u'Ensure this value is less than or equal to %s.'),
+        'min_value': _(u'Ensure this value is greater than or equal to %s.'),
+        'max_digits': _('Ensure that there are no more than %s digits in total.'),
+        'max_decimal_places': _('Ensure that there are no more than %s decimal places.'),
+        'max_whole_digits': _('Ensure that there are no more than %s digits before the decimal point.')
+    }
+
+    def __init__(self, max_value=None, min_value=None, max_digits=None, decimal_places=None, *args, **kwargs):
+        self.max_value, self.min_value = max_value, min_value
+        self.max_digits, self.decimal_places = max_digits, decimal_places
+        Field.__init__(self, *args, **kwargs)
+
+    def clean(self, value):
+        """
+        Validates that the input is a decimal number. Returns a Decimal
+        instance. Returns None for empty values. Ensures that there are no more
+        than max_digits in the number, and no more than decimal_places digits
+        after the decimal point.
+        """
+        super(DecimalField, self).clean(value)
+        if not self.required and value in EMPTY_VALUES:
+            return None
+        value = smart_str(value).strip()
+        try:
+            value = Decimal(value)
+        except DecimalException:
+            raise ValidationError(self.error_messages['invalid'])
+
+        sign, digittuple, exponent = value.as_tuple()
+        decimals = abs(exponent)
+        # digittuple doesn't include any leading zeros.
+        digits = len(digittuple)
+        if decimals >= digits:
+            # We have leading zeros up to or past the decimal point.  Count
+            # everything past the decimal point as a digit.  We also add one
+            # for leading zeros before the decimal point (any number of leading
+            # whole zeros collapse to one digit).
+            digits = decimals + 1
+        whole_digits = digits - decimals
+
+        if self.max_value is not None and value > self.max_value:
+            raise ValidationError(self.error_messages['max_value'] % self.max_value)
+        if self.min_value is not None and value < self.min_value:
+            raise ValidationError(self.error_messages['min_value'] % self.min_value)
+        if self.max_digits is not None and digits > self.max_digits:
+            raise ValidationError(self.error_messages['max_digits'] % self.max_digits)
+        if self.decimal_places is not None and decimals > self.decimal_places:
+            raise ValidationError(self.error_messages['max_decimal_places'] % self.decimal_places)
+        if self.max_digits is not None and self.decimal_places is not None and whole_digits > (self.max_digits - self.decimal_places):
+            raise ValidationError(self.error_messages['max_whole_digits'] % (self.max_digits - self.decimal_places))
+        return value
+
+DEFAULT_DATE_INPUT_FORMATS = (
+    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
+    '%b %d %Y', '%b %d, %Y',            # 'Oct 25 2006', 'Oct 25, 2006'
+    '%d %b %Y', '%d %b, %Y',            # '25 Oct 2006', '25 Oct, 2006'
+    '%B %d %Y', '%B %d, %Y',            # 'October 25 2006', 'October 25, 2006'
+    '%d %B %Y', '%d %B, %Y',            # '25 October 2006', '25 October, 2006'
+)
+
+class DateField(Field):
+    default_error_messages = {
+        'invalid': _(u'Enter a valid date.'),
+    }
+
+    def __init__(self, input_formats=None, *args, **kwargs):
+        super(DateField, self).__init__(*args, **kwargs)
+        self.input_formats = input_formats or DEFAULT_DATE_INPUT_FORMATS
+
+    def clean(self, value):
+        """
+        Validates that the input can be converted to a date. Returns a Python
+        datetime.date object.
+        """
+        super(DateField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return None
+        if isinstance(value, datetime.datetime):
+            return value.date()
+        if isinstance(value, datetime.date):
+            return value
+        for format in self.input_formats:
+            try:
+                return datetime.date(*time.strptime(value, format)[:3])
+            except ValueError:
+                continue
+        raise ValidationError(self.error_messages['invalid'])
+
+DEFAULT_TIME_INPUT_FORMATS = (
+    '%H:%M:%S',     # '14:30:59'
+    '%H:%M',        # '14:30'
+)
+
+class TimeField(Field):
+    widget = TimeInput
+    default_error_messages = {
+        'invalid': _(u'Enter a valid time.')
+    }
+
+    def __init__(self, input_formats=None, *args, **kwargs):
+        super(TimeField, self).__init__(*args, **kwargs)
+        self.input_formats = input_formats or DEFAULT_TIME_INPUT_FORMATS
+
+    def clean(self, value):
+        """
+        Validates that the input can be converted to a time. Returns a Python
+        datetime.time object.
+        """
+        super(TimeField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return None
+        if isinstance(value, datetime.time):
+            return value
+        for format in self.input_formats:
+            try:
+                return datetime.time(*time.strptime(value, format)[3:6])
+            except ValueError:
+                continue
+        raise ValidationError(self.error_messages['invalid'])
+
+DEFAULT_DATETIME_INPUT_FORMATS = (
+    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
+    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
+    '%Y-%m-%d',              # '2006-10-25'
+    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
+    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
+    '%m/%d/%Y',              # '10/25/2006'
+    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
+    '%m/%d/%y %H:%M',        # '10/25/06 14:30'
+    '%m/%d/%y',              # '10/25/06'
+)
+
+class DateTimeField(Field):
+    widget = DateTimeInput
+    default_error_messages = {
+        'invalid': _(u'Enter a valid date/time.'),
+    }
+
+    def __init__(self, input_formats=None, *args, **kwargs):
+        super(DateTimeField, self).__init__(*args, **kwargs)
+        self.input_formats = input_formats or DEFAULT_DATETIME_INPUT_FORMATS
+
+    def clean(self, value):
+        """
+        Validates that the input can be converted to a datetime. Returns a
+        Python datetime.datetime object.
+        """
+        super(DateTimeField, self).clean(value)
+        if value in EMPTY_VALUES:
+            return None
+        if isinstance(value, datetime.datetime):
+            return value
+        if isinstance(value, datetime.date):
+            return datetime.datetime(value.year, value.month, value.day)
+        if isinstance(value, list):
+            # Input comes from a SplitDateTimeWidget, for example. So, it's two
+            # components: date and time.
+            if len(value) != 2:
+                raise ValidationError(self.error_messages['invalid'])
+            value = '%s %s' % tuple(value)
+        for format in self.input_formats:
+            try:
+                return datetime.datetime(*time.strptime(value, format)[:6])
+            except ValueError:
+                continue
+        raise ValidationError(self.error_messages['invalid'])
+
+class RegexField(CharField):
+    def __init__(self, regex, max_length=None, min_length=None, error_message=None, *args, **kwargs):
+        """
+        regex can be either a string or a compiled regular expression object.
+        error_message is an optional error message to use, if
+        'Enter a valid value' is too generic for you.
+        """
+        # error_message is just kept for backwards compatibility:
+        if error_message:
+            error_messages = kwargs.get('error_messages') or {}
+            error_messages['invalid'] = error_message
+            kwargs['error_messages'] = error_messages
+        super(RegexField, self).__init__(max_length, min_length, *args, **kwargs)
+        if isinstance(regex, basestring):
+            regex = re.compile(regex)
+        self.regex = regex
+
+    def clean(self, value):
+        """
+        Validates that the input matches the regular expression. Returns a
+        Unicode object.
+        """
+        value = super(RegexField, self).clean(value)
+        if value == u'':
+            return value
+        if not self.regex.search(value):
+            raise ValidationError(self.error_messages['invalid'])
+        return value
+
+email_re = re.compile(
+    r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*"  # dot-atom
+    r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-011\013\014\016-\177])*"' # quoted-string
+    r')@(?:[A-Z0-9-]+\.)+[A-Z]{2,6}$', re.IGNORECASE)  # domain
+
+class EmailField(RegexField):
+    default_error_messages = {
+        'invalid': _(u'Enter a valid e-mail address.'),
+    }
+
+    def __init__(self, max_length=None, min_length=None, *args, **kwargs):
+        RegexField.__init__(self, email_re, max_length, min_length, *args,
+                            **kwargs)
+
+try:
+    from django.conf import settings
+    URL_VALIDATOR_USER_AGENT = settings.URL_VALIDATOR_USER_AGENT
+except ImportError:
+    # It's OK if Django settings aren't configured.
+    URL_VALIDATOR_USER_AGENT = 'Django (http://www.djangoproject.com/)'
+
+
+class FileField(Field):
+    widget = FileInput
+    default_error_messages = {
+        'invalid': _(u"No file was submitted. Check the encoding type on the form."),
+        'missing': _(u"No file was submitted."),
+        'empty': _(u"The submitted file is empty."),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(FileField, self).__init__(*args, **kwargs)
+
+    def clean(self, data, initial=None):
+        super(FileField, self).clean(initial or data)
+        if not self.required and data in EMPTY_VALUES:
+            return None
+        elif not data and initial:
+            return initial
+
+        # UploadedFile objects should have name and size attributes.
+        try:
+            file_name = data.name
+            file_size = data.size
+        except AttributeError:
+            raise ValidationError(self.error_messages['invalid'])
+
+        if not file_name:
+            raise ValidationError(self.error_messages['invalid'])
+        if not file_size:
+            raise ValidationError(self.error_messages['empty'])
+
+        return data
+
+class ImageField(FileField):
+    default_error_messages = {
+        'invalid_image': _(u"Upload a valid image. The file you uploaded was either not an image or a corrupted image."),
+    }
+
+    def clean(self, data, initial=None):
+        """
+        Checks that the file-upload field data contains a valid image (GIF, JPG,
+        PNG, possibly others -- whatever the Python Imaging Library supports).
+        """
+        f = super(ImageField, self).clean(data, initial)
+        if f is None:
+            return None
+        elif not data and initial:
+            return initial
+        from PIL import Image
+
+        # We need to get a file object for PIL. We might have a path or we might
+        # have to read the data into memory.
+        if hasattr(data, 'temporary_file_path'):
+            file = data.temporary_file_path()
+        else:
+            if hasattr(data, 'read'):
+                file = StringIO(data.read())
+            else:
+                file = StringIO(data['content'])
+
+        try:
+            # load() is the only method that can spot a truncated JPEG,
+            #  but it cannot be called sanely after verify()
+            trial_image = Image.open(file)
+            trial_image.load()
+
+            # Since we're about to use the file again we have to reset the
+            # file object if possible.
+            if hasattr(file, 'reset'):
+                file.reset()
+
+            # verify() is the only method that can spot a corrupt PNG,
+            #  but it must be called immediately after the constructor
+            trial_image = Image.open(file)
+            trial_image.verify()
+        except ImportError:
+            # Under PyPy, it is possible to import PIL. However, the underlying
+            # _imaging C module isn't available, so an ImportError will be
+            # raised. Catch and re-raise.
+            raise
+        except Exception: # Python Imaging Library doesn't recognize it as an image
+            raise ValidationError(self.error_messages['invalid_image'])
+        if hasattr(f, 'seek') and callable(f.seek):
+            f.seek(0)
+        return f
+
+url_re = re.compile(
+    r'^https?://' # http:// or https://
+    r'(?:(?:[A-Z0-9-]+\.)+[A-Z]{2,6}|' #domain...
+    r'localhost|' #localhost...
+    r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
+    r'(?::\d+)?' # optional port
+    r'(?:/?|/\S+)$', re.IGNORECASE)
+
+class URLField(RegexField):
+    default_error_messages = {
+        'invalid': _(u'Enter a valid URL.'),
+        'invalid_link': _(u'This URL appears to be a broken link.'),
+    }
+
+    def __init__(self, max_length=None, min_length=None, verify_exists=False,
+            validator_user_agent=URL_VALIDATOR_USER_AGENT, *args, **kwargs):
+        super(URLField, self).__init__(url_re, max_length, min_length, *args,
+                                       **kwargs)
+        self.verify_exists = verify_exists
+        self.user_agent = validator_user_agent
+
+    def clean(self, value):
+        # If no URL scheme given, assume http://
+        if value and '://' not in value:
+            value = u'http://%s' % value
+        # If no URL path given, assume /
+        if value and not urlparse.urlsplit(value)[2]:
+            value += '/'
+        value = super(URLField, self).clean(value)
+        if value == u'':
+            return value
+        if self.verify_exists:
+            import urllib2
+            headers = {
+                "Accept": "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
+                "Accept-Language": "en-us,en;q=0.5",
+                "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
+                "Connection": "close",
+                "User-Agent": self.user_agent,
+            }
+            try:
+                req = urllib2.Request(value, None, headers)
+                u = urllib2.urlopen(req)
+            except ValueError:
+                raise ValidationError(self.error_messages['invalid'])
+            except: # urllib2.URLError, httplib.InvalidURL, etc.
+                raise ValidationError(self.error_messages['invalid_link'])
+        return value
+
+class BooleanField(Field):
+    widget = CheckboxInput
+
+    def clean(self, value):
+        """Returns a Python boolean object."""
+        # Explicitly check for the string 'False', which is what a hidden field
+        # will submit for False. Because bool("True") == True, we don't need to
+        # handle that explicitly.
+        if value == 'False':
+            value = False
+        else:
+            value = bool(value)
+        super(BooleanField, self).clean(value)
+        if not value and self.required:
+            raise ValidationError(self.error_messages['required'])
+        return value
+
+class NullBooleanField(BooleanField):
+    """
+    A field whose valid values are None, True and False. Invalid values are
+    cleaned to None.
+    """
+    widget = NullBooleanSelect
+
+    def clean(self, value):
+        return {True: True, False: False}.get(value, None)
+
+class ChoiceField(Field):
+    widget = Select
+    default_error_messages = {
+        'invalid_choice': _(u'Select a valid choice. %(value)s is not one of the available choices.'),
+    }
+
+    def __init__(self, choices=(), required=True, widget=None, label=None,
+                 initial=None, help_text=None, *args, **kwargs):
+        super(ChoiceField, self).__init__(required, widget, label, initial,
+                                          help_text, *args, **kwargs)
+        self.choices = choices
+
+    def _get_choices(self):
+        return self._choices
+
+    def _set_choices(self, value):
+        # Setting choices also sets the choices on the widget.
+        # choices can be any iterable, but we call list() on it because
+        # it will be consumed more than once.
+        self._choices = self.widget.choices = list(value)
+
+    choices = property(_get_choices, _set_choices)
+
+    def clean(self, value):
+        """
+        Validates that the input is in self.choices.
+        """
+        value = super(ChoiceField, self).clean(value)
+        if value in EMPTY_VALUES:
+            value = u''
+        value = smart_unicode(value)
+        if value == u'':
+            return value
+        if not self.valid_value(value):
+            raise ValidationError(self.error_messages['invalid_choice'] % {'value': value})
+        return value
+
+    def valid_value(self, value):
+        "Check to see if the provided value is a valid choice"
+        for k, v in self.choices:
+            if type(v) in (tuple, list):
+                # This is an optgroup, so look inside the group for options
+                for k2, v2 in v:
+                    if value == smart_unicode(k2):
+                        return True
+            else:
+                if value == smart_unicode(k):
+                    return True
+        return False
+
+class MultipleChoiceField(ChoiceField):
+    hidden_widget = MultipleHiddenInput
+    widget = SelectMultiple
+    default_error_messages = {
+        'invalid_choice': _(u'Select a valid choice. %(value)s is not one of the available choices.'),
+        'invalid_list': _(u'Enter a list of values.'),
+    }
+
+    def clean(self, value):
+        """
+        Validates that the input is a list or tuple.
+        """
+        if self.required and not value:
+            raise ValidationError(self.error_messages['required'])
+        elif not self.required and not value:
+            return []
+        if not isinstance(value, (list, tuple)):
+            raise ValidationError(self.error_messages['invalid_list'])
+        new_value = [smart_unicode(val) for val in value]
+        # Validate that each value in the value list is in self.choices.
+        for val in new_value:
+            if not self.valid_value(val):
+                raise ValidationError(self.error_messages['invalid_choice'] % {'value': val})
+        return new_value
+
+class ComboField(Field):
+    """
+    A Field whose clean() method calls multiple Field clean() methods.
+    """
+    def __init__(self, fields=(), *args, **kwargs):
+        super(ComboField, self).__init__(*args, **kwargs)
+        # Set 'required' to False on the individual fields, because the
+        # required validation will be handled by ComboField, not by those
+        # individual fields.
+        for f in fields:
+            f.required = False
+        self.fields = fields
+
+    def clean(self, value):
+        """
+        Validates the given value against all of self.fields, which is a
+        list of Field instances.
+        """
+        super(ComboField, self).clean(value)
+        for field in self.fields:
+            value = field.clean(value)
+        return value
+
+class MultiValueField(Field):
+    """
+    A Field that aggregates the logic of multiple Fields.
+
+    Its clean() method takes a "decompressed" list of values, which are then
+    cleaned into a single value according to self.fields. Each value in
+    this list is cleaned by the corresponding field -- the first value is
+    cleaned by the first field, the second value is cleaned by the second
+    field, etc. Once all fields are cleaned, the list of clean values is
+    "compressed" into a single value.
+
+    Subclasses should not have to implement clean(). Instead, they must
+    implement compress(), which takes a list of valid values and returns a
+    "compressed" version of those values -- a single value.
+
+    You'll probably want to use this with MultiWidget.
+    """
+    default_error_messages = {
+        'invalid': _(u'Enter a list of values.'),
+    }
+
+    def __init__(self, fields=(), *args, **kwargs):
+        super(MultiValueField, self).__init__(*args, **kwargs)
+        # Set 'required' to False on the individual fields, because the
+        # required validation will be handled by MultiValueField, not by those
+        # individual fields.
+        for f in fields:
+            f.required = False
+        self.fields = fields
+
+    def clean(self, value):
+        """
+        Validates every value in the given list. A value is validated against
+        the corresponding Field in self.fields.
+
+        For example, if this MultiValueField was instantiated with
+        fields=(DateField(), TimeField()), clean() would call
+        DateField.clean(value[0]) and TimeField.clean(value[1]).
+        """
+        clean_data = []
+        errors = ErrorList()
+        if not value or isinstance(value, (list, tuple)):
+            if not value or not [v for v in value if v not in EMPTY_VALUES]:
+                if self.required:
+                    raise ValidationError(self.error_messages['required'])
+                else:
+                    return self.compress([])
+        else:
+            raise ValidationError(self.error_messages['invalid'])
+        for i, field in enumerate(self.fields):
+            try:
+                field_value = value[i]
+            except IndexError:
+                field_value = None
+            if self.required and field_value in EMPTY_VALUES:
+                raise ValidationError(self.error_messages['required'])
+            try:
+                clean_data.append(field.clean(field_value))
+            except ValidationError, e:
+                # Collect all validation errors in a single list, which we'll
+                # raise at the end of clean(), rather than raising a single
+                # exception for the first error we encounter.
+                errors.extend(e.messages)
+        if errors:
+            raise ValidationError(errors)
+        return self.compress(clean_data)
+
+    def compress(self, data_list):
+        """
+        Returns a single value for the given list of values. The values can be
+        assumed to be valid.
+
+        For example, if this MultiValueField was instantiated with
+        fields=(DateField(), TimeField()), this might return a datetime
+        object created by combining the date and time in data_list.
+        """
+        raise NotImplementedError('Subclasses must implement this method.')
+
+class FilePathField(ChoiceField):
+    def __init__(self, path, match=None, recursive=False, required=True,
+                 widget=None, label=None, initial=None, help_text=None,
+                 *args, **kwargs):
+        self.path, self.match, self.recursive = path, match, recursive
+        super(FilePathField, self).__init__(choices=(), required=required,
+            widget=widget, label=label, initial=initial, help_text=help_text,
+            *args, **kwargs)
+        self.choices = []
+        if self.match is not None:
+            self.match_re = re.compile(self.match)
+        if recursive:
+            for root, dirs, files in os.walk(self.path):
+                for f in files:
+                    if self.match is None or self.match_re.search(f):
+                        f = os.path.join(root, f)
+                        self.choices.append((f, f.replace(path, "", 1)))
+        else:
+            try:
+                for f in os.listdir(self.path):
+                    full_file = os.path.join(self.path, f)
+                    if os.path.isfile(full_file) and (self.match is None or self.match_re.search(f)):
+                        self.choices.append((full_file, f))
+            except OSError:
+                pass
+        self.widget.choices = self.choices
+
+class SplitDateTimeField(MultiValueField):
+    default_error_messages = {
+        'invalid_date': _(u'Enter a valid date.'),
+        'invalid_time': _(u'Enter a valid time.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        errors = self.default_error_messages.copy()
+        if 'error_messages' in kwargs:
+            errors.update(kwargs['error_messages'])
+        fields = (
+            DateField(error_messages={'invalid': errors['invalid_date']}),
+            TimeField(error_messages={'invalid': errors['invalid_time']}),
+        )
+        super(SplitDateTimeField, self).__init__(fields, *args, **kwargs)
+
+    def compress(self, data_list):
+        if data_list:
+            # Raise a validation error if time or date is empty
+            # (possible if SplitDateTimeField has required=False).
+            if data_list[0] in EMPTY_VALUES:
+                raise ValidationError(self.error_messages['invalid_date'])
+            if data_list[1] in EMPTY_VALUES:
+                raise ValidationError(self.error_messages['invalid_time'])
+            return datetime.datetime.combine(*data_list)
+        return None
+
+ipv4_re = re.compile(r'^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$')
+
+class IPAddressField(RegexField):
+    default_error_messages = {
+        'invalid': _(u'Enter a valid IPv4 address.'),
+    }
+
+    def __init__(self, *args, **kwargs):
+        super(IPAddressField, self).__init__(ipv4_re, *args, **kwargs)
diff --git a/webapp/django/forms/forms.py b/webapp/django/forms/forms.py
new file mode 100644
index 0000000..753ee25
--- /dev/null
+++ b/webapp/django/forms/forms.py
@@ -0,0 +1,396 @@
+"""
+Form classes
+"""
+
+from copy import deepcopy
+
+from django.utils.datastructures import SortedDict
+from django.utils.html import escape
+from django.utils.encoding import StrAndUnicode, smart_unicode, force_unicode
+from django.utils.safestring import mark_safe
+
+from fields import Field, FileField
+from widgets import Media, media_property, TextInput, Textarea
+from util import flatatt, ErrorDict, ErrorList, ValidationError
+
+__all__ = ('BaseForm', 'Form')
+
+NON_FIELD_ERRORS = '__all__'
+
+def pretty_name(name):
+    "Converts 'first_name' to 'First name'"
+    name = name[0].upper() + name[1:]
+    return name.replace('_', ' ')
+
+def get_declared_fields(bases, attrs, with_base_fields=True):
+    """
+    Create a list of form field instances from the passed in 'attrs', plus any
+    similar fields on the base classes (in 'bases'). This is used by both the
+    Form and ModelForm metclasses.
+
+    If 'with_base_fields' is True, all fields from the bases are used.
+    Otherwise, only fields in the 'declared_fields' attribute on the bases are
+    used. The distinction is useful in ModelForm subclassing.
+    Also integrates any additional media definitions
+    """
+    fields = [(field_name, attrs.pop(field_name)) for field_name, obj in attrs.items() if isinstance(obj, Field)]
+    fields.sort(lambda x, y: cmp(x[1].creation_counter, y[1].creation_counter))
+
+    # If this class is subclassing another Form, add that Form's fields.
+    # Note that we loop over the bases in *reverse*. This is necessary in
+    # order to preserve the correct order of fields.
+    if with_base_fields:
+        for base in bases[::-1]:
+            if hasattr(base, 'base_fields'):
+                fields = base.base_fields.items() + fields
+    else:
+        for base in bases[::-1]:
+            if hasattr(base, 'declared_fields'):
+                fields = base.declared_fields.items() + fields
+
+    return SortedDict(fields)
+
+class DeclarativeFieldsMetaclass(type):
+    """
+    Metaclass that converts Field attributes to a dictionary called
+    'base_fields', taking into account parent class 'base_fields' as well.
+    """
+    def __new__(cls, name, bases, attrs):
+        attrs['base_fields'] = get_declared_fields(bases, attrs)
+        new_class = super(DeclarativeFieldsMetaclass,
+                     cls).__new__(cls, name, bases, attrs)
+        if 'media' not in attrs:
+            new_class.media = media_property(new_class)
+        return new_class
+
+class BaseForm(StrAndUnicode):
+    # This is the main implementation of all the Form logic. Note that this
+    # class is different than Form. See the comments by the Form class for more
+    # information. Any improvements to the form API should be made to *this*
+    # class, not to the Form class.
+    def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
+                 initial=None, error_class=ErrorList, label_suffix=':',
+                 empty_permitted=False):
+        self.is_bound = data is not None or files is not None
+        self.data = data or {}
+        self.files = files or {}
+        self.auto_id = auto_id
+        self.prefix = prefix
+        self.initial = initial or {}
+        self.error_class = error_class
+        self.label_suffix = label_suffix
+        self.empty_permitted = empty_permitted
+        self._errors = None # Stores the errors after clean() has been called.
+        self._changed_data = None
+
+        # The base_fields class attribute is the *class-wide* definition of
+        # fields. Because a particular *instance* of the class might want to
+        # alter self.fields, we create self.fields here by copying base_fields.
+        # Instances should always modify self.fields; they should not modify
+        # self.base_fields.
+        self.fields = deepcopy(self.base_fields)
+
+    def __unicode__(self):
+        return self.as_table()
+
+    def __iter__(self):
+        for name, field in self.fields.items():
+            yield BoundField(self, field, name)
+
+    def __getitem__(self, name):
+        "Returns a BoundField with the given name."
+        try:
+            field = self.fields[name]
+        except KeyError:
+            raise KeyError('Key %r not found in Form' % name)
+        return BoundField(self, field, name)
+
+    def _get_errors(self):
+        "Returns an ErrorDict for the data provided for the form"
+        if self._errors is None:
+            self.full_clean()
+        return self._errors
+    errors = property(_get_errors)
+
+    def is_valid(self):
+        """
+        Returns True if the form has no errors. Otherwise, False. If errors are
+        being ignored, returns False.
+        """
+        return self.is_bound and not bool(self.errors)
+
+    def add_prefix(self, field_name):
+        """
+        Returns the field name with a prefix appended, if this Form has a
+        prefix set.
+
+        Subclasses may wish to override.
+        """
+        return self.prefix and ('%s-%s' % (self.prefix, field_name)) or field_name
+
+    def _html_output(self, normal_row, error_row, row_ender, help_text_html, errors_on_separate_row):
+        "Helper function for outputting HTML. Used by as_table(), as_ul(), as_p()."
+        top_errors = self.non_field_errors() # Errors that should be displayed above all fields.
+        output, hidden_fields = [], []
+        for name, field in self.fields.items():
+            bf = BoundField(self, field, name)
+            bf_errors = self.error_class([escape(error) for error in bf.errors]) # Escape and cache in local variable.
+            if bf.is_hidden:
+                if bf_errors:
+                    top_errors.extend([u'(Hidden field %s) %s' % (name, force_unicode(e)) for e in bf_errors])
+                hidden_fields.append(unicode(bf))
+            else:
+                if errors_on_separate_row and bf_errors:
+                    output.append(error_row % force_unicode(bf_errors))
+                if bf.label:
+                    label = escape(force_unicode(bf.label))
+                    # Only add the suffix if the label does not end in
+                    # punctuation.
+                    if self.label_suffix:
+                        if label[-1] not in ':?.!':
+                            label += self.label_suffix
+                    label = bf.label_tag(label) or ''
+                else:
+                    label = ''
+                if field.help_text:
+                    help_text = help_text_html % force_unicode(field.help_text)
+                else:
+                    help_text = u''
+                output.append(normal_row % {'errors': force_unicode(bf_errors), 'label': force_unicode(label), 'field': unicode(bf), 'help_text': help_text})
+        if top_errors:
+            output.insert(0, error_row % force_unicode(top_errors))
+        if hidden_fields: # Insert any hidden fields in the last row.
+            str_hidden = u''.join(hidden_fields)
+            if output:
+                last_row = output[-1]
+                # Chop off the trailing row_ender (e.g. '</td></tr>') and
+                # insert the hidden fields.
+                output[-1] = last_row[:-len(row_ender)] + str_hidden + row_ender
+            else:
+                # If there aren't any rows in the output, just append the
+                # hidden fields.
+                output.append(str_hidden)
+        return mark_safe(u'\n'.join(output))
+
+    def as_table(self):
+        "Returns this form rendered as HTML <tr>s -- excluding the <table></table>."
+        return self._html_output(u'<tr><th>%(label)s</th><td>%(errors)s%(field)s%(help_text)s</td></tr>', u'<tr><td colspan="2">%s</td></tr>', '</td></tr>', u'<br />%s', False)
+
+    def as_ul(self):
+        "Returns this form rendered as HTML <li>s -- excluding the <ul></ul>."
+        return self._html_output(u'<li>%(errors)s%(label)s %(field)s%(help_text)s</li>', u'<li>%s</li>', '</li>', u' %s', False)
+
+    def as_p(self):
+        "Returns this form rendered as HTML <p>s."
+        return self._html_output(u'<p>%(label)s %(field)s%(help_text)s</p>', u'%s', '</p>', u' %s', True)
+
+    def non_field_errors(self):
+        """
+        Returns an ErrorList of errors that aren't associated with a particular
+        field -- i.e., from Form.clean(). Returns an empty ErrorList if there
+        are none.
+        """
+        return self.errors.get(NON_FIELD_ERRORS, self.error_class())
+
+    def full_clean(self):
+        """
+        Cleans all of self.data and populates self._errors and
+        self.cleaned_data.
+        """
+        self._errors = ErrorDict()
+        if not self.is_bound: # Stop further processing.
+            return
+        self.cleaned_data = {}
+        # If the form is permitted to be empty, and none of the form data has
+        # changed from the initial data, short circuit any validation.
+        if self.empty_permitted and not self.has_changed():
+            return
+        for name, field in self.fields.items():
+            # value_from_datadict() gets the data from the data dictionaries.
+            # Each widget type knows how to retrieve its own data, because some
+            # widgets split data over several HTML fields.
+            value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name))
+            try:
+                if isinstance(field, FileField):
+                    initial = self.initial.get(name, field.initial)
+                    value = field.clean(value, initial)
+                else:
+                    value = field.clean(value)
+                self.cleaned_data[name] = value
+                if hasattr(self, 'clean_%s' % name):
+                    value = getattr(self, 'clean_%s' % name)()
+                    self.cleaned_data[name] = value
+            except ValidationError, e:
+                self._errors[name] = e.messages
+                if name in self.cleaned_data:
+                    del self.cleaned_data[name]
+        try:
+            self.cleaned_data = self.clean()
+        except ValidationError, e:
+            self._errors[NON_FIELD_ERRORS] = e.messages
+        if self._errors:
+            delattr(self, 'cleaned_data')
+
+    def clean(self):
+        """
+        Hook for doing any extra form-wide cleaning after Field.clean() been
+        called on every field. Any ValidationError raised by this method will
+        not be associated with a particular field; it will have a special-case
+        association with the field named '__all__'.
+        """
+        return self.cleaned_data
+
+    def has_changed(self):
+        """
+        Returns True if data differs from initial.
+        """
+        return bool(self.changed_data)
+    
+    def _get_changed_data(self):
+        if self._changed_data is None:
+            self._changed_data = []
+            # XXX: For now we're asking the individual widgets whether or not the
+            # data has changed. It would probably be more efficient to hash the
+            # initial data, store it in a hidden field, and compare a hash of the
+            # submitted data, but we'd need a way to easily get the string value
+            # for a given field. Right now, that logic is embedded in the render
+            # method of each widget.
+            for name, field in self.fields.items():
+                prefixed_name = self.add_prefix(name)
+                data_value = field.widget.value_from_datadict(self.data, self.files, prefixed_name)
+                initial_value = self.initial.get(name, field.initial)
+                if field.widget._has_changed(initial_value, data_value):
+                    self._changed_data.append(name)
+        return self._changed_data
+    changed_data = property(_get_changed_data)
+
+    def _get_media(self):
+        """
+        Provide a description of all media required to render the widgets on this form
+        """
+        media = Media()
+        for field in self.fields.values():
+            media = media + field.widget.media
+        return media
+    media = property(_get_media)
+
+    def is_multipart(self):
+        """
+        Returns True if the form needs to be multipart-encrypted, i.e. it has
+        FileInput. Otherwise, False.
+        """
+        for field in self.fields.values():
+            if field.widget.needs_multipart_form:
+                return True
+        return False
+
+class Form(BaseForm):
+    "A collection of Fields, plus their associated data."
+    # This is a separate class from BaseForm in order to abstract the way
+    # self.fields is specified. This class (Form) is the one that does the
+    # fancy metaclass stuff purely for the semantic sugar -- it allows one
+    # to define a form using declarative syntax.
+    # BaseForm itself has no way of designating self.fields.
+    __metaclass__ = DeclarativeFieldsMetaclass
+
+class BoundField(StrAndUnicode):
+    "A Field plus data"
+    def __init__(self, form, field, name):
+        self.form = form
+        self.field = field
+        self.name = name
+        self.html_name = form.add_prefix(name)
+        if self.field.label is None:
+            self.label = pretty_name(name)
+        else:
+            self.label = self.field.label
+        self.help_text = field.help_text or ''
+
+    def __unicode__(self):
+        """Renders this field as an HTML widget."""
+        return self.as_widget()
+
+    def _errors(self):
+        """
+        Returns an ErrorList for this field. Returns an empty ErrorList
+        if there are none.
+        """
+        return self.form.errors.get(self.name, self.form.error_class())
+    errors = property(_errors)
+
+    def as_widget(self, widget=None, attrs=None):
+        """
+        Renders the field by rendering the passed widget, adding any HTML
+        attributes passed as attrs.  If no widget is specified, then the
+        field's default widget will be used.
+        """
+        if not widget:
+            widget = self.field.widget
+        attrs = attrs or {}
+        auto_id = self.auto_id
+        if auto_id and 'id' not in attrs and 'id' not in widget.attrs:
+            attrs['id'] = auto_id
+        if not self.form.is_bound:
+            data = self.form.initial.get(self.name, self.field.initial)
+            if callable(data):
+                data = data()
+        else:
+            data = self.data
+        return widget.render(self.html_name, data, attrs=attrs)
+
+    def as_text(self, attrs=None):
+        """
+        Returns a string of HTML for representing this as an <input type="text">.
+        """
+        return self.as_widget(TextInput(), attrs)
+
+    def as_textarea(self, attrs=None):
+        "Returns a string of HTML for representing this as a <textarea>."
+        return self.as_widget(Textarea(), attrs)
+
+    def as_hidden(self, attrs=None):
+        """
+        Returns a string of HTML for representing this as an <input type="hidden">.
+        """
+        return self.as_widget(self.field.hidden_widget(), attrs)
+
+    def _data(self):
+        """
+        Returns the data for this BoundField, or None if it wasn't given.
+        """
+        return self.field.widget.value_from_datadict(self.form.data, self.form.files, self.html_name)
+    data = property(_data)
+
+    def label_tag(self, contents=None, attrs=None):
+        """
+        Wraps the given contents in a <label>, if the field has an ID attribute.
+        Does not HTML-escape the contents. If contents aren't given, uses the
+        field's HTML-escaped label.
+
+        If attrs are given, they're used as HTML attributes on the <label> tag.
+        """
+        contents = contents or escape(self.label)
+        widget = self.field.widget
+        id_ = widget.attrs.get('id') or self.auto_id
+        if id_:
+            attrs = attrs and flatatt(attrs) or ''
+            contents = '<label for="%s"%s>%s</label>' % (widget.id_for_label(id_), attrs, contents)
+        return mark_safe(contents)
+
+    def _is_hidden(self):
+        "Returns True if this BoundField's widget is hidden."
+        return self.field.widget.is_hidden
+    is_hidden = property(_is_hidden)
+
+    def _auto_id(self):
+        """
+        Calculates and returns the ID attribute for this BoundField, if the
+        associated Form has specified auto_id. Returns an empty string otherwise.
+        """
+        auto_id = self.form.auto_id
+        if auto_id and '%s' in smart_unicode(auto_id):
+            return smart_unicode(auto_id) % self.html_name
+        elif auto_id:
+            return self.html_name
+        return ''
+    auto_id = property(_auto_id)
diff --git a/webapp/django/forms/formsets.py b/webapp/django/forms/formsets.py
new file mode 100644
index 0000000..2f13bf5
--- /dev/null
+++ b/webapp/django/forms/formsets.py
@@ -0,0 +1,288 @@
+from forms import Form
+from django.utils.encoding import StrAndUnicode
+from django.utils.safestring import mark_safe
+from fields import IntegerField, BooleanField
+from widgets import Media, HiddenInput
+from util import ErrorList, ValidationError
+
+__all__ = ('BaseFormSet', 'all_valid')
+
+# special field names
+TOTAL_FORM_COUNT = 'TOTAL_FORMS'
+INITIAL_FORM_COUNT = 'INITIAL_FORMS'
+ORDERING_FIELD_NAME = 'ORDER'
+DELETION_FIELD_NAME = 'DELETE'
+
+class ManagementForm(Form):
+    """
+    ``ManagementForm`` is used to keep track of how many form instances
+    are displayed on the page. If adding new forms via javascript, you should
+    increment the count field of this form as well.
+    """
+    def __init__(self, *args, **kwargs):
+        self.base_fields[TOTAL_FORM_COUNT] = IntegerField(widget=HiddenInput)
+        self.base_fields[INITIAL_FORM_COUNT] = IntegerField(widget=HiddenInput)
+        super(ManagementForm, self).__init__(*args, **kwargs)
+
+class BaseFormSet(StrAndUnicode):
+    """
+    A collection of instances of the same Form class.
+    """
+    def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
+                 initial=None, error_class=ErrorList):
+        self.is_bound = data is not None or files is not None
+        self.prefix = prefix or 'form'
+        self.auto_id = auto_id
+        self.data = data
+        self.files = files
+        self.initial = initial
+        self.error_class = error_class
+        self._errors = None
+        self._non_form_errors = None
+        # initialization is different depending on whether we recieved data, initial, or nothing
+        if data or files:
+            self.management_form = ManagementForm(data, auto_id=self.auto_id, prefix=self.prefix)
+            if self.management_form.is_valid():
+                self._total_form_count = self.management_form.cleaned_data[TOTAL_FORM_COUNT]
+                self._initial_form_count = self.management_form.cleaned_data[INITIAL_FORM_COUNT]
+            else:
+                raise ValidationError('ManagementForm data is missing or has been tampered with')
+        else:
+            if initial:
+                self._initial_form_count = len(initial)
+                if self._initial_form_count > self.max_num and self.max_num > 0:
+                    self._initial_form_count = self.max_num
+                self._total_form_count = self._initial_form_count + self.extra
+            else:
+                self._initial_form_count = 0
+                self._total_form_count = self.extra
+            if self._total_form_count > self.max_num and self.max_num > 0:
+                self._total_form_count = self.max_num
+            initial = {TOTAL_FORM_COUNT: self._total_form_count,
+                       INITIAL_FORM_COUNT: self._initial_form_count}
+            self.management_form = ManagementForm(initial=initial, auto_id=self.auto_id, prefix=self.prefix)
+        
+        # construct the forms in the formset
+        self._construct_forms()
+
+    def __unicode__(self):
+        return self.as_table()
+
+    def _construct_forms(self):
+        # instantiate all the forms and put them in self.forms
+        self.forms = []
+        for i in xrange(self._total_form_count):
+            self.forms.append(self._construct_form(i))
+    
+    def _construct_form(self, i, **kwargs):
+        """
+        Instantiates and returns the i-th form instance in a formset.
+        """
+        defaults = {'auto_id': self.auto_id, 'prefix': self.add_prefix(i)}
+        if self.data or self.files:
+            defaults['data'] = self.data
+            defaults['files'] = self.files
+        if self.initial:
+            try:
+                defaults['initial'] = self.initial[i]
+            except IndexError:
+                pass
+        # Allow extra forms to be empty.
+        if i >= self._initial_form_count:
+            defaults['empty_permitted'] = True
+        defaults.update(kwargs)
+        form = self.form(**defaults)
+        self.add_fields(form, i)
+        return form
+
+    def _get_initial_forms(self):
+        """Return a list of all the intial forms in this formset."""
+        return self.forms[:self._initial_form_count]
+    initial_forms = property(_get_initial_forms)
+
+    def _get_extra_forms(self):
+        """Return a list of all the extra forms in this formset."""
+        return self.forms[self._initial_form_count:]
+    extra_forms = property(_get_extra_forms)
+
+    # Maybe this should just go away?
+    def _get_cleaned_data(self):
+        """
+        Returns a list of form.cleaned_data dicts for every form in self.forms.
+        """
+        if not self.is_valid():
+            raise AttributeError("'%s' object has no attribute 'cleaned_data'" % self.__class__.__name__)
+        return [form.cleaned_data for form in self.forms]
+    cleaned_data = property(_get_cleaned_data)
+
+    def _get_deleted_forms(self):
+        """
+        Returns a list of forms that have been marked for deletion. Raises an 
+        AttributeError is deletion is not allowed.
+        """
+        if not self.is_valid() or not self.can_delete:
+            raise AttributeError("'%s' object has no attribute 'deleted_forms'" % self.__class__.__name__)
+        # construct _deleted_form_indexes which is just a list of form indexes
+        # that have had their deletion widget set to True
+        if not hasattr(self, '_deleted_form_indexes'):
+            self._deleted_form_indexes = []
+            for i in range(0, self._total_form_count):
+                form = self.forms[i]
+                # if this is an extra form and hasn't changed, don't consider it
+                if i >= self._initial_form_count and not form.has_changed():
+                    continue
+                if form.cleaned_data[DELETION_FIELD_NAME]:
+                    self._deleted_form_indexes.append(i)
+        return [self.forms[i] for i in self._deleted_form_indexes]
+    deleted_forms = property(_get_deleted_forms)
+
+    def _get_ordered_forms(self):
+        """
+        Returns a list of form in the order specified by the incoming data.
+        Raises an AttributeError is deletion is not allowed.
+        """
+        if not self.is_valid() or not self.can_order:
+            raise AttributeError("'%s' object has no attribute 'ordered_forms'" % self.__class__.__name__)
+        # Construct _ordering, which is a list of (form_index, order_field_value)
+        # tuples. After constructing this list, we'll sort it by order_field_value
+        # so we have a way to get to the form indexes in the order specified
+        # by the form data.
+        if not hasattr(self, '_ordering'):
+            self._ordering = []
+            for i in range(0, self._total_form_count):
+                form = self.forms[i]
+                # if this is an extra form and hasn't changed, don't consider it
+                if i >= self._initial_form_count and not form.has_changed():
+                    continue
+                # don't add data marked for deletion to self.ordered_data
+                if self.can_delete and form.cleaned_data[DELETION_FIELD_NAME]:
+                    continue
+                # A sort function to order things numerically ascending, but
+                # None should be sorted below anything else. Allowing None as
+                # a comparison value makes it so we can leave ordering fields
+                # blamk.
+                def compare_ordering_values(x, y):
+                    if x[1] is None:
+                        return 1
+                    if y[1] is None:
+                        return -1
+                    return x[1] - y[1]
+                self._ordering.append((i, form.cleaned_data[ORDERING_FIELD_NAME]))
+            # After we're done populating self._ordering, sort it.
+            self._ordering.sort(compare_ordering_values)
+        # Return a list of form.cleaned_data dicts in the order spcified by
+        # the form data.
+        return [self.forms[i[0]] for i in self._ordering]
+    ordered_forms = property(_get_ordered_forms)
+
+    def non_form_errors(self):
+        """
+        Returns an ErrorList of errors that aren't associated with a particular
+        form -- i.e., from formset.clean(). Returns an empty ErrorList if there
+        are none.
+        """
+        if self._non_form_errors is not None:
+            return self._non_form_errors
+        return self.error_class()
+
+    def _get_errors(self):
+        """
+        Returns a list of form.errors for every form in self.forms.
+        """
+        if self._errors is None:
+            self.full_clean()
+        return self._errors
+    errors = property(_get_errors)
+
+    def is_valid(self):
+        """
+        Returns True if form.errors is empty for every form in self.forms.
+        """
+        if not self.is_bound:
+            return False
+        # We loop over every form.errors here rather than short circuiting on the
+        # first failure to make sure validation gets triggered for every form.
+        forms_valid = True
+        for errors in self.errors:
+            if bool(errors):
+                forms_valid = False
+        return forms_valid and not bool(self.non_form_errors())
+
+    def full_clean(self):
+        """
+        Cleans all of self.data and populates self._errors.
+        """
+        self._errors = []
+        if not self.is_bound: # Stop further processing.
+            return
+        for i in range(0, self._total_form_count):
+            form = self.forms[i]
+            self._errors.append(form.errors)
+        # Give self.clean() a chance to do cross-form validation.
+        try:
+            self.clean()
+        except ValidationError, e:
+            self._non_form_errors = e.messages
+
+    def clean(self):
+        """
+        Hook for doing any extra formset-wide cleaning after Form.clean() has
+        been called on every form. Any ValidationError raised by this method
+        will not be associated with a particular form; it will be accesible
+        via formset.non_form_errors()
+        """
+        pass
+
+    def add_fields(self, form, index):
+        """A hook for adding extra fields on to each form instance."""
+        if self.can_order:
+            # Only pre-fill the ordering field for initial forms.
+            if index < self._initial_form_count:
+                form.fields[ORDERING_FIELD_NAME] = IntegerField(label='Order', initial=index+1, required=False)
+            else:
+                form.fields[ORDERING_FIELD_NAME] = IntegerField(label='Order', required=False)
+        if self.can_delete:
+            form.fields[DELETION_FIELD_NAME] = BooleanField(label='Delete', required=False)
+
+    def add_prefix(self, index):
+        return '%s-%s' % (self.prefix, index)
+
+    def is_multipart(self):
+        """
+        Returns True if the formset needs to be multipart-encrypted, i.e. it
+        has FileInput. Otherwise, False.
+        """
+        return self.forms[0].is_multipart()
+
+    def _get_media(self):
+        # All the forms on a FormSet are the same, so you only need to
+        # interrogate the first form for media.
+        if self.forms:
+            return self.forms[0].media
+        else:
+            return Media()
+    media = property(_get_media)
+
+    def as_table(self):
+        "Returns this formset rendered as HTML <tr>s -- excluding the <table></table>."
+        # XXX: there is no semantic division between forms here, there
+        # probably should be. It might make sense to render each form as a
+        # table row with each field as a td.
+        forms = u' '.join([form.as_table() for form in self.forms])
+        return mark_safe(u'\n'.join([unicode(self.management_form), forms]))
+
+def formset_factory(form, formset=BaseFormSet, extra=1, can_order=False,
+                    can_delete=False, max_num=0):
+    """Return a FormSet for the given form class."""
+    attrs = {'form': form, 'extra': extra,
+             'can_order': can_order, 'can_delete': can_delete,
+             'max_num': max_num}
+    return type(form.__name__ + 'FormSet', (formset,), attrs)
+
+def all_valid(formsets):
+    """Returns true if every formset in formsets is valid."""
+    valid = True
+    for formset in formsets:
+        if not formset.is_valid():
+            valid = False
+    return valid
diff --git a/webapp/django/forms/models.py b/webapp/django/forms/models.py
new file mode 100644
index 0000000..677556d
--- /dev/null
+++ b/webapp/django/forms/models.py
@@ -0,0 +1,558 @@
+"""
+Helper functions for creating Form classes from Django models
+and database field objects.
+"""
+
+from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import smart_unicode
+from django.utils.datastructures import SortedDict
+
+from util import ValidationError, ErrorList
+from forms import BaseForm, get_declared_fields
+from fields import Field, ChoiceField, IntegerField, EMPTY_VALUES
+from widgets import Select, SelectMultiple, HiddenInput, MultipleHiddenInput
+from widgets import media_property
+from formsets import BaseFormSet, formset_factory, DELETION_FIELD_NAME
+
+__all__ = (
+    'ModelForm', 'BaseModelForm', 'model_to_dict', 'fields_for_model',
+    'save_instance', 'form_for_fields', 'ModelChoiceField',
+    'ModelMultipleChoiceField',
+)
+
+def save_instance(form, instance, fields=None, fail_message='saved',
+                  commit=True):
+    """
+    Saves bound Form ``form``'s cleaned_data into model instance ``instance``.
+
+    If commit=True, then the changes to ``instance`` will be saved to the
+    database. Returns ``instance``.
+    """
+    from django.db import models
+    opts = instance._meta
+    if form.errors:
+        raise ValueError("The %s could not be %s because the data didn't"
+                         " validate." % (opts.object_name, fail_message))
+    cleaned_data = form.cleaned_data
+    for f in opts.fields:
+        if not f.editable or isinstance(f, models.AutoField) \
+                or not f.name in cleaned_data:
+            continue
+        if fields and f.name not in fields:
+            continue
+        f.save_form_data(instance, cleaned_data[f.name])
+    # Wrap up the saving of m2m data as a function.
+    def save_m2m():
+        opts = instance._meta
+        cleaned_data = form.cleaned_data
+        for f in opts.many_to_many:
+            if fields and f.name not in fields:
+                continue
+            if f.name in cleaned_data:
+                f.save_form_data(instance, cleaned_data[f.name])
+    if commit:
+        # If we are committing, save the instance and the m2m data immediately.
+        instance.save()
+        save_m2m()
+    else:
+        # We're not committing. Add a method to the form to allow deferred
+        # saving of m2m data.
+        form.save_m2m = save_m2m
+    return instance
+
+def make_model_save(model, fields, fail_message):
+    """Returns the save() method for a Form."""
+    def save(self, commit=True):
+        return save_instance(self, model(), fields, fail_message, commit)
+    return save
+
+def make_instance_save(instance, fields, fail_message):
+    """Returns the save() method for a Form."""
+    def save(self, commit=True):
+        return save_instance(self, instance, fields, fail_message, commit)
+    return save
+
+def form_for_fields(field_list):
+    """
+    Returns a Form class for the given list of Django database field instances.
+    """
+    fields = SortedDict([(f.name, f.formfield())
+                         for f in field_list if f.editable])
+    return type('FormForFields', (BaseForm,), {'base_fields': fields})
+
+
+# ModelForms #################################################################
+
+def model_to_dict(instance, fields=None, exclude=None):
+    """
+    Returns a dict containing the data in ``instance`` suitable for passing as
+    a Form's ``initial`` keyword argument.
+
+    ``fields`` is an optional list of field names. If provided, only the named
+    fields will be included in the returned dict.
+
+    ``exclude`` is an optional list of field names. If provided, the named
+    fields will be excluded from the returned dict, even if they are listed in
+    the ``fields`` argument.
+    """
+    # avoid a circular import
+    from django.db.models.fields.related import ManyToManyField, OneToOneField
+    opts = instance._meta
+    data = {}
+    for f in opts.fields + opts.many_to_many:
+        if not f.editable:
+            continue
+        if fields and not f.name in fields:
+            continue
+        if exclude and f.name in exclude:
+            continue
+        if isinstance(f, ManyToManyField):
+            # If the object doesn't have a primry key yet, just use an empty
+            # list for its m2m fields. Calling f.value_from_object will raise
+            # an exception.
+            if instance.pk is None:
+                data[f.name] = []
+            else:
+                # MultipleChoiceWidget needs a list of pks, not object instances.
+                data[f.name] = [obj.pk for obj in f.value_from_object(instance)]
+        elif isinstance(f, OneToOneField):
+            data[f.attname] = f.value_from_object(instance)
+        else:
+            data[f.name] = f.value_from_object(instance)
+    return data
+
+def fields_for_model(model, fields=None, exclude=None, formfield_callback=lambda f: f.formfield()):
+    """
+    Returns a ``SortedDict`` containing form fields for the given model.
+
+    ``fields`` is an optional list of field names. If provided, only the named
+    fields will be included in the returned fields.
+
+    ``exclude`` is an optional list of field names. If provided, the named
+    fields will be excluded from the returned fields, even if they are listed
+    in the ``fields`` argument.
+    """
+    # TODO: if fields is provided, it would be nice to return fields in that order
+    field_list = []
+    opts = model._meta
+    for f in opts.fields + opts.many_to_many:
+        if not f.editable:
+            continue
+        if fields and not f.name in fields:
+            continue
+        if exclude and f.name in exclude:
+            continue
+        formfield = formfield_callback(f)
+        if formfield:
+            field_list.append((f.name, formfield))
+    return SortedDict(field_list)
+
+class ModelFormOptions(object):
+    def __init__(self, options=None):
+        self.model = getattr(options, 'model', None)
+        self.fields = getattr(options, 'fields', None)
+        self.exclude = getattr(options, 'exclude', None)
+
+
+class ModelFormMetaclass(type):
+    def __new__(cls, name, bases, attrs):
+        formfield_callback = attrs.pop('formfield_callback',
+                lambda f: f.formfield())
+        try:
+            parents = [b for b in bases if issubclass(b, ModelForm)]
+        except NameError:
+            # We are defining ModelForm itself.
+            parents = None
+        new_class = super(ModelFormMetaclass, cls).__new__(cls, name, bases,
+                attrs)
+        if not parents:
+            return new_class
+
+        if 'media' not in attrs:
+            new_class.media = media_property(new_class)
+        declared_fields = get_declared_fields(bases, attrs, False)
+        opts = new_class._meta = ModelFormOptions(getattr(new_class, 'Meta', None))
+        if opts.model:
+            # If a model is defined, extract form fields from it.
+            fields = fields_for_model(opts.model, opts.fields,
+                                      opts.exclude, formfield_callback)
+            # Override default model fields with any custom declared ones
+            # (plus, include all the other declared fields).
+            fields.update(declared_fields)
+        else:
+            fields = declared_fields
+        new_class.declared_fields = declared_fields
+        new_class.base_fields = fields
+        return new_class
+
+class BaseModelForm(BaseForm):
+    def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
+                 initial=None, error_class=ErrorList, label_suffix=':',
+                 empty_permitted=False, instance=None):
+        opts = self._meta
+        if instance is None:
+            # if we didn't get an instance, instantiate a new one
+            self.instance = opts.model()
+            object_data = {}
+        else:
+            self.instance = instance
+            object_data = model_to_dict(instance, opts.fields, opts.exclude)
+        # if initial was provided, it should override the values from instance
+        if initial is not None:
+            object_data.update(initial)
+        super(BaseModelForm, self).__init__(data, files, auto_id, prefix, object_data,
+                                            error_class, label_suffix, empty_permitted)
+
+    def save(self, commit=True):
+        """
+        Saves this ``form``'s cleaned_data into model instance
+        ``self.instance``.
+
+        If commit=True, then the changes to ``instance`` will be saved to the
+        database. Returns ``instance``.
+        """
+        if self.instance.pk is None:
+            fail_message = 'created'
+        else:
+            fail_message = 'changed'
+        return save_instance(self, self.instance, self._meta.fields, fail_message, commit)
+
+class ModelForm(BaseModelForm):
+    __metaclass__ = ModelFormMetaclass
+
+def modelform_factory(model, form=ModelForm, fields=None, exclude=None,
+                       formfield_callback=lambda f: f.formfield()):
+    # HACK: we should be able to construct a ModelForm without creating
+    # and passing in a temporary inner class
+    class Meta:
+        pass
+    setattr(Meta, 'model', model)
+    setattr(Meta, 'fields', fields)
+    setattr(Meta, 'exclude', exclude)
+    class_name = model.__name__ + 'Form'
+    return ModelFormMetaclass(class_name, (form,), {'Meta': Meta,
+                              'formfield_callback': formfield_callback})
+
+
+# ModelFormSets ##############################################################
+
+class BaseModelFormSet(BaseFormSet):
+    """
+    A ``FormSet`` for editing a queryset and/or adding new objects to it.
+    """
+    model = None
+
+    def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
+                 queryset=None, **kwargs):
+        self.queryset = queryset
+        defaults = {'data': data, 'files': files, 'auto_id': auto_id, 'prefix': prefix}
+        if self.max_num > 0:
+            qs = self.get_queryset()[:self.max_num]
+        else:
+            qs = self.get_queryset()
+        defaults['initial'] = [model_to_dict(obj) for obj in qs]
+        defaults.update(kwargs)
+        super(BaseModelFormSet, self).__init__(**defaults)
+
+    def get_queryset(self):
+        if self.queryset is not None:
+            return self.queryset
+        return self.model._default_manager.get_query_set()
+
+    def save_new(self, form, commit=True):
+        """Saves and returns a new model instance for the given form."""
+        return save_instance(form, self.model(), commit=commit)
+
+    def save_existing(self, form, instance, commit=True):
+        """Saves and returns an existing model instance for the given form."""
+        return save_instance(form, instance, commit=commit)
+
+    def save(self, commit=True):
+        """Saves model instances for every form, adding and changing instances
+        as necessary, and returns the list of instances.
+        """
+        if not commit:
+            self.saved_forms = []
+            def save_m2m():
+                for form in self.saved_forms:
+                    form.save_m2m()
+            self.save_m2m = save_m2m
+        return self.save_existing_objects(commit) + self.save_new_objects(commit)
+
+    def save_existing_objects(self, commit=True):
+        self.changed_objects = []
+        self.deleted_objects = []
+        if not self.get_queryset():
+            return []
+
+        # Put the objects from self.get_queryset into a dict so they are easy to lookup by pk
+        existing_objects = {}
+        for obj in self.get_queryset():
+            existing_objects[obj.pk] = obj
+        saved_instances = []
+        for form in self.initial_forms:
+            obj = existing_objects[form.cleaned_data[self.model._meta.pk.attname]]
+            if self.can_delete and form.cleaned_data[DELETION_FIELD_NAME]:
+                self.deleted_objects.append(obj)
+                obj.delete()
+            else:
+                if form.changed_data:
+                    self.changed_objects.append((obj, form.changed_data))
+                    saved_instances.append(self.save_existing(form, obj, commit=commit))
+                    if not commit:
+                        self.saved_forms.append(form)
+        return saved_instances
+
+    def save_new_objects(self, commit=True):
+        self.new_objects = []
+        for form in self.extra_forms:
+            if not form.has_changed():
+                continue
+            # If someone has marked an add form for deletion, don't save the
+            # object.
+            if self.can_delete and form.cleaned_data[DELETION_FIELD_NAME]:
+                continue
+            self.new_objects.append(self.save_new(form, commit=commit))
+            if not commit:
+                self.saved_forms.append(form)
+        return self.new_objects
+
+    def add_fields(self, form, index):
+        """Add a hidden field for the object's primary key."""
+        if self.model._meta.pk.auto_created:
+            self._pk_field_name = self.model._meta.pk.attname
+            form.fields[self._pk_field_name] = IntegerField(required=False, widget=HiddenInput)
+        super(BaseModelFormSet, self).add_fields(form, index)
+
+def modelformset_factory(model, form=ModelForm, formfield_callback=lambda f: f.formfield(),
+                         formset=BaseModelFormSet,
+                         extra=1, can_delete=False, can_order=False,
+                         max_num=0, fields=None, exclude=None):
+    """
+    Returns a FormSet class for the given Django model class.
+    """
+    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
+                             formfield_callback=formfield_callback)
+    FormSet = formset_factory(form, formset, extra=extra, max_num=max_num,
+                              can_order=can_order, can_delete=can_delete)
+    FormSet.model = model
+    return FormSet
+
+
+# InlineFormSets #############################################################
+
+class BaseInlineFormSet(BaseModelFormSet):
+    """A formset for child objects related to a parent."""
+    def __init__(self, data=None, files=None, instance=None,
+                 save_as_new=False, prefix=None):
+        from django.db.models.fields.related import RelatedObject
+        self.instance = instance
+        self.save_as_new = save_as_new
+        # is there a better way to get the object descriptor?
+        self.rel_name = RelatedObject(self.fk.rel.to, self.model, self.fk).get_accessor_name()
+        super(BaseInlineFormSet, self).__init__(data, files, prefix=prefix or self.rel_name)
+
+    def _construct_forms(self):
+        if self.save_as_new:
+            self._total_form_count = self._initial_form_count
+            self._initial_form_count = 0
+        super(BaseInlineFormSet, self)._construct_forms()
+
+    def get_queryset(self):
+        """
+        Returns this FormSet's queryset, but restricted to children of
+        self.instance
+        """
+        kwargs = {self.fk.name: self.instance}
+        return self.model._default_manager.filter(**kwargs)
+
+    def save_new(self, form, commit=True):
+        kwargs = {self.fk.get_attname(): self.instance.pk}
+        new_obj = self.model(**kwargs)
+        return save_instance(form, new_obj, commit=commit)
+
+def _get_foreign_key(parent_model, model, fk_name=None):
+    """
+    Finds and returns the ForeignKey from model to parent if there is one.
+    If fk_name is provided, assume it is the name of the ForeignKey field.
+    """
+    # avoid circular import
+    from django.db.models import ForeignKey
+    opts = model._meta
+    if fk_name:
+        fks_to_parent = [f for f in opts.fields if f.name == fk_name]
+        if len(fks_to_parent) == 1:
+            fk = fks_to_parent[0]
+            if not isinstance(fk, ForeignKey) or \
+                    (fk.rel.to != parent_model and
+                     fk.rel.to not in parent_model._meta.parents.keys()):
+                raise Exception("fk_name '%s' is not a ForeignKey to %s" % (fk_name, parent_model))
+        elif len(fks_to_parent) == 0:
+            raise Exception("%s has no field named '%s'" % (model, fk_name))
+    else:
+        # Try to discover what the ForeignKey from model to parent_model is
+        fks_to_parent = [
+            f for f in opts.fields
+            if isinstance(f, ForeignKey)
+            and (f.rel.to == parent_model
+                or f.rel.to in parent_model._meta.parents.keys())
+        ]
+        if len(fks_to_parent) == 1:
+            fk = fks_to_parent[0]
+        elif len(fks_to_parent) == 0:
+            raise Exception("%s has no ForeignKey to %s" % (model, parent_model))
+        else:
+            raise Exception("%s has more than 1 ForeignKey to %s" % (model, parent_model))
+    return fk
+
+
+def inlineformset_factory(parent_model, model, form=ModelForm,
+                          formset=BaseInlineFormSet, fk_name=None,
+                          fields=None, exclude=None,
+                          extra=3, can_order=False, can_delete=True, max_num=0,
+                          formfield_callback=lambda f: f.formfield()):
+    """
+    Returns an ``InlineFormSet`` for the given kwargs.
+
+    You must provide ``fk_name`` if ``model`` has more than one ``ForeignKey``
+    to ``parent_model``.
+    """
+    fk = _get_foreign_key(parent_model, model, fk_name=fk_name)
+    # let the formset handle object deletion by default
+
+    if exclude is not None:
+        exclude.append(fk.name)
+    else:
+        exclude = [fk.name]
+    FormSet = modelformset_factory(model, form=form,
+                                    formfield_callback=formfield_callback,
+                                    formset=formset,
+                                    extra=extra, can_delete=can_delete, can_order=can_order,
+                                    fields=fields, exclude=exclude, max_num=max_num)
+    FormSet.fk = fk
+    return FormSet
+
+
+# Fields #####################################################################
+
+class ModelChoiceIterator(object):
+    def __init__(self, field):
+        self.field = field
+        self.queryset = field.queryset
+
+    def __iter__(self):
+        if self.field.empty_label is not None:
+            yield (u"", self.field.empty_label)
+        if self.field.cache_choices:
+            if self.field.choice_cache is None:
+                self.field.choice_cache = [
+                    (obj.pk, self.field.label_from_instance(obj))
+                    for obj in self.queryset.all()
+                ]
+            for choice in self.field.choice_cache:
+                yield choice
+        else:
+            for obj in self.queryset.all():
+                yield (obj.pk, self.field.label_from_instance(obj))
+
+class ModelChoiceField(ChoiceField):
+    """A ChoiceField whose choices are a model QuerySet."""
+    # This class is a subclass of ChoiceField for purity, but it doesn't
+    # actually use any of ChoiceField's implementation.
+    default_error_messages = {
+        'invalid_choice': _(u'Select a valid choice. That choice is not one of'
+                            u' the available choices.'),
+    }
+
+    def __init__(self, queryset, empty_label=u"---------", cache_choices=False,
+                 required=True, widget=None, label=None, initial=None,
+                 help_text=None, *args, **kwargs):
+        self.empty_label = empty_label
+        self.cache_choices = cache_choices
+
+        # Call Field instead of ChoiceField __init__() because we don't need
+        # ChoiceField.__init__().
+        Field.__init__(self, required, widget, label, initial, help_text,
+                       *args, **kwargs)
+        self.queryset = queryset
+        self.choice_cache = None
+
+    def _get_queryset(self):
+        return self._queryset
+
+    def _set_queryset(self, queryset):
+        self._queryset = queryset
+        self.widget.choices = self.choices
+
+    queryset = property(_get_queryset, _set_queryset)
+
+    # this method will be used to create object labels by the QuerySetIterator.
+    # Override it to customize the label.
+    def label_from_instance(self, obj):
+        """
+        This method is used to convert objects into strings; it's used to
+        generate the labels for the choices presented by this object. Subclasses
+        can override this method to customize the display of the choices.
+        """
+        return smart_unicode(obj)
+
+    def _get_choices(self):
+        # If self._choices is set, then somebody must have manually set
+        # the property self.choices. In this case, just return self._choices.
+        if hasattr(self, '_choices'):
+            return self._choices
+
+        # Otherwise, execute the QuerySet in self.queryset to determine the
+        # choices dynamically. Return a fresh QuerySetIterator that has not been
+        # consumed. Note that we're instantiating a new QuerySetIterator *each*
+        # time _get_choices() is called (and, thus, each time self.choices is
+        # accessed) so that we can ensure the QuerySet has not been consumed. This
+        # construct might look complicated but it allows for lazy evaluation of
+        # the queryset.
+        return ModelChoiceIterator(self)
+
+    choices = property(_get_choices, ChoiceField._set_choices)
+
+    def clean(self, value):
+        Field.clean(self, value)
+        if value in EMPTY_VALUES:
+            return None
+        try:
+            value = self.queryset.get(pk=value)
+        except self.queryset.model.DoesNotExist:
+            raise ValidationError(self.error_messages['invalid_choice'])
+        return value
+
+class ModelMultipleChoiceField(ModelChoiceField):
+    """A MultipleChoiceField whose choices are a model QuerySet."""
+    widget = SelectMultiple
+    hidden_widget = MultipleHiddenInput
+    default_error_messages = {
+        'list': _(u'Enter a list of values.'),
+        'invalid_choice': _(u'Select a valid choice. %s is not one of the'
+                            u' available choices.'),
+    }
+
+    def __init__(self, queryset, cache_choices=False, required=True,
+                 widget=None, label=None, initial=None,
+                 help_text=None, *args, **kwargs):
+        super(ModelMultipleChoiceField, self).__init__(queryset, None,
+            cache_choices, required, widget, label, initial, help_text,
+            *args, **kwargs)
+
+    def clean(self, value):
+        if self.required and not value:
+            raise ValidationError(self.error_messages['required'])
+        elif not self.required and not value:
+            return []
+        if not isinstance(value, (list, tuple)):
+            raise ValidationError(self.error_messages['list'])
+        final_values = []
+        for val in value:
+            try:
+                obj = self.queryset.get(pk=val)
+            except self.queryset.model.DoesNotExist:
+                raise ValidationError(self.error_messages['invalid_choice'] % val)
+            else:
+                final_values.append(obj)
+        return final_values
diff --git a/webapp/django/forms/util.py b/webapp/django/forms/util.py
new file mode 100644
index 0000000..3d80ad2
--- /dev/null
+++ b/webapp/django/forms/util.py
@@ -0,0 +1,68 @@
+from django.utils.html import escape
+from django.utils.encoding import smart_unicode, StrAndUnicode, force_unicode
+from django.utils.safestring import mark_safe
+
+def flatatt(attrs):
+    """
+    Convert a dictionary of attributes to a single string.
+    The returned string will contain a leading space followed by key="value",
+    XML-style pairs.  It is assumed that the keys do not need to be XML-escaped.
+    If the passed dictionary is empty, then return an empty string.
+    """
+    return u''.join([u' %s="%s"' % (k, escape(v)) for k, v in attrs.items()])
+
+class ErrorDict(dict, StrAndUnicode):
+    """
+    A collection of errors that knows how to display itself in various formats.
+
+    The dictionary keys are the field names, and the values are the errors.
+    """
+    def __unicode__(self):
+        return self.as_ul()
+
+    def as_ul(self):
+        if not self: return u''
+        return mark_safe(u'<ul class="errorlist">%s</ul>'
+                % ''.join([u'<li>%s%s</li>' % (k, force_unicode(v))
+                    for k, v in self.items()]))
+
+    def as_text(self):
+        return u'\n'.join([u'* %s\n%s' % (k, u'\n'.join([u'  * %s' % force_unicode(i) for i in v])) for k, v in self.items()])
+
+class ErrorList(list, StrAndUnicode):
+    """
+    A collection of errors that knows how to display itself in various formats.
+    """
+    def __unicode__(self):
+        return self.as_ul()
+
+    def as_ul(self):
+        if not self: return u''
+        return mark_safe(u'<ul class="errorlist">%s</ul>'
+                % ''.join([u'<li>%s</li>' % force_unicode(e) for e in self]))
+
+    def as_text(self):
+        if not self: return u''
+        return u'\n'.join([u'* %s' % force_unicode(e) for e in self])
+
+    def __repr__(self):
+        return repr([force_unicode(e) for e in self])
+
+class ValidationError(Exception):
+    def __init__(self, message):
+        """
+        ValidationError can be passed any object that can be printed (usually
+        a string) or a list of objects.
+        """
+        if isinstance(message, list):
+            self.messages = ErrorList([smart_unicode(msg) for msg in message])
+        else:
+            message = smart_unicode(message)
+            self.messages = ErrorList([message])
+
+    def __str__(self):
+        # This is needed because, without a __str__(), printing an exception
+        # instance would result in this:
+        # AttributeError: ValidationError instance has no attribute 'args'
+        # See http://www.python.org/doc/current/tut/node10.html#handling
+        return repr(self.messages)
diff --git a/webapp/django/forms/widgets.py b/webapp/django/forms/widgets.py
new file mode 100644
index 0000000..2e01634
--- /dev/null
+++ b/webapp/django/forms/widgets.py
@@ -0,0 +1,663 @@
+"""
+HTML Widget classes
+"""
+
+try:
+    set
+except NameError:
+    from sets import Set as set   # Python 2.3 fallback
+
+import copy
+from itertools import chain
+from django.conf import settings
+from django.utils.datastructures import MultiValueDict, MergeDict
+from django.utils.html import escape, conditional_escape
+from django.utils.translation import ugettext
+from django.utils.encoding import StrAndUnicode, force_unicode
+from django.utils.safestring import mark_safe
+from django.utils import datetime_safe
+from util import flatatt
+from urlparse import urljoin
+
+__all__ = (
+    'Media', 'MediaDefiningClass', 'Widget', 'TextInput', 'PasswordInput',
+    'HiddenInput', 'MultipleHiddenInput',
+    'FileInput', 'DateTimeInput', 'TimeInput', 'Textarea', 'CheckboxInput',
+    'Select', 'NullBooleanSelect', 'SelectMultiple', 'RadioSelect',
+    'CheckboxSelectMultiple', 'MultiWidget', 'SplitDateTimeWidget',
+)
+
+MEDIA_TYPES = ('css','js')
+
+class Media(StrAndUnicode):
+    def __init__(self, media=None, **kwargs):
+        if media:
+            media_attrs = media.__dict__
+        else:
+            media_attrs = kwargs
+
+        self._css = {}
+        self._js = []
+
+        for name in MEDIA_TYPES:
+            getattr(self, 'add_' + name)(media_attrs.get(name, None))
+
+        # Any leftover attributes must be invalid.
+        # if media_attrs != {}:
+        #     raise TypeError, "'class Media' has invalid attribute(s): %s" % ','.join(media_attrs.keys())
+
+    def __unicode__(self):
+        return self.render()
+
+    def render(self):
+        return mark_safe(u'\n'.join(chain(*[getattr(self, 'render_' + name)() for name in MEDIA_TYPES])))
+
+    def render_js(self):
+        return [u'<script type="text/javascript" src="%s"></script>' % self.absolute_path(path) for path in self._js]
+
+    def render_css(self):
+        # To keep rendering order consistent, we can't just iterate over items().
+        # We need to sort the keys, and iterate over the sorted list.
+        media = self._css.keys()
+        media.sort()
+        return chain(*[
+            [u'<link href="%s" type="text/css" media="%s" rel="stylesheet" />' % (self.absolute_path(path), medium)
+                    for path in self._css[medium]]
+                for medium in media])
+
+    def absolute_path(self, path):
+        if path.startswith(u'http://') or path.startswith(u'https://') or path.startswith(u'/'):
+            return path
+        return urljoin(settings.MEDIA_URL,path)
+
+    def __getitem__(self, name):
+        "Returns a Media object that only contains media of the given type"
+        if name in MEDIA_TYPES:
+            return Media(**{name: getattr(self, '_' + name)})
+        raise KeyError('Unknown media type "%s"' % name)
+
+    def add_js(self, data):
+        if data:
+            self._js.extend([path for path in data if path not in self._js])
+
+    def add_css(self, data):
+        if data:
+            for medium, paths in data.items():
+                self._css.setdefault(medium, []).extend([path for path in paths if path not in self._css[medium]])
+
+    def __add__(self, other):
+        combined = Media()
+        for name in MEDIA_TYPES:
+            getattr(combined, 'add_' + name)(getattr(self, '_' + name, None))
+            getattr(combined, 'add_' + name)(getattr(other, '_' + name, None))
+        return combined
+
+def media_property(cls):
+    def _media(self):
+        # Get the media property of the superclass, if it exists
+        if hasattr(super(cls, self), 'media'):
+            base = super(cls, self).media
+        else:
+            base = Media()
+
+        # Get the media definition for this class
+        definition = getattr(cls, 'Media', None)
+        if definition:
+            extend = getattr(definition, 'extend', True)
+            if extend:
+                if extend == True:
+                    m = base
+                else:
+                    m = Media()
+                    for medium in extend:
+                        m = m + base[medium]
+                return m + Media(definition)
+            else:
+                return Media(definition)
+        else:
+            return base
+    return property(_media)
+
+class MediaDefiningClass(type):
+    "Metaclass for classes that can have media definitions"
+    def __new__(cls, name, bases, attrs):
+        new_class = super(MediaDefiningClass, cls).__new__(cls, name, bases,
+                                                           attrs)
+        if 'media' not in attrs:
+            new_class.media = media_property(new_class)
+        return new_class
+
+class Widget(object):
+    __metaclass__ = MediaDefiningClass
+    is_hidden = False          # Determines whether this corresponds to an <input type="hidden">.
+    needs_multipart_form = False # Determines does this widget need multipart-encrypted form
+
+    def __init__(self, attrs=None):
+        if attrs is not None:
+            self.attrs = attrs.copy()
+        else:
+            self.attrs = {}
+
+    def __deepcopy__(self, memo):
+        obj = copy.copy(self)
+        obj.attrs = self.attrs.copy()
+        memo[id(self)] = obj
+        return obj
+
+    def render(self, name, value, attrs=None):
+        """
+        Returns this Widget rendered as HTML, as a Unicode string.
+
+        The 'value' given is not guaranteed to be valid input, so subclass
+        implementations should program defensively.
+        """
+        raise NotImplementedError
+
+    def build_attrs(self, extra_attrs=None, **kwargs):
+        "Helper function for building an attribute dictionary."
+        attrs = dict(self.attrs, **kwargs)
+        if extra_attrs:
+            attrs.update(extra_attrs)
+        return attrs
+
+    def value_from_datadict(self, data, files, name):
+        """
+        Given a dictionary of data and this widget's name, returns the value
+        of this widget. Returns None if it's not provided.
+        """
+        return data.get(name, None)
+
+    def _has_changed(self, initial, data):
+        """
+        Return True if data differs from initial.
+        """
+        # For purposes of seeing whether something has changed, None is
+        # the same as an empty string, if the data or inital value we get
+        # is None, replace it w/ u''.
+        if data is None:
+            data_value = u''
+        else:
+            data_value = data
+        if initial is None:
+            initial_value = u''
+        else:
+            initial_value = initial
+        if force_unicode(initial_value) != force_unicode(data_value):
+            return True
+        return False
+
+    def id_for_label(self, id_):
+        """
+        Returns the HTML ID attribute of this Widget for use by a <label>,
+        given the ID of the field. Returns None if no ID is available.
+
+        This hook is necessary because some widgets have multiple HTML
+        elements and, thus, multiple IDs. In that case, this method should
+        return an ID value that corresponds to the first ID in the widget's
+        tags.
+        """
+        return id_
+    id_for_label = classmethod(id_for_label)
+
+class Input(Widget):
+    """
+    Base class for all <input> widgets (except type='checkbox' and
+    type='radio', which are special).
+    """
+    input_type = None # Subclasses must define this.
+
+    def render(self, name, value, attrs=None):
+        if value is None: value = ''
+        final_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
+        if value != '':
+            # Only add the 'value' attribute if a value is non-empty.
+            final_attrs['value'] = force_unicode(value)
+        return mark_safe(u'<input%s />' % flatatt(final_attrs))
+
+class TextInput(Input):
+    input_type = 'text'
+
+class PasswordInput(Input):
+    input_type = 'password'
+
+    def __init__(self, attrs=None, render_value=True):
+        super(PasswordInput, self).__init__(attrs)
+        self.render_value = render_value
+
+    def render(self, name, value, attrs=None):
+        if not self.render_value: value=None
+        return super(PasswordInput, self).render(name, value, attrs)
+
+class HiddenInput(Input):
+    input_type = 'hidden'
+    is_hidden = True
+
+class MultipleHiddenInput(HiddenInput):
+    """
+    A widget that handles <input type="hidden"> for fields that have a list
+    of values.
+    """
+    def __init__(self, attrs=None, choices=()):
+        super(MultipleHiddenInput, self).__init__(attrs)
+        # choices can be any iterable
+        self.choices = choices
+
+    def render(self, name, value, attrs=None, choices=()):
+        if value is None: value = []
+        final_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
+        return mark_safe(u'\n'.join([(u'<input%s />' %
+            flatatt(dict(value=force_unicode(v), **final_attrs)))
+            for v in value]))
+
+    def value_from_datadict(self, data, files, name):
+        if isinstance(data, (MultiValueDict, MergeDict)):
+            return data.getlist(name)
+        return data.get(name, None)
+
+class FileInput(Input):
+    input_type = 'file'
+    needs_multipart_form = True
+
+    def render(self, name, value, attrs=None):
+        return super(FileInput, self).render(name, None, attrs=attrs)
+
+    def value_from_datadict(self, data, files, name):
+        "File widgets take data from FILES, not POST"
+        return files.get(name, None)
+
+    def _has_changed(self, initial, data):
+        if data is None:
+            return False
+        return True
+
+class Textarea(Widget):
+    def __init__(self, attrs=None):
+        # The 'rows' and 'cols' attributes are required for HTML correctness.
+        self.attrs = {'cols': '40', 'rows': '10'}
+        if attrs:
+            self.attrs.update(attrs)
+
+    def render(self, name, value, attrs=None):
+        if value is None: value = ''
+        value = force_unicode(value)
+        final_attrs = self.build_attrs(attrs, name=name)
+        return mark_safe(u'<textarea%s>%s</textarea>' % (flatatt(final_attrs),
+                conditional_escape(force_unicode(value))))
+
+class DateTimeInput(Input):
+    input_type = 'text'
+    format = '%Y-%m-%d %H:%M:%S'     # '2006-10-25 14:30:59'
+
+    def __init__(self, attrs=None, format=None):
+        super(DateTimeInput, self).__init__(attrs)
+        if format:
+            self.format = format
+
+    def render(self, name, value, attrs=None):
+        if value is None:
+            value = ''
+        elif hasattr(value, 'strftime'):
+            value = datetime_safe.new_datetime(value)
+            value = value.strftime(self.format)
+        return super(DateTimeInput, self).render(name, value, attrs)
+
+class TimeInput(Input):
+    input_type = 'text'
+
+    def render(self, name, value, attrs=None):
+        if value is None:
+            value = ''
+        elif hasattr(value, 'replace'):
+            value = value.replace(microsecond=0)
+        return super(TimeInput, self).render(name, value, attrs)
+
+class CheckboxInput(Widget):
+    def __init__(self, attrs=None, check_test=bool):
+        super(CheckboxInput, self).__init__(attrs)
+        # check_test is a callable that takes a value and returns True
+        # if the checkbox should be checked for that value.
+        self.check_test = check_test
+
+    def render(self, name, value, attrs=None):
+        final_attrs = self.build_attrs(attrs, type='checkbox', name=name)
+        try:
+            result = self.check_test(value)
+        except: # Silently catch exceptions
+            result = False
+        if result:
+            final_attrs['checked'] = 'checked'
+        if value not in ('', True, False, None):
+            # Only add the 'value' attribute if a value is non-empty.
+            final_attrs['value'] = force_unicode(value)
+        return mark_safe(u'<input%s />' % flatatt(final_attrs))
+
+    def value_from_datadict(self, data, files, name):
+        if name not in data:
+            # A missing value means False because HTML form submission does not
+            # send results for unselected checkboxes.
+            return False
+        return super(CheckboxInput, self).value_from_datadict(data, files, name)
+
+    def _has_changed(self, initial, data):
+        # Sometimes data or initial could be None or u'' which should be the
+        # same thing as False.
+        return bool(initial) != bool(data)
+
+class Select(Widget):
+    def __init__(self, attrs=None, choices=()):
+        super(Select, self).__init__(attrs)
+        # choices can be any iterable, but we may need to render this widget
+        # multiple times. Thus, collapse it into a list so it can be consumed
+        # more than once.
+        self.choices = list(choices)
+
+    def render(self, name, value, attrs=None, choices=()):
+        if value is None: value = ''
+        final_attrs = self.build_attrs(attrs, name=name)
+        output = [u'<select%s>' % flatatt(final_attrs)]
+        options = self.render_options(choices, [value])
+        if options:
+            output.append(options)
+        output.append('</select>')
+        return mark_safe(u'\n'.join(output))
+
+    def render_options(self, choices, selected_choices):
+        def render_option(option_value, option_label):
+            option_value = force_unicode(option_value)
+            selected_html = (option_value in selected_choices) and u' selected="selected"' or ''
+            return u'<option value="%s"%s>%s</option>' % (
+                escape(option_value), selected_html,
+                conditional_escape(force_unicode(option_label)))
+        # Normalize to strings.
+        selected_choices = set([force_unicode(v) for v in selected_choices])
+        output = []
+        for option_value, option_label in chain(self.choices, choices):
+            if isinstance(option_label, (list, tuple)):
+                output.append(u'<optgroup label="%s">' % escape(force_unicode(option_value)))
+                for option in option_label:
+                    output.append(render_option(*option))
+                output.append(u'</optgroup>')
+            else:
+                output.append(render_option(option_value, option_label))
+        return u'\n'.join(output)
+
+class NullBooleanSelect(Select):
+    """
+    A Select Widget intended to be used with NullBooleanField.
+    """
+    def __init__(self, attrs=None):
+        choices = ((u'1', ugettext('Unknown')), (u'2', ugettext('Yes')), (u'3', ugettext('No')))
+        super(NullBooleanSelect, self).__init__(attrs, choices)
+
+    def render(self, name, value, attrs=None, choices=()):
+        try:
+            value = {True: u'2', False: u'3', u'2': u'2', u'3': u'3'}[value]
+        except KeyError:
+            value = u'1'
+        return super(NullBooleanSelect, self).render(name, value, attrs, choices)
+
+    def value_from_datadict(self, data, files, name):
+        value = data.get(name, None)
+        return {u'2': True, u'3': False, True: True, False: False}.get(value, None)
+
+    def _has_changed(self, initial, data):
+        # Sometimes data or initial could be None or u'' which should be the
+        # same thing as False.
+        return bool(initial) != bool(data)
+
+class SelectMultiple(Select):
+    def render(self, name, value, attrs=None, choices=()):
+        if value is None: value = []
+        final_attrs = self.build_attrs(attrs, name=name)
+        output = [u'<select multiple="multiple"%s>' % flatatt(final_attrs)]
+        options = self.render_options(choices, value)
+        if options:
+            output.append(options)
+        output.append('</select>')
+        return mark_safe(u'\n'.join(output))
+
+    def value_from_datadict(self, data, files, name):
+        if isinstance(data, (MultiValueDict, MergeDict)):
+            return data.getlist(name)
+        return data.get(name, None)
+
+    def _has_changed(self, initial, data):
+        if initial is None:
+            initial = []
+        if data is None:
+            data = []
+        if len(initial) != len(data):
+            return True
+        for value1, value2 in zip(initial, data):
+            if force_unicode(value1) != force_unicode(value2):
+                return True
+        return False
+
+class RadioInput(StrAndUnicode):
+    """
+    An object used by RadioFieldRenderer that represents a single
+    <input type='radio'>.
+    """
+
+    def __init__(self, name, value, attrs, choice, index):
+        self.name, self.value = name, value
+        self.attrs = attrs
+        self.choice_value = force_unicode(choice[0])
+        self.choice_label = force_unicode(choice[1])
+        self.index = index
+
+    def __unicode__(self):
+        if 'id' in self.attrs:
+            label_for = ' for="%s_%s"' % (self.attrs['id'], self.index)
+        else:
+            label_for = ''
+        choice_label = conditional_escape(force_unicode(self.choice_label))
+        return mark_safe(u'<label%s>%s %s</label>' % (label_for, self.tag(), choice_label))
+
+    def is_checked(self):
+        return self.value == self.choice_value
+
+    def tag(self):
+        if 'id' in self.attrs:
+            self.attrs['id'] = '%s_%s' % (self.attrs['id'], self.index)
+        final_attrs = dict(self.attrs, type='radio', name=self.name, value=self.choice_value)
+        if self.is_checked():
+            final_attrs['checked'] = 'checked'
+        return mark_safe(u'<input%s />' % flatatt(final_attrs))
+
+class RadioFieldRenderer(StrAndUnicode):
+    """
+    An object used by RadioSelect to enable customization of radio widgets.
+    """
+
+    def __init__(self, name, value, attrs, choices):
+        self.name, self.value, self.attrs = name, value, attrs
+        self.choices = choices
+
+    def __iter__(self):
+        for i, choice in enumerate(self.choices):
+            yield RadioInput(self.name, self.value, self.attrs.copy(), choice, i)
+
+    def __getitem__(self, idx):
+        choice = self.choices[idx] # Let the IndexError propogate
+        return RadioInput(self.name, self.value, self.attrs.copy(), choice, idx)
+
+    def __unicode__(self):
+        return self.render()
+
+    def render(self):
+        """Outputs a <ul> for this set of radio fields."""
+        return mark_safe(u'<ul>\n%s\n</ul>' % u'\n'.join([u'<li>%s</li>'
+                % force_unicode(w) for w in self]))
+
+class RadioSelect(Select):
+    renderer = RadioFieldRenderer
+
+    def __init__(self, *args, **kwargs):
+        # Override the default renderer if we were passed one.
+        renderer = kwargs.pop('renderer', None)
+        if renderer:
+            self.renderer = renderer
+        super(RadioSelect, self).__init__(*args, **kwargs)
+
+    def get_renderer(self, name, value, attrs=None, choices=()):
+        """Returns an instance of the renderer."""
+        if value is None: value = ''
+        str_value = force_unicode(value) # Normalize to string.
+        final_attrs = self.build_attrs(attrs)
+        choices = list(chain(self.choices, choices))
+        return self.renderer(name, str_value, final_attrs, choices)
+
+    def render(self, name, value, attrs=None, choices=()):
+        return self.get_renderer(name, value, attrs, choices).render()
+
+    def id_for_label(self, id_):
+        # RadioSelect is represented by multiple <input type="radio"> fields,
+        # each of which has a distinct ID. The IDs are made distinct by a "_X"
+        # suffix, where X is the zero-based index of the radio field. Thus,
+        # the label for a RadioSelect should reference the first one ('_0').
+        if id_:
+            id_ += '_0'
+        return id_
+    id_for_label = classmethod(id_for_label)
+
+class CheckboxSelectMultiple(SelectMultiple):
+    def render(self, name, value, attrs=None, choices=()):
+        if value is None: value = []
+        has_id = attrs and 'id' in attrs
+        final_attrs = self.build_attrs(attrs, name=name)
+        output = [u'<ul>']
+        # Normalize to strings
+        str_values = set([force_unicode(v) for v in value])
+        for i, (option_value, option_label) in enumerate(chain(self.choices, choices)):
+            # If an ID attribute was given, add a numeric index as a suffix,
+            # so that the checkboxes don't all have the same ID attribute.
+            if has_id:
+                final_attrs = dict(final_attrs, id='%s_%s' % (attrs['id'], i))
+                label_for = u' for="%s"' % final_attrs['id']
+            else:
+                label_for = ''
+
+            cb = CheckboxInput(final_attrs, check_test=lambda value: value in str_values)
+            option_value = force_unicode(option_value)
+            rendered_cb = cb.render(name, option_value)
+            option_label = conditional_escape(force_unicode(option_label))
+            output.append(u'<li><label%s>%s %s</label></li>' % (label_for, rendered_cb, option_label))
+        output.append(u'</ul>')
+        return mark_safe(u'\n'.join(output))
+
+    def id_for_label(self, id_):
+        # See the comment for RadioSelect.id_for_label()
+        if id_:
+            id_ += '_0'
+        return id_
+    id_for_label = classmethod(id_for_label)
+
+class MultiWidget(Widget):
+    """
+    A widget that is composed of multiple widgets.
+
+    Its render() method is different than other widgets', because it has to
+    figure out how to split a single value for display in multiple widgets.
+    The ``value`` argument can be one of two things:
+
+        * A list.
+        * A normal value (e.g., a string) that has been "compressed" from
+          a list of values.
+
+    In the second case -- i.e., if the value is NOT a list -- render() will
+    first "decompress" the value into a list before rendering it. It does so by
+    calling the decompress() method, which MultiWidget subclasses must
+    implement. This method takes a single "compressed" value and returns a
+    list.
+
+    When render() does its HTML rendering, each value in the list is rendered
+    with the corresponding widget -- the first value is rendered in the first
+    widget, the second value is rendered in the second widget, etc.
+
+    Subclasses may implement format_output(), which takes the list of rendered
+    widgets and returns a string of HTML that formats them any way you'd like.
+
+    You'll probably want to use this class with MultiValueField.
+    """
+    def __init__(self, widgets, attrs=None):
+        self.widgets = [isinstance(w, type) and w() or w for w in widgets]
+        super(MultiWidget, self).__init__(attrs)
+
+    def render(self, name, value, attrs=None):
+        # value is a list of values, each corresponding to a widget
+        # in self.widgets.
+        if not isinstance(value, list):
+            value = self.decompress(value)
+        output = []
+        final_attrs = self.build_attrs(attrs)
+        id_ = final_attrs.get('id', None)
+        for i, widget in enumerate(self.widgets):
+            try:
+                widget_value = value[i]
+            except IndexError:
+                widget_value = None
+            if id_:
+                final_attrs = dict(final_attrs, id='%s_%s' % (id_, i))
+            output.append(widget.render(name + '_%s' % i, widget_value, final_attrs))
+        return mark_safe(self.format_output(output))
+
+    def id_for_label(self, id_):
+        # See the comment for RadioSelect.id_for_label()
+        if id_:
+            id_ += '_0'
+        return id_
+    id_for_label = classmethod(id_for_label)
+
+    def value_from_datadict(self, data, files, name):
+        return [widget.value_from_datadict(data, files, name + '_%s' % i) for i, widget in enumerate(self.widgets)]
+
+    def _has_changed(self, initial, data):
+        if initial is None:
+            initial = [u'' for x in range(0, len(data))]
+        else:
+            initial = self.decompress(initial)
+        for widget, initial, data in zip(self.widgets, initial, data):
+            if widget._has_changed(initial, data):
+                return True
+        return False
+
+    def format_output(self, rendered_widgets):
+        """
+        Given a list of rendered widgets (as strings), returns a Unicode string
+        representing the HTML for the whole lot.
+
+        This hook allows you to format the HTML design of the widgets, if
+        needed.
+        """
+        return u''.join(rendered_widgets)
+
+    def decompress(self, value):
+        """
+        Returns a list of decompressed values for the given compressed value.
+        The given value can be assumed to be valid, but not necessarily
+        non-empty.
+        """
+        raise NotImplementedError('Subclasses must implement this method.')
+
+    def _get_media(self):
+        "Media for a multiwidget is the combination of all media of the subwidgets"
+        media = Media()
+        for w in self.widgets:
+            media = media + w.media
+        return media
+    media = property(_get_media)
+
+class SplitDateTimeWidget(MultiWidget):
+    """
+    A Widget that splits datetime input into two <input type="text"> boxes.
+    """
+    def __init__(self, attrs=None):
+        widgets = (TextInput(attrs=attrs), TextInput(attrs=attrs))
+        super(SplitDateTimeWidget, self).__init__(widgets, attrs)
+
+    def decompress(self, value):
+        if value:
+            return [value.date(), value.time().replace(microsecond=0)]
+        return [None, None]
+
diff --git a/webapp/django/http/__init__.py b/webapp/django/http/__init__.py
new file mode 100644
index 0000000..6d24e0a
--- /dev/null
+++ b/webapp/django/http/__init__.py
@@ -0,0 +1,455 @@
+import os
+import re
+from Cookie import SimpleCookie, CookieError
+from pprint import pformat
+from urllib import urlencode
+from urlparse import urljoin
+try:
+    # The mod_python version is more efficient, so try importing it first.
+    from mod_python.util import parse_qsl
+except ImportError:
+    from cgi import parse_qsl
+
+from django.utils.datastructures import MultiValueDict, ImmutableList
+from django.utils.encoding import smart_str, iri_to_uri, force_unicode
+from django.http.multipartparser import MultiPartParser
+from django.conf import settings
+from django.core.files import uploadhandler
+from utils import *
+
+RESERVED_CHARS="!*'();:@&=+$,/?%#[]"
+
+absolute_http_url_re = re.compile(r"^https?://", re.I)
+
+class Http404(Exception):
+    pass
+
+class HttpRequest(object):
+    """A basic HTTP request."""
+
+    # The encoding used in GET/POST dicts. None means use default setting.
+    _encoding = None
+    _upload_handlers = []
+
+    def __init__(self):
+        self.GET, self.POST, self.COOKIES, self.META, self.FILES = {}, {}, {}, {}, {}
+        self.path = ''
+        self.path_info = ''
+        self.method = None
+
+    def __repr__(self):
+        return '<HttpRequest\nGET:%s,\nPOST:%s,\nCOOKIES:%s,\nMETA:%s>' % \
+            (pformat(self.GET), pformat(self.POST), pformat(self.COOKIES),
+            pformat(self.META))
+
+    def get_host(self):
+        """Returns the HTTP host using the environment or request headers."""
+        # We try three options, in order of decreasing preference.
+        if 'HTTP_X_FORWARDED_HOST' in self.META:
+            host = self.META['HTTP_X_FORWARDED_HOST']
+        elif 'HTTP_HOST' in self.META:
+            host = self.META['HTTP_HOST']
+        else:
+            # Reconstruct the host using the algorithm from PEP 333.
+            host = self.META['SERVER_NAME']
+            server_port = self.META['SERVER_PORT']
+            if server_port != (self.is_secure() and 443 or 80):
+                host = '%s:%s' % (host, server_port)
+        return host
+
+    def get_full_path(self):
+        return ''
+
+    def build_absolute_uri(self, location=None):
+        """
+        Builds an absolute URI from the location and the variables available in
+        this request. If no location is specified, the absolute URI is built on
+        ``request.get_full_path()``.
+        """
+        if not location:
+            location = self.get_full_path()
+        if not absolute_http_url_re.match(location):
+            current_uri = '%s://%s%s' % (self.is_secure() and 'https' or 'http',
+                                         self.get_host(), self.path)
+            location = urljoin(current_uri, location)
+        return location
+
+    def is_secure(self):
+        return os.environ.get("HTTPS") == "on"
+
+    def is_ajax(self):
+        return self.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'
+
+    def _set_encoding(self, val):
+        """
+        Sets the encoding used for GET/POST accesses. If the GET or POST
+        dictionary has already been created, it is removed and recreated on the
+        next access (so that it is decoded correctly).
+        """
+        self._encoding = val
+        if hasattr(self, '_get'):
+            del self._get
+        if hasattr(self, '_post'):
+            del self._post
+
+    def _get_encoding(self):
+        return self._encoding
+
+    encoding = property(_get_encoding, _set_encoding)
+
+    def _initialize_handlers(self):
+        self._upload_handlers = [uploadhandler.load_handler(handler, self)
+                                 for handler in settings.FILE_UPLOAD_HANDLERS]
+
+    def _set_upload_handlers(self, upload_handlers):
+        if hasattr(self, '_files'):
+            raise AttributeError("You cannot set the upload handlers after the upload has been processed.")
+        self._upload_handlers = upload_handlers
+
+    def _get_upload_handlers(self):
+        if not self._upload_handlers:
+            # If thre are no upload handlers defined, initialize them from settings.
+            self._initialize_handlers()
+        return self._upload_handlers
+
+    upload_handlers = property(_get_upload_handlers, _set_upload_handlers)
+
+    def parse_file_upload(self, META, post_data):
+        """Returns a tuple of (POST QueryDict, FILES MultiValueDict)."""
+        self.upload_handlers = ImmutableList(
+            self.upload_handlers,
+            warning = "You cannot alter upload handlers after the upload has been processed."
+        )
+        parser = MultiPartParser(META, post_data, self.upload_handlers, self.encoding)
+        return parser.parse()
+
+class QueryDict(MultiValueDict):
+    """
+    A specialized MultiValueDict that takes a query string when initialized.
+    This is immutable unless you create a copy of it.
+
+    Values retrieved from this class are converted from the given encoding
+    (DEFAULT_CHARSET by default) to unicode.
+    """
+    # These are both reset in __init__, but is specified here at the class
+    # level so that unpickling will have valid values
+    _mutable = True
+    _encoding = None
+
+    def __init__(self, query_string, mutable=False, encoding=None):
+        MultiValueDict.__init__(self)
+        if not encoding:
+            # *Important*: do not import settings any earlier because of note
+            # in core.handlers.modpython.
+            from django.conf import settings
+            encoding = settings.DEFAULT_CHARSET
+        self.encoding = encoding
+        for key, value in parse_qsl((query_string or ''), True): # keep_blank_values=True
+            self.appendlist(force_unicode(key, encoding, errors='replace'),
+                            force_unicode(value, encoding, errors='replace'))
+        self._mutable = mutable
+
+    def _get_encoding(self):
+        if self._encoding is None:
+            # *Important*: do not import settings at the module level because
+            # of the note in core.handlers.modpython.
+            from django.conf import settings
+            self._encoding = settings.DEFAULT_CHARSET
+        return self._encoding
+
+    def _set_encoding(self, value):
+        self._encoding = value
+
+    encoding = property(_get_encoding, _set_encoding)
+
+    def _assert_mutable(self):
+        if not self._mutable:
+            raise AttributeError("This QueryDict instance is immutable")
+
+    def __setitem__(self, key, value):
+        self._assert_mutable()
+        key = str_to_unicode(key, self.encoding)
+        value = str_to_unicode(value, self.encoding)
+        MultiValueDict.__setitem__(self, key, value)
+
+    def __delitem__(self, key):
+        self._assert_mutable()
+        super(QueryDict, self).__delitem__(key)
+
+    def __copy__(self):
+        result = self.__class__('', mutable=True)
+        for key, value in dict.items(self):
+            dict.__setitem__(result, key, value)
+        return result
+
+    def __deepcopy__(self, memo):
+        import copy
+        result = self.__class__('', mutable=True)
+        memo[id(self)] = result
+        for key, value in dict.items(self):
+            dict.__setitem__(result, copy.deepcopy(key, memo), copy.deepcopy(value, memo))
+        return result
+
+    def setlist(self, key, list_):
+        self._assert_mutable()
+        key = str_to_unicode(key, self.encoding)
+        list_ = [str_to_unicode(elt, self.encoding) for elt in list_]
+        MultiValueDict.setlist(self, key, list_)
+
+    def setlistdefault(self, key, default_list=()):
+        self._assert_mutable()
+        if key not in self:
+            self.setlist(key, default_list)
+        return MultiValueDict.getlist(self, key)
+
+    def appendlist(self, key, value):
+        self._assert_mutable()
+        key = str_to_unicode(key, self.encoding)
+        value = str_to_unicode(value, self.encoding)
+        MultiValueDict.appendlist(self, key, value)
+
+    def update(self, other_dict):
+        self._assert_mutable()
+        f = lambda s: str_to_unicode(s, self.encoding)
+        d = dict([(f(k), f(v)) for k, v in other_dict.items()])
+        MultiValueDict.update(self, d)
+
+    def pop(self, key, *args):
+        self._assert_mutable()
+        return MultiValueDict.pop(self, key, *args)
+
+    def popitem(self):
+        self._assert_mutable()
+        return MultiValueDict.popitem(self)
+
+    def clear(self):
+        self._assert_mutable()
+        MultiValueDict.clear(self)
+
+    def setdefault(self, key, default=None):
+        self._assert_mutable()
+        key = str_to_unicode(key, self.encoding)
+        default = str_to_unicode(default, self.encoding)
+        return MultiValueDict.setdefault(self, key, default)
+
+    def copy(self):
+        """Returns a mutable copy of this object."""
+        return self.__deepcopy__({})
+
+    def urlencode(self):
+        output = []
+        for k, list_ in self.lists():
+            k = smart_str(k, self.encoding)
+            output.extend([urlencode({k: smart_str(v, self.encoding)}) for v in list_])
+        return '&'.join(output)
+
+def parse_cookie(cookie):
+    if cookie == '':
+        return {}
+    try:
+        c = SimpleCookie()
+        c.load(cookie)
+    except CookieError:
+        # Invalid cookie
+        return {}
+
+    cookiedict = {}
+    for key in c.keys():
+        cookiedict[key] = c.get(key).value
+    return cookiedict
+
+class HttpResponse(object):
+    """A basic HTTP response, with content and dictionary-accessed headers."""
+
+    status_code = 200
+
+    def __init__(self, content='', mimetype=None, status=None,
+            content_type=None):
+        from django.conf import settings
+        self._charset = settings.DEFAULT_CHARSET
+        if mimetype:
+            content_type = mimetype     # For backwards compatibility
+        if not content_type:
+            content_type = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE,
+                    settings.DEFAULT_CHARSET)
+        if not isinstance(content, basestring) and hasattr(content, '__iter__'):
+            self._container = content
+            self._is_string = False
+        else:
+            self._container = [content]
+            self._is_string = True
+        self.cookies = SimpleCookie()
+        if status:
+            self.status_code = status
+
+        # _headers is a mapping of the lower-case name to the original case of
+        # the header (required for working with legacy systems) and the header
+        # value.
+        self._headers = {'content-type': ('Content-Type', content_type)}
+
+    def __str__(self):
+        """Full HTTP message, including headers."""
+        return '\n'.join(['%s: %s' % (key, value)
+            for key, value in self._headers.values()]) \
+            + '\n\n' + self.content
+
+    def _convert_to_ascii(self, *values):
+        """Converts all values to ascii strings."""
+        for value in values:
+            if isinstance(value, unicode):
+                try:
+                    yield value.encode('us-ascii')
+                except UnicodeError, e:
+                    e.reason += ', HTTP response headers must be in US-ASCII format'
+                    raise
+            else:
+                yield str(value)
+
+    def __setitem__(self, header, value):
+        header, value = self._convert_to_ascii(header, value)
+        self._headers[header.lower()] = (header, value)
+
+    def __delitem__(self, header):
+        try:
+            del self._headers[header.lower()]
+        except KeyError:
+            pass
+
+    def __getitem__(self, header):
+        return self._headers[header.lower()][1]
+
+    def has_header(self, header):
+        """Case-insensitive check for a header."""
+        return self._headers.has_key(header.lower())
+
+    __contains__ = has_header
+
+    def items(self):
+        return self._headers.values()
+
+    def get(self, header, alternate):
+        return self._headers.get(header.lower(), (None, alternate))[1]
+
+    def set_cookie(self, key, value='', max_age=None, expires=None, path='/',
+                   domain=None, secure=False):
+        self.cookies[key] = value
+        if max_age is not None:
+            self.cookies[key]['max-age'] = max_age
+        if expires is not None:
+            self.cookies[key]['expires'] = expires
+        if path is not None:
+            self.cookies[key]['path'] = path
+        if domain is not None:
+            self.cookies[key]['domain'] = domain
+        if secure:
+            self.cookies[key]['secure'] = True
+
+    def delete_cookie(self, key, path='/', domain=None):
+        self.set_cookie(key, max_age=0, path=path, domain=domain,
+                        expires='Thu, 01-Jan-1970 00:00:00 GMT')
+
+    def _get_content(self):
+        if self.has_header('Content-Encoding'):
+            return ''.join(self._container)
+        return smart_str(''.join(self._container), self._charset)
+
+    def _set_content(self, value):
+        self._container = [value]
+        self._is_string = True
+
+    content = property(_get_content, _set_content)
+
+    def __iter__(self):
+        self._iterator = iter(self._container)
+        return self
+
+    def next(self):
+        chunk = self._iterator.next()
+        if isinstance(chunk, unicode):
+            chunk = chunk.encode(self._charset)
+        return str(chunk)
+
+    def close(self):
+        if hasattr(self._container, 'close'):
+            self._container.close()
+
+    # The remaining methods partially implement the file-like object interface.
+    # See http://docs.python.org/lib/bltin-file-objects.html
+    def write(self, content):
+        if not self._is_string:
+            raise Exception("This %s instance is not writable" % self.__class__)
+        self._container.append(content)
+
+    def flush(self):
+        pass
+
+    def tell(self):
+        if not self._is_string:
+            raise Exception("This %s instance cannot tell its position" % self.__class__)
+        return sum([len(chunk) for chunk in self._container])
+
+class HttpResponseRedirect(HttpResponse):
+    status_code = 302
+
+    def __init__(self, redirect_to):
+        HttpResponse.__init__(self)
+        self['Location'] = iri_to_uri(redirect_to)
+
+class HttpResponsePermanentRedirect(HttpResponse):
+    status_code = 301
+
+    def __init__(self, redirect_to):
+        HttpResponse.__init__(self)
+        self['Location'] = iri_to_uri(redirect_to)
+
+class HttpResponseNotModified(HttpResponse):
+    status_code = 304
+
+class HttpResponseBadRequest(HttpResponse):
+    status_code = 400
+
+class HttpResponseNotFound(HttpResponse):
+    status_code = 404
+
+class HttpResponseForbidden(HttpResponse):
+    status_code = 403
+
+class HttpResponseNotAllowed(HttpResponse):
+    status_code = 405
+
+    def __init__(self, permitted_methods):
+        HttpResponse.__init__(self)
+        self['Allow'] = ', '.join(permitted_methods)
+
+class HttpResponseGone(HttpResponse):
+    status_code = 410
+
+    def __init__(self, *args, **kwargs):
+        HttpResponse.__init__(self, *args, **kwargs)
+
+class HttpResponseServerError(HttpResponse):
+    status_code = 500
+
+    def __init__(self, *args, **kwargs):
+        HttpResponse.__init__(self, *args, **kwargs)
+
+# A backwards compatible alias for HttpRequest.get_host.
+def get_host(request):
+    return request.get_host()
+
+# It's neither necessary nor appropriate to use
+# django.utils.encoding.smart_unicode for parsing URLs and form inputs. Thus,
+# this slightly more restricted function.
+def str_to_unicode(s, encoding):
+    """
+    Converts basestring objects to unicode, using the given encoding. Illegally
+    encoded input characters are replaced with Unicode "unknown" codepoint
+    (\ufffd).
+
+    Returns any non-basestring objects without change.
+    """
+    if isinstance(s, str):
+        return unicode(s, encoding, 'replace')
+    else:
+        return s
+
diff --git a/webapp/django/http/multipartparser.py b/webapp/django/http/multipartparser.py
new file mode 100644
index 0000000..2049289
--- /dev/null
+++ b/webapp/django/http/multipartparser.py
@@ -0,0 +1,639 @@
+"""
+Multi-part parsing for file uploads.
+
+Exposes one class, ``MultiPartParser``, which feeds chunks of uploaded data to
+file upload handlers for processing.
+"""
+
+import cgi
+from django.conf import settings
+from django.core.exceptions import SuspiciousOperation
+from django.utils.datastructures import MultiValueDict
+from django.utils.encoding import force_unicode
+from django.utils.text import unescape_entities
+from django.core.files.uploadhandler import StopUpload, SkipFile, StopFutureHandlers
+
+__all__ = ('MultiPartParser', 'MultiPartParserError', 'InputStreamExhausted')
+
+class MultiPartParserError(Exception):
+    pass
+
+class InputStreamExhausted(Exception):
+    """
+    No more reads are allowed from this device.
+    """
+    pass
+
+RAW = "raw"
+FILE = "file"
+FIELD = "field"
+
+class MultiPartParser(object):
+    """
+    A rfc2388 multipart/form-data parser.
+
+    ``MultiValueDict.parse()`` reads the input stream in ``chunk_size`` chunks
+    and returns a tuple of ``(MultiValueDict(POST), MultiValueDict(FILES))``. If
+    ``file_upload_dir`` is defined files will be streamed to temporary files in
+    that directory.
+    """
+    def __init__(self, META, input_data, upload_handlers, encoding=None):
+        """
+        Initialize the MultiPartParser object.
+
+        :META:
+            The standard ``META`` dictionary in Django request objects.
+        :input_data:
+            The raw post data, as a bytestring.
+        :upload_handler:
+            An UploadHandler instance that performs operations on the uploaded
+            data.
+        :encoding:
+            The encoding with which to treat the incoming data.
+        """
+
+        #
+        # Content-Type should containt multipart and the boundary information.
+        #
+
+        content_type = META.get('HTTP_CONTENT_TYPE', META.get('CONTENT_TYPE', ''))
+        if not content_type.startswith('multipart/'):
+            raise MultiPartParserError('Invalid Content-Type: %s' % content_type)
+
+        # Parse the header to get the boundary to split the parts.
+        ctypes, opts = parse_header(content_type)
+        boundary = opts.get('boundary')
+        if not boundary or not cgi.valid_boundary(boundary):
+            raise MultiPartParserError('Invalid boundary in multipart: %s' % boundary)
+
+
+        #
+        # Content-Length should contain the length of the body we are about
+        # to receive.
+        #
+        try:
+            content_length = int(META.get('HTTP_CONTENT_LENGTH', META.get('CONTENT_LENGTH',0)))
+        except (ValueError, TypeError):
+            # For now set it to 0; we'll try again later on down.
+            content_length = 0
+
+        if content_length <= 0:
+            # This means we shouldn't continue...raise an error.
+            raise MultiPartParserError("Invalid content length: %r" % content_length)
+
+        self._boundary = boundary
+        self._input_data = input_data
+
+        # For compatibility with low-level network APIs (with 32-bit integers),
+        # the chunk size should be < 2^31, but still divisible by 4.
+        self._chunk_size = min(2**31-4, *[x.chunk_size for x in upload_handlers if x.chunk_size])
+
+        self._meta = META
+        self._encoding = encoding or settings.DEFAULT_CHARSET
+        self._content_length = content_length
+        self._upload_handlers = upload_handlers
+
+    def parse(self):
+        """
+        Parse the POST data and break it into a FILES MultiValueDict and a POST
+        MultiValueDict.
+
+        Returns a tuple containing the POST and FILES dictionary, respectively.
+        """
+        # We have to import QueryDict down here to avoid a circular import.
+        from django.http import QueryDict
+
+        encoding = self._encoding
+        handlers = self._upload_handlers
+
+        limited_input_data = LimitBytes(self._input_data, self._content_length)
+
+        # See if the handler will want to take care of the parsing.
+        # This allows overriding everything if somebody wants it.
+        for handler in handlers:
+            result = handler.handle_raw_input(limited_input_data,
+                                              self._meta,
+                                              self._content_length,
+                                              self._boundary,
+                                              encoding)
+            if result is not None:
+                return result[0], result[1]
+
+        # Create the data structures to be used later.
+        self._post = QueryDict('', mutable=True)
+        self._files = MultiValueDict()
+
+        # Instantiate the parser and stream:
+        stream = LazyStream(ChunkIter(limited_input_data, self._chunk_size))
+
+        # Whether or not to signal a file-completion at the beginning of the loop.
+        old_field_name = None
+        counters = [0] * len(handlers)
+
+        try:
+            for item_type, meta_data, field_stream in Parser(stream, self._boundary):
+                if old_field_name:
+                    # We run this at the beginning of the next loop
+                    # since we cannot be sure a file is complete until
+                    # we hit the next boundary/part of the multipart content.
+                    self.handle_file_complete(old_field_name, counters)
+                    old_field_name = None
+
+                try:
+                    disposition = meta_data['content-disposition'][1]
+                    field_name = disposition['name'].strip()
+                except (KeyError, IndexError, AttributeError):
+                    continue
+
+                transfer_encoding = meta_data.get('content-transfer-encoding')
+                field_name = force_unicode(field_name, encoding, errors='replace')
+
+                if item_type == FIELD:
+                    # This is a post field, we can just set it in the post
+                    if transfer_encoding == 'base64':
+                        raw_data = field_stream.read()
+                        try:
+                            data = str(raw_data).decode('base64')
+                        except:
+                            data = raw_data
+                    else:
+                        data = field_stream.read()
+
+                    self._post.appendlist(field_name,
+                                          force_unicode(data, encoding, errors='replace'))
+                elif item_type == FILE:
+                    # This is a file, use the handler...
+                    file_name = disposition.get('filename')
+                    if not file_name:
+                        continue
+                    file_name = force_unicode(file_name, encoding, errors='replace')
+                    file_name = self.IE_sanitize(unescape_entities(file_name))
+
+                    content_type = meta_data.get('content-type', ('',))[0].strip()
+                    try:
+                        charset = meta_data.get('content-type', (0,{}))[1].get('charset', None)
+                    except:
+                        charset = None
+
+                    try:
+                        content_length = int(meta_data.get('content-length')[0])
+                    except (IndexError, TypeError, ValueError):
+                        content_length = None
+
+                    counters = [0] * len(handlers)
+                    try:
+                        for handler in handlers:
+                            try:
+                                handler.new_file(field_name, file_name,
+                                                 content_type, content_length,
+                                                 charset)
+                            except StopFutureHandlers:
+                                break
+
+                        for chunk in field_stream:
+                            if transfer_encoding == 'base64':
+                                # We only special-case base64 transfer encoding
+                                try:
+                                    chunk = str(chunk).decode('base64')
+                                except Exception, e:
+                                    # Since this is only a chunk, any error is an unfixable error.
+                                    raise MultiPartParserError("Could not decode base64 data: %r" % e)
+
+                            for i, handler in enumerate(handlers):
+                                chunk_length = len(chunk)
+                                chunk = handler.receive_data_chunk(chunk,
+                                                                   counters[i])
+                                counters[i] += chunk_length
+                                if chunk is None:
+                                    # If the chunk received by the handler is None, then don't continue.
+                                    break
+
+                    except SkipFile, e:
+                        # Just use up the rest of this file...
+                        exhaust(field_stream)
+                    else:
+                        # Handle file upload completions on next iteration.
+                        old_field_name = field_name
+                else:
+                    # If this is neither a FIELD or a FILE, just exhaust the stream.
+                    exhaust(stream)
+        except StopUpload, e:
+            if not e.connection_reset:
+                exhaust(limited_input_data)
+        else:
+            # Make sure that the request data is all fed
+            exhaust(limited_input_data)
+
+        # Signal that the upload has completed.
+        for handler in handlers:
+            retval = handler.upload_complete()
+            if retval:
+                break
+
+        return self._post, self._files
+
+    def handle_file_complete(self, old_field_name, counters):
+        """
+        Handle all the signalling that takes place when a file is complete.
+        """
+        for i, handler in enumerate(self._upload_handlers):
+            file_obj = handler.file_complete(counters[i])
+            if file_obj:
+                # If it returns a file object, then set the files dict.
+                self._files.appendlist(force_unicode(old_field_name,
+                                                     self._encoding,
+                                                     errors='replace'),
+                                       file_obj)
+                break
+
+    def IE_sanitize(self, filename):
+        """Cleanup filename from Internet Explorer full paths."""
+        return filename and filename[filename.rfind("\\")+1:].strip()
+
+class LazyStream(object):
+    """
+    The LazyStream wrapper allows one to get and "unget" bytes from a stream.
+
+    Given a producer object (an iterator that yields bytestrings), the
+    LazyStream object will support iteration, reading, and keeping a "look-back"
+    variable in case you need to "unget" some bytes.
+    """
+    def __init__(self, producer, length=None):
+        """
+        Every LazyStream must have a producer when instantiated.
+
+        A producer is an iterable that returns a string each time it
+        is called.
+        """
+        self._producer = producer
+        self._empty = False
+        self._leftover = ''
+        self.length = length
+        self.position = 0
+        self._remaining = length
+        self._unget_history = []
+
+    def tell(self):
+        return self.position
+
+    def read(self, size=None):
+        def parts():
+            remaining = (size is not None and [size] or [self._remaining])[0]
+            # do the whole thing in one shot if no limit was provided.
+            if remaining is None:
+                yield ''.join(self)
+                return
+
+            # otherwise do some bookkeeping to return exactly enough
+            # of the stream and stashing any extra content we get from
+            # the producer
+            while remaining != 0:
+                assert remaining > 0, 'remaining bytes to read should never go negative'
+
+                chunk = self.next()
+
+                emitting = chunk[:remaining]
+                self.unget(chunk[remaining:])
+                remaining -= len(emitting)
+                yield emitting
+
+        out = ''.join(parts())
+        return out
+
+    def next(self):
+        """
+        Used when the exact number of bytes to read is unimportant.
+
+        This procedure just returns whatever is chunk is conveniently returned
+        from the iterator instead. Useful to avoid unnecessary bookkeeping if
+        performance is an issue.
+        """
+        if self._leftover:
+            output = self._leftover
+            self._leftover = ''
+        else:
+            output = self._producer.next()
+            self._unget_history = []
+        self.position += len(output)
+        return output
+
+    def close(self):
+        """
+        Used to invalidate/disable this lazy stream.
+
+        Replaces the producer with an empty list. Any leftover bytes that have
+        already been read will still be reported upon read() and/or next().
+        """
+        self._producer = []
+
+    def __iter__(self):
+        return self
+
+    def unget(self, bytes):
+        """
+        Places bytes back onto the front of the lazy stream.
+
+        Future calls to read() will return those bytes first. The
+        stream position and thus tell() will be rewound.
+        """
+        if not bytes:
+            return
+        self._update_unget_history(len(bytes))
+        self.position -= len(bytes)
+        self._leftover = ''.join([bytes, self._leftover])
+
+    def _update_unget_history(self, num_bytes):
+        """
+        Updates the unget history as a sanity check to see if we've pushed
+        back the same number of bytes in one chunk. If we keep ungetting the
+        same number of bytes many times (here, 50), we're mostly likely in an
+        infinite loop of some sort. This is usually caused by a
+        maliciously-malformed MIME request.
+        """
+        self._unget_history = [num_bytes] + self._unget_history[:49]
+        number_equal = len([current_number for current_number in self._unget_history
+                            if current_number == num_bytes])
+
+        if number_equal > 40:
+            raise SuspiciousOperation(
+                "The multipart parser got stuck, which shouldn't happen with"
+                " normal uploaded files. Check for malicious upload activity;"
+                " if there is none, report this to the Django developers."
+            )
+
+class ChunkIter(object):
+    """
+    An iterable that will yield chunks of data. Given a file-like object as the
+    constructor, this object will yield chunks of read operations from that
+    object.
+    """
+    def __init__(self, flo, chunk_size=64 * 1024):
+        self.flo = flo
+        self.chunk_size = chunk_size
+
+    def next(self):
+        try:
+            data = self.flo.read(self.chunk_size)
+        except InputStreamExhausted:
+            raise StopIteration()
+        if data:
+            return data
+        else:
+            raise StopIteration()
+
+    def __iter__(self):
+        return self
+
+class LimitBytes(object):
+    """ Limit bytes for a file object. """
+    def __init__(self, fileobject, length):
+        self._file = fileobject
+        self.remaining = length
+
+    def read(self, num_bytes=None):
+        """
+        Read data from the underlying file.
+        If you ask for too much or there isn't anything left,
+        this will raise an InputStreamExhausted error.
+        """
+        if self.remaining <= 0:
+            raise InputStreamExhausted()
+        if num_bytes is None:
+            num_bytes = self.remaining
+        else:
+            num_bytes = min(num_bytes, self.remaining)
+        self.remaining -= num_bytes
+        return self._file.read(num_bytes)
+
+class InterBoundaryIter(object):
+    """
+    A Producer that will iterate over boundaries.
+    """
+    def __init__(self, stream, boundary):
+        self._stream = stream
+        self._boundary = boundary
+
+    def __iter__(self):
+        return self
+
+    def next(self):
+        try:
+            return LazyStream(BoundaryIter(self._stream, self._boundary))
+        except InputStreamExhausted:
+            raise StopIteration()
+
+class BoundaryIter(object):
+    """
+    A Producer that is sensitive to boundaries.
+
+    Will happily yield bytes until a boundary is found. Will yield the bytes
+    before the boundary, throw away the boundary bytes themselves, and push the
+    post-boundary bytes back on the stream.
+
+    The future calls to .next() after locating the boundary will raise a
+    StopIteration exception.
+    """
+
+    def __init__(self, stream, boundary):
+        self._stream = stream
+        self._boundary = boundary
+        self._done = False
+        # rollback an additional six bytes because the format is like
+        # this: CRLF<boundary>[--CRLF]
+        self._rollback = len(boundary) + 6
+
+        # Try to use mx fast string search if available. Otherwise
+        # use Python find. Wrap the latter for consistency.
+        unused_char = self._stream.read(1)
+        if not unused_char:
+            raise InputStreamExhausted()
+        self._stream.unget(unused_char)
+        try:
+            from mx.TextTools import FS
+            self._fs = FS(boundary).find
+        except ImportError:
+            self._fs = lambda data: data.find(boundary)
+
+    def __iter__(self):
+        return self
+
+    def next(self):
+        if self._done:
+            raise StopIteration()
+
+        stream = self._stream
+        rollback = self._rollback
+
+        bytes_read = 0
+        chunks = []
+        for bytes in stream:
+            bytes_read += len(bytes)
+            chunks.append(bytes)
+            if bytes_read > rollback:
+                break
+            if not bytes:
+                break
+        else:
+            self._done = True
+
+        if not chunks:
+            raise StopIteration()
+
+        chunk = ''.join(chunks)
+        boundary = self._find_boundary(chunk, len(chunk) < self._rollback)
+
+        if boundary:
+            end, next = boundary
+            stream.unget(chunk[next:])
+            self._done = True
+            return chunk[:end]
+        else:
+            # make sure we dont treat a partial boundary (and
+            # its separators) as data
+            if not chunk[:-rollback]:# and len(chunk) >= (len(self._boundary) + 6):
+                # There's nothing left, we should just return and mark as done.
+                self._done = True
+                return chunk
+            else:
+                stream.unget(chunk[-rollback:])
+                return chunk[:-rollback]
+
+    def _find_boundary(self, data, eof = False):
+        """
+        Finds a multipart boundary in data.
+
+        Should no boundry exist in the data None is returned instead. Otherwise
+        a tuple containing the indices of the following are returned:
+
+         * the end of current encapsulation
+         * the start of the next encapsulation
+        """
+        index = self._fs(data)
+        if index < 0:
+            return None
+        else:
+            end = index
+            next = index + len(self._boundary)
+            # backup over CRLF
+            if data[max(0,end-1)] == '\n':
+                end -= 1
+            if data[max(0,end-1)] == '\r':
+                end -= 1
+            return end, next
+
+def exhaust(stream_or_iterable):
+    """
+    Completely exhausts an iterator or stream.
+
+    Raise a MultiPartParserError if the argument is not a stream or an iterable.
+    """
+    iterator = None
+    try:
+        iterator = iter(stream_or_iterable)
+    except TypeError:
+        iterator = ChunkIter(stream_or_iterable, 16384)
+
+    if iterator is None:
+        raise MultiPartParserError('multipartparser.exhaust() was passed a non-iterable or stream parameter')
+
+    for __ in iterator:
+        pass
+
+def parse_boundary_stream(stream, max_header_size):
+    """
+    Parses one and exactly one stream that encapsulates a boundary.
+    """
+    # Stream at beginning of header, look for end of header
+    # and parse it if found. The header must fit within one
+    # chunk.
+    chunk = stream.read(max_header_size)
+
+    # 'find' returns the top of these four bytes, so we'll
+    # need to munch them later to prevent them from polluting
+    # the payload.
+    header_end = chunk.find('\r\n\r\n')
+
+    def _parse_header(line):
+        main_value_pair, params = parse_header(line)
+        try:
+            name, value = main_value_pair.split(':', 1)
+        except:
+            raise ValueError("Invalid header: %r" % line)
+        return name, (value, params)
+
+    if header_end == -1:
+        # we find no header, so we just mark this fact and pass on
+        # the stream verbatim
+        stream.unget(chunk)
+        return (RAW, {}, stream)
+
+    header = chunk[:header_end]
+
+    # here we place any excess chunk back onto the stream, as
+    # well as throwing away the CRLFCRLF bytes from above.
+    stream.unget(chunk[header_end + 4:])
+
+    TYPE = RAW
+    outdict = {}
+
+    # Eliminate blank lines
+    for line in header.split('\r\n'):
+        # This terminology ("main value" and "dictionary of
+        # parameters") is from the Python docs.
+        try:
+            name, (value, params) = _parse_header(line)
+        except:
+            continue
+
+        if name == 'content-disposition':
+            TYPE = FIELD
+            if params.get('filename'):
+                TYPE = FILE
+
+        outdict[name] = value, params
+
+    if TYPE == RAW:
+        stream.unget(chunk)
+
+    return (TYPE, outdict, stream)
+
+class Parser(object):
+    def __init__(self, stream, boundary):
+        self._stream = stream
+        self._separator = '--' + boundary
+
+    def __iter__(self):
+        boundarystream = InterBoundaryIter(self._stream, self._separator)
+        for sub_stream in boundarystream:
+            # Iterate over each part
+            yield parse_boundary_stream(sub_stream, 1024)
+
+def parse_header(line):
+    """ Parse the header into a key-value. """
+    plist = _parse_header_params(';' + line)
+    key = plist.pop(0).lower()
+    pdict = {}
+    for p in plist:
+        i = p.find('=')
+        if i >= 0:
+            name = p[:i].strip().lower()
+            value = p[i+1:].strip()
+            if len(value) >= 2 and value[0] == value[-1] == '"':
+                value = value[1:-1]
+                value = value.replace('\\\\', '\\').replace('\\"', '"')
+            pdict[name] = value
+    return key, pdict
+
+def _parse_header_params(s):
+    plist = []
+    while s[:1] == ';':
+        s = s[1:]
+        end = s.find(';')
+        while end > 0 and s.count('"', 0, end) % 2:
+            end = s.find(';', end + 1)
+        if end < 0:
+            end = len(s)
+        f = s[:end]
+        plist.append(f.strip())
+        s = s[end:]
+    return plist
diff --git a/webapp/django/http/utils.py b/webapp/django/http/utils.py
new file mode 100644
index 0000000..4dc05a2
--- /dev/null
+++ b/webapp/django/http/utils.py
@@ -0,0 +1,84 @@
+"""
+Functions that modify an HTTP request or response in some way.
+"""
+
+# This group of functions are run as part of the response handling, after
+# everything else, including all response middleware. Think of them as
+# "compulsory response middleware". Be careful about what goes here, because
+# it's a little fiddly to override this behavior, so they should be truly
+# universally applicable.
+
+def fix_location_header(request, response):
+    """
+    Ensures that we always use an absolute URI in any location header in the
+    response. This is required by RFC 2616, section 14.30.
+
+    Code constructing response objects is free to insert relative paths, as
+    this function converts them to absolute paths.
+    """
+    if 'Location' in response and request.get_host():
+        response['Location'] = request.build_absolute_uri(response['Location'])
+    return response
+
+def conditional_content_removal(request, response):
+    """
+    Removes the content of responses for HEAD requests, 1xx, 204 and 304
+    responses. Ensures compliance with RFC 2616, section 4.3.
+    """
+    if 100 <= response.status_code < 200 or response.status_code in (204, 304):
+       response.content = ''
+       response['Content-Length'] = 0
+    if request.method == 'HEAD':
+        response.content = ''
+    return response
+
+def fix_IE_for_attach(request, response):
+    """
+    This function will prevent Django from serving a Content-Disposition header
+    while expecting the browser to cache it (only when the browser is IE). This
+    leads to IE not allowing the client to download.
+    """
+    if 'MSIE' not in request.META.get('HTTP_USER_AGENT', '').upper():
+        return response
+
+    offending_headers = ('no-cache', 'no-store')
+    if response.has_header('Content-Disposition'):
+        try:
+            del response['Pragma']
+        except KeyError:
+            pass
+        if response.has_header('Cache-Control'):
+            cache_control_values = [value.strip() for value in
+                    response['Cache-Control'].split(',')
+                    if value.strip().lower() not in offending_headers]
+
+            if not len(cache_control_values):
+                del response['Cache-Control']
+            else:
+                response['Cache-Control'] = ', '.join(cache_control_values)
+
+    return response
+
+def fix_IE_for_vary(request, response):
+    """
+    This function will fix the bug reported at
+    http://support.microsoft.com/kb/824847/en-us?spid=8722&sid=global
+    by clearing the Vary header whenever the mime-type is not safe
+    enough for Internet Explorer to handle.  Poor thing.
+    """
+    if 'MSIE' not in request.META.get('HTTP_USER_AGENT', '').upper():
+        return response
+
+    # These mime-types that are decreed "Vary-safe" for IE:
+    safe_mime_types = ('text/html', 'text/plain', 'text/sgml')
+
+    # The first part of the Content-Type field will be the MIME type,
+    # everything after ';', such as character-set, can be ignored.
+    if response['Content-Type'].split(';')[0] not in safe_mime_types:
+        try:
+            del response['Vary']
+        except KeyError:
+            pass
+
+    return response
+
diff --git a/webapp/django/middleware/__init__.py b/webapp/django/middleware/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/middleware/__init__.py
diff --git a/webapp/django/middleware/cache.py b/webapp/django/middleware/cache.py
new file mode 100644
index 0000000..28e8784
--- /dev/null
+++ b/webapp/django/middleware/cache.py
@@ -0,0 +1,155 @@
+"""
+Cache middleware. If enabled, each Django-powered page will be cached based on
+URL. The canonical way to enable cache middleware is to set
+``UpdateCacheMiddleware`` as your first piece of middleware, and
+``FetchFromCacheMiddleware`` as the last::
+
+    MIDDLEWARE_CLASSES = [
+        'django.middleware.cache.UpdateCacheMiddleware',
+        ...
+        'django.middleware.cache.FetchFromCacheMiddleware'
+    ]
+
+This is counter-intuitive, but correct: ``UpdateCacheMiddleware`` needs to run
+last during the response phase, which processes middleware bottom-up;
+``FetchFromCacheMiddleware`` needs to run last during the request phase, which
+processes middleware top-down.
+
+The single-class ``CacheMiddleware`` can be used for some simple sites.
+However, if any other piece of middleware needs to affect the cache key, you'll
+need to use the two-part ``UpdateCacheMiddleware`` and
+``FetchFromCacheMiddleware``. This'll most often happen when you're using
+Django's ``LocaleMiddleware``.
+
+More details about how the caching works:
+
+* Only parameter-less GET or HEAD-requests with status code 200 are cached.
+
+* The number of seconds each page is stored for is set by the "max-age" section
+  of the response's "Cache-Control" header, falling back to the
+  CACHE_MIDDLEWARE_SECONDS setting if the section was not found.
+
+* If CACHE_MIDDLEWARE_ANONYMOUS_ONLY is set to True, only anonymous requests
+  (i.e., those not made by a logged-in user) will be cached. This is a simple
+  and effective way of avoiding the caching of the Django admin (and any other
+  user-specific content).
+
+* This middleware expects that a HEAD request is answered with a response
+  exactly like the corresponding GET request.
+
+* When a hit occurs, a shallow copy of the original response object is returned
+  from process_request.
+
+* Pages will be cached based on the contents of the request headers listed in
+  the response's "Vary" header.
+
+* This middleware also sets ETag, Last-Modified, Expires and Cache-Control
+  headers on the response object.
+
+"""
+
+from django.conf import settings
+from django.core.cache import cache
+from django.utils.cache import get_cache_key, learn_cache_key, patch_response_headers, get_max_age
+
+class UpdateCacheMiddleware(object):
+    """
+    Response-phase cache middleware that updates the cache if the response is
+    cacheable.
+
+    Must be used as part of the two-part update/fetch cache middleware.
+    UpdateCacheMiddleware must be the first piece of middleware in
+    MIDDLEWARE_CLASSES so that it'll get called last during the response phase.
+    """
+    def __init__(self):
+        self.cache_timeout = settings.CACHE_MIDDLEWARE_SECONDS
+        self.key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
+        self.cache_anonymous_only = getattr(settings, 'CACHE_MIDDLEWARE_ANONYMOUS_ONLY', False)
+
+    def process_response(self, request, response):
+        """Sets the cache, if needed."""
+        if not hasattr(request, '_cache_update_cache') or not request._cache_update_cache:
+            # We don't need to update the cache, just return.
+            return response
+        if request.method != 'GET':
+            # This is a stronger requirement than above. It is needed
+            # because of interactions between this middleware and the
+            # HTTPMiddleware, which throws the body of a HEAD-request
+            # away before this middleware gets a chance to cache it.
+            return response
+        if not response.status_code == 200:
+            return response
+        # Try to get the timeout from the "max-age" section of the "Cache-
+        # Control" header before reverting to using the default cache_timeout
+        # length.
+        timeout = get_max_age(response)
+        if timeout == None:
+            timeout = self.cache_timeout
+        elif timeout == 0:
+            # max-age was set to 0, don't bother caching.
+            return response
+        patch_response_headers(response, timeout)
+        cache_key = learn_cache_key(request, response, timeout, self.key_prefix)
+        cache.set(cache_key, response, timeout)
+        return response
+
+class FetchFromCacheMiddleware(object):
+    """
+    Request-phase cache middleware that fetches a page from the cache.
+
+    Must be used as part of the two-part update/fetch cache middleware.
+    FetchFromCacheMiddleware must be the last piece of middleware in
+    MIDDLEWARE_CLASSES so that it'll get called last during the request phase.
+    """
+    def __init__(self):
+        self.cache_timeout = settings.CACHE_MIDDLEWARE_SECONDS
+        self.key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
+        self.cache_anonymous_only = getattr(settings, 'CACHE_MIDDLEWARE_ANONYMOUS_ONLY', False)
+
+    def process_request(self, request):
+        """
+        Checks whether the page is already cached and returns the cached
+        version if available.
+        """
+        if self.cache_anonymous_only:
+            assert hasattr(request, 'user'), "The Django cache middleware with CACHE_MIDDLEWARE_ANONYMOUS_ONLY=True requires authentication middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.auth.middleware.AuthenticationMiddleware' before the CacheMiddleware."
+
+        if not request.method in ('GET', 'HEAD') or request.GET:
+            request._cache_update_cache = False
+            return None # Don't bother checking the cache.
+
+        if self.cache_anonymous_only and request.user.is_authenticated():
+            request._cache_update_cache = False
+            return None # Don't cache requests from authenticated users.
+
+        cache_key = get_cache_key(request, self.key_prefix)
+        if cache_key is None:
+            request._cache_update_cache = True
+            return None # No cache information available, need to rebuild.
+
+        response = cache.get(cache_key, None)
+        if response is None:
+            request._cache_update_cache = True
+            return None # No cache information available, need to rebuild.
+
+        request._cache_update_cache = False
+        return response
+
+class CacheMiddleware(UpdateCacheMiddleware, FetchFromCacheMiddleware):
+    """
+    Cache middleware that provides basic behavior for many simple sites.
+
+    Also used as the hook point for the cache decorator, which is generated
+    using the decorator-from-middleware utility.
+    """
+    def __init__(self, cache_timeout=None, key_prefix=None, cache_anonymous_only=None):
+        self.cache_timeout = cache_timeout
+        if cache_timeout is None:
+            self.cache_timeout = settings.CACHE_MIDDLEWARE_SECONDS
+        self.key_prefix = key_prefix
+        if key_prefix is None:
+            self.key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
+        if cache_anonymous_only is None:
+            self.cache_anonymous_only = getattr(settings, 'CACHE_MIDDLEWARE_ANONYMOUS_ONLY', False)
+        else:
+            self.cache_anonymous_only = cache_anonymous_only
diff --git a/webapp/django/middleware/common.py b/webapp/django/middleware/common.py
new file mode 100644
index 0000000..270ab99
--- /dev/null
+++ b/webapp/django/middleware/common.py
@@ -0,0 +1,134 @@
+import re
+
+from django.conf import settings
+from django import http
+from django.core.mail import mail_managers
+from django.utils.http import urlquote
+from django.core import urlresolvers
+from django.utils.hashcompat import md5_constructor
+
+class CommonMiddleware(object):
+    """
+    "Common" middleware for taking care of some basic operations:
+
+        - Forbids access to User-Agents in settings.DISALLOWED_USER_AGENTS
+
+        - URL rewriting: Based on the APPEND_SLASH and PREPEND_WWW settings,
+          this middleware appends missing slashes and/or prepends missing
+          "www."s.
+
+            - If APPEND_SLASH is set and the initial URL doesn't end with a
+              slash, and it is not found in urlpatterns, a new URL is formed by
+              appending a slash at the end. If this new URL is found in
+              urlpatterns, then an HTTP-redirect is returned to this new URL;
+              otherwise the initial URL is processed as usual.
+
+        - ETags: If the USE_ETAGS setting is set, ETags will be calculated from
+          the entire page content and Not Modified responses will be returned
+          appropriately.
+    """
+
+    def process_request(self, request):
+        """
+        Check for denied User-Agents and rewrite the URL based on
+        settings.APPEND_SLASH and settings.PREPEND_WWW
+        """
+
+        # Check for denied User-Agents
+        if 'HTTP_USER_AGENT' in request.META:
+            for user_agent_regex in settings.DISALLOWED_USER_AGENTS:
+                if user_agent_regex.search(request.META['HTTP_USER_AGENT']):
+                    return http.HttpResponseForbidden('<h1>Forbidden</h1>')
+
+        # Check for a redirect based on settings.APPEND_SLASH
+        # and settings.PREPEND_WWW
+        host = request.get_host()
+        old_url = [host, request.path]
+        new_url = old_url[:]
+
+        if (settings.PREPEND_WWW and old_url[0] and
+                not old_url[0].startswith('www.')):
+            new_url[0] = 'www.' + old_url[0]
+
+        # Append a slash if APPEND_SLASH is set and the URL doesn't have a
+        # trailing slash and there is no pattern for the current path
+        if settings.APPEND_SLASH and (not old_url[1].endswith('/')):
+            try:
+                urlresolvers.resolve(request.path_info)
+            except urlresolvers.Resolver404:
+                new_url[1] = new_url[1] + '/'
+                if settings.DEBUG and request.method == 'POST':
+                    raise RuntimeError, (""
+                    "You called this URL via POST, but the URL doesn't end "
+                    "in a slash and you have APPEND_SLASH set. Django can't "
+                    "redirect to the slash URL while maintaining POST data. "
+                    "Change your form to point to %s%s (note the trailing "
+                    "slash), or set APPEND_SLASH=False in your Django "
+                    "settings.") % (new_url[0], new_url[1])
+
+        if new_url != old_url:
+            # Redirect if the target url exists
+            try:
+                urlresolvers.resolve("%s/" % request.path_info)
+            except urlresolvers.Resolver404:
+                pass
+            else:
+                if new_url[0]:
+                    newurl = "%s://%s%s" % (
+                        request.is_secure() and 'https' or 'http',
+                        new_url[0], urlquote(new_url[1]))
+                else:
+                    newurl = urlquote(new_url[1])
+                if request.GET:
+                    newurl += '?' + request.GET.urlencode()
+                return http.HttpResponsePermanentRedirect(newurl)
+
+        return None
+
+    def process_response(self, request, response):
+        "Check for a flat page (for 404s) and calculate the Etag, if needed."
+        if response.status_code == 404:
+            if settings.SEND_BROKEN_LINK_EMAILS:
+                # If the referrer was from an internal link or a non-search-engine site,
+                # send a note to the managers.
+                domain = request.get_host()
+                referer = request.META.get('HTTP_REFERER', None)
+                is_internal = _is_internal_request(domain, referer)
+                path = request.get_full_path()
+                if referer and not _is_ignorable_404(path) and (is_internal or '?' not in referer):
+                    ua = request.META.get('HTTP_USER_AGENT', '<none>')
+                    ip = request.META.get('REMOTE_ADDR', '<none>')
+                    mail_managers("Broken %slink on %s" % ((is_internal and 'INTERNAL ' or ''), domain),
+                        "Referrer: %s\nRequested URL: %s\nUser agent: %s\nIP address: %s\n" \
+                                  % (referer, request.get_full_path(), ua, ip))
+                return response
+
+        # Use ETags, if requested.
+        if settings.USE_ETAGS:
+            if response.has_header('ETag'):
+                etag = response['ETag']
+            else:
+                etag = '"%s"' % md5_constructor(response.content).hexdigest()
+            if response.status_code >= 200 and response.status_code < 300 and request.META.get('HTTP_IF_NONE_MATCH') == etag:
+                cookies = response.cookies
+                response = http.HttpResponseNotModified()
+                response.cookies = cookies
+            else:
+                response['ETag'] = etag
+
+        return response
+
+def _is_ignorable_404(uri):
+    "Returns True if a 404 at the given URL *shouldn't* notify the site managers"
+    for start in settings.IGNORABLE_404_STARTS:
+        if uri.startswith(start):
+            return True
+    for end in settings.IGNORABLE_404_ENDS:
+        if uri.endswith(end):
+            return True
+    return False
+
+def _is_internal_request(domain, referer):
+    "Return true if the referring URL is the same domain as the current request"
+    # Different subdomains are treated as different domains.
+    return referer is not None and re.match("^https?://%s/" % re.escape(domain), referer)
diff --git a/webapp/django/middleware/doc.py b/webapp/django/middleware/doc.py
new file mode 100644
index 0000000..48c155c
--- /dev/null
+++ b/webapp/django/middleware/doc.py
@@ -0,0 +1,18 @@
+from django.conf import settings
+from django import http
+
+class XViewMiddleware(object):
+    """
+    Adds an X-View header to internal HEAD requests -- used by the documentation system.
+    """
+    def process_view(self, request, view_func, view_args, view_kwargs):
+        """
+        If the request method is HEAD and either the IP is internal or the
+        user is a logged-in staff member, quickly return with an x-header
+        indicating the view function.  This is used by the documentation module
+        to lookup the view function for an arbitrary page.
+        """
+        if request.method == 'HEAD' and (request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS or (request.user.is_authenticated() and request.user.is_staff)):
+            response = http.HttpResponse()
+            response['X-View'] = "%s.%s" % (view_func.__module__, view_func.__name__)
+            return response
diff --git a/webapp/django/middleware/gzip.py b/webapp/django/middleware/gzip.py
new file mode 100644
index 0000000..3b84980
--- /dev/null
+++ b/webapp/django/middleware/gzip.py
@@ -0,0 +1,39 @@
+import re
+
+from django.utils.text import compress_string
+from django.utils.cache import patch_vary_headers
+
+re_accepts_gzip = re.compile(r'\bgzip\b')
+
+class GZipMiddleware(object):
+    """
+    This middleware compresses content if the browser allows gzip compression.
+    It sets the Vary header accordingly, so that caches will base their storage
+    on the Accept-Encoding header.
+    """
+    def process_response(self, request, response):
+        # It's not worth compressing non-OK or really short responses.
+        if response.status_code != 200 or len(response.content) < 200:
+            return response
+
+        patch_vary_headers(response, ('Accept-Encoding',))
+
+        # Avoid gzipping if we've already got a content-encoding.
+        if response.has_header('Content-Encoding'):
+            return response
+
+        # Older versions of IE have issues with gzipped pages containing either
+        # Javascript and PDF.
+        if "msie" in request.META.get('HTTP_USER_AGENT', '').lower():
+            ctype = response.get('Content-Type', '').lower()
+            if "javascript" in ctype or ctype == "application/pdf":
+                return response
+
+        ae = request.META.get('HTTP_ACCEPT_ENCODING', '')
+        if not re_accepts_gzip.search(ae):
+            return response
+
+        response.content = compress_string(response.content)
+        response['Content-Encoding'] = 'gzip'
+        response['Content-Length'] = str(len(response.content))
+        return response
diff --git a/webapp/django/middleware/http.py b/webapp/django/middleware/http.py
new file mode 100644
index 0000000..53b65c1
--- /dev/null
+++ b/webapp/django/middleware/http.py
@@ -0,0 +1,55 @@
+from django.utils.http import http_date
+
+class ConditionalGetMiddleware(object):
+    """
+    Handles conditional GET operations. If the response has a ETag or
+    Last-Modified header, and the request has If-None-Match or
+    If-Modified-Since, the response is replaced by an HttpNotModified.
+
+    Also sets the Date and Content-Length response-headers.
+    """
+    def process_response(self, request, response):
+        response['Date'] = http_date()
+        if not response.has_header('Content-Length'):
+            response['Content-Length'] = str(len(response.content))
+
+        if response.has_header('ETag'):
+            if_none_match = request.META.get('HTTP_IF_NONE_MATCH', None)
+            if if_none_match == response['ETag']:
+                # Setting the status is enough here. The response handling path
+                # automatically removes content for this status code (in
+                # http.conditional_content_removal()).
+                response.status_code = 304
+
+        if response.has_header('Last-Modified'):
+            if_modified_since = request.META.get('HTTP_IF_MODIFIED_SINCE', None)
+            if if_modified_since == response['Last-Modified']:
+                # Setting the status code is enough here (same reasons as
+                # above).
+                response.status_code = 304
+
+        return response
+
+class SetRemoteAddrFromForwardedFor(object):
+    """
+    Middleware that sets REMOTE_ADDR based on HTTP_X_FORWARDED_FOR, if the
+    latter is set. This is useful if you're sitting behind a reverse proxy that
+    causes each request's REMOTE_ADDR to be set to 127.0.0.1.
+
+    Note that this does NOT validate HTTP_X_FORWARDED_FOR. If you're not behind
+    a reverse proxy that sets HTTP_X_FORWARDED_FOR automatically, do not use
+    this middleware. Anybody can spoof the value of HTTP_X_FORWARDED_FOR, and
+    because this sets REMOTE_ADDR based on HTTP_X_FORWARDED_FOR, that means
+    anybody can "fake" their IP address. Only use this when you can absolutely
+    trust the value of HTTP_X_FORWARDED_FOR.
+    """
+    def process_request(self, request):
+        try:
+            real_ip = request.META['HTTP_X_FORWARDED_FOR']
+        except KeyError:
+            return None
+        else:
+            # HTTP_X_FORWARDED_FOR can be a comma-separated list of IPs. The
+            # client's IP will be the first one.
+            real_ip = real_ip.split(",")[0].strip()
+            request.META['REMOTE_ADDR'] = real_ip
diff --git a/webapp/django/middleware/locale.py b/webapp/django/middleware/locale.py
new file mode 100644
index 0000000..b5e4949
--- /dev/null
+++ b/webapp/django/middleware/locale.py
@@ -0,0 +1,25 @@
+"this is the locale selecting middleware that will look at accept headers"
+
+from django.utils.cache import patch_vary_headers
+from django.utils import translation
+
+class LocaleMiddleware(object):
+    """
+    This is a very simple middleware that parses a request
+    and decides what translation object to install in the current
+    thread context. This allows pages to be dynamically
+    translated to the language the user desires (if the language
+    is available, of course).
+    """
+
+    def process_request(self, request):
+        language = translation.get_language_from_request(request)
+        translation.activate(language)
+        request.LANGUAGE_CODE = translation.get_language()
+
+    def process_response(self, request, response):
+        patch_vary_headers(response, ('Accept-Language',))
+        if 'Content-Language' not in response:
+            response['Content-Language'] = translation.get_language()
+        translation.deactivate()
+        return response
diff --git a/webapp/django/middleware/transaction.py b/webapp/django/middleware/transaction.py
new file mode 100644
index 0000000..96b1538
--- /dev/null
+++ b/webapp/django/middleware/transaction.py
@@ -0,0 +1,27 @@
+from django.db import transaction
+
+class TransactionMiddleware(object):
+    """
+    Transaction middleware. If this is enabled, each view function will be run
+    with commit_on_response activated - that way a save() doesn't do a direct
+    commit, the commit is done when a successful response is created. If an
+    exception happens, the database is rolled back.
+    """
+    def process_request(self, request):
+        """Enters transaction management"""
+        transaction.enter_transaction_management()
+        transaction.managed(True)
+
+    def process_exception(self, request, exception):
+        """Rolls back the database and leaves transaction management"""
+        if transaction.is_dirty():
+            transaction.rollback()
+        transaction.leave_transaction_management()
+
+    def process_response(self, request, response):
+        """Commits and leaves transaction management."""
+        if transaction.is_managed():
+            if transaction.is_dirty():
+                transaction.commit()
+            transaction.leave_transaction_management()
+        return response
diff --git a/webapp/django/oldforms/__init__.py b/webapp/django/oldforms/__init__.py
new file mode 100644
index 0000000..b5698ab
--- /dev/null
+++ b/webapp/django/oldforms/__init__.py
@@ -0,0 +1,1056 @@
+from django.core import validators
+from django.core.exceptions import PermissionDenied
+from django.utils.html import escape
+from django.utils.safestring import mark_safe
+from django.conf import settings
+from django.utils.translation import ugettext, ungettext
+from django.utils.encoding import smart_unicode, force_unicode
+
+FORM_FIELD_ID_PREFIX = 'id_'
+
+class EmptyValue(Exception):
+    "This is raised when empty data is provided"
+    pass
+
+class Manipulator(object):
+    # List of permission strings. User must have at least one to manipulate.
+    # None means everybody has permission.
+    required_permission = ''
+
+    def __init__(self):
+        # List of FormField objects
+        self.fields = []
+
+    def __getitem__(self, field_name):
+        "Looks up field by field name; raises KeyError on failure"
+        for field in self.fields:
+            if field.field_name == field_name:
+                return field
+        raise KeyError, "Field %s not found\n%s" % (field_name, repr(self.fields))
+
+    def __delitem__(self, field_name):
+        "Deletes the field with the given field name; raises KeyError on failure"
+        for i, field in enumerate(self.fields):
+            if field.field_name == field_name:
+                del self.fields[i]
+                return
+        raise KeyError, "Field %s not found" % field_name
+
+    def check_permissions(self, user):
+        """Confirms user has required permissions to use this manipulator; raises
+        PermissionDenied on failure."""
+        if self.required_permission is None:
+            return
+        if user.has_perm(self.required_permission):
+            return
+        raise PermissionDenied
+
+    def prepare(self, new_data):
+        """
+        Makes any necessary preparations to new_data, in place, before data has
+        been validated.
+        """
+        for field in self.fields:
+            field.prepare(new_data)
+
+    def get_validation_errors(self, new_data):
+        "Returns dictionary mapping field_names to error-message lists"
+        errors = {}
+        self.prepare(new_data)
+        for field in self.fields:
+            errors.update(field.get_validation_errors(new_data))
+            val_name = 'validate_%s' % field.field_name
+            if hasattr(self, val_name):
+                val = getattr(self, val_name)
+                try:
+                    field.run_validator(new_data, val)
+                except (validators.ValidationError, validators.CriticalValidationError), e:
+                    errors.setdefault(field.field_name, []).extend(e.messages)
+
+#            if field.is_required and not new_data.get(field.field_name, False):
+#                errors.setdefault(field.field_name, []).append(ugettext_lazy('This field is required.'))
+#                continue
+#            try:
+#                validator_list = field.validator_list
+#                if hasattr(self, 'validate_%s' % field.field_name):
+#                    validator_list.append(getattr(self, 'validate_%s' % field.field_name))
+#                for validator in validator_list:
+#                    if field.is_required or new_data.get(field.field_name, False) or hasattr(validator, 'always_test'):
+#                        try:
+#                            if hasattr(field, 'requires_data_list'):
+#                                validator(new_data.getlist(field.field_name), new_data)
+#                            else:
+#                                validator(new_data.get(field.field_name, ''), new_data)
+#                        except validators.ValidationError, e:
+#                            errors.setdefault(field.field_name, []).extend(e.messages)
+#            # If a CriticalValidationError is raised, ignore any other ValidationErrors
+#            # for this particular field
+#            except validators.CriticalValidationError, e:
+#                errors.setdefault(field.field_name, []).extend(e.messages)
+        return errors
+
+    def save(self, new_data):
+        "Saves the changes and returns the new object"
+        # changes is a dictionary-like object keyed by field_name
+        raise NotImplementedError
+
+    def do_html2python(self, new_data):
+        """
+        Convert the data from HTML data types to Python datatypes, changing the
+        object in place. This happens after validation but before storage. This
+        must happen after validation because html2python functions aren't
+        expected to deal with invalid input.
+        """
+        for field in self.fields:
+            field.convert_post_data(new_data)
+
+class FormWrapper(object):
+    """
+    A wrapper linking a Manipulator to the template system.
+    This allows dictionary-style lookups of formfields. It also handles feeding
+    prepopulated data and validation error messages to the formfield objects.
+    """
+    def __init__(self, manipulator, data=None, error_dict=None, edit_inline=True):
+        self.manipulator = manipulator
+        if data is None:
+            data = {}
+        if error_dict is None:
+            error_dict = {}
+        self.data = data
+        self.error_dict = error_dict
+        self._inline_collections = None
+        self.edit_inline = edit_inline
+
+    def __repr__(self):
+        return repr(self.__dict__)
+
+    def __getitem__(self, key):
+        for field in self.manipulator.fields:
+            if field.field_name == key:
+                data = field.extract_data(self.data)
+                return FormFieldWrapper(field, data, self.error_dict.get(field.field_name, []))
+        if self.edit_inline:
+            self.fill_inline_collections()
+            for inline_collection in self._inline_collections:
+                # The 'orig_name' comparison is for backwards compatibility
+                # with hand-crafted forms.
+                if inline_collection.name == key or (':' not in key and inline_collection.orig_name == key):
+                    return inline_collection
+        raise KeyError, "Could not find Formfield or InlineObjectCollection named %r" % key
+
+    def fill_inline_collections(self):
+        if not self._inline_collections:
+            ic = []
+            related_objects = self.manipulator.get_related_objects()
+            for rel_obj in related_objects:
+                data = rel_obj.extract_data(self.data)
+                inline_collection = InlineObjectCollection(self.manipulator, rel_obj, data, self.error_dict)
+                ic.append(inline_collection)
+            self._inline_collections = ic
+
+    def has_errors(self):
+        return self.error_dict != {}
+
+    def _get_fields(self):
+        try:
+            return self._fields
+        except AttributeError:
+            self._fields = [self.__getitem__(field.field_name) for field in self.manipulator.fields]
+            return self._fields
+
+    fields = property(_get_fields)
+
+class FormFieldWrapper(object):
+    "A bridge between the template system and an individual form field. Used by FormWrapper."
+    def __init__(self, formfield, data, error_list):
+        self.formfield, self.data, self.error_list = formfield, data, error_list
+        self.field_name = self.formfield.field_name # for convenience in templates
+
+    def __str__(self):
+        "Renders the field"
+        return unicode(self).encode('utf-8')
+
+    def __unicode__(self):
+        "Renders the field"
+        return force_unicode(self.formfield.render(self.data))
+
+    def __repr__(self):
+        return '<FormFieldWrapper for "%s">' % self.formfield.field_name
+
+    def field_list(self):
+        """
+        Like __str__(), but returns a list. Use this when the field's render()
+        method returns a list.
+        """
+        return self.formfield.render(self.data)
+
+    def errors(self):
+        return self.error_list
+
+    def html_error_list(self):
+        if self.errors():
+            return mark_safe('<ul class="errorlist"><li>%s</li></ul>' % '</li><li>'.join([escape(e) for e in self.errors()]))
+        else:
+            return mark_safe('')
+
+    def get_id(self):
+        return self.formfield.get_id()
+
+class FormFieldCollection(FormFieldWrapper):
+    "A utility class that gives the template access to a dict of FormFieldWrappers"
+    def __init__(self, formfield_dict):
+        self.formfield_dict = formfield_dict
+
+    def __str__(self):
+        return unicode(self).encode('utf-8')
+
+    def __unicode__(self):
+        return unicode(self.formfield_dict)
+
+    def __getitem__(self, template_key):
+        "Look up field by template key; raise KeyError on failure"
+        return self.formfield_dict[template_key]
+
+    def __repr__(self):
+        return "<FormFieldCollection: %s>" % self.formfield_dict
+
+    def errors(self):
+        "Returns list of all errors in this collection's formfields"
+        errors = []
+        for field in self.formfield_dict.values():
+            if hasattr(field, 'errors'):
+                errors.extend(field.errors())
+        return errors
+
+    def has_errors(self):
+        return bool(len(self.errors()))
+
+    def html_combined_error_list(self):
+        return mark_safe(''.join([field.html_error_list() for field in self.formfield_dict.values() if hasattr(field, 'errors')]))
+
+class InlineObjectCollection(object):
+    "An object that acts like a sparse list of form field collections."
+    def __init__(self, parent_manipulator, rel_obj, data, errors):
+        self.parent_manipulator = parent_manipulator
+        self.rel_obj = rel_obj
+        self.data = data
+        self.errors = errors
+        self._collections = None
+        self.name = rel_obj.name
+        # This is the name used prior to fixing #1839. Needs for backwards
+        # compatibility.
+        self.orig_name = rel_obj.opts.module_name
+
+    def __len__(self):
+        self.fill()
+        return self._collections.__len__()
+
+    def __getitem__(self, k):
+        self.fill()
+        return self._collections.__getitem__(k)
+
+    def __setitem__(self, k, v):
+        self.fill()
+        return self._collections.__setitem__(k,v)
+
+    def __delitem__(self, k):
+        self.fill()
+        return self._collections.__delitem__(k)
+
+    def __iter__(self):
+        self.fill()
+        return iter(self._collections.values())
+
+    def items(self):
+        self.fill()
+        return self._collections.items()
+
+    def fill(self):
+        if self._collections:
+            return
+        else:
+            var_name = self.rel_obj.opts.object_name.lower()
+            collections = {}
+            orig = None
+            if hasattr(self.parent_manipulator, 'original_object'):
+                orig = self.parent_manipulator.original_object
+            orig_list = self.rel_obj.get_list(orig)
+
+            for i, instance in enumerate(orig_list):
+                collection = {'original': instance}
+                for f in self.rel_obj.editable_fields():
+                    for field_name in f.get_manipulator_field_names(''):
+                        full_field_name = '%s.%d.%s' % (var_name, i, field_name)
+                        field = self.parent_manipulator[full_field_name]
+                        data = field.extract_data(self.data)
+                        errors = self.errors.get(full_field_name, [])
+                        collection[field_name] = FormFieldWrapper(field, data, errors)
+                collections[i] = FormFieldCollection(collection)
+            self._collections = collections
+
+
+class FormField(object):
+    """Abstract class representing a form field.
+
+    Classes that extend FormField should define the following attributes:
+        field_name
+            The field's name for use by programs.
+        validator_list
+            A list of validation tests (callback functions) that the data for
+            this field must pass in order to be added or changed.
+        is_required
+            A Boolean. Is it a required field?
+    Subclasses should also implement a render(data) method, which is responsible
+    for rending the form field in XHTML.
+    """
+
+    def __str__(self):
+        return unicode(self).encode('utf-8')
+
+    def __unicode__(self):
+        return self.render(u'')
+
+    def __repr__(self):
+        return 'FormField "%s"' % self.field_name
+
+    def prepare(self, new_data):
+        "Hook for doing something to new_data (in place) before validation."
+        pass
+
+    def html2python(data):
+        "Hook for converting an HTML datatype (e.g. 'on' for checkboxes) to a Python type"
+        return data
+    html2python = staticmethod(html2python)
+
+    def render(self, data):
+        raise NotImplementedError
+
+    def get_member_name(self):
+        if hasattr(self, 'member_name'):
+            return self.member_name
+        else:
+            return self.field_name
+
+    def extract_data(self, data_dict):
+        if hasattr(self, 'requires_data_list') and hasattr(data_dict, 'getlist'):
+            data = data_dict.getlist(self.get_member_name())
+        else:
+            data = data_dict.get(self.get_member_name(), None)
+        if data is None:
+            data = ''
+        return data
+
+    def convert_post_data(self, new_data):
+        name = self.get_member_name()
+        if self.field_name in new_data:
+            d = new_data.getlist(self.field_name)
+            try:
+                converted_data = [self.__class__.html2python(data) for data in d]
+            except ValueError:
+                converted_data = d
+            new_data.setlist(name, converted_data)
+        else:
+            try:
+                #individual fields deal with None values themselves
+                new_data.setlist(name, [self.__class__.html2python(None)])
+            except EmptyValue:
+                new_data.setlist(name, [])
+
+
+    def run_validator(self, new_data, validator):
+        if self.is_required or new_data.get(self.field_name, False) or hasattr(validator, 'always_test'):
+            if hasattr(self, 'requires_data_list'):
+                validator(new_data.getlist(self.field_name), new_data)
+            else:
+                validator(new_data.get(self.field_name, ''), new_data)
+
+    def get_validation_errors(self, new_data):
+        errors = {}
+        if self.is_required and not new_data.get(self.field_name, False):
+            errors.setdefault(self.field_name, []).append(ugettext('This field is required.'))
+            return errors
+        try:
+            for validator in self.validator_list:
+                try:
+                    self.run_validator(new_data, validator)
+                except validators.ValidationError, e:
+                    errors.setdefault(self.field_name, []).extend(e.messages)
+        # If a CriticalValidationError is raised, ignore any other ValidationErrors
+        # for this particular field
+        except validators.CriticalValidationError, e:
+            errors.setdefault(self.field_name, []).extend(e.messages)
+        return errors
+
+    def get_id(self):
+        "Returns the HTML 'id' attribute for this form field."
+        return FORM_FIELD_ID_PREFIX + self.field_name
+
+####################
+# GENERIC WIDGETS  #
+####################
+
+class TextField(FormField):
+    input_type = "text"
+    def __init__(self, field_name, length=30, max_length=None, is_required=False, validator_list=None, member_name=None):
+        if validator_list is None: validator_list = []
+        self.field_name = field_name
+        self.length, self.max_length = length, max_length
+        self.is_required = is_required
+        self.validator_list = [self.isValidLength, self.hasNoNewlines] + validator_list
+        if member_name != None:
+            self.member_name = member_name
+
+    def isValidLength(self, data, form):
+        if data and self.max_length and len(smart_unicode(data)) > self.max_length:
+            raise validators.ValidationError, ungettext("Ensure your text is less than %s character.",
+                "Ensure your text is less than %s characters.", self.max_length) % self.max_length
+
+    def hasNoNewlines(self, data, form):
+        if data and '\n' in data:
+            raise validators.ValidationError, ugettext("Line breaks are not allowed here.")
+
+    def render(self, data):
+        if data is None:
+            data = u''
+        max_length = u''
+        if self.max_length:
+            max_length = u'maxlength="%s" ' % self.max_length
+        return mark_safe(u'<input type="%s" id="%s" class="v%s%s" name="%s" size="%s" value="%s" %s/>' % \
+            (self.input_type, self.get_id(), self.__class__.__name__, self.is_required and u' required' or '',
+            self.field_name, self.length, escape(data), max_length))
+
+    def html2python(data):
+        return data
+    html2python = staticmethod(html2python)
+
+class PasswordField(TextField):
+    input_type = "password"
+
+class LargeTextField(TextField):
+    def __init__(self, field_name, rows=10, cols=40, is_required=False, validator_list=None, max_length=None):
+        if validator_list is None: validator_list = []
+        self.field_name = field_name
+        self.rows, self.cols, self.is_required = rows, cols, is_required
+        self.validator_list = validator_list[:]
+        if max_length:
+            self.validator_list.append(self.isValidLength)
+            self.max_length = max_length
+
+    def render(self, data):
+        if data is None:
+            data = ''
+        return mark_safe(u'<textarea id="%s" class="v%s%s" name="%s" rows="%s" cols="%s">%s</textarea>' % \
+            (self.get_id(), self.__class__.__name__, self.is_required and u' required' or u'',
+            self.field_name, self.rows, self.cols, escape(data)))
+
+class HiddenField(FormField):
+    def __init__(self, field_name, is_required=False, validator_list=None, max_length=None):
+        if validator_list is None: validator_list = []
+        self.field_name, self.is_required = field_name, is_required
+        self.validator_list = validator_list[:]
+
+    def render(self, data):
+        return mark_safe(u'<input type="hidden" id="%s" name="%s" value="%s" />' % \
+            (self.get_id(), self.field_name, escape(data)))
+
+class CheckboxField(FormField):
+    def __init__(self, field_name, checked_by_default=False, validator_list=None, is_required=False):
+        if validator_list is None: validator_list = []
+        self.field_name = field_name
+        self.checked_by_default = checked_by_default
+        self.is_required = is_required
+        self.validator_list = validator_list[:]
+
+    def render(self, data):
+        checked_html = ''
+        if data or (data is '' and self.checked_by_default):
+            checked_html = ' checked="checked"'
+        return mark_safe(u'<input type="checkbox" id="%s" class="v%s" name="%s"%s />' % \
+            (self.get_id(), self.__class__.__name__,
+            self.field_name, checked_html))
+
+    def html2python(data):
+        "Convert value from browser ('on' or '') to a Python boolean"
+        if data == 'on':
+            return True
+        return False
+    html2python = staticmethod(html2python)
+
+class SelectField(FormField):
+    def __init__(self, field_name, choices=None, size=1, is_required=False, validator_list=None, member_name=None):
+        if validator_list is None: validator_list = []
+        if choices is None: choices = []
+        choices = [(k, smart_unicode(v, strings_only=True)) for k, v in choices]
+        self.field_name = field_name
+        # choices is a list of (value, human-readable key) tuples because order matters
+        self.choices, self.size, self.is_required = choices, size, is_required
+        self.validator_list = [self.isValidChoice] + validator_list
+        if member_name != None:
+            self.member_name = member_name
+
+    def render(self, data):
+        output = [u'<select id="%s" class="v%s%s" name="%s" size="%s">' % \
+            (self.get_id(), self.__class__.__name__,
+             self.is_required and u' required' or u'', self.field_name, self.size)]
+        str_data = smart_unicode(data) # normalize to string
+        for value, display_name in self.choices:
+            selected_html = u''
+            if smart_unicode(value) == str_data:
+                selected_html = u' selected="selected"'
+            output.append(u'    <option value="%s"%s>%s</option>' % (escape(value), selected_html, force_unicode(escape(display_name))))
+        output.append(u'  </select>')
+        return mark_safe(u'\n'.join(output))
+
+    def isValidChoice(self, data, form):
+        str_data = smart_unicode(data)
+        str_choices = [smart_unicode(item[0]) for item in self.choices]
+        if str_data not in str_choices:
+            raise validators.ValidationError, ugettext("Select a valid choice; '%(data)s' is not in %(choices)s.") % {'data': str_data, 'choices': str_choices}
+
+class NullSelectField(SelectField):
+    "This SelectField converts blank fields to None"
+    def html2python(data):
+        if not data:
+            return None
+        return data
+    html2python = staticmethod(html2python)
+
+class RadioSelectField(FormField):
+    def __init__(self, field_name, choices=None, ul_class='', is_required=False, validator_list=None, member_name=None):
+        if validator_list is None: validator_list = []
+        if choices is None: choices = []
+        choices = [(k, smart_unicode(v)) for k, v in choices]
+        self.field_name = field_name
+        # choices is a list of (value, human-readable key) tuples because order matters
+        self.choices, self.is_required = choices, is_required
+        self.validator_list = [self.isValidChoice] + validator_list
+        self.ul_class = ul_class
+        if member_name != None:
+            self.member_name = member_name
+
+    def render(self, data):
+        """
+        Returns a special object, RadioFieldRenderer, that is iterable *and*
+        has a default unicode() rendered output.
+
+        This allows for flexible use in templates. You can just use the default
+        rendering:
+
+            {{ field_name }}
+
+        ...which will output the radio buttons in an unordered list.
+        Or, you can manually traverse each radio option for special layout:
+
+            {% for option in field_name.field_list %}
+                {{ option.field }} {{ option.label }}<br />
+            {% endfor %}
+        """
+        class RadioFieldRenderer:
+            def __init__(self, datalist, ul_class):
+                self.datalist, self.ul_class = datalist, ul_class
+            def __unicode__(self):
+                "Default unicode() output for this radio field -- a <ul>"
+                output = [u'<ul%s>' % (self.ul_class and u' class="%s"' % self.ul_class or u'')]
+                output.extend([u'<li>%s %s</li>' % (d['field'], d['label']) for d in self.datalist])
+                output.append(u'</ul>')
+                return mark_safe(u''.join(output))
+            def __iter__(self):
+                for d in self.datalist:
+                    yield d
+            def __len__(self):
+                return len(self.datalist)
+        datalist = []
+        str_data = smart_unicode(data) # normalize to string
+        for i, (value, display_name) in enumerate(self.choices):
+            selected_html = ''
+            if smart_unicode(value) == str_data:
+                selected_html = u' checked="checked"'
+            datalist.append({
+                'value': value,
+                'name': display_name,
+                'field': mark_safe(u'<input type="radio" id="%s" name="%s" value="%s"%s/>' % \
+                    (self.get_id() + u'_' + unicode(i), self.field_name, value, selected_html)),
+                'label': mark_safe(u'<label for="%s">%s</label>' % \
+                    (self.get_id() + u'_' + unicode(i), display_name),
+            )})
+        return RadioFieldRenderer(datalist, self.ul_class)
+
+    def isValidChoice(self, data, form):
+        str_data = smart_unicode(data)
+        str_choices = [smart_unicode(item[0]) for item in self.choices]
+        if str_data not in str_choices:
+            raise validators.ValidationError, ugettext("Select a valid choice; '%(data)s' is not in %(choices)s.") % {'data':str_data, 'choices':str_choices}
+
+class NullBooleanField(SelectField):
+    "This SelectField provides 'Yes', 'No' and 'Unknown', mapping results to True, False or None"
+    def __init__(self, field_name, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        SelectField.__init__(self, field_name, choices=[('1', ugettext('Unknown')), ('2', ugettext('Yes')), ('3', ugettext('No'))],
+            is_required=is_required, validator_list=validator_list)
+
+    def render(self, data):
+        if data is None: data = '1'
+        elif data == True: data = '2'
+        elif data == False: data = '3'
+        return SelectField.render(self, data)
+
+    def html2python(data):
+        return {None: None, '1': None, '2': True, '3': False}[data]
+    html2python = staticmethod(html2python)
+
+class SelectMultipleField(SelectField):
+    requires_data_list = True
+    def render(self, data):
+        output = [u'<select id="%s" class="v%s%s" name="%s" size="%s" multiple="multiple">' % \
+            (self.get_id(), self.__class__.__name__, self.is_required and u' required' or u'',
+            self.field_name, self.size)]
+        str_data_list = map(smart_unicode, data) # normalize to strings
+        for value, choice in self.choices:
+            selected_html = u''
+            if smart_unicode(value) in str_data_list:
+                selected_html = u' selected="selected"'
+            output.append(u'    <option value="%s"%s>%s</option>' % (escape(value), selected_html, force_unicode(escape(choice))))
+        output.append(u'  </select>')
+        return mark_safe(u'\n'.join(output))
+
+    def isValidChoice(self, field_data, all_data):
+        # data is something like ['1', '2', '3']
+        str_choices = [smart_unicode(item[0]) for item in self.choices]
+        for val in map(smart_unicode, field_data):
+            if val not in str_choices:
+                raise validators.ValidationError, ugettext("Select a valid choice; '%(data)s' is not in %(choices)s.") % {'data':val, 'choices':str_choices}
+
+    def html2python(data):
+        if data is None:
+            raise EmptyValue
+        return data
+    html2python = staticmethod(html2python)
+
+class CheckboxSelectMultipleField(SelectMultipleField):
+    """
+    This has an identical interface to SelectMultipleField, except the rendered
+    widget is different. Instead of a <select multiple>, this widget outputs a
+    <ul> of <input type="checkbox">es.
+
+    Of course, that results in multiple form elements for the same "single"
+    field, so this class's prepare() method flattens the split data elements
+    back into the single list that validators, renderers and save() expect.
+    """
+    requires_data_list = True
+    def __init__(self, field_name, choices=None, ul_class='', validator_list=None):
+        if validator_list is None: validator_list = []
+        if choices is None: choices = []
+        self.ul_class = ul_class
+        SelectMultipleField.__init__(self, field_name, choices, size=1, is_required=False, validator_list=validator_list)
+
+    def prepare(self, new_data):
+        # new_data has "split" this field into several fields, so flatten it
+        # back into a single list.
+        data_list = []
+        for value, readable_value in self.choices:
+            if new_data.get('%s%s' % (self.field_name, value), '') == 'on':
+                data_list.append(value)
+        new_data.setlist(self.field_name, data_list)
+
+    def render(self, data):
+        output = [u'<ul%s>' % (self.ul_class and u' class="%s"' % self.ul_class or u'')]
+        str_data_list = map(smart_unicode, data) # normalize to strings
+        for value, choice in self.choices:
+            checked_html = u''
+            if smart_unicode(value) in str_data_list:
+                checked_html = u' checked="checked"'
+            field_name = u'%s%s' % (self.field_name, value)
+            output.append(u'<li><input type="checkbox" id="%s" class="v%s" name="%s"%s value="on" /> <label for="%s">%s</label></li>' % \
+                (self.get_id() + escape(value), self.__class__.__name__, field_name, checked_html,
+                self.get_id() + escape(value), choice))
+        output.append(u'</ul>')
+        return mark_safe(u'\n'.join(output))
+
+####################
+# FILE UPLOADS     #
+####################
+
+class FileUploadField(FormField):
+    def __init__(self, field_name, is_required=False, validator_list=None, max_length=None):
+        if validator_list is None: validator_list = []
+        self.field_name, self.is_required = field_name, is_required
+        self.validator_list = [self.isNonEmptyFile] + validator_list
+
+    def isNonEmptyFile(self, new_data, all_data):
+        if hasattr(new_data, 'upload_errors'):
+            upload_errors = new_data.upload_errors()
+            if upload_errors:
+                raise validators.CriticalValidationError, upload_errors
+        try:
+            file_size = new_data.size
+        except AttributeError:
+            file_size = len(new_data['content'])
+        if not file_size:
+            raise validators.CriticalValidationError, ugettext("The submitted file is empty.")
+
+    def render(self, data):
+        return mark_safe(u'<input type="file" id="%s" class="v%s" name="%s" />' % \
+            (self.get_id(), self.__class__.__name__, self.field_name))
+
+    def prepare(self, new_data):
+        if hasattr(new_data, 'upload_errors'):
+            upload_errors = new_data.upload_errors()
+            new_data[self.field_name] = { '_file_upload_error': upload_errors }
+
+    def html2python(data):
+        if data is None:
+            raise EmptyValue
+        return data
+    html2python = staticmethod(html2python)
+
+class ImageUploadField(FileUploadField):
+    "A FileUploadField that raises CriticalValidationError if the uploaded file isn't an image."
+    def __init__(self, *args, **kwargs):
+        FileUploadField.__init__(self, *args, **kwargs)
+        self.validator_list.insert(0, self.isValidImage)
+
+    def isValidImage(self, field_data, all_data):
+        try:
+            validators.isValidImage(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+####################
+# INTEGERS/FLOATS  #
+####################
+
+class IntegerField(TextField):
+    def __init__(self, field_name, length=10, max_length=None, is_required=False, validator_list=None, member_name=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isInteger] + validator_list
+        if member_name is not None:
+            self.member_name = member_name
+        TextField.__init__(self, field_name, length, max_length, is_required, validator_list)
+
+    def isInteger(self, field_data, all_data):
+        try:
+            validators.isInteger(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+    def html2python(data):
+        if data == '' or data is None:
+            return None
+        return int(data)
+    html2python = staticmethod(html2python)
+
+class SmallIntegerField(IntegerField):
+    def __init__(self, field_name, length=5, max_length=5, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isSmallInteger] + validator_list
+        IntegerField.__init__(self, field_name, length, max_length, is_required, validator_list)
+
+    def isSmallInteger(self, field_data, all_data):
+        if not -32768 <= int(field_data) <= 32767:
+            raise validators.CriticalValidationError, ugettext("Enter a whole number between -32,768 and 32,767.")
+
+class PositiveIntegerField(IntegerField):
+    def __init__(self, field_name, length=10, max_length=None, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isPositive] + validator_list
+        IntegerField.__init__(self, field_name, length, max_length, is_required, validator_list)
+
+    def isPositive(self, field_data, all_data):
+        if int(field_data) < 0:
+            raise validators.CriticalValidationError, ugettext("Enter a positive number.")
+
+class PositiveSmallIntegerField(IntegerField):
+    def __init__(self, field_name, length=5, max_length=None, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isPositiveSmall] + validator_list
+        IntegerField.__init__(self, field_name, length, max_length, is_required, validator_list)
+
+    def isPositiveSmall(self, field_data, all_data):
+        if not 0 <= int(field_data) <= 32767:
+            raise validators.CriticalValidationError, ugettext("Enter a whole number between 0 and 32,767.")
+
+class FloatField(TextField):
+    def __init__(self, field_name, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [validators.isValidFloat] + validator_list
+        TextField.__init__(self, field_name, is_required=is_required, validator_list=validator_list)
+
+    def html2python(data):
+        if data == '' or data is None:
+            return None
+        return float(data)
+    html2python = staticmethod(html2python)
+
+class DecimalField(TextField):
+    def __init__(self, field_name, max_digits, decimal_places, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        self.max_digits, self.decimal_places = max_digits, decimal_places
+        validator_list = [self.isValidDecimal] + validator_list
+        # Initialise the TextField, making sure it's large enough to fit the number with a - sign and a decimal point.
+        super(DecimalField, self).__init__(field_name, max_digits+2, max_digits+2, is_required, validator_list)
+
+    def isValidDecimal(self, field_data, all_data):
+        v = validators.IsValidDecimal(self.max_digits, self.decimal_places)
+        try:
+            v(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+    def html2python(data):
+        if data == '' or data is None:
+            return None
+        try:
+            import decimal
+        except ImportError:
+            from django.utils import _decimal as decimal
+        try:
+            return decimal.Decimal(data)
+        except decimal.InvalidOperation, e:
+            raise ValueError, e
+    html2python = staticmethod(html2python)
+
+####################
+# DATES AND TIMES  #
+####################
+
+class DatetimeField(TextField):
+    """A FormField that automatically converts its data to a datetime.datetime object.
+    The data should be in the format YYYY-MM-DD HH:MM:SS."""
+    def __init__(self, field_name, length=30, max_length=None, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        self.field_name = field_name
+        self.length, self.max_length = length, max_length
+        self.is_required = is_required
+        self.validator_list = [validators.isValidANSIDatetime] + validator_list
+
+    def html2python(data):
+        "Converts the field into a datetime.datetime object"
+        import datetime
+        try:
+            date, time = data.split()
+            y, m, d = date.split('-')
+            timebits = time.split(':')
+            h, mn = timebits[:2]
+            if len(timebits) > 2:
+                s = int(timebits[2])
+            else:
+                s = 0
+            return datetime.datetime(int(y), int(m), int(d), int(h), int(mn), s)
+        except ValueError:
+            return None
+    html2python = staticmethod(html2python)
+
+class DateField(TextField):
+    """A FormField that automatically converts its data to a datetime.date object.
+    The data should be in the format YYYY-MM-DD."""
+    def __init__(self, field_name, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isValidDate] + validator_list
+        TextField.__init__(self, field_name, length=10, max_length=10,
+            is_required=is_required, validator_list=validator_list)
+
+    def isValidDate(self, field_data, all_data):
+        try:
+            validators.isValidANSIDate(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+    def html2python(data):
+        "Converts the field into a datetime.date object"
+        import time, datetime
+        try:
+            time_tuple = time.strptime(data, '%Y-%m-%d')
+            return datetime.date(*time_tuple[0:3])
+        except (ValueError, TypeError):
+            return None
+    html2python = staticmethod(html2python)
+
+class TimeField(TextField):
+    """A FormField that automatically converts its data to a datetime.time object.
+    The data should be in the format HH:MM:SS or HH:MM:SS.mmmmmm."""
+    def __init__(self, field_name, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isValidTime] + validator_list
+        TextField.__init__(self, field_name, length=8, max_length=8,
+            is_required=is_required, validator_list=validator_list)
+
+    def isValidTime(self, field_data, all_data):
+        try:
+            validators.isValidANSITime(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+    def html2python(data):
+        "Converts the field into a datetime.time object"
+        import time, datetime
+        try:
+            part_list = data.split('.')
+            try:
+                time_tuple = time.strptime(part_list[0], '%H:%M:%S')
+            except ValueError: # seconds weren't provided
+                time_tuple = time.strptime(part_list[0], '%H:%M')
+            t = datetime.time(*time_tuple[3:6])
+            if (len(part_list) == 2):
+                t = t.replace(microsecond=int(part_list[1]))
+            return t
+        except (ValueError, TypeError, AttributeError):
+            return None
+    html2python = staticmethod(html2python)
+
+####################
+# INTERNET-RELATED #
+####################
+
+class EmailField(TextField):
+    "A convenience FormField for validating e-mail addresses"
+    def __init__(self, field_name, length=50, max_length=75, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isValidEmail] + validator_list
+        TextField.__init__(self, field_name, length, max_length=max_length,
+            is_required=is_required, validator_list=validator_list)
+
+    def isValidEmail(self, field_data, all_data):
+        try:
+            validators.isValidEmail(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+class URLField(TextField):
+    "A convenience FormField for validating URLs"
+    def __init__(self, field_name, length=50, max_length=200, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isValidURL] + validator_list
+        TextField.__init__(self, field_name, length=length, max_length=max_length,
+            is_required=is_required, validator_list=validator_list)
+
+    def isValidURL(self, field_data, all_data):
+        try:
+            validators.isValidURL(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+class IPAddressField(TextField):
+    def __init__(self, field_name, length=15, max_length=15, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isValidIPAddress] + validator_list
+        TextField.__init__(self, field_name, length=length, max_length=max_length,
+            is_required=is_required, validator_list=validator_list)
+
+    def isValidIPAddress(self, field_data, all_data):
+        try:
+            validators.isValidIPAddress4(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+    def html2python(data):
+        return data or None
+    html2python = staticmethod(html2python)
+
+####################
+# MISCELLANEOUS    #
+####################
+
+class FilePathField(SelectField):
+    "A SelectField whose choices are the files in a given directory."
+    def __init__(self, field_name, path, match=None, recursive=False, is_required=False, validator_list=None, max_length=None):
+        import os
+        from django.db.models import BLANK_CHOICE_DASH
+        if match is not None:
+            import re
+            match_re = re.compile(match)
+        choices = not is_required and BLANK_CHOICE_DASH[:] or []
+        if recursive:
+            for root, dirs, files in os.walk(path):
+                for f in files:
+                    if match is None or match_re.search(f):
+                        f = os.path.join(root, f)
+                        choices.append((f, f.replace(path, "", 1)))
+        else:
+            try:
+                for f in os.listdir(path):
+                    full_file = os.path.join(path, f)
+                    if os.path.isfile(full_file) and (match is None or match_re.search(f)):
+                        choices.append((full_file, f))
+            except OSError:
+                pass
+        SelectField.__init__(self, field_name, choices, 1, is_required, validator_list)
+
+class PhoneNumberField(TextField):
+    "A convenience FormField for validating phone numbers (e.g. '630-555-1234')"
+    def __init__(self, field_name, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isValidPhone] + validator_list
+        TextField.__init__(self, field_name, length=12, max_length=12,
+            is_required=is_required, validator_list=validator_list)
+
+    def isValidPhone(self, field_data, all_data):
+        try:
+            validators.isValidPhone(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+class USStateField(TextField):
+    "A convenience FormField for validating U.S. states (e.g. 'IL')"
+    def __init__(self, field_name, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isValidUSState] + validator_list
+        TextField.__init__(self, field_name, length=2, max_length=2,
+            is_required=is_required, validator_list=validator_list)
+
+    def isValidUSState(self, field_data, all_data):
+        try:
+            validators.isValidUSState(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+    def html2python(data):
+        if data:
+            return data.upper() # Should always be stored in upper case
+        return data
+    html2python = staticmethod(html2python)
+
+class CommaSeparatedIntegerField(TextField):
+    "A convenience FormField for validating comma-separated integer fields"
+    def __init__(self, field_name, max_length=None, is_required=False, validator_list=None):
+        if validator_list is None: validator_list = []
+        validator_list = [self.isCommaSeparatedIntegerList] + validator_list
+        TextField.__init__(self, field_name, length=20, max_length=max_length,
+            is_required=is_required, validator_list=validator_list)
+
+    def isCommaSeparatedIntegerList(self, field_data, all_data):
+        try:
+            validators.isCommaSeparatedIntegerList(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
+
+    def render(self, data):
+        if data is None:
+            data = u''
+        elif isinstance(data, (list, tuple)):
+            data = u','.join(data)
+        return super(CommaSeparatedIntegerField, self).render(data)
+
+class RawIdAdminField(CommaSeparatedIntegerField):
+    def html2python(data):
+        if data:
+            return data.split(',')
+        else:
+            return []
+    html2python = staticmethod(html2python)
+
+class XMLLargeTextField(LargeTextField):
+    """
+    A LargeTextField with an XML validator. The schema_path argument is the
+    full path to a Relax NG compact schema to validate against.
+    """
+    def __init__(self, field_name, schema_path, **kwargs):
+        self.schema_path = schema_path
+        kwargs.setdefault('validator_list', []).insert(0, self.isValidXML)
+        LargeTextField.__init__(self, field_name, **kwargs)
+
+    def isValidXML(self, field_data, all_data):
+        v = validators.RelaxNGCompact(self.schema_path)
+        try:
+            v(field_data, all_data)
+        except validators.ValidationError, e:
+            raise validators.CriticalValidationError, e.messages
diff --git a/webapp/django/shortcuts/__init__.py b/webapp/django/shortcuts/__init__.py
new file mode 100644
index 0000000..1cece7c
--- /dev/null
+++ b/webapp/django/shortcuts/__init__.py
@@ -0,0 +1,62 @@
+"""
+This module collects helper functions and classes that "span" multiple levels
+of MVC. In other words, these functions/classes introduce controlled coupling
+for convenience's sake.
+"""
+
+from django.template import loader
+from django.http import HttpResponse, Http404
+from django.db.models.manager import Manager
+from django.db.models.query import QuerySet
+
+def render_to_response(*args, **kwargs):
+    """
+    Returns a HttpResponse whose content is filled with the result of calling
+    django.template.loader.render_to_string() with the passed arguments.
+    """
+    httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
+    return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
+
+def _get_queryset(klass):
+    """
+    Returns a QuerySet from a Model, Manager, or QuerySet. Created to make
+    get_object_or_404 and get_list_or_404 more DRY.
+    """
+    if isinstance(klass, QuerySet):
+        return klass
+    elif isinstance(klass, Manager):
+        manager = klass
+    else:
+        manager = klass._default_manager
+    return manager.all()
+
+def get_object_or_404(klass, *args, **kwargs):
+    """
+    Uses get() to return an object, or raises a Http404 exception if the object
+    does not exist.
+
+    klass may be a Model, Manager, or QuerySet object. All other passed
+    arguments and keyword arguments are used in the get() query.
+
+    Note: Like with get(), an MultipleObjectsReturned will be raised if more than one
+    object is found.
+    """
+    queryset = _get_queryset(klass)
+    try:
+        return queryset.get(*args, **kwargs)
+    except queryset.model.DoesNotExist:
+        raise Http404('No %s matches the given query.' % queryset.model._meta.object_name)
+
+def get_list_or_404(klass, *args, **kwargs):
+    """
+    Uses filter() to return a list of objects, or raise a Http404 exception if
+    the list is empty.
+
+    klass may be a Model, Manager, or QuerySet object. All other passed
+    arguments and keyword arguments are used in the filter() query.
+    """
+    queryset = _get_queryset(klass)
+    obj_list = list(queryset.filter(*args, **kwargs))
+    if not obj_list:
+        raise Http404('No %s matches the given query.' % queryset.model._meta.object_name)
+    return obj_list
diff --git a/webapp/django/template/__init__.py b/webapp/django/template/__init__.py
new file mode 100644
index 0000000..ffdb4e4
--- /dev/null
+++ b/webapp/django/template/__init__.py
@@ -0,0 +1,939 @@
+"""
+This is the Django template system.
+
+How it works:
+
+The Lexer.tokenize() function converts a template string (i.e., a string containing
+markup with custom template tags) to tokens, which can be either plain text
+(TOKEN_TEXT), variables (TOKEN_VAR) or block statements (TOKEN_BLOCK).
+
+The Parser() class takes a list of tokens in its constructor, and its parse()
+method returns a compiled template -- which is, under the hood, a list of
+Node objects.
+
+Each Node is responsible for creating some sort of output -- e.g. simple text
+(TextNode), variable values in a given context (VariableNode), results of basic
+logic (IfNode), results of looping (ForNode), or anything else. The core Node
+types are TextNode, VariableNode, IfNode and ForNode, but plugin modules can
+define their own custom node types.
+
+Each Node has a render() method, which takes a Context and returns a string of
+the rendered node. For example, the render() method of a Variable Node returns
+the variable's value as a string. The render() method of an IfNode returns the
+rendered output of whatever was inside the loop, recursively.
+
+The Template class is a convenient wrapper that takes care of template
+compilation and rendering.
+
+Usage:
+
+The only thing you should ever use directly in this file is the Template class.
+Create a compiled template object with a template_string, then call render()
+with a context. In the compilation stage, the TemplateSyntaxError exception
+will be raised if the template doesn't have proper syntax.
+
+Sample code:
+
+>>> from django import template
+>>> s = u'<html>{% if test %}<h1>{{ varvalue }}</h1>{% endif %}</html>'
+>>> t = template.Template(s)
+
+(t is now a compiled template, and its render() method can be called multiple
+times with multiple contexts)
+
+>>> c = template.Context({'test':True, 'varvalue': 'Hello'})
+>>> t.render(c)
+u'<html><h1>Hello</h1></html>'
+>>> c = template.Context({'test':False, 'varvalue': 'Hello'})
+>>> t.render(c)
+u'<html></html>'
+"""
+import re
+from inspect import getargspec
+from django.conf import settings
+from django.template.context import Context, RequestContext, ContextPopException
+from django.utils.itercompat import is_iterable
+from django.utils.functional import curry, Promise
+from django.utils.text import smart_split
+from django.utils.encoding import smart_unicode, force_unicode
+from django.utils.translation import ugettext as _
+from django.utils.safestring import SafeData, EscapeData, mark_safe, mark_for_escaping
+from django.utils.html import escape
+
+__all__ = ('Template', 'Context', 'RequestContext', 'compile_string')
+
+TOKEN_TEXT = 0
+TOKEN_VAR = 1
+TOKEN_BLOCK = 2
+TOKEN_COMMENT = 3
+
+# template syntax constants
+FILTER_SEPARATOR = '|'
+FILTER_ARGUMENT_SEPARATOR = ':'
+VARIABLE_ATTRIBUTE_SEPARATOR = '.'
+BLOCK_TAG_START = '{%'
+BLOCK_TAG_END = '%}'
+VARIABLE_TAG_START = '{{'
+VARIABLE_TAG_END = '}}'
+COMMENT_TAG_START = '{#'
+COMMENT_TAG_END = '#}'
+SINGLE_BRACE_START = '{'
+SINGLE_BRACE_END = '}'
+
+ALLOWED_VARIABLE_CHARS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.'
+
+# what to report as the origin for templates that come from non-loader sources
+# (e.g. strings)
+UNKNOWN_SOURCE="&lt;unknown source&gt;"
+
+# match a variable or block tag and capture the entire tag, including start/end delimiters
+tag_re = re.compile('(%s.*?%s|%s.*?%s|%s.*?%s)' % (re.escape(BLOCK_TAG_START), re.escape(BLOCK_TAG_END),
+                                          re.escape(VARIABLE_TAG_START), re.escape(VARIABLE_TAG_END),
+                                          re.escape(COMMENT_TAG_START), re.escape(COMMENT_TAG_END)))
+
+# global dictionary of libraries that have been loaded using get_library
+libraries = {}
+# global list of libraries to load by default for a new parser
+builtins = []
+
+# True if TEMPLATE_STRING_IF_INVALID contains a format string (%s). None means
+# uninitialised.
+invalid_var_format_string = None
+
+class TemplateSyntaxError(Exception):
+    def __str__(self):
+        try:
+            import cStringIO as StringIO
+        except ImportError:
+            import StringIO
+        output = StringIO.StringIO()
+        output.write(Exception.__str__(self))
+        # Check if we wrapped an exception and print that too.
+        if hasattr(self, 'exc_info'):
+            import traceback
+            output.write('\n\nOriginal ')
+            e = self.exc_info
+            traceback.print_exception(e[0], e[1], e[2], 500, output)
+        return output.getvalue()
+
+class TemplateDoesNotExist(Exception):
+    pass
+
+class TemplateEncodingError(Exception):
+    pass
+
+class VariableDoesNotExist(Exception):
+
+    def __init__(self, msg, params=()):
+        self.msg = msg
+        self.params = params
+
+    def __str__(self):
+        return unicode(self).encode('utf-8')
+
+    def __unicode__(self):
+        return self.msg % tuple([force_unicode(p, errors='replace') for p in self.params])
+
+class InvalidTemplateLibrary(Exception):
+    pass
+
+class Origin(object):
+    def __init__(self, name):
+        self.name = name
+
+    def reload(self):
+        raise NotImplementedError
+
+    def __str__(self):
+        return self.name
+
+class StringOrigin(Origin):
+    def __init__(self, source):
+        super(StringOrigin, self).__init__(UNKNOWN_SOURCE)
+        self.source = source
+
+    def reload(self):
+        return self.source
+
+class Template(object):
+    def __init__(self, template_string, origin=None, name='<Unknown Template>'):
+        try:
+            template_string = smart_unicode(template_string)
+        except UnicodeDecodeError:
+            raise TemplateEncodingError("Templates can only be constructed from unicode or UTF-8 strings.")
+        if settings.TEMPLATE_DEBUG and origin is None:
+            origin = StringOrigin(template_string)
+        self.nodelist = compile_string(template_string, origin)
+        self.name = name
+
+    def __iter__(self):
+        for node in self.nodelist:
+            for subnode in node:
+                yield subnode
+
+    def render(self, context):
+        "Display stage -- can be called many times"
+        return self.nodelist.render(context)
+
+def compile_string(template_string, origin):
+    "Compiles template_string into NodeList ready for rendering"
+    if settings.TEMPLATE_DEBUG:
+        from debug import DebugLexer, DebugParser
+        lexer_class, parser_class = DebugLexer, DebugParser
+    else:
+        lexer_class, parser_class = Lexer, Parser
+    lexer = lexer_class(template_string, origin)
+    parser = parser_class(lexer.tokenize())
+    return parser.parse()
+
+class Token(object):
+    def __init__(self, token_type, contents):
+        # token_type must be TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK or TOKEN_COMMENT.
+        self.token_type, self.contents = token_type, contents
+
+    def __str__(self):
+        return '<%s token: "%s...">' % \
+            ({TOKEN_TEXT: 'Text', TOKEN_VAR: 'Var', TOKEN_BLOCK: 'Block', TOKEN_COMMENT: 'Comment'}[self.token_type],
+            self.contents[:20].replace('\n', ''))
+
+    def split_contents(self):
+        return list(smart_split(self.contents))
+
+class Lexer(object):
+    def __init__(self, template_string, origin):
+        self.template_string = template_string
+        self.origin = origin
+
+    def tokenize(self):
+        "Return a list of tokens from a given template_string."
+        in_tag = False
+        result = []
+        for bit in tag_re.split(self.template_string):
+            if bit:
+                result.append(self.create_token(bit, in_tag))
+            in_tag = not in_tag
+        return result
+
+    def create_token(self, token_string, in_tag):
+        """
+        Convert the given token string into a new Token object and return it.
+        If in_tag is True, we are processing something that matched a tag,
+        otherwise it should be treated as a literal string.
+        """
+        if in_tag:
+            if token_string.startswith(VARIABLE_TAG_START):
+                token = Token(TOKEN_VAR, token_string[len(VARIABLE_TAG_START):-len(VARIABLE_TAG_END)].strip())
+            elif token_string.startswith(BLOCK_TAG_START):
+                token = Token(TOKEN_BLOCK, token_string[len(BLOCK_TAG_START):-len(BLOCK_TAG_END)].strip())
+            elif token_string.startswith(COMMENT_TAG_START):
+                token = Token(TOKEN_COMMENT, '')
+        else:
+            token = Token(TOKEN_TEXT, token_string)
+        return token
+
+class Parser(object):
+    def __init__(self, tokens):
+        self.tokens = tokens
+        self.tags = {}
+        self.filters = {}
+        for lib in builtins:
+            self.add_library(lib)
+
+    def parse(self, parse_until=None):
+        if parse_until is None: parse_until = []
+        nodelist = self.create_nodelist()
+        while self.tokens:
+            token = self.next_token()
+            if token.token_type == TOKEN_TEXT:
+                self.extend_nodelist(nodelist, TextNode(token.contents), token)
+            elif token.token_type == TOKEN_VAR:
+                if not token.contents:
+                    self.empty_variable(token)
+                filter_expression = self.compile_filter(token.contents)
+                var_node = self.create_variable_node(filter_expression)
+                self.extend_nodelist(nodelist, var_node,token)
+            elif token.token_type == TOKEN_BLOCK:
+                if token.contents in parse_until:
+                    # put token back on token list so calling code knows why it terminated
+                    self.prepend_token(token)
+                    return nodelist
+                try:
+                    command = token.contents.split()[0]
+                except IndexError:
+                    self.empty_block_tag(token)
+                # execute callback function for this tag and append resulting node
+                self.enter_command(command, token)
+                try:
+                    compile_func = self.tags[command]
+                except KeyError:
+                    self.invalid_block_tag(token, command)
+                try:
+                    compiled_result = compile_func(self, token)
+                except TemplateSyntaxError, e:
+                    if not self.compile_function_error(token, e):
+                        raise
+                self.extend_nodelist(nodelist, compiled_result, token)
+                self.exit_command()
+        if parse_until:
+            self.unclosed_block_tag(parse_until)
+        return nodelist
+
+    def skip_past(self, endtag):
+        while self.tokens:
+            token = self.next_token()
+            if token.token_type == TOKEN_BLOCK and token.contents == endtag:
+                return
+        self.unclosed_block_tag([endtag])
+
+    def create_variable_node(self, filter_expression):
+        return VariableNode(filter_expression)
+
+    def create_nodelist(self):
+        return NodeList()
+
+    def extend_nodelist(self, nodelist, node, token):
+        if node.must_be_first and nodelist:
+            try:
+                if nodelist.contains_nontext:
+                    raise AttributeError
+            except AttributeError:
+                raise TemplateSyntaxError("%r must be the first tag in the template." % node)
+        if isinstance(nodelist, NodeList) and not isinstance(node, TextNode):
+            nodelist.contains_nontext = True
+        nodelist.append(node)
+
+    def enter_command(self, command, token):
+        pass
+
+    def exit_command(self):
+        pass
+
+    def error(self, token, msg):
+        return TemplateSyntaxError(msg)
+
+    def empty_variable(self, token):
+        raise self.error(token, "Empty variable tag")
+
+    def empty_block_tag(self, token):
+        raise self.error(token, "Empty block tag")
+
+    def invalid_block_tag(self, token, command):
+        raise self.error(token, "Invalid block tag: '%s'" % command)
+
+    def unclosed_block_tag(self, parse_until):
+        raise self.error(None, "Unclosed tags: %s " %  ', '.join(parse_until))
+
+    def compile_function_error(self, token, e):
+        pass
+
+    def next_token(self):
+        return self.tokens.pop(0)
+
+    def prepend_token(self, token):
+        self.tokens.insert(0, token)
+
+    def delete_first_token(self):
+        del self.tokens[0]
+
+    def add_library(self, lib):
+        self.tags.update(lib.tags)
+        self.filters.update(lib.filters)
+
+    def compile_filter(self, token):
+        "Convenient wrapper for FilterExpression"
+        return FilterExpression(token, self)
+
+    def find_filter(self, filter_name):
+        if filter_name in self.filters:
+            return self.filters[filter_name]
+        else:
+            raise TemplateSyntaxError("Invalid filter: '%s'" % filter_name)
+
+class TokenParser(object):
+    """
+    Subclass this and implement the top() method to parse a template line. When
+    instantiating the parser, pass in the line from the Django template parser.
+
+    The parser's "tagname" instance-variable stores the name of the tag that
+    the filter was called with.
+    """
+    def __init__(self, subject):
+        self.subject = subject
+        self.pointer = 0
+        self.backout = []
+        self.tagname = self.tag()
+
+    def top(self):
+        "Overload this method to do the actual parsing and return the result."
+        raise NotImplementedError()
+
+    def more(self):
+        "Returns True if there is more stuff in the tag."
+        return self.pointer < len(self.subject)
+
+    def back(self):
+        "Undoes the last microparser. Use this for lookahead and backtracking."
+        if not len(self.backout):
+            raise TemplateSyntaxError("back called without some previous parsing")
+        self.pointer = self.backout.pop()
+
+    def tag(self):
+        "A microparser that just returns the next tag from the line."
+        subject = self.subject
+        i = self.pointer
+        if i >= len(subject):
+            raise TemplateSyntaxError("expected another tag, found end of string: %s" % subject)
+        p = i
+        while i < len(subject) and subject[i] not in (' ', '\t'):
+            i += 1
+        s = subject[p:i]
+        while i < len(subject) and subject[i] in (' ', '\t'):
+            i += 1
+        self.backout.append(self.pointer)
+        self.pointer = i
+        return s
+
+    def value(self):
+        "A microparser that parses for a value: some string constant or variable name."
+        subject = self.subject
+        i = self.pointer
+        if i >= len(subject):
+            raise TemplateSyntaxError("Searching for value. Expected another value but found end of string: %s" % subject)
+        if subject[i] in ('"', "'"):
+            p = i
+            i += 1
+            while i < len(subject) and subject[i] != subject[p]:
+                i += 1
+            if i >= len(subject):
+                raise TemplateSyntaxError("Searching for value. Unexpected end of string in column %d: %s" % (i, subject))
+            i += 1
+            res = subject[p:i]
+            while i < len(subject) and subject[i] in (' ', '\t'):
+                i += 1
+            self.backout.append(self.pointer)
+            self.pointer = i
+            return res
+        else:
+            p = i
+            while i < len(subject) and subject[i] not in (' ', '\t'):
+                if subject[i] in ('"', "'"):
+                    c = subject[i]
+                    i += 1
+                    while i < len(subject) and subject[i] != c:
+                        i += 1
+                    if i >= len(subject):
+                        raise TemplateSyntaxError("Searching for value. Unexpected end of string in column %d: %s" % (i, subject))
+                i += 1
+            s = subject[p:i]
+            while i < len(subject) and subject[i] in (' ', '\t'):
+                i += 1
+            self.backout.append(self.pointer)
+            self.pointer = i
+            return s
+
+filter_raw_string = r"""
+^%(i18n_open)s"(?P<i18n_constant>%(str)s)"%(i18n_close)s|
+^"(?P<constant>%(str)s)"|
+^(?P<var>[%(var_chars)s]+)|
+ (?:%(filter_sep)s
+     (?P<filter_name>\w+)
+         (?:%(arg_sep)s
+             (?:
+              %(i18n_open)s"(?P<i18n_arg>%(str)s)"%(i18n_close)s|
+              "(?P<constant_arg>%(str)s)"|
+              (?P<var_arg>[%(var_chars)s]+)
+             )
+         )?
+ )""" % {
+    'str': r"""[^"\\]*(?:\\.[^"\\]*)*""",
+    'var_chars': "\w\." ,
+    'filter_sep': re.escape(FILTER_SEPARATOR),
+    'arg_sep': re.escape(FILTER_ARGUMENT_SEPARATOR),
+    'i18n_open' : re.escape("_("),
+    'i18n_close' : re.escape(")"),
+  }
+
+filter_raw_string = filter_raw_string.replace("\n", "").replace(" ", "")
+filter_re = re.compile(filter_raw_string, re.UNICODE)
+
+class FilterExpression(object):
+    """
+    Parses a variable token and its optional filters (all as a single string),
+    and return a list of tuples of the filter name and arguments.
+    Sample:
+        >>> token = 'variable|default:"Default value"|date:"Y-m-d"'
+        >>> p = Parser('')
+        >>> fe = FilterExpression(token, p)
+        >>> len(fe.filters)
+        2
+        >>> fe.var
+        <Variable: 'variable'>
+
+    This class should never be instantiated outside of the
+    get_filters_from_token helper function.
+    """
+    def __init__(self, token, parser):
+        self.token = token
+        matches = filter_re.finditer(token)
+        var = None
+        filters = []
+        upto = 0
+        for match in matches:
+            start = match.start()
+            if upto != start:
+                raise TemplateSyntaxError("Could not parse some characters: %s|%s|%s"  % \
+                                           (token[:upto], token[upto:start], token[start:]))
+            if var == None:
+                var, constant, i18n_constant = match.group("var", "constant", "i18n_constant")
+                if i18n_constant is not None:
+                    # Don't pass the empty string to gettext, because the empty
+                    # string translates to meta information.
+                    if i18n_constant == "":
+                        var = '""'
+                    else:
+                        var = '"%s"' %  _(i18n_constant.replace(r'\"', '"'))
+                elif constant is not None:
+                    var = '"%s"' % constant.replace(r'\"', '"')
+                upto = match.end()
+                if var == None:
+                    raise TemplateSyntaxError("Could not find variable at start of %s" % token)
+                elif var.find(VARIABLE_ATTRIBUTE_SEPARATOR + '_') > -1 or var[0] == '_':
+                    raise TemplateSyntaxError("Variables and attributes may not begin with underscores: '%s'" % var)
+            else:
+                filter_name = match.group("filter_name")
+                args = []
+                constant_arg, i18n_arg, var_arg = match.group("constant_arg", "i18n_arg", "var_arg")
+                if i18n_arg:
+                    args.append((False, _(i18n_arg.replace(r'\"', '"'))))
+                elif constant_arg is not None:
+                    args.append((False, constant_arg.replace(r'\"', '"')))
+                elif var_arg:
+                    args.append((True, Variable(var_arg)))
+                filter_func = parser.find_filter(filter_name)
+                self.args_check(filter_name,filter_func, args)
+                filters.append( (filter_func,args))
+                upto = match.end()
+        if upto != len(token):
+            raise TemplateSyntaxError("Could not parse the remainder: '%s' from '%s'" % (token[upto:], token))
+        self.filters = filters
+        self.var = Variable(var)
+
+    def resolve(self, context, ignore_failures=False):
+        try:
+            obj = self.var.resolve(context)
+        except VariableDoesNotExist:
+            if ignore_failures:
+                obj = None
+            else:
+                if settings.TEMPLATE_STRING_IF_INVALID:
+                    global invalid_var_format_string
+                    if invalid_var_format_string is None:
+                        invalid_var_format_string = '%s' in settings.TEMPLATE_STRING_IF_INVALID
+                    if invalid_var_format_string:
+                        return settings.TEMPLATE_STRING_IF_INVALID % self.var
+                    return settings.TEMPLATE_STRING_IF_INVALID
+                else:
+                    obj = settings.TEMPLATE_STRING_IF_INVALID
+        for func, args in self.filters:
+            arg_vals = []
+            for lookup, arg in args:
+                if not lookup:
+                    arg_vals.append(mark_safe(arg))
+                else:
+                    arg_vals.append(arg.resolve(context))
+            if getattr(func, 'needs_autoescape', False):
+                new_obj = func(obj, autoescape=context.autoescape, *arg_vals)
+            else:
+                new_obj = func(obj, *arg_vals)
+            if getattr(func, 'is_safe', False) and isinstance(obj, SafeData):
+                obj = mark_safe(new_obj)
+            elif isinstance(obj, EscapeData):
+                obj = mark_for_escaping(new_obj)
+            else:
+                obj = new_obj
+        return obj
+
+    def args_check(name, func, provided):
+        provided = list(provided)
+        plen = len(provided)
+        # Check to see if a decorator is providing the real function.
+        func = getattr(func, '_decorated_function', func)
+        args, varargs, varkw, defaults = getargspec(func)
+        # First argument is filter input.
+        args.pop(0)
+        if defaults:
+            nondefs = args[:-len(defaults)]
+        else:
+            nondefs = args
+        # Args without defaults must be provided.
+        try:
+            for arg in nondefs:
+                provided.pop(0)
+        except IndexError:
+            # Not enough
+            raise TemplateSyntaxError("%s requires %d arguments, %d provided" % (name, len(nondefs), plen))
+
+        # Defaults can be overridden.
+        defaults = defaults and list(defaults) or []
+        try:
+            for parg in provided:
+                defaults.pop(0)
+        except IndexError:
+            # Too many.
+            raise TemplateSyntaxError("%s requires %d arguments, %d provided" % (name, len(nondefs), plen))
+
+        return True
+    args_check = staticmethod(args_check)
+
+    def __str__(self):
+        return self.token
+
+def resolve_variable(path, context):
+    """
+    Returns the resolved variable, which may contain attribute syntax, within
+    the given context.
+
+    Deprecated; use the Variable class instead.
+    """
+    return Variable(path).resolve(context)
+
+class Variable(object):
+    """
+    A template variable, resolvable against a given context. The variable may be
+    a hard-coded string (if it begins and ends with single or double quote
+    marks)::
+
+        >>> c = {'article': {'section':u'News'}}
+        >>> Variable('article.section').resolve(c)
+        u'News'
+        >>> Variable('article').resolve(c)
+        {'section': u'News'}
+        >>> class AClass: pass
+        >>> c = AClass()
+        >>> c.article = AClass()
+        >>> c.article.section = u'News'
+        >>> Variable('article.section').resolve(c)
+        u'News'
+
+    (The example assumes VARIABLE_ATTRIBUTE_SEPARATOR is '.')
+    """
+
+    def __init__(self, var):
+        self.var = var
+        self.literal = None
+        self.lookups = None
+        self.translate = False
+
+        try:
+            # First try to treat this variable as a number.
+            #
+            # Note that this could cause an OverflowError here that we're not
+            # catching. Since this should only happen at compile time, that's
+            # probably OK.
+            self.literal = float(var)
+
+            # So it's a float... is it an int? If the original value contained a
+            # dot or an "e" then it was a float, not an int.
+            if '.' not in var and 'e' not in var.lower():
+                self.literal = int(self.literal)
+
+            # "2." is invalid
+            if var.endswith('.'):
+                raise ValueError
+
+        except ValueError:
+            # A ValueError means that the variable isn't a number.
+            if var.startswith('_(') and var.endswith(')'):
+                # The result of the lookup should be translated at rendering
+                # time.
+                self.translate = True
+                var = var[2:-1]
+            # If it's wrapped with quotes (single or double), then
+            # we're also dealing with a literal.
+            if var[0] in "\"'" and var[0] == var[-1]:
+                self.literal = mark_safe(var[1:-1])
+            else:
+                # Otherwise we'll set self.lookups so that resolve() knows we're
+                # dealing with a bonafide variable
+                self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
+
+    def resolve(self, context):
+        """Resolve this variable against a given context."""
+        if self.lookups is not None:
+            # We're dealing with a variable that needs to be resolved
+            value = self._resolve_lookup(context)
+        else:
+            # We're dealing with a literal, so it's already been "resolved"
+            value = self.literal
+        if self.translate:
+            return _(value)
+        return value
+
+    def __repr__(self):
+        return "<%s: %r>" % (self.__class__.__name__, self.var)
+
+    def __str__(self):
+        return self.var
+
+    def _resolve_lookup(self, context):
+        """
+        Performs resolution of a real variable (i.e. not a literal) against the
+        given context.
+
+        As indicated by the method's name, this method is an implementation
+        detail and shouldn't be called by external code. Use Variable.resolve()
+        instead.
+        """
+        current = context
+        for bit in self.lookups:
+            try: # dictionary lookup
+                current = current[bit]
+            except (TypeError, AttributeError, KeyError):
+                try: # attribute lookup
+                    current = getattr(current, bit)
+                    if callable(current):
+                        if getattr(current, 'alters_data', False):
+                            current = settings.TEMPLATE_STRING_IF_INVALID
+                        else:
+                            try: # method call (assuming no args required)
+                                current = current()
+                            except TypeError: # arguments *were* required
+                                # GOTCHA: This will also catch any TypeError
+                                # raised in the function itself.
+                                current = settings.TEMPLATE_STRING_IF_INVALID # invalid method call
+                            except Exception, e:
+                                if getattr(e, 'silent_variable_failure', False):
+                                    current = settings.TEMPLATE_STRING_IF_INVALID
+                                else:
+                                    raise
+                except (TypeError, AttributeError):
+                    try: # list-index lookup
+                        current = current[int(bit)]
+                    except (IndexError, # list index out of range
+                            ValueError, # invalid literal for int()
+                            KeyError,   # current is a dict without `int(bit)` key
+                            TypeError,  # unsubscriptable object
+                            ):
+                        raise VariableDoesNotExist("Failed lookup for key [%s] in %r", (bit, current)) # missing attribute
+                except Exception, e:
+                    if getattr(e, 'silent_variable_failure', False):
+                        current = settings.TEMPLATE_STRING_IF_INVALID
+                    else:
+                        raise
+
+        return current
+
+class Node(object):
+    # Set this to True for nodes that must be first in the template (although
+    # they can be preceded by text nodes.
+    must_be_first = False
+
+    def render(self, context):
+        "Return the node rendered as a string"
+        pass
+
+    def __iter__(self):
+        yield self
+
+    def get_nodes_by_type(self, nodetype):
+        "Return a list of all nodes (within this node and its nodelist) of the given type"
+        nodes = []
+        if isinstance(self, nodetype):
+            nodes.append(self)
+        if hasattr(self, 'nodelist'):
+            nodes.extend(self.nodelist.get_nodes_by_type(nodetype))
+        return nodes
+
+class NodeList(list):
+    # Set to True the first time a non-TextNode is inserted by
+    # extend_nodelist().
+    contains_nontext = False
+
+    def render(self, context):
+        bits = []
+        for node in self:
+            if isinstance(node, Node):
+                bits.append(self.render_node(node, context))
+            else:
+                bits.append(node)
+        return mark_safe(''.join([force_unicode(b) for b in bits]))
+
+    def get_nodes_by_type(self, nodetype):
+        "Return a list of all nodes of the given type"
+        nodes = []
+        for node in self:
+            nodes.extend(node.get_nodes_by_type(nodetype))
+        return nodes
+
+    def render_node(self, node, context):
+        return node.render(context)
+
+class TextNode(Node):
+    def __init__(self, s):
+        self.s = s
+
+    def __repr__(self):
+        return "<Text Node: '%s'>" % self.s[:25]
+
+    def render(self, context):
+        return self.s
+
+class VariableNode(Node):
+    def __init__(self, filter_expression):
+        self.filter_expression = filter_expression
+
+    def __repr__(self):
+        return "<Variable Node: %s>" % self.filter_expression
+
+    def render(self, context):
+        try:
+            output = force_unicode(self.filter_expression.resolve(context))
+        except UnicodeDecodeError:
+            # Unicode conversion can fail sometimes for reasons out of our
+            # control (e.g. exception rendering). In that case, we fail quietly.
+            return ''
+        if (context.autoescape and not isinstance(output, SafeData)) or isinstance(output, EscapeData):
+            return force_unicode(escape(output))
+        else:
+            return force_unicode(output)
+
+def generic_tag_compiler(params, defaults, name, node_class, parser, token):
+    "Returns a template.Node subclass."
+    bits = token.split_contents()[1:]
+    bmax = len(params)
+    def_len = defaults and len(defaults) or 0
+    bmin = bmax - def_len
+    if(len(bits) < bmin or len(bits) > bmax):
+        if bmin == bmax:
+            message = "%s takes %s arguments" % (name, bmin)
+        else:
+            message = "%s takes between %s and %s arguments" % (name, bmin, bmax)
+        raise TemplateSyntaxError(message)
+    return node_class(bits)
+
+class Library(object):
+    def __init__(self):
+        self.filters = {}
+        self.tags = {}
+
+    def tag(self, name=None, compile_function=None):
+        if name == None and compile_function == None:
+            # @register.tag()
+            return self.tag_function
+        elif name != None and compile_function == None:
+            if(callable(name)):
+                # @register.tag
+                return self.tag_function(name)
+            else:
+                # @register.tag('somename') or @register.tag(name='somename')
+                def dec(func):
+                    return self.tag(name, func)
+                return dec
+        elif name != None and compile_function != None:
+            # register.tag('somename', somefunc)
+            self.tags[name] = compile_function
+            return compile_function
+        else:
+            raise InvalidTemplateLibrary("Unsupported arguments to Library.tag: (%r, %r)", (name, compile_function))
+
+    def tag_function(self,func):
+        self.tags[getattr(func, "_decorated_function", func).__name__] = func
+        return func
+
+    def filter(self, name=None, filter_func=None):
+        if name == None and filter_func == None:
+            # @register.filter()
+            return self.filter_function
+        elif filter_func == None:
+            if(callable(name)):
+                # @register.filter
+                return self.filter_function(name)
+            else:
+                # @register.filter('somename') or @register.filter(name='somename')
+                def dec(func):
+                    return self.filter(name, func)
+                return dec
+        elif name != None and filter_func != None:
+            # register.filter('somename', somefunc)
+            self.filters[name] = filter_func
+            return filter_func
+        else:
+            raise InvalidTemplateLibrary("Unsupported arguments to Library.filter: (%r, %r)", (name, filter_func))
+
+    def filter_function(self, func):
+        self.filters[getattr(func, "_decorated_function", func).__name__] = func
+        return func
+
+    def simple_tag(self,func):
+        params, xx, xxx, defaults = getargspec(func)
+
+        class SimpleNode(Node):
+            def __init__(self, vars_to_resolve):
+                self.vars_to_resolve = map(Variable, vars_to_resolve)
+
+            def render(self, context):
+                resolved_vars = [var.resolve(context) for var in self.vars_to_resolve]
+                return func(*resolved_vars)
+
+        compile_func = curry(generic_tag_compiler, params, defaults, getattr(func, "_decorated_function", func).__name__, SimpleNode)
+        compile_func.__doc__ = func.__doc__
+        self.tag(getattr(func, "_decorated_function", func).__name__, compile_func)
+        return func
+
+    def inclusion_tag(self, file_name, context_class=Context, takes_context=False):
+        def dec(func):
+            params, xx, xxx, defaults = getargspec(func)
+            if takes_context:
+                if params[0] == 'context':
+                    params = params[1:]
+                else:
+                    raise TemplateSyntaxError("Any tag function decorated with takes_context=True must have a first argument of 'context'")
+
+            class InclusionNode(Node):
+                def __init__(self, vars_to_resolve):
+                    self.vars_to_resolve = map(Variable, vars_to_resolve)
+
+                def render(self, context):
+                    resolved_vars = [var.resolve(context) for var in self.vars_to_resolve]
+                    if takes_context:
+                        args = [context] + resolved_vars
+                    else:
+                        args = resolved_vars
+
+                    dict = func(*args)
+
+                    if not getattr(self, 'nodelist', False):
+                        from django.template.loader import get_template, select_template
+                        if not isinstance(file_name, basestring) and is_iterable(file_name):
+                            t = select_template(file_name)
+                        else:
+                            t = get_template(file_name)
+                        self.nodelist = t.nodelist
+                    return self.nodelist.render(context_class(dict,
+                            autoescape=context.autoescape))
+
+            compile_func = curry(generic_tag_compiler, params, defaults, getattr(func, "_decorated_function", func).__name__, InclusionNode)
+            compile_func.__doc__ = func.__doc__
+            self.tag(getattr(func, "_decorated_function", func).__name__, compile_func)
+            return func
+        return dec
+
+def get_library(module_name):
+    lib = libraries.get(module_name, None)
+    if not lib:
+        try:
+            mod = __import__(module_name, {}, {}, [''])
+        except ImportError, e:
+            raise InvalidTemplateLibrary("Could not load template library from %s, %s" % (module_name, e))
+        try:
+            lib = mod.register
+            libraries[module_name] = lib
+        except AttributeError:
+            raise InvalidTemplateLibrary("Template library %s does not have a variable named 'register'" % module_name)
+    return lib
+
+def add_to_builtins(module_name):
+    builtins.append(get_library(module_name))
+
+add_to_builtins('django.template.defaulttags')
+add_to_builtins('django.template.defaultfilters')
diff --git a/webapp/django/template/context.py b/webapp/django/template/context.py
new file mode 100644
index 0000000..8f16a95
--- /dev/null
+++ b/webapp/django/template/context.py
@@ -0,0 +1,105 @@
+from django.conf import settings
+from django.core.exceptions import ImproperlyConfigured
+
+_standard_context_processors = None
+
+class ContextPopException(Exception):
+    "pop() has been called more times than push()"
+    pass
+
+class Context(object):
+    "A stack container for variable context"
+    def __init__(self, dict_=None, autoescape=True):
+        dict_ = dict_ or {}
+        self.dicts = [dict_]
+        self.autoescape = autoescape
+
+    def __repr__(self):
+        return repr(self.dicts)
+
+    def __iter__(self):
+        for d in self.dicts:
+            yield d
+
+    def push(self):
+        d = {}
+        self.dicts = [d] + self.dicts
+        return d
+
+    def pop(self):
+        if len(self.dicts) == 1:
+            raise ContextPopException
+        return self.dicts.pop(0)
+
+    def __setitem__(self, key, value):
+        "Set a variable in the current context"
+        self.dicts[0][key] = value
+
+    def __getitem__(self, key):
+        "Get a variable's value, starting at the current context and going upward"
+        for d in self.dicts:
+            if key in d:
+                return d[key]
+        raise KeyError(key)
+
+    def __delitem__(self, key):
+        "Delete a variable from the current context"
+        del self.dicts[0][key]
+
+    def has_key(self, key):
+        for d in self.dicts:
+            if key in d:
+                return True
+        return False
+
+    __contains__ = has_key
+
+    def get(self, key, otherwise=None):
+        for d in self.dicts:
+            if key in d:
+                return d[key]
+        return otherwise
+
+    def update(self, other_dict):
+        "Like dict.update(). Pushes an entire dictionary's keys and values onto the context."
+        if not hasattr(other_dict, '__getitem__'): 
+            raise TypeError('other_dict must be a mapping (dictionary-like) object.')
+        self.dicts = [other_dict] + self.dicts
+        return other_dict
+
+# This is a function rather than module-level procedural code because we only
+# want it to execute if somebody uses RequestContext.
+def get_standard_processors():
+    global _standard_context_processors
+    if _standard_context_processors is None:
+        processors = []
+        for path in settings.TEMPLATE_CONTEXT_PROCESSORS:
+            i = path.rfind('.')
+            module, attr = path[:i], path[i+1:]
+            try:
+                mod = __import__(module, {}, {}, [attr])
+            except ImportError, e:
+                raise ImproperlyConfigured('Error importing request processor module %s: "%s"' % (module, e))
+            try:
+                func = getattr(mod, attr)
+            except AttributeError:
+                raise ImproperlyConfigured('Module "%s" does not define a "%s" callable request processor' % (module, attr))
+            processors.append(func)
+        _standard_context_processors = tuple(processors)
+    return _standard_context_processors
+
+class RequestContext(Context):
+    """
+    This subclass of template.Context automatically populates itself using
+    the processors defined in TEMPLATE_CONTEXT_PROCESSORS.
+    Additional processors can be specified as a list of callables
+    using the "processors" keyword argument.
+    """
+    def __init__(self, request, dict=None, processors=None):
+        Context.__init__(self, dict)
+        if processors is None:
+            processors = ()
+        else:
+            processors = tuple(processors)
+        for processor in get_standard_processors() + processors:
+            self.update(processor(request))
diff --git a/webapp/django/template/debug.py b/webapp/django/template/debug.py
new file mode 100644
index 0000000..c58c854
--- /dev/null
+++ b/webapp/django/template/debug.py
@@ -0,0 +1,97 @@
+from django.template import Lexer, Parser, tag_re, NodeList, VariableNode, TemplateSyntaxError
+from django.utils.encoding import force_unicode
+from django.utils.html import escape
+from django.utils.safestring import SafeData, EscapeData
+
+class DebugLexer(Lexer):
+    def __init__(self, template_string, origin):
+        super(DebugLexer, self).__init__(template_string, origin)
+
+    def tokenize(self):
+        "Return a list of tokens from a given template_string"
+        result, upto = [], 0
+        for match in tag_re.finditer(self.template_string):
+            start, end = match.span()
+            if start > upto:
+                result.append(self.create_token(self.template_string[upto:start], (upto, start), False))
+                upto = start
+            result.append(self.create_token(self.template_string[start:end], (start, end), True))
+            upto = end
+        last_bit = self.template_string[upto:]
+        if last_bit:
+            result.append(self.create_token(last_bit, (upto, upto + len(last_bit)), False))
+        return result
+
+    def create_token(self, token_string, source, in_tag):
+        token = super(DebugLexer, self).create_token(token_string, in_tag)
+        token.source = self.origin, source
+        return token
+
+class DebugParser(Parser):
+    def __init__(self, lexer):
+        super(DebugParser, self).__init__(lexer)
+        self.command_stack = []
+
+    def enter_command(self, command, token):
+        self.command_stack.append( (command, token.source) )
+
+    def exit_command(self):
+        self.command_stack.pop()
+
+    def error(self, token, msg):
+        return self.source_error(token.source, msg)
+
+    def source_error(self, source,msg):
+        e = TemplateSyntaxError(msg)
+        e.source = source
+        return e
+
+    def create_nodelist(self):
+        return DebugNodeList()
+
+    def create_variable_node(self, contents):
+        return DebugVariableNode(contents)
+
+    def extend_nodelist(self, nodelist, node, token):
+        node.source = token.source
+        super(DebugParser, self).extend_nodelist(nodelist, node, token)
+
+    def unclosed_block_tag(self, parse_until):
+        command, source = self.command_stack.pop()
+        msg = "Unclosed tag '%s'. Looking for one of: %s " % (command, ', '.join(parse_until))
+        raise self.source_error(source, msg)
+
+    def compile_function_error(self, token, e):
+        if not hasattr(e, 'source'):
+            e.source = token.source
+
+class DebugNodeList(NodeList):
+    def render_node(self, node, context):
+        try:
+            result = node.render(context)
+        except TemplateSyntaxError, e:
+            if not hasattr(e, 'source'):
+                e.source = node.source
+            raise
+        except Exception, e:
+            from sys import exc_info
+            wrapped = TemplateSyntaxError(u'Caught an exception while rendering: %s' % force_unicode(e, errors='replace'))
+            wrapped.source = node.source
+            wrapped.exc_info = exc_info()
+            raise wrapped
+        return result
+
+class DebugVariableNode(VariableNode):
+    def render(self, context):
+        try:
+            output = force_unicode(self.filter_expression.resolve(context))
+        except TemplateSyntaxError, e:
+            if not hasattr(e, 'source'):
+                e.source = self.source
+            raise
+        except UnicodeDecodeError:
+            return ''
+        if (context.autoescape and not isinstance(output, SafeData)) or isinstance(output, EscapeData):
+            return escape(output)
+        else:
+            return output
diff --git a/webapp/django/template/defaultfilters.py b/webapp/django/template/defaultfilters.py
new file mode 100644
index 0000000..1140f7e
--- /dev/null
+++ b/webapp/django/template/defaultfilters.py
@@ -0,0 +1,851 @@
+"""Default variable filters."""
+
+import re
+import random as random_module
+try:
+    from functools import wraps
+except ImportError:
+    from django.utils.functional import wraps  # Python 2.3, 2.4 fallback.
+
+from django.template import Variable, Library
+from django.conf import settings
+from django.utils.translation import ugettext, ungettext
+from django.utils.encoding import force_unicode, iri_to_uri
+from django.utils.safestring import mark_safe, SafeData
+
+register = Library()
+
+#######################
+# STRING DECORATOR    #
+#######################
+
+def stringfilter(func):
+    """
+    Decorator for filters which should only receive unicode objects. The object
+    passed as the first positional argument will be converted to a unicode
+    object.
+    """
+    def _dec(*args, **kwargs):
+        if args:
+            args = list(args)
+            args[0] = force_unicode(args[0])
+            if isinstance(args[0], SafeData) and getattr(func, 'is_safe', False):
+                return mark_safe(func(*args, **kwargs))
+        return func(*args, **kwargs)
+
+    # Include a reference to the real function (used to check original
+    # arguments by the template parser).
+    _dec._decorated_function = getattr(func, '_decorated_function', func)
+    for attr in ('is_safe', 'needs_autoescape'):
+        if hasattr(func, attr):
+            setattr(_dec, attr, getattr(func, attr))
+    return wraps(func)(_dec)
+
+###################
+# STRINGS         #
+###################
+
+
+def addslashes(value):
+    """
+    Adds slashes before quotes. Useful for escaping strings in CSV, for
+    example. Less useful for escaping JavaScript; use the ``escapejs``
+    filter instead.
+    """
+    return value.replace('\\', '\\\\').replace('"', '\\"').replace("'", "\\'")
+addslashes.is_safe = True
+addslashes = stringfilter(addslashes)
+
+def capfirst(value):
+    """Capitalizes the first character of the value."""
+    return value and value[0].upper() + value[1:]
+capfirst.is_safe=True
+capfirst = stringfilter(capfirst)
+
+_js_escapes = (
+    ('\\', '\\\\'),
+    ('"', '\\"'),
+    ("'", "\\'"),
+    ('\n', '\\n'),
+    ('\r', '\\r'),
+    ('\b', '\\b'),
+    ('\f', '\\f'),
+    ('\t', '\\t'),
+    ('\v', '\\v'),
+    ('</', '<\\/'),
+)
+def escapejs(value):
+    """Backslash-escapes characters for use in JavaScript strings."""
+    for bad, good in _js_escapes:
+        value = value.replace(bad, good)
+    return value
+escapejs = stringfilter(escapejs)
+
+def fix_ampersands(value):
+    """Replaces ampersands with ``&amp;`` entities."""
+    from django.utils.html import fix_ampersands
+    return fix_ampersands(value)
+fix_ampersands.is_safe=True
+fix_ampersands = stringfilter(fix_ampersands)
+
+def floatformat(text, arg=-1):
+    """
+    Displays a float to a specified number of decimal places.
+
+    If called without an argument, it displays the floating point number with
+    one decimal place -- but only if there's a decimal place to be displayed:
+
+    * num1 = 34.23234
+    * num2 = 34.00000
+    * num3 = 34.26000
+    * {{ num1|floatformat }} displays "34.2"
+    * {{ num2|floatformat }} displays "34"
+    * {{ num3|floatformat }} displays "34.3"
+
+    If arg is positive, it will always display exactly arg number of decimal
+    places:
+
+    * {{ num1|floatformat:3 }} displays "34.232"
+    * {{ num2|floatformat:3 }} displays "34.000"
+    * {{ num3|floatformat:3 }} displays "34.260"
+
+    If arg is negative, it will display arg number of decimal places -- but
+    only if there are places to be displayed:
+
+    * {{ num1|floatformat:"-3" }} displays "34.232"
+    * {{ num2|floatformat:"-3" }} displays "34"
+    * {{ num3|floatformat:"-3" }} displays "34.260"
+    """
+    try:
+        f = float(text)
+    except (ValueError, TypeError):
+        return u''
+    try:
+        d = int(arg)
+    except ValueError:
+        return force_unicode(f)
+    try:
+        m = f - int(f)
+    except OverflowError:
+        return force_unicode(f)
+    if not m and d < 0:
+        return mark_safe(u'%d' % int(f))
+    else:
+        formatstr = u'%%.%df' % abs(d)
+        return mark_safe(formatstr % f)
+floatformat.is_safe = True
+
+def iriencode(value):
+    """Escapes an IRI value for use in a URL."""
+    return force_unicode(iri_to_uri(value))
+iriencode.is_safe = True
+iriencode = stringfilter(iriencode)
+
+def linenumbers(value, autoescape=None):
+    """Displays text with line numbers."""
+    from django.utils.html import escape
+    lines = value.split(u'\n')
+    # Find the maximum width of the line count, for use with zero padding
+    # string format command
+    width = unicode(len(unicode(len(lines))))
+    if not autoescape or isinstance(value, SafeData):
+        for i, line in enumerate(lines):
+            lines[i] = (u"%0" + width  + u"d. %s") % (i + 1, line)
+    else:
+        for i, line in enumerate(lines):
+            lines[i] = (u"%0" + width  + u"d. %s") % (i + 1, escape(line))
+    return mark_safe(u'\n'.join(lines))
+linenumbers.is_safe = True
+linenumbers.needs_autoescape = True
+linenumbers = stringfilter(linenumbers)
+
+def lower(value):
+    """Converts a string into all lowercase."""
+    return value.lower()
+lower.is_safe = True
+lower = stringfilter(lower)
+
+def make_list(value):
+    """
+    Returns the value turned into a list.
+
+    For an integer, it's a list of digits.
+    For a string, it's a list of characters.
+    """
+    return list(value)
+make_list.is_safe = False
+make_list = stringfilter(make_list)
+
+def slugify(value):
+    """
+    Normalizes string, converts to lowercase, removes non-alpha characters,
+    and converts spaces to hyphens.
+    """
+    import unicodedata
+    value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
+    value = unicode(re.sub('[^\w\s-]', '', value).strip().lower())
+    return mark_safe(re.sub('[-\s]+', '-', value))
+slugify.is_safe = True
+slugify = stringfilter(slugify)
+
+def stringformat(value, arg):
+    """
+    Formats the variable according to the arg, a string formatting specifier.
+
+    This specifier uses Python string formating syntax, with the exception that
+    the leading "%" is dropped.
+
+    See http://docs.python.org/lib/typesseq-strings.html for documentation
+    of Python string formatting
+    """
+    try:
+        return (u"%" + unicode(arg)) % value
+    except (ValueError, TypeError):
+        return u""
+stringformat.is_safe = True
+
+def title(value):
+    """Converts a string into titlecase."""
+    return re.sub("([a-z])'([A-Z])", lambda m: m.group(0).lower(), value.title())
+title.is_safe = True
+title = stringfilter(title)
+
+def truncatewords(value, arg):
+    """
+    Truncates a string after a certain number of words.
+
+    Argument: Number of words to truncate after.
+    """
+    from django.utils.text import truncate_words
+    try:
+        length = int(arg)
+    except ValueError: # Invalid literal for int().
+        return value # Fail silently.
+    return truncate_words(value, length)
+truncatewords.is_safe = True
+truncatewords = stringfilter(truncatewords)
+
+def truncatewords_html(value, arg):
+    """
+    Truncates HTML after a certain number of words.
+
+    Argument: Number of words to truncate after.
+    """
+    from django.utils.text import truncate_html_words
+    try:
+        length = int(arg)
+    except ValueError: # invalid literal for int()
+        return value # Fail silently.
+    return truncate_html_words(value, length)
+truncatewords_html.is_safe = True
+truncatewords_html = stringfilter(truncatewords_html)
+
+def upper(value):
+    """Converts a string into all uppercase."""
+    return value.upper()
+upper.is_safe = False
+upper = stringfilter(upper)
+
+def urlencode(value):
+    """Escapes a value for use in a URL."""
+    from django.utils.http import urlquote
+    return urlquote(value)
+urlencode.is_safe = False
+urlencode = stringfilter(urlencode)
+
+def urlize(value, autoescape=None):
+    """Converts URLs in plain text into clickable links."""
+    from django.utils.html import urlize
+    return mark_safe(urlize(value, nofollow=True, autoescape=autoescape))
+urlize.is_safe=True
+urlize.needs_autoescape = True
+urlize = stringfilter(urlize)
+
+def urlizetrunc(value, limit, autoescape=None):
+    """
+    Converts URLs into clickable links, truncating URLs to the given character
+    limit, and adding 'rel=nofollow' attribute to discourage spamming.
+
+    Argument: Length to truncate URLs to.
+    """
+    from django.utils.html import urlize
+    return mark_safe(urlize(value, trim_url_limit=int(limit), nofollow=True,
+                            autoescape=autoescape))
+urlizetrunc.is_safe = True
+urlizetrunc.needs_autoescape = True
+urlizetrunc = stringfilter(urlizetrunc)
+
+def wordcount(value):
+    """Returns the number of words."""
+    return len(value.split())
+wordcount.is_safe = False
+wordcount = stringfilter(wordcount)
+
+def wordwrap(value, arg):
+    """
+    Wraps words at specified line length.
+
+    Argument: number of characters to wrap the text at.
+    """
+    from django.utils.text import wrap
+    return wrap(value, int(arg))
+wordwrap.is_safe = True
+wordwrap = stringfilter(wordwrap)
+
+def ljust(value, arg):
+    """
+    Left-aligns the value in a field of a given width.
+
+    Argument: field size.
+    """
+    return value.ljust(int(arg))
+ljust.is_safe = True
+ljust = stringfilter(ljust)
+
+def rjust(value, arg):
+    """
+    Right-aligns the value in a field of a given width.
+
+    Argument: field size.
+    """
+    return value.rjust(int(arg))
+rjust.is_safe = True
+rjust = stringfilter(rjust)
+
+def center(value, arg):
+    """Centers the value in a field of a given width."""
+    return value.center(int(arg))
+center.is_safe = True
+center = stringfilter(center)
+
+def cut(value, arg):
+    """
+    Removes all values of arg from the given string.
+    """
+    safe = isinstance(value, SafeData)
+    value = value.replace(arg, u'')
+    if safe and arg != ';':
+        return mark_safe(value)
+    return value
+cut = stringfilter(cut)
+
+###################
+# HTML STRINGS    #
+###################
+
+def escape(value):
+    """
+    Marks the value as a string that should not be auto-escaped.
+    """
+    from django.utils.safestring import mark_for_escaping
+    return mark_for_escaping(value)
+escape.is_safe = True
+escape = stringfilter(escape)
+
+def force_escape(value):
+    """
+    Escapes a string's HTML. This returns a new string containing the escaped
+    characters (as opposed to "escape", which marks the content for later
+    possible escaping).
+    """
+    from django.utils.html import escape
+    return mark_safe(escape(value))
+force_escape = stringfilter(force_escape)
+force_escape.is_safe = True
+
+def linebreaks(value, autoescape=None):
+    """
+    Replaces line breaks in plain text with appropriate HTML; a single
+    newline becomes an HTML line break (``<br />``) and a new line
+    followed by a blank line becomes a paragraph break (``</p>``).
+    """
+    from django.utils.html import linebreaks
+    autoescape = autoescape and not isinstance(value, SafeData)
+    return mark_safe(linebreaks(value, autoescape))
+linebreaks.is_safe = True
+linebreaks.needs_autoescape = True
+linebreaks = stringfilter(linebreaks)
+
+def linebreaksbr(value, autoescape=None):
+    """
+    Converts all newlines in a piece of plain text to HTML line breaks
+    (``<br />``).
+    """
+    if autoescape and not isinstance(value, SafeData):
+        from django.utils.html import escape
+        value = escape(value)
+    return mark_safe(value.replace('\n', '<br />'))
+linebreaksbr.is_safe = True
+linebreaksbr.needs_autoescape = True
+linebreaksbr = stringfilter(linebreaksbr)
+
+def safe(value):
+    """
+    Marks the value as a string that should not be auto-escaped.
+    """
+    from django.utils.safestring import mark_safe
+    return mark_safe(value)
+safe.is_safe = True
+safe = stringfilter(safe)
+
+def removetags(value, tags):
+    """Removes a space separated list of [X]HTML tags from the output."""
+    tags = [re.escape(tag) for tag in tags.split()]
+    tags_re = u'(%s)' % u'|'.join(tags)
+    starttag_re = re.compile(ur'<%s(/?>|(\s+[^>]*>))' % tags_re, re.U)
+    endtag_re = re.compile(u'</%s>' % tags_re)
+    value = starttag_re.sub(u'', value)
+    value = endtag_re.sub(u'', value)
+    return value
+removetags.is_safe = True
+removetags = stringfilter(removetags)
+
+def striptags(value):
+    """Strips all [X]HTML tags."""
+    from django.utils.html import strip_tags
+    return strip_tags(value)
+striptags.is_safe = True
+striptags = stringfilter(striptags)
+
+###################
+# LISTS           #
+###################
+
+def dictsort(value, arg):
+    """
+    Takes a list of dicts, returns that list sorted by the property given in
+    the argument.
+    """
+    var_resolve = Variable(arg).resolve
+    decorated = [(var_resolve(item), item) for item in value]
+    decorated.sort()
+    return [item[1] for item in decorated]
+dictsort.is_safe = False
+
+def dictsortreversed(value, arg):
+    """
+    Takes a list of dicts, returns that list sorted in reverse order by the
+    property given in the argument.
+    """
+    var_resolve = Variable(arg).resolve
+    decorated = [(var_resolve(item), item) for item in value]
+    decorated.sort()
+    decorated.reverse()
+    return [item[1] for item in decorated]
+dictsortreversed.is_safe = False
+
+def first(value):
+    """Returns the first item in a list."""
+    try:
+        return value[0]
+    except IndexError:
+        return u''
+first.is_safe = False
+
+def join(value, arg):
+    """Joins a list with a string, like Python's ``str.join(list)``."""
+    try:
+        data = arg.join(map(force_unicode, value))
+    except AttributeError: # fail silently but nicely
+        return value
+    safe_args = reduce(lambda lhs, rhs: lhs and isinstance(rhs, SafeData),
+            value, True)
+    if safe_args:
+        return mark_safe(data)
+    else:
+        return data
+join.is_safe = True
+
+def last(value):
+    "Returns the last item in a list"
+    try:
+        return value[-1]
+    except IndexError:
+        return u''
+last.is_safe = True
+
+def length(value):
+    """Returns the length of the value - useful for lists."""
+    return len(value)
+length.is_safe = True
+
+def length_is(value, arg):
+    """Returns a boolean of whether the value's length is the argument."""
+    return len(value) == int(arg)
+length_is.is_safe = True
+
+def random(value):
+    """Returns a random item from the list."""
+    return random_module.choice(value)
+random.is_safe = True
+
+def slice_(value, arg):
+    """
+    Returns a slice of the list.
+
+    Uses the same syntax as Python's list slicing; see
+    http://diveintopython.org/native_data_types/lists.html#odbchelper.list.slice
+    for an introduction.
+    """
+    try:
+        bits = []
+        for x in arg.split(u':'):
+            if len(x) == 0:
+                bits.append(None)
+            else:
+                bits.append(int(x))
+        return value[slice(*bits)]
+
+    except (ValueError, TypeError):
+        return value # Fail silently.
+slice_.is_safe = True
+
+def unordered_list(value, autoescape=None):
+    """
+    Recursively takes a self-nested list and returns an HTML unordered list --
+    WITHOUT opening and closing <ul> tags.
+
+    The list is assumed to be in the proper format. For example, if ``var``
+    contains: ``['States', ['Kansas', ['Lawrence', 'Topeka'], 'Illinois']]``,
+    then ``{{ var|unordered_list }}`` would return::
+
+        <li>States
+        <ul>
+                <li>Kansas
+                <ul>
+                        <li>Lawrence</li>
+                        <li>Topeka</li>
+                </ul>
+                </li>
+                <li>Illinois</li>
+        </ul>
+        </li>
+    """
+    if autoescape:
+        from django.utils.html import conditional_escape
+        escaper = conditional_escape
+    else:
+        escaper = lambda x: x
+    def convert_old_style_list(list_):
+        """
+        Converts old style lists to the new easier to understand format.
+
+        The old list format looked like:
+            ['Item 1', [['Item 1.1', []], ['Item 1.2', []]]
+
+        And it is converted to:
+            ['Item 1', ['Item 1.1', 'Item 1.2]]
+        """
+        if not isinstance(list_, (tuple, list)) or len(list_) != 2:
+            return list_, False
+        first_item, second_item = list_
+        if second_item == []:
+            return [first_item], True
+        old_style_list = True
+        new_second_item = []
+        for sublist in second_item:
+            item, old_style_list = convert_old_style_list(sublist)
+            if not old_style_list:
+                break
+            new_second_item.extend(item)
+        if old_style_list:
+            second_item = new_second_item
+        return [first_item, second_item], old_style_list
+    def _helper(list_, tabs=1):
+        indent = u'\t' * tabs
+        output = []
+
+        list_length = len(list_)
+        i = 0
+        while i < list_length:
+            title = list_[i]
+            sublist = ''
+            sublist_item = None
+            if isinstance(title, (list, tuple)):
+                sublist_item = title
+                title = ''
+            elif i < list_length - 1:
+                next_item = list_[i+1]
+                if next_item and isinstance(next_item, (list, tuple)):
+                    # The next item is a sub-list.
+                    sublist_item = next_item
+                    # We've processed the next item now too.
+                    i += 1
+            if sublist_item:
+                sublist = _helper(sublist_item, tabs+1)
+                sublist = '\n%s<ul>\n%s\n%s</ul>\n%s' % (indent, sublist,
+                                                         indent, indent)
+            output.append('%s<li>%s%s</li>' % (indent,
+                    escaper(force_unicode(title)), sublist))
+            i += 1
+        return '\n'.join(output)
+    value, converted = convert_old_style_list(value)
+    return mark_safe(_helper(value))
+unordered_list.is_safe = True
+unordered_list.needs_autoescape = True
+
+###################
+# INTEGERS        #
+###################
+
+def add(value, arg):
+    """Adds the arg to the value."""
+    return int(value) + int(arg)
+add.is_safe = False
+
+def get_digit(value, arg):
+    """
+    Given a whole number, returns the requested digit of it, where 1 is the
+    right-most digit, 2 is the second-right-most digit, etc. Returns the
+    original value for invalid input (if input or argument is not an integer,
+    or if argument is less than 1). Otherwise, output is always an integer.
+    """
+    try:
+        arg = int(arg)
+        value = int(value)
+    except ValueError:
+        return value # Fail silently for an invalid argument
+    if arg < 1:
+        return value
+    try:
+        return int(str(value)[-arg])
+    except IndexError:
+        return 0
+get_digit.is_safe = False
+
+###################
+# DATES           #
+###################
+
+def date(value, arg=None):
+    """Formats a date according to the given format."""
+    from django.utils.dateformat import format
+    if not value:
+        return u''
+    if arg is None:
+        arg = settings.DATE_FORMAT
+    return format(value, arg)
+date.is_safe = False
+
+def time(value, arg=None):
+    """Formats a time according to the given format."""
+    from django.utils.dateformat import time_format
+    if value in (None, u''):
+        return u''
+    if arg is None:
+        arg = settings.TIME_FORMAT
+    return time_format(value, arg)
+time.is_safe = False
+
+def timesince(value, arg=None):
+    """Formats a date as the time since that date (i.e. "4 days, 6 hours")."""
+    from django.utils.timesince import timesince
+    if not value:
+        return u''
+    if arg:
+        return timesince(value, arg)
+    return timesince(value)
+timesince.is_safe = False
+
+def timeuntil(value, arg=None):
+    """Formats a date as the time until that date (i.e. "4 days, 6 hours")."""
+    from django.utils.timesince import timesince
+    from datetime import datetime
+    if not value:
+        return u''
+    if arg:
+        return timesince(arg, value)
+    return timesince(datetime.now(), value)
+timeuntil.is_safe = False
+
+###################
+# LOGIC           #
+###################
+
+def default(value, arg):
+    """If value is unavailable, use given default."""
+    return value or arg
+default.is_safe = False
+
+def default_if_none(value, arg):
+    """If value is None, use given default."""
+    if value is None:
+        return arg
+    return value
+default_if_none.is_safe = False
+
+def divisibleby(value, arg):
+    """Returns True if the value is devisible by the argument."""
+    return int(value) % int(arg) == 0
+divisibleby.is_safe = False
+
+def yesno(value, arg=None):
+    """
+    Given a string mapping values for true, false and (optionally) None,
+    returns one of those strings accoding to the value:
+
+    ==========  ======================  ==================================
+    Value       Argument                Outputs
+    ==========  ======================  ==================================
+    ``True``    ``"yeah,no,maybe"``     ``yeah``
+    ``False``   ``"yeah,no,maybe"``     ``no``
+    ``None``    ``"yeah,no,maybe"``     ``maybe``
+    ``None``    ``"yeah,no"``           ``"no"`` (converts None to False
+                                        if no mapping for None is given.
+    ==========  ======================  ==================================
+    """
+    if arg is None:
+        arg = ugettext('yes,no,maybe')
+    bits = arg.split(u',')
+    if len(bits) < 2:
+        return value # Invalid arg.
+    try:
+        yes, no, maybe = bits
+    except ValueError:
+        # Unpack list of wrong size (no "maybe" value provided).
+        yes, no, maybe = bits[0], bits[1], bits[1]
+    if value is None:
+        return maybe
+    if value:
+        return yes
+    return no
+yesno.is_safe = False
+
+###################
+# MISC            #
+###################
+
+def filesizeformat(bytes):
+    """
+    Formats the value like a 'human-readable' file size (i.e. 13 KB, 4.1 MB,
+    102 bytes, etc).
+    """
+    try:
+        bytes = float(bytes)
+    except TypeError:
+        return u"0 bytes"
+
+    if bytes < 1024:
+        return ungettext("%(size)d byte", "%(size)d bytes", bytes) % {'size': bytes}
+    if bytes < 1024 * 1024:
+        return ugettext("%.1f KB") % (bytes / 1024)
+    if bytes < 1024 * 1024 * 1024:
+        return ugettext("%.1f MB") % (bytes / (1024 * 1024))
+    return ugettext("%.1f GB") % (bytes / (1024 * 1024 * 1024))
+filesizeformat.is_safe = True
+
+def pluralize(value, arg=u's'):
+    """
+    Returns a plural suffix if the value is not 1. By default, 's' is used as
+    the suffix:
+
+    * If value is 0, vote{{ value|pluralize }} displays "0 votes".
+    * If value is 1, vote{{ value|pluralize }} displays "1 vote".
+    * If value is 2, vote{{ value|pluralize }} displays "2 votes".
+
+    If an argument is provided, that string is used instead:
+
+    * If value is 0, class{{ value|pluralize:"es" }} displays "0 classes".
+    * If value is 1, class{{ value|pluralize:"es" }} displays "1 class".
+    * If value is 2, class{{ value|pluralize:"es" }} displays "2 classes".
+
+    If the provided argument contains a comma, the text before the comma is
+    used for the singular case and the text after the comma is used for the
+    plural case:
+
+    * If value is 0, cand{{ value|pluralize:"y,ies" }} displays "0 candies".
+    * If value is 1, cand{{ value|pluralize:"y,ies" }} displays "1 candy".
+    * If value is 2, cand{{ value|pluralize:"y,ies" }} displays "2 candies".
+    """
+    if not u',' in arg:
+        arg = u',' + arg
+    bits = arg.split(u',')
+    if len(bits) > 2:
+        return u''
+    singular_suffix, plural_suffix = bits[:2]
+
+    try:
+        if int(value) != 1:
+            return plural_suffix
+    except ValueError: # Invalid string that's not a number.
+        pass
+    except TypeError: # Value isn't a string or a number; maybe it's a list?
+        try:
+            if len(value) != 1:
+                return plural_suffix
+        except TypeError: # len() of unsized object.
+            pass
+    return singular_suffix
+pluralize.is_safe = False
+
+def phone2numeric(value):
+    """Takes a phone number and converts it in to its numerical equivalent."""
+    from django.utils.text import phone2numeric
+    return phone2numeric(value)
+phone2numeric.is_safe = True
+
+def pprint(value):
+    """A wrapper around pprint.pprint -- for debugging, really."""
+    from pprint import pformat
+    try:
+        return pformat(value)
+    except Exception, e:
+        return u"Error in formatting: %s" % force_unicode(e, errors="replace")
+pprint.is_safe = True
+
+# Syntax: register.filter(name of filter, callback)
+register.filter(add)
+register.filter(addslashes)
+register.filter(capfirst)
+register.filter(center)
+register.filter(cut)
+register.filter(date)
+register.filter(default)
+register.filter(default_if_none)
+register.filter(dictsort)
+register.filter(dictsortreversed)
+register.filter(divisibleby)
+register.filter(escape)
+register.filter(escapejs)
+register.filter(filesizeformat)
+register.filter(first)
+register.filter(fix_ampersands)
+register.filter(floatformat)
+register.filter(force_escape)
+register.filter(get_digit)
+register.filter(iriencode)
+register.filter(join)
+register.filter(last)
+register.filter(length)
+register.filter(length_is)
+register.filter(linebreaks)
+register.filter(linebreaksbr)
+register.filter(linenumbers)
+register.filter(ljust)
+register.filter(lower)
+register.filter(make_list)
+register.filter(phone2numeric)
+register.filter(pluralize)
+register.filter(pprint)
+register.filter(removetags)
+register.filter(random)
+register.filter(rjust)
+register.filter(safe)
+register.filter('slice', slice_)
+register.filter(slugify)
+register.filter(stringformat)
+register.filter(striptags)
+register.filter(time)
+register.filter(timesince)
+register.filter(timeuntil)
+register.filter(title)
+register.filter(truncatewords)
+register.filter(truncatewords_html)
+register.filter(unordered_list)
+register.filter(upper)
+register.filter(urlencode)
+register.filter(urlize)
+register.filter(urlizetrunc)
+register.filter(wordcount)
+register.filter(wordwrap)
+register.filter(yesno)
diff --git a/webapp/django/template/defaulttags.py b/webapp/django/template/defaulttags.py
new file mode 100644
index 0000000..489faa2
--- /dev/null
+++ b/webapp/django/template/defaulttags.py
@@ -0,0 +1,1108 @@
+"""Default tags used by the template system, available to all templates."""
+
+import sys
+import re
+from itertools import cycle as itertools_cycle
+try:
+    reversed
+except NameError:
+    from django.utils.itercompat import reversed     # Python 2.3 fallback
+
+from django.template import Node, NodeList, Template, Context, Variable
+from django.template import TemplateSyntaxError, VariableDoesNotExist, BLOCK_TAG_START, BLOCK_TAG_END, VARIABLE_TAG_START, VARIABLE_TAG_END, SINGLE_BRACE_START, SINGLE_BRACE_END, COMMENT_TAG_START, COMMENT_TAG_END
+from django.template import get_library, Library, InvalidTemplateLibrary
+from django.conf import settings
+from django.utils.encoding import smart_str, smart_unicode
+from django.utils.itercompat import groupby
+from django.utils.safestring import mark_safe
+
+register = Library()
+
+class AutoEscapeControlNode(Node):
+    """Implements the actions of the autoescape tag."""
+    def __init__(self, setting, nodelist):
+        self.setting, self.nodelist = setting, nodelist
+
+    def render(self, context):
+        old_setting = context.autoescape
+        context.autoescape = self.setting
+        output = self.nodelist.render(context)
+        context.autoescape = old_setting
+        if self.setting:
+            return mark_safe(output)
+        else:
+            return output
+
+class CommentNode(Node):
+    def render(self, context):
+        return ''
+
+class CycleNode(Node):
+    def __init__(self, cyclevars, variable_name=None):
+        self.cycle_iter = itertools_cycle([Variable(v) for v in cyclevars])
+        self.variable_name = variable_name
+
+    def render(self, context):
+        value = self.cycle_iter.next().resolve(context)
+        if self.variable_name:
+            context[self.variable_name] = value
+        return value
+
+class DebugNode(Node):
+    def render(self, context):
+        from pprint import pformat
+        output = [pformat(val) for val in context]
+        output.append('\n\n')
+        output.append(pformat(sys.modules))
+        return ''.join(output)
+
+class FilterNode(Node):
+    def __init__(self, filter_expr, nodelist):
+        self.filter_expr, self.nodelist = filter_expr, nodelist
+
+    def render(self, context):
+        output = self.nodelist.render(context)
+        # Apply filters.
+        context.update({'var': output})
+        filtered = self.filter_expr.resolve(context)
+        context.pop()
+        return filtered
+
+class FirstOfNode(Node):
+    def __init__(self, vars):
+        self.vars = map(Variable, vars)
+
+    def render(self, context):
+        for var in self.vars:
+            try:
+                value = var.resolve(context)
+            except VariableDoesNotExist:
+                continue
+            if value:
+                return smart_unicode(value)
+        return u''
+
+class ForNode(Node):
+    def __init__(self, loopvars, sequence, is_reversed, nodelist_loop):
+        self.loopvars, self.sequence = loopvars, sequence
+        self.is_reversed = is_reversed
+        self.nodelist_loop = nodelist_loop
+
+    def __repr__(self):
+        reversed_text = self.is_reversed and ' reversed' or ''
+        return "<For Node: for %s in %s, tail_len: %d%s>" % \
+            (', '.join(self.loopvars), self.sequence, len(self.nodelist_loop),
+             reversed_text)
+
+    def __iter__(self):
+        for node in self.nodelist_loop:
+            yield node
+
+    def get_nodes_by_type(self, nodetype):
+        nodes = []
+        if isinstance(self, nodetype):
+            nodes.append(self)
+        nodes.extend(self.nodelist_loop.get_nodes_by_type(nodetype))
+        return nodes
+
+    def render(self, context):
+        nodelist = NodeList()
+        if 'forloop' in context:
+            parentloop = context['forloop']
+        else:
+            parentloop = {}
+        context.push()
+        try:
+            values = self.sequence.resolve(context, True)
+        except VariableDoesNotExist:
+            values = []
+        if values is None:
+            values = []
+        if not hasattr(values, '__len__'):
+            values = list(values)
+        len_values = len(values)
+        if self.is_reversed:
+            values = reversed(values)
+        unpack = len(self.loopvars) > 1
+        # Create a forloop value in the context.  We'll update counters on each
+        # iteration just below.
+        loop_dict = context['forloop'] = {'parentloop': parentloop}
+        for i, item in enumerate(values):
+            # Shortcuts for current loop iteration number.
+            loop_dict['counter0'] = i
+            loop_dict['counter'] = i+1
+            # Reverse counter iteration numbers.
+            loop_dict['revcounter'] = len_values - i
+            loop_dict['revcounter0'] = len_values - i - 1
+            # Boolean values designating first and last times through loop.
+            loop_dict['first'] = (i == 0)
+            loop_dict['last'] = (i == len_values - 1)
+
+            if unpack:
+                # If there are multiple loop variables, unpack the item into
+                # them.
+                context.update(dict(zip(self.loopvars, item)))
+            else:
+                context[self.loopvars[0]] = item
+            for node in self.nodelist_loop:
+                nodelist.append(node.render(context))
+            if unpack:
+                # The loop variables were pushed on to the context so pop them
+                # off again. This is necessary because the tag lets the length
+                # of loopvars differ to the length of each set of items and we
+                # don't want to leave any vars from the previous loop on the
+                # context.
+                context.pop()
+        context.pop()
+        return nodelist.render(context)
+
+class IfChangedNode(Node):
+    def __init__(self, nodelist_true, nodelist_false, *varlist):
+        self.nodelist_true, self.nodelist_false = nodelist_true, nodelist_false
+        self._last_seen = None
+        self._varlist = map(Variable, varlist)
+        self._id = str(id(self))
+
+    def render(self, context):
+        if 'forloop' in context and self._id not in context['forloop']:
+            self._last_seen = None
+            context['forloop'][self._id] = 1
+        try:
+            if self._varlist:
+                # Consider multiple parameters.  This automatically behaves
+                # like an OR evaluation of the multiple variables.
+                compare_to = [var.resolve(context) for var in self._varlist]
+            else:
+                compare_to = self.nodelist_true.render(context)
+        except VariableDoesNotExist:
+            compare_to = None
+
+        if compare_to != self._last_seen:
+            firstloop = (self._last_seen == None)
+            self._last_seen = compare_to
+            context.push()
+            context['ifchanged'] = {'firstloop': firstloop}
+            content = self.nodelist_true.render(context)
+            context.pop()
+            return content
+        elif self.nodelist_false:
+            return self.nodelist_false.render(context)
+        return ''
+
+class IfEqualNode(Node):
+    def __init__(self, var1, var2, nodelist_true, nodelist_false, negate):
+        self.var1, self.var2 = Variable(var1), Variable(var2)
+        self.nodelist_true, self.nodelist_false = nodelist_true, nodelist_false
+        self.negate = negate
+
+    def __repr__(self):
+        return "<IfEqualNode>"
+
+    def render(self, context):
+        try:
+            val1 = self.var1.resolve(context)
+        except VariableDoesNotExist:
+            val1 = None
+        try:
+            val2 = self.var2.resolve(context)
+        except VariableDoesNotExist:
+            val2 = None
+        if (self.negate and val1 != val2) or (not self.negate and val1 == val2):
+            return self.nodelist_true.render(context)
+        return self.nodelist_false.render(context)
+
+class IfNode(Node):
+    def __init__(self, bool_exprs, nodelist_true, nodelist_false, link_type):
+        self.bool_exprs = bool_exprs
+        self.nodelist_true, self.nodelist_false = nodelist_true, nodelist_false
+        self.link_type = link_type
+
+    def __repr__(self):
+        return "<If node>"
+
+    def __iter__(self):
+        for node in self.nodelist_true:
+            yield node
+        for node in self.nodelist_false:
+            yield node
+
+    def get_nodes_by_type(self, nodetype):
+        nodes = []
+        if isinstance(self, nodetype):
+            nodes.append(self)
+        nodes.extend(self.nodelist_true.get_nodes_by_type(nodetype))
+        nodes.extend(self.nodelist_false.get_nodes_by_type(nodetype))
+        return nodes
+
+    def render(self, context):
+        if self.link_type == IfNode.LinkTypes.or_:
+            for ifnot, bool_expr in self.bool_exprs:
+                try:
+                    value = bool_expr.resolve(context, True)
+                except VariableDoesNotExist:
+                    value = None
+                if (value and not ifnot) or (ifnot and not value):
+                    return self.nodelist_true.render(context)
+            return self.nodelist_false.render(context)
+        else:
+            for ifnot, bool_expr in self.bool_exprs:
+                try:
+                    value = bool_expr.resolve(context, True)
+                except VariableDoesNotExist:
+                    value = None
+                if not ((value and not ifnot) or (ifnot and not value)):
+                    return self.nodelist_false.render(context)
+            return self.nodelist_true.render(context)
+
+    class LinkTypes:
+        and_ = 0,
+        or_ = 1
+
+class RegroupNode(Node):
+    def __init__(self, target, expression, var_name):
+        self.target, self.expression = target, expression
+        self.var_name = var_name
+
+    def render(self, context):
+        obj_list = self.target.resolve(context, True)
+        if obj_list == None:
+            # target variable wasn't found in context; fail silently.
+            context[self.var_name] = []
+            return ''
+        # List of dictionaries in the format:
+        # {'grouper': 'key', 'list': [list of contents]}.
+        context[self.var_name] = [
+            {'grouper': key, 'list': list(val)}
+            for key, val in
+            groupby(obj_list, lambda v, f=self.expression.resolve: f(v, True))
+        ]
+        return ''
+
+def include_is_allowed(filepath):
+    for root in settings.ALLOWED_INCLUDE_ROOTS:
+        if filepath.startswith(root):
+            return True
+    return False
+
+class SsiNode(Node):
+    def __init__(self, filepath, parsed):
+        self.filepath, self.parsed = filepath, parsed
+
+    def render(self, context):
+        if not include_is_allowed(self.filepath):
+            if settings.DEBUG:
+                return "[Didn't have permission to include file]"
+            else:
+                return '' # Fail silently for invalid includes.
+        try:
+            fp = open(self.filepath, 'r')
+            output = fp.read()
+            fp.close()
+        except IOError:
+            output = ''
+        if self.parsed:
+            try:
+                t = Template(output, name=self.filepath)
+                return t.render(context)
+            except TemplateSyntaxError, e:
+                if settings.DEBUG:
+                    return "[Included template had syntax error: %s]" % e
+                else:
+                    return '' # Fail silently for invalid included templates.
+        return output
+
+class LoadNode(Node):
+    def render(self, context):
+        return ''
+
+class NowNode(Node):
+    def __init__(self, format_string):
+        self.format_string = format_string
+
+    def render(self, context):
+        from datetime import datetime
+        from django.utils.dateformat import DateFormat
+        df = DateFormat(datetime.now())
+        return df.format(self.format_string)
+
+class SpacelessNode(Node):
+    def __init__(self, nodelist):
+        self.nodelist = nodelist
+
+    def render(self, context):
+        from django.utils.html import strip_spaces_between_tags
+        return strip_spaces_between_tags(self.nodelist.render(context).strip())
+
+class TemplateTagNode(Node):
+    mapping = {'openblock': BLOCK_TAG_START,
+               'closeblock': BLOCK_TAG_END,
+               'openvariable': VARIABLE_TAG_START,
+               'closevariable': VARIABLE_TAG_END,
+               'openbrace': SINGLE_BRACE_START,
+               'closebrace': SINGLE_BRACE_END,
+               'opencomment': COMMENT_TAG_START,
+               'closecomment': COMMENT_TAG_END,
+               }
+
+    def __init__(self, tagtype):
+        self.tagtype = tagtype
+
+    def render(self, context):
+        return self.mapping.get(self.tagtype, '')
+
+class URLNode(Node):
+    def __init__(self, view_name, args, kwargs):
+        self.view_name = view_name
+        self.args = args
+        self.kwargs = kwargs
+
+    def render(self, context):
+        from django.core.urlresolvers import reverse, NoReverseMatch
+        args = [arg.resolve(context) for arg in self.args]
+        kwargs = dict([(smart_str(k,'ascii'), v.resolve(context))
+                       for k, v in self.kwargs.items()])
+        try:
+            return reverse(self.view_name, args=args, kwargs=kwargs)
+        except NoReverseMatch:
+            project_name = settings.SETTINGS_MODULE.split('.')[0]
+            return reverse(project_name + '.' + self.view_name,
+                           args=args, kwargs=kwargs)
+
+class WidthRatioNode(Node):
+    def __init__(self, val_expr, max_expr, max_width):
+        self.val_expr = val_expr
+        self.max_expr = max_expr
+        self.max_width = max_width
+
+    def render(self, context):
+        try:
+            value = self.val_expr.resolve(context)
+            maxvalue = self.max_expr.resolve(context)
+        except VariableDoesNotExist:
+            return ''
+        try:
+            value = float(value)
+            maxvalue = float(maxvalue)
+            ratio = (value / maxvalue) * int(self.max_width)
+        except (ValueError, ZeroDivisionError):
+            return ''
+        return str(int(round(ratio)))
+
+class WithNode(Node):
+    def __init__(self, var, name, nodelist):
+        self.var = var
+        self.name = name
+        self.nodelist = nodelist
+
+    def __repr__(self):
+        return "<WithNode>"
+
+    def render(self, context):
+        val = self.var.resolve(context)
+        context.push()
+        context[self.name] = val
+        output = self.nodelist.render(context)
+        context.pop()
+        return output
+
+#@register.tag
+def autoescape(parser, token):
+    """
+    Force autoescape behaviour for this block.
+    """
+    args = token.contents.split()
+    if len(args) != 2:
+        raise TemplateSyntaxError("'Autoescape' tag requires exactly one argument.")
+    arg = args[1]
+    if arg not in (u'on', u'off'):
+        raise TemplateSyntaxError("'Autoescape' argument should be 'on' or 'off'")
+    nodelist = parser.parse(('endautoescape',))
+    parser.delete_first_token()
+    return AutoEscapeControlNode((arg == 'on'), nodelist)
+autoescape = register.tag(autoescape)
+
+#@register.tag
+def comment(parser, token):
+    """
+    Ignores everything between ``{% comment %}`` and ``{% endcomment %}``.
+    """
+    parser.skip_past('endcomment')
+    return CommentNode()
+comment = register.tag(comment)
+
+#@register.tag
+def cycle(parser, token):
+    """
+    Cycles among the given strings each time this tag is encountered.
+
+    Within a loop, cycles among the given strings each time through
+    the loop::
+
+        {% for o in some_list %}
+            <tr class="{% cycle 'row1' 'row2' %}">
+                ...
+            </tr>
+        {% endfor %}
+
+    Outside of a loop, give the values a unique name the first time you call
+    it, then use that name each sucessive time through::
+
+            <tr class="{% cycle 'row1' 'row2' 'row3' as rowcolors %}">...</tr>
+            <tr class="{% cycle rowcolors %}">...</tr>
+            <tr class="{% cycle rowcolors %}">...</tr>
+
+    You can use any number of values, separated by spaces. Commas can also
+    be used to separate values; if a comma is used, the cycle values are
+    interpreted as literal strings.
+    """
+
+    # Note: This returns the exact same node on each {% cycle name %} call;
+    # that is, the node object returned from {% cycle a b c as name %} and the
+    # one returned from {% cycle name %} are the exact same object. This
+    # shouldn't cause problems (heh), but if it does, now you know.
+    #
+    # Ugly hack warning: This stuffs the named template dict into parser so
+    # that names are only unique within each template (as opposed to using
+    # a global variable, which would make cycle names have to be unique across
+    # *all* templates.
+
+    args = token.split_contents()
+
+    if len(args) < 2:
+        raise TemplateSyntaxError("'cycle' tag requires at least two arguments")
+
+    if ',' in args[1]:
+        # Backwards compatibility: {% cycle a,b %} or {% cycle a,b as foo %}
+        # case.
+        args[1:2] = ['"%s"' % arg for arg in args[1].split(",")]
+
+    if len(args) == 2:
+        # {% cycle foo %} case.
+        name = args[1]
+        if not hasattr(parser, '_namedCycleNodes'):
+            raise TemplateSyntaxError("No named cycles in template. '%s' is not defined" % name)
+        if not name in parser._namedCycleNodes:
+            raise TemplateSyntaxError("Named cycle '%s' does not exist" % name)
+        return parser._namedCycleNodes[name]
+
+    if len(args) > 4 and args[-2] == 'as':
+        name = args[-1]
+        node = CycleNode(args[1:-2], name)
+        if not hasattr(parser, '_namedCycleNodes'):
+            parser._namedCycleNodes = {}
+        parser._namedCycleNodes[name] = node
+    else:
+        node = CycleNode(args[1:])
+    return node
+cycle = register.tag(cycle)
+
+def debug(parser, token):
+    """
+    Outputs a whole load of debugging information, including the current
+    context and imported modules.
+
+    Sample usage::
+
+        <pre>
+            {% debug %}
+        </pre>
+    """
+    return DebugNode()
+debug = register.tag(debug)
+
+#@register.tag(name="filter")
+def do_filter(parser, token):
+    """
+    Filters the contents of the block through variable filters.
+
+    Filters can also be piped through each other, and they can have
+    arguments -- just like in variable syntax.
+
+    Sample usage::
+
+        {% filter force_escape|lower %}
+            This text will be HTML-escaped, and will appear in lowercase.
+        {% endfilter %}
+    """
+    _, rest = token.contents.split(None, 1)
+    filter_expr = parser.compile_filter("var|%s" % (rest))
+    for func, unused in filter_expr.filters:
+        if getattr(func, '_decorated_function', func).__name__ in ('escape', 'safe'):
+            raise TemplateSyntaxError('"filter %s" is not permitted.  Use the "autoescape" tag instead.' % func.__name__)
+    nodelist = parser.parse(('endfilter',))
+    parser.delete_first_token()
+    return FilterNode(filter_expr, nodelist)
+do_filter = register.tag("filter", do_filter)
+
+#@register.tag
+def firstof(parser, token):
+    """
+    Outputs the first variable passed that is not False.
+
+    Outputs nothing if all the passed variables are False.
+
+    Sample usage::
+
+        {% firstof var1 var2 var3 %}
+
+    This is equivalent to::
+
+        {% if var1 %}
+            {{ var1 }}
+        {% else %}{% if var2 %}
+            {{ var2 }}
+        {% else %}{% if var3 %}
+            {{ var3 }}
+        {% endif %}{% endif %}{% endif %}
+
+    but obviously much cleaner!
+
+    You can also use a literal string as a fallback value in case all
+    passed variables are False::
+
+        {% firstof var1 var2 var3 "fallback value" %}
+
+    """
+    bits = token.split_contents()[1:]
+    if len(bits) < 1:
+        raise TemplateSyntaxError("'firstof' statement requires at least one"
+                                  " argument")
+    return FirstOfNode(bits)
+firstof = register.tag(firstof)
+
+#@register.tag(name="for")
+def do_for(parser, token):
+    """
+    Loops over each item in an array.
+
+    For example, to display a list of athletes given ``athlete_list``::
+
+        <ul>
+        {% for athlete in athlete_list %}
+            <li>{{ athlete.name }}</li>
+        {% endfor %}
+        </ul>
+
+    You can loop over a list in reverse by using
+    ``{% for obj in list reversed %}``.
+
+    You can also unpack multiple values from a two-dimensional array::
+
+        {% for key,value in dict.items %}
+            {{ key }}: {{ value }}
+        {% endfor %}
+
+    The for loop sets a number of variables available within the loop:
+
+        ==========================  ================================================
+        Variable                    Description
+        ==========================  ================================================
+        ``forloop.counter``         The current iteration of the loop (1-indexed)
+        ``forloop.counter0``        The current iteration of the loop (0-indexed)
+        ``forloop.revcounter``      The number of iterations from the end of the
+                                    loop (1-indexed)
+        ``forloop.revcounter0``     The number of iterations from the end of the
+                                    loop (0-indexed)
+        ``forloop.first``           True if this is the first time through the loop
+        ``forloop.last``            True if this is the last time through the loop
+        ``forloop.parentloop``      For nested loops, this is the loop "above" the
+                                    current one
+        ==========================  ================================================
+
+    """
+    bits = token.contents.split()
+    if len(bits) < 4:
+        raise TemplateSyntaxError("'for' statements should have at least four"
+                                  " words: %s" % token.contents)
+
+    is_reversed = bits[-1] == 'reversed'
+    in_index = is_reversed and -3 or -2
+    if bits[in_index] != 'in':
+        raise TemplateSyntaxError("'for' statements should use the format"
+                                  " 'for x in y': %s" % token.contents)
+
+    loopvars = re.sub(r' *, *', ',', ' '.join(bits[1:in_index])).split(',')
+    for var in loopvars:
+        if not var or ' ' in var:
+            raise TemplateSyntaxError("'for' tag received an invalid argument:"
+                                      " %s" % token.contents)
+
+    sequence = parser.compile_filter(bits[in_index+1])
+    nodelist_loop = parser.parse(('endfor',))
+    parser.delete_first_token()
+    return ForNode(loopvars, sequence, is_reversed, nodelist_loop)
+do_for = register.tag("for", do_for)
+
+def do_ifequal(parser, token, negate):
+    bits = list(token.split_contents())
+    if len(bits) != 3:
+        raise TemplateSyntaxError, "%r takes two arguments" % bits[0]
+    end_tag = 'end' + bits[0]
+    nodelist_true = parser.parse(('else', end_tag))
+    token = parser.next_token()
+    if token.contents == 'else':
+        nodelist_false = parser.parse((end_tag,))
+        parser.delete_first_token()
+    else:
+        nodelist_false = NodeList()
+    return IfEqualNode(bits[1], bits[2], nodelist_true, nodelist_false, negate)
+
+#@register.tag
+def ifequal(parser, token):
+    """
+    Outputs the contents of the block if the two arguments equal each other.
+
+    Examples::
+
+        {% ifequal user.id comment.user_id %}
+            ...
+        {% endifequal %}
+
+        {% ifnotequal user.id comment.user_id %}
+            ...
+        {% else %}
+            ...
+        {% endifnotequal %}
+    """
+    return do_ifequal(parser, token, False)
+ifequal = register.tag(ifequal)
+
+#@register.tag
+def ifnotequal(parser, token):
+    """
+    Outputs the contents of the block if the two arguments are not equal.
+    See ifequal.
+    """
+    return do_ifequal(parser, token, True)
+ifnotequal = register.tag(ifnotequal)
+
+#@register.tag(name="if")
+def do_if(parser, token):
+    """
+    The ``{% if %}`` tag evaluates a variable, and if that variable is "true"
+    (i.e., exists, is not empty, and is not a false boolean value), the
+    contents of the block are output:
+
+    ::
+
+        {% if athlete_list %}
+            Number of athletes: {{ athlete_list|count }}
+        {% else %}
+            No athletes.
+        {% endif %}
+
+    In the above, if ``athlete_list`` is not empty, the number of athletes will
+    be displayed by the ``{{ athlete_list|count }}`` variable.
+
+    As you can see, the ``if`` tag can take an option ``{% else %}`` clause
+    that will be displayed if the test fails.
+
+    ``if`` tags may use ``or``, ``and`` or ``not`` to test a number of
+    variables or to negate a given variable::
+
+        {% if not athlete_list %}
+            There are no athletes.
+        {% endif %}
+
+        {% if athlete_list or coach_list %}
+            There are some athletes or some coaches.
+        {% endif %}
+
+        {% if athlete_list and coach_list %}
+            Both atheletes and coaches are available.
+        {% endif %}
+
+        {% if not athlete_list or coach_list %}
+            There are no athletes, or there are some coaches.
+        {% endif %}
+
+        {% if athlete_list and not coach_list %}
+            There are some athletes and absolutely no coaches.
+        {% endif %}
+
+    ``if`` tags do not allow ``and`` and ``or`` clauses with the same tag,
+    because the order of logic would be ambigous. For example, this is
+    invalid::
+
+        {% if athlete_list and coach_list or cheerleader_list %}
+
+    If you need to combine ``and`` and ``or`` to do advanced logic, just use
+    nested if tags. For example::
+
+        {% if athlete_list %}
+            {% if coach_list or cheerleader_list %}
+                We have athletes, and either coaches or cheerleaders!
+            {% endif %}
+        {% endif %}
+    """
+    bits = token.contents.split()
+    del bits[0]
+    if not bits:
+        raise TemplateSyntaxError("'if' statement requires at least one argument")
+    # Bits now looks something like this: ['a', 'or', 'not', 'b', 'or', 'c.d']
+    bitstr = ' '.join(bits)
+    boolpairs = bitstr.split(' and ')
+    boolvars = []
+    if len(boolpairs) == 1:
+        link_type = IfNode.LinkTypes.or_
+        boolpairs = bitstr.split(' or ')
+    else:
+        link_type = IfNode.LinkTypes.and_
+        if ' or ' in bitstr:
+            raise TemplateSyntaxError, "'if' tags can't mix 'and' and 'or'"
+    for boolpair in boolpairs:
+        if ' ' in boolpair:
+            try:
+                not_, boolvar = boolpair.split()
+            except ValueError:
+                raise TemplateSyntaxError, "'if' statement improperly formatted"
+            if not_ != 'not':
+                raise TemplateSyntaxError, "Expected 'not' in if statement"
+            boolvars.append((True, parser.compile_filter(boolvar)))
+        else:
+            boolvars.append((False, parser.compile_filter(boolpair)))
+    nodelist_true = parser.parse(('else', 'endif'))
+    token = parser.next_token()
+    if token.contents == 'else':
+        nodelist_false = parser.parse(('endif',))
+        parser.delete_first_token()
+    else:
+        nodelist_false = NodeList()
+    return IfNode(boolvars, nodelist_true, nodelist_false, link_type)
+do_if = register.tag("if", do_if)
+
+#@register.tag
+def ifchanged(parser, token):
+    """
+    Checks if a value has changed from the last iteration of a loop.
+
+    The 'ifchanged' block tag is used within a loop. It has two possible uses.
+
+    1. Checks its own rendered contents against its previous state and only
+       displays the content if it has changed. For example, this displays a
+       list of days, only displaying the month if it changes::
+
+            <h1>Archive for {{ year }}</h1>
+
+            {% for date in days %}
+                {% ifchanged %}<h3>{{ date|date:"F" }}</h3>{% endifchanged %}
+                <a href="{{ date|date:"M/d"|lower }}/">{{ date|date:"j" }}</a>
+            {% endfor %}
+
+    2. If given a variable, check whether that variable has changed.
+       For example, the following shows the date every time it changes, but
+       only shows the hour if both the hour and the date have changed::
+
+            {% for date in days %}
+                {% ifchanged date.date %} {{ date.date }} {% endifchanged %}
+                {% ifchanged date.hour date.date %}
+                    {{ date.hour }}
+                {% endifchanged %}
+            {% endfor %}
+    """
+    bits = token.contents.split()
+    nodelist_true = parser.parse(('else', 'endifchanged'))
+    token = parser.next_token()
+    if token.contents == 'else':
+        nodelist_false = parser.parse(('endifchanged',))
+        parser.delete_first_token()
+    else:
+        nodelist_false = NodeList()
+    return IfChangedNode(nodelist_true, nodelist_false, *bits[1:])
+ifchanged = register.tag(ifchanged)
+
+#@register.tag
+def ssi(parser, token):
+    """
+    Outputs the contents of a given file into the page.
+
+    Like a simple "include" tag, the ``ssi`` tag includes the contents
+    of another file -- which must be specified using an absolute path --
+    in the current page::
+
+        {% ssi /home/html/ljworld.com/includes/right_generic.html %}
+
+    If the optional "parsed" parameter is given, the contents of the included
+    file are evaluated as template code, with the current context::
+
+        {% ssi /home/html/ljworld.com/includes/right_generic.html parsed %}
+    """
+    bits = token.contents.split()
+    parsed = False
+    if len(bits) not in (2, 3):
+        raise TemplateSyntaxError("'ssi' tag takes one argument: the path to"
+                                  " the file to be included")
+    if len(bits) == 3:
+        if bits[2] == 'parsed':
+            parsed = True
+        else:
+            raise TemplateSyntaxError("Second (optional) argument to %s tag"
+                                      " must be 'parsed'" % bits[0])
+    return SsiNode(bits[1], parsed)
+ssi = register.tag(ssi)
+
+#@register.tag
+def load(parser, token):
+    """
+    Loads a custom template tag set.
+
+    For example, to load the template tags in
+    ``django/templatetags/news/photos.py``::
+
+        {% load news.photos %}
+    """
+    bits = token.contents.split()
+    for taglib in bits[1:]:
+        # add the library to the parser
+        try:
+            lib = get_library("django.templatetags.%s" % taglib)
+            parser.add_library(lib)
+        except InvalidTemplateLibrary, e:
+            raise TemplateSyntaxError("'%s' is not a valid tag library: %s" %
+                                      (taglib, e))
+    return LoadNode()
+load = register.tag(load)
+
+#@register.tag
+def now(parser, token):
+    """
+    Displays the date, formatted according to the given string.
+
+    Uses the same format as PHP's ``date()`` function; see http://php.net/date
+    for all the possible values.
+
+    Sample usage::
+
+        It is {% now "jS F Y H:i" %}
+    """
+    bits = token.contents.split('"')
+    if len(bits) != 3:
+        raise TemplateSyntaxError, "'now' statement takes one argument"
+    format_string = bits[1]
+    return NowNode(format_string)
+now = register.tag(now)
+
+#@register.tag
+def regroup(parser, token):
+    """
+    Regroups a list of alike objects by a common attribute.
+
+    This complex tag is best illustrated by use of an example:  say that
+    ``people`` is a list of ``Person`` objects that have ``first_name``,
+    ``last_name``, and ``gender`` attributes, and you'd like to display a list
+    that looks like:
+
+        * Male:
+            * George Bush
+            * Bill Clinton
+        * Female:
+            * Margaret Thatcher
+            * Colendeeza Rice
+        * Unknown:
+            * Pat Smith
+
+    The following snippet of template code would accomplish this dubious task::
+
+        {% regroup people by gender as grouped %}
+        <ul>
+        {% for group in grouped %}
+            <li>{{ group.grouper }}
+            <ul>
+                {% for item in group.list %}
+                <li>{{ item }}</li>
+                {% endfor %}
+            </ul>
+        {% endfor %}
+        </ul>
+
+    As you can see, ``{% regroup %}`` populates a variable with a list of
+    objects with ``grouper`` and ``list`` attributes.  ``grouper`` contains the
+    item that was grouped by; ``list`` contains the list of objects that share
+    that ``grouper``.  In this case, ``grouper`` would be ``Male``, ``Female``
+    and ``Unknown``, and ``list`` is the list of people with those genders.
+
+    Note that `{% regroup %}`` does not work when the list to be grouped is not
+    sorted by the key you are grouping by!  This means that if your list of
+    people was not sorted by gender, you'd need to make sure it is sorted
+    before using it, i.e.::
+
+        {% regroup people|dictsort:"gender" by gender as grouped %}
+
+    """
+    firstbits = token.contents.split(None, 3)
+    if len(firstbits) != 4:
+        raise TemplateSyntaxError, "'regroup' tag takes five arguments"
+    target = parser.compile_filter(firstbits[1])
+    if firstbits[2] != 'by':
+        raise TemplateSyntaxError("second argument to 'regroup' tag must be 'by'")
+    lastbits_reversed = firstbits[3][::-1].split(None, 2)
+    if lastbits_reversed[1][::-1] != 'as':
+        raise TemplateSyntaxError("next-to-last argument to 'regroup' tag must"
+                                  " be 'as'")
+
+    expression = parser.compile_filter(lastbits_reversed[2][::-1])
+
+    var_name = lastbits_reversed[0][::-1]
+    return RegroupNode(target, expression, var_name)
+regroup = register.tag(regroup)
+
+def spaceless(parser, token):
+    """
+    Removes whitespace between HTML tags, including tab and newline characters.
+
+    Example usage::
+
+        {% spaceless %}
+            <p>
+                <a href="foo/">Foo</a>
+            </p>
+        {% endspaceless %}
+
+    This example would return this HTML::
+
+        <p><a href="foo/">Foo</a></p>
+
+    Only space between *tags* is normalized -- not space between tags and text.
+    In this example, the space around ``Hello`` won't be stripped::
+
+        {% spaceless %}
+            <strong>
+                Hello
+            </strong>
+        {% endspaceless %}
+    """
+    nodelist = parser.parse(('endspaceless',))
+    parser.delete_first_token()
+    return SpacelessNode(nodelist)
+spaceless = register.tag(spaceless)
+
+#@register.tag
+def templatetag(parser, token):
+    """
+    Outputs one of the bits used to compose template tags.
+
+    Since the template system has no concept of "escaping", to display one of
+    the bits used in template tags, you must use the ``{% templatetag %}`` tag.
+
+    The argument tells which template bit to output:
+
+        ==================  =======
+        Argument            Outputs
+        ==================  =======
+        ``openblock``       ``{%``
+        ``closeblock``      ``%}``
+        ``openvariable``    ``{{``
+        ``closevariable``   ``}}``
+        ``openbrace``       ``{``
+        ``closebrace``      ``}``
+        ``opencomment``     ``{#``
+        ``closecomment``    ``#}``
+        ==================  =======
+    """
+    bits = token.contents.split()
+    if len(bits) != 2:
+        raise TemplateSyntaxError, "'templatetag' statement takes one argument"
+    tag = bits[1]
+    if tag not in TemplateTagNode.mapping:
+        raise TemplateSyntaxError("Invalid templatetag argument: '%s'."
+                                  " Must be one of: %s" %
+                                  (tag, TemplateTagNode.mapping.keys()))
+    return TemplateTagNode(tag)
+templatetag = register.tag(templatetag)
+
+def url(parser, token):
+    """
+    Returns an absolute URL matching given view with its parameters.
+
+    This is a way to define links that aren't tied to a particular URL
+    configuration::
+
+        {% url path.to.some_view arg1,arg2,name1=value1 %}
+
+    The first argument is a path to a view. It can be an absolute python path
+    or just ``app_name.view_name`` without the project name if the view is
+    located inside the project.  Other arguments are comma-separated values
+    that will be filled in place of positional and keyword arguments in the
+    URL. All arguments for the URL should be present.
+
+    For example if you have a view ``app_name.client`` taking client's id and
+    the corresponding line in a URLconf looks like this::
+
+        ('^client/(\d+)/$', 'app_name.client')
+
+    and this app's URLconf is included into the project's URLconf under some
+    path::
+
+        ('^clients/', include('project_name.app_name.urls'))
+
+    then in a template you can create a link for a certain client like this::
+
+        {% url app_name.client client.id %}
+
+    The URL will look like ``/clients/client/123/``.
+    """
+    bits = token.contents.split(' ', 2)
+    if len(bits) < 2:
+        raise TemplateSyntaxError("'%s' takes at least one argument"
+                                  " (path to a view)" % bits[0])
+    args = []
+    kwargs = {}
+    if len(bits) > 2:
+        for arg in bits[2].split(','):
+            if '=' in arg:
+                k, v = arg.split('=', 1)
+                k = k.strip()
+                kwargs[k] = parser.compile_filter(v)
+            else:
+                args.append(parser.compile_filter(arg))
+    return URLNode(bits[1], args, kwargs)
+url = register.tag(url)
+
+#@register.tag
+def widthratio(parser, token):
+    """
+    For creating bar charts and such, this tag calculates the ratio of a given
+    value to a maximum value, and then applies that ratio to a constant.
+
+    For example::
+
+        <img src='bar.gif' height='10' width='{% widthratio this_value max_value 100 %}' />
+
+    Above, if ``this_value`` is 175 and ``max_value`` is 200, the the image in
+    the above example will be 88 pixels wide (because 175/200 = .875;
+    .875 * 100 = 87.5 which is rounded up to 88).
+    """
+    bits = token.contents.split()
+    if len(bits) != 4:
+        raise TemplateSyntaxError("widthratio takes three arguments")
+    tag, this_value_expr, max_value_expr, max_width = bits
+    try:
+        max_width = int(max_width)
+    except ValueError:
+        raise TemplateSyntaxError("widthratio final argument must be an integer")
+    return WidthRatioNode(parser.compile_filter(this_value_expr),
+                          parser.compile_filter(max_value_expr), max_width)
+widthratio = register.tag(widthratio)
+
+#@register.tag
+def do_with(parser, token):
+    """
+    Adds a value to the context (inside of this block) for caching and easy
+    access.
+
+    For example::
+
+        {% with person.some_sql_method as total %}
+            {{ total }} object{{ total|pluralize }}
+        {% endwith %}
+    """
+    bits = list(token.split_contents())
+    if len(bits) != 4 or bits[2] != "as":
+        raise TemplateSyntaxError("%r expected format is 'value as name'" %
+                                  bits[0])
+    var = parser.compile_filter(bits[1])
+    name = bits[3]
+    nodelist = parser.parse(('endwith',))
+    parser.delete_first_token()
+    return WithNode(var, name, nodelist)
+do_with = register.tag('with', do_with)
diff --git a/webapp/django/template/loader.py b/webapp/django/template/loader.py
new file mode 100644
index 0000000..1d7d945
--- /dev/null
+++ b/webapp/django/template/loader.py
@@ -0,0 +1,119 @@
+# Wrapper for loading templates from storage of some sort (e.g. filesystem, database).
+#
+# This uses the TEMPLATE_LOADERS setting, which is a list of loaders to use.
+# Each loader is expected to have this interface:
+#
+#    callable(name, dirs=[])
+#
+# name is the template name.
+# dirs is an optional list of directories to search instead of TEMPLATE_DIRS.
+#
+# The loader should return a tuple of (template_source, path). The path returned
+# might be shown to the user for debugging purposes, so it should identify where
+# the template was loaded from.
+#
+# Each loader should have an "is_usable" attribute set. This is a boolean that
+# specifies whether the loader can be used in this Python installation. Each
+# loader is responsible for setting this when it's initialized.
+#
+# For example, the eggs loader (which is capable of loading templates from
+# Python eggs) sets is_usable to False if the "pkg_resources" module isn't
+# installed, because pkg_resources is necessary to read eggs.
+
+from django.core.exceptions import ImproperlyConfigured
+from django.template import Origin, Template, Context, TemplateDoesNotExist, add_to_builtins
+from django.conf import settings
+
+template_source_loaders = None
+
+class LoaderOrigin(Origin):
+    def __init__(self, display_name, loader, name, dirs):
+        super(LoaderOrigin, self).__init__(display_name)
+        self.loader, self.loadname, self.dirs = loader, name, dirs
+
+    def reload(self):
+        return self.loader(self.loadname, self.dirs)[0]
+
+def make_origin(display_name, loader, name, dirs):
+    if settings.TEMPLATE_DEBUG:
+        return LoaderOrigin(display_name, loader, name, dirs)
+    else:
+        return None
+
+def find_template_source(name, dirs=None):
+    # Calculate template_source_loaders the first time the function is executed
+    # because putting this logic in the module-level namespace may cause
+    # circular import errors. See Django ticket #1292.
+    global template_source_loaders
+    if template_source_loaders is None:
+        loaders = []
+        for path in settings.TEMPLATE_LOADERS:
+            i = path.rfind('.')
+            module, attr = path[:i], path[i+1:]
+            try:
+                mod = __import__(module, globals(), locals(), [attr])
+            except ImportError, e:
+                raise ImproperlyConfigured, 'Error importing template source loader %s: "%s"' % (module, e)
+            try:
+                func = getattr(mod, attr)
+            except AttributeError:
+                raise ImproperlyConfigured, 'Module "%s" does not define a "%s" callable template source loader' % (module, attr)
+            if not func.is_usable:
+                import warnings
+                warnings.warn("Your TEMPLATE_LOADERS setting includes %r, but your Python installation doesn't support that type of template loading. Consider removing that line from TEMPLATE_LOADERS." % path)
+            else:
+                loaders.append(func)
+        template_source_loaders = tuple(loaders)
+    for loader in template_source_loaders:
+        try:
+            source, display_name = loader(name, dirs)
+            return (source, make_origin(display_name, loader, name, dirs))
+        except TemplateDoesNotExist:
+            pass
+    raise TemplateDoesNotExist, name
+
+def get_template(template_name):
+    """
+    Returns a compiled Template object for the given template name,
+    handling template inheritance recursively.
+    """
+    source, origin = find_template_source(template_name)
+    template = get_template_from_string(source, origin, template_name)
+    return template
+
+def get_template_from_string(source, origin=None, name=None):
+    """
+    Returns a compiled Template object for the given template code,
+    handling template inheritance recursively.
+    """
+    return Template(source, origin, name)
+
+def render_to_string(template_name, dictionary=None, context_instance=None):
+    """
+    Loads the given template_name and renders it with the given dictionary as
+    context. The template_name may be a string to load a single template using
+    get_template, or it may be a tuple to use select_template to find one of
+    the templates in the list. Returns a string.
+    """
+    dictionary = dictionary or {}
+    if isinstance(template_name, (list, tuple)):
+        t = select_template(template_name)
+    else:
+        t = get_template(template_name)
+    if context_instance:
+        context_instance.update(dictionary)
+    else:
+        context_instance = Context(dictionary)
+    return t.render(context_instance)
+
+def select_template(template_name_list):
+    "Given a list of template names, returns the first that can be loaded."
+    for template_name in template_name_list:
+        try:
+            return get_template(template_name)
+        except TemplateDoesNotExist:
+            continue
+    # If we get here, none of the templates could be loaded
+    raise TemplateDoesNotExist, ', '.join(template_name_list)
+
+add_to_builtins('django.template.loader_tags')
diff --git a/webapp/django/template/loader_tags.py b/webapp/django/template/loader_tags.py
new file mode 100644
index 0000000..38b2fff
--- /dev/null
+++ b/webapp/django/template/loader_tags.py
@@ -0,0 +1,192 @@
+from django.template import TemplateSyntaxError, TemplateDoesNotExist, Variable
+from django.template import Library, Node, TextNode
+from django.template.loader import get_template, get_template_from_string, find_template_source
+from django.conf import settings
+from django.utils.safestring import mark_safe
+
+register = Library()
+
+class ExtendsError(Exception):
+    pass
+
+class BlockNode(Node):
+    def __init__(self, name, nodelist, parent=None):
+        self.name, self.nodelist, self.parent = name, nodelist, parent
+
+    def __repr__(self):
+        return "<Block Node: %s. Contents: %r>" % (self.name, self.nodelist)
+
+    def render(self, context):
+        context.push()
+        # Save context in case of block.super().
+        self.context = context
+        context['block'] = self
+        result = self.nodelist.render(context)
+        context.pop()
+        return result
+
+    def super(self):
+        if self.parent:
+            return mark_safe(self.parent.render(self.context))
+        return ''
+
+    def add_parent(self, nodelist):
+        if self.parent:
+            self.parent.add_parent(nodelist)
+        else:
+            self.parent = BlockNode(self.name, nodelist)
+
+class ExtendsNode(Node):
+    must_be_first = True
+
+    def __init__(self, nodelist, parent_name, parent_name_expr, template_dirs=None):
+        self.nodelist = nodelist
+        self.parent_name, self.parent_name_expr = parent_name, parent_name_expr
+        self.template_dirs = template_dirs
+
+    def __repr__(self):
+        if self.parent_name_expr:
+            return "<ExtendsNode: extends %s>" % self.parent_name_expr.token
+        return '<ExtendsNode: extends "%s">' % self.parent_name
+
+    def get_parent(self, context):
+        if self.parent_name_expr:
+            self.parent_name = self.parent_name_expr.resolve(context)
+        parent = self.parent_name
+        if not parent:
+            error_msg = "Invalid template name in 'extends' tag: %r." % parent
+            if self.parent_name_expr:
+                error_msg += " Got this from the '%s' variable." % self.parent_name_expr.token
+            raise TemplateSyntaxError, error_msg
+        if hasattr(parent, 'render'):
+            return parent # parent is a Template object
+        try:
+            source, origin = find_template_source(parent, self.template_dirs)
+        except TemplateDoesNotExist:
+            raise TemplateSyntaxError, "Template %r cannot be extended, because it doesn't exist" % parent
+        else:
+            return get_template_from_string(source, origin, parent)
+
+    def render(self, context):
+        compiled_parent = self.get_parent(context)
+        parent_blocks = dict([(n.name, n) for n in compiled_parent.nodelist.get_nodes_by_type(BlockNode)])
+        for block_node in self.nodelist.get_nodes_by_type(BlockNode):
+            # Check for a BlockNode with this node's name, and replace it if found.
+            try:
+                parent_block = parent_blocks[block_node.name]
+            except KeyError:
+                # This BlockNode wasn't found in the parent template, but the
+                # parent block might be defined in the parent's *parent*, so we
+                # add this BlockNode to the parent's ExtendsNode nodelist, so
+                # it'll be checked when the parent node's render() is called.
+
+                # Find out if the parent template has a parent itself
+                for node in compiled_parent.nodelist:
+                    if not isinstance(node, TextNode):
+                        # If the first non-text node is an extends, handle it.
+                        if isinstance(node, ExtendsNode):
+                            node.nodelist.append(block_node)
+                        # Extends must be the first non-text node, so once you find
+                        # the first non-text node you can stop looking. 
+                        break
+            else:
+                # Keep any existing parents and add a new one. Used by BlockNode.
+                parent_block.parent = block_node.parent
+                parent_block.add_parent(parent_block.nodelist)
+                parent_block.nodelist = block_node.nodelist
+        return compiled_parent.render(context)
+
+class ConstantIncludeNode(Node):
+    def __init__(self, template_path):
+        try:
+            t = get_template(template_path)
+            self.template = t
+        except:
+            if settings.TEMPLATE_DEBUG:
+                raise
+            self.template = None
+
+    def render(self, context):
+        if self.template:
+            return self.template.render(context)
+        else:
+            return ''
+
+class IncludeNode(Node):
+    def __init__(self, template_name):
+        self.template_name = Variable(template_name)
+
+    def render(self, context):
+        try:
+            template_name = self.template_name.resolve(context)
+            t = get_template(template_name)
+            return t.render(context)
+        except TemplateSyntaxError, e:
+            if settings.TEMPLATE_DEBUG:
+                raise
+            return ''
+        except:
+            return '' # Fail silently for invalid included templates.
+
+def do_block(parser, token):
+    """
+    Define a block that can be overridden by child templates.
+    """
+    bits = token.contents.split()
+    if len(bits) != 2:
+        raise TemplateSyntaxError, "'%s' tag takes only one argument" % bits[0]
+    block_name = bits[1]
+    # Keep track of the names of BlockNodes found in this template, so we can
+    # check for duplication.
+    try:
+        if block_name in parser.__loaded_blocks:
+            raise TemplateSyntaxError, "'%s' tag with name '%s' appears more than once" % (bits[0], block_name)
+        parser.__loaded_blocks.append(block_name)
+    except AttributeError: # parser.__loaded_blocks isn't a list yet
+        parser.__loaded_blocks = [block_name]
+    nodelist = parser.parse(('endblock', 'endblock %s' % block_name))
+    parser.delete_first_token()
+    return BlockNode(block_name, nodelist)
+
+def do_extends(parser, token):
+    """
+    Signal that this template extends a parent template.
+
+    This tag may be used in two ways: ``{% extends "base" %}`` (with quotes)
+    uses the literal value "base" as the name of the parent template to extend,
+    or ``{% extends variable %}`` uses the value of ``variable`` as either the
+    name of the parent template to extend (if it evaluates to a string) or as
+    the parent tempate itelf (if it evaluates to a Template object).
+    """
+    bits = token.contents.split()
+    if len(bits) != 2:
+        raise TemplateSyntaxError, "'%s' takes one argument" % bits[0]
+    parent_name, parent_name_expr = None, None
+    if bits[1][0] in ('"', "'") and bits[1][-1] == bits[1][0]:
+        parent_name = bits[1][1:-1]
+    else:
+        parent_name_expr = parser.compile_filter(bits[1])
+    nodelist = parser.parse()
+    if nodelist.get_nodes_by_type(ExtendsNode):
+        raise TemplateSyntaxError, "'%s' cannot appear more than once in the same template" % bits[0]
+    return ExtendsNode(nodelist, parent_name, parent_name_expr)
+
+def do_include(parser, token):
+    """
+    Loads a template and renders it with the current context.
+
+    Example::
+
+        {% include "foo/some_include" %}
+    """
+    bits = token.contents.split()
+    if len(bits) != 2:
+        raise TemplateSyntaxError, "%r tag takes one argument: the name of the template to be included" % bits[0]
+    path = bits[1]
+    if path[0] in ('"', "'") and path[-1] == path[0]:
+        return ConstantIncludeNode(path[1:-1])
+    return IncludeNode(bits[1])
+
+register.tag('block', do_block)
+register.tag('extends', do_extends)
+register.tag('include', do_include)
diff --git a/webapp/django/template/loaders/__init__.py b/webapp/django/template/loaders/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/template/loaders/__init__.py
diff --git a/webapp/django/template/loaders/app_directories.py b/webapp/django/template/loaders/app_directories.py
new file mode 100644
index 0000000..f0f4b1a
--- /dev/null
+++ b/webapp/django/template/loaders/app_directories.py
@@ -0,0 +1,52 @@
+"""
+Wrapper for loading templates from "template" directories in INSTALLED_APPS
+packages.
+"""
+
+import os
+
+from django.conf import settings
+from django.core.exceptions import ImproperlyConfigured
+from django.template import TemplateDoesNotExist
+from django.utils._os import safe_join
+
+# At compile time, cache the directories to search.
+app_template_dirs = []
+for app in settings.INSTALLED_APPS:
+    i = app.rfind('.')
+    if i == -1:
+        m, a = app, None
+    else:
+        m, a = app[:i], app[i+1:]
+    try:
+        if a is None:
+            mod = __import__(m, {}, {}, [])
+        else:
+            mod = getattr(__import__(m, {}, {}, [a]), a)
+    except ImportError, e:
+        raise ImproperlyConfigured, 'ImportError %s: %s' % (app, e.args[0])
+    template_dir = os.path.join(os.path.dirname(mod.__file__), 'templates')
+    if os.path.isdir(template_dir):
+        app_template_dirs.append(template_dir)
+
+# It won't change, so convert it to a tuple to save memory.
+app_template_dirs = tuple(app_template_dirs)
+
+def get_template_sources(template_name, template_dirs=None):
+    if not template_dirs:
+        template_dirs = app_template_dirs
+    for template_dir in template_dirs:
+        try:
+            yield safe_join(template_dir, template_name)
+        except ValueError:
+            # The joined path was located outside of template_dir.
+            pass
+
+def load_template_source(template_name, template_dirs=None):
+    for filepath in get_template_sources(template_name, template_dirs):
+        try:
+            return (open(filepath).read().decode(settings.FILE_CHARSET), filepath)
+        except IOError:
+            pass
+    raise TemplateDoesNotExist, template_name
+load_template_source.is_usable = True
diff --git a/webapp/django/template/loaders/eggs.py b/webapp/django/template/loaders/eggs.py
new file mode 100644
index 0000000..946c2b4
--- /dev/null
+++ b/webapp/django/template/loaders/eggs.py
@@ -0,0 +1,25 @@
+# Wrapper for loading templates from eggs via pkg_resources.resource_string.
+
+try:
+    from pkg_resources import resource_string
+except ImportError:
+    resource_string = None
+
+from django.template import TemplateDoesNotExist
+from django.conf import settings
+
+def load_template_source(template_name, template_dirs=None):
+    """
+    Loads templates from Python eggs via pkg_resource.resource_string.
+
+    For every installed app, it tries to get the resource (app, template_name).
+    """
+    if resource_string is not None:
+        pkg_name = 'templates/' + template_name
+        for app in settings.INSTALLED_APPS:
+            try:
+                return (resource_string(app, pkg_name).decode(settings.FILE_CHARSET), 'egg:%s:%s' % (app, pkg_name))
+            except:
+                pass
+    raise TemplateDoesNotExist, template_name
+load_template_source.is_usable = resource_string is not None
diff --git a/webapp/django/template/loaders/filesystem.py b/webapp/django/template/loaders/filesystem.py
new file mode 100644
index 0000000..9997eb9
--- /dev/null
+++ b/webapp/django/template/loaders/filesystem.py
@@ -0,0 +1,31 @@
+"""
+Wrapper for loading templates from the filesystem.
+"""
+
+from django.conf import settings
+from django.template import TemplateDoesNotExist
+from django.utils._os import safe_join
+
+def get_template_sources(template_name, template_dirs=None):
+    if not template_dirs:
+        template_dirs = settings.TEMPLATE_DIRS
+    for template_dir in template_dirs:
+        try:
+            yield safe_join(template_dir, template_name)
+        except ValueError:
+            # The joined path was located outside of template_dir.
+            pass
+
+def load_template_source(template_name, template_dirs=None):
+    tried = []
+    for filepath in get_template_sources(template_name, template_dirs):
+        try:
+            return (open(filepath).read().decode(settings.FILE_CHARSET), filepath)
+        except IOError:
+            tried.append(filepath)
+    if tried:
+        error_msg = "Tried %s" % tried
+    else:
+        error_msg = "Your TEMPLATE_DIRS setting is empty. Change it to point to at least one template directory."
+    raise TemplateDoesNotExist, error_msg
+load_template_source.is_usable = True
diff --git a/webapp/django/templatetags/__init__.py b/webapp/django/templatetags/__init__.py
new file mode 100644
index 0000000..9204535
--- /dev/null
+++ b/webapp/django/templatetags/__init__.py
@@ -0,0 +1,7 @@
+from django.conf import settings
+
+for a in settings.INSTALLED_APPS:
+    try:
+        __path__.extend(__import__(a + '.templatetags', {}, {}, ['']).__path__)
+    except ImportError:
+        pass
diff --git a/webapp/django/templatetags/cache.py b/webapp/django/templatetags/cache.py
new file mode 100644
index 0000000..9c6ca76
--- /dev/null
+++ b/webapp/django/templatetags/cache.py
@@ -0,0 +1,61 @@
+from django.template import Library, Node, TemplateSyntaxError, Variable, VariableDoesNotExist
+from django.template import resolve_variable
+from django.core.cache import cache
+from django.utils.encoding import force_unicode
+from django.utils.http import urlquote
+
+register = Library()
+
+class CacheNode(Node):
+    def __init__(self, nodelist, expire_time_var, fragment_name, vary_on):
+        self.nodelist = nodelist
+        self.expire_time_var = Variable(expire_time_var)
+        self.fragment_name = fragment_name
+        self.vary_on = vary_on
+
+    def render(self, context):
+        try:
+            expire_time = self.expire_time_var.resolve(context)
+        except VariableDoesNotExist:
+            raise TemplateSyntaxError('"cache" tag got an unknkown variable: %r' % self.expire_time_var.var)
+        try:
+            expire_time = int(expire_time)
+        except (ValueError, TypeError):
+            raise TemplateSyntaxError('"cache" tag got a non-integer timeout value: %r' % expire_time)
+        # Build a unicode key for this fragment and all vary-on's.
+        cache_key = u':'.join([self.fragment_name] + [urlquote(resolve_variable(var, context)) for var in self.vary_on])
+        value = cache.get(cache_key)
+        if value is None:
+            value = self.nodelist.render(context)
+            cache.set(cache_key, value, expire_time)
+        return value
+
+def do_cache(parser, token):
+    """
+    This will cache the contents of a template fragment for a given amount
+    of time.
+
+    Usage::
+
+        {% load cache %}
+        {% cache [expire_time] [fragment_name] %}
+            .. some expensive processing ..
+        {% endcache %}
+
+    This tag also supports varying by a list of arguments::
+
+        {% load cache %}
+        {% cache [expire_time] [fragment_name] [var1] [var2] .. %}
+            .. some expensive processing ..
+        {% endcache %}
+
+    Each unique set of arguments will result in a unique cache entry.
+    """
+    nodelist = parser.parse(('endcache',))
+    parser.delete_first_token()
+    tokens = token.contents.split()
+    if len(tokens) < 3:
+        raise TemplateSyntaxError(u"'%r' tag requires at least 2 arguments." % tokens[0])
+    return CacheNode(nodelist, tokens[1], tokens[2], tokens[3:])
+
+register.tag('cache', do_cache)
diff --git a/webapp/django/templatetags/i18n.py b/webapp/django/templatetags/i18n.py
new file mode 100644
index 0000000..190cb70
--- /dev/null
+++ b/webapp/django/templatetags/i18n.py
@@ -0,0 +1,259 @@
+import re
+
+from django.template import Node, Variable, VariableNode
+from django.template import TemplateSyntaxError, TokenParser, Library
+from django.template import TOKEN_TEXT, TOKEN_VAR
+from django.utils import translation
+from django.utils.encoding import force_unicode
+
+register = Library()
+
+class GetAvailableLanguagesNode(Node):
+    def __init__(self, variable):
+        self.variable = variable
+
+    def render(self, context):
+        from django.conf import settings
+        context[self.variable] = [(k, translation.ugettext(v)) for k, v in settings.LANGUAGES]
+        return ''
+
+class GetCurrentLanguageNode(Node):
+    def __init__(self, variable):
+        self.variable = variable
+
+    def render(self, context):
+        context[self.variable] = translation.get_language()
+        return ''
+
+class GetCurrentLanguageBidiNode(Node):
+    def __init__(self, variable):
+        self.variable = variable
+
+    def render(self, context):
+        context[self.variable] = translation.get_language_bidi()
+        return ''
+
+class TranslateNode(Node):
+    def __init__(self, value, noop):
+        self.value = Variable(value)
+        self.noop = noop
+
+    def render(self, context):
+        value = self.value.resolve(context)
+        if self.noop:
+            return value
+        else:
+            return translation.ugettext(value)
+
+class BlockTranslateNode(Node):
+    def __init__(self, extra_context, singular, plural=None, countervar=None,
+            counter=None):
+        self.extra_context = extra_context
+        self.singular = singular
+        self.plural = plural
+        self.countervar = countervar
+        self.counter = counter
+
+    def render_token_list(self, tokens):
+        result = []
+        vars = []
+        for token in tokens:
+            if token.token_type == TOKEN_TEXT:
+                result.append(token.contents)
+            elif token.token_type == TOKEN_VAR:
+                result.append(u'%%(%s)s' % token.contents)
+                vars.append(token.contents)
+        return ''.join(result), vars
+
+    def render(self, context):
+        tmp_context = {}
+        for var, val in self.extra_context.items():
+            tmp_context[var] = val.render(context)
+        # Update() works like a push(), so corresponding context.pop() is at
+        # the end of function
+        context.update(tmp_context)
+        singular, vars = self.render_token_list(self.singular)
+        if self.plural and self.countervar and self.counter:
+            count = self.counter.resolve(context)
+            context[self.countervar] = count
+            plural, vars = self.render_token_list(self.plural)
+            result = translation.ungettext(singular, plural, count)
+        else:
+            result = translation.ugettext(singular)
+        # Escape all isolated '%' before substituting in the context.
+        result = re.sub(u'%(?!\()', u'%%', result)
+        data = dict([(v, force_unicode(context[v])) for v in vars])
+        context.pop()
+        return result % data
+
+def do_get_available_languages(parser, token):
+    """
+    This will store a list of available languages
+    in the context.
+
+    Usage::
+
+        {% get_available_languages as languages %}
+        {% for language in languages %}
+        ...
+        {% endfor %}
+
+    This will just pull the LANGUAGES setting from
+    your setting file (or the default settings) and
+    put it into the named variable.
+    """
+    args = token.contents.split()
+    if len(args) != 3 or args[1] != 'as':
+        raise TemplateSyntaxError, "'get_available_languages' requires 'as variable' (got %r)" % args
+    return GetAvailableLanguagesNode(args[2])
+
+def do_get_current_language(parser, token):
+    """
+    This will store the current language in the context.
+
+    Usage::
+
+        {% get_current_language as language %}
+
+    This will fetch the currently active language and
+    put it's value into the ``language`` context
+    variable.
+    """
+    args = token.contents.split()
+    if len(args) != 3 or args[1] != 'as':
+        raise TemplateSyntaxError, "'get_current_language' requires 'as variable' (got %r)" % args
+    return GetCurrentLanguageNode(args[2])
+
+def do_get_current_language_bidi(parser, token):
+    """
+    This will store the current language layout in the context.
+
+    Usage::
+
+        {% get_current_language_bidi as bidi %}
+
+    This will fetch the currently active language's layout and
+    put it's value into the ``bidi`` context variable.
+    True indicates right-to-left layout, otherwise left-to-right
+    """
+    args = token.contents.split()
+    if len(args) != 3 or args[1] != 'as':
+        raise TemplateSyntaxError, "'get_current_language_bidi' requires 'as variable' (got %r)" % args
+    return GetCurrentLanguageBidiNode(args[2])
+
+def do_translate(parser, token):
+    """
+    This will mark a string for translation and will
+    translate the string for the current language.
+
+    Usage::
+
+        {% trans "this is a test" %}
+
+    This will mark the string for translation so it will
+    be pulled out by mark-messages.py into the .po files
+    and will run the string through the translation engine.
+
+    There is a second form::
+
+        {% trans "this is a test" noop %}
+
+    This will only mark for translation, but will return
+    the string unchanged. Use it when you need to store
+    values into forms that should be translated later on.
+
+    You can use variables instead of constant strings
+    to translate stuff you marked somewhere else::
+
+        {% trans variable %}
+
+    This will just try to translate the contents of
+    the variable ``variable``. Make sure that the string
+    in there is something that is in the .po file.
+    """
+    class TranslateParser(TokenParser):
+        def top(self):
+            value = self.value()
+            if self.more():
+                if self.tag() == 'noop':
+                    noop = True
+                else:
+                    raise TemplateSyntaxError, "only option for 'trans' is 'noop'"
+            else:
+                noop = False
+            return (value, noop)
+    value, noop = TranslateParser(token.contents).top()
+    return TranslateNode(value, noop)
+
+def do_block_translate(parser, token):
+    """
+    This will translate a block of text with parameters.
+
+    Usage::
+
+        {% blocktrans with foo|filter as bar and baz|filter as boo %}
+        This is {{ bar }} and {{ boo }}.
+        {% endblocktrans %}
+
+    Additionally, this supports pluralization::
+
+        {% blocktrans count var|length as count %}
+        There is {{ count }} object.
+        {% plural %}
+        There are {{ count }} objects.
+        {% endblocktrans %}
+
+    This is much like ngettext, only in template syntax.
+    """
+    class BlockTranslateParser(TokenParser):
+        def top(self):
+            countervar = None
+            counter = None
+            extra_context = {}
+            while self.more():
+                tag = self.tag()
+                if tag == 'with' or tag == 'and':
+                    value = self.value()
+                    if self.tag() != 'as':
+                        raise TemplateSyntaxError, "variable bindings in 'blocktrans' must be 'with value as variable'"
+                    extra_context[self.tag()] = VariableNode(
+                            parser.compile_filter(value))
+                elif tag == 'count':
+                    counter = parser.compile_filter(self.value())
+                    if self.tag() != 'as':
+                        raise TemplateSyntaxError, "counter specification in 'blocktrans' must be 'count value as variable'"
+                    countervar = self.tag()
+                else:
+                    raise TemplateSyntaxError, "unknown subtag %s for 'blocktrans' found" % tag
+            return (countervar, counter, extra_context)
+
+    countervar, counter, extra_context = BlockTranslateParser(token.contents).top()
+
+    singular = []
+    plural = []
+    while parser.tokens:
+        token = parser.next_token()
+        if token.token_type in (TOKEN_VAR, TOKEN_TEXT):
+            singular.append(token)
+        else:
+            break
+    if countervar and counter:
+        if token.contents.strip() != 'plural':
+            raise TemplateSyntaxError, "'blocktrans' doesn't allow other block tags inside it"
+        while parser.tokens:
+            token = parser.next_token()
+            if token.token_type in (TOKEN_VAR, TOKEN_TEXT):
+                plural.append(token)
+            else:
+                break
+    if token.contents.strip() != 'endblocktrans':
+        raise TemplateSyntaxError, "'blocktrans' doesn't allow other block tags (seen %r) inside it" % token.contents
+
+    return BlockTranslateNode(extra_context, singular, plural, countervar,
+            counter)
+
+register.tag('get_available_languages', do_get_available_languages)
+register.tag('get_current_language', do_get_current_language)
+register.tag('get_current_language_bidi', do_get_current_language_bidi)
+register.tag('trans', do_translate)
+register.tag('blocktrans', do_block_translate)
diff --git a/webapp/django/test/__init__.py b/webapp/django/test/__init__.py
new file mode 100644
index 0000000..554e72b
--- /dev/null
+++ b/webapp/django/test/__init__.py
@@ -0,0 +1,6 @@
+"""
+Django Unit Test and Doctest framework.
+"""
+
+from django.test.client import Client
+from django.test.testcases import TestCase
diff --git a/webapp/django/test/_doctest.py b/webapp/django/test/_doctest.py
new file mode 100644
index 0000000..a56483c
--- /dev/null
+++ b/webapp/django/test/_doctest.py
@@ -0,0 +1,2693 @@
+# This is a slightly modified version of the doctest.py that shipped with Python 2.4
+# It incorporates changes that have been submitted the the Python ticket tracker
+# as ticket #1521051. These changes allow for a DoctestRunner and Doctest base
+# class to be specified when constructing a DoctestSuite.
+
+# Module doctest.
+# Released to the public domain 16-Jan-2001, by Tim Peters (tim@python.org).
+# Major enhancements and refactoring by:
+#     Jim Fulton
+#     Edward Loper
+
+# Provided as-is; use at your own risk; no warranty; no promises; enjoy!
+
+r"""Module doctest -- a framework for running examples in docstrings.
+
+In simplest use, end each module M to be tested with:
+
+def _test():
+    import doctest
+    doctest.testmod()
+
+if __name__ == "__main__":
+    _test()
+
+Then running the module as a script will cause the examples in the
+docstrings to get executed and verified:
+
+python M.py
+
+This won't display anything unless an example fails, in which case the
+failing example(s) and the cause(s) of the failure(s) are printed to stdout
+(why not stderr? because stderr is a lame hack <0.2 wink>), and the final
+line of output is "Test failed.".
+
+Run it with the -v switch instead:
+
+python M.py -v
+
+and a detailed report of all examples tried is printed to stdout, along
+with assorted summaries at the end.
+
+You can force verbose mode by passing "verbose=True" to testmod, or prohibit
+it by passing "verbose=False".  In either of those cases, sys.argv is not
+examined by testmod.
+
+There are a variety of other ways to run doctests, including integration
+with the unittest framework, and support for running non-Python text
+files containing doctests.  There are also many ways to override parts
+of doctest's default behaviors.  See the Library Reference Manual for
+details.
+"""
+
+__docformat__ = 'reStructuredText en'
+
+__all__ = [
+    # 0, Option Flags
+    'register_optionflag',
+    'DONT_ACCEPT_TRUE_FOR_1',
+    'DONT_ACCEPT_BLANKLINE',
+    'NORMALIZE_WHITESPACE',
+    'ELLIPSIS',
+    'IGNORE_EXCEPTION_DETAIL',
+    'COMPARISON_FLAGS',
+    'REPORT_UDIFF',
+    'REPORT_CDIFF',
+    'REPORT_NDIFF',
+    'REPORT_ONLY_FIRST_FAILURE',
+    'REPORTING_FLAGS',
+    # 1. Utility Functions
+    'is_private',
+    # 2. Example & DocTest
+    'Example',
+    'DocTest',
+    # 3. Doctest Parser
+    'DocTestParser',
+    # 4. Doctest Finder
+    'DocTestFinder',
+    # 5. Doctest Runner
+    'DocTestRunner',
+    'OutputChecker',
+    'DocTestFailure',
+    'UnexpectedException',
+    'DebugRunner',
+    # 6. Test Functions
+    'testmod',
+    'testfile',
+    'run_docstring_examples',
+    # 7. Tester
+    'Tester',
+    # 8. Unittest Support
+    'DocTestSuite',
+    'DocFileSuite',
+    'set_unittest_reportflags',
+    # 9. Debugging Support
+    'script_from_examples',
+    'testsource',
+    'debug_src',
+    'debug',
+]
+
+import __future__
+
+import sys, traceback, inspect, linecache, os, re
+import unittest, difflib, pdb, tempfile
+import warnings
+from StringIO import StringIO
+
+if sys.platform.startswith('java'):
+    # On Jython, isclass() reports some modules as classes. Patch it.
+    def patch_isclass(isclass):
+        def patched_isclass(obj):
+            return isclass(obj) and hasattr(obj, '__module__')
+        return patched_isclass
+    inspect.isclass = patch_isclass(inspect.isclass)
+
+# Don't whine about the deprecated is_private function in this
+# module's tests.
+warnings.filterwarnings("ignore", "is_private", DeprecationWarning,
+                        __name__, 0)
+
+# There are 4 basic classes:
+#  - Example: a <source, want> pair, plus an intra-docstring line number.
+#  - DocTest: a collection of examples, parsed from a docstring, plus
+#    info about where the docstring came from (name, filename, lineno).
+#  - DocTestFinder: extracts DocTests from a given object's docstring and
+#    its contained objects' docstrings.
+#  - DocTestRunner: runs DocTest cases, and accumulates statistics.
+#
+# So the basic picture is:
+#
+#                             list of:
+# +------+                   +---------+                   +-------+
+# |object| --DocTestFinder-> | DocTest | --DocTestRunner-> |results|
+# +------+                   +---------+                   +-------+
+#                            | Example |
+#                            |   ...   |
+#                            | Example |
+#                            +---------+
+
+# Option constants.
+
+OPTIONFLAGS_BY_NAME = {}
+def register_optionflag(name):
+    flag = 1 << len(OPTIONFLAGS_BY_NAME)
+    OPTIONFLAGS_BY_NAME[name] = flag
+    return flag
+
+DONT_ACCEPT_TRUE_FOR_1 = register_optionflag('DONT_ACCEPT_TRUE_FOR_1')
+DONT_ACCEPT_BLANKLINE = register_optionflag('DONT_ACCEPT_BLANKLINE')
+NORMALIZE_WHITESPACE = register_optionflag('NORMALIZE_WHITESPACE')
+ELLIPSIS = register_optionflag('ELLIPSIS')
+IGNORE_EXCEPTION_DETAIL = register_optionflag('IGNORE_EXCEPTION_DETAIL')
+
+COMPARISON_FLAGS = (DONT_ACCEPT_TRUE_FOR_1 |
+                    DONT_ACCEPT_BLANKLINE |
+                    NORMALIZE_WHITESPACE |
+                    ELLIPSIS |
+                    IGNORE_EXCEPTION_DETAIL)
+
+REPORT_UDIFF = register_optionflag('REPORT_UDIFF')
+REPORT_CDIFF = register_optionflag('REPORT_CDIFF')
+REPORT_NDIFF = register_optionflag('REPORT_NDIFF')
+REPORT_ONLY_FIRST_FAILURE = register_optionflag('REPORT_ONLY_FIRST_FAILURE')
+
+REPORTING_FLAGS = (REPORT_UDIFF |
+                   REPORT_CDIFF |
+                   REPORT_NDIFF |
+                   REPORT_ONLY_FIRST_FAILURE)
+
+# Special string markers for use in `want` strings:
+BLANKLINE_MARKER = '<BLANKLINE>'
+ELLIPSIS_MARKER = '...'
+
+######################################################################
+## Table of Contents
+######################################################################
+#  1. Utility Functions
+#  2. Example & DocTest -- store test cases
+#  3. DocTest Parser -- extracts examples from strings
+#  4. DocTest Finder -- extracts test cases from objects
+#  5. DocTest Runner -- runs test cases
+#  6. Test Functions -- convenient wrappers for testing
+#  7. Tester Class -- for backwards compatibility
+#  8. Unittest Support
+#  9. Debugging Support
+# 10. Example Usage
+
+######################################################################
+## 1. Utility Functions
+######################################################################
+
+def is_private(prefix, base):
+    """prefix, base -> true iff name prefix + "." + base is "private".
+
+    Prefix may be an empty string, and base does not contain a period.
+    Prefix is ignored (although functions you write conforming to this
+    protocol may make use of it).
+    Return true iff base begins with an (at least one) underscore, but
+    does not both begin and end with (at least) two underscores.
+
+    >>> is_private("a.b", "my_func")
+    False
+    >>> is_private("____", "_my_func")
+    True
+    >>> is_private("someclass", "__init__")
+    False
+    >>> is_private("sometypo", "__init_")
+    True
+    >>> is_private("x.y.z", "_")
+    True
+    >>> is_private("_x.y.z", "__")
+    False
+    >>> is_private("", "")  # senseless but consistent
+    False
+    """
+    warnings.warn("is_private is deprecated; it wasn't useful; "
+                  "examine DocTestFinder.find() lists instead",
+                  DeprecationWarning, stacklevel=2)
+    return base[:1] == "_" and not base[:2] == "__" == base[-2:]
+
+def _extract_future_flags(globs):
+    """
+    Return the compiler-flags associated with the future features that
+    have been imported into the given namespace (globs).
+    """
+    flags = 0
+    for fname in __future__.all_feature_names:
+        feature = globs.get(fname, None)
+        if feature is getattr(__future__, fname):
+            flags |= feature.compiler_flag
+    return flags
+
+def _normalize_module(module, depth=2):
+    """
+    Return the module specified by `module`.  In particular:
+      - If `module` is a module, then return module.
+      - If `module` is a string, then import and return the
+        module with that name.
+      - If `module` is None, then return the calling module.
+        The calling module is assumed to be the module of
+        the stack frame at the given depth in the call stack.
+    """
+    if inspect.ismodule(module):
+        return module
+    elif isinstance(module, (str, unicode)):
+        return __import__(module, globals(), locals(), ["*"])
+    elif module is None:
+        return sys.modules[sys._getframe(depth).f_globals['__name__']]
+    else:
+        raise TypeError("Expected a module, string, or None")
+
+def _indent(s, indent=4):
+    """
+    Add the given number of space characters to the beginning every
+    non-blank line in `s`, and return the result.
+    """
+    # This regexp matches the start of non-blank lines:
+    return re.sub('(?m)^(?!$)', indent*' ', s)
+
+def _exception_traceback(exc_info):
+    """
+    Return a string containing a traceback message for the given
+    exc_info tuple (as returned by sys.exc_info()).
+    """
+    # Get a traceback message.
+    excout = StringIO()
+    exc_type, exc_val, exc_tb = exc_info
+    traceback.print_exception(exc_type, exc_val, exc_tb, file=excout)
+    return excout.getvalue()
+
+# Override some StringIO methods.
+class _SpoofOut(StringIO):
+    def getvalue(self):
+        result = StringIO.getvalue(self)
+        # If anything at all was written, make sure there's a trailing
+        # newline.  There's no way for the expected output to indicate
+        # that a trailing newline is missing.
+        if result and not result.endswith("\n"):
+            result += "\n"
+        # Prevent softspace from screwing up the next test case, in
+        # case they used print with a trailing comma in an example.
+        if hasattr(self, "softspace"):
+            del self.softspace
+        return result
+
+    def truncate(self,   size=None):
+        StringIO.truncate(self, size)
+        if hasattr(self, "softspace"):
+            del self.softspace
+
+# Worst-case linear-time ellipsis matching.
+def _ellipsis_match(want, got):
+    """
+    Essentially the only subtle case:
+    >>> _ellipsis_match('aa...aa', 'aaa')
+    False
+    """
+    if ELLIPSIS_MARKER not in want:
+        return want == got
+
+    # Find "the real" strings.
+    ws = want.split(ELLIPSIS_MARKER)
+    assert len(ws) >= 2
+
+    # Deal with exact matches possibly needed at one or both ends.
+    startpos, endpos = 0, len(got)
+    w = ws[0]
+    if w:   # starts with exact match
+        if got.startswith(w):
+            startpos = len(w)
+            del ws[0]
+        else:
+            return False
+    w = ws[-1]
+    if w:   # ends with exact match
+        if got.endswith(w):
+            endpos -= len(w)
+            del ws[-1]
+        else:
+            return False
+
+    if startpos > endpos:
+        # Exact end matches required more characters than we have, as in
+        # _ellipsis_match('aa...aa', 'aaa')
+        return False
+
+    # For the rest, we only need to find the leftmost non-overlapping
+    # match for each piece.  If there's no overall match that way alone,
+    # there's no overall match period.
+    for w in ws:
+        # w may be '' at times, if there are consecutive ellipses, or
+        # due to an ellipsis at the start or end of `want`.  That's OK.
+        # Search for an empty string succeeds, and doesn't change startpos.
+        startpos = got.find(w, startpos, endpos)
+        if startpos < 0:
+            return False
+        startpos += len(w)
+
+    return True
+
+def _comment_line(line):
+    "Return a commented form of the given line"
+    line = line.rstrip()
+    if line:
+        return '# '+line
+    else:
+        return '#'
+
+class _OutputRedirectingPdb(pdb.Pdb):
+    """
+    A specialized version of the python debugger that redirects stdout
+    to a given stream when interacting with the user.  Stdout is *not*
+    redirected when traced code is executed.
+    """
+    def __init__(self, out):
+        self.__out = out
+        self.__debugger_used = False
+        pdb.Pdb.__init__(self)
+
+    def set_trace(self):
+        self.__debugger_used = True
+        pdb.Pdb.set_trace(self)
+
+    def set_continue(self):
+        # Calling set_continue unconditionally would break unit test coverage
+        # reporting, as Bdb.set_continue calls sys.settrace(None).
+        if self.__debugger_used:
+            pdb.Pdb.set_continue(self)
+
+    def trace_dispatch(self, *args):
+        # Redirect stdout to the given stream.
+        save_stdout = sys.stdout
+        sys.stdout = self.__out
+        # Call Pdb's trace dispatch method.
+        try:
+            return pdb.Pdb.trace_dispatch(self, *args)
+        finally:
+            sys.stdout = save_stdout
+
+# [XX] Normalize with respect to os.path.pardir?
+def _module_relative_path(module, path):
+    if not inspect.ismodule(module):
+        raise TypeError, 'Expected a module: %r' % module
+    if path.startswith('/'):
+        raise ValueError, 'Module-relative files may not have absolute paths'
+
+    # Find the base directory for the path.
+    if hasattr(module, '__file__'):
+        # A normal module/package
+        basedir = os.path.split(module.__file__)[0]
+    elif module.__name__ == '__main__':
+        # An interactive session.
+        if len(sys.argv)>0 and sys.argv[0] != '':
+            basedir = os.path.split(sys.argv[0])[0]
+        else:
+            basedir = os.curdir
+    else:
+        # A module w/o __file__ (this includes builtins)
+        raise ValueError("Can't resolve paths relative to the module " +
+                         module + " (it has no __file__)")
+
+    # Combine the base directory and the path.
+    return os.path.join(basedir, *(path.split('/')))
+
+######################################################################
+## 2. Example & DocTest
+######################################################################
+## - An "example" is a <source, want> pair, where "source" is a
+##   fragment of source code, and "want" is the expected output for
+##   "source."  The Example class also includes information about
+##   where the example was extracted from.
+##
+## - A "doctest" is a collection of examples, typically extracted from
+##   a string (such as an object's docstring).  The DocTest class also
+##   includes information about where the string was extracted from.
+
+class Example:
+    """
+    A single doctest example, consisting of source code and expected
+    output.  `Example` defines the following attributes:
+
+      - source: A single Python statement, always ending with a newline.
+        The constructor adds a newline if needed.
+
+      - want: The expected output from running the source code (either
+        from stdout, or a traceback in case of exception).  `want` ends
+        with a newline unless it's empty, in which case it's an empty
+        string.  The constructor adds a newline if needed.
+
+      - exc_msg: The exception message generated by the example, if
+        the example is expected to generate an exception; or `None` if
+        it is not expected to generate an exception.  This exception
+        message is compared against the return value of
+        `traceback.format_exception_only()`.  `exc_msg` ends with a
+        newline unless it's `None`.  The constructor adds a newline
+        if needed.
+
+      - lineno: The line number within the DocTest string containing
+        this Example where the Example begins.  This line number is
+        zero-based, with respect to the beginning of the DocTest.
+
+      - indent: The example's indentation in the DocTest string.
+        I.e., the number of space characters that preceed the
+        example's first prompt.
+
+      - options: A dictionary mapping from option flags to True or
+        False, which is used to override default options for this
+        example.  Any option flags not contained in this dictionary
+        are left at their default value (as specified by the
+        DocTestRunner's optionflags).  By default, no options are set.
+    """
+    def __init__(self, source, want, exc_msg=None, lineno=0, indent=0,
+                 options=None):
+        # Normalize inputs.
+        if not source.endswith('\n'):
+            source += '\n'
+        if want and not want.endswith('\n'):
+            want += '\n'
+        if exc_msg is not None and not exc_msg.endswith('\n'):
+            exc_msg += '\n'
+        # Store properties.
+        self.source = source
+        self.want = want
+        self.lineno = lineno
+        self.indent = indent
+        if options is None: options = {}
+        self.options = options
+        self.exc_msg = exc_msg
+
+class DocTest:
+    """
+    A collection of doctest examples that should be run in a single
+    namespace.  Each `DocTest` defines the following attributes:
+
+      - examples: the list of examples.
+
+      - globs: The namespace (aka globals) that the examples should
+        be run in.
+
+      - name: A name identifying the DocTest (typically, the name of
+        the object whose docstring this DocTest was extracted from).
+
+      - filename: The name of the file that this DocTest was extracted
+        from, or `None` if the filename is unknown.
+
+      - lineno: The line number within filename where this DocTest
+        begins, or `None` if the line number is unavailable.  This
+        line number is zero-based, with respect to the beginning of
+        the file.
+
+      - docstring: The string that the examples were extracted from,
+        or `None` if the string is unavailable.
+    """
+    def __init__(self, examples, globs, name, filename, lineno, docstring):
+        """
+        Create a new DocTest containing the given examples.  The
+        DocTest's globals are initialized with a copy of `globs`.
+        """
+        assert not isinstance(examples, basestring), \
+               "DocTest no longer accepts str; use DocTestParser instead"
+        self.examples = examples
+        self.docstring = docstring
+        self.globs = globs.copy()
+        self.name = name
+        self.filename = filename
+        self.lineno = lineno
+
+    def __repr__(self):
+        if len(self.examples) == 0:
+            examples = 'no examples'
+        elif len(self.examples) == 1:
+            examples = '1 example'
+        else:
+            examples = '%d examples' % len(self.examples)
+        return ('<DocTest %s from %s:%s (%s)>' %
+                (self.name, self.filename, self.lineno, examples))
+
+
+    # This lets us sort tests by name:
+    def __cmp__(self, other):
+        if not isinstance(other, DocTest):
+            return -1
+        return cmp((self.name, self.filename, self.lineno, id(self)),
+                   (other.name, other.filename, other.lineno, id(other)))
+
+######################################################################
+## 3. DocTestParser
+######################################################################
+
+class DocTestParser:
+    """
+    A class used to parse strings containing doctest examples.
+    """
+    # This regular expression is used to find doctest examples in a
+    # string.  It defines three groups: `source` is the source code
+    # (including leading indentation and prompts); `indent` is the
+    # indentation of the first (PS1) line of the source code; and
+    # `want` is the expected output (including leading indentation).
+    _EXAMPLE_RE = re.compile(r'''
+        # Source consists of a PS1 line followed by zero or more PS2 lines.
+        (?P<source>
+            (?:^(?P<indent> [ ]*) >>>    .*)    # PS1 line
+            (?:\n           [ ]*  \.\.\. .*)*)  # PS2 lines
+        \n?
+        # Want consists of any non-blank lines that do not start with PS1.
+        (?P<want> (?:(?![ ]*$)    # Not a blank line
+                     (?![ ]*>>>)  # Not a line starting with PS1
+                     .*$\n?       # But any other line
+                  )*)
+        ''', re.MULTILINE | re.VERBOSE)
+
+    # A regular expression for handling `want` strings that contain
+    # expected exceptions.  It divides `want` into three pieces:
+    #    - the traceback header line (`hdr`)
+    #    - the traceback stack (`stack`)
+    #    - the exception message (`msg`), as generated by
+    #      traceback.format_exception_only()
+    # `msg` may have multiple lines.  We assume/require that the
+    # exception message is the first non-indented line starting with a word
+    # character following the traceback header line.
+    _EXCEPTION_RE = re.compile(r"""
+        # Grab the traceback header.  Different versions of Python have
+        # said different things on the first traceback line.
+        ^(?P<hdr> Traceback\ \(
+            (?: most\ recent\ call\ last
+            |   innermost\ last
+            ) \) :
+        )
+        \s* $                # toss trailing whitespace on the header.
+        (?P<stack> .*?)      # don't blink: absorb stuff until...
+        ^ (?P<msg> \w+ .*)   #     a line *starts* with alphanum.
+        """, re.VERBOSE | re.MULTILINE | re.DOTALL)
+
+    # A callable returning a true value iff its argument is a blank line
+    # or contains a single comment.
+    _IS_BLANK_OR_COMMENT = re.compile(r'^[ ]*(#.*)?$').match
+
+    def parse(self, string, name='<string>'):
+        """
+        Divide the given string into examples and intervening text,
+        and return them as a list of alternating Examples and strings.
+        Line numbers for the Examples are 0-based.  The optional
+        argument `name` is a name identifying this string, and is only
+        used for error messages.
+        """
+        string = string.expandtabs()
+        # If all lines begin with the same indentation, then strip it.
+        min_indent = self._min_indent(string)
+        if min_indent > 0:
+            string = '\n'.join([l[min_indent:] for l in string.split('\n')])
+
+        output = []
+        charno, lineno = 0, 0
+        # Find all doctest examples in the string:
+        for m in self._EXAMPLE_RE.finditer(string):
+            # Add the pre-example text to `output`.
+            output.append(string[charno:m.start()])
+            # Update lineno (lines before this example)
+            lineno += string.count('\n', charno, m.start())
+            # Extract info from the regexp match.
+            (source, options, want, exc_msg) = \
+                     self._parse_example(m, name, lineno)
+            # Create an Example, and add it to the list.
+            if not self._IS_BLANK_OR_COMMENT(source):
+                output.append( Example(source, want, exc_msg,
+                                    lineno=lineno,
+                                    indent=min_indent+len(m.group('indent')),
+                                    options=options) )
+            # Update lineno (lines inside this example)
+            lineno += string.count('\n', m.start(), m.end())
+            # Update charno.
+            charno = m.end()
+        # Add any remaining post-example text to `output`.
+        output.append(string[charno:])
+        return output
+
+    def get_doctest(self, string, globs, name, filename, lineno):
+        """
+        Extract all doctest examples from the given string, and
+        collect them into a `DocTest` object.
+
+        `globs`, `name`, `filename`, and `lineno` are attributes for
+        the new `DocTest` object.  See the documentation for `DocTest`
+        for more information.
+        """
+        return DocTest(self.get_examples(string, name), globs,
+                       name, filename, lineno, string)
+
+    def get_examples(self, string, name='<string>'):
+        """
+        Extract all doctest examples from the given string, and return
+        them as a list of `Example` objects.  Line numbers are
+        0-based, because it's most common in doctests that nothing
+        interesting appears on the same line as opening triple-quote,
+        and so the first interesting line is called \"line 1\" then.
+
+        The optional argument `name` is a name identifying this
+        string, and is only used for error messages.
+        """
+        return [x for x in self.parse(string, name)
+                if isinstance(x, Example)]
+
+    def _parse_example(self, m, name, lineno):
+        """
+        Given a regular expression match from `_EXAMPLE_RE` (`m`),
+        return a pair `(source, want)`, where `source` is the matched
+        example's source code (with prompts and indentation stripped);
+        and `want` is the example's expected output (with indentation
+        stripped).
+
+        `name` is the string's name, and `lineno` is the line number
+        where the example starts; both are used for error messages.
+        """
+        # Get the example's indentation level.
+        indent = len(m.group('indent'))
+
+        # Divide source into lines; check that they're properly
+        # indented; and then strip their indentation & prompts.
+        source_lines = m.group('source').split('\n')
+        self._check_prompt_blank(source_lines, indent, name, lineno)
+        self._check_prefix(source_lines[1:], ' '*indent + '.', name, lineno)
+        source = '\n'.join([sl[indent+4:] for sl in source_lines])
+
+        # Divide want into lines; check that it's properly indented; and
+        # then strip the indentation.  Spaces before the last newline should
+        # be preserved, so plain rstrip() isn't good enough.
+        want = m.group('want')
+        want_lines = want.split('\n')
+        if len(want_lines) > 1 and re.match(r' *$', want_lines[-1]):
+            del want_lines[-1]  # forget final newline & spaces after it
+        self._check_prefix(want_lines, ' '*indent, name,
+                           lineno + len(source_lines))
+        want = '\n'.join([wl[indent:] for wl in want_lines])
+
+        # If `want` contains a traceback message, then extract it.
+        m = self._EXCEPTION_RE.match(want)
+        if m:
+            exc_msg = m.group('msg')
+        else:
+            exc_msg = None
+
+        # Extract options from the source.
+        options = self._find_options(source, name, lineno)
+
+        return source, options, want, exc_msg
+
+    # This regular expression looks for option directives in the
+    # source code of an example.  Option directives are comments
+    # starting with "doctest:".  Warning: this may give false
+    # positives for string-literals that contain the string
+    # "#doctest:".  Eliminating these false positives would require
+    # actually parsing the string; but we limit them by ignoring any
+    # line containing "#doctest:" that is *followed* by a quote mark.
+    _OPTION_DIRECTIVE_RE = re.compile(r'#\s*doctest:\s*([^\n\'"]*)$',
+                                      re.MULTILINE)
+
+    def _find_options(self, source, name, lineno):
+        """
+        Return a dictionary containing option overrides extracted from
+        option directives in the given source string.
+
+        `name` is the string's name, and `lineno` is the line number
+        where the example starts; both are used for error messages.
+        """
+        options = {}
+        # (note: with the current regexp, this will match at most once:)
+        for m in self._OPTION_DIRECTIVE_RE.finditer(source):
+            option_strings = m.group(1).replace(',', ' ').split()
+            for option in option_strings:
+                if (option[0] not in '+-' or
+                    option[1:] not in OPTIONFLAGS_BY_NAME):
+                    raise ValueError('line %r of the doctest for %s '
+                                     'has an invalid option: %r' %
+                                     (lineno+1, name, option))
+                flag = OPTIONFLAGS_BY_NAME[option[1:]]
+                options[flag] = (option[0] == '+')
+        if options and self._IS_BLANK_OR_COMMENT(source):
+            raise ValueError('line %r of the doctest for %s has an option '
+                             'directive on a line with no example: %r' %
+                             (lineno, name, source))
+        return options
+
+    # This regular expression finds the indentation of every non-blank
+    # line in a string.
+    _INDENT_RE = re.compile('^([ ]*)(?=\S)', re.MULTILINE)
+
+    def _min_indent(self, s):
+        "Return the minimum indentation of any non-blank line in `s`"
+        indents = [len(indent) for indent in self._INDENT_RE.findall(s)]
+        if len(indents) > 0:
+            return min(indents)
+        else:
+            return 0
+
+    def _check_prompt_blank(self, lines, indent, name, lineno):
+        """
+        Given the lines of a source string (including prompts and
+        leading indentation), check to make sure that every prompt is
+        followed by a space character.  If any line is not followed by
+        a space character, then raise ValueError.
+        """
+        for i, line in enumerate(lines):
+            if len(line) >= indent+4 and line[indent+3] != ' ':
+                raise ValueError('line %r of the docstring for %s '
+                                 'lacks blank after %s: %r' %
+                                 (lineno+i+1, name,
+                                  line[indent:indent+3], line))
+
+    def _check_prefix(self, lines, prefix, name, lineno):
+        """
+        Check that every line in the given list starts with the given
+        prefix; if any line does not, then raise a ValueError.
+        """
+        for i, line in enumerate(lines):
+            if line and not line.startswith(prefix):
+                raise ValueError('line %r of the docstring for %s has '
+                                 'inconsistent leading whitespace: %r' %
+                                 (lineno+i+1, name, line))
+
+
+######################################################################
+## 4. DocTest Finder
+######################################################################
+
+class DocTestFinder:
+    """
+    A class used to extract the DocTests that are relevant to a given
+    object, from its docstring and the docstrings of its contained
+    objects.  Doctests can currently be extracted from the following
+    object types: modules, functions, classes, methods, staticmethods,
+    classmethods, and properties.
+    """
+
+    def __init__(self, verbose=False, parser=DocTestParser(),
+                 recurse=True, _namefilter=None, exclude_empty=True):
+        """
+        Create a new doctest finder.
+
+        The optional argument `parser` specifies a class or
+        function that should be used to create new DocTest objects (or
+        objects that implement the same interface as DocTest).  The
+        signature for this factory function should match the signature
+        of the DocTest constructor.
+
+        If the optional argument `recurse` is false, then `find` will
+        only examine the given object, and not any contained objects.
+
+        If the optional argument `exclude_empty` is false, then `find`
+        will include tests for objects with empty docstrings.
+        """
+        self._parser = parser
+        self._verbose = verbose
+        self._recurse = recurse
+        self._exclude_empty = exclude_empty
+        # _namefilter is undocumented, and exists only for temporary backward-
+        # compatibility support of testmod's deprecated isprivate mess.
+        self._namefilter = _namefilter
+
+    def find(self, obj, name=None, module=None, globs=None,
+             extraglobs=None):
+        """
+        Return a list of the DocTests that are defined by the given
+        object's docstring, or by any of its contained objects'
+        docstrings.
+
+        The optional parameter `module` is the module that contains
+        the given object.  If the module is not specified or is None, then
+        the test finder will attempt to automatically determine the
+        correct module.  The object's module is used:
+
+            - As a default namespace, if `globs` is not specified.
+            - To prevent the DocTestFinder from extracting DocTests
+              from objects that are imported from other modules.
+            - To find the name of the file containing the object.
+            - To help find the line number of the object within its
+              file.
+
+        Contained objects whose module does not match `module` are ignored.
+
+        If `module` is False, no attempt to find the module will be made.
+        This is obscure, of use mostly in tests:  if `module` is False, or
+        is None but cannot be found automatically, then all objects are
+        considered to belong to the (non-existent) module, so all contained
+        objects will (recursively) be searched for doctests.
+
+        The globals for each DocTest is formed by combining `globs`
+        and `extraglobs` (bindings in `extraglobs` override bindings
+        in `globs`).  A new copy of the globals dictionary is created
+        for each DocTest.  If `globs` is not specified, then it
+        defaults to the module's `__dict__`, if specified, or {}
+        otherwise.  If `extraglobs` is not specified, then it defaults
+        to {}.
+
+        """
+        # If name was not specified, then extract it from the object.
+        if name is None:
+            name = getattr(obj, '__name__', None)
+            if name is None:
+                raise ValueError("DocTestFinder.find: name must be given "
+                        "when obj.__name__ doesn't exist: %r" %
+                                 (type(obj),))
+
+        # Find the module that contains the given object (if obj is
+        # a module, then module=obj.).  Note: this may fail, in which
+        # case module will be None.
+        if module is False:
+            module = None
+        elif module is None:
+            module = inspect.getmodule(obj)
+
+        # Read the module's source code.  This is used by
+        # DocTestFinder._find_lineno to find the line number for a
+        # given object's docstring.
+        try:
+            file = inspect.getsourcefile(obj) or inspect.getfile(obj)
+            source_lines = linecache.getlines(file)
+            if not source_lines:
+                source_lines = None
+        except TypeError:
+            source_lines = None
+
+        # Initialize globals, and merge in extraglobs.
+        if globs is None:
+            if module is None:
+                globs = {}
+            else:
+                globs = module.__dict__.copy()
+        else:
+            globs = globs.copy()
+        if extraglobs is not None:
+            globs.update(extraglobs)
+
+        # Recursively explore `obj`, extracting DocTests.
+        tests = []
+        self._find(tests, obj, name, module, source_lines, globs, {})
+        return tests
+
+    def _filter(self, obj, prefix, base):
+        """
+        Return true if the given object should not be examined.
+        """
+        return (self._namefilter is not None and
+                self._namefilter(prefix, base))
+
+    def _from_module(self, module, object):
+        """
+        Return true if the given object is defined in the given
+        module.
+        """
+        if module is None:
+            return True
+        elif inspect.isfunction(object):
+            return module.__dict__ is object.func_globals
+        elif inspect.isclass(object):
+            return module.__name__ == object.__module__
+        elif inspect.getmodule(object) is not None:
+            return module is inspect.getmodule(object)
+        elif hasattr(object, '__module__'):
+            return module.__name__ == object.__module__
+        elif isinstance(object, property):
+            return True # [XX] no way not be sure.
+        else:
+            raise ValueError("object must be a class or function")
+
+    def _find(self, tests, obj, name, module, source_lines, globs, seen):
+        """
+        Find tests for the given object and any contained objects, and
+        add them to `tests`.
+        """
+        if self._verbose:
+            print 'Finding tests in %s' % name
+
+        # If we've already processed this object, then ignore it.
+        if id(obj) in seen:
+            return
+        seen[id(obj)] = 1
+
+        # Find a test for this object, and add it to the list of tests.
+        test = self._get_test(obj, name, module, globs, source_lines)
+        if test is not None:
+            tests.append(test)
+
+        # Look for tests in a module's contained objects.
+        if inspect.ismodule(obj) and self._recurse:
+            for valname, val in obj.__dict__.items():
+                # Check if this contained object should be ignored.
+                if self._filter(val, name, valname):
+                    continue
+                valname = '%s.%s' % (name, valname)
+                # Recurse to functions & classes.
+                if ((inspect.isfunction(val) or inspect.isclass(val)) and
+                    self._from_module(module, val)):
+                    self._find(tests, val, valname, module, source_lines,
+                               globs, seen)
+
+        # Look for tests in a module's __test__ dictionary.
+        if inspect.ismodule(obj) and self._recurse:
+            for valname, val in getattr(obj, '__test__', {}).items():
+                if not isinstance(valname, basestring):
+                    raise ValueError("DocTestFinder.find: __test__ keys "
+                                     "must be strings: %r" %
+                                     (type(valname),))
+                if not (inspect.isfunction(val) or inspect.isclass(val) or
+                        inspect.ismethod(val) or inspect.ismodule(val) or
+                        isinstance(val, basestring)):
+                    raise ValueError("DocTestFinder.find: __test__ values "
+                                     "must be strings, functions, methods, "
+                                     "classes, or modules: %r" %
+                                     (type(val),))
+                valname = '%s.__test__.%s' % (name, valname)
+                self._find(tests, val, valname, module, source_lines,
+                           globs, seen)
+
+        # Look for tests in a class's contained objects.
+        if inspect.isclass(obj) and self._recurse:
+            for valname, val in obj.__dict__.items():
+                # Check if this contained object should be ignored.
+                if self._filter(val, name, valname):
+                    continue
+                # Special handling for staticmethod/classmethod.
+                if isinstance(val, staticmethod):
+                    val = getattr(obj, valname)
+                if isinstance(val, classmethod):
+                    val = getattr(obj, valname).im_func
+
+                # Recurse to methods, properties, and nested classes.
+                if ((inspect.isfunction(val) or inspect.isclass(val) or
+                      isinstance(val, property)) and
+                      self._from_module(module, val)):
+                    valname = '%s.%s' % (name, valname)
+                    self._find(tests, val, valname, module, source_lines,
+                               globs, seen)
+
+    def _get_test(self, obj, name, module, globs, source_lines):
+        """
+        Return a DocTest for the given object, if it defines a docstring;
+        otherwise, return None.
+        """
+        # Extract the object's docstring.  If it doesn't have one,
+        # then return None (no test for this object).
+        if isinstance(obj, basestring):
+            docstring = obj
+        else:
+            try:
+                if obj.__doc__ is None:
+                    docstring = ''
+                else:
+                    docstring = obj.__doc__
+                    if not isinstance(docstring, basestring):
+                        docstring = str(docstring)
+            except (TypeError, AttributeError):
+                docstring = ''
+
+        # Find the docstring's location in the file.
+        lineno = self._find_lineno(obj, source_lines)
+
+        # Don't bother if the docstring is empty.
+        if self._exclude_empty and not docstring:
+            return None
+
+        # Return a DocTest for this object.
+        if module is None:
+            filename = None
+        else:
+            filename = getattr(module, '__file__', module.__name__)
+            if filename[-4:] in (".pyc", ".pyo"):
+                filename = filename[:-1]
+        return self._parser.get_doctest(docstring, globs, name,
+                                        filename, lineno)
+
+    def _find_lineno(self, obj, source_lines):
+        """
+        Return a line number of the given object's docstring.  Note:
+        this method assumes that the object has a docstring.
+        """
+        lineno = None
+
+        # Find the line number for modules.
+        if inspect.ismodule(obj):
+            lineno = 0
+
+        # Find the line number for classes.
+        # Note: this could be fooled if a class is defined multiple
+        # times in a single file.
+        if inspect.isclass(obj):
+            if source_lines is None:
+                return None
+            pat = re.compile(r'^\s*class\s*%s\b' %
+                             getattr(obj, '__name__', '-'))
+            for i, line in enumerate(source_lines):
+                if pat.match(line):
+                    lineno = i
+                    break
+
+        # Find the line number for functions & methods.
+        if inspect.ismethod(obj): obj = obj.im_func
+        if inspect.isfunction(obj): obj = obj.func_code
+        if inspect.istraceback(obj): obj = obj.tb_frame
+        if inspect.isframe(obj): obj = obj.f_code
+        if inspect.iscode(obj):
+            lineno = getattr(obj, 'co_firstlineno', None)-1
+
+        # Find the line number where the docstring starts.  Assume
+        # that it's the first line that begins with a quote mark.
+        # Note: this could be fooled by a multiline function
+        # signature, where a continuation line begins with a quote
+        # mark.
+        if lineno is not None:
+            if source_lines is None:
+                return lineno+1
+            pat = re.compile('(^|.*:)\s*\w*("|\')')
+            for lineno in range(lineno, len(source_lines)):
+                if pat.match(source_lines[lineno]):
+                    return lineno
+
+        # We couldn't find the line number.
+        return None
+
+######################################################################
+## 5. DocTest Runner
+######################################################################
+
+class DocTestRunner:
+    """
+    A class used to run DocTest test cases, and accumulate statistics.
+    The `run` method is used to process a single DocTest case.  It
+    returns a tuple `(f, t)`, where `t` is the number of test cases
+    tried, and `f` is the number of test cases that failed.
+
+        >>> tests = DocTestFinder().find(_TestClass)
+        >>> runner = DocTestRunner(verbose=False)
+        >>> for test in tests:
+        ...     print runner.run(test)
+        (0, 2)
+        (0, 1)
+        (0, 2)
+        (0, 2)
+
+    The `summarize` method prints a summary of all the test cases that
+    have been run by the runner, and returns an aggregated `(f, t)`
+    tuple:
+
+        >>> runner.summarize(verbose=1)
+        4 items passed all tests:
+           2 tests in _TestClass
+           2 tests in _TestClass.__init__
+           2 tests in _TestClass.get
+           1 tests in _TestClass.square
+        7 tests in 4 items.
+        7 passed and 0 failed.
+        Test passed.
+        (0, 7)
+
+    The aggregated number of tried examples and failed examples is
+    also available via the `tries` and `failures` attributes:
+
+        >>> runner.tries
+        7
+        >>> runner.failures
+        0
+
+    The comparison between expected outputs and actual outputs is done
+    by an `OutputChecker`.  This comparison may be customized with a
+    number of option flags; see the documentation for `testmod` for
+    more information.  If the option flags are insufficient, then the
+    comparison may also be customized by passing a subclass of
+    `OutputChecker` to the constructor.
+
+    The test runner's display output can be controlled in two ways.
+    First, an output function (`out) can be passed to
+    `TestRunner.run`; this function will be called with strings that
+    should be displayed.  It defaults to `sys.stdout.write`.  If
+    capturing the output is not sufficient, then the display output
+    can be also customized by subclassing DocTestRunner, and
+    overriding the methods `report_start`, `report_success`,
+    `report_unexpected_exception`, and `report_failure`.
+    """
+    # This divider string is used to separate failure messages, and to
+    # separate sections of the summary.
+    DIVIDER = "*" * 70
+
+    def __init__(self, checker=None, verbose=None, optionflags=0):
+        """
+        Create a new test runner.
+
+        Optional keyword arg `checker` is the `OutputChecker` that
+        should be used to compare the expected outputs and actual
+        outputs of doctest examples.
+
+        Optional keyword arg 'verbose' prints lots of stuff if true,
+        only failures if false; by default, it's true iff '-v' is in
+        sys.argv.
+
+        Optional argument `optionflags` can be used to control how the
+        test runner compares expected output to actual output, and how
+        it displays failures.  See the documentation for `testmod` for
+        more information.
+        """
+        self._checker = checker or OutputChecker()
+        if verbose is None:
+            verbose = '-v' in sys.argv
+        self._verbose = verbose
+        self.optionflags = optionflags
+        self.original_optionflags = optionflags
+
+        # Keep track of the examples we've run.
+        self.tries = 0
+        self.failures = 0
+        self._name2ft = {}
+
+        # Create a fake output target for capturing doctest output.
+        self._fakeout = _SpoofOut()
+
+    #/////////////////////////////////////////////////////////////////
+    # Reporting methods
+    #/////////////////////////////////////////////////////////////////
+
+    def report_start(self, out, test, example):
+        """
+        Report that the test runner is about to process the given
+        example.  (Only displays a message if verbose=True)
+        """
+        if self._verbose:
+            if example.want:
+                out('Trying:\n' + _indent(example.source) +
+                    'Expecting:\n' + _indent(example.want))
+            else:
+                out('Trying:\n' + _indent(example.source) +
+                    'Expecting nothing\n')
+
+    def report_success(self, out, test, example, got):
+        """
+        Report that the given example ran successfully.  (Only
+        displays a message if verbose=True)
+        """
+        if self._verbose:
+            out("ok\n")
+
+    def report_failure(self, out, test, example, got):
+        """
+        Report that the given example failed.
+        """
+        out(self._failure_header(test, example) +
+            self._checker.output_difference(example, got, self.optionflags))
+
+    def report_unexpected_exception(self, out, test, example, exc_info):
+        """
+        Report that the given example raised an unexpected exception.
+        """
+        out(self._failure_header(test, example) +
+            'Exception raised:\n' + _indent(_exception_traceback(exc_info)))
+
+    def _failure_header(self, test, example):
+        out = [self.DIVIDER]
+        if test.filename:
+            if test.lineno is not None and example.lineno is not None:
+                lineno = test.lineno + example.lineno + 1
+            else:
+                lineno = '?'
+            out.append('File "%s", line %s, in %s' %
+                       (test.filename, lineno, test.name))
+        else:
+            out.append('Line %s, in %s' % (example.lineno+1, test.name))
+        out.append('Failed example:')
+        source = example.source
+        out.append(_indent(source))
+        return '\n'.join(out)
+
+    #/////////////////////////////////////////////////////////////////
+    # DocTest Running
+    #/////////////////////////////////////////////////////////////////
+
+    def __run(self, test, compileflags, out):
+        """
+        Run the examples in `test`.  Write the outcome of each example
+        with one of the `DocTestRunner.report_*` methods, using the
+        writer function `out`.  `compileflags` is the set of compiler
+        flags that should be used to execute examples.  Return a tuple
+        `(f, t)`, where `t` is the number of examples tried, and `f`
+        is the number of examples that failed.  The examples are run
+        in the namespace `test.globs`.
+        """
+        # Keep track of the number of failures and tries.
+        failures = tries = 0
+
+        # Save the option flags (since option directives can be used
+        # to modify them).
+        original_optionflags = self.optionflags
+
+        SUCCESS, FAILURE, BOOM = range(3) # `outcome` state
+
+        check = self._checker.check_output
+
+        # Process each example.
+        for examplenum, example in enumerate(test.examples):
+
+            # If REPORT_ONLY_FIRST_FAILURE is set, then suppress
+            # reporting after the first failure.
+            quiet = (self.optionflags & REPORT_ONLY_FIRST_FAILURE and
+                     failures > 0)
+
+            # Merge in the example's options.
+            self.optionflags = original_optionflags
+            if example.options:
+                for (optionflag, val) in example.options.items():
+                    if val:
+                        self.optionflags |= optionflag
+                    else:
+                        self.optionflags &= ~optionflag
+
+            # Record that we started this example.
+            tries += 1
+            if not quiet:
+                self.report_start(out, test, example)
+
+            # Use a special filename for compile(), so we can retrieve
+            # the source code during interactive debugging (see
+            # __patched_linecache_getlines).
+            filename = '<doctest %s[%d]>' % (test.name, examplenum)
+
+            # Run the example in the given context (globs), and record
+            # any exception that gets raised.  (But don't intercept
+            # keyboard interrupts.)
+            try:
+                # Don't blink!  This is where the user's code gets run.
+                exec compile(example.source, filename, "single",
+                             compileflags, 1) in test.globs
+                self.debugger.set_continue() # ==== Example Finished ====
+                exception = None
+            except KeyboardInterrupt:
+                raise
+            except:
+                exception = sys.exc_info()
+                self.debugger.set_continue() # ==== Example Finished ====
+
+            got = self._fakeout.getvalue()  # the actual output
+            self._fakeout.truncate(0)
+            outcome = FAILURE   # guilty until proved innocent or insane
+
+            # If the example executed without raising any exceptions,
+            # verify its output.
+            if exception is None:
+                if check(example.want, got, self.optionflags):
+                    outcome = SUCCESS
+
+            # The example raised an exception:  check if it was expected.
+            else:
+                exc_info = sys.exc_info()
+                exc_msg = traceback.format_exception_only(*exc_info[:2])[-1]
+                if not quiet:
+                    got += _exception_traceback(exc_info)
+
+                # If `example.exc_msg` is None, then we weren't expecting
+                # an exception.
+                if example.exc_msg is None:
+                    outcome = BOOM
+
+                # We expected an exception:  see whether it matches.
+                elif check(example.exc_msg, exc_msg, self.optionflags):
+                    outcome = SUCCESS
+
+                # Another chance if they didn't care about the detail.
+                elif self.optionflags & IGNORE_EXCEPTION_DETAIL:
+                    m1 = re.match(r'[^:]*:', example.exc_msg)
+                    m2 = re.match(r'[^:]*:', exc_msg)
+                    if m1 and m2 and check(m1.group(0), m2.group(0),
+                                           self.optionflags):
+                        outcome = SUCCESS
+
+            # Report the outcome.
+            if outcome is SUCCESS:
+                if not quiet:
+                    self.report_success(out, test, example, got)
+            elif outcome is FAILURE:
+                if not quiet:
+                    self.report_failure(out, test, example, got)
+                failures += 1
+            elif outcome is BOOM:
+                if not quiet:
+                    self.report_unexpected_exception(out, test, example,
+                                                     exc_info)
+                failures += 1
+            else:
+                assert False, ("unknown outcome", outcome)
+
+        # Restore the option flags (in case they were modified)
+        self.optionflags = original_optionflags
+
+        # Record and return the number of failures and tries.
+        self.__record_outcome(test, failures, tries)
+        return failures, tries
+
+    def __record_outcome(self, test, f, t):
+        """
+        Record the fact that the given DocTest (`test`) generated `f`
+        failures out of `t` tried examples.
+        """
+        f2, t2 = self._name2ft.get(test.name, (0,0))
+        self._name2ft[test.name] = (f+f2, t+t2)
+        self.failures += f
+        self.tries += t
+
+    __LINECACHE_FILENAME_RE = re.compile(r'<doctest '
+                                         r'(?P<name>[\w\.]+)'
+                                         r'\[(?P<examplenum>\d+)\]>$')
+    def __patched_linecache_getlines(self, filename, module_globals=None):
+        m = self.__LINECACHE_FILENAME_RE.match(filename)
+        if m and m.group('name') == self.test.name:
+            example = self.test.examples[int(m.group('examplenum'))]
+            return example.source.splitlines(True)
+        else:
+            if sys.version_info < (2, 5, 0):
+                return self.save_linecache_getlines(filename)
+            else:
+                return self.save_linecache_getlines(filename, module_globals)
+
+    def run(self, test, compileflags=None, out=None, clear_globs=True):
+        """
+        Run the examples in `test`, and display the results using the
+        writer function `out`.
+
+        The examples are run in the namespace `test.globs`.  If
+        `clear_globs` is true (the default), then this namespace will
+        be cleared after the test runs, to help with garbage
+        collection.  If you would like to examine the namespace after
+        the test completes, then use `clear_globs=False`.
+
+        `compileflags` gives the set of flags that should be used by
+        the Python compiler when running the examples.  If not
+        specified, then it will default to the set of future-import
+        flags that apply to `globs`.
+
+        The output of each example is checked using
+        `DocTestRunner.check_output`, and the results are formatted by
+        the `DocTestRunner.report_*` methods.
+        """
+        self.test = test
+
+        if compileflags is None:
+            compileflags = _extract_future_flags(test.globs)
+
+        save_stdout = sys.stdout
+        if out is None:
+            out = save_stdout.write
+        sys.stdout = self._fakeout
+
+        # Patch pdb.set_trace to restore sys.stdout during interactive
+        # debugging (so it's not still redirected to self._fakeout).
+        # Note that the interactive output will go to *our*
+        # save_stdout, even if that's not the real sys.stdout; this
+        # allows us to write test cases for the set_trace behavior.
+        save_set_trace = pdb.set_trace
+        self.debugger = _OutputRedirectingPdb(save_stdout)
+        self.debugger.reset()
+        pdb.set_trace = self.debugger.set_trace
+
+        # Patch linecache.getlines, so we can see the example's source
+        # when we're inside the debugger.
+        self.save_linecache_getlines = linecache.getlines
+        linecache.getlines = self.__patched_linecache_getlines
+
+        try:
+            return self.__run(test, compileflags, out)
+        finally:
+            sys.stdout = save_stdout
+            pdb.set_trace = save_set_trace
+            linecache.getlines = self.save_linecache_getlines
+            if clear_globs:
+                test.globs.clear()
+
+    #/////////////////////////////////////////////////////////////////
+    # Summarization
+    #/////////////////////////////////////////////////////////////////
+    def summarize(self, verbose=None):
+        """
+        Print a summary of all the test cases that have been run by
+        this DocTestRunner, and return a tuple `(f, t)`, where `f` is
+        the total number of failed examples, and `t` is the total
+        number of tried examples.
+
+        The optional `verbose` argument controls how detailed the
+        summary is.  If the verbosity is not specified, then the
+        DocTestRunner's verbosity is used.
+        """
+        if verbose is None:
+            verbose = self._verbose
+        notests = []
+        passed = []
+        failed = []
+        totalt = totalf = 0
+        for x in self._name2ft.items():
+            name, (f, t) = x
+            assert f <= t
+            totalt += t
+            totalf += f
+            if t == 0:
+                notests.append(name)
+            elif f == 0:
+                passed.append( (name, t) )
+            else:
+                failed.append(x)
+        if verbose:
+            if notests:
+                print len(notests), "items had no tests:"
+                notests.sort()
+                for thing in notests:
+                    print "   ", thing
+            if passed:
+                print len(passed), "items passed all tests:"
+                passed.sort()
+                for thing, count in passed:
+                    print " %3d tests in %s" % (count, thing)
+        if failed:
+            print self.DIVIDER
+            print len(failed), "items had failures:"
+            failed.sort()
+            for thing, (f, t) in failed:
+                print " %3d of %3d in %s" % (f, t, thing)
+        if verbose:
+            print totalt, "tests in", len(self._name2ft), "items."
+            print totalt - totalf, "passed and", totalf, "failed."
+        if totalf:
+            print "***Test Failed***", totalf, "failures."
+        elif verbose:
+            print "Test passed."
+        return totalf, totalt
+
+    #/////////////////////////////////////////////////////////////////
+    # Backward compatibility cruft to maintain doctest.master.
+    #/////////////////////////////////////////////////////////////////
+    def merge(self, other):
+        d = self._name2ft
+        for name, (f, t) in other._name2ft.items():
+            if name in d:
+                print "*** DocTestRunner.merge: '" + name + "' in both" \
+                    " testers; summing outcomes."
+                f2, t2 = d[name]
+                f = f + f2
+                t = t + t2
+            d[name] = f, t
+
+class OutputChecker:
+    """
+    A class used to check the whether the actual output from a doctest
+    example matches the expected output.  `OutputChecker` defines two
+    methods: `check_output`, which compares a given pair of outputs,
+    and returns true if they match; and `output_difference`, which
+    returns a string describing the differences between two outputs.
+    """
+    def check_output(self, want, got, optionflags):
+        """
+        Return True iff the actual output from an example (`got`)
+        matches the expected output (`want`).  These strings are
+        always considered to match if they are identical; but
+        depending on what option flags the test runner is using,
+        several non-exact match types are also possible.  See the
+        documentation for `TestRunner` for more information about
+        option flags.
+        """
+        # Handle the common case first, for efficiency:
+        # if they're string-identical, always return true.
+        if got == want:
+            return True
+
+        # The values True and False replaced 1 and 0 as the return
+        # value for boolean comparisons in Python 2.3.
+        if not (optionflags & DONT_ACCEPT_TRUE_FOR_1):
+            if (got,want) == ("True\n", "1\n"):
+                return True
+            if (got,want) == ("False\n", "0\n"):
+                return True
+
+        # <BLANKLINE> can be used as a special sequence to signify a
+        # blank line, unless the DONT_ACCEPT_BLANKLINE flag is used.
+        if not (optionflags & DONT_ACCEPT_BLANKLINE):
+            # Replace <BLANKLINE> in want with a blank line.
+            want = re.sub('(?m)^%s\s*?$' % re.escape(BLANKLINE_MARKER),
+                          '', want)
+            # If a line in got contains only spaces, then remove the
+            # spaces.
+            got = re.sub('(?m)^\s*?$', '', got)
+            if got == want:
+                return True
+
+        # This flag causes doctest to ignore any differences in the
+        # contents of whitespace strings.  Note that this can be used
+        # in conjunction with the ELLIPSIS flag.
+        if optionflags & NORMALIZE_WHITESPACE:
+            got = ' '.join(got.split())
+            want = ' '.join(want.split())
+            if got == want:
+                return True
+
+        # The ELLIPSIS flag says to let the sequence "..." in `want`
+        # match any substring in `got`.
+        if optionflags & ELLIPSIS:
+            if _ellipsis_match(want, got):
+                return True
+
+        # We didn't find any match; return false.
+        return False
+
+    # Should we do a fancy diff?
+    def _do_a_fancy_diff(self, want, got, optionflags):
+        # Not unless they asked for a fancy diff.
+        if not optionflags & (REPORT_UDIFF |
+                              REPORT_CDIFF |
+                              REPORT_NDIFF):
+            return False
+
+        # If expected output uses ellipsis, a meaningful fancy diff is
+        # too hard ... or maybe not.  In two real-life failures Tim saw,
+        # a diff was a major help anyway, so this is commented out.
+        # [todo] _ellipsis_match() knows which pieces do and don't match,
+        # and could be the basis for a kick-ass diff in this case.
+        ##if optionflags & ELLIPSIS and ELLIPSIS_MARKER in want:
+        ##    return False
+
+        # ndiff does intraline difference marking, so can be useful even
+        # for 1-line differences.
+        if optionflags & REPORT_NDIFF:
+            return True
+
+        # The other diff types need at least a few lines to be helpful.
+        return want.count('\n') > 2 and got.count('\n') > 2
+
+    def output_difference(self, example, got, optionflags):
+        """
+        Return a string describing the differences between the
+        expected output for a given example (`example`) and the actual
+        output (`got`).  `optionflags` is the set of option flags used
+        to compare `want` and `got`.
+        """
+        want = example.want
+        # If <BLANKLINE>s are being used, then replace blank lines
+        # with <BLANKLINE> in the actual output string.
+        if not (optionflags & DONT_ACCEPT_BLANKLINE):
+            got = re.sub('(?m)^[ ]*(?=\n)', BLANKLINE_MARKER, got)
+
+        # Check if we should use diff.
+        if self._do_a_fancy_diff(want, got, optionflags):
+            # Split want & got into lines.
+            want_lines = want.splitlines(True)  # True == keep line ends
+            got_lines = got.splitlines(True)
+            # Use difflib to find their differences.
+            if optionflags & REPORT_UDIFF:
+                diff = difflib.unified_diff(want_lines, got_lines, n=2)
+                diff = list(diff)[2:] # strip the diff header
+                kind = 'unified diff with -expected +actual'
+            elif optionflags & REPORT_CDIFF:
+                diff = difflib.context_diff(want_lines, got_lines, n=2)
+                diff = list(diff)[2:] # strip the diff header
+                kind = 'context diff with expected followed by actual'
+            elif optionflags & REPORT_NDIFF:
+                engine = difflib.Differ(charjunk=difflib.IS_CHARACTER_JUNK)
+                diff = list(engine.compare(want_lines, got_lines))
+                kind = 'ndiff with -expected +actual'
+            else:
+                assert 0, 'Bad diff option'
+            # Remove trailing whitespace on diff output.
+            diff = [line.rstrip() + '\n' for line in diff]
+            return 'Differences (%s):\n' % kind + _indent(''.join(diff))
+
+        # If we're not using diff, then simply list the expected
+        # output followed by the actual output.
+        if want and got:
+            return 'Expected:\n%sGot:\n%s' % (_indent(want), _indent(got))
+        elif want:
+            return 'Expected:\n%sGot nothing\n' % _indent(want)
+        elif got:
+            return 'Expected nothing\nGot:\n%s' % _indent(got)
+        else:
+            return 'Expected nothing\nGot nothing\n'
+
+class DocTestFailure(Exception):
+    """A DocTest example has failed in debugging mode.
+
+    The exception instance has variables:
+
+    - test: the DocTest object being run
+
+    - excample: the Example object that failed
+
+    - got: the actual output
+    """
+    def __init__(self, test, example, got):
+        self.test = test
+        self.example = example
+        self.got = got
+
+    def __str__(self):
+        return str(self.test)
+
+class UnexpectedException(Exception):
+    """A DocTest example has encountered an unexpected exception
+
+    The exception instance has variables:
+
+    - test: the DocTest object being run
+
+    - excample: the Example object that failed
+
+    - exc_info: the exception info
+    """
+    def __init__(self, test, example, exc_info):
+        self.test = test
+        self.example = example
+        self.exc_info = exc_info
+
+    def __str__(self):
+        return str(self.test)
+
+class DebugRunner(DocTestRunner):
+    r"""Run doc tests but raise an exception as soon as there is a failure.
+
+       If an unexpected exception occurs, an UnexpectedException is raised.
+       It contains the test, the example, and the original exception:
+
+         >>> runner = DebugRunner(verbose=False)
+         >>> test = DocTestParser().get_doctest('>>> raise KeyError\n42',
+         ...                                    {}, 'foo', 'foo.py', 0)
+         >>> try:
+         ...     runner.run(test)
+         ... except UnexpectedException, failure:
+         ...     pass
+
+         >>> failure.test is test
+         True
+
+         >>> failure.example.want
+         '42\n'
+
+         >>> exc_info = failure.exc_info
+         >>> raise exc_info[0], exc_info[1], exc_info[2]
+         Traceback (most recent call last):
+         ...
+         KeyError
+
+       We wrap the original exception to give the calling application
+       access to the test and example information.
+
+       If the output doesn't match, then a DocTestFailure is raised:
+
+         >>> test = DocTestParser().get_doctest('''
+         ...      >>> x = 1
+         ...      >>> x
+         ...      2
+         ...      ''', {}, 'foo', 'foo.py', 0)
+
+         >>> try:
+         ...    runner.run(test)
+         ... except DocTestFailure, failure:
+         ...    pass
+
+       DocTestFailure objects provide access to the test:
+
+         >>> failure.test is test
+         True
+
+       As well as to the example:
+
+         >>> failure.example.want
+         '2\n'
+
+       and the actual output:
+
+         >>> failure.got
+         '1\n'
+
+       If a failure or error occurs, the globals are left intact:
+
+         >>> del test.globs['__builtins__']
+         >>> test.globs
+         {'x': 1}
+
+         >>> test = DocTestParser().get_doctest('''
+         ...      >>> x = 2
+         ...      >>> raise KeyError
+         ...      ''', {}, 'foo', 'foo.py', 0)
+
+         >>> runner.run(test)
+         Traceback (most recent call last):
+         ...
+         UnexpectedException: <DocTest foo from foo.py:0 (2 examples)>
+
+         >>> del test.globs['__builtins__']
+         >>> test.globs
+         {'x': 2}
+
+       But the globals are cleared if there is no error:
+
+         >>> test = DocTestParser().get_doctest('''
+         ...      >>> x = 2
+         ...      ''', {}, 'foo', 'foo.py', 0)
+
+         >>> runner.run(test)
+         (0, 1)
+
+         >>> test.globs
+         {}
+
+       """
+
+    def run(self, test, compileflags=None, out=None, clear_globs=True):
+        r = DocTestRunner.run(self, test, compileflags, out, False)
+        if clear_globs:
+            test.globs.clear()
+        return r
+
+    def report_unexpected_exception(self, out, test, example, exc_info):
+        raise UnexpectedException(test, example, exc_info)
+
+    def report_failure(self, out, test, example, got):
+        raise DocTestFailure(test, example, got)
+
+######################################################################
+## 6. Test Functions
+######################################################################
+# These should be backwards compatible.
+
+# For backward compatibility, a global instance of a DocTestRunner
+# class, updated by testmod.
+master = None
+
+def testmod(m=None, name=None, globs=None, verbose=None, isprivate=None,
+            report=True, optionflags=0, extraglobs=None,
+            raise_on_error=False, exclude_empty=False):
+    """m=None, name=None, globs=None, verbose=None, isprivate=None,
+       report=True, optionflags=0, extraglobs=None, raise_on_error=False,
+       exclude_empty=False
+
+    Test examples in docstrings in functions and classes reachable
+    from module m (or the current module if m is not supplied), starting
+    with m.__doc__.  Unless isprivate is specified, private names
+    are not skipped.
+
+    Also test examples reachable from dict m.__test__ if it exists and is
+    not None.  m.__test__ maps names to functions, classes and strings;
+    function and class docstrings are tested even if the name is private;
+    strings are tested directly, as if they were docstrings.
+
+    Return (#failures, #tests).
+
+    See doctest.__doc__ for an overview.
+
+    Optional keyword arg "name" gives the name of the module; by default
+    use m.__name__.
+
+    Optional keyword arg "globs" gives a dict to be used as the globals
+    when executing examples; by default, use m.__dict__.  A copy of this
+    dict is actually used for each docstring, so that each docstring's
+    examples start with a clean slate.
+
+    Optional keyword arg "extraglobs" gives a dictionary that should be
+    merged into the globals that are used to execute examples.  By
+    default, no extra globals are used.  This is new in 2.4.
+
+    Optional keyword arg "verbose" prints lots of stuff if true, prints
+    only failures if false; by default, it's true iff "-v" is in sys.argv.
+
+    Optional keyword arg "report" prints a summary at the end when true,
+    else prints nothing at the end.  In verbose mode, the summary is
+    detailed, else very brief (in fact, empty if all tests passed).
+
+    Optional keyword arg "optionflags" or's together module constants,
+    and defaults to 0.  This is new in 2.3.  Possible values (see the
+    docs for details):
+
+        DONT_ACCEPT_TRUE_FOR_1
+        DONT_ACCEPT_BLANKLINE
+        NORMALIZE_WHITESPACE
+        ELLIPSIS
+        IGNORE_EXCEPTION_DETAIL
+        REPORT_UDIFF
+        REPORT_CDIFF
+        REPORT_NDIFF
+        REPORT_ONLY_FIRST_FAILURE
+
+    Optional keyword arg "raise_on_error" raises an exception on the
+    first unexpected exception or failure. This allows failures to be
+    post-mortem debugged.
+
+    Deprecated in Python 2.4:
+    Optional keyword arg "isprivate" specifies a function used to
+    determine whether a name is private.  The default function is
+    treat all functions as public.  Optionally, "isprivate" can be
+    set to doctest.is_private to skip over functions marked as private
+    using the underscore naming convention; see its docs for details.
+
+    Advanced tomfoolery:  testmod runs methods of a local instance of
+    class doctest.Tester, then merges the results into (or creates)
+    global Tester instance doctest.master.  Methods of doctest.master
+    can be called directly too, if you want to do something unusual.
+    Passing report=0 to testmod is especially useful then, to delay
+    displaying a summary.  Invoke doctest.master.summarize(verbose)
+    when you're done fiddling.
+    """
+    global master
+
+    if isprivate is not None:
+        warnings.warn("the isprivate argument is deprecated; "
+                      "examine DocTestFinder.find() lists instead",
+                      DeprecationWarning)
+
+    # If no module was given, then use __main__.
+    if m is None:
+        # DWA - m will still be None if this wasn't invoked from the command
+        # line, in which case the following TypeError is about as good an error
+        # as we should expect
+        m = sys.modules.get('__main__')
+
+    # Check that we were actually given a module.
+    if not inspect.ismodule(m):
+        raise TypeError("testmod: module required; %r" % (m,))
+
+    # If no name was given, then use the module's name.
+    if name is None:
+        name = m.__name__
+
+    # Find, parse, and run all tests in the given module.
+    finder = DocTestFinder(_namefilter=isprivate, exclude_empty=exclude_empty)
+
+    if raise_on_error:
+        runner = DebugRunner(verbose=verbose, optionflags=optionflags)
+    else:
+        runner = DocTestRunner(verbose=verbose, optionflags=optionflags)
+
+    for test in finder.find(m, name, globs=globs, extraglobs=extraglobs):
+        runner.run(test)
+
+    if report:
+        runner.summarize()
+
+    if master is None:
+        master = runner
+    else:
+        master.merge(runner)
+
+    return runner.failures, runner.tries
+
+def testfile(filename, module_relative=True, name=None, package=None,
+             globs=None, verbose=None, report=True, optionflags=0,
+             extraglobs=None, raise_on_error=False, parser=DocTestParser()):
+    """
+    Test examples in the given file.  Return (#failures, #tests).
+
+    Optional keyword arg "module_relative" specifies how filenames
+    should be interpreted:
+
+      - If "module_relative" is True (the default), then "filename"
+         specifies a module-relative path.  By default, this path is
+         relative to the calling module's directory; but if the
+         "package" argument is specified, then it is relative to that
+         package.  To ensure os-independence, "filename" should use
+         "/" characters to separate path segments, and should not
+         be an absolute path (i.e., it may not begin with "/").
+
+      - If "module_relative" is False, then "filename" specifies an
+        os-specific path.  The path may be absolute or relative (to
+        the current working directory).
+
+    Optional keyword arg "name" gives the name of the test; by default
+    use the file's basename.
+
+    Optional keyword argument "package" is a Python package or the
+    name of a Python package whose directory should be used as the
+    base directory for a module relative filename.  If no package is
+    specified, then the calling module's directory is used as the base
+    directory for module relative filenames.  It is an error to
+    specify "package" if "module_relative" is False.
+
+    Optional keyword arg "globs" gives a dict to be used as the globals
+    when executing examples; by default, use {}.  A copy of this dict
+    is actually used for each docstring, so that each docstring's
+    examples start with a clean slate.
+
+    Optional keyword arg "extraglobs" gives a dictionary that should be
+    merged into the globals that are used to execute examples.  By
+    default, no extra globals are used.
+
+    Optional keyword arg "verbose" prints lots of stuff if true, prints
+    only failures if false; by default, it's true iff "-v" is in sys.argv.
+
+    Optional keyword arg "report" prints a summary at the end when true,
+    else prints nothing at the end.  In verbose mode, the summary is
+    detailed, else very brief (in fact, empty if all tests passed).
+
+    Optional keyword arg "optionflags" or's together module constants,
+    and defaults to 0.  Possible values (see the docs for details):
+
+        DONT_ACCEPT_TRUE_FOR_1
+        DONT_ACCEPT_BLANKLINE
+        NORMALIZE_WHITESPACE
+        ELLIPSIS
+        IGNORE_EXCEPTION_DETAIL
+        REPORT_UDIFF
+        REPORT_CDIFF
+        REPORT_NDIFF
+        REPORT_ONLY_FIRST_FAILURE
+
+    Optional keyword arg "raise_on_error" raises an exception on the
+    first unexpected exception or failure. This allows failures to be
+    post-mortem debugged.
+
+    Optional keyword arg "parser" specifies a DocTestParser (or
+    subclass) that should be used to extract tests from the files.
+
+    Advanced tomfoolery:  testmod runs methods of a local instance of
+    class doctest.Tester, then merges the results into (or creates)
+    global Tester instance doctest.master.  Methods of doctest.master
+    can be called directly too, if you want to do something unusual.
+    Passing report=0 to testmod is especially useful then, to delay
+    displaying a summary.  Invoke doctest.master.summarize(verbose)
+    when you're done fiddling.
+    """
+    global master
+
+    if package and not module_relative:
+        raise ValueError("Package may only be specified for module-"
+                         "relative paths.")
+
+    # Relativize the path
+    if module_relative:
+        package = _normalize_module(package)
+        filename = _module_relative_path(package, filename)
+
+    # If no name was given, then use the file's name.
+    if name is None:
+        name = os.path.basename(filename)
+
+    # Assemble the globals.
+    if globs is None:
+        globs = {}
+    else:
+        globs = globs.copy()
+    if extraglobs is not None:
+        globs.update(extraglobs)
+
+    if raise_on_error:
+        runner = DebugRunner(verbose=verbose, optionflags=optionflags)
+    else:
+        runner = DocTestRunner(verbose=verbose, optionflags=optionflags)
+
+    # Read the file, convert it to a test, and run it.
+    s = open(filename).read()
+    test = parser.get_doctest(s, globs, name, filename, 0)
+    runner.run(test)
+
+    if report:
+        runner.summarize()
+
+    if master is None:
+        master = runner
+    else:
+        master.merge(runner)
+
+    return runner.failures, runner.tries
+
+def run_docstring_examples(f, globs, verbose=False, name="NoName",
+                           compileflags=None, optionflags=0):
+    """
+    Test examples in the given object's docstring (`f`), using `globs`
+    as globals.  Optional argument `name` is used in failure messages.
+    If the optional argument `verbose` is true, then generate output
+    even if there are no failures.
+
+    `compileflags` gives the set of flags that should be used by the
+    Python compiler when running the examples.  If not specified, then
+    it will default to the set of future-import flags that apply to
+    `globs`.
+
+    Optional keyword arg `optionflags` specifies options for the
+    testing and output.  See the documentation for `testmod` for more
+    information.
+    """
+    # Find, parse, and run all tests in the given module.
+    finder = DocTestFinder(verbose=verbose, recurse=False)
+    runner = DocTestRunner(verbose=verbose, optionflags=optionflags)
+    for test in finder.find(f, name, globs=globs):
+        runner.run(test, compileflags=compileflags)
+
+######################################################################
+## 7. Tester
+######################################################################
+# This is provided only for backwards compatibility.  It's not
+# actually used in any way.
+
+class Tester:
+    def __init__(self, mod=None, globs=None, verbose=None,
+                 isprivate=None, optionflags=0):
+
+        warnings.warn("class Tester is deprecated; "
+                      "use class doctest.DocTestRunner instead",
+                      DeprecationWarning, stacklevel=2)
+        if mod is None and globs is None:
+            raise TypeError("Tester.__init__: must specify mod or globs")
+        if mod is not None and not inspect.ismodule(mod):
+            raise TypeError("Tester.__init__: mod must be a module; %r" %
+                            (mod,))
+        if globs is None:
+            globs = mod.__dict__
+        self.globs = globs
+
+        self.verbose = verbose
+        self.isprivate = isprivate
+        self.optionflags = optionflags
+        self.testfinder = DocTestFinder(_namefilter=isprivate)
+        self.testrunner = DocTestRunner(verbose=verbose,
+                                        optionflags=optionflags)
+
+    def runstring(self, s, name):
+        test = DocTestParser().get_doctest(s, self.globs, name, None, None)
+        if self.verbose:
+            print "Running string", name
+        (f,t) = self.testrunner.run(test)
+        if self.verbose:
+            print f, "of", t, "examples failed in string", name
+        return (f,t)
+
+    def rundoc(self, object, name=None, module=None):
+        f = t = 0
+        tests = self.testfinder.find(object, name, module=module,
+                                     globs=self.globs)
+        for test in tests:
+            (f2, t2) = self.testrunner.run(test)
+            (f,t) = (f+f2, t+t2)
+        return (f,t)
+
+    def rundict(self, d, name, module=None):
+        import new
+        m = new.module(name)
+        m.__dict__.update(d)
+        if module is None:
+            module = False
+        return self.rundoc(m, name, module)
+
+    def run__test__(self, d, name):
+        import new
+        m = new.module(name)
+        m.__test__ = d
+        return self.rundoc(m, name)
+
+    def summarize(self, verbose=None):
+        return self.testrunner.summarize(verbose)
+
+    def merge(self, other):
+        self.testrunner.merge(other.testrunner)
+
+######################################################################
+## 8. Unittest Support
+######################################################################
+
+_unittest_reportflags = 0
+
+def set_unittest_reportflags(flags):
+    """Sets the unittest option flags.
+
+    The old flag is returned so that a runner could restore the old
+    value if it wished to:
+
+      >>> old = _unittest_reportflags
+      >>> set_unittest_reportflags(REPORT_NDIFF |
+      ...                          REPORT_ONLY_FIRST_FAILURE) == old
+      True
+
+      >>> import doctest
+      >>> doctest._unittest_reportflags == (REPORT_NDIFF |
+      ...                                   REPORT_ONLY_FIRST_FAILURE)
+      True
+
+    Only reporting flags can be set:
+
+      >>> set_unittest_reportflags(ELLIPSIS)
+      Traceback (most recent call last):
+      ...
+      ValueError: ('Only reporting flags allowed', 8)
+
+      >>> set_unittest_reportflags(old) == (REPORT_NDIFF |
+      ...                                   REPORT_ONLY_FIRST_FAILURE)
+      True
+    """
+    global _unittest_reportflags
+
+    if (flags & REPORTING_FLAGS) != flags:
+        raise ValueError("Only reporting flags allowed", flags)
+    old = _unittest_reportflags
+    _unittest_reportflags = flags
+    return old
+
+
+class DocTestCase(unittest.TestCase):
+
+    def __init__(self, test, optionflags=0, setUp=None, tearDown=None,
+                 checker=None, runner=DocTestRunner):
+
+        unittest.TestCase.__init__(self)
+        self._dt_optionflags = optionflags
+        self._dt_checker = checker
+        self._dt_test = test
+        self._dt_setUp = setUp
+        self._dt_tearDown = tearDown
+        self._dt_runner = runner
+
+    def setUp(self):
+        test = self._dt_test
+
+        if self._dt_setUp is not None:
+            self._dt_setUp(test)
+
+    def tearDown(self):
+        test = self._dt_test
+
+        if self._dt_tearDown is not None:
+            self._dt_tearDown(test)
+
+        test.globs.clear()
+
+    def runTest(self):
+        test = self._dt_test
+        old = sys.stdout
+        new = StringIO()
+        optionflags = self._dt_optionflags
+
+        if not (optionflags & REPORTING_FLAGS):
+            # The option flags don't include any reporting flags,
+            # so add the default reporting flags
+            optionflags |= _unittest_reportflags
+
+        runner = self._dt_runner(optionflags=optionflags,
+                                 checker=self._dt_checker, verbose=False)
+
+        try:
+            runner.DIVIDER = "-"*70
+            failures, tries = runner.run(
+                test, out=new.write, clear_globs=False)
+        finally:
+            sys.stdout = old
+
+        if failures:
+            raise self.failureException(self.format_failure(new.getvalue()))
+
+    def format_failure(self, err):
+        test = self._dt_test
+        if test.lineno is None:
+            lineno = 'unknown line number'
+        else:
+            lineno = '%s' % test.lineno
+        lname = '.'.join(test.name.split('.')[-1:])
+        return ('Failed doctest test for %s\n'
+                '  File "%s", line %s, in %s\n\n%s'
+                % (test.name, test.filename, lineno, lname, err)
+                )
+
+    def debug(self):
+        r"""Run the test case without results and without catching exceptions
+
+           The unit test framework includes a debug method on test cases
+           and test suites to support post-mortem debugging.  The test code
+           is run in such a way that errors are not caught.  This way a
+           caller can catch the errors and initiate post-mortem debugging.
+
+           The DocTestCase provides a debug method that raises
+           UnexpectedException errors if there is an unexepcted
+           exception:
+
+             >>> test = DocTestParser().get_doctest('>>> raise KeyError\n42',
+             ...                {}, 'foo', 'foo.py', 0)
+             >>> case = DocTestCase(test)
+             >>> try:
+             ...     case.debug()
+             ... except UnexpectedException, failure:
+             ...     pass
+
+           The UnexpectedException contains the test, the example, and
+           the original exception:
+
+             >>> failure.test is test
+             True
+
+             >>> failure.example.want
+             '42\n'
+
+             >>> exc_info = failure.exc_info
+             >>> raise exc_info[0], exc_info[1], exc_info[2]
+             Traceback (most recent call last):
+             ...
+             KeyError
+
+           If the output doesn't match, then a DocTestFailure is raised:
+
+             >>> test = DocTestParser().get_doctest('''
+             ...      >>> x = 1
+             ...      >>> x
+             ...      2
+             ...      ''', {}, 'foo', 'foo.py', 0)
+             >>> case = DocTestCase(test)
+
+             >>> try:
+             ...    case.debug()
+             ... except DocTestFailure, failure:
+             ...    pass
+
+           DocTestFailure objects provide access to the test:
+
+             >>> failure.test is test
+             True
+
+           As well as to the example:
+
+             >>> failure.example.want
+             '2\n'
+
+           and the actual output:
+
+             >>> failure.got
+             '1\n'
+
+           """
+
+        self.setUp()
+        runner = DebugRunner(optionflags=self._dt_optionflags,
+                             checker=self._dt_checker, verbose=False)
+        runner.run(self._dt_test)
+        self.tearDown()
+
+    def id(self):
+        return self._dt_test.name
+
+    def __repr__(self):
+        name = self._dt_test.name.split('.')
+        return "%s (%s)" % (name[-1], '.'.join(name[:-1]))
+
+    __str__ = __repr__
+
+    def shortDescription(self):
+        return "Doctest: " + self._dt_test.name
+
+def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None,
+                 test_class=DocTestCase, **options):
+    """
+    Convert doctest tests for a module to a unittest test suite.
+
+    This converts each documentation string in a module that
+    contains doctest tests to a unittest test case.  If any of the
+    tests in a doc string fail, then the test case fails.  An exception
+    is raised showing the name of the file containing the test and a
+    (sometimes approximate) line number.
+
+    The `module` argument provides the module to be tested.  The argument
+    can be either a module or a module name.
+
+    If no argument is given, the calling module is used.
+
+    A number of options may be provided as keyword arguments:
+
+    setUp
+      A set-up function.  This is called before running the
+      tests in each file. The setUp function will be passed a DocTest
+      object.  The setUp function can access the test globals as the
+      globs attribute of the test passed.
+
+    tearDown
+      A tear-down function.  This is called after running the
+      tests in each file.  The tearDown function will be passed a DocTest
+      object.  The tearDown function can access the test globals as the
+      globs attribute of the test passed.
+
+    globs
+      A dictionary containing initial global variables for the tests.
+
+    optionflags
+       A set of doctest option flags expressed as an integer.
+    """
+
+    if test_finder is None:
+        test_finder = DocTestFinder()
+
+    module = _normalize_module(module)
+    tests = test_finder.find(module, globs=globs, extraglobs=extraglobs)
+    if globs is None:
+        globs = module.__dict__
+    if not tests:
+        # Why do we want to do this? Because it reveals a bug that might
+        # otherwise be hidden.
+        raise ValueError(module, "has no tests")
+
+    tests.sort()
+    suite = unittest.TestSuite()
+    for test in tests:
+        if len(test.examples) == 0:
+            continue
+        if not test.filename:
+            filename = module.__file__
+            if filename[-4:] in (".pyc", ".pyo"):
+                filename = filename[:-1]
+            test.filename = filename
+        suite.addTest(test_class(test, **options))
+
+    return suite
+
+class DocFileCase(DocTestCase):
+
+    def id(self):
+        return '_'.join(self._dt_test.name.split('.'))
+
+    def __repr__(self):
+        return self._dt_test.filename
+    __str__ = __repr__
+
+    def format_failure(self, err):
+        return ('Failed doctest test for %s\n  File "%s", line 0\n\n%s'
+                % (self._dt_test.name, self._dt_test.filename, err)
+                )
+
+def DocFileTest(path, module_relative=True, package=None,
+                globs=None, parser=DocTestParser(), **options):
+    if globs is None:
+        globs = {}
+
+    if package and not module_relative:
+        raise ValueError("Package may only be specified for module-"
+                         "relative paths.")
+
+    # Relativize the path.
+    if module_relative:
+        package = _normalize_module(package)
+        path = _module_relative_path(package, path)
+
+    # Find the file and read it.
+    name = os.path.basename(path)
+    doc = open(path).read()
+
+    # Convert it to a test, and wrap it in a DocFileCase.
+    test = parser.get_doctest(doc, globs, name, path, 0)
+    return DocFileCase(test, **options)
+
+def DocFileSuite(*paths, **kw):
+    """A unittest suite for one or more doctest files.
+
+    The path to each doctest file is given as a string; the
+    interpretation of that string depends on the keyword argument
+    "module_relative".
+
+    A number of options may be provided as keyword arguments:
+
+    module_relative
+      If "module_relative" is True, then the given file paths are
+      interpreted as os-independent module-relative paths.  By
+      default, these paths are relative to the calling module's
+      directory; but if the "package" argument is specified, then
+      they are relative to that package.  To ensure os-independence,
+      "filename" should use "/" characters to separate path
+      segments, and may not be an absolute path (i.e., it may not
+      begin with "/").
+
+      If "module_relative" is False, then the given file paths are
+      interpreted as os-specific paths.  These paths may be absolute
+      or relative (to the current working directory).
+
+    package
+      A Python package or the name of a Python package whose directory
+      should be used as the base directory for module relative paths.
+      If "package" is not specified, then the calling module's
+      directory is used as the base directory for module relative
+      filenames.  It is an error to specify "package" if
+      "module_relative" is False.
+
+    setUp
+      A set-up function.  This is called before running the
+      tests in each file. The setUp function will be passed a DocTest
+      object.  The setUp function can access the test globals as the
+      globs attribute of the test passed.
+
+    tearDown
+      A tear-down function.  This is called after running the
+      tests in each file.  The tearDown function will be passed a DocTest
+      object.  The tearDown function can access the test globals as the
+      globs attribute of the test passed.
+
+    globs
+      A dictionary containing initial global variables for the tests.
+
+    optionflags
+      A set of doctest option flags expressed as an integer.
+
+    parser
+      A DocTestParser (or subclass) that should be used to extract
+      tests from the files.
+    """
+    suite = unittest.TestSuite()
+
+    # We do this here so that _normalize_module is called at the right
+    # level.  If it were called in DocFileTest, then this function
+    # would be the caller and we might guess the package incorrectly.
+    if kw.get('module_relative', True):
+        kw['package'] = _normalize_module(kw.get('package'))
+
+    for path in paths:
+        suite.addTest(DocFileTest(path, **kw))
+
+    return suite
+
+######################################################################
+## 9. Debugging Support
+######################################################################
+
+def script_from_examples(s):
+    r"""Extract script from text with examples.
+
+       Converts text with examples to a Python script.  Example input is
+       converted to regular code.  Example output and all other words
+       are converted to comments:
+
+       >>> text = '''
+       ...       Here are examples of simple math.
+       ...
+       ...           Python has super accurate integer addition
+       ...
+       ...           >>> 2 + 2
+       ...           5
+       ...
+       ...           And very friendly error messages:
+       ...
+       ...           >>> 1/0
+       ...           To Infinity
+       ...           And
+       ...           Beyond
+       ...
+       ...           You can use logic if you want:
+       ...
+       ...           >>> if 0:
+       ...           ...    blah
+       ...           ...    blah
+       ...           ...
+       ...
+       ...           Ho hum
+       ...           '''
+
+       >>> print script_from_examples(text)
+       # Here are examples of simple math.
+       #
+       #     Python has super accurate integer addition
+       #
+       2 + 2
+       # Expected:
+       ## 5
+       #
+       #     And very friendly error messages:
+       #
+       1/0
+       # Expected:
+       ## To Infinity
+       ## And
+       ## Beyond
+       #
+       #     You can use logic if you want:
+       #
+       if 0:
+          blah
+          blah
+       #
+       #     Ho hum
+       """
+    output = []
+    for piece in DocTestParser().parse(s):
+        if isinstance(piece, Example):
+            # Add the example's source code (strip trailing NL)
+            output.append(piece.source[:-1])
+            # Add the expected output:
+            want = piece.want
+            if want:
+                output.append('# Expected:')
+                output += ['## '+l for l in want.split('\n')[:-1]]
+        else:
+            # Add non-example text.
+            output += [_comment_line(l)
+                       for l in piece.split('\n')[:-1]]
+
+    # Trim junk on both ends.
+    while output and output[-1] == '#':
+        output.pop()
+    while output and output[0] == '#':
+        output.pop(0)
+    # Combine the output, and return it.
+    return '\n'.join(output)
+
+def testsource(module, name):
+    """Extract the test sources from a doctest docstring as a script.
+
+    Provide the module (or dotted name of the module) containing the
+    test to be debugged and the name (within the module) of the object
+    with the doc string with tests to be debugged.
+    """
+    module = _normalize_module(module)
+    tests = DocTestFinder().find(module)
+    test = [t for t in tests if t.name == name]
+    if not test:
+        raise ValueError(name, "not found in tests")
+    test = test[0]
+    testsrc = script_from_examples(test.docstring)
+    return testsrc
+
+def debug_src(src, pm=False, globs=None):
+    """Debug a single doctest docstring, in argument `src`'"""
+    testsrc = script_from_examples(src)
+    debug_script(testsrc, pm, globs)
+
+def debug_script(src, pm=False, globs=None):
+    "Debug a test script.  `src` is the script, as a string."
+    import pdb
+
+    # Note that tempfile.NameTemporaryFile() cannot be used.  As the
+    # docs say, a file so created cannot be opened by name a second time
+    # on modern Windows boxes, and execfile() needs to open it.
+    srcfilename = tempfile.mktemp(".py", "doctestdebug")
+    f = open(srcfilename, 'w')
+    f.write(src)
+    f.close()
+
+    try:
+        if globs:
+            globs = globs.copy()
+        else:
+            globs = {}
+
+        if pm:
+            try:
+                execfile(srcfilename, globs, globs)
+            except:
+                print sys.exc_info()[1]
+                pdb.post_mortem(sys.exc_info()[2])
+        else:
+            # Note that %r is vital here.  '%s' instead can, e.g., cause
+            # backslashes to get treated as metacharacters on Windows.
+            pdb.run("execfile(%r)" % srcfilename, globs, globs)
+
+    finally:
+        os.remove(srcfilename)
+
+def debug(module, name, pm=False):
+    """Debug a single doctest docstring.
+
+    Provide the module (or dotted name of the module) containing the
+    test to be debugged and the name (within the module) of the object
+    with the docstring with tests to be debugged.
+    """
+    module = _normalize_module(module)
+    testsrc = testsource(module, name)
+    debug_script(testsrc, pm, module.__dict__)
+
+######################################################################
+## 10. Example Usage
+######################################################################
+class _TestClass:
+    """
+    A pointless class, for sanity-checking of docstring testing.
+
+    Methods:
+        square()
+        get()
+
+    >>> _TestClass(13).get() + _TestClass(-12).get()
+    1
+    >>> hex(_TestClass(13).square().get())
+    '0xa9'
+    """
+
+    def __init__(self, val):
+        """val -> _TestClass object with associated value val.
+
+        >>> t = _TestClass(123)
+        >>> print t.get()
+        123
+        """
+
+        self.val = val
+
+    def square(self):
+        """square() -> square TestClass's associated value
+
+        >>> _TestClass(13).square().get()
+        169
+        """
+
+        self.val = self.val ** 2
+        return self
+
+    def get(self):
+        """get() -> return TestClass's associated value.
+
+        >>> x = _TestClass(-42)
+        >>> print x.get()
+        -42
+        """
+
+        return self.val
+
+__test__ = {"_TestClass": _TestClass,
+            "string": r"""
+                      Example of a string object, searched as-is.
+                      >>> x = 1; y = 2
+                      >>> x + y, x * y
+                      (3, 2)
+                      """,
+
+            "bool-int equivalence": r"""
+                                    In 2.2, boolean expressions displayed
+                                    0 or 1.  By default, we still accept
+                                    them.  This can be disabled by passing
+                                    DONT_ACCEPT_TRUE_FOR_1 to the new
+                                    optionflags argument.
+                                    >>> 4 == 4
+                                    1
+                                    >>> 4 == 4
+                                    True
+                                    >>> 4 > 4
+                                    0
+                                    >>> 4 > 4
+                                    False
+                                    """,
+
+            "blank lines": r"""
+                Blank lines can be marked with <BLANKLINE>:
+                    >>> print 'foo\n\nbar\n'
+                    foo
+                    <BLANKLINE>
+                    bar
+                    <BLANKLINE>
+            """,
+
+            "ellipsis": r"""
+                If the ellipsis flag is used, then '...' can be used to
+                elide substrings in the desired output:
+                    >>> print range(1000) #doctest: +ELLIPSIS
+                    [0, 1, 2, ..., 999]
+            """,
+
+            "whitespace normalization": r"""
+                If the whitespace normalization flag is used, then
+                differences in whitespace are ignored.
+                    >>> print range(30) #doctest: +NORMALIZE_WHITESPACE
+                    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+                     15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+                     27, 28, 29]
+            """,
+           }
+
+def _test():
+    r = unittest.TextTestRunner()
+    r.run(DocTestSuite())
+
+if __name__ == "__main__":
+    _test()
diff --git a/webapp/django/test/client.py b/webapp/django/test/client.py
new file mode 100644
index 0000000..4d57f2d
--- /dev/null
+++ b/webapp/django/test/client.py
@@ -0,0 +1,335 @@
+import urllib
+import sys
+import os
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+
+from django.conf import settings
+from django.contrib.auth import authenticate, login
+from django.core.handlers.base import BaseHandler
+from django.core.handlers.wsgi import WSGIRequest
+from django.core.signals import got_request_exception
+from django.http import SimpleCookie, HttpRequest
+from django.template import TemplateDoesNotExist
+from django.test import signals
+from django.utils.functional import curry
+from django.utils.encoding import smart_str
+from django.utils.http import urlencode
+from django.utils.itercompat import is_iterable
+
+BOUNDARY = 'BoUnDaRyStRiNg'
+MULTIPART_CONTENT = 'multipart/form-data; boundary=%s' % BOUNDARY
+
+
+class FakePayload(object):
+    """
+    A wrapper around StringIO that restricts what can be read since data from
+    the network can't be seeked and cannot be read outside of its content
+    length. This makes sure that views can't do anything under the test client
+    that wouldn't work in Real Life.
+    """
+    def __init__(self, content):
+        self.__content = StringIO(content)
+        self.__len = len(content)
+
+    def read(self, num_bytes=None):
+        if num_bytes is None:
+            num_bytes = self.__len or 1
+        assert self.__len >= num_bytes, "Cannot read more than the available bytes from the HTTP incoming data."
+        content = self.__content.read(num_bytes)
+        self.__len -= num_bytes
+        return content
+
+
+class ClientHandler(BaseHandler):
+    """
+    A HTTP Handler that can be used for testing purposes.
+    Uses the WSGI interface to compose requests, but returns
+    the raw HttpResponse object
+    """
+    def __call__(self, environ):
+        from django.conf import settings
+        from django.core import signals
+
+        # Set up middleware if needed. We couldn't do this earlier, because
+        # settings weren't available.
+        if self._request_middleware is None:
+            self.load_middleware()
+
+        signals.request_started.send(sender=self.__class__)
+        try:
+            request = WSGIRequest(environ)
+            response = self.get_response(request)
+
+            # Apply response middleware.
+            for middleware_method in self._response_middleware:
+                response = middleware_method(request, response)
+            response = self.apply_response_fixes(request, response)
+        finally:
+            signals.request_finished.send(sender=self.__class__)
+
+        return response
+
+def store_rendered_templates(store, signal, sender, template, context, **kwargs):
+    """
+    Stores templates and contexts that are rendered.
+    """
+    store.setdefault('template',[]).append(template)
+    store.setdefault('context',[]).append(context)
+
+def encode_multipart(boundary, data):
+    """
+    Encodes multipart POST data from a dictionary of form values.
+
+    The key will be used as the form data name; the value will be transmitted
+    as content. If the value is a file, the contents of the file will be sent
+    as an application/octet-stream; otherwise, str(value) will be sent.
+    """
+    lines = []
+    to_str = lambda s: smart_str(s, settings.DEFAULT_CHARSET)
+
+    # Not by any means perfect, but good enough for our purposes.
+    is_file = lambda thing: hasattr(thing, "read") and callable(thing.read)
+
+    # Each bit of the multipart form data could be either a form value or a
+    # file, or a *list* of form values and/or files. Remember that HTTP field
+    # names can be duplicated!
+    for (key, value) in data.items():
+        if is_file(value):
+            lines.extend(encode_file(boundary, key, value))
+        elif not isinstance(value, basestring) and is_iterable(value):
+            for item in value:
+                if is_file(item):
+                    lines.extend(encode_file(boundary, key, item))
+                else:
+                    lines.extend([
+                        '--' + boundary,
+                        'Content-Disposition: form-data; name="%s"' % to_str(key),
+                        '',
+                        to_str(item)
+                    ])
+        else:
+            lines.extend([
+                '--' + boundary,
+                'Content-Disposition: form-data; name="%s"' % to_str(key),
+                '',
+                to_str(value)
+            ])
+
+    lines.extend([
+        '--' + boundary + '--',
+        '',
+    ])
+    return '\r\n'.join(lines)
+
+def encode_file(boundary, key, file):
+    to_str = lambda s: smart_str(s, settings.DEFAULT_CHARSET)
+    return [
+        '--' + boundary,
+        'Content-Disposition: form-data; name="%s"; filename="%s"' \
+            % (to_str(key), to_str(os.path.basename(file.name))),
+        'Content-Type: application/octet-stream',
+        '',
+        file.read()
+    ]
+    
+class Client:
+    """
+    A class that can act as a client for testing purposes.
+
+    It allows the user to compose GET and POST requests, and
+    obtain the response that the server gave to those requests.
+    The server Response objects are annotated with the details
+    of the contexts and templates that were rendered during the
+    process of serving the request.
+
+    Client objects are stateful - they will retain cookie (and
+    thus session) details for the lifetime of the Client instance.
+
+    This is not intended as a replacement for Twill/Selenium or
+    the like - it is here to allow testing against the
+    contexts and templates produced by a view, rather than the
+    HTML rendered to the end-user.
+    """
+    def __init__(self, **defaults):
+        self.handler = ClientHandler()
+        self.defaults = defaults
+        self.cookies = SimpleCookie()
+        self.exc_info = None
+
+    def store_exc_info(self, **kwargs):
+        """
+        Stores exceptions when they are generated by a view.
+        """
+        self.exc_info = sys.exc_info()
+
+    def _session(self):
+        """
+        Obtains the current session variables.
+        """
+        if 'django.contrib.sessions' in settings.INSTALLED_APPS:
+            engine = __import__(settings.SESSION_ENGINE, {}, {}, [''])
+            cookie = self.cookies.get(settings.SESSION_COOKIE_NAME, None)
+            if cookie:
+                return engine.SessionStore(cookie.value)
+        return {}
+    session = property(_session)
+
+    def request(self, **request):
+        """
+        The master request method. Composes the environment dictionary
+        and passes to the handler, returning the result of the handler.
+        Assumes defaults for the query environment, which can be overridden
+        using the arguments to the request.
+        """
+        environ = {
+            'HTTP_COOKIE':      self.cookies,
+            'PATH_INFO':         '/',
+            'QUERY_STRING':      '',
+            'REQUEST_METHOD':    'GET',
+            'SCRIPT_NAME':       '',
+            'SERVER_NAME':       'testserver',
+            'SERVER_PORT':       80,
+            'SERVER_PROTOCOL':   'HTTP/1.1',
+        }
+        environ.update(self.defaults)
+        environ.update(request)
+
+        # Curry a data dictionary into an instance of the template renderer
+        # callback function.
+        data = {}
+        on_template_render = curry(store_rendered_templates, data)
+        signals.template_rendered.connect(on_template_render)
+
+        # Capture exceptions created by the handler.
+        got_request_exception.connect(self.store_exc_info)
+
+        try:
+            response = self.handler(environ)
+        except TemplateDoesNotExist, e:
+            # If the view raises an exception, Django will attempt to show
+            # the 500.html template. If that template is not available,
+            # we should ignore the error in favor of re-raising the
+            # underlying exception that caused the 500 error. Any other
+            # template found to be missing during view error handling
+            # should be reported as-is.
+            if e.args != ('500.html',):
+                raise
+
+        # Look for a signalled exception, clear the current context
+        # exception data, then re-raise the signalled exception.
+        # Also make sure that the signalled exception is cleared from
+        # the local cache!
+        if self.exc_info:
+            exc_info = self.exc_info
+            self.exc_info = None
+            raise exc_info[1], None, exc_info[2]
+
+        # Save the client and request that stimulated the response.
+        response.client = self
+        response.request = request
+
+        # Add any rendered template detail to the response.
+        # If there was only one template rendered (the most likely case),
+        # flatten the list to a single element.
+        for detail in ('template', 'context'):
+            if data.get(detail):
+                if len(data[detail]) == 1:
+                    setattr(response, detail, data[detail][0]);
+                else:
+                    setattr(response, detail, data[detail])
+            else:
+                setattr(response, detail, None)
+
+        # Update persistent cookie data.
+        if response.cookies:
+            self.cookies.update(response.cookies)
+
+        return response
+
+    def get(self, path, data={}, **extra):
+        """
+        Requests a response from the server using GET.
+        """
+        r = {
+            'CONTENT_LENGTH':  None,
+            'CONTENT_TYPE':    'text/html; charset=utf-8',
+            'PATH_INFO':       urllib.unquote(path),
+            'QUERY_STRING':    urlencode(data, doseq=True),
+            'REQUEST_METHOD': 'GET',
+        }
+        r.update(extra)
+
+        return self.request(**r)
+
+    def post(self, path, data={}, content_type=MULTIPART_CONTENT, **extra):
+        """
+        Requests a response from the server using POST.
+        """
+        if content_type is MULTIPART_CONTENT:
+            post_data = encode_multipart(BOUNDARY, data)
+        else:
+            post_data = data
+
+        r = {
+            'CONTENT_LENGTH': len(post_data),
+            'CONTENT_TYPE':   content_type,
+            'PATH_INFO':      urllib.unquote(path),
+            'REQUEST_METHOD': 'POST',
+            'wsgi.input':     FakePayload(post_data),
+        }
+        r.update(extra)
+
+        return self.request(**r)
+
+    def login(self, **credentials):
+        """
+        Sets the Client to appear as if it has successfully logged into a site.
+
+        Returns True if login is possible; False if the provided credentials
+        are incorrect, or the user is inactive, or if the sessions framework is
+        not available.
+        """
+        user = authenticate(**credentials)
+        if user and user.is_active \
+                and 'django.contrib.sessions' in settings.INSTALLED_APPS:
+            engine = __import__(settings.SESSION_ENGINE, {}, {}, [''])
+
+            # Create a fake request to store login details.
+            request = HttpRequest()
+            if self.session:
+                request.session = self.session
+            else:
+                request.session = engine.SessionStore()
+            login(request, user)
+
+            # Set the cookie to represent the session.
+            session_cookie = settings.SESSION_COOKIE_NAME
+            self.cookies[session_cookie] = request.session.session_key
+            cookie_data = {
+                'max-age': None,
+                'path': '/',
+                'domain': settings.SESSION_COOKIE_DOMAIN,
+                'secure': settings.SESSION_COOKIE_SECURE or None,
+                'expires': None,
+            }
+            self.cookies[session_cookie].update(cookie_data)
+
+            # Save the session values.
+            request.session.save()
+
+            return True
+        else:
+            return False
+
+    def logout(self):
+        """
+        Removes the authenticated user's cookies.
+
+        Causes the authenticated user to be logged out.
+        """
+        session = __import__(settings.SESSION_ENGINE, {}, {}, ['']).SessionStore()
+        session.delete(session_key=self.cookies[settings.SESSION_COOKIE_NAME].value)
+        self.cookies = SimpleCookie()
diff --git a/webapp/django/test/signals.py b/webapp/django/test/signals.py
new file mode 100644
index 0000000..a328a77
--- /dev/null
+++ b/webapp/django/test/signals.py
@@ -0,0 +1,3 @@
+from django.dispatch import Signal
+
+template_rendered = Signal(providing_args=["template", "context"])
diff --git a/webapp/django/test/simple.py b/webapp/django/test/simple.py
new file mode 100644
index 0000000..ce9f59e
--- /dev/null
+++ b/webapp/django/test/simple.py
@@ -0,0 +1,148 @@
+import unittest
+from django.conf import settings
+from django.db.models import get_app, get_apps
+from django.test import _doctest as doctest
+from django.test.utils import setup_test_environment, teardown_test_environment
+from django.test.testcases import OutputChecker, DocTestRunner
+
+# The module name for tests outside models.py
+TEST_MODULE = 'tests'
+    
+doctestOutputChecker = OutputChecker()
+
+def get_tests(app_module):
+    try:
+        app_path = app_module.__name__.split('.')[:-1]
+        test_module = __import__('.'.join(app_path + [TEST_MODULE]), {}, {}, TEST_MODULE)
+    except ImportError, e:
+        # Couldn't import tests.py. Was it due to a missing file, or
+        # due to an import error in a tests.py that actually exists?
+        import os.path
+        from imp import find_module
+        try:
+            mod = find_module(TEST_MODULE, [os.path.dirname(app_module.__file__)])
+        except ImportError:
+            # 'tests' module doesn't exist. Move on.
+            test_module = None
+        else:
+            # The module exists, so there must be an import error in the 
+            # test module itself. We don't need the module; so if the
+            # module was a single file module (i.e., tests.py), close the file
+            # handle returned by find_module. Otherwise, the test module
+            # is a directory, and there is nothing to close.
+            if mod[0]:
+                mod[0].close()
+            raise
+    return test_module
+    
+def build_suite(app_module):
+    "Create a complete Django test suite for the provided application module"
+    suite = unittest.TestSuite()
+    
+    # Load unit and doctests in the models.py module. If module has
+    # a suite() method, use it. Otherwise build the test suite ourselves.
+    if hasattr(app_module, 'suite'):
+        suite.addTest(app_module.suite())
+    else:
+        suite.addTest(unittest.defaultTestLoader.loadTestsFromModule(app_module))
+        try:
+            suite.addTest(doctest.DocTestSuite(app_module,
+                                               checker=doctestOutputChecker,
+                                               runner=DocTestRunner))
+        except ValueError:
+            # No doc tests in models.py
+            pass
+    
+    # Check to see if a separate 'tests' module exists parallel to the 
+    # models module
+    test_module = get_tests(app_module)
+    if test_module:
+        # Load unit and doctests in the tests.py module. If module has
+        # a suite() method, use it. Otherwise build the test suite ourselves.
+        if hasattr(test_module, 'suite'):
+            suite.addTest(test_module.suite())
+        else:
+            suite.addTest(unittest.defaultTestLoader.loadTestsFromModule(test_module))
+            try:            
+                suite.addTest(doctest.DocTestSuite(test_module, 
+                                                   checker=doctestOutputChecker,
+                                                   runner=DocTestRunner))
+            except ValueError:
+                # No doc tests in tests.py
+                pass
+    return suite
+
+def build_test(label):
+    """Construct a test case a test with the specified label. Label should 
+    be of the form model.TestClass or model.TestClass.test_method. Returns
+    an instantiated test or test suite corresponding to the label provided.
+        
+    """
+    parts = label.split('.')
+    if len(parts) < 2 or len(parts) > 3:
+        raise ValueError("Test label '%s' should be of the form app.TestCase or app.TestCase.test_method" % label)
+    
+    app_module = get_app(parts[0])
+    TestClass = getattr(app_module, parts[1], None)
+
+    # Couldn't find the test class in models.py; look in tests.py
+    if TestClass is None:
+        test_module = get_tests(app_module)
+        if test_module:
+            TestClass = getattr(test_module, parts[1], None)
+
+    if len(parts) == 2: # label is app.TestClass
+        try:
+            return unittest.TestLoader().loadTestsFromTestCase(TestClass)
+        except TypeError:
+            raise ValueError("Test label '%s' does not refer to a test class" % label)            
+    else: # label is app.TestClass.test_method
+        return TestClass(parts[2])
+
+def run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[]):
+    """
+    Run the unit tests for all the test labels in the provided list.
+    Labels must be of the form:
+     - app.TestClass.test_method
+        Run a single specific test method
+     - app.TestClass
+        Run all the test methods in a given class
+     - app
+        Search for doctests and unittests in the named application.
+
+    When looking for tests, the test runner will look in the models and
+    tests modules for the application.
+    
+    A list of 'extra' tests may also be provided; these tests
+    will be added to the test suite.
+    
+    Returns the number of tests that failed.
+    """
+    setup_test_environment()
+    
+    settings.DEBUG = False    
+    suite = unittest.TestSuite()
+    
+    if test_labels:
+        for label in test_labels:
+            if '.' in label:
+                suite.addTest(build_test(label))
+            else:
+                app = get_app(label)
+                suite.addTest(build_suite(app))
+    else:
+        for app in get_apps():
+            suite.addTest(build_suite(app))
+    
+    for test in extra_tests:
+        suite.addTest(test)
+
+    old_name = settings.DATABASE_NAME
+    from django.db import connection
+    connection.creation.create_test_db(verbosity, autoclobber=not interactive)
+    result = unittest.TextTestRunner(verbosity=verbosity).run(suite)
+    connection.creation.destroy_test_db(old_name, verbosity)
+    
+    teardown_test_environment()
+    
+    return len(result.failures) + len(result.errors)
diff --git a/webapp/django/test/testcases.py b/webapp/django/test/testcases.py
new file mode 100644
index 0000000..dcab078
--- /dev/null
+++ b/webapp/django/test/testcases.py
@@ -0,0 +1,356 @@
+import re
+import unittest
+from urlparse import urlsplit, urlunsplit
+from xml.dom.minidom import parseString, Node
+
+from django.conf import settings
+from django.core import mail
+from django.core.management import call_command
+from django.core.urlresolvers import clear_url_caches
+from django.db import transaction
+from django.http import QueryDict
+from django.test import _doctest as doctest
+from django.test.client import Client
+from django.utils import simplejson
+
+normalize_long_ints = lambda s: re.sub(r'(?<![\w])(\d+)L(?![\w])', '\\1', s)
+
+def to_list(value):
+    """
+    Puts value into a list if it's not already one.
+    Returns an empty list if value is None.
+    """
+    if value is None:
+        value = []
+    elif not isinstance(value, list):
+        value = [value]
+    return value
+
+
+class OutputChecker(doctest.OutputChecker):
+    def check_output(self, want, got, optionflags):
+        "The entry method for doctest output checking. Defers to a sequence of child checkers"
+        checks = (self.check_output_default,
+                  self.check_output_long,
+                  self.check_output_xml,
+                  self.check_output_json)
+        for check in checks:
+            if check(want, got, optionflags):
+                return True
+        return False
+
+    def check_output_default(self, want, got, optionflags):
+        "The default comparator provided by doctest - not perfect, but good for most purposes"
+        return doctest.OutputChecker.check_output(self, want, got, optionflags)
+
+    def check_output_long(self, want, got, optionflags):
+        """Doctest does an exact string comparison of output, which means long
+        integers aren't equal to normal integers ("22L" vs. "22"). The
+        following code normalizes long integers so that they equal normal
+        integers.
+        """
+        return normalize_long_ints(want) == normalize_long_ints(got)
+
+    def check_output_xml(self, want, got, optionsflags):
+        """Tries to do a 'xml-comparision' of want and got.  Plain string
+        comparision doesn't always work because, for example, attribute
+        ordering should not be important.
+        
+        Based on http://codespeak.net/svn/lxml/trunk/src/lxml/doctestcompare.py
+        """
+        _norm_whitespace_re = re.compile(r'[ \t\n][ \t\n]+')
+        def norm_whitespace(v):
+            return _norm_whitespace_re.sub(' ', v)
+
+        def child_text(element):
+            return ''.join([c.data for c in element.childNodes
+                            if c.nodeType == Node.TEXT_NODE])
+
+        def children(element):
+            return [c for c in element.childNodes
+                    if c.nodeType == Node.ELEMENT_NODE]
+
+        def norm_child_text(element):
+            return norm_whitespace(child_text(element))
+
+        def attrs_dict(element):
+            return dict(element.attributes.items())
+
+        def check_element(want_element, got_element):
+            if want_element.tagName != got_element.tagName:
+                return False
+            if norm_child_text(want_element) != norm_child_text(got_element):
+                return False
+            if attrs_dict(want_element) != attrs_dict(got_element):
+                return False
+            want_children = children(want_element)
+            got_children = children(got_element)
+            if len(want_children) != len(got_children):
+                return False
+            for want, got in zip(want_children, got_children):
+                if not check_element(want, got):
+                    return False
+            return True
+
+        want, got = self._strip_quotes(want, got)
+        want = want.replace('\\n','\n')
+        got = got.replace('\\n','\n')
+
+        # If the string is not a complete xml document, we may need to add a
+        # root element. This allow us to compare fragments, like "<foo/><bar/>"
+        if not want.startswith('<?xml'):
+            wrapper = '<root>%s</root>'
+            want = wrapper % want
+            got = wrapper % got
+            
+        # Parse the want and got strings, and compare the parsings.
+        try:
+            want_root = parseString(want).firstChild
+            got_root = parseString(got).firstChild
+        except:
+            return False
+        return check_element(want_root, got_root)
+
+    def check_output_json(self, want, got, optionsflags):
+        "Tries to compare want and got as if they were JSON-encoded data"
+        want, got = self._strip_quotes(want, got)
+        try:
+            want_json = simplejson.loads(want)
+            got_json = simplejson.loads(got)
+        except:
+            return False
+        return want_json == got_json
+
+    def _strip_quotes(self, want, got):
+        """
+        Strip quotes of doctests output values:
+
+        >>> o = OutputChecker()
+        >>> o._strip_quotes("'foo'")
+        "foo"
+        >>> o._strip_quotes('"foo"')
+        "foo"
+        >>> o._strip_quotes("u'foo'")
+        "foo"
+        >>> o._strip_quotes('u"foo"')
+        "foo"
+        """
+        def is_quoted_string(s):
+            s = s.strip()
+            return (len(s) >= 2
+                    and s[0] == s[-1]
+                    and s[0] in ('"', "'"))
+
+        def is_quoted_unicode(s):
+            s = s.strip()
+            return (len(s) >= 3
+                    and s[0] == 'u'
+                    and s[1] == s[-1]
+                    and s[1] in ('"', "'"))
+
+        if is_quoted_string(want) and is_quoted_string(got):
+            want = want.strip()[1:-1]
+            got = got.strip()[1:-1]
+        elif is_quoted_unicode(want) and is_quoted_unicode(got):
+            want = want.strip()[2:-1]
+            got = got.strip()[2:-1]
+        return want, got
+
+
+class DocTestRunner(doctest.DocTestRunner):
+    def __init__(self, *args, **kwargs):
+        doctest.DocTestRunner.__init__(self, *args, **kwargs)
+        self.optionflags = doctest.ELLIPSIS
+
+    def report_unexpected_exception(self, out, test, example, exc_info):
+        doctest.DocTestRunner.report_unexpected_exception(self, out, test,
+                                                          example, exc_info)
+        # Rollback, in case of database errors. Otherwise they'd have
+        # side effects on other tests.
+        transaction.rollback_unless_managed()
+
+class TestCase(unittest.TestCase):
+    def _pre_setup(self):
+        """Performs any pre-test setup. This includes:
+
+            * Flushing the database.
+            * If the Test Case class has a 'fixtures' member, installing the 
+              named fixtures.
+            * If the Test Case class has a 'urls' member, replace the
+              ROOT_URLCONF with it.
+            * Clearing the mail test outbox.
+        """
+        call_command('flush', verbosity=0, interactive=False)
+        if hasattr(self, 'fixtures'):
+            # We have to use this slightly awkward syntax due to the fact
+            # that we're using *args and **kwargs together.
+            call_command('loaddata', *self.fixtures, **{'verbosity': 0})
+        if hasattr(self, 'urls'):
+            self._old_root_urlconf = settings.ROOT_URLCONF
+            settings.ROOT_URLCONF = self.urls
+            clear_url_caches()
+        mail.outbox = []
+
+    def __call__(self, result=None):
+        """
+        Wrapper around default __call__ method to perform common Django test
+        set up. This means that user-defined Test Cases aren't required to
+        include a call to super().setUp().
+        """
+        self.client = Client()
+        try:
+            self._pre_setup()
+        except (KeyboardInterrupt, SystemExit):
+            raise
+        except Exception:
+            import sys
+            result.addError(self, sys.exc_info())
+            return
+        super(TestCase, self).__call__(result)
+        try:
+            self._post_teardown()
+        except (KeyboardInterrupt, SystemExit):
+            raise
+        except Exception:
+            import sys
+            result.addError(self, sys.exc_info())
+            return
+
+    def _post_teardown(self):
+        """ Performs any post-test things. This includes:
+
+            * Putting back the original ROOT_URLCONF if it was changed.
+        """
+        if hasattr(self, '_old_root_urlconf'):
+            settings.ROOT_URLCONF = self._old_root_urlconf
+            clear_url_caches()
+
+    def assertRedirects(self, response, expected_url, status_code=302,
+                        target_status_code=200, host=None):
+        """Asserts that a response redirected to a specific URL, and that the
+        redirect URL can be loaded.
+
+        Note that assertRedirects won't work for external links since it uses
+        TestClient to do a request.
+        """
+        self.assertEqual(response.status_code, status_code,
+            ("Response didn't redirect as expected: Response code was %d"
+             " (expected %d)" % (response.status_code, status_code)))
+        url = response['Location']
+        scheme, netloc, path, query, fragment = urlsplit(url)
+        e_scheme, e_netloc, e_path, e_query, e_fragment = urlsplit(expected_url)
+        if not (e_scheme or e_netloc):
+            expected_url = urlunsplit(('http', host or 'testserver', e_path,
+                    e_query, e_fragment))
+        self.assertEqual(url, expected_url,
+            "Response redirected to '%s', expected '%s'" % (url, expected_url))
+
+        # Get the redirection page, using the same client that was used
+        # to obtain the original response.
+        redirect_response = response.client.get(path, QueryDict(query))
+        self.assertEqual(redirect_response.status_code, target_status_code,
+            ("Couldn't retrieve redirection page '%s': response code was %d"
+             " (expected %d)") %
+                 (path, redirect_response.status_code, target_status_code))
+
+    def assertContains(self, response, text, count=None, status_code=200):
+        """
+        Asserts that a response indicates that a page was retrieved
+        successfully, (i.e., the HTTP status code was as expected), and that
+        ``text`` occurs ``count`` times in the content of the response.
+        If ``count`` is None, the count doesn't matter - the assertion is true
+        if the text occurs at least once in the response.
+        """
+        self.assertEqual(response.status_code, status_code,
+            "Couldn't retrieve page: Response code was %d (expected %d)'" %
+                (response.status_code, status_code))
+        real_count = response.content.count(text)
+        if count is not None:
+            self.assertEqual(real_count, count,
+                "Found %d instances of '%s' in response (expected %d)" %
+                    (real_count, text, count))
+        else:
+            self.failUnless(real_count != 0,
+                            "Couldn't find '%s' in response" % text)
+
+    def assertNotContains(self, response, text, status_code=200):
+        """
+        Asserts that a response indicates that a page was retrieved
+        successfully, (i.e., the HTTP status code was as expected), and that
+        ``text`` doesn't occurs in the content of the response.
+        """
+        self.assertEqual(response.status_code, status_code,
+            "Couldn't retrieve page: Response code was %d (expected %d)'" %
+                (response.status_code, status_code))
+        self.assertEqual(response.content.count(text), 0,
+                         "Response should not contain '%s'" % text)
+
+    def assertFormError(self, response, form, field, errors):
+        """
+        Asserts that a form used to render the response has a specific field
+        error.
+        """
+        # Put context(s) into a list to simplify processing.
+        contexts = to_list(response.context)
+        if not contexts:
+            self.fail('Response did not use any contexts to render the'
+                      ' response')
+
+        # Put error(s) into a list to simplify processing.
+        errors = to_list(errors)
+
+        # Search all contexts for the error.
+        found_form = False
+        for i,context in enumerate(contexts):
+            if form not in context:
+                continue
+            found_form = True
+            for err in errors:
+                if field:
+                    if field in context[form].errors:
+                        field_errors = context[form].errors[field]
+                        self.failUnless(err in field_errors,
+                                        "The field '%s' on form '%s' in"
+                                        " context %d does not contain the"
+                                        " error '%s' (actual errors: %s)" %
+                                            (field, form, i, err,
+                                             repr(field_errors)))
+                    elif field in context[form].fields:
+                        self.fail("The field '%s' on form '%s' in context %d"
+                                  " contains no errors" % (field, form, i))
+                    else:
+                        self.fail("The form '%s' in context %d does not"
+                                  " contain the field '%s'" %
+                                      (form, i, field))
+                else:
+                    non_field_errors = context[form].non_field_errors()
+                    self.failUnless(err in non_field_errors,
+                        "The form '%s' in context %d does not contain the"
+                        " non-field error '%s' (actual errors: %s)" %
+                            (form, i, err, non_field_errors))
+        if not found_form:
+            self.fail("The form '%s' was not used to render the response" %
+                          form)
+
+    def assertTemplateUsed(self, response, template_name):
+        """
+        Asserts that the template with the provided name was used in rendering
+        the response.
+        """
+        template_names = [t.name for t in to_list(response.template)]
+        if not template_names:
+            self.fail('No templates used to render the response')
+        self.failUnless(template_name in template_names,
+            (u"Template '%s' was not a template used to render the response."
+             u" Actual template(s) used: %s") % (template_name,
+                                                 u', '.join(template_names)))
+
+    def assertTemplateNotUsed(self, response, template_name):
+        """
+        Asserts that the template with the provided name was NOT used in
+        rendering the response.
+        """
+        template_names = [t.name for t in to_list(response.template)]
+        self.failIf(template_name in template_names,
+            (u"Template '%s' was used unexpectedly in rendering the"
+             u" response") % template_name)
diff --git a/webapp/django/test/utils.py b/webapp/django/test/utils.py
new file mode 100644
index 0000000..69bd25b
--- /dev/null
+++ b/webapp/django/test/utils.py
@@ -0,0 +1,67 @@
+import sys, time, os
+from django.conf import settings
+from django.db import connection
+from django.core import mail
+from django.test import signals
+from django.template import Template
+from django.utils.translation import deactivate
+
+def instrumented_test_render(self, context):
+    """
+    An instrumented Template render method, providing a signal
+    that can be intercepted by the test system Client
+    """
+    signals.template_rendered.send(sender=self, template=self, context=context)
+    return self.nodelist.render(context)
+
+class TestSMTPConnection(object):
+    """A substitute SMTP connection for use during test sessions.
+    The test connection stores email messages in a dummy outbox,
+    rather than sending them out on the wire.
+
+    """
+    def __init__(*args, **kwargs):
+        pass
+    def open(self):
+        "Mock the SMTPConnection open() interface"
+        pass
+    def close(self):
+        "Mock the SMTPConnection close() interface"
+        pass
+    def send_messages(self, messages):
+        "Redirect messages to the dummy outbox"
+        mail.outbox.extend(messages)
+        return len(messages)
+
+def setup_test_environment():
+    """Perform any global pre-test setup. This involves:
+
+        - Installing the instrumented test renderer
+        - Diverting the email sending functions to a test buffer
+        - Setting the active locale to match the LANGUAGE_CODE setting.
+    """
+    Template.original_render = Template.render
+    Template.render = instrumented_test_render
+
+    mail.original_SMTPConnection = mail.SMTPConnection
+    mail.SMTPConnection = TestSMTPConnection
+
+    mail.outbox = []
+
+    deactivate()
+
+def teardown_test_environment():
+    """Perform any global post-test teardown. This involves:
+
+        - Restoring the original test renderer
+        - Restoring the email sending functions
+
+    """
+    Template.render = Template.original_render
+    del Template.original_render
+
+    mail.SMTPConnection = mail.original_SMTPConnection
+    del mail.original_SMTPConnection
+
+    del mail.outbox
+
diff --git a/webapp/django/utils/__init__.py b/webapp/django/utils/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/utils/__init__.py
diff --git a/webapp/django/utils/_decimal.py b/webapp/django/utils/_decimal.py
new file mode 100644
index 0000000..677d26b
--- /dev/null
+++ b/webapp/django/utils/_decimal.py
@@ -0,0 +1,3079 @@
+# Copyright (c) 2004 Python Software Foundation.
+# All rights reserved.
+
+# Written by Eric Price <eprice at tjhsst.edu>
+#    and Facundo Batista <facundo at taniquetil.com.ar>
+#    and Raymond Hettinger <python at rcn.com>
+#    and Aahz <aahz at pobox.com>
+#    and Tim Peters
+
+# This module is currently Py2.3 compatible and should be kept that way
+# unless a major compelling advantage arises.  IOW, 2.3 compatibility is
+# strongly preferred, but not guaranteed.
+
+# Also, this module should be kept in sync with the latest updates of
+# the IBM specification as it evolves.  Those updates will be treated
+# as bug fixes (deviation from the spec is a compatibility, usability
+# bug) and will be backported.  At this point the spec is stabilizing
+# and the updates are becoming fewer, smaller, and less significant.
+
+"""
+This is a Py2.3 implementation of decimal floating point arithmetic based on
+the General Decimal Arithmetic Specification:
+
+    www2.hursley.ibm.com/decimal/decarith.html
+
+and IEEE standard 854-1987:
+
+    www.cs.berkeley.edu/~ejr/projects/754/private/drafts/854-1987/dir.html
+
+Decimal floating point has finite precision with arbitrarily large bounds.
+
+The purpose of the module is to support arithmetic using familiar
+"schoolhouse" rules and to avoid the some of tricky representation
+issues associated with binary floating point.  The package is especially
+useful for financial applications or for contexts where users have
+expectations that are at odds with binary floating point (for instance,
+in binary floating point, 1.00 % 0.1 gives 0.09999999999999995 instead
+of the expected Decimal("0.00") returned by decimal floating point).
+
+Here are some examples of using the decimal module:
+
+>>> from decimal import *
+>>> setcontext(ExtendedContext)
+>>> Decimal(0)
+Decimal("0")
+>>> Decimal("1")
+Decimal("1")
+>>> Decimal("-.0123")
+Decimal("-0.0123")
+>>> Decimal(123456)
+Decimal("123456")
+>>> Decimal("123.45e12345678901234567890")
+Decimal("1.2345E+12345678901234567892")
+>>> Decimal("1.33") + Decimal("1.27")
+Decimal("2.60")
+>>> Decimal("12.34") + Decimal("3.87") - Decimal("18.41")
+Decimal("-2.20")
+>>> dig = Decimal(1)
+>>> print dig / Decimal(3)
+0.333333333
+>>> getcontext().prec = 18
+>>> print dig / Decimal(3)
+0.333333333333333333
+>>> print dig.sqrt()
+1
+>>> print Decimal(3).sqrt()
+1.73205080756887729
+>>> print Decimal(3) ** 123
+4.85192780976896427E+58
+>>> inf = Decimal(1) / Decimal(0)
+>>> print inf
+Infinity
+>>> neginf = Decimal(-1) / Decimal(0)
+>>> print neginf
+-Infinity
+>>> print neginf + inf
+NaN
+>>> print neginf * inf
+-Infinity
+>>> print dig / 0
+Infinity
+>>> getcontext().traps[DivisionByZero] = 1
+>>> print dig / 0
+Traceback (most recent call last):
+  ...
+  ...
+  ...
+DivisionByZero: x / 0
+>>> c = Context()
+>>> c.traps[InvalidOperation] = 0
+>>> print c.flags[InvalidOperation]
+0
+>>> c.divide(Decimal(0), Decimal(0))
+Decimal("NaN")
+>>> c.traps[InvalidOperation] = 1
+>>> print c.flags[InvalidOperation]
+1
+>>> c.flags[InvalidOperation] = 0
+>>> print c.flags[InvalidOperation]
+0
+>>> print c.divide(Decimal(0), Decimal(0))
+Traceback (most recent call last):
+  ...
+  ...
+  ...
+InvalidOperation: 0 / 0
+>>> print c.flags[InvalidOperation]
+1
+>>> c.flags[InvalidOperation] = 0
+>>> c.traps[InvalidOperation] = 0
+>>> print c.divide(Decimal(0), Decimal(0))
+NaN
+>>> print c.flags[InvalidOperation]
+1
+>>>
+"""
+
+__all__ = [
+    # Two major classes
+    'Decimal', 'Context',
+
+    # Contexts
+    'DefaultContext', 'BasicContext', 'ExtendedContext',
+
+    # Exceptions
+    'DecimalException', 'Clamped', 'InvalidOperation', 'DivisionByZero',
+    'Inexact', 'Rounded', 'Subnormal', 'Overflow', 'Underflow',
+
+    # Constants for use in setting up contexts
+    'ROUND_DOWN', 'ROUND_HALF_UP', 'ROUND_HALF_EVEN', 'ROUND_CEILING',
+    'ROUND_FLOOR', 'ROUND_UP', 'ROUND_HALF_DOWN',
+
+    # Functions for manipulating contexts
+    'setcontext', 'getcontext'
+]
+
+import copy as _copy
+
+#Rounding
+ROUND_DOWN = 'ROUND_DOWN'
+ROUND_HALF_UP = 'ROUND_HALF_UP'
+ROUND_HALF_EVEN = 'ROUND_HALF_EVEN'
+ROUND_CEILING = 'ROUND_CEILING'
+ROUND_FLOOR = 'ROUND_FLOOR'
+ROUND_UP = 'ROUND_UP'
+ROUND_HALF_DOWN = 'ROUND_HALF_DOWN'
+
+#Rounding decision (not part of the public API)
+NEVER_ROUND = 'NEVER_ROUND'    # Round in division (non-divmod), sqrt ONLY
+ALWAYS_ROUND = 'ALWAYS_ROUND'  # Every operation rounds at end.
+
+#Errors
+
+class DecimalException(ArithmeticError):
+    """Base exception class.
+
+    Used exceptions derive from this.
+    If an exception derives from another exception besides this (such as
+    Underflow (Inexact, Rounded, Subnormal) that indicates that it is only
+    called if the others are present.  This isn't actually used for
+    anything, though.
+
+    handle  -- Called when context._raise_error is called and the
+               trap_enabler is set.  First argument is self, second is the
+               context.  More arguments can be given, those being after
+               the explanation in _raise_error (For example,
+               context._raise_error(NewError, '(-x)!', self._sign) would
+               call NewError().handle(context, self._sign).)
+
+    To define a new exception, it should be sufficient to have it derive
+    from DecimalException.
+    """
+    def handle(self, context, *args):
+        pass
+
+
+class Clamped(DecimalException):
+    """Exponent of a 0 changed to fit bounds.
+
+    This occurs and signals clamped if the exponent of a result has been
+    altered in order to fit the constraints of a specific concrete
+    representation. This may occur when the exponent of a zero result would
+    be outside the bounds of a representation, or  when a large normal
+    number would have an encoded exponent that cannot be represented. In
+    this latter case, the exponent is reduced to fit and the corresponding
+    number of zero digits are appended to the coefficient ("fold-down").
+    """
+
+
+class InvalidOperation(DecimalException):
+    """An invalid operation was performed.
+
+    Various bad things cause this:
+
+    Something creates a signaling NaN
+    -INF + INF
+     0 * (+-)INF
+     (+-)INF / (+-)INF
+    x % 0
+    (+-)INF % x
+    x._rescale( non-integer )
+    sqrt(-x) , x > 0
+    0 ** 0
+    x ** (non-integer)
+    x ** (+-)INF
+    An operand is invalid
+    """
+    def handle(self, context, *args):
+        if args:
+            if args[0] == 1: #sNaN, must drop 's' but keep diagnostics
+                return Decimal( (args[1]._sign, args[1]._int, 'n') )
+        return NaN
+
+class ConversionSyntax(InvalidOperation):
+    """Trying to convert badly formed string.
+
+    This occurs and signals invalid-operation if an string is being
+    converted to a number and it does not conform to the numeric string
+    syntax. The result is [0,qNaN].
+    """
+
+    def handle(self, context, *args):
+        return (0, (0,), 'n') #Passed to something which uses a tuple.
+
+class DivisionByZero(DecimalException, ZeroDivisionError):
+    """Division by 0.
+
+    This occurs and signals division-by-zero if division of a finite number
+    by zero was attempted (during a divide-integer or divide operation, or a
+    power operation with negative right-hand operand), and the dividend was
+    not zero.
+
+    The result of the operation is [sign,inf], where sign is the exclusive
+    or of the signs of the operands for divide, or is 1 for an odd power of
+    -0, for power.
+    """
+
+    def handle(self, context, sign, double = None, *args):
+        if double is not None:
+            return (Infsign[sign],)*2
+        return Infsign[sign]
+
+class DivisionImpossible(InvalidOperation):
+    """Cannot perform the division adequately.
+
+    This occurs and signals invalid-operation if the integer result of a
+    divide-integer or remainder operation had too many digits (would be
+    longer than precision). The result is [0,qNaN].
+    """
+
+    def handle(self, context, *args):
+        return (NaN, NaN)
+
+class DivisionUndefined(InvalidOperation, ZeroDivisionError):
+    """Undefined result of division.
+
+    This occurs and signals invalid-operation if division by zero was
+    attempted (during a divide-integer, divide, or remainder operation), and
+    the dividend is also zero. The result is [0,qNaN].
+    """
+
+    def handle(self, context, tup=None, *args):
+        if tup is not None:
+            return (NaN, NaN) #for 0 %0, 0 // 0
+        return NaN
+
+class Inexact(DecimalException):
+    """Had to round, losing information.
+
+    This occurs and signals inexact whenever the result of an operation is
+    not exact (that is, it needed to be rounded and any discarded digits
+    were non-zero), or if an overflow or underflow condition occurs. The
+    result in all cases is unchanged.
+
+    The inexact signal may be tested (or trapped) to determine if a given
+    operation (or sequence of operations) was inexact.
+    """
+    pass
+
+class InvalidContext(InvalidOperation):
+    """Invalid context.  Unknown rounding, for example.
+
+    This occurs and signals invalid-operation if an invalid context was
+    detected during an operation. This can occur if contexts are not checked
+    on creation and either the precision exceeds the capability of the
+    underlying concrete representation or an unknown or unsupported rounding
+    was specified. These aspects of the context need only be checked when
+    the values are required to be used. The result is [0,qNaN].
+    """
+
+    def handle(self, context, *args):
+        return NaN
+
+class Rounded(DecimalException):
+    """Number got rounded (not  necessarily changed during rounding).
+
+    This occurs and signals rounded whenever the result of an operation is
+    rounded (that is, some zero or non-zero digits were discarded from the
+    coefficient), or if an overflow or underflow condition occurs. The
+    result in all cases is unchanged.
+
+    The rounded signal may be tested (or trapped) to determine if a given
+    operation (or sequence of operations) caused a loss of precision.
+    """
+    pass
+
+class Subnormal(DecimalException):
+    """Exponent < Emin before rounding.
+
+    This occurs and signals subnormal whenever the result of a conversion or
+    operation is subnormal (that is, its adjusted exponent is less than
+    Emin, before any rounding). The result in all cases is unchanged.
+
+    The subnormal signal may be tested (or trapped) to determine if a given
+    or operation (or sequence of operations) yielded a subnormal result.
+    """
+    pass
+
+class Overflow(Inexact, Rounded):
+    """Numerical overflow.
+
+    This occurs and signals overflow if the adjusted exponent of a result
+    (from a conversion or from an operation that is not an attempt to divide
+    by zero), after rounding, would be greater than the largest value that
+    can be handled by the implementation (the value Emax).
+
+    The result depends on the rounding mode:
+
+    For round-half-up and round-half-even (and for round-half-down and
+    round-up, if implemented), the result of the operation is [sign,inf],
+    where sign is the sign of the intermediate result. For round-down, the
+    result is the largest finite number that can be represented in the
+    current precision, with the sign of the intermediate result. For
+    round-ceiling, the result is the same as for round-down if the sign of
+    the intermediate result is 1, or is [0,inf] otherwise. For round-floor,
+    the result is the same as for round-down if the sign of the intermediate
+    result is 0, or is [1,inf] otherwise. In all cases, Inexact and Rounded
+    will also be raised.
+   """
+
+    def handle(self, context, sign, *args):
+        if context.rounding in (ROUND_HALF_UP, ROUND_HALF_EVEN,
+                                     ROUND_HALF_DOWN, ROUND_UP):
+            return Infsign[sign]
+        if sign == 0:
+            if context.rounding == ROUND_CEILING:
+                return Infsign[sign]
+            return Decimal((sign, (9,)*context.prec,
+                            context.Emax-context.prec+1))
+        if sign == 1:
+            if context.rounding == ROUND_FLOOR:
+                return Infsign[sign]
+            return Decimal( (sign, (9,)*context.prec,
+                             context.Emax-context.prec+1))
+
+
+class Underflow(Inexact, Rounded, Subnormal):
+    """Numerical underflow with result rounded to 0.
+
+    This occurs and signals underflow if a result is inexact and the
+    adjusted exponent of the result would be smaller (more negative) than
+    the smallest value that can be handled by the implementation (the value
+    Emin). That is, the result is both inexact and subnormal.
+
+    The result after an underflow will be a subnormal number rounded, if
+    necessary, so that its exponent is not less than Etiny. This may result
+    in 0 with the sign of the intermediate result and an exponent of Etiny.
+
+    In all cases, Inexact, Rounded, and Subnormal will also be raised.
+    """
+
+# List of public traps and flags
+_signals = [Clamped, DivisionByZero, Inexact, Overflow, Rounded,
+           Underflow, InvalidOperation, Subnormal]
+
+# Map conditions (per the spec) to signals
+_condition_map = {ConversionSyntax:InvalidOperation,
+                  DivisionImpossible:InvalidOperation,
+                  DivisionUndefined:InvalidOperation,
+                  InvalidContext:InvalidOperation}
+
+##### Context Functions #######################################
+
+# The getcontext() and setcontext() function manage access to a thread-local
+# current context.  Py2.4 offers direct support for thread locals.  If that
+# is not available, use threading.currentThread() which is slower but will
+# work for older Pythons.  If threads are not part of the build, create a
+# mock threading object with threading.local() returning the module namespace.
+
+try:
+    import threading
+except ImportError:
+    # Python was compiled without threads; create a mock object instead
+    import sys
+    class MockThreading:
+        def local(self, sys=sys):
+            return sys.modules[__name__]
+    threading = MockThreading()
+    del sys, MockThreading
+
+try:
+    threading.local
+
+except AttributeError:
+
+    #To fix reloading, force it to create a new context
+    #Old contexts have different exceptions in their dicts, making problems.
+    if hasattr(threading.currentThread(), '__decimal_context__'):
+        del threading.currentThread().__decimal_context__
+
+    def setcontext(context):
+        """Set this thread's context to context."""
+        if context in (DefaultContext, BasicContext, ExtendedContext):
+            context = context.copy()
+            context.clear_flags()
+        threading.currentThread().__decimal_context__ = context
+
+    def getcontext():
+        """Returns this thread's context.
+
+        If this thread does not yet have a context, returns
+        a new context and sets this thread's context.
+        New contexts are copies of DefaultContext.
+        """
+        try:
+            return threading.currentThread().__decimal_context__
+        except AttributeError:
+            context = Context()
+            threading.currentThread().__decimal_context__ = context
+            return context
+
+else:
+
+    local = threading.local()
+    if hasattr(local, '__decimal_context__'):
+        del local.__decimal_context__
+
+    def getcontext(_local=local):
+        """Returns this thread's context.
+
+        If this thread does not yet have a context, returns
+        a new context and sets this thread's context.
+        New contexts are copies of DefaultContext.
+        """
+        try:
+            return _local.__decimal_context__
+        except AttributeError:
+            context = Context()
+            _local.__decimal_context__ = context
+            return context
+
+    def setcontext(context, _local=local):
+        """Set this thread's context to context."""
+        if context in (DefaultContext, BasicContext, ExtendedContext):
+            context = context.copy()
+            context.clear_flags()
+        _local.__decimal_context__ = context
+
+    del threading, local        # Don't contaminate the namespace
+
+
+##### Decimal class ###########################################
+
+class Decimal(object):
+    """Floating point class for decimal arithmetic."""
+
+    __slots__ = ('_exp','_int','_sign', '_is_special')
+    # Generally, the value of the Decimal instance is given by
+    #  (-1)**_sign * _int * 10**_exp
+    # Special values are signified by _is_special == True
+
+    # We're immutable, so use __new__ not __init__
+    def __new__(cls, value="0", context=None):
+        """Create a decimal point instance.
+
+        >>> Decimal('3.14')              # string input
+        Decimal("3.14")
+        >>> Decimal((0, (3, 1, 4), -2))  # tuple input (sign, digit_tuple, exponent)
+        Decimal("3.14")
+        >>> Decimal(314)                 # int or long
+        Decimal("314")
+        >>> Decimal(Decimal(314))        # another decimal instance
+        Decimal("314")
+        """
+
+        self = object.__new__(cls)
+        self._is_special = False
+
+        # From an internal working value
+        if isinstance(value, _WorkRep):
+            self._sign = value.sign
+            self._int = tuple(map(int, str(value.int)))
+            self._exp = int(value.exp)
+            return self
+
+        # From another decimal
+        if isinstance(value, Decimal):
+            self._exp  = value._exp
+            self._sign = value._sign
+            self._int  = value._int
+            self._is_special  = value._is_special
+            return self
+
+        # From an integer
+        if isinstance(value, (int,long)):
+            if value >= 0:
+                self._sign = 0
+            else:
+                self._sign = 1
+            self._exp = 0
+            self._int = tuple(map(int, str(abs(value))))
+            return self
+
+        # tuple/list conversion (possibly from as_tuple())
+        if isinstance(value, (list,tuple)):
+            if len(value) != 3:
+                raise ValueError, 'Invalid arguments'
+            if value[0] not in (0,1):
+                raise ValueError, 'Invalid sign'
+            for digit in value[1]:
+                if not isinstance(digit, (int,long)) or digit < 0:
+                    raise ValueError, "The second value in the tuple must be composed of non negative integer elements."
+
+            self._sign = value[0]
+            self._int  = tuple(value[1])
+            if value[2] in ('F','n','N'):
+                self._exp = value[2]
+                self._is_special = True
+            else:
+                self._exp  = int(value[2])
+            return self
+
+        if isinstance(value, float):
+            raise TypeError("Cannot convert float to Decimal.  " +
+                            "First convert the float to a string")
+
+        # Other argument types may require the context during interpretation
+        if context is None:
+            context = getcontext()
+
+        # From a string
+        # REs insist on real strings, so we can too.
+        if isinstance(value, basestring):
+            if _isinfinity(value):
+                self._exp = 'F'
+                self._int = (0,)
+                self._is_special = True
+                if _isinfinity(value) == 1:
+                    self._sign = 0
+                else:
+                    self._sign = 1
+                return self
+            if _isnan(value):
+                sig, sign, diag = _isnan(value)
+                self._is_special = True
+                if len(diag) > context.prec: #Diagnostic info too long
+                    self._sign, self._int, self._exp = \
+                                context._raise_error(ConversionSyntax)
+                    return self
+                if sig == 1:
+                    self._exp = 'n' #qNaN
+                else: #sig == 2
+                    self._exp = 'N' #sNaN
+                self._sign = sign
+                self._int = tuple(map(int, diag)) #Diagnostic info
+                return self
+            try:
+                self._sign, self._int, self._exp = _string2exact(value)
+            except ValueError:
+                self._is_special = True
+                self._sign, self._int, self._exp = context._raise_error(ConversionSyntax)
+            return self
+
+        raise TypeError("Cannot convert %r to Decimal" % value)
+
+    def _isnan(self):
+        """Returns whether the number is not actually one.
+
+        0 if a number
+        1 if NaN
+        2 if sNaN
+        """
+        if self._is_special:
+            exp = self._exp
+            if exp == 'n':
+                return 1
+            elif exp == 'N':
+                return 2
+        return 0
+
+    def _isinfinity(self):
+        """Returns whether the number is infinite
+
+        0 if finite or not a number
+        1 if +INF
+        -1 if -INF
+        """
+        if self._exp == 'F':
+            if self._sign:
+                return -1
+            return 1
+        return 0
+
+    def _check_nans(self, other = None, context=None):
+        """Returns whether the number is not actually one.
+
+        if self, other are sNaN, signal
+        if self, other are NaN return nan
+        return 0
+
+        Done before operations.
+        """
+
+        self_is_nan = self._isnan()
+        if other is None:
+            other_is_nan = False
+        else:
+            other_is_nan = other._isnan()
+
+        if self_is_nan or other_is_nan:
+            if context is None:
+                context = getcontext()
+
+            if self_is_nan == 2:
+                return context._raise_error(InvalidOperation, 'sNaN',
+                                        1, self)
+            if other_is_nan == 2:
+                return context._raise_error(InvalidOperation, 'sNaN',
+                                        1, other)
+            if self_is_nan:
+                return self
+
+            return other
+        return 0
+
+    def __nonzero__(self):
+        """Is the number non-zero?
+
+        0 if self == 0
+        1 if self != 0
+        """
+        if self._is_special:
+            return 1
+        return sum(self._int) != 0
+
+    def __cmp__(self, other, context=None):
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        if self._is_special or other._is_special:
+            ans = self._check_nans(other, context)
+            if ans:
+                return 1 # Comparison involving NaN's always reports self > other
+
+            # INF = INF
+            return cmp(self._isinfinity(), other._isinfinity())
+
+        if not self and not other:
+            return 0 #If both 0, sign comparison isn't certain.
+
+        #If different signs, neg one is less
+        if other._sign < self._sign:
+            return -1
+        if self._sign < other._sign:
+            return 1
+
+        self_adjusted = self.adjusted()
+        other_adjusted = other.adjusted()
+        if self_adjusted == other_adjusted and \
+           self._int + (0,)*(self._exp - other._exp) == \
+           other._int + (0,)*(other._exp - self._exp):
+            return 0 #equal, except in precision. ([0]*(-x) = [])
+        elif self_adjusted > other_adjusted and self._int[0] != 0:
+            return (-1)**self._sign
+        elif self_adjusted < other_adjusted and other._int[0] != 0:
+            return -((-1)**self._sign)
+
+        # Need to round, so make sure we have a valid context
+        if context is None:
+            context = getcontext()
+
+        context = context._shallow_copy()
+        rounding = context._set_rounding(ROUND_UP) #round away from 0
+
+        flags = context._ignore_all_flags()
+        res = self.__sub__(other, context=context)
+
+        context._regard_flags(*flags)
+
+        context.rounding = rounding
+
+        if not res:
+            return 0
+        elif res._sign:
+            return -1
+        return 1
+
+    def __eq__(self, other):
+        if not isinstance(other, (Decimal, int, long)):
+            return NotImplemented
+        return self.__cmp__(other) == 0
+
+    def __ne__(self, other):
+        if not isinstance(other, (Decimal, int, long)):
+            return NotImplemented
+        return self.__cmp__(other) != 0
+
+    def compare(self, other, context=None):
+        """Compares one to another.
+
+        -1 => a < b
+        0  => a = b
+        1  => a > b
+        NaN => one is NaN
+        Like __cmp__, but returns Decimal instances.
+        """
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        #compare(NaN, NaN) = NaN
+        if (self._is_special or other and other._is_special):
+            ans = self._check_nans(other, context)
+            if ans:
+                return ans
+
+        return Decimal(self.__cmp__(other, context))
+
+    def __hash__(self):
+        """x.__hash__() <==> hash(x)"""
+        # Decimal integers must hash the same as the ints
+        # Non-integer decimals are normalized and hashed as strings
+        # Normalization assures that hast(100E-1) == hash(10)
+        if self._is_special:
+            if self._isnan():
+                raise TypeError('Cannot hash a NaN value.')
+            return hash(str(self))
+        i = int(self)
+        if self == Decimal(i):
+            return hash(i)
+        assert self.__nonzero__()   # '-0' handled by integer case
+        return hash(str(self.normalize()))
+
+    def as_tuple(self):
+        """Represents the number as a triple tuple.
+
+        To show the internals exactly as they are.
+        """
+        return (self._sign, self._int, self._exp)
+
+    def __repr__(self):
+        """Represents the number as an instance of Decimal."""
+        # Invariant:  eval(repr(d)) == d
+        return 'Decimal("%s")' % str(self)
+
+    def __str__(self, eng = 0, context=None):
+        """Return string representation of the number in scientific notation.
+
+        Captures all of the information in the underlying representation.
+        """
+
+        if self._is_special:
+            if self._isnan():
+                minus = '-'*self._sign
+                if self._int == (0,):
+                    info = ''
+                else:
+                    info = ''.join(map(str, self._int))
+                if self._isnan() == 2:
+                    return minus + 'sNaN' + info
+                return minus + 'NaN' + info
+            if self._isinfinity():
+                minus = '-'*self._sign
+                return minus + 'Infinity'
+
+        if context is None:
+            context = getcontext()
+
+        tmp = map(str, self._int)
+        numdigits = len(self._int)
+        leftdigits = self._exp + numdigits
+        if eng and not self: #self = 0eX wants 0[.0[0]]eY, not [[0]0]0eY
+            if self._exp < 0 and self._exp >= -6: #short, no need for e/E
+                s = '-'*self._sign + '0.' + '0'*(abs(self._exp))
+                return s
+            #exp is closest mult. of 3 >= self._exp
+            exp = ((self._exp - 1)// 3 + 1) * 3
+            if exp != self._exp:
+                s = '0.'+'0'*(exp - self._exp)
+            else:
+                s = '0'
+            if exp != 0:
+                if context.capitals:
+                    s += 'E'
+                else:
+                    s += 'e'
+                if exp > 0:
+                    s += '+' #0.0e+3, not 0.0e3
+                s += str(exp)
+            s = '-'*self._sign + s
+            return s
+        if eng:
+            dotplace = (leftdigits-1)%3+1
+            adjexp = leftdigits -1 - (leftdigits-1)%3
+        else:
+            adjexp = leftdigits-1
+            dotplace = 1
+        if self._exp == 0:
+            pass
+        elif self._exp < 0 and adjexp >= 0:
+            tmp.insert(leftdigits, '.')
+        elif self._exp < 0 and adjexp >= -6:
+            tmp[0:0] = ['0'] * int(-leftdigits)
+            tmp.insert(0, '0.')
+        else:
+            if numdigits > dotplace:
+                tmp.insert(dotplace, '.')
+            elif numdigits < dotplace:
+                tmp.extend(['0']*(dotplace-numdigits))
+            if adjexp:
+                if not context.capitals:
+                    tmp.append('e')
+                else:
+                    tmp.append('E')
+                    if adjexp > 0:
+                        tmp.append('+')
+                tmp.append(str(adjexp))
+        if eng:
+            while tmp[0:1] == ['0']:
+                tmp[0:1] = []
+            if len(tmp) == 0 or tmp[0] == '.' or tmp[0].lower() == 'e':
+                tmp[0:0] = ['0']
+        if self._sign:
+            tmp.insert(0, '-')
+
+        return ''.join(tmp)
+
+    def to_eng_string(self, context=None):
+        """Convert to engineering-type string.
+
+        Engineering notation has an exponent which is a multiple of 3, so there
+        are up to 3 digits left of the decimal place.
+
+        Same rules for when in exponential and when as a value as in __str__.
+        """
+        return self.__str__(eng=1, context=context)
+
+    def __neg__(self, context=None):
+        """Returns a copy with the sign switched.
+
+        Rounds, if it has reason.
+        """
+        if self._is_special:
+            ans = self._check_nans(context=context)
+            if ans:
+                return ans
+
+        if not self:
+            # -Decimal('0') is Decimal('0'), not Decimal('-0')
+            sign = 0
+        elif self._sign:
+            sign = 0
+        else:
+            sign = 1
+
+        if context is None:
+            context = getcontext()
+        if context._rounding_decision == ALWAYS_ROUND:
+            return Decimal((sign, self._int, self._exp))._fix(context)
+        return Decimal( (sign, self._int, self._exp))
+
+    def __pos__(self, context=None):
+        """Returns a copy, unless it is a sNaN.
+
+        Rounds the number (if more then precision digits)
+        """
+        if self._is_special:
+            ans = self._check_nans(context=context)
+            if ans:
+                return ans
+
+        sign = self._sign
+        if not self:
+            # + (-0) = 0
+            sign = 0
+
+        if context is None:
+            context = getcontext()
+
+        if context._rounding_decision == ALWAYS_ROUND:
+            ans = self._fix(context)
+        else:
+            ans = Decimal(self)
+        ans._sign = sign
+        return ans
+
+    def __abs__(self, round=1, context=None):
+        """Returns the absolute value of self.
+
+        If the second argument is 0, do not round.
+        """
+        if self._is_special:
+            ans = self._check_nans(context=context)
+            if ans:
+                return ans
+
+        if not round:
+            if context is None:
+                context = getcontext()
+            context = context._shallow_copy()
+            context._set_rounding_decision(NEVER_ROUND)
+
+        if self._sign:
+            ans = self.__neg__(context=context)
+        else:
+            ans = self.__pos__(context=context)
+
+        return ans
+
+    def __add__(self, other, context=None):
+        """Returns self + other.
+
+        -INF + INF (or the reverse) cause InvalidOperation errors.
+        """
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        if context is None:
+            context = getcontext()
+
+        if self._is_special or other._is_special:
+            ans = self._check_nans(other, context)
+            if ans:
+                return ans
+
+            if self._isinfinity():
+                #If both INF, same sign => same as both, opposite => error.
+                if self._sign != other._sign and other._isinfinity():
+                    return context._raise_error(InvalidOperation, '-INF + INF')
+                return Decimal(self)
+            if other._isinfinity():
+                return Decimal(other)  #Can't both be infinity here
+
+        shouldround = context._rounding_decision == ALWAYS_ROUND
+
+        exp = min(self._exp, other._exp)
+        negativezero = 0
+        if context.rounding == ROUND_FLOOR and self._sign != other._sign:
+            #If the answer is 0, the sign should be negative, in this case.
+            negativezero = 1
+
+        if not self and not other:
+            sign = min(self._sign, other._sign)
+            if negativezero:
+                sign = 1
+            return Decimal( (sign, (0,), exp))
+        if not self:
+            exp = max(exp, other._exp - context.prec-1)
+            ans = other._rescale(exp, watchexp=0, context=context)
+            if shouldround:
+                ans = ans._fix(context)
+            return ans
+        if not other:
+            exp = max(exp, self._exp - context.prec-1)
+            ans = self._rescale(exp, watchexp=0, context=context)
+            if shouldround:
+                ans = ans._fix(context)
+            return ans
+
+        op1 = _WorkRep(self)
+        op2 = _WorkRep(other)
+        op1, op2 = _normalize(op1, op2, shouldround, context.prec)
+
+        result = _WorkRep()
+        if op1.sign != op2.sign:
+            # Equal and opposite
+            if op1.int == op2.int:
+                if exp < context.Etiny():
+                    exp = context.Etiny()
+                    context._raise_error(Clamped)
+                return Decimal((negativezero, (0,), exp))
+            if op1.int < op2.int:
+                op1, op2 = op2, op1
+                #OK, now abs(op1) > abs(op2)
+            if op1.sign == 1:
+                result.sign = 1
+                op1.sign, op2.sign = op2.sign, op1.sign
+            else:
+                result.sign = 0
+                #So we know the sign, and op1 > 0.
+        elif op1.sign == 1:
+            result.sign = 1
+            op1.sign, op2.sign = (0, 0)
+        else:
+            result.sign = 0
+        #Now, op1 > abs(op2) > 0
+
+        if op2.sign == 0:
+            result.int = op1.int + op2.int
+        else:
+            result.int = op1.int - op2.int
+
+        result.exp = op1.exp
+        ans = Decimal(result)
+        if shouldround:
+            ans = ans._fix(context)
+        return ans
+
+    __radd__ = __add__
+
+    def __sub__(self, other, context=None):
+        """Return self + (-other)"""
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        if self._is_special or other._is_special:
+            ans = self._check_nans(other, context=context)
+            if ans:
+                return ans
+
+        # -Decimal(0) = Decimal(0), which we don't want since
+        # (-0 - 0 = -0 + (-0) = -0, but -0 + 0 = 0.)
+        # so we change the sign directly to a copy
+        tmp = Decimal(other)
+        tmp._sign = 1-tmp._sign
+
+        return self.__add__(tmp, context=context)
+
+    def __rsub__(self, other, context=None):
+        """Return other + (-self)"""
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        tmp = Decimal(self)
+        tmp._sign = 1 - tmp._sign
+        return other.__add__(tmp, context=context)
+
+    def _increment(self, round=1, context=None):
+        """Special case of add, adding 1eExponent
+
+        Since it is common, (rounding, for example) this adds
+        (sign)*one E self._exp to the number more efficiently than add.
+
+        For example:
+        Decimal('5.624e10')._increment() == Decimal('5.625e10')
+        """
+        if self._is_special:
+            ans = self._check_nans(context=context)
+            if ans:
+                return ans
+
+            return Decimal(self) # Must be infinite, and incrementing makes no difference
+
+        L = list(self._int)
+        L[-1] += 1
+        spot = len(L)-1
+        while L[spot] == 10:
+            L[spot] = 0
+            if spot == 0:
+                L[0:0] = [1]
+                break
+            L[spot-1] += 1
+            spot -= 1
+        ans = Decimal((self._sign, L, self._exp))
+
+        if context is None:
+            context = getcontext()
+        if round and context._rounding_decision == ALWAYS_ROUND:
+            ans = ans._fix(context)
+        return ans
+
+    def __mul__(self, other, context=None):
+        """Return self * other.
+
+        (+-) INF * 0 (or its reverse) raise InvalidOperation.
+        """
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        if context is None:
+            context = getcontext()
+
+        resultsign = self._sign ^ other._sign
+
+        if self._is_special or other._is_special:
+            ans = self._check_nans(other, context)
+            if ans:
+                return ans
+
+            if self._isinfinity():
+                if not other:
+                    return context._raise_error(InvalidOperation, '(+-)INF * 0')
+                return Infsign[resultsign]
+
+            if other._isinfinity():
+                if not self:
+                    return context._raise_error(InvalidOperation, '0 * (+-)INF')
+                return Infsign[resultsign]
+
+        resultexp = self._exp + other._exp
+        shouldround = context._rounding_decision == ALWAYS_ROUND
+
+        # Special case for multiplying by zero
+        if not self or not other:
+            ans = Decimal((resultsign, (0,), resultexp))
+            if shouldround:
+                #Fixing in case the exponent is out of bounds
+                ans = ans._fix(context)
+            return ans
+
+        # Special case for multiplying by power of 10
+        if self._int == (1,):
+            ans = Decimal((resultsign, other._int, resultexp))
+            if shouldround:
+                ans = ans._fix(context)
+            return ans
+        if other._int == (1,):
+            ans = Decimal((resultsign, self._int, resultexp))
+            if shouldround:
+                ans = ans._fix(context)
+            return ans
+
+        op1 = _WorkRep(self)
+        op2 = _WorkRep(other)
+
+        ans = Decimal( (resultsign, map(int, str(op1.int * op2.int)), resultexp))
+        if shouldround:
+            ans = ans._fix(context)
+
+        return ans
+    __rmul__ = __mul__
+
+    def __div__(self, other, context=None):
+        """Return self / other."""
+        return self._divide(other, context=context)
+    __truediv__ = __div__
+
+    def _divide(self, other, divmod = 0, context=None):
+        """Return a / b, to context.prec precision.
+
+        divmod:
+        0 => true division
+        1 => (a //b, a%b)
+        2 => a //b
+        3 => a%b
+
+        Actually, if divmod is 2 or 3 a tuple is returned, but errors for
+        computing the other value are not raised.
+        """
+        other = _convert_other(other)
+        if other is NotImplemented:
+            if divmod in (0, 1):
+                return NotImplemented
+            return (NotImplemented, NotImplemented)
+
+        if context is None:
+            context = getcontext()
+
+        sign = self._sign ^ other._sign
+
+        if self._is_special or other._is_special:
+            ans = self._check_nans(other, context)
+            if ans:
+                if divmod:
+                    return (ans, ans)
+                return ans
+
+            if self._isinfinity() and other._isinfinity():
+                if divmod:
+                    return (context._raise_error(InvalidOperation,
+                                            '(+-)INF // (+-)INF'),
+                            context._raise_error(InvalidOperation,
+                                            '(+-)INF % (+-)INF'))
+                return context._raise_error(InvalidOperation, '(+-)INF/(+-)INF')
+
+            if self._isinfinity():
+                if divmod == 1:
+                    return (Infsign[sign],
+                            context._raise_error(InvalidOperation, 'INF % x'))
+                elif divmod == 2:
+                    return (Infsign[sign], NaN)
+                elif divmod == 3:
+                    return (Infsign[sign],
+                            context._raise_error(InvalidOperation, 'INF % x'))
+                return Infsign[sign]
+
+            if other._isinfinity():
+                if divmod:
+                    return (Decimal((sign, (0,), 0)), Decimal(self))
+                context._raise_error(Clamped, 'Division by infinity')
+                return Decimal((sign, (0,), context.Etiny()))
+
+        # Special cases for zeroes
+        if not self and not other:
+            if divmod:
+                return context._raise_error(DivisionUndefined, '0 / 0', 1)
+            return context._raise_error(DivisionUndefined, '0 / 0')
+
+        if not self:
+            if divmod:
+                otherside = Decimal(self)
+                otherside._exp = min(self._exp, other._exp)
+                return (Decimal((sign, (0,), 0)),  otherside)
+            exp = self._exp - other._exp
+            if exp < context.Etiny():
+                exp = context.Etiny()
+                context._raise_error(Clamped, '0e-x / y')
+            if exp > context.Emax:
+                exp = context.Emax
+                context._raise_error(Clamped, '0e+x / y')
+            return Decimal( (sign, (0,), exp) )
+
+        if not other:
+            if divmod:
+                return context._raise_error(DivisionByZero, 'divmod(x,0)',
+                                           sign, 1)
+            return context._raise_error(DivisionByZero, 'x / 0', sign)
+
+        #OK, so neither = 0, INF or NaN
+
+        shouldround = context._rounding_decision == ALWAYS_ROUND
+
+        #If we're dividing into ints, and self < other, stop.
+        #self.__abs__(0) does not round.
+        if divmod and (self.__abs__(0, context) < other.__abs__(0, context)):
+
+            if divmod == 1 or divmod == 3:
+                exp = min(self._exp, other._exp)
+                ans2 = self._rescale(exp, context=context, watchexp=0)
+                if shouldround:
+                    ans2 = ans2._fix(context)
+                return (Decimal( (sign, (0,), 0) ),
+                        ans2)
+
+            elif divmod == 2:
+                #Don't round the mod part, if we don't need it.
+                return (Decimal( (sign, (0,), 0) ), Decimal(self))
+
+        op1 = _WorkRep(self)
+        op2 = _WorkRep(other)
+        op1, op2, adjust = _adjust_coefficients(op1, op2)
+        res = _WorkRep( (sign, 0, (op1.exp - op2.exp)) )
+        if divmod and res.exp > context.prec + 1:
+            return context._raise_error(DivisionImpossible)
+
+        prec_limit = 10 ** context.prec
+        while 1:
+            while op2.int <= op1.int:
+                res.int += 1
+                op1.int -= op2.int
+            if res.exp == 0 and divmod:
+                if res.int >= prec_limit and shouldround:
+                    return context._raise_error(DivisionImpossible)
+                otherside = Decimal(op1)
+                frozen = context._ignore_all_flags()
+
+                exp = min(self._exp, other._exp)
+                otherside = otherside._rescale(exp, context=context, watchexp=0)
+                context._regard_flags(*frozen)
+                if shouldround:
+                    otherside = otherside._fix(context)
+                return (Decimal(res), otherside)
+
+            if op1.int == 0 and adjust >= 0 and not divmod:
+                break
+            if res.int >= prec_limit and shouldround:
+                if divmod:
+                    return context._raise_error(DivisionImpossible)
+                shouldround=1
+                # Really, the answer is a bit higher, so adding a one to
+                # the end will make sure the rounding is right.
+                if op1.int != 0:
+                    res.int *= 10
+                    res.int += 1
+                    res.exp -= 1
+
+                break
+            res.int *= 10
+            res.exp -= 1
+            adjust += 1
+            op1.int *= 10
+            op1.exp -= 1
+
+            if res.exp == 0 and divmod and op2.int > op1.int:
+                #Solves an error in precision.  Same as a previous block.
+
+                if res.int >= prec_limit and shouldround:
+                    return context._raise_error(DivisionImpossible)
+                otherside = Decimal(op1)
+                frozen = context._ignore_all_flags()
+
+                exp = min(self._exp, other._exp)
+                otherside = otherside._rescale(exp, context=context)
+
+                context._regard_flags(*frozen)
+
+                return (Decimal(res), otherside)
+
+        ans = Decimal(res)
+        if shouldround:
+            ans = ans._fix(context)
+        return ans
+
+    def __rdiv__(self, other, context=None):
+        """Swaps self/other and returns __div__."""
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+        return other.__div__(self, context=context)
+    __rtruediv__ = __rdiv__
+
+    def __divmod__(self, other, context=None):
+        """
+        (self // other, self % other)
+        """
+        return self._divide(other, 1, context)
+
+    def __rdivmod__(self, other, context=None):
+        """Swaps self/other and returns __divmod__."""
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+        return other.__divmod__(self, context=context)
+
+    def __mod__(self, other, context=None):
+        """
+        self % other
+        """
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        if self._is_special or other._is_special:
+            ans = self._check_nans(other, context)
+            if ans:
+                return ans
+
+        if self and not other:
+            return context._raise_error(InvalidOperation, 'x % 0')
+
+        return self._divide(other, 3, context)[1]
+
+    def __rmod__(self, other, context=None):
+        """Swaps self/other and returns __mod__."""
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+        return other.__mod__(self, context=context)
+
+    def remainder_near(self, other, context=None):
+        """
+        Remainder nearest to 0-  abs(remainder-near) <= other/2
+        """
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        if self._is_special or other._is_special:
+            ans = self._check_nans(other, context)
+            if ans:
+                return ans
+        if self and not other:
+            return context._raise_error(InvalidOperation, 'x % 0')
+
+        if context is None:
+            context = getcontext()
+        # If DivisionImpossible causes an error, do not leave Rounded/Inexact
+        # ignored in the calling function.
+        context = context._shallow_copy()
+        flags = context._ignore_flags(Rounded, Inexact)
+        #keep DivisionImpossible flags
+        (side, r) = self.__divmod__(other, context=context)
+
+        if r._isnan():
+            context._regard_flags(*flags)
+            return r
+
+        context = context._shallow_copy()
+        rounding = context._set_rounding_decision(NEVER_ROUND)
+
+        if other._sign:
+            comparison = other.__div__(Decimal(-2), context=context)
+        else:
+            comparison = other.__div__(Decimal(2), context=context)
+
+        context._set_rounding_decision(rounding)
+        context._regard_flags(*flags)
+
+        s1, s2 = r._sign, comparison._sign
+        r._sign, comparison._sign = 0, 0
+
+        if r < comparison:
+            r._sign, comparison._sign = s1, s2
+            #Get flags now
+            self.__divmod__(other, context=context)
+            return r._fix(context)
+        r._sign, comparison._sign = s1, s2
+
+        rounding = context._set_rounding_decision(NEVER_ROUND)
+
+        (side, r) = self.__divmod__(other, context=context)
+        context._set_rounding_decision(rounding)
+        if r._isnan():
+            return r
+
+        decrease = not side._iseven()
+        rounding = context._set_rounding_decision(NEVER_ROUND)
+        side = side.__abs__(context=context)
+        context._set_rounding_decision(rounding)
+
+        s1, s2 = r._sign, comparison._sign
+        r._sign, comparison._sign = 0, 0
+        if r > comparison or decrease and r == comparison:
+            r._sign, comparison._sign = s1, s2
+            context.prec += 1
+            if len(side.__add__(Decimal(1), context=context)._int) >= context.prec:
+                context.prec -= 1
+                return context._raise_error(DivisionImpossible)[1]
+            context.prec -= 1
+            if self._sign == other._sign:
+                r = r.__sub__(other, context=context)
+            else:
+                r = r.__add__(other, context=context)
+        else:
+            r._sign, comparison._sign = s1, s2
+
+        return r._fix(context)
+
+    def __floordiv__(self, other, context=None):
+        """self // other"""
+        return self._divide(other, 2, context)[0]
+
+    def __rfloordiv__(self, other, context=None):
+        """Swaps self/other and returns __floordiv__."""
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+        return other.__floordiv__(self, context=context)
+
+    def __float__(self):
+        """Float representation."""
+        return float(str(self))
+
+    def __int__(self):
+        """Converts self to an int, truncating if necessary."""
+        if self._is_special:
+            if self._isnan():
+                context = getcontext()
+                return context._raise_error(InvalidContext)
+            elif self._isinfinity():
+                raise OverflowError, "Cannot convert infinity to long"
+        if self._exp >= 0:
+            s = ''.join(map(str, self._int)) + '0'*self._exp
+        else:
+            s = ''.join(map(str, self._int))[:self._exp]
+        if s == '':
+            s = '0'
+        sign = '-'*self._sign
+        return int(sign + s)
+
+    def __long__(self):
+        """Converts to a long.
+
+        Equivalent to long(int(self))
+        """
+        return long(self.__int__())
+
+    def _fix(self, context):
+        """Round if it is necessary to keep self within prec precision.
+
+        Rounds and fixes the exponent.  Does not raise on a sNaN.
+
+        Arguments:
+        self - Decimal instance
+        context - context used.
+        """
+        if self._is_special:
+            return self
+        if context is None:
+            context = getcontext()
+        prec = context.prec
+        ans = self._fixexponents(context)
+        if len(ans._int) > prec:
+            ans = ans._round(prec, context=context)
+            ans = ans._fixexponents(context)
+        return ans
+
+    def _fixexponents(self, context):
+        """Fix the exponents and return a copy with the exponent in bounds.
+        Only call if known to not be a special value.
+        """
+        folddown = context._clamp
+        Emin = context.Emin
+        ans = self
+        ans_adjusted = ans.adjusted()
+        if ans_adjusted < Emin:
+            Etiny = context.Etiny()
+            if ans._exp < Etiny:
+                if not ans:
+                    ans = Decimal(self)
+                    ans._exp = Etiny
+                    context._raise_error(Clamped)
+                    return ans
+                ans = ans._rescale(Etiny, context=context)
+                #It isn't zero, and exp < Emin => subnormal
+                context._raise_error(Subnormal)
+                if context.flags[Inexact]:
+                    context._raise_error(Underflow)
+            else:
+                if ans:
+                    #Only raise subnormal if non-zero.
+                    context._raise_error(Subnormal)
+        else:
+            Etop = context.Etop()
+            if folddown and ans._exp > Etop:
+                context._raise_error(Clamped)
+                ans = ans._rescale(Etop, context=context)
+            else:
+                Emax = context.Emax
+                if ans_adjusted > Emax:
+                    if not ans:
+                        ans = Decimal(self)
+                        ans._exp = Emax
+                        context._raise_error(Clamped)
+                        return ans
+                    context._raise_error(Inexact)
+                    context._raise_error(Rounded)
+                    return context._raise_error(Overflow, 'above Emax', ans._sign)
+        return ans
+
+    def _round(self, prec=None, rounding=None, context=None):
+        """Returns a rounded version of self.
+
+        You can specify the precision or rounding method.  Otherwise, the
+        context determines it.
+        """
+
+        if self._is_special:
+            ans = self._check_nans(context=context)
+            if ans:
+                return ans
+
+            if self._isinfinity():
+                return Decimal(self)
+
+        if context is None:
+            context = getcontext()
+
+        if rounding is None:
+            rounding = context.rounding
+        if prec is None:
+            prec = context.prec
+
+        if not self:
+            if prec <= 0:
+                dig = (0,)
+                exp = len(self._int) - prec + self._exp
+            else:
+                dig = (0,) * prec
+                exp = len(self._int) + self._exp - prec
+            ans = Decimal((self._sign, dig, exp))
+            context._raise_error(Rounded)
+            return ans
+
+        if prec == 0:
+            temp = Decimal(self)
+            temp._int = (0,)+temp._int
+            prec = 1
+        elif prec < 0:
+            exp = self._exp + len(self._int) - prec - 1
+            temp = Decimal( (self._sign, (0, 1), exp))
+            prec = 1
+        else:
+            temp = Decimal(self)
+
+        numdigits = len(temp._int)
+        if prec == numdigits:
+            return temp
+
+        # See if we need to extend precision
+        expdiff = prec - numdigits
+        if expdiff > 0:
+            tmp = list(temp._int)
+            tmp.extend([0] * expdiff)
+            ans =  Decimal( (temp._sign, tmp, temp._exp - expdiff))
+            return ans
+
+        #OK, but maybe all the lost digits are 0.
+        lostdigits = self._int[expdiff:]
+        if lostdigits == (0,) * len(lostdigits):
+            ans = Decimal( (temp._sign, temp._int[:prec], temp._exp - expdiff))
+            #Rounded, but not Inexact
+            context._raise_error(Rounded)
+            return ans
+
+        # Okay, let's round and lose data
+
+        this_function = getattr(temp, self._pick_rounding_function[rounding])
+        #Now we've got the rounding function
+
+        if prec != context.prec:
+            context = context._shallow_copy()
+            context.prec = prec
+        ans = this_function(prec, expdiff, context)
+        context._raise_error(Rounded)
+        context._raise_error(Inexact, 'Changed in rounding')
+
+        return ans
+
+    _pick_rounding_function = {}
+
+    def _round_down(self, prec, expdiff, context):
+        """Also known as round-towards-0, truncate."""
+        return Decimal( (self._sign, self._int[:prec], self._exp - expdiff) )
+
+    def _round_half_up(self, prec, expdiff, context, tmp = None):
+        """Rounds 5 up (away from 0)"""
+
+        if tmp is None:
+            tmp = Decimal( (self._sign,self._int[:prec], self._exp - expdiff))
+        if self._int[prec] >= 5:
+            tmp = tmp._increment(round=0, context=context)
+            if len(tmp._int) > prec:
+                return Decimal( (tmp._sign, tmp._int[:-1], tmp._exp + 1))
+        return tmp
+
+    def _round_half_even(self, prec, expdiff, context):
+        """Round 5 to even, rest to nearest."""
+
+        tmp = Decimal( (self._sign, self._int[:prec], self._exp - expdiff))
+        half = (self._int[prec] == 5)
+        if half:
+            for digit in self._int[prec+1:]:
+                if digit != 0:
+                    half = 0
+                    break
+        if half:
+            if self._int[prec-1] & 1 == 0:
+                return tmp
+        return self._round_half_up(prec, expdiff, context, tmp)
+
+    def _round_half_down(self, prec, expdiff, context):
+        """Round 5 down"""
+
+        tmp = Decimal( (self._sign, self._int[:prec], self._exp - expdiff))
+        half = (self._int[prec] == 5)
+        if half:
+            for digit in self._int[prec+1:]:
+                if digit != 0:
+                    half = 0
+                    break
+        if half:
+            return tmp
+        return self._round_half_up(prec, expdiff, context, tmp)
+
+    def _round_up(self, prec, expdiff, context):
+        """Rounds away from 0."""
+        tmp = Decimal( (self._sign, self._int[:prec], self._exp - expdiff) )
+        for digit in self._int[prec:]:
+            if digit != 0:
+                tmp = tmp._increment(round=1, context=context)
+                if len(tmp._int) > prec:
+                    return Decimal( (tmp._sign, tmp._int[:-1], tmp._exp + 1))
+                else:
+                    return tmp
+        return tmp
+
+    def _round_ceiling(self, prec, expdiff, context):
+        """Rounds up (not away from 0 if negative.)"""
+        if self._sign:
+            return self._round_down(prec, expdiff, context)
+        else:
+            return self._round_up(prec, expdiff, context)
+
+    def _round_floor(self, prec, expdiff, context):
+        """Rounds down (not towards 0 if negative)"""
+        if not self._sign:
+            return self._round_down(prec, expdiff, context)
+        else:
+            return self._round_up(prec, expdiff, context)
+
+    def __pow__(self, n, modulo = None, context=None):
+        """Return self ** n (mod modulo)
+
+        If modulo is None (default), don't take it mod modulo.
+        """
+        n = _convert_other(n)
+        if n is NotImplemented:
+            return n
+
+        if context is None:
+            context = getcontext()
+
+        if self._is_special or n._is_special or n.adjusted() > 8:
+            #Because the spot << doesn't work with really big exponents
+            if n._isinfinity() or n.adjusted() > 8:
+                return context._raise_error(InvalidOperation, 'x ** INF')
+
+            ans = self._check_nans(n, context)
+            if ans:
+                return ans
+
+        if not n._isinteger():
+            return context._raise_error(InvalidOperation, 'x ** (non-integer)')
+
+        if not self and not n:
+            return context._raise_error(InvalidOperation, '0 ** 0')
+
+        if not n:
+            return Decimal(1)
+
+        if self == Decimal(1):
+            return Decimal(1)
+
+        sign = self._sign and not n._iseven()
+        n = int(n)
+
+        if self._isinfinity():
+            if modulo:
+                return context._raise_error(InvalidOperation, 'INF % x')
+            if n > 0:
+                return Infsign[sign]
+            return Decimal( (sign, (0,), 0) )
+
+        #with ludicrously large exponent, just raise an overflow and return inf.
+        if not modulo and n > 0 and (self._exp + len(self._int) - 1) * n > context.Emax \
+           and self:
+
+            tmp = Decimal('inf')
+            tmp._sign = sign
+            context._raise_error(Rounded)
+            context._raise_error(Inexact)
+            context._raise_error(Overflow, 'Big power', sign)
+            return tmp
+
+        elength = len(str(abs(n)))
+        firstprec = context.prec
+
+        if not modulo and firstprec + elength + 1 > DefaultContext.Emax:
+            return context._raise_error(Overflow, 'Too much precision.', sign)
+
+        mul = Decimal(self)
+        val = Decimal(1)
+        context = context._shallow_copy()
+        context.prec = firstprec + elength + 1
+        if n < 0:
+            #n is a long now, not Decimal instance
+            n = -n
+            mul = Decimal(1).__div__(mul, context=context)
+
+        spot = 1
+        while spot <= n:
+            spot <<= 1
+
+        spot >>= 1
+        #Spot is the highest power of 2 less than n
+        while spot:
+            val = val.__mul__(val, context=context)
+            if val._isinfinity():
+                val = Infsign[sign]
+                break
+            if spot & n:
+                val = val.__mul__(mul, context=context)
+            if modulo is not None:
+                val = val.__mod__(modulo, context=context)
+            spot >>= 1
+        context.prec = firstprec
+
+        if context._rounding_decision == ALWAYS_ROUND:
+            return val._fix(context)
+        return val
+
+    def __rpow__(self, other, context=None):
+        """Swaps self/other and returns __pow__."""
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+        return other.__pow__(self, context=context)
+
+    def normalize(self, context=None):
+        """Normalize- strip trailing 0s, change anything equal to 0 to 0e0"""
+
+        if self._is_special:
+            ans = self._check_nans(context=context)
+            if ans:
+                return ans
+
+        dup = self._fix(context)
+        if dup._isinfinity():
+            return dup
+
+        if not dup:
+            return Decimal( (dup._sign, (0,), 0) )
+        end = len(dup._int)
+        exp = dup._exp
+        while dup._int[end-1] == 0:
+            exp += 1
+            end -= 1
+        return Decimal( (dup._sign, dup._int[:end], exp) )
+
+
+    def quantize(self, exp, rounding=None, context=None, watchexp=1):
+        """Quantize self so its exponent is the same as that of exp.
+
+        Similar to self._rescale(exp._exp) but with error checking.
+        """
+        if self._is_special or exp._is_special:
+            ans = self._check_nans(exp, context)
+            if ans:
+                return ans
+
+            if exp._isinfinity() or self._isinfinity():
+                if exp._isinfinity() and self._isinfinity():
+                    return self  #if both are inf, it is OK
+                if context is None:
+                    context = getcontext()
+                return context._raise_error(InvalidOperation,
+                                        'quantize with one INF')
+        return self._rescale(exp._exp, rounding, context, watchexp)
+
+    def same_quantum(self, other):
+        """Test whether self and other have the same exponent.
+
+        same as self._exp == other._exp, except NaN == sNaN
+        """
+        if self._is_special or other._is_special:
+            if self._isnan() or other._isnan():
+                return self._isnan() and other._isnan() and True
+            if self._isinfinity() or other._isinfinity():
+                return self._isinfinity() and other._isinfinity() and True
+        return self._exp == other._exp
+
+    def _rescale(self, exp, rounding=None, context=None, watchexp=1):
+        """Rescales so that the exponent is exp.
+
+        exp = exp to scale to (an integer)
+        rounding = rounding version
+        watchexp: if set (default) an error is returned if exp is greater
+        than Emax or less than Etiny.
+        """
+        if context is None:
+            context = getcontext()
+
+        if self._is_special:
+            if self._isinfinity():
+                return context._raise_error(InvalidOperation, 'rescale with an INF')
+
+            ans = self._check_nans(context=context)
+            if ans:
+                return ans
+
+        if watchexp and (context.Emax  < exp or context.Etiny() > exp):
+            return context._raise_error(InvalidOperation, 'rescale(a, INF)')
+
+        if not self:
+            ans = Decimal(self)
+            ans._int = (0,)
+            ans._exp = exp
+            return ans
+
+        diff = self._exp - exp
+        digits = len(self._int) + diff
+
+        if watchexp and digits > context.prec:
+            return context._raise_error(InvalidOperation, 'Rescale > prec')
+
+        tmp = Decimal(self)
+        tmp._int = (0,) + tmp._int
+        digits += 1
+
+        if digits < 0:
+            tmp._exp = -digits + tmp._exp
+            tmp._int = (0,1)
+            digits = 1
+        tmp = tmp._round(digits, rounding, context=context)
+
+        if tmp._int[0] == 0 and len(tmp._int) > 1:
+            tmp._int = tmp._int[1:]
+        tmp._exp = exp
+
+        tmp_adjusted = tmp.adjusted()
+        if tmp and tmp_adjusted < context.Emin:
+            context._raise_error(Subnormal)
+        elif tmp and tmp_adjusted > context.Emax:
+            return context._raise_error(InvalidOperation, 'rescale(a, INF)')
+        return tmp
+
+    def to_integral(self, rounding=None, context=None):
+        """Rounds to the nearest integer, without raising inexact, rounded."""
+        if self._is_special:
+            ans = self._check_nans(context=context)
+            if ans:
+                return ans
+        if self._exp >= 0:
+            return self
+        if context is None:
+            context = getcontext()
+        flags = context._ignore_flags(Rounded, Inexact)
+        ans = self._rescale(0, rounding, context=context)
+        context._regard_flags(flags)
+        return ans
+
+    def sqrt(self, context=None):
+        """Return the square root of self.
+
+        Uses a converging algorithm (Xn+1 = 0.5*(Xn + self / Xn))
+        Should quadratically approach the right answer.
+        """
+        if self._is_special:
+            ans = self._check_nans(context=context)
+            if ans:
+                return ans
+
+            if self._isinfinity() and self._sign == 0:
+                return Decimal(self)
+
+        if not self:
+            #exponent = self._exp / 2, using round_down.
+            #if self._exp < 0:
+            #    exp = (self._exp+1) // 2
+            #else:
+            exp = (self._exp) // 2
+            if self._sign == 1:
+                #sqrt(-0) = -0
+                return Decimal( (1, (0,), exp))
+            else:
+                return Decimal( (0, (0,), exp))
+
+        if context is None:
+            context = getcontext()
+
+        if self._sign == 1:
+            return context._raise_error(InvalidOperation, 'sqrt(-x), x > 0')
+
+        tmp = Decimal(self)
+
+        expadd = tmp._exp // 2
+        if tmp._exp & 1:
+            tmp._int += (0,)
+            tmp._exp = 0
+        else:
+            tmp._exp = 0
+
+        context = context._shallow_copy()
+        flags = context._ignore_all_flags()
+        firstprec = context.prec
+        context.prec = 3
+        if tmp.adjusted() & 1 == 0:
+            ans = Decimal( (0, (8,1,9), tmp.adjusted()  - 2) )
+            ans = ans.__add__(tmp.__mul__(Decimal((0, (2,5,9), -2)),
+                                          context=context), context=context)
+            ans._exp -= 1 + tmp.adjusted() // 2
+        else:
+            ans = Decimal( (0, (2,5,9), tmp._exp + len(tmp._int)- 3) )
+            ans = ans.__add__(tmp.__mul__(Decimal((0, (8,1,9), -3)),
+                                          context=context), context=context)
+            ans._exp -= 1 + tmp.adjusted()  // 2
+
+        #ans is now a linear approximation.
+
+        Emax, Emin = context.Emax, context.Emin
+        context.Emax, context.Emin = DefaultContext.Emax, DefaultContext.Emin
+
+        half = Decimal('0.5')
+
+        maxp = firstprec + 2
+        rounding = context._set_rounding(ROUND_HALF_EVEN)
+        while 1:
+            context.prec = min(2*context.prec - 2, maxp)
+            ans = half.__mul__(ans.__add__(tmp.__div__(ans, context=context),
+                                           context=context), context=context)
+            if context.prec == maxp:
+                break
+
+        #round to the answer's precision-- the only error can be 1 ulp.
+        context.prec = firstprec
+        prevexp = ans.adjusted()
+        ans = ans._round(context=context)
+
+        #Now, check if the other last digits are better.
+        context.prec = firstprec + 1
+        # In case we rounded up another digit and we should actually go lower.
+        if prevexp != ans.adjusted():
+            ans._int += (0,)
+            ans._exp -= 1
+
+
+        lower = ans.__sub__(Decimal((0, (5,), ans._exp-1)), context=context)
+        context._set_rounding(ROUND_UP)
+        if lower.__mul__(lower, context=context) > (tmp):
+            ans = ans.__sub__(Decimal((0, (1,), ans._exp)), context=context)
+
+        else:
+            upper = ans.__add__(Decimal((0, (5,), ans._exp-1)),context=context)
+            context._set_rounding(ROUND_DOWN)
+            if upper.__mul__(upper, context=context) < tmp:
+                ans = ans.__add__(Decimal((0, (1,), ans._exp)),context=context)
+
+        ans._exp += expadd
+
+        context.prec = firstprec
+        context.rounding = rounding
+        ans = ans._fix(context)
+
+        rounding = context._set_rounding_decision(NEVER_ROUND)
+        if not ans.__mul__(ans, context=context) == self:
+            # Only rounded/inexact if here.
+            context._regard_flags(flags)
+            context._raise_error(Rounded)
+            context._raise_error(Inexact)
+        else:
+            #Exact answer, so let's set the exponent right.
+            #if self._exp < 0:
+            #    exp = (self._exp +1)// 2
+            #else:
+            exp = self._exp // 2
+            context.prec += ans._exp - exp
+            ans = ans._rescale(exp, context=context)
+            context.prec = firstprec
+            context._regard_flags(flags)
+        context.Emax, context.Emin = Emax, Emin
+
+        return ans._fix(context)
+
+    def max(self, other, context=None):
+        """Returns the larger value.
+
+        like max(self, other) except if one is not a number, returns
+        NaN (and signals if one is sNaN).  Also rounds.
+        """
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        if self._is_special or other._is_special:
+            # if one operand is a quiet NaN and the other is number, then the
+            # number is always returned
+            sn = self._isnan()
+            on = other._isnan()
+            if sn or on:
+                if on == 1 and sn != 2:
+                    return self
+                if sn == 1 and on != 2:
+                    return other
+                return self._check_nans(other, context)
+
+        ans = self
+        c = self.__cmp__(other)
+        if c == 0:
+            # if both operands are finite and equal in numerical value
+            # then an ordering is applied:
+            #
+            # if the signs differ then max returns the operand with the
+            # positive sign and min returns the operand with the negative sign
+            #
+            # if the signs are the same then the exponent is used to select
+            # the result.
+            if self._sign != other._sign:
+                if self._sign:
+                    ans = other
+            elif self._exp < other._exp and not self._sign:
+                ans = other
+            elif self._exp > other._exp and self._sign:
+                ans = other
+        elif c == -1:
+            ans = other
+
+        if context is None:
+            context = getcontext()
+        if context._rounding_decision == ALWAYS_ROUND:
+            return ans._fix(context)
+        return ans
+
+    def min(self, other, context=None):
+        """Returns the smaller value.
+
+        like min(self, other) except if one is not a number, returns
+        NaN (and signals if one is sNaN).  Also rounds.
+        """
+        other = _convert_other(other)
+        if other is NotImplemented:
+            return other
+
+        if self._is_special or other._is_special:
+            # if one operand is a quiet NaN and the other is number, then the
+            # number is always returned
+            sn = self._isnan()
+            on = other._isnan()
+            if sn or on:
+                if on == 1 and sn != 2:
+                    return self
+                if sn == 1 and on != 2:
+                    return other
+                return self._check_nans(other, context)
+
+        ans = self
+        c = self.__cmp__(other)
+        if c == 0:
+            # if both operands are finite and equal in numerical value
+            # then an ordering is applied:
+            #
+            # if the signs differ then max returns the operand with the
+            # positive sign and min returns the operand with the negative sign
+            #
+            # if the signs are the same then the exponent is used to select
+            # the result.
+            if self._sign != other._sign:
+                if other._sign:
+                    ans = other
+            elif self._exp > other._exp and not self._sign:
+                ans = other
+            elif self._exp < other._exp and self._sign:
+                ans = other
+        elif c == 1:
+            ans = other
+
+        if context is None:
+            context = getcontext()
+        if context._rounding_decision == ALWAYS_ROUND:
+            return ans._fix(context)
+        return ans
+
+    def _isinteger(self):
+        """Returns whether self is an integer"""
+        if self._exp >= 0:
+            return True
+        rest = self._int[self._exp:]
+        return rest == (0,)*len(rest)
+
+    def _iseven(self):
+        """Returns 1 if self is even.  Assumes self is an integer."""
+        if self._exp > 0:
+            return 1
+        return self._int[-1+self._exp] & 1 == 0
+
+    def adjusted(self):
+        """Return the adjusted exponent of self"""
+        try:
+            return self._exp + len(self._int) - 1
+        #If NaN or Infinity, self._exp is string
+        except TypeError:
+            return 0
+
+    # support for pickling, copy, and deepcopy
+    def __reduce__(self):
+        return (self.__class__, (str(self),))
+
+    def __copy__(self):
+        if type(self) == Decimal:
+            return self     # I'm immutable; therefore I am my own clone
+        return self.__class__(str(self))
+
+    def __deepcopy__(self, memo):
+        if type(self) == Decimal:
+            return self     # My components are also immutable
+        return self.__class__(str(self))
+
+##### Context class ###########################################
+
+
+# get rounding method function:
+rounding_functions = [name for name in Decimal.__dict__.keys() if name.startswith('_round_')]
+for name in rounding_functions:
+    #name is like _round_half_even, goes to the global ROUND_HALF_EVEN value.
+    globalname = name[1:].upper()
+    val = globals()[globalname]
+    Decimal._pick_rounding_function[val] = name
+
+del name, val, globalname, rounding_functions
+
+class Context(object):
+    """Contains the context for a Decimal instance.
+
+    Contains:
+    prec - precision (for use in rounding, division, square roots..)
+    rounding - rounding type. (how you round)
+    _rounding_decision - ALWAYS_ROUND, NEVER_ROUND -- do you round?
+    traps - If traps[exception] = 1, then the exception is
+                    raised when it is caused.  Otherwise, a value is
+                    substituted in.
+    flags  - When an exception is caused, flags[exception] is incremented.
+             (Whether or not the trap_enabler is set)
+             Should be reset by user of Decimal instance.
+    Emin -   Minimum exponent
+    Emax -   Maximum exponent
+    capitals -      If 1, 1*10^1 is printed as 1E+1.
+                    If 0, printed as 1e1
+    _clamp - If 1, change exponents if too high (Default 0)
+    """
+
+    def __init__(self, prec=None, rounding=None,
+                 traps=None, flags=None,
+                 _rounding_decision=None,
+                 Emin=None, Emax=None,
+                 capitals=None, _clamp=0,
+                 _ignored_flags=None):
+        if flags is None:
+            flags = []
+        if _ignored_flags is None:
+            _ignored_flags = []
+        if not isinstance(flags, dict):
+            flags = dict([(s,s in flags) for s in _signals])
+            del s
+        if traps is not None and not isinstance(traps, dict):
+            traps = dict([(s,s in traps) for s in _signals])
+            del s
+        for name, val in locals().items():
+            if val is None:
+                setattr(self, name, _copy.copy(getattr(DefaultContext, name)))
+            else:
+                setattr(self, name, val)
+        del self.self
+
+    def __repr__(self):
+        """Show the current context."""
+        s = []
+        s.append('Context(prec=%(prec)d, rounding=%(rounding)s, Emin=%(Emin)d, Emax=%(Emax)d, capitals=%(capitals)d' % vars(self))
+        s.append('flags=[' + ', '.join([f.__name__ for f, v in self.flags.items() if v]) + ']')
+        s.append('traps=[' + ', '.join([t.__name__ for t, v in self.traps.items() if v]) + ']')
+        return ', '.join(s) + ')'
+
+    def clear_flags(self):
+        """Reset all flags to zero"""
+        for flag in self.flags:
+            self.flags[flag] = 0
+
+    def _shallow_copy(self):
+        """Returns a shallow copy from self."""
+        nc = Context(self.prec, self.rounding, self.traps, self.flags,
+                         self._rounding_decision, self.Emin, self.Emax,
+                         self.capitals, self._clamp, self._ignored_flags)
+        return nc
+
+    def copy(self):
+        """Returns a deep copy from self."""
+        nc = Context(self.prec, self.rounding, self.traps.copy(), self.flags.copy(),
+                         self._rounding_decision, self.Emin, self.Emax,
+                         self.capitals, self._clamp, self._ignored_flags)
+        return nc
+    __copy__ = copy
+
+    def _raise_error(self, condition, explanation = None, *args):
+        """Handles an error
+
+        If the flag is in _ignored_flags, returns the default response.
+        Otherwise, it increments the flag, then, if the corresponding
+        trap_enabler is set, it reaises the exception.  Otherwise, it returns
+        the default value after incrementing the flag.
+        """
+        error = _condition_map.get(condition, condition)
+        if error in self._ignored_flags:
+            #Don't touch the flag
+            return error().handle(self, *args)
+
+        self.flags[error] += 1
+        if not self.traps[error]:
+            #The errors define how to handle themselves.
+            return condition().handle(self, *args)
+
+        # Errors should only be risked on copies of the context
+        #self._ignored_flags = []
+        raise error, explanation
+
+    def _ignore_all_flags(self):
+        """Ignore all flags, if they are raised"""
+        return self._ignore_flags(*_signals)
+
+    def _ignore_flags(self, *flags):
+        """Ignore the flags, if they are raised"""
+        # Do not mutate-- This way, copies of a context leave the original
+        # alone.
+        self._ignored_flags = (self._ignored_flags + list(flags))
+        return list(flags)
+
+    def _regard_flags(self, *flags):
+        """Stop ignoring the flags, if they are raised"""
+        if flags and isinstance(flags[0], (tuple,list)):
+            flags = flags[0]
+        for flag in flags:
+            self._ignored_flags.remove(flag)
+
+    def __hash__(self):
+        """A Context cannot be hashed."""
+        # We inherit object.__hash__, so we must deny this explicitly
+        raise TypeError, "Cannot hash a Context."
+
+    def Etiny(self):
+        """Returns Etiny (= Emin - prec + 1)"""
+        return int(self.Emin - self.prec + 1)
+
+    def Etop(self):
+        """Returns maximum exponent (= Emax - prec + 1)"""
+        return int(self.Emax - self.prec + 1)
+
+    def _set_rounding_decision(self, type):
+        """Sets the rounding decision.
+
+        Sets the rounding decision, and returns the current (previous)
+        rounding decision.  Often used like:
+
+        context = context._shallow_copy()
+        # That so you don't change the calling context
+        # if an error occurs in the middle (say DivisionImpossible is raised).
+
+        rounding = context._set_rounding_decision(NEVER_ROUND)
+        instance = instance / Decimal(2)
+        context._set_rounding_decision(rounding)
+
+        This will make it not round for that operation.
+        """
+
+        rounding = self._rounding_decision
+        self._rounding_decision = type
+        return rounding
+
+    def _set_rounding(self, type):
+        """Sets the rounding type.
+
+        Sets the rounding type, and returns the current (previous)
+        rounding type.  Often used like:
+
+        context = context.copy()
+        # so you don't change the calling context
+        # if an error occurs in the middle.
+        rounding = context._set_rounding(ROUND_UP)
+        val = self.__sub__(other, context=context)
+        context._set_rounding(rounding)
+
+        This will make it round up for that operation.
+        """
+        rounding = self.rounding
+        self.rounding= type
+        return rounding
+
+    def create_decimal(self, num='0'):
+        """Creates a new Decimal instance but using self as context."""
+        d = Decimal(num, context=self)
+        return d._fix(self)
+
+    #Methods
+    def abs(self, a):
+        """Returns the absolute value of the operand.
+
+        If the operand is negative, the result is the same as using the minus
+        operation on the operand. Otherwise, the result is the same as using
+        the plus operation on the operand.
+
+        >>> ExtendedContext.abs(Decimal('2.1'))
+        Decimal("2.1")
+        >>> ExtendedContext.abs(Decimal('-100'))
+        Decimal("100")
+        >>> ExtendedContext.abs(Decimal('101.5'))
+        Decimal("101.5")
+        >>> ExtendedContext.abs(Decimal('-101.5'))
+        Decimal("101.5")
+        """
+        return a.__abs__(context=self)
+
+    def add(self, a, b):
+        """Return the sum of the two operands.
+
+        >>> ExtendedContext.add(Decimal('12'), Decimal('7.00'))
+        Decimal("19.00")
+        >>> ExtendedContext.add(Decimal('1E+2'), Decimal('1.01E+4'))
+        Decimal("1.02E+4")
+        """
+        return a.__add__(b, context=self)
+
+    def _apply(self, a):
+        return str(a._fix(self))
+
+    def compare(self, a, b):
+        """Compares values numerically.
+
+        If the signs of the operands differ, a value representing each operand
+        ('-1' if the operand is less than zero, '0' if the operand is zero or
+        negative zero, or '1' if the operand is greater than zero) is used in
+        place of that operand for the comparison instead of the actual
+        operand.
+
+        The comparison is then effected by subtracting the second operand from
+        the first and then returning a value according to the result of the
+        subtraction: '-1' if the result is less than zero, '0' if the result is
+        zero or negative zero, or '1' if the result is greater than zero.
+
+        >>> ExtendedContext.compare(Decimal('2.1'), Decimal('3'))
+        Decimal("-1")
+        >>> ExtendedContext.compare(Decimal('2.1'), Decimal('2.1'))
+        Decimal("0")
+        >>> ExtendedContext.compare(Decimal('2.1'), Decimal('2.10'))
+        Decimal("0")
+        >>> ExtendedContext.compare(Decimal('3'), Decimal('2.1'))
+        Decimal("1")
+        >>> ExtendedContext.compare(Decimal('2.1'), Decimal('-3'))
+        Decimal("1")
+        >>> ExtendedContext.compare(Decimal('-3'), Decimal('2.1'))
+        Decimal("-1")
+        """
+        return a.compare(b, context=self)
+
+    def divide(self, a, b):
+        """Decimal division in a specified context.
+
+        >>> ExtendedContext.divide(Decimal('1'), Decimal('3'))
+        Decimal("0.333333333")
+        >>> ExtendedContext.divide(Decimal('2'), Decimal('3'))
+        Decimal("0.666666667")
+        >>> ExtendedContext.divide(Decimal('5'), Decimal('2'))
+        Decimal("2.5")
+        >>> ExtendedContext.divide(Decimal('1'), Decimal('10'))
+        Decimal("0.1")
+        >>> ExtendedContext.divide(Decimal('12'), Decimal('12'))
+        Decimal("1")
+        >>> ExtendedContext.divide(Decimal('8.00'), Decimal('2'))
+        Decimal("4.00")
+        >>> ExtendedContext.divide(Decimal('2.400'), Decimal('2.0'))
+        Decimal("1.20")
+        >>> ExtendedContext.divide(Decimal('1000'), Decimal('100'))
+        Decimal("10")
+        >>> ExtendedContext.divide(Decimal('1000'), Decimal('1'))
+        Decimal("1000")
+        >>> ExtendedContext.divide(Decimal('2.40E+6'), Decimal('2'))
+        Decimal("1.20E+6")
+        """
+        return a.__div__(b, context=self)
+
+    def divide_int(self, a, b):
+        """Divides two numbers and returns the integer part of the result.
+
+        >>> ExtendedContext.divide_int(Decimal('2'), Decimal('3'))
+        Decimal("0")
+        >>> ExtendedContext.divide_int(Decimal('10'), Decimal('3'))
+        Decimal("3")
+        >>> ExtendedContext.divide_int(Decimal('1'), Decimal('0.3'))
+        Decimal("3")
+        """
+        return a.__floordiv__(b, context=self)
+
+    def divmod(self, a, b):
+        return a.__divmod__(b, context=self)
+
+    def max(self, a,b):
+        """max compares two values numerically and returns the maximum.
+
+        If either operand is a NaN then the general rules apply.
+        Otherwise, the operands are compared as as though by the compare
+        operation. If they are numerically equal then the left-hand operand
+        is chosen as the result. Otherwise the maximum (closer to positive
+        infinity) of the two operands is chosen as the result.
+
+        >>> ExtendedContext.max(Decimal('3'), Decimal('2'))
+        Decimal("3")
+        >>> ExtendedContext.max(Decimal('-10'), Decimal('3'))
+        Decimal("3")
+        >>> ExtendedContext.max(Decimal('1.0'), Decimal('1'))
+        Decimal("1")
+        >>> ExtendedContext.max(Decimal('7'), Decimal('NaN'))
+        Decimal("7")
+        """
+        return a.max(b, context=self)
+
+    def min(self, a,b):
+        """min compares two values numerically and returns the minimum.
+
+        If either operand is a NaN then the general rules apply.
+        Otherwise, the operands are compared as as though by the compare
+        operation. If they are numerically equal then the left-hand operand
+        is chosen as the result. Otherwise the minimum (closer to negative
+        infinity) of the two operands is chosen as the result.
+
+        >>> ExtendedContext.min(Decimal('3'), Decimal('2'))
+        Decimal("2")
+        >>> ExtendedContext.min(Decimal('-10'), Decimal('3'))
+        Decimal("-10")
+        >>> ExtendedContext.min(Decimal('1.0'), Decimal('1'))
+        Decimal("1.0")
+        >>> ExtendedContext.min(Decimal('7'), Decimal('NaN'))
+        Decimal("7")
+        """
+        return a.min(b, context=self)
+
+    def minus(self, a):
+        """Minus corresponds to unary prefix minus in Python.
+
+        The operation is evaluated using the same rules as subtract; the
+        operation minus(a) is calculated as subtract('0', a) where the '0'
+        has the same exponent as the operand.
+
+        >>> ExtendedContext.minus(Decimal('1.3'))
+        Decimal("-1.3")
+        >>> ExtendedContext.minus(Decimal('-1.3'))
+        Decimal("1.3")
+        """
+        return a.__neg__(context=self)
+
+    def multiply(self, a, b):
+        """multiply multiplies two operands.
+
+        If either operand is a special value then the general rules apply.
+        Otherwise, the operands are multiplied together ('long multiplication'),
+        resulting in a number which may be as long as the sum of the lengths
+        of the two operands.
+
+        >>> ExtendedContext.multiply(Decimal('1.20'), Decimal('3'))
+        Decimal("3.60")
+        >>> ExtendedContext.multiply(Decimal('7'), Decimal('3'))
+        Decimal("21")
+        >>> ExtendedContext.multiply(Decimal('0.9'), Decimal('0.8'))
+        Decimal("0.72")
+        >>> ExtendedContext.multiply(Decimal('0.9'), Decimal('-0'))
+        Decimal("-0.0")
+        >>> ExtendedContext.multiply(Decimal('654321'), Decimal('654321'))
+        Decimal("4.28135971E+11")
+        """
+        return a.__mul__(b, context=self)
+
+    def normalize(self, a):
+        """normalize reduces an operand to its simplest form.
+
+        Essentially a plus operation with all trailing zeros removed from the
+        result.
+
+        >>> ExtendedContext.normalize(Decimal('2.1'))
+        Decimal("2.1")
+        >>> ExtendedContext.normalize(Decimal('-2.0'))
+        Decimal("-2")
+        >>> ExtendedContext.normalize(Decimal('1.200'))
+        Decimal("1.2")
+        >>> ExtendedContext.normalize(Decimal('-120'))
+        Decimal("-1.2E+2")
+        >>> ExtendedContext.normalize(Decimal('120.00'))
+        Decimal("1.2E+2")
+        >>> ExtendedContext.normalize(Decimal('0.00'))
+        Decimal("0")
+        """
+        return a.normalize(context=self)
+
+    def plus(self, a):
+        """Plus corresponds to unary prefix plus in Python.
+
+        The operation is evaluated using the same rules as add; the
+        operation plus(a) is calculated as add('0', a) where the '0'
+        has the same exponent as the operand.
+
+        >>> ExtendedContext.plus(Decimal('1.3'))
+        Decimal("1.3")
+        >>> ExtendedContext.plus(Decimal('-1.3'))
+        Decimal("-1.3")
+        """
+        return a.__pos__(context=self)
+
+    def power(self, a, b, modulo=None):
+        """Raises a to the power of b, to modulo if given.
+
+        The right-hand operand must be a whole number whose integer part (after
+        any exponent has been applied) has no more than 9 digits and whose
+        fractional part (if any) is all zeros before any rounding. The operand
+        may be positive, negative, or zero; if negative, the absolute value of
+        the power is used, and the left-hand operand is inverted (divided into
+        1) before use.
+
+        If the increased precision needed for the intermediate calculations
+        exceeds the capabilities of the implementation then an Invalid operation
+        condition is raised.
+
+        If, when raising to a negative power, an underflow occurs during the
+        division into 1, the operation is not halted at that point but
+        continues.
+
+        >>> ExtendedContext.power(Decimal('2'), Decimal('3'))
+        Decimal("8")
+        >>> ExtendedContext.power(Decimal('2'), Decimal('-3'))
+        Decimal("0.125")
+        >>> ExtendedContext.power(Decimal('1.7'), Decimal('8'))
+        Decimal("69.7575744")
+        >>> ExtendedContext.power(Decimal('Infinity'), Decimal('-2'))
+        Decimal("0")
+        >>> ExtendedContext.power(Decimal('Infinity'), Decimal('-1'))
+        Decimal("0")
+        >>> ExtendedContext.power(Decimal('Infinity'), Decimal('0'))
+        Decimal("1")
+        >>> ExtendedContext.power(Decimal('Infinity'), Decimal('1'))
+        Decimal("Infinity")
+        >>> ExtendedContext.power(Decimal('Infinity'), Decimal('2'))
+        Decimal("Infinity")
+        >>> ExtendedContext.power(Decimal('-Infinity'), Decimal('-2'))
+        Decimal("0")
+        >>> ExtendedContext.power(Decimal('-Infinity'), Decimal('-1'))
+        Decimal("-0")
+        >>> ExtendedContext.power(Decimal('-Infinity'), Decimal('0'))
+        Decimal("1")
+        >>> ExtendedContext.power(Decimal('-Infinity'), Decimal('1'))
+        Decimal("-Infinity")
+        >>> ExtendedContext.power(Decimal('-Infinity'), Decimal('2'))
+        Decimal("Infinity")
+        >>> ExtendedContext.power(Decimal('0'), Decimal('0'))
+        Decimal("NaN")
+        """
+        return a.__pow__(b, modulo, context=self)
+
+    def quantize(self, a, b):
+        """Returns a value equal to 'a' (rounded) and having the exponent of 'b'.
+
+        The coefficient of the result is derived from that of the left-hand
+        operand. It may be rounded using the current rounding setting (if the
+        exponent is being increased), multiplied by a positive power of ten (if
+        the exponent is being decreased), or is unchanged (if the exponent is
+        already equal to that of the right-hand operand).
+
+        Unlike other operations, if the length of the coefficient after the
+        quantize operation would be greater than precision then an Invalid
+        operation condition is raised. This guarantees that, unless there is an
+        error condition, the exponent of the result of a quantize is always
+        equal to that of the right-hand operand.
+
+        Also unlike other operations, quantize will never raise Underflow, even
+        if the result is subnormal and inexact.
+
+        >>> ExtendedContext.quantize(Decimal('2.17'), Decimal('0.001'))
+        Decimal("2.170")
+        >>> ExtendedContext.quantize(Decimal('2.17'), Decimal('0.01'))
+        Decimal("2.17")
+        >>> ExtendedContext.quantize(Decimal('2.17'), Decimal('0.1'))
+        Decimal("2.2")
+        >>> ExtendedContext.quantize(Decimal('2.17'), Decimal('1e+0'))
+        Decimal("2")
+        >>> ExtendedContext.quantize(Decimal('2.17'), Decimal('1e+1'))
+        Decimal("0E+1")
+        >>> ExtendedContext.quantize(Decimal('-Inf'), Decimal('Infinity'))
+        Decimal("-Infinity")
+        >>> ExtendedContext.quantize(Decimal('2'), Decimal('Infinity'))
+        Decimal("NaN")
+        >>> ExtendedContext.quantize(Decimal('-0.1'), Decimal('1'))
+        Decimal("-0")
+        >>> ExtendedContext.quantize(Decimal('-0'), Decimal('1e+5'))
+        Decimal("-0E+5")
+        >>> ExtendedContext.quantize(Decimal('+35236450.6'), Decimal('1e-2'))
+        Decimal("NaN")
+        >>> ExtendedContext.quantize(Decimal('-35236450.6'), Decimal('1e-2'))
+        Decimal("NaN")
+        >>> ExtendedContext.quantize(Decimal('217'), Decimal('1e-1'))
+        Decimal("217.0")
+        >>> ExtendedContext.quantize(Decimal('217'), Decimal('1e-0'))
+        Decimal("217")
+        >>> ExtendedContext.quantize(Decimal('217'), Decimal('1e+1'))
+        Decimal("2.2E+2")
+        >>> ExtendedContext.quantize(Decimal('217'), Decimal('1e+2'))
+        Decimal("2E+2")
+        """
+        return a.quantize(b, context=self)
+
+    def remainder(self, a, b):
+        """Returns the remainder from integer division.
+
+        The result is the residue of the dividend after the operation of
+        calculating integer division as described for divide-integer, rounded to
+        precision digits if necessary. The sign of the result, if non-zero, is
+        the same as that of the original dividend.
+
+        This operation will fail under the same conditions as integer division
+        (that is, if integer division on the same two operands would fail, the
+        remainder cannot be calculated).
+
+        >>> ExtendedContext.remainder(Decimal('2.1'), Decimal('3'))
+        Decimal("2.1")
+        >>> ExtendedContext.remainder(Decimal('10'), Decimal('3'))
+        Decimal("1")
+        >>> ExtendedContext.remainder(Decimal('-10'), Decimal('3'))
+        Decimal("-1")
+        >>> ExtendedContext.remainder(Decimal('10.2'), Decimal('1'))
+        Decimal("0.2")
+        >>> ExtendedContext.remainder(Decimal('10'), Decimal('0.3'))
+        Decimal("0.1")
+        >>> ExtendedContext.remainder(Decimal('3.6'), Decimal('1.3'))
+        Decimal("1.0")
+        """
+        return a.__mod__(b, context=self)
+
+    def remainder_near(self, a, b):
+        """Returns to be "a - b * n", where n is the integer nearest the exact
+        value of "x / b" (if two integers are equally near then the even one
+        is chosen). If the result is equal to 0 then its sign will be the
+        sign of a.
+
+        This operation will fail under the same conditions as integer division
+        (that is, if integer division on the same two operands would fail, the
+        remainder cannot be calculated).
+
+        >>> ExtendedContext.remainder_near(Decimal('2.1'), Decimal('3'))
+        Decimal("-0.9")
+        >>> ExtendedContext.remainder_near(Decimal('10'), Decimal('6'))
+        Decimal("-2")
+        >>> ExtendedContext.remainder_near(Decimal('10'), Decimal('3'))
+        Decimal("1")
+        >>> ExtendedContext.remainder_near(Decimal('-10'), Decimal('3'))
+        Decimal("-1")
+        >>> ExtendedContext.remainder_near(Decimal('10.2'), Decimal('1'))
+        Decimal("0.2")
+        >>> ExtendedContext.remainder_near(Decimal('10'), Decimal('0.3'))
+        Decimal("0.1")
+        >>> ExtendedContext.remainder_near(Decimal('3.6'), Decimal('1.3'))
+        Decimal("-0.3")
+        """
+        return a.remainder_near(b, context=self)
+
+    def same_quantum(self, a, b):
+        """Returns True if the two operands have the same exponent.
+
+        The result is never affected by either the sign or the coefficient of
+        either operand.
+
+        >>> ExtendedContext.same_quantum(Decimal('2.17'), Decimal('0.001'))
+        False
+        >>> ExtendedContext.same_quantum(Decimal('2.17'), Decimal('0.01'))
+        True
+        >>> ExtendedContext.same_quantum(Decimal('2.17'), Decimal('1'))
+        False
+        >>> ExtendedContext.same_quantum(Decimal('Inf'), Decimal('-Inf'))
+        True
+        """
+        return a.same_quantum(b)
+
+    def sqrt(self, a):
+        """Returns the square root of a non-negative number to context precision.
+
+        If the result must be inexact, it is rounded using the round-half-even
+        algorithm.
+
+        >>> ExtendedContext.sqrt(Decimal('0'))
+        Decimal("0")
+        >>> ExtendedContext.sqrt(Decimal('-0'))
+        Decimal("-0")
+        >>> ExtendedContext.sqrt(Decimal('0.39'))
+        Decimal("0.624499800")
+        >>> ExtendedContext.sqrt(Decimal('100'))
+        Decimal("10")
+        >>> ExtendedContext.sqrt(Decimal('1'))
+        Decimal("1")
+        >>> ExtendedContext.sqrt(Decimal('1.0'))
+        Decimal("1.0")
+        >>> ExtendedContext.sqrt(Decimal('1.00'))
+        Decimal("1.0")
+        >>> ExtendedContext.sqrt(Decimal('7'))
+        Decimal("2.64575131")
+        >>> ExtendedContext.sqrt(Decimal('10'))
+        Decimal("3.16227766")
+        >>> ExtendedContext.prec
+        9
+        """
+        return a.sqrt(context=self)
+
+    def subtract(self, a, b):
+        """Return the difference between the two operands.
+
+        >>> ExtendedContext.subtract(Decimal('1.3'), Decimal('1.07'))
+        Decimal("0.23")
+        >>> ExtendedContext.subtract(Decimal('1.3'), Decimal('1.30'))
+        Decimal("0.00")
+        >>> ExtendedContext.subtract(Decimal('1.3'), Decimal('2.07'))
+        Decimal("-0.77")
+        """
+        return a.__sub__(b, context=self)
+
+    def to_eng_string(self, a):
+        """Converts a number to a string, using scientific notation.
+
+        The operation is not affected by the context.
+        """
+        return a.to_eng_string(context=self)
+
+    def to_sci_string(self, a):
+        """Converts a number to a string, using scientific notation.
+
+        The operation is not affected by the context.
+        """
+        return a.__str__(context=self)
+
+    def to_integral(self, a):
+        """Rounds to an integer.
+
+        When the operand has a negative exponent, the result is the same
+        as using the quantize() operation using the given operand as the
+        left-hand-operand, 1E+0 as the right-hand-operand, and the precision
+        of the operand as the precision setting, except that no flags will
+        be set. The rounding mode is taken from the context.
+
+        >>> ExtendedContext.to_integral(Decimal('2.1'))
+        Decimal("2")
+        >>> ExtendedContext.to_integral(Decimal('100'))
+        Decimal("100")
+        >>> ExtendedContext.to_integral(Decimal('100.0'))
+        Decimal("100")
+        >>> ExtendedContext.to_integral(Decimal('101.5'))
+        Decimal("102")
+        >>> ExtendedContext.to_integral(Decimal('-101.5'))
+        Decimal("-102")
+        >>> ExtendedContext.to_integral(Decimal('10E+5'))
+        Decimal("1.0E+6")
+        >>> ExtendedContext.to_integral(Decimal('7.89E+77'))
+        Decimal("7.89E+77")
+        >>> ExtendedContext.to_integral(Decimal('-Inf'))
+        Decimal("-Infinity")
+        """
+        return a.to_integral(context=self)
+
+class _WorkRep(object):
+    __slots__ = ('sign','int','exp')
+    # sign: 0 or 1
+    # int:  int or long
+    # exp:  None, int, or string
+
+    def __init__(self, value=None):
+        if value is None:
+            self.sign = None
+            self.int = 0
+            self.exp = None
+        elif isinstance(value, Decimal):
+            self.sign = value._sign
+            cum = 0
+            for digit  in value._int:
+                cum = cum * 10 + digit
+            self.int = cum
+            self.exp = value._exp
+        else:
+            # assert isinstance(value, tuple)
+            self.sign = value[0]
+            self.int = value[1]
+            self.exp = value[2]
+
+    def __repr__(self):
+        return "(%r, %r, %r)" % (self.sign, self.int, self.exp)
+
+    __str__ = __repr__
+
+
+
+def _normalize(op1, op2, shouldround = 0, prec = 0):
+    """Normalizes op1, op2 to have the same exp and length of coefficient.
+
+    Done during addition.
+    """
+    # Yes, the exponent is a long, but the difference between exponents
+    # must be an int-- otherwise you'd get a big memory problem.
+    numdigits = int(op1.exp - op2.exp)
+    if numdigits < 0:
+        numdigits = -numdigits
+        tmp = op2
+        other = op1
+    else:
+        tmp = op1
+        other = op2
+
+
+    if shouldround and numdigits > prec + 1:
+        # Big difference in exponents - check the adjusted exponents
+        tmp_len = len(str(tmp.int))
+        other_len = len(str(other.int))
+        if numdigits > (other_len + prec + 1 - tmp_len):
+            # If the difference in adjusted exps is > prec+1, we know
+            # other is insignificant, so might as well put a 1 after the precision.
+            # (since this is only for addition.)  Also stops use of massive longs.
+
+            extend = prec + 2 - tmp_len
+            if extend <= 0:
+                extend = 1
+            tmp.int *= 10 ** extend
+            tmp.exp -= extend
+            other.int = 1
+            other.exp = tmp.exp
+            return op1, op2
+
+    tmp.int *= 10 ** numdigits
+    tmp.exp -= numdigits
+    return op1, op2
+
+def _adjust_coefficients(op1, op2):
+    """Adjust op1, op2 so that op2.int * 10 > op1.int >= op2.int.
+
+    Returns the adjusted op1, op2 as well as the change in op1.exp-op2.exp.
+
+    Used on _WorkRep instances during division.
+    """
+    adjust = 0
+    #If op1 is smaller, make it larger
+    while op2.int > op1.int:
+        op1.int *= 10
+        op1.exp -= 1
+        adjust += 1
+
+    #If op2 is too small, make it larger
+    while op1.int >= (10 * op2.int):
+        op2.int *= 10
+        op2.exp -= 1
+        adjust -= 1
+
+    return op1, op2, adjust
+
+##### Helper Functions ########################################
+
+def _convert_other(other):
+    """Convert other to Decimal.
+
+    Verifies that it's ok to use in an implicit construction.
+    """
+    if isinstance(other, Decimal):
+        return other
+    if isinstance(other, (int, long)):
+        return Decimal(other)
+    return NotImplemented
+
+_infinity_map = {
+    'inf' : 1,
+    'infinity' : 1,
+    '+inf' : 1,
+    '+infinity' : 1,
+    '-inf' : -1,
+    '-infinity' : -1
+}
+
+def _isinfinity(num):
+    """Determines whether a string or float is infinity.
+
+    +1 for negative infinity; 0 for finite ; +1 for positive infinity
+    """
+    num = str(num).lower()
+    return _infinity_map.get(num, 0)
+
+def _isnan(num):
+    """Determines whether a string or float is NaN
+
+    (1, sign, diagnostic info as string) => NaN
+    (2, sign, diagnostic info as string) => sNaN
+    0 => not a NaN
+    """
+    num = str(num).lower()
+    if not num:
+        return 0
+
+    #get the sign, get rid of trailing [+-]
+    sign = 0
+    if num[0] == '+':
+        num = num[1:]
+    elif num[0] == '-':  #elif avoids '+-nan'
+        num = num[1:]
+        sign = 1
+
+    if num.startswith('nan'):
+        if len(num) > 3 and not num[3:].isdigit(): #diagnostic info
+            return 0
+        return (1, sign, num[3:].lstrip('0'))
+    if num.startswith('snan'):
+        if len(num) > 4 and not num[4:].isdigit():
+            return 0
+        return (2, sign, num[4:].lstrip('0'))
+    return 0
+
+
+##### Setup Specific Contexts ################################
+
+# The default context prototype used by Context()
+# Is mutable, so that new contexts can have different default values
+
+DefaultContext = Context(
+        prec=28, rounding=ROUND_HALF_EVEN,
+        traps=[DivisionByZero, Overflow, InvalidOperation],
+        flags=[],
+        _rounding_decision=ALWAYS_ROUND,
+        Emax=999999999,
+        Emin=-999999999,
+        capitals=1
+)
+
+# Pre-made alternate contexts offered by the specification
+# Don't change these; the user should be able to select these
+# contexts and be able to reproduce results from other implementations
+# of the spec.
+
+BasicContext = Context(
+        prec=9, rounding=ROUND_HALF_UP,
+        traps=[DivisionByZero, Overflow, InvalidOperation, Clamped, Underflow],
+        flags=[],
+)
+
+ExtendedContext = Context(
+        prec=9, rounding=ROUND_HALF_EVEN,
+        traps=[],
+        flags=[],
+)
+
+
+##### Useful Constants (internal use only) ####################
+
+#Reusable defaults
+Inf = Decimal('Inf')
+negInf = Decimal('-Inf')
+
+#Infsign[sign] is infinity w/ that sign
+Infsign = (Inf, negInf)
+
+NaN = Decimal('NaN')
+
+
+##### crud for parsing strings #################################
+import re
+
+# There's an optional sign at the start, and an optional exponent
+# at the end.  The exponent has an optional sign and at least one
+# digit.  In between, must have either at least one digit followed
+# by an optional fraction, or a decimal point followed by at least
+# one digit.  Yuck.
+
+_parser = re.compile(r"""
+#    \s*
+    (?P<sign>[-+])?
+    (
+        (?P<int>\d+) (\. (?P<frac>\d*))?
+    |
+        \. (?P<onlyfrac>\d+)
+    )
+    ([eE](?P<exp>[-+]? \d+))?
+#    \s*
+    $
+""", re.VERBOSE).match #Uncomment the \s* to allow leading or trailing spaces.
+
+del re
+
+# return sign, n, p s.t. float string value == -1**sign * n * 10**p exactly
+
+def _string2exact(s):
+    m = _parser(s)
+    if m is None:
+        raise ValueError("invalid literal for Decimal: %r" % s)
+
+    if m.group('sign') == "-":
+        sign = 1
+    else:
+        sign = 0
+
+    exp = m.group('exp')
+    if exp is None:
+        exp = 0
+    else:
+        exp = int(exp)
+
+    intpart = m.group('int')
+    if intpart is None:
+        intpart = ""
+        fracpart = m.group('onlyfrac')
+    else:
+        fracpart = m.group('frac')
+        if fracpart is None:
+            fracpart = ""
+
+    exp -= len(fracpart)
+
+    mantissa = intpart + fracpart
+    tmp = map(int, mantissa)
+    backup = tmp
+    while tmp and tmp[0] == 0:
+        del tmp[0]
+
+    # It's a zero
+    if not tmp:
+        if backup:
+            return (sign, tuple(backup), exp)
+        return (sign, (0,), exp)
+    mantissa = tuple(tmp)
+
+    return (sign, mantissa, exp)
+
+
+if __name__ == '__main__':
+    import doctest, sys
+    doctest.testmod(sys.modules[__name__])
diff --git a/webapp/django/utils/_os.py b/webapp/django/utils/_os.py
new file mode 100644
index 0000000..30d7cbd
--- /dev/null
+++ b/webapp/django/utils/_os.py
@@ -0,0 +1,23 @@
+from os.path import join, normcase, abspath, sep
+
+def safe_join(base, *paths):
+    """
+    Joins one or more path components to the base path component intelligently.
+    Returns a normalized, absolute version of the final path.
+
+    The final path must be located inside of the base path component (otherwise
+    a ValueError is raised).
+    """
+    # We need to use normcase to ensure we don't false-negative on case
+    # insensitive operating systems (like Windows).
+    final_path = normcase(abspath(join(base, *paths)))
+    base_path = normcase(abspath(base))
+    base_path_len = len(base_path)
+    # Ensure final_path starts with base_path and that the next character after
+    # the final path is os.sep (or nothing, in which case final_path must be
+    # equal to base_path).
+    if not final_path.startswith(base_path) \
+       or final_path[base_path_len:base_path_len+1] not in ('', sep):
+        raise ValueError('the joined path is located outside of the base path'
+                         ' component')
+    return final_path
diff --git a/webapp/django/utils/_threading_local.py b/webapp/django/utils/_threading_local.py
new file mode 100644
index 0000000..bf9a257
--- /dev/null
+++ b/webapp/django/utils/_threading_local.py
@@ -0,0 +1,240 @@
+"""Thread-local objects
+
+(Note that this module provides a Python version of thread
+ threading.local class.  Depending on the version of Python you're
+ using, there may be a faster one available.  You should always import
+ the local class from threading.)
+
+Thread-local objects support the management of thread-local data.
+If you have data that you want to be local to a thread, simply create
+a thread-local object and use its attributes:
+
+  >>> mydata = local()
+  >>> mydata.number = 42
+  >>> mydata.number
+  42
+
+You can also access the local-object's dictionary:
+
+  >>> mydata.__dict__
+  {'number': 42}
+  >>> mydata.__dict__.setdefault('widgets', [])
+  []
+  >>> mydata.widgets
+  []
+
+What's important about thread-local objects is that their data are
+local to a thread. If we access the data in a different thread:
+
+  >>> log = []
+  >>> def f():
+  ...     items = mydata.__dict__.items()
+  ...     items.sort()
+  ...     log.append(items)
+  ...     mydata.number = 11
+  ...     log.append(mydata.number)
+
+  >>> import threading
+  >>> thread = threading.Thread(target=f)
+  >>> thread.start()
+  >>> thread.join()
+  >>> log
+  [[], 11]
+
+we get different data.  Furthermore, changes made in the other thread
+don't affect data seen in this thread:
+
+  >>> mydata.number
+  42
+
+Of course, values you get from a local object, including a __dict__
+attribute, are for whatever thread was current at the time the
+attribute was read.  For that reason, you generally don't want to save
+these values across threads, as they apply only to the thread they
+came from.
+
+You can create custom local objects by subclassing the local class:
+
+  >>> class MyLocal(local):
+  ...     number = 2
+  ...     initialized = False
+  ...     def __init__(self, **kw):
+  ...         if self.initialized:
+  ...             raise SystemError('__init__ called too many times')
+  ...         self.initialized = True
+  ...         self.__dict__.update(kw)
+  ...     def squared(self):
+  ...         return self.number ** 2
+
+This can be useful to support default values, methods and
+initialization.  Note that if you define an __init__ method, it will be
+called each time the local object is used in a separate thread.  This
+is necessary to initialize each thread's dictionary.
+
+Now if we create a local object:
+
+  >>> mydata = MyLocal(color='red')
+
+Now we have a default number:
+
+  >>> mydata.number
+  2
+
+an initial color:
+
+  >>> mydata.color
+  'red'
+  >>> del mydata.color
+
+And a method that operates on the data:
+
+  >>> mydata.squared()
+  4
+
+As before, we can access the data in a separate thread:
+
+  >>> log = []
+  >>> thread = threading.Thread(target=f)
+  >>> thread.start()
+  >>> thread.join()
+  >>> log
+  [[('color', 'red'), ('initialized', True)], 11]
+
+without affecting this thread's data:
+
+  >>> mydata.number
+  2
+  >>> mydata.color
+  Traceback (most recent call last):
+  ...
+  AttributeError: 'MyLocal' object has no attribute 'color'
+
+Note that subclasses can define slots, but they are not thread
+local. They are shared across threads:
+
+  >>> class MyLocal(local):
+  ...     __slots__ = 'number'
+
+  >>> mydata = MyLocal()
+  >>> mydata.number = 42
+  >>> mydata.color = 'red'
+
+So, the separate thread:
+
+  >>> thread = threading.Thread(target=f)
+  >>> thread.start()
+  >>> thread.join()
+
+affects what we see:
+
+  >>> mydata.number
+  11
+
+>>> del mydata
+"""
+
+# Threading import is at end
+
+class _localbase(object):
+    __slots__ = '_local__key', '_local__args', '_local__lock'
+
+    def __new__(cls, *args, **kw):
+        self = object.__new__(cls)
+        key = '_local__key', 'thread.local.' + str(id(self))
+        object.__setattr__(self, '_local__key', key)
+        object.__setattr__(self, '_local__args', (args, kw))
+        object.__setattr__(self, '_local__lock', RLock())
+
+        if args or kw and (cls.__init__ is object.__init__):
+            raise TypeError("Initialization arguments are not supported")
+
+        # We need to create the thread dict in anticipation of
+        # __init__ being called, to make sure we don't call it
+        # again ourselves.
+        dict = object.__getattribute__(self, '__dict__')
+        currentThread().__dict__[key] = dict
+
+        return self
+
+def _patch(self):
+    key = object.__getattribute__(self, '_local__key')
+    d = currentThread().__dict__.get(key)
+    if d is None:
+        d = {}
+        currentThread().__dict__[key] = d
+        object.__setattr__(self, '__dict__', d)
+
+        # we have a new instance dict, so call out __init__ if we have
+        # one
+        cls = type(self)
+        if cls.__init__ is not object.__init__:
+            args, kw = object.__getattribute__(self, '_local__args')
+            cls.__init__(self, *args, **kw)
+    else:
+        object.__setattr__(self, '__dict__', d)
+
+class local(_localbase):
+
+    def __getattribute__(self, name):
+        lock = object.__getattribute__(self, '_local__lock')
+        lock.acquire()
+        try:
+            _patch(self)
+            return object.__getattribute__(self, name)
+        finally:
+            lock.release()
+
+    def __setattr__(self, name, value):
+        lock = object.__getattribute__(self, '_local__lock')
+        lock.acquire()
+        try:
+            _patch(self)
+            return object.__setattr__(self, name, value)
+        finally:
+            lock.release()
+
+    def __delattr__(self, name):
+        lock = object.__getattribute__(self, '_local__lock')
+        lock.acquire()
+        try:
+            _patch(self)
+            return object.__delattr__(self, name)
+        finally:
+            lock.release()
+
+
+    def __del__():
+        threading_enumerate = enumerate
+        __getattribute__ = object.__getattribute__
+
+        def __del__(self):
+            key = __getattribute__(self, '_local__key')
+
+            try:
+                threads = list(threading_enumerate())
+            except:
+                # if enumerate fails, as it seems to do during
+                # shutdown, we'll skip cleanup under the assumption
+                # that there is nothing to clean up
+                return
+
+            for thread in threads:
+                try:
+                    __dict__ = thread.__dict__
+                except AttributeError:
+                    # Thread is dying, rest in peace
+                    continue
+
+                if key in __dict__:
+                    try:
+                        del __dict__[key]
+                    except KeyError:
+                        pass # didn't have anything in this thread
+
+        return __del__
+    __del__ = __del__()
+
+try:
+    from threading import currentThread, enumerate, RLock
+except ImportError:
+    from dummy_threading import currentThread, enumerate, RLock
diff --git a/webapp/django/utils/autoreload.py b/webapp/django/utils/autoreload.py
new file mode 100644
index 0000000..8d9d6f2
--- /dev/null
+++ b/webapp/django/utils/autoreload.py
@@ -0,0 +1,119 @@
+# Autoreloading launcher.
+# Borrowed from Peter Hunt and the CherryPy project (http://www.cherrypy.org).
+# Some taken from Ian Bicking's Paste (http://pythonpaste.org/).
+#
+# Portions copyright (c) 2004, CherryPy Team (team@cherrypy.org)
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+#     * Redistributions of source code must retain the above copyright notice,
+#       this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright notice,
+#       this list of conditions and the following disclaimer in the documentation
+#       and/or other materials provided with the distribution.
+#     * Neither the name of the CherryPy Team nor the names of its contributors
+#       may be used to endorse or promote products derived from this software
+#       without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import os, sys, time
+
+try:
+    import thread
+except ImportError:
+    import dummy_thread as thread
+
+# This import does nothing, but it's necessary to avoid some race conditions
+# in the threading module. See http://code.djangoproject.com/ticket/2330 .
+try:
+    import threading
+except ImportError:
+    pass
+
+
+RUN_RELOADER = True
+
+_mtimes = {}
+_win = (sys.platform == "win32")
+
+def code_changed():
+    global _mtimes, _win
+    for filename in filter(lambda v: v, map(lambda m: getattr(m, "__file__", None), sys.modules.values())):
+        if filename.endswith(".pyc") or filename.endswith(".pyo"):
+            filename = filename[:-1]
+        if not os.path.exists(filename):
+            continue # File might be in an egg, so it can't be reloaded.
+        stat = os.stat(filename)
+        mtime = stat.st_mtime
+        if _win:
+            mtime -= stat.st_ctime
+        if filename not in _mtimes:
+            _mtimes[filename] = mtime
+            continue
+        if mtime != _mtimes[filename]:
+            _mtimes = {}
+            return True
+    return False
+
+def reloader_thread():
+    while RUN_RELOADER:
+        if code_changed():
+            sys.exit(3) # force reload
+        time.sleep(1)
+
+def restart_with_reloader():
+    while True:
+        args = [sys.executable] + sys.argv
+        if sys.platform == "win32":
+            args = ['"%s"' % arg for arg in args]
+        new_environ = os.environ.copy()
+        new_environ["RUN_MAIN"] = 'true'
+        exit_code = os.spawnve(os.P_WAIT, sys.executable, args, new_environ)
+        if exit_code != 3:
+            return exit_code
+
+def python_reloader(main_func, args, kwargs):
+    if os.environ.get("RUN_MAIN") == "true":
+        thread.start_new_thread(main_func, args, kwargs)
+        try:
+            reloader_thread()
+        except KeyboardInterrupt:
+            pass
+    else:
+        try:
+            sys.exit(restart_with_reloader())
+        except KeyboardInterrupt:
+            pass
+
+def jython_reloader(main_func, args, kwargs):
+    from _systemrestart import SystemRestart
+    thread.start_new_thread(main_func, args)
+    while True:
+        if code_changed():
+            raise SystemRestart
+        time.sleep(1)
+
+
+def main(main_func, args=None, kwargs=None):
+    if args is None:
+        args = ()
+    if kwargs is None:
+        kwargs = {}
+    if sys.platform.startswith('java'):
+        reloader = jython_reloader
+    else:
+        reloader = python_reloader
+    reloader(main_func, args, kwargs)
+
diff --git a/webapp/django/utils/cache.py b/webapp/django/utils/cache.py
new file mode 100644
index 0000000..9c566ae
--- /dev/null
+++ b/webapp/django/utils/cache.py
@@ -0,0 +1,204 @@
+"""
+This module contains helper functions for controlling caching. It does so by
+managing the "Vary" header of responses. It includes functions to patch the
+header of response objects directly and decorators that change functions to do
+that header-patching themselves.
+
+For information on the Vary header, see:
+
+    http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44
+
+Essentially, the "Vary" HTTP header defines which headers a cache should take
+into account when building its cache key. Requests with the same path but
+different header content for headers named in "Vary" need to get different
+cache keys to prevent delivery of wrong content.
+
+An example: i18n middleware would need to distinguish caches by the
+"Accept-language" header.
+"""
+
+import re
+import time
+try:
+    set
+except NameError:
+    from sets import Set as set   # Python 2.3 fallback
+
+from django.conf import settings
+from django.core.cache import cache
+from django.utils.encoding import smart_str, iri_to_uri
+from django.utils.http import http_date
+from django.utils.hashcompat import md5_constructor
+
+cc_delim_re = re.compile(r'\s*,\s*')
+
+def patch_cache_control(response, **kwargs):
+    """
+    This function patches the Cache-Control header by adding all
+    keyword arguments to it. The transformation is as follows:
+
+    * All keyword parameter names are turned to lowercase, and underscores
+      are converted to hyphens.
+    * If the value of a parameter is True (exactly True, not just a
+      true value), only the parameter name is added to the header.
+    * All other parameters are added with their value, after applying
+      str() to it.
+    """
+    def dictitem(s):
+        t = s.split('=', 1)
+        if len(t) > 1:
+            return (t[0].lower(), t[1])
+        else:
+            return (t[0].lower(), True)
+
+    def dictvalue(t):
+        if t[1] is True:
+            return t[0]
+        else:
+            return t[0] + '=' + smart_str(t[1])
+
+    if response.has_header('Cache-Control'):
+        cc = cc_delim_re.split(response['Cache-Control'])
+        cc = dict([dictitem(el) for el in cc])
+    else:
+        cc = {}
+
+    # If there's already a max-age header but we're being asked to set a new
+    # max-age, use the minimum of the two ages. In practice this happens when
+    # a decorator and a piece of middleware both operate on a given view.
+    if 'max-age' in cc and 'max_age' in kwargs:
+        kwargs['max_age'] = min(cc['max-age'], kwargs['max_age'])
+
+    for (k, v) in kwargs.items():
+        cc[k.replace('_', '-')] = v
+    cc = ', '.join([dictvalue(el) for el in cc.items()])
+    response['Cache-Control'] = cc
+
+def get_max_age(response):
+    """
+    Returns the max-age from the response Cache-Control header as an integer
+    (or ``None`` if it wasn't found or wasn't an integer.
+    """
+    if not response.has_header('Cache-Control'):
+        return
+    cc = dict([_to_tuple(el) for el in
+        cc_delim_re.split(response['Cache-Control'])])
+    if 'max-age' in cc:
+        try:
+            return int(cc['max-age'])
+        except (ValueError, TypeError):
+            pass
+
+def patch_response_headers(response, cache_timeout=None):
+    """
+    Adds some useful headers to the given HttpResponse object:
+        ETag, Last-Modified, Expires and Cache-Control
+
+    Each header is only added if it isn't already set.
+
+    cache_timeout is in seconds. The CACHE_MIDDLEWARE_SECONDS setting is used
+    by default.
+    """
+    if cache_timeout is None:
+        cache_timeout = settings.CACHE_MIDDLEWARE_SECONDS
+    if cache_timeout < 0:
+        cache_timeout = 0 # Can't have max-age negative
+    if not response.has_header('ETag'):
+        response['ETag'] = '"%s"' % md5_constructor(response.content).hexdigest()
+    if not response.has_header('Last-Modified'):
+        response['Last-Modified'] = http_date()
+    if not response.has_header('Expires'):
+        response['Expires'] = http_date(time.time() + cache_timeout)
+    patch_cache_control(response, max_age=cache_timeout)
+
+def add_never_cache_headers(response):
+    """
+    Adds headers to a response to indicate that a page should never be cached.
+    """
+    patch_response_headers(response, cache_timeout=-1)
+
+def patch_vary_headers(response, newheaders):
+    """
+    Adds (or updates) the "Vary" header in the given HttpResponse object.
+    newheaders is a list of header names that should be in "Vary". Existing
+    headers in "Vary" aren't removed.
+    """
+    # Note that we need to keep the original order intact, because cache
+    # implementations may rely on the order of the Vary contents in, say,
+    # computing an MD5 hash.
+    if response.has_header('Vary'):
+        vary_headers = cc_delim_re.split(response['Vary'])
+    else:
+        vary_headers = []
+    # Use .lower() here so we treat headers as case-insensitive.
+    existing_headers = set([header.lower() for header in vary_headers])
+    additional_headers = [newheader for newheader in newheaders
+                          if newheader.lower() not in existing_headers]
+    response['Vary'] = ', '.join(vary_headers + additional_headers)
+
+def _generate_cache_key(request, headerlist, key_prefix):
+    """Returns a cache key from the headers given in the header list."""
+    ctx = md5_constructor()
+    for header in headerlist:
+        value = request.META.get(header, None)
+        if value is not None:
+            ctx.update(value)
+    return 'views.decorators.cache.cache_page.%s.%s.%s' % (
+               key_prefix, iri_to_uri(request.path), ctx.hexdigest())
+
+def get_cache_key(request, key_prefix=None):
+    """
+    Returns a cache key based on the request path. It can be used in the
+    request phase because it pulls the list of headers to take into account
+    from the global path registry and uses those to build a cache key to check
+    against.
+
+    If there is no headerlist stored, the page needs to be rebuilt, so this
+    function returns None.
+    """
+    if key_prefix is None:
+        key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
+    cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
+                    key_prefix, iri_to_uri(request.path))
+    headerlist = cache.get(cache_key, None)
+    if headerlist is not None:
+        return _generate_cache_key(request, headerlist, key_prefix)
+    else:
+        return None
+
+def learn_cache_key(request, response, cache_timeout=None, key_prefix=None):
+    """
+    Learns what headers to take into account for some request path from the
+    response object. It stores those headers in a global path registry so that
+    later access to that path will know what headers to take into account
+    without building the response object itself. The headers are named in the
+    Vary header of the response, but we want to prevent response generation.
+
+    The list of headers to use for cache key generation is stored in the same
+    cache as the pages themselves. If the cache ages some data out of the
+    cache, this just means that we have to build the response once to get at
+    the Vary header and so at the list of headers to use for the cache key.
+    """
+    if key_prefix is None:
+        key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
+    if cache_timeout is None:
+        cache_timeout = settings.CACHE_MIDDLEWARE_SECONDS
+    cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
+                    key_prefix, iri_to_uri(request.path))
+    if response.has_header('Vary'):
+        headerlist = ['HTTP_'+header.upper().replace('-', '_')
+                      for header in cc_delim_re.split(response['Vary'])]
+        cache.set(cache_key, headerlist, cache_timeout)
+        return _generate_cache_key(request, headerlist, key_prefix)
+    else:
+        # if there is no Vary header, we still need a cache key
+        # for the request.path
+        cache.set(cache_key, [], cache_timeout)
+        return _generate_cache_key(request, [], key_prefix)
+
+
+def _to_tuple(s):
+    t = s.split('=',1)
+    if len(t) == 2:
+        return t[0].lower(), t[1]
+    return t[0].lower(), True
diff --git a/webapp/django/utils/checksums.py b/webapp/django/utils/checksums.py
new file mode 100644
index 0000000..970f563
--- /dev/null
+++ b/webapp/django/utils/checksums.py
@@ -0,0 +1,22 @@
+"""
+Common checksum routines (used in multiple localflavor/ cases, for example).
+"""
+
+__all__ = ['luhn',]
+
+LUHN_ODD_LOOKUP = (0, 2, 4, 6, 8, 1, 3, 5, 7, 9) # sum_of_digits(index * 2)
+
+def luhn(candidate):
+    """
+    Checks a candidate number for validity according to the Luhn
+    algorithm (used in validation of, for example, credit cards).
+    Both numeric and string candidates are accepted.
+    """
+    if not isinstance(candidate, basestring):
+        candidate = str(candidate)
+    try:
+        evens = sum([int(c) for c in candidate[-1::-2]])
+        odds = sum([LUHN_ODD_LOOKUP[int(c)] for c in candidate[-2::-2]])
+        return ((evens + odds) % 10 == 0)
+    except ValueError:  # Raised if an int conversion fails
+        return False
diff --git a/webapp/django/utils/daemonize.py b/webapp/django/utils/daemonize.py
new file mode 100644
index 0000000..68e5392
--- /dev/null
+++ b/webapp/django/utils/daemonize.py
@@ -0,0 +1,58 @@
+import os
+import sys
+
+if os.name == 'posix':
+    def become_daemon(our_home_dir='.', out_log='/dev/null',
+                      err_log='/dev/null', umask=022):
+        "Robustly turn into a UNIX daemon, running in our_home_dir."
+        # First fork
+        try:
+            if os.fork() > 0:
+                sys.exit(0)     # kill off parent
+        except OSError, e:
+            sys.stderr.write("fork #1 failed: (%d) %s\n" % (e.errno, e.strerror))
+            sys.exit(1)
+        os.setsid()
+        os.chdir(our_home_dir)
+        os.umask(umask)
+
+        # Second fork
+        try:
+            if os.fork() > 0:
+                os._exit(0)
+        except OSError, e:
+            sys.stderr.write("fork #2 failed: (%d) %s\n" % (e.errno, e.strerror))
+            os._exit(1)
+
+        si = open('/dev/null', 'r')
+        so = open(out_log, 'a+', 0)
+        se = open(err_log, 'a+', 0)
+        os.dup2(si.fileno(), sys.stdin.fileno())
+        os.dup2(so.fileno(), sys.stdout.fileno())
+        os.dup2(se.fileno(), sys.stderr.fileno())
+        # Set custom file descriptors so that they get proper buffering.
+        sys.stdout, sys.stderr = so, se
+else:
+    def become_daemon(our_home_dir='.', out_log=None, err_log=None, umask=022):
+        """
+        If we're not running under a POSIX system, just simulate the daemon
+        mode by doing redirections and directory changing.
+        """
+        os.chdir(our_home_dir)
+        os.umask(umask)
+        sys.stdin.close()
+        sys.stdout.close()
+        sys.stderr.close()
+        if err_log:
+            sys.stderr = open(err_log, 'a', 0)
+        else:
+            sys.stderr = NullDevice()
+        if out_log:
+            sys.stdout = open(out_log, 'a', 0)
+        else:
+            sys.stdout = NullDevice()
+
+    class NullDevice:
+        "A writeable object that writes to nowhere -- like /dev/null."
+        def write(self, s):
+            pass
diff --git a/webapp/django/utils/datastructures.py b/webapp/django/utils/datastructures.py
new file mode 100644
index 0000000..5837c3d
--- /dev/null
+++ b/webapp/django/utils/datastructures.py
@@ -0,0 +1,421 @@
+class MergeDict(object):
+    """
+    A simple class for creating new "virtual" dictionaries that actually look
+    up values in more than one dictionary, passed in the constructor.
+
+    If a key appears in more than one of the given dictionaries, only the
+    first occurrence will be used.
+    """
+    def __init__(self, *dicts):
+        self.dicts = dicts
+
+    def __getitem__(self, key):
+        for dict_ in self.dicts:
+            try:
+                return dict_[key]
+            except KeyError:
+                pass
+        raise KeyError
+
+    def __copy__(self):
+        return self.__class__(*self.dicts)
+
+    def get(self, key, default=None):
+        try:
+            return self[key]
+        except KeyError:
+            return default
+
+    def getlist(self, key):
+        for dict_ in self.dicts:
+            if key in dict_.keys():
+                return dict_.getlist(key)
+        return []
+
+    def items(self):
+        item_list = []
+        for dict_ in self.dicts:
+            item_list.extend(dict_.items())
+        return item_list
+
+    def has_key(self, key):
+        for dict_ in self.dicts:
+            if key in dict_:
+                return True
+        return False
+
+    __contains__ = has_key
+
+    def copy(self):
+        """Returns a copy of this object."""
+        return self.__copy__()
+
+class SortedDict(dict):
+    """
+    A dictionary that keeps its keys in the order in which they're inserted.
+    """
+    def __new__(cls, *args, **kwargs):
+        instance = super(SortedDict, cls).__new__(cls, *args, **kwargs)
+        instance.keyOrder = []
+        return instance
+
+    def __init__(self, data=None):
+        if data is None:
+            data = {}
+        super(SortedDict, self).__init__(data)
+        if isinstance(data, dict):
+            self.keyOrder = data.keys()
+        else:
+            self.keyOrder = []
+            for key, value in data:
+                if key not in self.keyOrder:
+                    self.keyOrder.append(key)
+
+    def __deepcopy__(self, memo):
+        from copy import deepcopy
+        return self.__class__([(key, deepcopy(value, memo))
+                               for key, value in self.iteritems()])
+
+    def __setitem__(self, key, value):
+        super(SortedDict, self).__setitem__(key, value)
+        if key not in self.keyOrder:
+            self.keyOrder.append(key)
+
+    def __delitem__(self, key):
+        super(SortedDict, self).__delitem__(key)
+        self.keyOrder.remove(key)
+
+    def __iter__(self):
+        for k in self.keyOrder:
+            yield k
+
+    def pop(self, k, *args):
+        result = super(SortedDict, self).pop(k, *args)
+        try:
+            self.keyOrder.remove(k)
+        except ValueError:
+            # Key wasn't in the dictionary in the first place. No problem.
+            pass
+        return result
+
+    def popitem(self):
+        result = super(SortedDict, self).popitem()
+        self.keyOrder.remove(result[0])
+        return result
+
+    def items(self):
+        return zip(self.keyOrder, self.values())
+
+    def iteritems(self):
+        for key in self.keyOrder:
+            yield key, super(SortedDict, self).__getitem__(key)
+
+    def keys(self):
+        return self.keyOrder[:]
+
+    def iterkeys(self):
+        return iter(self.keyOrder)
+
+    def values(self):
+        return [super(SortedDict, self).__getitem__(k) for k in self.keyOrder]
+
+    def itervalues(self):
+        for key in self.keyOrder:
+            yield super(SortedDict, self).__getitem__(key)
+
+    def update(self, dict_):
+        for k, v in dict_.items():
+            self.__setitem__(k, v)
+
+    def setdefault(self, key, default):
+        if key not in self.keyOrder:
+            self.keyOrder.append(key)
+        return super(SortedDict, self).setdefault(key, default)
+
+    def value_for_index(self, index):
+        """Returns the value of the item at the given zero-based index."""
+        return self[self.keyOrder[index]]
+
+    def insert(self, index, key, value):
+        """Inserts the key, value pair before the item with the given index."""
+        if key in self.keyOrder:
+            n = self.keyOrder.index(key)
+            del self.keyOrder[n]
+            if n < index:
+                index -= 1
+        self.keyOrder.insert(index, key)
+        super(SortedDict, self).__setitem__(key, value)
+
+    def copy(self):
+        """Returns a copy of this object."""
+        # This way of initializing the copy means it works for subclasses, too.
+        obj = self.__class__(self)
+        obj.keyOrder = self.keyOrder[:]
+        return obj
+
+    def __repr__(self):
+        """
+        Replaces the normal dict.__repr__ with a version that returns the keys
+        in their sorted order.
+        """
+        return '{%s}' % ', '.join(['%r: %r' % (k, v) for k, v in self.items()])
+
+    def clear(self):
+        super(SortedDict, self).clear()
+        self.keyOrder = []
+
+class MultiValueDictKeyError(KeyError):
+    pass
+
+class MultiValueDict(dict):
+    """
+    A subclass of dictionary customized to handle multiple values for the
+    same key.
+
+    >>> d = MultiValueDict({'name': ['Adrian', 'Simon'], 'position': ['Developer']})
+    >>> d['name']
+    'Simon'
+    >>> d.getlist('name')
+    ['Adrian', 'Simon']
+    >>> d.get('lastname', 'nonexistent')
+    'nonexistent'
+    >>> d.setlist('lastname', ['Holovaty', 'Willison'])
+
+    This class exists to solve the irritating problem raised by cgi.parse_qs,
+    which returns a list for every key, even though most Web forms submit
+    single name-value pairs.
+    """
+    def __init__(self, key_to_list_mapping=()):
+        super(MultiValueDict, self).__init__(key_to_list_mapping)
+
+    def __repr__(self):
+        return "<%s: %s>" % (self.__class__.__name__,
+                             super(MultiValueDict, self).__repr__())
+
+    def __getitem__(self, key):
+        """
+        Returns the last data value for this key, or [] if it's an empty list;
+        raises KeyError if not found.
+        """
+        try:
+            list_ = super(MultiValueDict, self).__getitem__(key)
+        except KeyError:
+            raise MultiValueDictKeyError, "Key %r not found in %r" % (key, self)
+        try:
+            return list_[-1]
+        except IndexError:
+            return []
+
+    def __setitem__(self, key, value):
+        super(MultiValueDict, self).__setitem__(key, [value])
+
+    def __copy__(self):
+        return self.__class__(super(MultiValueDict, self).items())
+
+    def __deepcopy__(self, memo=None):
+        import copy
+        if memo is None:
+            memo = {}
+        result = self.__class__()
+        memo[id(self)] = result
+        for key, value in dict.items(self):
+            dict.__setitem__(result, copy.deepcopy(key, memo),
+                             copy.deepcopy(value, memo))
+        return result
+
+    def get(self, key, default=None):
+        """
+        Returns the last data value for the passed key. If key doesn't exist
+        or value is an empty list, then default is returned.
+        """
+        try:
+            val = self[key]
+        except KeyError:
+            return default
+        if val == []:
+            return default
+        return val
+
+    def getlist(self, key):
+        """
+        Returns the list of values for the passed key. If key doesn't exist,
+        then an empty list is returned.
+        """
+        try:
+            return super(MultiValueDict, self).__getitem__(key)
+        except KeyError:
+            return []
+
+    def setlist(self, key, list_):
+        super(MultiValueDict, self).__setitem__(key, list_)
+
+    def setdefault(self, key, default=None):
+        if key not in self:
+            self[key] = default
+        return self[key]
+
+    def setlistdefault(self, key, default_list=()):
+        if key not in self:
+            self.setlist(key, default_list)
+        return self.getlist(key)
+
+    def appendlist(self, key, value):
+        """Appends an item to the internal list associated with key."""
+        self.setlistdefault(key, [])
+        super(MultiValueDict, self).__setitem__(key, self.getlist(key) + [value])
+
+    def items(self):
+        """
+        Returns a list of (key, value) pairs, where value is the last item in
+        the list associated with the key.
+        """
+        return [(key, self[key]) for key in self.keys()]
+
+    def iteritems(self):
+        """
+        Yields (key, value) pairs, where value is the last item in the list
+        associated with the key.
+        """
+        for key in self.keys():
+            yield (key, self[key])
+
+    def lists(self):
+        """Returns a list of (key, list) pairs."""
+        return super(MultiValueDict, self).items()
+
+    def values(self):
+        """Returns a list of the last value on every key list."""
+        return [self[key] for key in self.keys()]
+
+    def copy(self):
+        """Returns a copy of this object."""
+        return self.__deepcopy__()
+
+    def update(self, *args, **kwargs):
+        """
+        update() extends rather than replaces existing key lists.
+        Also accepts keyword args.
+        """
+        if len(args) > 1:
+            raise TypeError, "update expected at most 1 arguments, got %d" % len(args)
+        if args:
+            other_dict = args[0]
+            if isinstance(other_dict, MultiValueDict):
+                for key, value_list in other_dict.lists():
+                    self.setlistdefault(key, []).extend(value_list)
+            else:
+                try:
+                    for key, value in other_dict.items():
+                        self.setlistdefault(key, []).append(value)
+                except TypeError:
+                    raise ValueError, "MultiValueDict.update() takes either a MultiValueDict or dictionary"
+        for key, value in kwargs.iteritems():
+            self.setlistdefault(key, []).append(value)
+
+class DotExpandedDict(dict):
+    """
+    A special dictionary constructor that takes a dictionary in which the keys
+    may contain dots to specify inner dictionaries. It's confusing, but this
+    example should make sense.
+
+    >>> d = DotExpandedDict({'person.1.firstname': ['Simon'], \
+            'person.1.lastname': ['Willison'], \
+            'person.2.firstname': ['Adrian'], \
+            'person.2.lastname': ['Holovaty']})
+    >>> d
+    {'person': {'1': {'lastname': ['Willison'], 'firstname': ['Simon']}, '2': {'lastname': ['Holovaty'], 'firstname': ['Adrian']}}}
+    >>> d['person']
+    {'1': {'lastname': ['Willison'], 'firstname': ['Simon']}, '2': {'lastname': ['Holovaty'], 'firstname': ['Adrian']}}
+    >>> d['person']['1']
+    {'lastname': ['Willison'], 'firstname': ['Simon']}
+
+    # Gotcha: Results are unpredictable if the dots are "uneven":
+    >>> DotExpandedDict({'c.1': 2, 'c.2': 3, 'c': 1})
+    {'c': 1}
+    """
+    def __init__(self, key_to_list_mapping):
+        for k, v in key_to_list_mapping.items():
+            current = self
+            bits = k.split('.')
+            for bit in bits[:-1]:
+                current = current.setdefault(bit, {})
+            # Now assign value to current position
+            try:
+                current[bits[-1]] = v
+            except TypeError: # Special-case if current isn't a dict.
+                current = {bits[-1]: v}
+
+class ImmutableList(tuple):
+    """
+    A tuple-like object that raises useful errors when it is asked to mutate.
+
+    Example::
+
+        >>> a = ImmutableList(range(5), warning="You cannot mutate this.")
+        >>> a[3] = '4'
+        Traceback (most recent call last):
+            ...
+        AttributeError: You cannot mutate this.
+    """
+
+    def __new__(cls, *args, **kwargs):
+        if 'warning' in kwargs:
+            warning = kwargs['warning']
+            del kwargs['warning']
+        else:
+            warning = 'ImmutableList object is immutable.'
+        self = tuple.__new__(cls, *args, **kwargs)
+        self.warning = warning
+        return self
+
+    def complain(self, *wargs, **kwargs):
+        if isinstance(self.warning, Exception):
+            raise self.warning
+        else:
+            raise AttributeError, self.warning
+
+    # All list mutation functions complain.
+    __delitem__  = complain
+    __delslice__ = complain
+    __iadd__     = complain
+    __imul__     = complain
+    __setitem__  = complain
+    __setslice__ = complain
+    append       = complain
+    extend       = complain
+    insert       = complain
+    pop          = complain
+    remove       = complain
+    sort         = complain
+    reverse      = complain
+
+class DictWrapper(dict):
+    """
+    Wraps accesses to a dictionary so that certain values (those starting with
+    the specified prefix) are passed through a function before being returned.
+    The prefix is removed before looking up the real value.
+
+    Used by the SQL construction code to ensure that values are correctly
+    quoted before being used.
+    """
+    def __init__(self, data, func, prefix):
+        super(DictWrapper, self).__init__(data)
+        self.func = func
+        self.prefix = prefix
+
+    def __getitem__(self, key):
+        """
+        Retrieves the real value after stripping the prefix string (if
+        present). If the prefix is present, pass the value through self.func
+        before returning, otherwise return the raw value.
+        """
+        if key.startswith(self.prefix):
+            use_func = True
+            key = key[len(self.prefix):]
+        else:
+            use_func = False
+        value = super(DictWrapper, self).__getitem__(key)
+        if use_func:
+            return self.func(value)
+        return value
+
diff --git a/webapp/django/utils/dateformat.py b/webapp/django/utils/dateformat.py
new file mode 100644
index 0000000..8da9385
--- /dev/null
+++ b/webapp/django/utils/dateformat.py
@@ -0,0 +1,269 @@
+"""
+PHP date() style date formatting
+See http://www.php.net/date for format strings
+
+Usage:
+>>> import datetime
+>>> d = datetime.datetime.now()
+>>> df = DateFormat(d)
+>>> print df.format('jS F Y H:i')
+7th October 2003 11:39
+>>>
+"""
+
+from django.utils.dates import MONTHS, MONTHS_3, MONTHS_AP, WEEKDAYS, WEEKDAYS_ABBR
+from django.utils.tzinfo import LocalTimezone
+from django.utils.translation import ugettext as _
+from django.utils.encoding import force_unicode
+from calendar import isleap, monthrange
+import re, time
+
+re_formatchars = re.compile(r'(?<!\\)([aAbBdDfFgGhHiIjlLmMnNOPrsStTUwWyYzZ])')
+re_escaped = re.compile(r'\\(.)')
+
+class Formatter(object):
+    def format(self, formatstr):
+        pieces = []
+        for i, piece in enumerate(re_formatchars.split(force_unicode(formatstr))):
+            if i % 2:
+                pieces.append(force_unicode(getattr(self, piece)()))
+            elif piece:
+                pieces.append(re_escaped.sub(r'\1', piece))
+        return u''.join(pieces)
+
+class TimeFormat(Formatter):
+    def __init__(self, t):
+        self.data = t
+
+    def a(self):
+        "'a.m.' or 'p.m.'"
+        if self.data.hour > 11:
+            return _('p.m.')
+        return _('a.m.')
+
+    def A(self):
+        "'AM' or 'PM'"
+        if self.data.hour > 11:
+            return _('PM')
+        return _('AM')
+
+    def B(self):
+        "Swatch Internet time"
+        raise NotImplementedError
+
+    def f(self):
+        """
+        Time, in 12-hour hours and minutes, with minutes left off if they're
+        zero.
+        Examples: '1', '1:30', '2:05', '2'
+        Proprietary extension.
+        """
+        if self.data.minute == 0:
+            return self.g()
+        return u'%s:%s' % (self.g(), self.i())
+
+    def g(self):
+        "Hour, 12-hour format without leading zeros; i.e. '1' to '12'"
+        if self.data.hour == 0:
+            return 12
+        if self.data.hour > 12:
+            return self.data.hour - 12
+        return self.data.hour
+
+    def G(self):
+        "Hour, 24-hour format without leading zeros; i.e. '0' to '23'"
+        return self.data.hour
+
+    def h(self):
+        "Hour, 12-hour format; i.e. '01' to '12'"
+        return u'%02d' % self.g()
+
+    def H(self):
+        "Hour, 24-hour format; i.e. '00' to '23'"
+        return u'%02d' % self.G()
+
+    def i(self):
+        "Minutes; i.e. '00' to '59'"
+        return u'%02d' % self.data.minute
+
+    def P(self):
+        """
+        Time, in 12-hour hours, minutes and 'a.m.'/'p.m.', with minutes left off
+        if they're zero and the strings 'midnight' and 'noon' if appropriate.
+        Examples: '1 a.m.', '1:30 p.m.', 'midnight', 'noon', '12:30 p.m.'
+        Proprietary extension.
+        """
+        if self.data.minute == 0 and self.data.hour == 0:
+            return _('midnight')
+        if self.data.minute == 0 and self.data.hour == 12:
+            return _('noon')
+        return u'%s %s' % (self.f(), self.a())
+
+    def s(self):
+        "Seconds; i.e. '00' to '59'"
+        return u'%02d' % self.data.second
+
+class DateFormat(TimeFormat):
+    year_days = [None, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
+
+    def __init__(self, dt):
+        # Accepts either a datetime or date object.
+        self.data = dt
+        self.timezone = getattr(dt, 'tzinfo', None)
+        if hasattr(self.data, 'hour') and not self.timezone:
+            self.timezone = LocalTimezone(dt)
+
+    def b(self):
+        "Month, textual, 3 letters, lowercase; e.g. 'jan'"
+        return MONTHS_3[self.data.month]
+
+    def d(self):
+        "Day of the month, 2 digits with leading zeros; i.e. '01' to '31'"
+        return u'%02d' % self.data.day
+
+    def D(self):
+        "Day of the week, textual, 3 letters; e.g. 'Fri'"
+        return WEEKDAYS_ABBR[self.data.weekday()]
+
+    def F(self):
+        "Month, textual, long; e.g. 'January'"
+        return MONTHS[self.data.month]
+
+    def I(self):
+        "'1' if Daylight Savings Time, '0' otherwise."
+        if self.timezone.dst(self.data):
+            return u'1'
+        else:
+            return u'0'
+
+    def j(self):
+        "Day of the month without leading zeros; i.e. '1' to '31'"
+        return self.data.day
+
+    def l(self):
+        "Day of the week, textual, long; e.g. 'Friday'"
+        return WEEKDAYS[self.data.weekday()]
+
+    def L(self):
+        "Boolean for whether it is a leap year; i.e. True or False"
+        return isleap(self.data.year)
+
+    def m(self):
+        "Month; i.e. '01' to '12'"
+        return u'%02d' % self.data.month
+
+    def M(self):
+        "Month, textual, 3 letters; e.g. 'Jan'"
+        return MONTHS_3[self.data.month].title()
+
+    def n(self):
+        "Month without leading zeros; i.e. '1' to '12'"
+        return self.data.month
+
+    def N(self):
+        "Month abbreviation in Associated Press style. Proprietary extension."
+        return MONTHS_AP[self.data.month]
+
+    def O(self):
+        "Difference to Greenwich time in hours; e.g. '+0200'"
+        seconds = self.Z()
+        return u"%+03d%02d" % (seconds // 3600, (seconds // 60) % 60)
+
+    def r(self):
+        "RFC 2822 formatted date; e.g. 'Thu, 21 Dec 2000 16:01:07 +0200'"
+        return self.format('D, j M Y H:i:s O')
+
+    def S(self):
+        "English ordinal suffix for the day of the month, 2 characters; i.e. 'st', 'nd', 'rd' or 'th'"
+        if self.data.day in (11, 12, 13): # Special case
+            return u'th'
+        last = self.data.day % 10
+        if last == 1:
+            return u'st'
+        if last == 2:
+            return u'nd'
+        if last == 3:
+            return u'rd'
+        return u'th'
+
+    def t(self):
+        "Number of days in the given month; i.e. '28' to '31'"
+        return u'%02d' % monthrange(self.data.year, self.data.month)[1]
+
+    def T(self):
+        "Time zone of this machine; e.g. 'EST' or 'MDT'"
+        name = self.timezone.tzname(self.data)
+        if name is None:
+            name = self.format('O')
+        return unicode(name)
+
+    def U(self):
+        "Seconds since the Unix epoch (January 1 1970 00:00:00 GMT)"
+        off = self.timezone.utcoffset(self.data)
+        return int(time.mktime(self.data.timetuple())) + off.seconds * 60
+
+    def w(self):
+        "Day of the week, numeric, i.e. '0' (Sunday) to '6' (Saturday)"
+        return (self.data.weekday() + 1) % 7
+
+    def W(self):
+        "ISO-8601 week number of year, weeks starting on Monday"
+        # Algorithm from http://www.personal.ecu.edu/mccartyr/ISOwdALG.txt
+        week_number = None
+        jan1_weekday = self.data.replace(month=1, day=1).weekday() + 1
+        weekday = self.data.weekday() + 1
+        day_of_year = self.z()
+        if day_of_year <= (8 - jan1_weekday) and jan1_weekday > 4:
+            if jan1_weekday == 5 or (jan1_weekday == 6 and isleap(self.data.year-1)):
+                week_number = 53
+            else:
+                week_number = 52
+        else:
+            if isleap(self.data.year):
+                i = 366
+            else:
+                i = 365
+            if (i - day_of_year) < (4 - weekday):
+                week_number = 1
+            else:
+                j = day_of_year + (7 - weekday) + (jan1_weekday - 1)
+                week_number = j // 7
+                if jan1_weekday > 4:
+                    week_number -= 1
+        return week_number
+
+    def y(self):
+        "Year, 2 digits; e.g. '99'"
+        return unicode(self.data.year)[2:]
+
+    def Y(self):
+        "Year, 4 digits; e.g. '1999'"
+        return self.data.year
+
+    def z(self):
+        "Day of the year; i.e. '0' to '365'"
+        doy = self.year_days[self.data.month] + self.data.day
+        if self.L() and self.data.month > 2:
+            doy += 1
+        return doy
+
+    def Z(self):
+        """
+        Time zone offset in seconds (i.e. '-43200' to '43200'). The offset for
+        timezones west of UTC is always negative, and for those east of UTC is
+        always positive.
+        """
+        offset = self.timezone.utcoffset(self.data)
+        # Only days can be negative, so negative offsets have days=-1 and
+        # seconds positive. Positive offsets have days=0
+        return offset.days * 86400 + offset.seconds
+
+def format(value, format_string):
+    "Convenience function"
+    df = DateFormat(value)
+    return df.format(format_string)
+
+def time_format(value, format_string):
+    "Convenience function"
+    tf = TimeFormat(value)
+    return tf.format(format_string)
diff --git a/webapp/django/utils/dates.py b/webapp/django/utils/dates.py
new file mode 100644
index 0000000..4427af8
--- /dev/null
+++ b/webapp/django/utils/dates.py
@@ -0,0 +1,33 @@
+"Commonly-used date structures"
+
+from django.utils.translation import ugettext_lazy as _
+
+WEEKDAYS = {
+    0:_('Monday'), 1:_('Tuesday'), 2:_('Wednesday'), 3:_('Thursday'), 4:_('Friday'),
+    5:_('Saturday'), 6:_('Sunday')
+}
+WEEKDAYS_ABBR = {
+    0:_('Mon'), 1:_('Tue'), 2:_('Wed'), 3:_('Thu'), 4:_('Fri'),
+    5:_('Sat'), 6:_('Sun')
+}
+WEEKDAYS_REV = {
+    'monday':0, 'tuesday':1, 'wednesday':2, 'thursday':3, 'friday':4,
+    'saturday':5, 'sunday':6
+}
+MONTHS = {
+    1:_('January'), 2:_('February'), 3:_('March'), 4:_('April'), 5:_('May'), 6:_('June'),
+    7:_('July'), 8:_('August'), 9:_('September'), 10:_('October'), 11:_('November'),
+    12:_('December')
+}
+MONTHS_3 = {
+    1:_('jan'), 2:_('feb'), 3:_('mar'), 4:_('apr'), 5:_('may'), 6:_('jun'),
+    7:_('jul'), 8:_('aug'), 9:_('sep'), 10:_('oct'), 11:_('nov'), 12:_('dec')
+}
+MONTHS_3_REV = {
+    'jan':1, 'feb':2, 'mar':3, 'apr':4, 'may':5, 'jun':6, 'jul':7, 'aug':8,
+    'sep':9, 'oct':10, 'nov':11, 'dec':12
+}
+MONTHS_AP = { # month names in Associated Press style
+    1:_('Jan.'), 2:_('Feb.'), 3:_('March'), 4:_('April'), 5:_('May'), 6:_('June'), 7:_('July'),
+    8:_('Aug.'), 9:_('Sept.'), 10:_('Oct.'), 11:_('Nov.'), 12:_('Dec.')
+}
diff --git a/webapp/django/utils/datetime_safe.py b/webapp/django/utils/datetime_safe.py
new file mode 100644
index 0000000..a048ecd
--- /dev/null
+++ b/webapp/django/utils/datetime_safe.py
@@ -0,0 +1,89 @@
+# Python's datetime strftime doesn't handle dates before 1900.
+# These classes override date and datetime to support the formatting of a date
+# through its full "proleptic Gregorian" date range.
+#
+# Based on code submitted to comp.lang.python by Andrew Dalke
+#
+# >>> datetime_safe.date(1850, 8, 2).strftime("%Y/%M/%d was a %A")
+# '1850/08/02 was a Friday'
+
+from datetime import date as real_date, datetime as real_datetime
+import re
+import time
+
+class date(real_date):
+    def strftime(self, fmt):
+        return strftime(self, fmt)
+
+class datetime(real_datetime):
+    def strftime(self, fmt):
+        return strftime(self, fmt)
+
+    def combine(self, date, time):
+        return datetime(date.year, date.month, date.day, time.hour, time.minute, time.microsecond, time.tzinfo)
+
+    def date(self):
+        return date(self.year, self.month, self.day)
+
+def new_date(d):
+    "Generate a safe date from a datetime.date object."
+    return date(d.year, d.month, d.day)
+
+def new_datetime(d):
+    """
+    Generate a safe datetime from a datetime.date or datetime.datetime object.
+    """
+    kw = [d.year, d.month, d.day]
+    if isinstance(d, real_datetime):
+        kw.extend([d.hour, d.minute, d.second, d.microsecond, d.tzinfo])
+    return datetime(*kw)
+
+# This library does not support strftime's "%s" or "%y" format strings.
+# Allowed if there's an even number of "%"s because they are escaped.
+_illegal_formatting = re.compile(r"((^|[^%])(%%)*%[sy])")
+
+def _findall(text, substr):
+    # Also finds overlaps
+    sites = []
+    i = 0
+    while 1:
+        j = text.find(substr, i)
+        if j == -1:
+            break
+        sites.append(j)
+        i=j+1
+    return sites
+
+def strftime(dt, fmt):
+    if dt.year >= 1900:
+        return super(type(dt), dt).strftime(fmt)
+    illegal_formatting = _illegal_formatting.search(fmt)
+    if illegal_formatting:
+        raise TypeError("strftime of dates before 1900 does not handle" + illegal_formatting.group(0))
+
+    year = dt.year
+    # For every non-leap year century, advance by
+    # 6 years to get into the 28-year repeat cycle
+    delta = 2000 - year
+    off = 6 * (delta // 100 + delta // 400)
+    year = year + off
+
+    # Move to around the year 2000
+    year = year + ((2000 - year) // 28) * 28
+    timetuple = dt.timetuple()
+    s1 = time.strftime(fmt, (year,) + timetuple[1:])
+    sites1 = _findall(s1, str(year))
+
+    s2 = time.strftime(fmt, (year+28,) + timetuple[1:])
+    sites2 = _findall(s2, str(year+28))
+
+    sites = []
+    for site in sites1:
+        if site in sites2:
+            sites.append(site)
+
+    s = s1
+    syear = "%4d" % (dt.year,)
+    for site in sites:
+        s = s[:site] + syear + s[site+4:]
+    return s
diff --git a/webapp/django/utils/decorators.py b/webapp/django/utils/decorators.py
new file mode 100644
index 0000000..8fc4c1d
--- /dev/null
+++ b/webapp/django/utils/decorators.py
@@ -0,0 +1,61 @@
+"Functions that help with dynamically creating decorators for views."
+
+import types
+try:
+    from functools import wraps
+except ImportError:
+    from django.utils.functional import wraps  # Python 2.3, 2.4 fallback.
+
+def decorator_from_middleware(middleware_class):
+    """
+    Given a middleware class (not an instance), returns a view decorator. This
+    lets you use middleware functionality on a per-view basis.
+    """
+    def _decorator_from_middleware(*args, **kwargs):
+        # For historical reasons, these "decorators" are also called as
+        # dec(func, *args) instead of dec(*args)(func). We handle both forms
+        # for backwards compatibility.
+        has_func = True
+        try:
+            view_func = kwargs.pop('view_func')
+        except KeyError:
+            if len(args):
+                view_func, args = args[0], args[1:]
+            else:
+                has_func = False
+        if not (has_func and isinstance(view_func, types.FunctionType)):
+            # We are being called as a decorator.
+            if has_func:
+                args = (view_func,) + args
+            middleware = middleware_class(*args, **kwargs)
+
+            def decorator_func(fn):
+                return _decorator_from_middleware(fn, *args, **kwargs)
+            return decorator_func
+
+        middleware = middleware_class(*args, **kwargs)
+
+        def _wrapped_view(request, *args, **kwargs):
+            if hasattr(middleware, 'process_request'):
+                result = middleware.process_request(request)
+                if result is not None:
+                    return result
+            if hasattr(middleware, 'process_view'):
+                result = middleware.process_view(request, view_func, args, kwargs)
+                if result is not None:
+                    return result
+            try:
+                response = view_func(request, *args, **kwargs)
+            except Exception, e:
+                if hasattr(middleware, 'process_exception'):
+                    result = middleware.process_exception(request, e)
+                    if result is not None:
+                        return result
+                raise
+            if hasattr(middleware, 'process_response'):
+                result = middleware.process_response(request, response)
+                if result is not None:
+                    return result
+            return response
+        return wraps(view_func)(_wrapped_view)
+    return _decorator_from_middleware
diff --git a/webapp/django/utils/encoding.py b/webapp/django/utils/encoding.py
new file mode 100644
index 0000000..c54e676
--- /dev/null
+++ b/webapp/django/utils/encoding.py
@@ -0,0 +1,100 @@
+import types
+import urllib
+import datetime
+from django.utils.functional import Promise
+
+class DjangoUnicodeDecodeError(UnicodeDecodeError):
+    def __init__(self, obj, *args):
+        self.obj = obj
+        UnicodeDecodeError.__init__(self, *args)
+
+    def __str__(self):
+        original = UnicodeDecodeError.__str__(self)
+        return '%s. You passed in %r (%s)' % (original, self.obj,
+                type(self.obj))
+
+class StrAndUnicode(object):
+    """
+    A class whose __str__ returns its __unicode__ as a UTF-8 bytestring.
+
+    Useful as a mix-in.
+    """
+    def __str__(self):
+        return self.__unicode__().encode('utf-8')
+
+def smart_unicode(s, encoding='utf-8', strings_only=False, errors='strict'):
+    """
+    Returns a unicode object representing 's'. Treats bytestrings using the
+    'encoding' codec.
+
+    If strings_only is True, don't convert (some) non-string-like objects.
+    """
+    if isinstance(s, Promise):
+        # The input is the result of a gettext_lazy() call.
+        return s
+    return force_unicode(s, encoding, strings_only, errors)
+
+def force_unicode(s, encoding='utf-8', strings_only=False, errors='strict'):
+    """
+    Similar to smart_unicode, except that lazy instances are resolved to
+    strings, rather than kept as lazy objects.
+
+    If strings_only is True, don't convert (some) non-string-like objects.
+    """
+    if strings_only and isinstance(s, (types.NoneType, int, long, datetime.datetime, datetime.date, datetime.time, float)):
+        return s
+    try:
+        if not isinstance(s, basestring,):
+            if hasattr(s, '__unicode__'):
+                s = unicode(s)
+            else:
+                s = unicode(str(s), encoding, errors)
+        elif not isinstance(s, unicode):
+            # Note: We use .decode() here, instead of unicode(s, encoding,
+            # errors), so that if s is a SafeString, it ends up being a
+            # SafeUnicode at the end.
+            s = s.decode(encoding, errors)
+    except UnicodeDecodeError, e:
+        raise DjangoUnicodeDecodeError(s, *e.args)
+    return s
+
+def smart_str(s, encoding='utf-8', strings_only=False, errors='strict'):
+    """
+    Returns a bytestring version of 's', encoded as specified in 'encoding'.
+
+    If strings_only is True, don't convert (some) non-string-like objects.
+    """
+    if strings_only and isinstance(s, (types.NoneType, int)):
+        return s
+    if isinstance(s, Promise):
+        return unicode(s).encode(encoding, errors)
+    elif not isinstance(s, basestring):
+        try:
+            return str(s)
+        except UnicodeEncodeError:
+            return unicode(s).encode(encoding, errors)
+    elif isinstance(s, unicode):
+        return s.encode(encoding, errors)
+    elif s and encoding != 'utf-8':
+        return s.decode('utf-8', errors).encode(encoding, errors)
+    else:
+        return s
+
+def iri_to_uri(iri):
+    """
+    Convert an Internationalized Resource Identifier (IRI) portion to a URI
+    portion that is suitable for inclusion in a URL.
+
+    This is the algorithm from section 3.1 of RFC 3987.  However, since we are
+    assuming input is either UTF-8 or unicode already, we can simplify things a
+    little from the full method.
+
+    Returns an ASCII string containing the encoded result.
+    """
+    # The list of safe characters here is constructed from the printable ASCII
+    # characters that are not explicitly excluded by the list at the end of
+    # section 3.1 of RFC 3987.
+    if iri is None:
+        return iri
+    return urllib.quote(smart_str(iri), safe='/#%[]=:;$&()+,!?*')
+
diff --git a/webapp/django/utils/feedgenerator.py b/webapp/django/utils/feedgenerator.py
new file mode 100644
index 0000000..de924a3
--- /dev/null
+++ b/webapp/django/utils/feedgenerator.py
@@ -0,0 +1,351 @@
+"""
+Syndication feed generation library -- used for generating RSS, etc.
+
+Sample usage:
+
+>>> from django.utils import feedgenerator
+>>> feed = feedgenerator.Rss201rev2Feed(
+...     title=u"Poynter E-Media Tidbits",
+...     link=u"http://www.poynter.org/column.asp?id=31",
+...     description=u"A group weblog by the sharpest minds in online media/journalism/publishing.",
+...     language=u"en",
+... )
+>>> feed.add_item(title="Hello", link=u"http://www.holovaty.com/test/", description="Testing.")
+>>> fp = open('test.rss', 'w')
+>>> feed.write(fp, 'utf-8')
+>>> fp.close()
+
+For definitions of the different versions of RSS, see:
+http://diveintomark.org/archives/2004/02/04/incompatible-rss
+"""
+
+import re
+import datetime
+from django.utils.xmlutils import SimplerXMLGenerator
+from django.utils.encoding import force_unicode, iri_to_uri
+
+def rfc2822_date(date):
+    # We do this ourselves to be timezone aware, email.Utils is not tz aware.
+    if date.tzinfo:
+        time_str = date.strftime('%a, %d %b %Y %H:%M:%S ')
+        offset = date.tzinfo.utcoffset(date)
+        timezone = (offset.days * 24 * 60) + (offset.seconds / 60)
+        hour, minute = divmod(timezone, 60)
+        return time_str + "%+03d%02d" % (hour, minute)
+    else:
+        return date.strftime('%a, %d %b %Y %H:%M:%S -0000')
+
+def rfc3339_date(date):
+    if date.tzinfo:
+        time_str = date.strftime('%Y-%m-%dT%H:%M:%S')
+        offset = date.tzinfo.utcoffset(date)
+        timezone = (offset.days * 24 * 60) + (offset.seconds / 60)
+        hour, minute = divmod(timezone, 60)
+        return time_str + "%+03d:%02d" % (hour, minute)
+    else:
+        return date.strftime('%Y-%m-%dT%H:%M:%SZ')
+
+def get_tag_uri(url, date):
+    "Creates a TagURI. See http://diveintomark.org/archives/2004/05/28/howto-atom-id"
+    tag = re.sub('^http://', '', url)
+    if date is not None:
+        tag = re.sub('/', ',%s:/' % date.strftime('%Y-%m-%d'), tag, 1)
+    tag = re.sub('#', '/', tag)
+    return u'tag:' + tag
+
+class SyndicationFeed(object):
+    "Base class for all syndication feeds. Subclasses should provide write()"
+    def __init__(self, title, link, description, language=None, author_email=None,
+            author_name=None, author_link=None, subtitle=None, categories=None,
+            feed_url=None, feed_copyright=None, feed_guid=None, ttl=None, **kwargs):
+        to_unicode = lambda s: force_unicode(s, strings_only=True)
+        if categories:
+            categories = [force_unicode(c) for c in categories]
+        self.feed = {
+            'title': to_unicode(title),
+            'link': iri_to_uri(link),
+            'description': to_unicode(description),
+            'language': to_unicode(language),
+            'author_email': to_unicode(author_email),
+            'author_name': to_unicode(author_name),
+            'author_link': iri_to_uri(author_link),
+            'subtitle': to_unicode(subtitle),
+            'categories': categories or (),
+            'feed_url': iri_to_uri(feed_url),
+            'feed_copyright': to_unicode(feed_copyright),
+            'id': feed_guid or link,
+            'ttl': ttl,
+        }
+        self.feed.update(kwargs)
+        self.items = []
+
+    def add_item(self, title, link, description, author_email=None,
+        author_name=None, author_link=None, pubdate=None, comments=None,
+        unique_id=None, enclosure=None, categories=(), item_copyright=None,
+        ttl=None, **kwargs):
+        """
+        Adds an item to the feed. All args are expected to be Python Unicode
+        objects except pubdate, which is a datetime.datetime object, and
+        enclosure, which is an instance of the Enclosure class.
+        """
+        to_unicode = lambda s: force_unicode(s, strings_only=True)
+        if categories:
+            categories = [to_unicode(c) for c in categories]
+        item = {
+            'title': to_unicode(title),
+            'link': iri_to_uri(link),
+            'description': to_unicode(description),
+            'author_email': to_unicode(author_email),
+            'author_name': to_unicode(author_name),
+            'author_link': iri_to_uri(author_link),
+            'pubdate': pubdate,
+            'comments': to_unicode(comments),
+            'unique_id': to_unicode(unique_id),
+            'enclosure': enclosure,
+            'categories': categories or (),
+            'item_copyright': to_unicode(item_copyright),
+            'ttl': ttl,
+        }
+        item.update(kwargs)
+        self.items.append(item)
+
+    def num_items(self):
+        return len(self.items)
+
+    def root_attributes(self):
+        """
+        Return extra attributes to place on the root (i.e. feed/channel) element.
+        Called from write().
+        """
+        return {}
+
+    def add_root_elements(self, handler):
+        """
+        Add elements in the the root (i.e. feed/channel) element. Called
+        from write().
+        """
+        pass
+
+    def item_attributes(self, item):
+        """
+        Return extra attributes to place on each item (i.e. item/entry) element.
+        """
+        return {}
+
+    def add_item_elements(self, handler, item):
+        """
+        Add elements on each item (i.e. item/entry) element.
+        """
+        pass
+
+    def write(self, outfile, encoding):
+        """
+        Outputs the feed in the given encoding to outfile, which is a file-like
+        object. Subclasses should override this.
+        """
+        raise NotImplementedError
+
+    def writeString(self, encoding):
+        """
+        Returns the feed in the given encoding as a string.
+        """
+        from StringIO import StringIO
+        s = StringIO()
+        self.write(s, encoding)
+        return s.getvalue()
+
+    def latest_post_date(self):
+        """
+        Returns the latest item's pubdate. If none of them have a pubdate,
+        this returns the current date/time.
+        """
+        updates = [i['pubdate'] for i in self.items if i['pubdate'] is not None]
+        if len(updates) > 0:
+            updates.sort()
+            return updates[-1]
+        else:
+            return datetime.datetime.now()
+
+class Enclosure(object):
+    "Represents an RSS enclosure"
+    def __init__(self, url, length, mime_type):
+        "All args are expected to be Python Unicode objects"
+        self.length, self.mime_type = length, mime_type
+        self.url = iri_to_uri(url)
+
+class RssFeed(SyndicationFeed):
+    mime_type = 'application/rss+xml'
+    def write(self, outfile, encoding):
+        handler = SimplerXMLGenerator(outfile, encoding)
+        handler.startDocument()
+        handler.startElement(u"rss", self.rss_attributes())
+        handler.startElement(u"channel", self.root_attributes())
+        self.add_root_elements(handler)
+        self.write_items(handler)
+        self.endChannelElement(handler)
+        handler.endElement(u"rss")
+
+    def rss_attributes(self):
+        return {u"version": self._version}
+
+    def write_items(self, handler):
+        for item in self.items:
+            handler.startElement(u'item', self.item_attributes(item))
+            self.add_item_elements(handler, item)
+            handler.endElement(u"item")
+
+    def add_root_elements(self, handler):
+        handler.addQuickElement(u"title", self.feed['title'])
+        handler.addQuickElement(u"link", self.feed['link'])
+        handler.addQuickElement(u"description", self.feed['description'])
+        if self.feed['language'] is not None:
+            handler.addQuickElement(u"language", self.feed['language'])
+        for cat in self.feed['categories']:
+            handler.addQuickElement(u"category", cat)
+        if self.feed['feed_copyright'] is not None:
+            handler.addQuickElement(u"copyright", self.feed['feed_copyright'])
+        handler.addQuickElement(u"lastBuildDate", rfc2822_date(self.latest_post_date()).decode('utf-8'))
+        if self.feed['ttl'] is not None:
+            handler.addQuickElement(u"ttl", self.feed['ttl'])
+
+    def endChannelElement(self, handler):
+        handler.endElement(u"channel")
+
+class RssUserland091Feed(RssFeed):
+    _version = u"0.91"
+    def add_item_elements(self, handler, item):
+        handler.addQuickElement(u"title", item['title'])
+        handler.addQuickElement(u"link", item['link'])
+        if item['description'] is not None:
+            handler.addQuickElement(u"description", item['description'])
+
+class Rss201rev2Feed(RssFeed):
+    # Spec: http://blogs.law.harvard.edu/tech/rss
+    _version = u"2.0"
+    def add_item_elements(self, handler, item):
+        handler.addQuickElement(u"title", item['title'])
+        handler.addQuickElement(u"link", item['link'])
+        if item['description'] is not None:
+            handler.addQuickElement(u"description", item['description'])
+
+        # Author information.
+        if item["author_name"] and item["author_email"]:
+            handler.addQuickElement(u"author", "%s (%s)" % \
+                (item['author_email'], item['author_name']))
+        elif item["author_email"]:
+            handler.addQuickElement(u"author", item["author_email"])
+        elif item["author_name"]:
+            handler.addQuickElement(u"dc:creator", item["author_name"], {"xmlns:dc": u"http://purl.org/dc/elements/1.1/"})
+
+        if item['pubdate'] is not None:
+            handler.addQuickElement(u"pubDate", rfc2822_date(item['pubdate']).decode('utf-8'))
+        if item['comments'] is not None:
+            handler.addQuickElement(u"comments", item['comments'])
+        if item['unique_id'] is not None:
+            handler.addQuickElement(u"guid", item['unique_id'])
+        if item['ttl'] is not None:
+            handler.addQuickElement(u"ttl", item['ttl'])
+
+        # Enclosure.
+        if item['enclosure'] is not None:
+            handler.addQuickElement(u"enclosure", '',
+                {u"url": item['enclosure'].url, u"length": item['enclosure'].length,
+                    u"type": item['enclosure'].mime_type})
+
+        # Categories.
+        for cat in item['categories']:
+            handler.addQuickElement(u"category", cat)
+
+class Atom1Feed(SyndicationFeed):
+    # Spec: http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html
+    mime_type = 'application/atom+xml'
+    ns = u"http://www.w3.org/2005/Atom"
+
+    def write(self, outfile, encoding):
+        handler = SimplerXMLGenerator(outfile, encoding)
+        handler.startDocument()
+        handler.startElement(u'feed', self.root_attributes())
+        self.add_root_elements(handler)
+        self.write_items(handler)
+        handler.endElement(u"feed")
+
+    def root_attributes(self):
+        if self.feed['language'] is not None:
+            return {u"xmlns": self.ns, u"xml:lang": self.feed['language']}
+        else:
+            return {u"xmlns": self.ns}
+
+    def add_root_elements(self, handler):
+        handler.addQuickElement(u"title", self.feed['title'])
+        handler.addQuickElement(u"link", "", {u"rel": u"alternate", u"href": self.feed['link']})
+        if self.feed['feed_url'] is not None:
+            handler.addQuickElement(u"link", "", {u"rel": u"self", u"href": self.feed['feed_url']})
+        handler.addQuickElement(u"id", self.feed['id'])
+        handler.addQuickElement(u"updated", rfc3339_date(self.latest_post_date()).decode('utf-8'))
+        if self.feed['author_name'] is not None:
+            handler.startElement(u"author", {})
+            handler.addQuickElement(u"name", self.feed['author_name'])
+            if self.feed['author_email'] is not None:
+                handler.addQuickElement(u"email", self.feed['author_email'])
+            if self.feed['author_link'] is not None:
+                handler.addQuickElement(u"uri", self.feed['author_link'])
+            handler.endElement(u"author")
+        if self.feed['subtitle'] is not None:
+            handler.addQuickElement(u"subtitle", self.feed['subtitle'])
+        for cat in self.feed['categories']:
+            handler.addQuickElement(u"category", "", {u"term": cat})
+        if self.feed['feed_copyright'] is not None:
+            handler.addQuickElement(u"rights", self.feed['feed_copyright'])
+
+    def write_items(self, handler):
+        for item in self.items:
+            handler.startElement(u"entry", self.item_attributes(item))
+            self.add_item_elements(handler, item)
+            handler.endElement(u"entry")
+
+    def add_item_elements(self, handler, item):
+        handler.addQuickElement(u"title", item['title'])
+        handler.addQuickElement(u"link", u"", {u"href": item['link'], u"rel": u"alternate"})
+        if item['pubdate'] is not None:
+            handler.addQuickElement(u"updated", rfc3339_date(item['pubdate']).decode('utf-8'))
+
+        # Author information.
+        if item['author_name'] is not None:
+            handler.startElement(u"author", {})
+            handler.addQuickElement(u"name", item['author_name'])
+            if item['author_email'] is not None:
+                handler.addQuickElement(u"email", item['author_email'])
+            if item['author_link'] is not None:
+                handler.addQuickElement(u"uri", item['author_link'])
+            handler.endElement(u"author")
+
+        # Unique ID.
+        if item['unique_id'] is not None:
+            unique_id = item['unique_id']
+        else:
+            unique_id = get_tag_uri(item['link'], item['pubdate'])
+        handler.addQuickElement(u"id", unique_id)
+
+        # Summary.
+        if item['description'] is not None:
+            handler.addQuickElement(u"summary", item['description'], {u"type": u"html"})
+
+        # Enclosure.
+        if item['enclosure'] is not None:
+            handler.addQuickElement(u"link", '',
+                {u"rel": u"enclosure",
+                 u"href": item['enclosure'].url,
+                 u"length": item['enclosure'].length,
+                 u"type": item['enclosure'].mime_type})
+
+        # Categories.
+        for cat in item['categories']:
+            handler.addQuickElement(u"category", u"", {u"term": cat})
+
+        # Rights.
+        if item['item_copyright'] is not None:
+            handler.addQuickElement(u"rights", item['item_copyright'])
+
+# This isolates the decision of what the system default is, so calling code can
+# do "feedgenerator.DefaultFeed" instead of "feedgenerator.Rss201rev2Feed".
+DefaultFeed = Rss201rev2Feed
diff --git a/webapp/django/utils/functional.py b/webapp/django/utils/functional.py
new file mode 100644
index 0000000..9a12eda
--- /dev/null
+++ b/webapp/django/utils/functional.py
@@ -0,0 +1,253 @@
+# License for code in this file that was taken from Python 2.5.
+
+# PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+# --------------------------------------------
+#
+# 1. This LICENSE AGREEMENT is between the Python Software Foundation
+# ("PSF"), and the Individual or Organization ("Licensee") accessing and
+# otherwise using this software ("Python") in source or binary form and
+# its associated documentation.
+#
+# 2. Subject to the terms and conditions of this License Agreement, PSF
+# hereby grants Licensee a nonexclusive, royalty-free, world-wide
+# license to reproduce, analyze, test, perform and/or display publicly,
+# prepare derivative works, distribute, and otherwise use Python
+# alone or in any derivative version, provided, however, that PSF's
+# License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
+# 2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation;
+# All Rights Reserved" are retained in Python alone or in any derivative
+# version prepared by Licensee.
+#
+# 3. In the event Licensee prepares a derivative work that is based on
+# or incorporates Python or any part thereof, and wants to make
+# the derivative work available to others as provided herein, then
+# Licensee hereby agrees to include in any such work a brief summary of
+# the changes made to Python.
+#
+# 4. PSF is making Python available to Licensee on an "AS IS"
+# basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+# IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+# DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+# FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+# INFRINGE ANY THIRD PARTY RIGHTS.
+#
+# 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+# FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+# A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+# OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+#
+# 6. This License Agreement will automatically terminate upon a material
+# breach of its terms and conditions.
+#
+# 7. Nothing in this License Agreement shall be deemed to create any
+# relationship of agency, partnership, or joint venture between PSF and
+# Licensee.  This License Agreement does not grant permission to use PSF
+# trademarks or trade name in a trademark sense to endorse or promote
+# products or services of Licensee, or any third party.
+#
+# 8. By copying, installing or otherwise using Python, Licensee
+# agrees to be bound by the terms and conditions of this License
+# Agreement.
+
+
+def curry(_curried_func, *args, **kwargs):
+    def _curried(*moreargs, **morekwargs):
+        return _curried_func(*(args+moreargs), **dict(kwargs, **morekwargs))
+    return _curried
+
+### Begin from Python 2.5 functools.py ########################################
+
+# Summary of changes made to the Python 2.5 code below:
+#   * swapped ``partial`` for ``curry`` to maintain backwards-compatibility
+#     in Django.
+#   * Wrapped the ``setattr`` call in ``update_wrapper`` with a try-except
+#     block to make it compatible with Python 2.3, which doesn't allow
+#     assigning to ``__name__``.
+
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation.
+# All Rights Reserved.
+
+###############################################################################
+
+# update_wrapper() and wraps() are tools to help write
+# wrapper functions that can handle naive introspection
+
+WRAPPER_ASSIGNMENTS = ('__module__', '__name__', '__doc__')
+WRAPPER_UPDATES = ('__dict__',)
+def update_wrapper(wrapper,
+                   wrapped,
+                   assigned = WRAPPER_ASSIGNMENTS,
+                   updated = WRAPPER_UPDATES):
+    """Update a wrapper function to look like the wrapped function
+
+       wrapper is the function to be updated
+       wrapped is the original function
+       assigned is a tuple naming the attributes assigned directly
+       from the wrapped function to the wrapper function (defaults to
+       functools.WRAPPER_ASSIGNMENTS)
+       updated is a tuple naming the attributes off the wrapper that
+       are updated with the corresponding attribute from the wrapped
+       function (defaults to functools.WRAPPER_UPDATES)
+    """
+    for attr in assigned:
+        try:
+            setattr(wrapper, attr, getattr(wrapped, attr))
+        except TypeError: # Python 2.3 doesn't allow assigning to __name__.
+            pass
+    for attr in updated:
+        getattr(wrapper, attr).update(getattr(wrapped, attr))
+    # Return the wrapper so this can be used as a decorator via curry()
+    return wrapper
+
+def wraps(wrapped,
+          assigned = WRAPPER_ASSIGNMENTS,
+          updated = WRAPPER_UPDATES):
+    """Decorator factory to apply update_wrapper() to a wrapper function
+
+       Returns a decorator that invokes update_wrapper() with the decorated
+       function as the wrapper argument and the arguments to wraps() as the
+       remaining arguments. Default arguments are as for update_wrapper().
+       This is a convenience function to simplify applying curry() to
+       update_wrapper().
+    """
+    return curry(update_wrapper, wrapped=wrapped,
+                 assigned=assigned, updated=updated)
+
+### End from Python 2.5 functools.py ##########################################
+
+def memoize(func, cache, num_args):
+    """
+    Wrap a function so that results for any argument tuple are stored in
+    'cache'. Note that the args to the function must be usable as dictionary
+    keys.
+
+    Only the first num_args are considered when creating the key.
+    """
+    def wrapper(*args):
+        mem_args = args[:num_args]
+        if mem_args in cache:
+            return cache[mem_args]
+        result = func(*args)
+        cache[mem_args] = result
+        return result
+    return wraps(func)(wrapper)
+
+class Promise(object):
+    """
+    This is just a base class for the proxy class created in
+    the closure of the lazy function. It can be used to recognize
+    promises in code.
+    """
+    pass
+
+def lazy(func, *resultclasses):
+    """
+    Turns any callable into a lazy evaluated callable. You need to give result
+    classes or types -- at least one is needed so that the automatic forcing of
+    the lazy evaluation code is triggered. Results are not memoized; the
+    function is evaluated on every access.
+    """
+    class __proxy__(Promise):
+        """
+        Encapsulate a function call and act as a proxy for methods that are
+        called on the result of that function. The function is not evaluated
+        until one of the methods on the result is called.
+        """
+        __dispatch = None
+
+        def __init__(self, args, kw):
+            self.__func = func
+            self.__args = args
+            self.__kw = kw
+            if self.__dispatch is None:
+                self.__prepare_class__()
+
+        def __prepare_class__(cls):
+            cls.__dispatch = {}
+            for resultclass in resultclasses:
+                cls.__dispatch[resultclass] = {}
+                for (k, v) in resultclass.__dict__.items():
+                    if hasattr(cls, k):
+                        continue
+                    setattr(cls, k, cls.__promise__(resultclass, k, v))
+            cls._delegate_str = str in resultclasses
+            cls._delegate_unicode = unicode in resultclasses
+            assert not (cls._delegate_str and cls._delegate_unicode), "Cannot call lazy() with both str and unicode return types."
+            if cls._delegate_unicode:
+                cls.__unicode__ = cls.__unicode_cast
+            elif cls._delegate_str:
+                cls.__str__ = cls.__str_cast
+        __prepare_class__ = classmethod(__prepare_class__)
+
+        def __promise__(cls, klass, funcname, func):
+            # Builds a wrapper around some magic method and registers that magic
+            # method for the given type and method name.
+            def __wrapper__(self, *args, **kw):
+                # Automatically triggers the evaluation of a lazy value and
+                # applies the given magic method of the result type.
+                res = self.__func(*self.__args, **self.__kw)
+                for t in type(res).mro():
+                    if t in self.__dispatch:
+                        return self.__dispatch[t][funcname](res, *args, **kw)
+                raise TypeError("Lazy object returned unexpected type.")
+
+            if klass not in cls.__dispatch:
+                cls.__dispatch[klass] = {}
+            cls.__dispatch[klass][funcname] = func
+            return __wrapper__
+        __promise__ = classmethod(__promise__)
+
+        def __unicode_cast(self):
+            return self.__func(*self.__args, **self.__kw)
+
+        def __str_cast(self):
+            return str(self.__func(*self.__args, **self.__kw))
+
+        def __cmp__(self, rhs):
+            if self._delegate_str:
+                s = str(self.__func(*self.__args, **self.__kw))
+            elif self._delegate_unicode:
+                s = unicode(self.__func(*self.__args, **self.__kw))
+            else:
+                s = self.__func(*self.__args, **self.__kw)
+            if isinstance(rhs, Promise):
+                return -cmp(rhs, s)
+            else:
+                return cmp(s, rhs)
+
+        def __mod__(self, rhs):
+            if self._delegate_str:
+                return str(self) % rhs
+            elif self._delegate_unicode:
+                return unicode(self) % rhs
+            else:
+                raise AssertionError('__mod__ not supported for non-string types')
+
+        def __deepcopy__(self, memo):
+            # Instances of this class are effectively immutable. It's just a
+            # collection of functions. So we don't need to do anything
+            # complicated for copying.
+            memo[id(self)] = self
+            return self
+
+    def __wrapper__(*args, **kw):
+        # Creates the proxy object, instead of the actual value.
+        return __proxy__(args, kw)
+
+    return wraps(func)(__wrapper__)
+
+def allow_lazy(func, *resultclasses):
+    """
+    A decorator that allows a function to be called with one or more lazy
+    arguments. If none of the args are lazy, the function is evaluated
+    immediately, otherwise a __proxy__ is returned that will evaluate the
+    function when needed.
+    """
+    def wrapper(*args, **kwargs):
+        for arg in list(args) + kwargs.values():
+            if isinstance(arg, Promise):
+                break
+        else:
+            return func(*args, **kwargs)
+        return lazy(func, *resultclasses)(*args, **kwargs)
+    return wraps(func)(wrapper)
diff --git a/webapp/django/utils/hashcompat.py b/webapp/django/utils/hashcompat.py
new file mode 100644
index 0000000..8880d92
--- /dev/null
+++ b/webapp/django/utils/hashcompat.py
@@ -0,0 +1,16 @@
+"""
+The md5 and sha modules are deprecated since Python 2.5, replaced by the
+hashlib module containing both hash algorithms. Here, we provide a common
+interface to the md5 and sha constructors, preferring the hashlib module when
+available.
+"""
+
+try:
+    import hashlib
+    md5_constructor = hashlib.md5
+    sha_constructor = hashlib.sha1
+except ImportError:
+    import md5
+    md5_constructor = md5.new
+    import sha
+    sha_constructor = sha.new
diff --git a/webapp/django/utils/html.py b/webapp/django/utils/html.py
new file mode 100644
index 0000000..9b3fad8
--- /dev/null
+++ b/webapp/django/utils/html.py
@@ -0,0 +1,165 @@
+"""HTML utilities suitable for global use."""
+
+import re
+import string
+
+from django.utils.safestring import SafeData, mark_safe
+from django.utils.encoding import force_unicode
+from django.utils.functional import allow_lazy
+from django.utils.http import urlquote
+
+# Configuration for urlize() function.
+LEADING_PUNCTUATION  = ['(', '<', '&lt;']
+TRAILING_PUNCTUATION = ['.', ',', ')', '>', '\n', '&gt;']
+
+# List of possible strings used for bullets in bulleted lists.
+DOTS = ['&middot;', '*', '\xe2\x80\xa2', '&#149;', '&bull;', '&#8226;']
+
+unencoded_ampersands_re = re.compile(r'&(?!(\w+|#\d+);)')
+word_split_re = re.compile(r'(\s+)')
+punctuation_re = re.compile('^(?P<lead>(?:%s)*)(?P<middle>.*?)(?P<trail>(?:%s)*)$' % \
+    ('|'.join([re.escape(x) for x in LEADING_PUNCTUATION]),
+    '|'.join([re.escape(x) for x in TRAILING_PUNCTUATION])))
+simple_email_re = re.compile(r'^\S+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+$')
+link_target_attribute_re = re.compile(r'(<a [^>]*?)target=[^\s>]+')
+html_gunk_re = re.compile(r'(?:<br clear="all">|<i><\/i>|<b><\/b>|<em><\/em>|<strong><\/strong>|<\/?smallcaps>|<\/?uppercase>)', re.IGNORECASE)
+hard_coded_bullets_re = re.compile(r'((?:<p>(?:%s).*?[a-zA-Z].*?</p>\s*)+)' % '|'.join([re.escape(x) for x in DOTS]), re.DOTALL)
+trailing_empty_content_re = re.compile(r'(?:<p>(?:&nbsp;|\s|<br \/>)*?</p>\s*)+\Z')
+del x # Temporary variable
+
+def escape(html):
+    """Returns the given HTML with ampersands, quotes and carets encoded."""
+    return mark_safe(force_unicode(html).replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;').replace('"', '&quot;').replace("'", '&#39;'))
+escape = allow_lazy(escape, unicode)
+
+def conditional_escape(html):
+    """
+    Similar to escape(), except that it doesn't operate on pre-escaped strings.
+    """
+    if isinstance(html, SafeData):
+        return html
+    else:
+        return escape(html)
+
+def linebreaks(value, autoescape=False):
+    """Converts newlines into <p> and <br />s."""
+    value = re.sub(r'\r\n|\r|\n', '\n', force_unicode(value)) # normalize newlines
+    paras = re.split('\n{2,}', value)
+    if autoescape:
+        paras = [u'<p>%s</p>' % escape(p.strip()).replace('\n', '<br />') for p in paras]
+    else:
+        paras = [u'<p>%s</p>' % p.strip().replace('\n', '<br />') for p in paras]
+    return u'\n\n'.join(paras)
+linebreaks = allow_lazy(linebreaks, unicode)
+
+def strip_tags(value):
+    """Returns the given HTML with all tags stripped."""
+    return re.sub(r'<[^>]*?>', '', force_unicode(value))
+strip_tags = allow_lazy(strip_tags)
+
+def strip_spaces_between_tags(value):
+    """Returns the given HTML with spaces between tags removed."""
+    return re.sub(r'>\s+<', '><', force_unicode(value))
+strip_spaces_between_tags = allow_lazy(strip_spaces_between_tags, unicode)
+
+def strip_entities(value):
+    """Returns the given HTML with all entities (&something;) stripped."""
+    return re.sub(r'&(?:\w+|#\d+);', '', force_unicode(value))
+strip_entities = allow_lazy(strip_entities, unicode)
+
+def fix_ampersands(value):
+    """Returns the given HTML with all unencoded ampersands encoded correctly."""
+    return unencoded_ampersands_re.sub('&amp;', force_unicode(value))
+fix_ampersands = allow_lazy(fix_ampersands, unicode)
+
+def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False):
+    """
+    Converts any URLs in text into clickable links.
+
+    Works on http://, https://, www. links and links ending in .org, .net or
+    .com. Links can have trailing punctuation (periods, commas, close-parens)
+    and leading punctuation (opening parens) and it'll still do the right
+    thing.
+
+    If trim_url_limit is not None, the URLs in link text longer than this limit
+    will truncated to trim_url_limit-3 characters and appended with an elipsis.
+
+    If nofollow is True, the URLs in link text will get a rel="nofollow"
+    attribute.
+
+    If autoescape is True, the link text and URLs will get autoescaped.
+    """
+    trim_url = lambda x, limit=trim_url_limit: limit is not None and (len(x) > limit and ('%s...' % x[:max(0, limit - 3)])) or x
+    safe_input = isinstance(text, SafeData)
+    words = word_split_re.split(force_unicode(text))
+    nofollow_attr = nofollow and ' rel="nofollow"' or ''
+    for i, word in enumerate(words):
+        match = None
+        if '.' in word or '@' in word or ':' in word:
+            match = punctuation_re.match(word)
+        if match:
+            lead, middle, trail = match.groups()
+            # Make URL we want to point to.
+            url = None
+            if middle.startswith('http://') or middle.startswith('https://'):
+                url = urlquote(middle, safe='/&=:;#?+*')
+            elif middle.startswith('www.') or ('@' not in middle and \
+                    middle and middle[0] in string.ascii_letters + string.digits and \
+                    (middle.endswith('.org') or middle.endswith('.net') or middle.endswith('.com'))):
+                url = urlquote('http://%s' % middle, safe='/&=:;#?+*')
+            elif '@' in middle and not ':' in middle and simple_email_re.match(middle):
+                url = 'mailto:%s' % middle
+                nofollow_attr = ''
+            # Make link.
+            if url:
+                trimmed = trim_url(middle)
+                if autoescape and not safe_input:
+                    lead, trail = escape(lead), escape(trail)
+                    url, trimmed = escape(url), escape(trimmed)
+                middle = '<a href="%s"%s>%s</a>' % (url, nofollow_attr, trimmed)
+                words[i] = mark_safe('%s%s%s' % (lead, middle, trail))
+            else:
+                if safe_input:
+                    words[i] = mark_safe(word)
+                elif autoescape:
+                    words[i] = escape(word)
+        elif safe_input:
+            words[i] = mark_safe(word)
+        elif autoescape:
+            words[i] = escape(word)
+    return u''.join(words)
+urlize = allow_lazy(urlize, unicode)
+
+def clean_html(text):
+    """
+    Clean the given HTML.  Specifically, do the following:
+        * Convert <b> and <i> to <strong> and <em>.
+        * Encode all ampersands correctly.
+        * Remove all "target" attributes from <a> tags.
+        * Remove extraneous HTML, such as presentational tags that open and
+          immediately close and <br clear="all">.
+        * Convert hard-coded bullets into HTML unordered lists.
+        * Remove stuff like "<p>&nbsp;&nbsp;</p>", but only if it's at the
+          bottom of the text.
+    """
+    from django.utils.text import normalize_newlines
+    text = normalize_newlines(force_unicode(text))
+    text = re.sub(r'<(/?)\s*b\s*>', '<\\1strong>', text)
+    text = re.sub(r'<(/?)\s*i\s*>', '<\\1em>', text)
+    text = fix_ampersands(text)
+    # Remove all target="" attributes from <a> tags.
+    text = link_target_attribute_re.sub('\\1', text)
+    # Trim stupid HTML such as <br clear="all">.
+    text = html_gunk_re.sub('', text)
+    # Convert hard-coded bullets into HTML unordered lists.
+    def replace_p_tags(match):
+        s = match.group().replace('</p>', '</li>')
+        for d in DOTS:
+            s = s.replace('<p>%s' % d, '<li>')
+        return u'<ul>\n%s\n</ul>' % s
+    text = hard_coded_bullets_re.sub(replace_p_tags, text)
+    # Remove stuff like "<p>&nbsp;&nbsp;</p>", but only if it's at the bottom
+    # of the text.
+    text = trailing_empty_content_re.sub('', text)
+    return text
+clean_html = allow_lazy(clean_html, unicode)
diff --git a/webapp/django/utils/http.py b/webapp/django/utils/http.py
new file mode 100644
index 0000000..7d2af95
--- /dev/null
+++ b/webapp/django/utils/http.py
@@ -0,0 +1,96 @@
+import urllib
+from email.Utils import formatdate
+
+from django.utils.encoding import smart_str, force_unicode
+from django.utils.functional import allow_lazy
+
+def urlquote(url, safe='/'):
+    """
+    A version of Python's urllib.quote() function that can operate on unicode
+    strings. The url is first UTF-8 encoded before quoting. The returned string
+    can safely be used as part of an argument to a subsequent iri_to_uri() call
+    without double-quoting occurring.
+    """
+    return force_unicode(urllib.quote(smart_str(url), safe))
+
+urlquote = allow_lazy(urlquote, unicode)
+
+def urlquote_plus(url, safe=''):
+    """
+    A version of Python's urllib.quote_plus() function that can operate on
+    unicode strings. The url is first UTF-8 encoded before quoting. The
+    returned string can safely be used as part of an argument to a subsequent
+    iri_to_uri() call without double-quoting occurring.
+    """
+    return force_unicode(urllib.quote_plus(smart_str(url), safe))
+urlquote_plus = allow_lazy(urlquote_plus, unicode)
+
+def urlencode(query, doseq=0):
+    """
+    A version of Python's urllib.urlencode() function that can operate on
+    unicode strings. The parameters are first case to UTF-8 encoded strings and
+    then encoded as per normal.
+    """
+    if hasattr(query, 'items'):
+        query = query.items()
+    return urllib.urlencode(
+        [(smart_str(k),
+         isinstance(v, (list,tuple)) and [smart_str(i) for i in v] or smart_str(v))
+            for k, v in query],
+        doseq)
+
+def cookie_date(epoch_seconds=None):
+    """
+    Formats the time to ensure compatibility with Netscape's cookie standard.
+
+    Accepts a floating point number expressed in seconds since the epoch, in
+    UTC - such as that outputted by time.time(). If set to None, defaults to
+    the current time.
+
+    Outputs a string in the format 'Wdy, DD-Mon-YYYY HH:MM:SS GMT'.
+    """
+    rfcdate = formatdate(epoch_seconds)
+    return '%s-%s-%s GMT' % (rfcdate[:7], rfcdate[8:11], rfcdate[12:25])
+
+def http_date(epoch_seconds=None):
+    """
+    Formats the time to match the RFC1123 date format as specified by HTTP
+    RFC2616 section 3.3.1.
+
+    Accepts a floating point number expressed in seconds since the epoch, in
+    UTC - such as that outputted by time.time(). If set to None, defaults to
+    the current time.
+
+    Outputs a string in the format 'Wdy, DD Mon YYYY HH:MM:SS GMT'.
+    """
+    rfcdate = formatdate(epoch_seconds)
+    return '%s GMT' % rfcdate[:25]
+
+# Base 36 functions: useful for generating compact URLs
+
+def base36_to_int(s):
+    """
+    Convertd a base 36 string to an integer
+    """
+    return int(s, 36)
+
+def int_to_base36(i):
+    """
+    Converts an integer to a base36 string
+    """
+    digits = "0123456789abcdefghijklmnopqrstuvwxyz"
+    factor = 0
+    # Find starting factor
+    while True:
+        factor += 1
+        if i < 36 ** factor:
+            factor -= 1
+            break
+    base36 = []
+    # Construct base36 representation
+    while factor >= 0:
+        j = 36 ** factor
+        base36.append(digits[i / j])
+        i = i % j
+        factor -= 1
+    return ''.join(base36)
diff --git a/webapp/django/utils/itercompat.py b/webapp/django/utils/itercompat.py
new file mode 100644
index 0000000..c166da3
--- /dev/null
+++ b/webapp/django/utils/itercompat.py
@@ -0,0 +1,74 @@
+"""
+Providing iterator functions that are not in all version of Python we support.
+Where possible, we try to use the system-native version and only fall back to
+these implementations if necessary.
+"""
+
+import itertools
+
+def compat_tee(iterable):
+    """
+    Return two independent iterators from a single iterable.
+
+    Based on http://www.python.org/doc/2.3.5/lib/itertools-example.html
+    """
+    # Note: Using a dictionary and a list as the default arguments here is
+    # deliberate and safe in this instance.
+    def gen(next, data={}, cnt=[0]):
+        dpop = data.pop
+        for i in itertools.count():
+            if i == cnt[0]:
+                item = data[i] = next()
+                cnt[0] += 1
+            else:
+                item = dpop(i)
+            yield item
+    next = iter(iterable).next
+    return gen(next), gen(next)
+
+def groupby(iterable, keyfunc=None):
+    """
+    Taken from http://docs.python.org/lib/itertools-functions.html
+    """
+    if keyfunc is None:
+        keyfunc = lambda x:x
+    iterable = iter(iterable)
+    l = [iterable.next()]
+    lastkey = keyfunc(l[0])
+    for item in iterable:
+        key = keyfunc(item)
+        if key != lastkey:
+            yield lastkey, l
+            lastkey = key
+            l = [item]
+        else:
+            l.append(item)
+    yield lastkey, l
+
+# Not really in itertools, since it's a builtin in Python 2.4 and later, but it
+# does operate as an iterator.
+def reversed(data):
+    for index in xrange(len(data)-1, -1, -1):
+        yield data[index]
+
+if hasattr(itertools, 'tee'):
+    tee = itertools.tee
+else:
+    tee = compat_tee
+if hasattr(itertools, 'groupby'):
+    groupby = itertools.groupby
+
+def is_iterable(x):
+    "A implementation independent way of checking for iterables"
+    try:
+        iter(x)
+    except TypeError:
+        return False
+    else:
+        return True
+
+def sorted(in_value):
+    "A naive implementation of sorted"
+    out_value = in_value[:]
+    out_value.sort()
+    return out_value
diff --git a/webapp/django/utils/safestring.py b/webapp/django/utils/safestring.py
new file mode 100644
index 0000000..2e31c23
--- /dev/null
+++ b/webapp/django/utils/safestring.py
@@ -0,0 +1,119 @@
+"""
+Functions for working with "safe strings": strings that can be displayed safely
+without further escaping in HTML. Marking something as a "safe string" means
+that the producer of the string has already turned characters that should not
+be interpreted by the HTML engine (e.g. '<') into the appropriate entities.
+"""
+from django.utils.functional import curry, Promise
+
+class EscapeData(object):
+    pass
+
+class EscapeString(str, EscapeData):
+    """
+    A string that should be HTML-escaped when output.
+    """
+    pass
+
+class EscapeUnicode(unicode, EscapeData):
+    """
+    A unicode object that should be HTML-escaped when output.
+    """
+    pass
+
+class SafeData(object):
+    pass
+
+class SafeString(str, SafeData):
+    """
+    A string subclass that has been specifically marked as "safe" (requires no
+    further escaping) for HTML output purposes.
+    """
+    def __add__(self, rhs):
+        """
+        Concatenating a safe string with another safe string or safe unicode
+        object is safe. Otherwise, the result is no longer safe.
+        """
+        t = super(SafeString, self).__add__(rhs)
+        if isinstance(rhs, SafeUnicode):
+            return SafeUnicode(t)
+        elif isinstance(rhs, SafeString):
+            return SafeString(t)
+        return t
+        
+    def _proxy_method(self, *args, **kwargs):
+        """
+        Wrap a call to a normal unicode method up so that we return safe
+        results. The method that is being wrapped is passed in the 'method'
+        argument.
+        """
+        method = kwargs.pop('method')
+        data = method(self, *args, **kwargs)
+        if isinstance(data, str):
+            return SafeString(data)
+        else:
+            return SafeUnicode(data)
+
+    decode = curry(_proxy_method, method = str.decode)
+
+class SafeUnicode(unicode, SafeData):
+    """
+    A unicode subclass that has been specifically marked as "safe" for HTML
+    output purposes.
+    """
+    def __add__(self, rhs):
+        """
+        Concatenating a safe unicode object with another safe string or safe
+        unicode object is safe. Otherwise, the result is no longer safe.
+        """
+        t = super(SafeUnicode, self).__add__(rhs)
+        if isinstance(rhs, SafeData):
+            return SafeUnicode(t)
+        return t
+    
+    def _proxy_method(self, *args, **kwargs):
+        """
+        Wrap a call to a normal unicode method up so that we return safe
+        results. The method that is being wrapped is passed in the 'method'
+        argument.
+        """
+        method = kwargs.pop('method')
+        data = method(self, *args, **kwargs)
+        if isinstance(data, str):
+            return SafeString(data)
+        else:
+            return SafeUnicode(data)
+
+    encode = curry(_proxy_method, method = unicode.encode)
+
+def mark_safe(s):
+    """
+    Explicitly mark a string as safe for (HTML) output purposes. The returned
+    object can be used everywhere a string or unicode object is appropriate.
+
+    Can be called multiple times on a single string.
+    """
+    if isinstance(s, SafeData):
+        return s
+    if isinstance(s, str) or (isinstance(s, Promise) and s._delegate_str):
+        return SafeString(s)
+    if isinstance(s, (unicode, Promise)):
+        return SafeUnicode(s)
+    return SafeString(str(s))
+
+def mark_for_escaping(s):
+    """
+    Explicitly mark a string as requiring HTML escaping upon output. Has no
+    effect on SafeData subclasses.
+
+    Can be called multiple times on a single string (the resulting escaping is
+    only applied once).
+    """
+    if isinstance(s, (SafeData, EscapeData)):
+        return s
+    if isinstance(s, str) or (isinstance(s, Promise) and s._delegate_str):
+        return EscapeString(s)
+    if isinstance(s, (unicode, Promise)):
+        return EscapeUnicode(s)
+    return EscapeString(str(s))
+
diff --git a/webapp/django/utils/simplejson/LICENSE.txt b/webapp/django/utils/simplejson/LICENSE.txt
new file mode 100644
index 0000000..ad95f29
--- /dev/null
+++ b/webapp/django/utils/simplejson/LICENSE.txt
@@ -0,0 +1,19 @@
+Copyright (c) 2006 Bob Ippolito
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/webapp/django/utils/simplejson/__init__.py b/webapp/django/utils/simplejson/__init__.py
new file mode 100644
index 0000000..130940f
--- /dev/null
+++ b/webapp/django/utils/simplejson/__init__.py
@@ -0,0 +1,376 @@
+r"""
+A simple, fast, extensible JSON encoder and decoder
+
+JSON (JavaScript Object Notation) <http://json.org> is a subset of
+JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data
+interchange format.
+
+simplejson exposes an API familiar to uses of the standard library
+marshal and pickle modules.
+
+Encoding basic Python object hierarchies::
+    
+    >>> import simplejson
+    >>> simplejson.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
+    '["foo", {"bar": ["baz", null, 1.0, 2]}]'
+    >>> print simplejson.dumps("\"foo\bar")
+    "\"foo\bar"
+    >>> print simplejson.dumps(u'\u1234')
+    "\u1234"
+    >>> print simplejson.dumps('\\')
+    "\\"
+    >>> print simplejson.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)
+    {"a": 0, "b": 0, "c": 0}
+    >>> from StringIO import StringIO
+    >>> io = StringIO()
+    >>> simplejson.dump(['streaming API'], io)
+    >>> io.getvalue()
+    '["streaming API"]'
+
+Compact encoding::
+
+    >>> import simplejson
+    >>> simplejson.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'))
+    '[1,2,3,{"4":5,"6":7}]'
+
+Pretty printing::
+
+    >>> import simplejson
+    >>> print simplejson.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4)
+    {
+        "4": 5, 
+        "6": 7
+    }
+
+Decoding JSON::
+    
+    >>> import simplejson
+    >>> simplejson.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
+    [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
+    >>> simplejson.loads('"\\"foo\\bar"')
+    u'"foo\x08ar'
+    >>> from StringIO import StringIO
+    >>> io = StringIO('["streaming API"]')
+    >>> simplejson.load(io)
+    [u'streaming API']
+
+Specializing JSON object decoding::
+
+    >>> import simplejson
+    >>> def as_complex(dct):
+    ...     if '__complex__' in dct:
+    ...         return complex(dct['real'], dct['imag'])
+    ...     return dct
+    ... 
+    >>> simplejson.loads('{"__complex__": true, "real": 1, "imag": 2}',
+    ...     object_hook=as_complex)
+    (1+2j)
+    >>> import decimal
+    >>> simplejson.loads('1.1', parse_float=decimal.Decimal)
+    Decimal("1.1")
+
+Extending JSONEncoder::
+    
+    >>> import simplejson
+    >>> class ComplexEncoder(simplejson.JSONEncoder):
+    ...     def default(self, obj):
+    ...         if isinstance(obj, complex):
+    ...             return [obj.real, obj.imag]
+    ...         return simplejson.JSONEncoder.default(self, obj)
+    ... 
+    >>> dumps(2 + 1j, cls=ComplexEncoder)
+    '[2.0, 1.0]'
+    >>> ComplexEncoder().encode(2 + 1j)
+    '[2.0, 1.0]'
+    >>> list(ComplexEncoder().iterencode(2 + 1j))
+    ['[', '2.0', ', ', '1.0', ']']
+    
+
+Using simplejson from the shell to validate and
+pretty-print::
+    
+    $ echo '{"json":"obj"}' | python -msimplejson.tool
+    {
+        "json": "obj"
+    }
+    $ echo '{ 1.2:3.4}' | python -msimplejson.tool
+    Expecting property name: line 1 column 2 (char 2)
+
+Note that the JSON produced by this module's default settings
+is a subset of YAML, so it may be used as a serializer for that as well.
+"""
+__version__ = '1.9.2'
+__all__ = [
+    'dump', 'dumps', 'load', 'loads',
+    'JSONDecoder', 'JSONEncoder',
+]
+
+if __name__ == '__main__':
+    import warnings
+    warnings.warn('python -msimplejson is deprecated, use python -msiplejson.tool', DeprecationWarning)
+    from django.utils.simplejson.decoder import JSONDecoder
+    from django.utils.simplejson.encoder import JSONEncoder
+else:
+    from decoder import JSONDecoder
+    from encoder import JSONEncoder
+
+_default_encoder = JSONEncoder(
+    skipkeys=False,
+    ensure_ascii=True,
+    check_circular=True,
+    allow_nan=True,
+    indent=None,
+    separators=None,
+    encoding='utf-8',
+    default=None,
+)
+
+def dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True,
+        allow_nan=True, cls=None, indent=None, separators=None,
+        encoding='utf-8', default=None, **kw):
+    """
+    Serialize ``obj`` as a JSON formatted stream to ``fp`` (a
+    ``.write()``-supporting file-like object).
+
+    If ``skipkeys`` is ``True`` then ``dict`` keys that are not basic types
+    (``str``, ``unicode``, ``int``, ``long``, ``float``, ``bool``, ``None``) 
+    will be skipped instead of raising a ``TypeError``.
+
+    If ``ensure_ascii`` is ``False``, then the some chunks written to ``fp``
+    may be ``unicode`` instances, subject to normal Python ``str`` to
+    ``unicode`` coercion rules. Unless ``fp.write()`` explicitly
+    understands ``unicode`` (as in ``codecs.getwriter()``) this is likely
+    to cause an error.
+
+    If ``check_circular`` is ``False``, then the circular reference check
+    for container types will be skipped and a circular reference will
+    result in an ``OverflowError`` (or worse).
+
+    If ``allow_nan`` is ``False``, then it will be a ``ValueError`` to
+    serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``)
+    in strict compliance of the JSON specification, instead of using the
+    JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``).
+
+    If ``indent`` is a non-negative integer, then JSON array elements and object
+    members will be pretty-printed with that indent level. An indent level
+    of 0 will only insert newlines. ``None`` is the most compact representation.
+
+    If ``separators`` is an ``(item_separator, dict_separator)`` tuple
+    then it will be used instead of the default ``(', ', ': ')`` separators.
+    ``(',', ':')`` is the most compact JSON representation.
+
+    ``encoding`` is the character encoding for str instances, default is UTF-8.
+
+    ``default(obj)`` is a function that should return a serializable version
+    of obj or raise TypeError. The default simply raises TypeError.
+
+    To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the
+    ``.default()`` method to serialize additional types), specify it with
+    the ``cls`` kwarg.
+    """
+    # cached encoder
+    if (skipkeys is False and ensure_ascii is True and
+        check_circular is True and allow_nan is True and
+        cls is None and indent is None and separators is None and
+        encoding == 'utf-8' and default is None and not kw):
+        iterable = _default_encoder.iterencode(obj)
+    else:
+        if cls is None:
+            cls = JSONEncoder
+        iterable = cls(skipkeys=skipkeys, ensure_ascii=ensure_ascii,
+            check_circular=check_circular, allow_nan=allow_nan, indent=indent,
+            separators=separators, encoding=encoding,
+            default=default, **kw).iterencode(obj)
+    # could accelerate with writelines in some versions of Python, at
+    # a debuggability cost
+    for chunk in iterable:
+        fp.write(chunk)
+
+
+def dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True,
+        allow_nan=True, cls=None, indent=None, separators=None,
+        encoding='utf-8', default=None, **kw):
+    """
+    Serialize ``obj`` to a JSON formatted ``str``.
+
+    If ``skipkeys`` is ``True`` then ``dict`` keys that are not basic types
+    (``str``, ``unicode``, ``int``, ``long``, ``float``, ``bool``, ``None``) 
+    will be skipped instead of raising a ``TypeError``.
+
+    If ``ensure_ascii`` is ``False``, then the return value will be a
+    ``unicode`` instance subject to normal Python ``str`` to ``unicode``
+    coercion rules instead of being escaped to an ASCII ``str``.
+
+    If ``check_circular`` is ``False``, then the circular reference check
+    for container types will be skipped and a circular reference will
+    result in an ``OverflowError`` (or worse).
+
+    If ``allow_nan`` is ``False``, then it will be a ``ValueError`` to
+    serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``) in
+    strict compliance of the JSON specification, instead of using the
+    JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``).
+
+    If ``indent`` is a non-negative integer, then JSON array elements and
+    object members will be pretty-printed with that indent level. An indent
+    level of 0 will only insert newlines. ``None`` is the most compact
+    representation.
+
+    If ``separators`` is an ``(item_separator, dict_separator)`` tuple
+    then it will be used instead of the default ``(', ', ': ')`` separators.
+    ``(',', ':')`` is the most compact JSON representation.
+
+    ``encoding`` is the character encoding for str instances, default is UTF-8.
+
+    ``default(obj)`` is a function that should return a serializable version
+    of obj or raise TypeError. The default simply raises TypeError.
+
+    To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the
+    ``.default()`` method to serialize additional types), specify it with
+    the ``cls`` kwarg.
+    """
+    # cached encoder
+    if (skipkeys is False and ensure_ascii is True and
+        check_circular is True and allow_nan is True and
+        cls is None and indent is None and separators is None and
+        encoding == 'utf-8' and default is None and not kw):
+        return _default_encoder.encode(obj)
+    if cls is None:
+        cls = JSONEncoder
+    return cls(
+        skipkeys=skipkeys, ensure_ascii=ensure_ascii,
+        check_circular=check_circular, allow_nan=allow_nan, indent=indent,
+        separators=separators, encoding=encoding, default=default,
+        **kw).encode(obj)
+
+
+_default_decoder = JSONDecoder(encoding=None, object_hook=None)
+
+
+def load(fp, encoding=None, cls=None, object_hook=None, parse_float=None,
+        parse_int=None, parse_constant=None, **kw):
+    """
+    Deserialize ``fp`` (a ``.read()``-supporting file-like object containing
+    a JSON document) to a Python object.
+
+    If the contents of ``fp`` is encoded with an ASCII based encoding other
+    than utf-8 (e.g. latin-1), then an appropriate ``encoding`` name must
+    be specified. Encodings that are not ASCII based (such as UCS-2) are
+    not allowed, and should be wrapped with
+    ``codecs.getreader(fp)(encoding)``, or simply decoded to a ``unicode``
+    object and passed to ``loads()``
+
+    ``object_hook`` is an optional function that will be called with the
+    result of any object literal decode (a ``dict``). The return value of
+    ``object_hook`` will be used instead of the ``dict``. This feature
+    can be used to implement custom decoders (e.g. JSON-RPC class hinting).
+    
+    To use a custom ``JSONDecoder`` subclass, specify it with the ``cls``
+    kwarg.
+    """
+    return loads(fp.read(),
+        encoding=encoding, cls=cls, object_hook=object_hook,
+        parse_float=parse_float, parse_int=parse_int,
+        parse_constant=parse_constant, **kw)
+
+
+def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None,
+        parse_int=None, parse_constant=None, **kw):
+    """
+    Deserialize ``s`` (a ``str`` or ``unicode`` instance containing a JSON
+    document) to a Python object.
+
+    If ``s`` is a ``str`` instance and is encoded with an ASCII based encoding
+    other than utf-8 (e.g. latin-1) then an appropriate ``encoding`` name
+    must be specified. Encodings that are not ASCII based (such as UCS-2)
+    are not allowed and should be decoded to ``unicode`` first.
+
+    ``object_hook`` is an optional function that will be called with the
+    result of any object literal decode (a ``dict``). The return value of
+    ``object_hook`` will be used instead of the ``dict``. This feature
+    can be used to implement custom decoders (e.g. JSON-RPC class hinting).
+
+    ``parse_float``, if specified, will be called with the string
+    of every JSON float to be decoded. By default this is equivalent to
+    float(num_str). This can be used to use another datatype or parser
+    for JSON floats (e.g. decimal.Decimal).
+
+    ``parse_int``, if specified, will be called with the string
+    of every JSON int to be decoded. By default this is equivalent to
+    int(num_str). This can be used to use another datatype or parser
+    for JSON integers (e.g. float).
+
+    ``parse_constant``, if specified, will be called with one of the
+    following strings: -Infinity, Infinity, NaN, null, true, false.
+    This can be used to raise an exception if invalid JSON numbers
+    are encountered.
+
+    To use a custom ``JSONDecoder`` subclass, specify it with the ``cls``
+    kwarg.
+    """
+    if (cls is None and encoding is None and object_hook is None and
+            parse_int is None and parse_float is None and
+            parse_constant is None and not kw):
+        return _default_decoder.decode(s)
+    if cls is None:
+        cls = JSONDecoder
+    if object_hook is not None:
+        kw['object_hook'] = object_hook
+    if parse_float is not None:
+        kw['parse_float'] = parse_float
+    if parse_int is not None:
+        kw['parse_int'] = parse_int
+    if parse_constant is not None:
+        kw['parse_constant'] = parse_constant
+    return cls(encoding=encoding, **kw).decode(s)
+
+
+#
+# Compatibility cruft from other libraries
+#
+
+
+def decode(s):
+    """
+    demjson, python-cjson API compatibility hook. Use loads(s) instead.
+    """
+    import warnings
+    warnings.warn("simplejson.loads(s) should be used instead of decode(s)",
+        DeprecationWarning)
+    return loads(s)
+
+
+def encode(obj):
+    """
+    demjson, python-cjson compatibility hook. Use dumps(s) instead.
+    """
+    import warnings
+    warnings.warn("simplejson.dumps(s) should be used instead of encode(s)",
+        DeprecationWarning)
+    return dumps(obj)
+
+
+def read(s):
+    """
+    jsonlib, JsonUtils, python-json, json-py API compatibility hook.
+    Use loads(s) instead.
+    """
+    import warnings
+    warnings.warn("simplejson.loads(s) should be used instead of read(s)",
+        DeprecationWarning)
+    return loads(s)
+
+
+def write(obj):
+    """
+    jsonlib, JsonUtils, python-json, json-py API compatibility hook.
+    Use dumps(s) instead.
+    """
+    import warnings
+    warnings.warn("simplejson.dumps(s) should be used instead of write(s)",
+        DeprecationWarning)
+    return dumps(obj)
+
+
+if __name__ == '__main__':
+    import simplejson.tool
+    simplejson.tool.main()
diff --git a/webapp/django/utils/simplejson/decoder.py b/webapp/django/utils/simplejson/decoder.py
new file mode 100644
index 0000000..cef9fc0
--- /dev/null
+++ b/webapp/django/utils/simplejson/decoder.py
@@ -0,0 +1,343 @@
+"""
+Implementation of JSONDecoder
+"""
+import re
+import sys
+
+from django.utils.simplejson.scanner import Scanner, pattern
+try:
+    from django.utils.simplejson._speedups import scanstring as c_scanstring
+except ImportError:
+    pass
+
+FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL
+
+def _floatconstants():
+    import struct
+    import sys
+    _BYTES = '7FF80000000000007FF0000000000000'.decode('hex')
+    if sys.byteorder != 'big':
+        _BYTES = _BYTES[:8][::-1] + _BYTES[8:][::-1]
+    nan, inf = struct.unpack('dd', _BYTES)
+    return nan, inf, -inf
+
+NaN, PosInf, NegInf = _floatconstants()
+
+
+def linecol(doc, pos):
+    lineno = doc.count('\n', 0, pos) + 1
+    if lineno == 1:
+        colno = pos
+    else:
+        colno = pos - doc.rindex('\n', 0, pos)
+    return lineno, colno
+
+
+def errmsg(msg, doc, pos, end=None):
+    lineno, colno = linecol(doc, pos)
+    if end is None:
+        return '%s: line %d column %d (char %d)' % (msg, lineno, colno, pos)
+    endlineno, endcolno = linecol(doc, end)
+    return '%s: line %d column %d - line %d column %d (char %d - %d)' % (
+        msg, lineno, colno, endlineno, endcolno, pos, end)
+
+
+_CONSTANTS = {
+    '-Infinity': NegInf,
+    'Infinity': PosInf,
+    'NaN': NaN,
+    'true': True,
+    'false': False,
+    'null': None,
+}
+
+def JSONConstant(match, context, c=_CONSTANTS):
+    s = match.group(0)
+    fn = getattr(context, 'parse_constant', None)
+    if fn is None:
+        rval = c[s]
+    else:
+        rval = fn(s)
+    return rval, None
+pattern('(-?Infinity|NaN|true|false|null)')(JSONConstant)
+
+
+def JSONNumber(match, context):
+    match = JSONNumber.regex.match(match.string, *match.span())
+    integer, frac, exp = match.groups()
+    if frac or exp:
+        fn = getattr(context, 'parse_float', None) or float
+        res = fn(integer + (frac or '') + (exp or ''))
+    else:
+        fn = getattr(context, 'parse_int', None) or int
+        res = fn(integer)
+    return res, None
+pattern(r'(-?(?:0|[1-9]\d*))(\.\d+)?([eE][-+]?\d+)?')(JSONNumber)
+
+
+STRINGCHUNK = re.compile(r'(.*?)(["\\\x00-\x1f])', FLAGS)
+BACKSLASH = {
+    '"': u'"', '\\': u'\\', '/': u'/',
+    'b': u'\b', 'f': u'\f', 'n': u'\n', 'r': u'\r', 't': u'\t',
+}
+
+DEFAULT_ENCODING = "utf-8"
+
+def py_scanstring(s, end, encoding=None, strict=True, _b=BACKSLASH, _m=STRINGCHUNK.match):
+    if encoding is None:
+        encoding = DEFAULT_ENCODING
+    chunks = []
+    _append = chunks.append
+    begin = end - 1
+    while 1:
+        chunk = _m(s, end)
+        if chunk is None:
+            raise ValueError(
+                errmsg("Unterminated string starting at", s, begin))
+        end = chunk.end()
+        content, terminator = chunk.groups()
+        if content:
+            if not isinstance(content, unicode):
+                content = unicode(content, encoding)
+            _append(content)
+        if terminator == '"':
+            break
+        elif terminator != '\\':
+            if strict:
+                raise ValueError(errmsg("Invalid control character %r at", s, end))
+            else:
+                _append(terminator)
+                continue
+        try:
+            esc = s[end]
+        except IndexError:
+            raise ValueError(
+                errmsg("Unterminated string starting at", s, begin))
+        if esc != 'u':
+            try:
+                m = _b[esc]
+            except KeyError:
+                raise ValueError(
+                    errmsg("Invalid \\escape: %r" % (esc,), s, end))
+            end += 1
+        else:
+            esc = s[end + 1:end + 5]
+            next_end = end + 5
+            msg = "Invalid \\uXXXX escape"
+            try:
+                if len(esc) != 4:
+                    raise ValueError
+                uni = int(esc, 16)
+                if 0xd800 <= uni <= 0xdbff and sys.maxunicode > 65535:
+                    msg = "Invalid \\uXXXX\\uXXXX surrogate pair"
+                    if not s[end + 5:end + 7] == '\\u':
+                        raise ValueError
+                    esc2 = s[end + 7:end + 11]
+                    if len(esc2) != 4:
+                        raise ValueError
+                    uni2 = int(esc2, 16)
+                    uni = 0x10000 + (((uni - 0xd800) << 10) | (uni2 - 0xdc00))
+                    next_end += 6
+                m = unichr(uni)
+            except ValueError:
+                raise ValueError(errmsg(msg, s, end))
+            end = next_end
+        _append(m)
+    return u''.join(chunks), end
+
+
+# Use speedup
+try:
+    scanstring = c_scanstring
+except NameError:
+    scanstring = py_scanstring
+
+def JSONString(match, context):
+    encoding = getattr(context, 'encoding', None)
+    strict = getattr(context, 'strict', True)
+    return scanstring(match.string, match.end(), encoding, strict)
+pattern(r'"')(JSONString)
+
+
+WHITESPACE = re.compile(r'\s*', FLAGS)
+
+def JSONObject(match, context, _w=WHITESPACE.match):
+    pairs = {}
+    s = match.string
+    end = _w(s, match.end()).end()
+    nextchar = s[end:end + 1]
+    # Trivial empty object
+    if nextchar == '}':
+        return pairs, end + 1
+    if nextchar != '"':
+        raise ValueError(errmsg("Expecting property name", s, end))
+    end += 1
+    encoding = getattr(context, 'encoding', None)
+    strict = getattr(context, 'strict', True)
+    iterscan = JSONScanner.iterscan
+    while True:
+        key, end = scanstring(s, end, encoding, strict)
+        end = _w(s, end).end()
+        if s[end:end + 1] != ':':
+            raise ValueError(errmsg("Expecting : delimiter", s, end))
+        end = _w(s, end + 1).end()
+        try:
+            value, end = iterscan(s, idx=end, context=context).next()
+        except StopIteration:
+            raise ValueError(errmsg("Expecting object", s, end))
+        pairs[key] = value
+        end = _w(s, end).end()
+        nextchar = s[end:end + 1]
+        end += 1
+        if nextchar == '}':
+            break
+        if nextchar != ',':
+            raise ValueError(errmsg("Expecting , delimiter", s, end - 1))
+        end = _w(s, end).end()
+        nextchar = s[end:end + 1]
+        end += 1
+        if nextchar != '"':
+            raise ValueError(errmsg("Expecting property name", s, end - 1))
+    object_hook = getattr(context, 'object_hook', None)
+    if object_hook is not None:
+        pairs = object_hook(pairs)
+    return pairs, end
+pattern(r'{')(JSONObject)
+
+
+def JSONArray(match, context, _w=WHITESPACE.match):
+    values = []
+    s = match.string
+    end = _w(s, match.end()).end()
+    # Look-ahead for trivial empty array
+    nextchar = s[end:end + 1]
+    if nextchar == ']':
+        return values, end + 1
+    iterscan = JSONScanner.iterscan
+    while True:
+        try:
+            value, end = iterscan(s, idx=end, context=context).next()
+        except StopIteration:
+            raise ValueError(errmsg("Expecting object", s, end))
+        values.append(value)
+        end = _w(s, end).end()
+        nextchar = s[end:end + 1]
+        end += 1
+        if nextchar == ']':
+            break
+        if nextchar != ',':
+            raise ValueError(errmsg("Expecting , delimiter", s, end))
+        end = _w(s, end).end()
+    return values, end
+pattern(r'\[')(JSONArray)
+
+
+ANYTHING = [
+    JSONObject,
+    JSONArray,
+    JSONString,
+    JSONConstant,
+    JSONNumber,
+]
+
+JSONScanner = Scanner(ANYTHING)
+
+
+class JSONDecoder(object):
+    """
+    Simple JSON <http://json.org> decoder
+
+    Performs the following translations in decoding by default:
+    
+    +---------------+-------------------+
+    | JSON          | Python            |
+    +===============+===================+
+    | object        | dict              |
+    +---------------+-------------------+
+    | array         | list              |
+    +---------------+-------------------+
+    | string        | unicode           |
+    +---------------+-------------------+
+    | number (int)  | int, long         |
+    +---------------+-------------------+
+    | number (real) | float             |
+    +---------------+-------------------+
+    | true          | True              |
+    +---------------+-------------------+
+    | false         | False             |
+    +---------------+-------------------+
+    | null          | None              |
+    +---------------+-------------------+
+
+    It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as
+    their corresponding ``float`` values, which is outside the JSON spec.
+    """
+
+    _scanner = Scanner(ANYTHING)
+    __all__ = ['__init__', 'decode', 'raw_decode']
+
+    def __init__(self, encoding=None, object_hook=None, parse_float=None,
+            parse_int=None, parse_constant=None, strict=True):
+        """
+        ``encoding`` determines the encoding used to interpret any ``str``
+        objects decoded by this instance (utf-8 by default).  It has no
+        effect when decoding ``unicode`` objects.
+        
+        Note that currently only encodings that are a superset of ASCII work,
+        strings of other encodings should be passed in as ``unicode``.
+
+        ``object_hook``, if specified, will be called with the result
+        of every JSON object decoded and its return value will be used in
+        place of the given ``dict``.  This can be used to provide custom
+        deserializations (e.g. to support JSON-RPC class hinting).
+
+        ``parse_float``, if specified, will be called with the string
+        of every JSON float to be decoded. By default this is equivalent to
+        float(num_str). This can be used to use another datatype or parser
+        for JSON floats (e.g. decimal.Decimal).
+
+        ``parse_int``, if specified, will be called with the string
+        of every JSON int to be decoded. By default this is equivalent to
+        int(num_str). This can be used to use another datatype or parser
+        for JSON integers (e.g. float).
+
+        ``parse_constant``, if specified, will be called with one of the
+        following strings: -Infinity, Infinity, NaN, null, true, false.
+        This can be used to raise an exception if invalid JSON numbers
+        are encountered.
+        """
+        self.encoding = encoding
+        self.object_hook = object_hook
+        self.parse_float = parse_float
+        self.parse_int = parse_int
+        self.parse_constant = parse_constant
+        self.strict = strict
+
+    def decode(self, s, _w=WHITESPACE.match):
+        """
+        Return the Python representation of ``s`` (a ``str`` or ``unicode``
+        instance containing a JSON document)
+        """
+        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+        end = _w(s, end).end()
+        if end != len(s):
+            raise ValueError(errmsg("Extra data", s, end, len(s)))
+        return obj
+
+    def raw_decode(self, s, **kw):
+        """
+        Decode a JSON document from ``s`` (a ``str`` or ``unicode`` beginning
+        with a JSON document) and return a 2-tuple of the Python
+        representation and the index in ``s`` where the document ended.
+
+        This can be used to decode a JSON document from a string that may
+        have extraneous data at the end.
+        """
+        kw.setdefault('context', self)
+        try:
+            obj, end = self._scanner.iterscan(s, **kw).next()
+        except StopIteration:
+            raise ValueError("No JSON object could be decoded")
+        return obj, end
+
+__all__ = ['JSONDecoder']
diff --git a/webapp/django/utils/simplejson/encoder.py b/webapp/django/utils/simplejson/encoder.py
new file mode 100644
index 0000000..e6c01f6
--- /dev/null
+++ b/webapp/django/utils/simplejson/encoder.py
@@ -0,0 +1,385 @@
+"""
+Implementation of JSONEncoder
+"""
+import re
+
+try:
+    from django.utils.simplejson._speedups import encode_basestring_ascii as c_encode_basestring_ascii
+except ImportError:
+    pass
+
+ESCAPE = re.compile(r'[\x00-\x1f\\"\b\f\n\r\t]')
+ESCAPE_ASCII = re.compile(r'([\\"]|[^\ -~])')
+HAS_UTF8 = re.compile(r'[\x80-\xff]')
+ESCAPE_DCT = {
+    '\\': '\\\\',
+    '"': '\\"',
+    '\b': '\\b',
+    '\f': '\\f',
+    '\n': '\\n',
+    '\r': '\\r',
+    '\t': '\\t',
+}
+for i in range(0x20):
+    ESCAPE_DCT.setdefault(chr(i), '\\u%04x' % (i,))
+
+# Assume this produces an infinity on all machines (probably not guaranteed)
+INFINITY = float('1e66666')
+FLOAT_REPR = repr
+
+def floatstr(o, allow_nan=True):
+    # Check for specials.  Note that this type of test is processor- and/or
+    # platform-specific, so do tests which don't depend on the internals.
+
+    if o != o:
+        text = 'NaN'
+    elif o == INFINITY:
+        text = 'Infinity'
+    elif o == -INFINITY:
+        text = '-Infinity'
+    else:
+        return FLOAT_REPR(o)
+
+    if not allow_nan:
+        raise ValueError("Out of range float values are not JSON compliant: %r"
+            % (o,))
+
+    return text
+
+
+def encode_basestring(s):
+    """
+    Return a JSON representation of a Python string
+    """
+    def replace(match):
+        return ESCAPE_DCT[match.group(0)]
+    return '"' + ESCAPE.sub(replace, s) + '"'
+
+
+def py_encode_basestring_ascii(s):
+    if isinstance(s, str) and HAS_UTF8.search(s) is not None:
+        s = s.decode('utf-8')
+    def replace(match):
+        s = match.group(0)
+        try:
+            return ESCAPE_DCT[s]
+        except KeyError:
+            n = ord(s)
+            if n < 0x10000:
+                return '\\u%04x' % (n,)
+            else:
+                # surrogate pair
+                n -= 0x10000
+                s1 = 0xd800 | ((n >> 10) & 0x3ff)
+                s2 = 0xdc00 | (n & 0x3ff)
+                return '\\u%04x\\u%04x' % (s1, s2)
+    return '"' + str(ESCAPE_ASCII.sub(replace, s)) + '"'
+
+
+try:
+    encode_basestring_ascii = c_encode_basestring_ascii
+except NameError:
+    encode_basestring_ascii = py_encode_basestring_ascii
+
+
+class JSONEncoder(object):
+    """
+    Extensible JSON <http://json.org> encoder for Python data structures.
+
+    Supports the following objects and types by default:
+    
+    +-------------------+---------------+
+    | Python            | JSON          |
+    +===================+===============+
+    | dict              | object        |
+    +-------------------+---------------+
+    | list, tuple       | array         |
+    +-------------------+---------------+
+    | str, unicode      | string        |
+    +-------------------+---------------+
+    | int, long, float  | number        |
+    +-------------------+---------------+
+    | True              | true          |
+    +-------------------+---------------+
+    | False             | false         |
+    +-------------------+---------------+
+    | None              | null          |
+    +-------------------+---------------+
+
+    To extend this to recognize other objects, subclass and implement a
+    ``.default()`` method with another method that returns a serializable
+    object for ``o`` if possible, otherwise it should call the superclass
+    implementation (to raise ``TypeError``).
+    """
+    __all__ = ['__init__', 'default', 'encode', 'iterencode']
+    item_separator = ', '
+    key_separator = ': '
+    def __init__(self, skipkeys=False, ensure_ascii=True,
+            check_circular=True, allow_nan=True, sort_keys=False,
+            indent=None, separators=None, encoding='utf-8', default=None):
+        """
+        Constructor for JSONEncoder, with sensible defaults.
+
+        If skipkeys is False, then it is a TypeError to attempt
+        encoding of keys that are not str, int, long, float or None.  If
+        skipkeys is True, such items are simply skipped.
+
+        If ensure_ascii is True, the output is guaranteed to be str
+        objects with all incoming unicode characters escaped.  If
+        ensure_ascii is false, the output will be unicode object.
+
+        If check_circular is True, then lists, dicts, and custom encoded
+        objects will be checked for circular references during encoding to
+        prevent an infinite recursion (which would cause an OverflowError).
+        Otherwise, no such check takes place.
+
+        If allow_nan is True, then NaN, Infinity, and -Infinity will be
+        encoded as such.  This behavior is not JSON specification compliant,
+        but is consistent with most JavaScript based encoders and decoders.
+        Otherwise, it will be a ValueError to encode such floats.
+
+        If sort_keys is True, then the output of dictionaries will be
+        sorted by key; this is useful for regression tests to ensure
+        that JSON serializations can be compared on a day-to-day basis.
+
+        If indent is a non-negative integer, then JSON array
+        elements and object members will be pretty-printed with that
+        indent level.  An indent level of 0 will only insert newlines.
+        None is the most compact representation.
+
+        If specified, separators should be a (item_separator, key_separator)
+        tuple.  The default is (', ', ': ').  To get the most compact JSON
+        representation you should specify (',', ':') to eliminate whitespace.
+
+        If specified, default is a function that gets called for objects
+        that can't otherwise be serialized.  It should return a JSON encodable
+        version of the object or raise a ``TypeError``.
+
+        If encoding is not None, then all input strings will be
+        transformed into unicode using that encoding prior to JSON-encoding.
+        The default is UTF-8.
+        """
+
+        self.skipkeys = skipkeys
+        self.ensure_ascii = ensure_ascii
+        self.check_circular = check_circular
+        self.allow_nan = allow_nan
+        self.sort_keys = sort_keys
+        self.indent = indent
+        self.current_indent_level = 0
+        if separators is not None:
+            self.item_separator, self.key_separator = separators
+        if default is not None:
+            self.default = default
+        self.encoding = encoding
+
+    def _newline_indent(self):
+        return '\n' + (' ' * (self.indent * self.current_indent_level))
+
+    def _iterencode_list(self, lst, markers=None):
+        if not lst:
+            yield '[]'
+            return
+        if markers is not None:
+            markerid = id(lst)
+            if markerid in markers:
+                raise ValueError("Circular reference detected")
+            markers[markerid] = lst
+        yield '['
+        if self.indent is not None:
+            self.current_indent_level += 1
+            newline_indent = self._newline_indent()
+            separator = self.item_separator + newline_indent
+            yield newline_indent
+        else:
+            newline_indent = None
+            separator = self.item_separator
+        first = True
+        for value in lst:
+            if first:
+                first = False
+            else:
+                yield separator
+            for chunk in self._iterencode(value, markers):
+                yield chunk
+        if newline_indent is not None:
+            self.current_indent_level -= 1
+            yield self._newline_indent()
+        yield ']'
+        if markers is not None:
+            del markers[markerid]
+
+    def _iterencode_dict(self, dct, markers=None):
+        if not dct:
+            yield '{}'
+            return
+        if markers is not None:
+            markerid = id(dct)
+            if markerid in markers:
+                raise ValueError("Circular reference detected")
+            markers[markerid] = dct
+        yield '{'
+        key_separator = self.key_separator
+        if self.indent is not None:
+            self.current_indent_level += 1
+            newline_indent = self._newline_indent()
+            item_separator = self.item_separator + newline_indent
+            yield newline_indent
+        else:
+            newline_indent = None
+            item_separator = self.item_separator
+        first = True
+        if self.ensure_ascii:
+            encoder = encode_basestring_ascii
+        else:
+            encoder = encode_basestring
+        allow_nan = self.allow_nan
+        if self.sort_keys:
+            keys = dct.keys()
+            keys.sort()
+            items = [(k, dct[k]) for k in keys]
+        else:
+            items = dct.iteritems()
+        _encoding = self.encoding
+        _do_decode = (_encoding is not None
+            and not (_encoding == 'utf-8'))
+        for key, value in items:
+            if isinstance(key, str):
+                if _do_decode:
+                    key = key.decode(_encoding)
+            elif isinstance(key, basestring):
+                pass
+            # JavaScript is weakly typed for these, so it makes sense to
+            # also allow them.  Many encoders seem to do something like this.
+            elif isinstance(key, float):
+                key = floatstr(key, allow_nan)
+            elif isinstance(key, (int, long)):
+                key = str(key)
+            elif key is True:
+                key = 'true'
+            elif key is False:
+                key = 'false'
+            elif key is None:
+                key = 'null'
+            elif self.skipkeys:
+                continue
+            else:
+                raise TypeError("key %r is not a string" % (key,))
+            if first:
+                first = False
+            else:
+                yield item_separator
+            yield encoder(key)
+            yield key_separator
+            for chunk in self._iterencode(value, markers):
+                yield chunk
+        if newline_indent is not None:
+            self.current_indent_level -= 1
+            yield self._newline_indent()
+        yield '}'
+        if markers is not None:
+            del markers[markerid]
+
+    def _iterencode(self, o, markers=None):
+        if isinstance(o, basestring):
+            if self.ensure_ascii:
+                encoder = encode_basestring_ascii
+            else:
+                encoder = encode_basestring
+            _encoding = self.encoding
+            if (_encoding is not None and isinstance(o, str)
+                    and not (_encoding == 'utf-8')):
+                o = o.decode(_encoding)
+            yield encoder(o)
+        elif o is None:
+            yield 'null'
+        elif o is True:
+            yield 'true'
+        elif o is False:
+            yield 'false'
+        elif isinstance(o, (int, long)):
+            yield str(o)
+        elif isinstance(o, float):
+            yield floatstr(o, self.allow_nan)
+        elif isinstance(o, (list, tuple)):
+            for chunk in self._iterencode_list(o, markers):
+                yield chunk
+        elif isinstance(o, dict):
+            for chunk in self._iterencode_dict(o, markers):
+                yield chunk
+        else:
+            if markers is not None:
+                markerid = id(o)
+                if markerid in markers:
+                    raise ValueError("Circular reference detected")
+                markers[markerid] = o
+            for chunk in self._iterencode_default(o, markers):
+                yield chunk
+            if markers is not None:
+                del markers[markerid]
+
+    def _iterencode_default(self, o, markers=None):
+        newobj = self.default(o)
+        return self._iterencode(newobj, markers)
+
+    def default(self, o):
+        """
+        Implement this method in a subclass such that it returns
+        a serializable object for ``o``, or calls the base implementation
+        (to raise a ``TypeError``).
+
+        For example, to support arbitrary iterators, you could
+        implement default like this::
+            
+            def default(self, o):
+                try:
+                    iterable = iter(o)
+                except TypeError:
+                    pass
+                else:
+                    return list(iterable)
+                return JSONEncoder.default(self, o)
+        """
+        raise TypeError("%r is not JSON serializable" % (o,))
+
+    def encode(self, o):
+        """
+        Return a JSON string representation of a Python data structure.
+
+        >>> JSONEncoder().encode({"foo": ["bar", "baz"]})
+        '{"foo": ["bar", "baz"]}'
+        """
+        # This is for extremely simple cases and benchmarks.
+        if isinstance(o, basestring):
+            if isinstance(o, str):
+                _encoding = self.encoding
+                if (_encoding is not None 
+                        and not (_encoding == 'utf-8')):
+                    o = o.decode(_encoding)
+            if self.ensure_ascii:
+                return encode_basestring_ascii(o)
+            else:
+                return encode_basestring(o)
+        # This doesn't pass the iterator directly to ''.join() because the
+        # exceptions aren't as detailed.  The list call should be roughly
+        # equivalent to the PySequence_Fast that ''.join() would do.
+        chunks = list(self.iterencode(o))
+        return ''.join(chunks)
+
+    def iterencode(self, o):
+        """
+        Encode the given object and yield each string
+        representation as available.
+        
+        For example::
+            
+            for chunk in JSONEncoder().iterencode(bigobject):
+                mysocket.write(chunk)
+        """
+        if self.check_circular:
+            markers = {}
+        else:
+            markers = None
+        return self._iterencode(o, markers)
+
+__all__ = ['JSONEncoder']
diff --git a/webapp/django/utils/simplejson/scanner.py b/webapp/django/utils/simplejson/scanner.py
new file mode 100644
index 0000000..2a18390
--- /dev/null
+++ b/webapp/django/utils/simplejson/scanner.py
@@ -0,0 +1,67 @@
+"""
+Iterator based sre token scanner
+"""
+import re
+from re import VERBOSE, MULTILINE, DOTALL
+import sre_parse
+import sre_compile
+import sre_constants
+from sre_constants import BRANCH, SUBPATTERN
+
+__all__ = ['Scanner', 'pattern']
+
+FLAGS = (VERBOSE | MULTILINE | DOTALL)
+
+class Scanner(object):
+    def __init__(self, lexicon, flags=FLAGS):
+        self.actions = [None]
+        # Combine phrases into a compound pattern
+        s = sre_parse.Pattern()
+        s.flags = flags
+        p = []
+        for idx, token in enumerate(lexicon):
+            phrase = token.pattern
+            try:
+                subpattern = sre_parse.SubPattern(s,
+                    [(SUBPATTERN, (idx + 1, sre_parse.parse(phrase, flags)))])
+            except sre_constants.error:
+                raise
+            p.append(subpattern)
+            self.actions.append(token)
+
+        s.groups = len(p) + 1 # NOTE(guido): Added to make SRE validation work
+        p = sre_parse.SubPattern(s, [(BRANCH, (None, p))])
+        self.scanner = sre_compile.compile(p)
+
+    def iterscan(self, string, idx=0, context=None):
+        """
+        Yield match, end_idx for each match
+        """
+        match = self.scanner.scanner(string, idx).match
+        actions = self.actions
+        lastend = idx
+        end = len(string)
+        while True:
+            m = match()
+            if m is None:
+                break
+            matchbegin, matchend = m.span()
+            if lastend == matchend:
+                break
+            action = actions[m.lastindex]
+            if action is not None:
+                rval, next_pos = action(m, context)
+                if next_pos is not None and next_pos != matchend:
+                    # "fast forward" the scanner
+                    matchend = next_pos
+                    match = self.scanner.scanner(string, matchend).match
+                yield rval, matchend
+            lastend = matchend
+
+
+def pattern(pattern, flags=FLAGS):
+    def decorator(fn):
+        fn.pattern = pattern
+        fn.regex = re.compile(pattern, flags)
+        return fn
+    return decorator
\ No newline at end of file
diff --git a/webapp/django/utils/simplejson/tool.py b/webapp/django/utils/simplejson/tool.py
new file mode 100644
index 0000000..d0eb8ad
--- /dev/null
+++ b/webapp/django/utils/simplejson/tool.py
@@ -0,0 +1,44 @@
+r"""
+Using simplejson from the shell to validate and
+pretty-print::
+    
+    $ echo '{"json":"obj"}' | python -msimplejson
+    {
+        "json": "obj"
+    }
+    $ echo '{ 1.2:3.4}' | python -msimplejson
+    Expecting property name: line 1 column 2 (char 2)
+
+Note that the JSON produced by this module's default settings
+is a subset of YAML, so it may be used as a serializer for that as well.
+"""
+import django.utils.simplejson
+
+#
+# Pretty printer:
+#     curl http://mochikit.com/examples/ajax_tables/domains.json | python -msimplejson.tool
+#
+
+def main():
+    import sys
+    if len(sys.argv) == 1:
+        infile = sys.stdin
+        outfile = sys.stdout
+    elif len(sys.argv) == 2:
+        infile = open(sys.argv[1], 'rb')
+        outfile = sys.stdout
+    elif len(sys.argv) == 3:
+        infile = open(sys.argv[1], 'rb')
+        outfile = open(sys.argv[2], 'wb')
+    else:
+        raise SystemExit("%s [infile [outfile]]" % (sys.argv[0],))
+    try:
+        obj = simplejson.load(infile)
+    except ValueError, e:
+        raise SystemExit(e)
+    simplejson.dump(obj, outfile, sort_keys=True, indent=4)
+    outfile.write('\n')
+
+
+if __name__ == '__main__':
+    main()
diff --git a/webapp/django/utils/stopwords.py b/webapp/django/utils/stopwords.py
new file mode 100644
index 0000000..18aeb7f
--- /dev/null
+++ b/webapp/django/utils/stopwords.py
@@ -0,0 +1,42 @@
+# Performance note: I benchmarked this code using a set instead of
+# a list for the stopwords and was surprised to find that the list
+# performed /better/ than the set - maybe because it's only a small
+# list.
+
+stopwords = '''
+i
+a
+an
+are
+as
+at
+be
+by
+for
+from
+how
+in
+is
+it
+of
+on
+or
+that
+the
+this
+to
+was
+what
+when
+where
+'''.split()
+
+def strip_stopwords(sentence):
+    "Removes stopwords - also normalizes whitespace"
+    words = sentence.split()
+    sentence = []
+    for word in words:
+        if word.lower() not in stopwords:
+            sentence.append(word)
+    return u' '.join(sentence)
+
diff --git a/webapp/django/utils/synch.py b/webapp/django/utils/synch.py
new file mode 100644
index 0000000..2e808c1
--- /dev/null
+++ b/webapp/django/utils/synch.py
@@ -0,0 +1,87 @@
+"""
+Synchronization primitives:
+
+    - reader-writer lock (preference to writers)
+
+(Contributed to Django by eugene@lazutkin.com)
+"""
+
+try:
+    import threading
+except ImportError:
+    import dummy_threading as threading
+
+class RWLock:
+    """
+    Classic implementation of reader-writer lock with preference to writers.
+
+    Readers can access a resource simultaneously.
+    Writers get an exclusive access.
+
+    API is self-descriptive:
+        reader_enters()
+        reader_leaves()
+        writer_enters()
+        writer_leaves()
+    """
+    def __init__(self):
+        self.mutex     = threading.RLock()
+        self.can_read  = threading.Semaphore(0)
+        self.can_write = threading.Semaphore(0)
+        self.active_readers  = 0
+        self.active_writers  = 0
+        self.waiting_readers = 0
+        self.waiting_writers = 0
+
+    def reader_enters(self):
+        self.mutex.acquire()
+        try:
+            if self.active_writers == 0 and self.waiting_writers == 0:
+                self.active_readers += 1
+                self.can_read.release()
+            else:
+                self.waiting_readers += 1
+        finally:
+            self.mutex.release()
+        self.can_read.acquire()
+
+    def reader_leaves(self):
+        self.mutex.acquire()
+        try:
+            self.active_readers -= 1
+            if self.active_readers == 0 and self.waiting_writers != 0:
+                self.active_writers  += 1
+                self.waiting_writers -= 1
+                self.can_write.release()
+        finally:
+            self.mutex.release()
+
+    def writer_enters(self):
+        self.mutex.acquire()
+        try:
+            if self.active_writers == 0 and self.waiting_writers == 0 and self.active_readers == 0:
+                self.active_writers += 1
+                self.can_write.release()
+            else:
+                self.waiting_writers += 1
+        finally:
+            self.mutex.release()
+        self.can_write.acquire()
+
+    def writer_leaves(self):
+        self.mutex.acquire()
+        try:
+            self.active_writers -= 1
+            if self.waiting_writers != 0:
+                self.active_writers  += 1
+                self.waiting_writers -= 1
+                self.can_write.release()
+            elif self.waiting_readers != 0:
+                t = self.waiting_readers
+                self.waiting_readers = 0
+                self.active_readers += t
+                while t > 0:
+                    self.can_read.release()
+                    t -= 1
+        finally:
+            self.mutex.release()
diff --git a/webapp/django/utils/termcolors.py b/webapp/django/utils/termcolors.py
new file mode 100644
index 0000000..17a600f
--- /dev/null
+++ b/webapp/django/utils/termcolors.py
@@ -0,0 +1,68 @@
+"""
+termcolors.py
+"""
+
+color_names = ('black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white')
+foreground = dict([(color_names[x], '3%s' % x) for x in range(8)])
+background = dict([(color_names[x], '4%s' % x) for x in range(8)])
+del color_names
+
+RESET = '0'
+opt_dict = {'bold': '1', 'underscore': '4', 'blink': '5', 'reverse': '7', 'conceal': '8'}
+
+def colorize(text='', opts=(), **kwargs):
+    """
+    Returns your text, enclosed in ANSI graphics codes.
+
+    Depends on the keyword arguments 'fg' and 'bg', and the contents of
+    the opts tuple/list.
+
+    Returns the RESET code if no parameters are given.
+
+    Valid colors:
+        'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'
+
+    Valid options:
+        'bold'
+        'underscore'
+        'blink'
+        'reverse'
+        'conceal'
+        'noreset' - string will not be auto-terminated with the RESET code
+
+    Examples:
+        colorize('hello', fg='red', bg='blue', opts=('blink',))
+        colorize()
+        colorize('goodbye', opts=('underscore',))
+        print colorize('first line', fg='red', opts=('noreset',))
+        print 'this should be red too'
+        print colorize('and so should this')
+        print 'this should not be red'
+    """
+    text = str(text)
+    code_list = []
+    if text == '' and len(opts) == 1 and opts[0] == 'reset':
+        return '\x1b[%sm' % RESET
+    for k, v in kwargs.iteritems():
+        if k == 'fg':
+            code_list.append(foreground[v])
+        elif k == 'bg':
+            code_list.append(background[v])
+    for o in opts:
+        if o in opt_dict:
+            code_list.append(opt_dict[o])
+    if 'noreset' not in opts:
+        text = text + '\x1b[%sm' % RESET
+    return ('\x1b[%sm' % ';'.join(code_list)) + text
+
+def make_style(opts=(), **kwargs):
+    """
+    Returns a function with default parameters for colorize()
+
+    Example:
+        bold_red = make_style(opts=('bold',), fg='red')
+        print bold_red('hello')
+        KEYWORD = make_style(fg='yellow')
+        COMMENT = make_style(fg='blue', opts=('bold',))
+    """
+    return lambda text: colorize(text, opts, **kwargs)
diff --git a/webapp/django/utils/text.py b/webapp/django/utils/text.py
new file mode 100644
index 0000000..3686a45
--- /dev/null
+++ b/webapp/django/utils/text.py
@@ -0,0 +1,248 @@
+import re
+from django.conf import settings
+from django.utils.encoding import force_unicode
+from django.utils.functional import allow_lazy
+from django.utils.translation import ugettext_lazy
+from htmlentitydefs import name2codepoint
+
+# Capitalizes the first letter of a string.
+capfirst = lambda x: x and force_unicode(x)[0].upper() + force_unicode(x)[1:]
+capfirst = allow_lazy(capfirst, unicode)
+
+def wrap(text, width):
+    """
+    A word-wrap function that preserves existing line breaks and most spaces in
+    the text. Expects that existing line breaks are posix newlines.
+    """
+    text = force_unicode(text)
+    def _generator():
+        it = iter(text.split(' '))
+        word = it.next()
+        yield word
+        pos = len(word) - word.rfind('\n') - 1
+        for word in it:
+            if "\n" in word:
+                lines = word.split('\n')
+            else:
+                lines = (word,)
+            pos += len(lines[0]) + 1
+            if pos > width:
+                yield '\n'
+                pos = len(lines[-1])
+            else:
+                yield ' '
+                if len(lines) > 1:
+                    pos = len(lines[-1])
+            yield word
+    return u''.join(_generator())
+wrap = allow_lazy(wrap, unicode)
+
+def truncate_words(s, num):
+    "Truncates a string after a certain number of words."
+    s = force_unicode(s)
+    length = int(num)
+    words = s.split()
+    if len(words) > length:
+        words = words[:length]
+        if not words[-1].endswith('...'):
+            words.append('...')
+    return u' '.join(words)
+truncate_words = allow_lazy(truncate_words, unicode)
+
+def truncate_html_words(s, num):
+    """
+    Truncates html to a certain number of words (not counting tags and
+    comments). Closes opened tags if they were correctly closed in the given
+    html.
+    """
+    s = force_unicode(s)
+    length = int(num)
+    if length <= 0:
+        return u''
+    html4_singlets = ('br', 'col', 'link', 'base', 'img', 'param', 'area', 'hr', 'input')
+    # Set up regular expressions
+    re_words = re.compile(r'&.*?;|<.*?>|(\w[\w-]*)', re.U)
+    re_tag = re.compile(r'<(/)?([^ ]+?)(?: (/)| .*?)?>')
+    # Count non-HTML words and keep note of open tags
+    pos = 0
+    ellipsis_pos = 0
+    words = 0
+    open_tags = []
+    while words <= length:
+        m = re_words.search(s, pos)
+        if not m:
+            # Checked through whole string
+            break
+        pos = m.end(0)
+        if m.group(1):
+            # It's an actual non-HTML word
+            words += 1
+            if words == length:
+                ellipsis_pos = pos
+            continue
+        # Check for tag
+        tag = re_tag.match(m.group(0))
+        if not tag or ellipsis_pos:
+            # Don't worry about non tags or tags after our truncate point
+            continue
+        closing_tag, tagname, self_closing = tag.groups()
+        tagname = tagname.lower()  # Element names are always case-insensitive
+        if self_closing or tagname in html4_singlets:
+            pass
+        elif closing_tag:
+            # Check for match in open tags list
+            try:
+                i = open_tags.index(tagname)
+            except ValueError:
+                pass
+            else:
+                # SGML: An end tag closes, back to the matching start tag, all unclosed intervening start tags with omitted end tags
+                open_tags = open_tags[i+1:]
+        else:
+            # Add it to the start of the open tags list
+            open_tags.insert(0, tagname)
+    if words <= length:
+        # Don't try to close tags if we don't need to truncate
+        return s
+    out = s[:ellipsis_pos] + ' ...'
+    # Close any tags still open
+    for tag in open_tags:
+        out += '</%s>' % tag
+    # Return string
+    return out
+truncate_html_words = allow_lazy(truncate_html_words, unicode)
+
+def get_valid_filename(s):
+    """
+    Returns the given string converted to a string that can be used for a clean
+    filename. Specifically, leading and trailing spaces are removed; other
+    spaces are converted to underscores; and all non-filename-safe characters
+    are removed.
+    >>> get_valid_filename("john's portrait in 2004.jpg")
+    u'johns_portrait_in_2004.jpg'
+    """
+    s = force_unicode(s).strip().replace(' ', '_')
+    return re.sub(r'[^-A-Za-z0-9_.]', '', s)
+get_valid_filename = allow_lazy(get_valid_filename, unicode)
+
+def get_text_list(list_, last_word=ugettext_lazy(u'or')):
+    """
+    >>> get_text_list(['a', 'b', 'c', 'd'])
+    u'a, b, c or d'
+    >>> get_text_list(['a', 'b', 'c'], 'and')
+    u'a, b and c'
+    >>> get_text_list(['a', 'b'], 'and')
+    u'a and b'
+    >>> get_text_list(['a'])
+    u'a'
+    >>> get_text_list([])
+    u''
+    """
+    if len(list_) == 0: return u''
+    if len(list_) == 1: return force_unicode(list_[0])
+    return u'%s %s %s' % (', '.join([force_unicode(i) for i in list_][:-1]), force_unicode(last_word), force_unicode(list_[-1]))
+get_text_list = allow_lazy(get_text_list, unicode)
+
+def normalize_newlines(text):
+    return force_unicode(re.sub(r'\r\n|\r|\n', '\n', text))
+normalize_newlines = allow_lazy(normalize_newlines, unicode)
+
+def recapitalize(text):
+    "Recapitalizes text, placing caps after end-of-sentence punctuation."
+    text = force_unicode(text).lower()
+    capsRE = re.compile(r'(?:^|(?<=[\.\?\!] ))([a-z])')
+    text = capsRE.sub(lambda x: x.group(1).upper(), text)
+    return text
+recapitalize = allow_lazy(recapitalize)
+
+def phone2numeric(phone):
+    "Converts a phone number with letters into its numeric equivalent."
+    letters = re.compile(r'[A-PR-Y]', re.I)
+    char2number = lambda m: {'a': '2', 'c': '2', 'b': '2', 'e': '3',
+         'd': '3', 'g': '4', 'f': '3', 'i': '4', 'h': '4', 'k': '5',
+         'j': '5', 'm': '6', 'l': '5', 'o': '6', 'n': '6', 'p': '7',
+         's': '7', 'r': '7', 'u': '8', 't': '8', 'w': '9', 'v': '8',
+         'y': '9', 'x': '9'}.get(m.group(0).lower())
+    return letters.sub(char2number, phone)
+phone2numeric = allow_lazy(phone2numeric)
+
+# From http://www.xhaus.com/alan/python/httpcomp.html#gzip
+# Used with permission.
+def compress_string(s):
+    import cStringIO, gzip
+    zbuf = cStringIO.StringIO()
+    zfile = gzip.GzipFile(mode='wb', compresslevel=6, fileobj=zbuf)
+    zfile.write(s)
+    zfile.close()
+    return zbuf.getvalue()
+
+ustring_re = re.compile(u"([\u0080-\uffff])")
+
+def javascript_quote(s, quote_double_quotes=False):
+
+    def fix(match):
+        return r"\u%04x" % ord(match.group(1))
+
+    if type(s) == str:
+        s = s.decode('utf-8')
+    elif type(s) != unicode:
+        raise TypeError, s
+    s = s.replace('\\', '\\\\')
+    s = s.replace('\r', '\\r')
+    s = s.replace('\n', '\\n')
+    s = s.replace('\t', '\\t')
+    s = s.replace("'", "\\'")
+    if quote_double_quotes:
+        s = s.replace('"', '&quot;')
+    return str(ustring_re.sub(fix, s))
+javascript_quote = allow_lazy(javascript_quote, unicode)
+
+smart_split_re = re.compile('("(?:[^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'(?:[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'|[^\\s]+)')
+def smart_split(text):
+    r"""
+    Generator that splits a string by spaces, leaving quoted phrases together.
+    Supports both single and double quotes, and supports escaping quotes with
+    backslashes. In the output, strings will keep their initial and trailing
+    quote marks.
+
+    >>> list(smart_split(r'This is "a person\'s" test.'))
+    [u'This', u'is', u'"a person\\\'s"', u'test.']
+   	>>> list(smart_split(r"Another 'person\'s' test.")) 
+   	[u'Another', u"'person's'", u'test.']
+   	>>> list(smart_split(r'A "\"funky\" style" test.')) 
+   	[u'A', u'""funky" style"', u'test.']
+    """
+    text = force_unicode(text)
+    for bit in smart_split_re.finditer(text):
+        bit = bit.group(0)
+        if bit[0] == '"' and bit[-1] == '"':
+            yield '"' + bit[1:-1].replace('\\"', '"').replace('\\\\', '\\') + '"'
+        elif bit[0] == "'" and bit[-1] == "'":
+            yield "'" + bit[1:-1].replace("\\'", "'").replace("\\\\", "\\") + "'"
+        else:
+            yield bit
+smart_split = allow_lazy(smart_split, unicode)
+
+def _replace_entity(match):
+     text = match.group(1)
+     if text[0] == u'#':
+         text = text[1:]
+         try:
+             if text[0] in u'xX':
+                 c = int(text[1:], 16)
+             else:
+                 c = int(text)
+             return unichr(c)
+         except ValueError:
+             return match.group(0)
+     else:
+         try:
+             return unichr(name2codepoint[text])
+         except (ValueError, KeyError):
+             return match.group(0)
+
+_entity_re = re.compile(r"&(#?[xX]?(?:[0-9a-fA-F]+|\w{1,8}));")
+
+def unescape_entities(text):
+     return _entity_re.sub(_replace_entity, text)
+unescape_entities = allow_lazy(unescape_entities, unicode)
diff --git a/webapp/django/utils/thread_support.py b/webapp/django/utils/thread_support.py
new file mode 100644
index 0000000..2b97d16
--- /dev/null
+++ b/webapp/django/utils/thread_support.py
@@ -0,0 +1,12 @@
+"""
+Code used in a couple of places to work with the current thread's environment.
+Current users include i18n and request prefix handling.
+"""
+
+try:
+    import threading
+    currentThread = threading.currentThread
+except ImportError:
+    def currentThread():
+        return "no threading"
+
diff --git a/webapp/django/utils/timesince.py b/webapp/django/utils/timesince.py
new file mode 100644
index 0000000..e1132c3
--- /dev/null
+++ b/webapp/django/utils/timesince.py
@@ -0,0 +1,67 @@
+import datetime
+import time
+
+from django.utils.tzinfo import LocalTimezone
+from django.utils.translation import ungettext, ugettext
+
+def timesince(d, now=None):
+    """
+    Takes two datetime objects and returns the time between d and now
+    as a nicely formatted string, e.g. "10 minutes".  If d occurs after now,
+    then "0 minutes" is returned.
+
+    Units used are years, months, weeks, days, hours, and minutes.
+    Seconds and microseconds are ignored.  Up to two adjacent units will be
+    displayed.  For example, "2 weeks, 3 days" and "1 year, 3 months" are
+    possible outputs, but "2 weeks, 3 hours" and "1 year, 5 days" are not.
+
+    Adapted from http://blog.natbat.co.uk/archive/2003/Jun/14/time_since
+    """
+    chunks = (
+      (60 * 60 * 24 * 365, lambda n: ungettext('year', 'years', n)),
+      (60 * 60 * 24 * 30, lambda n: ungettext('month', 'months', n)),
+      (60 * 60 * 24 * 7, lambda n : ungettext('week', 'weeks', n)),
+      (60 * 60 * 24, lambda n : ungettext('day', 'days', n)),
+      (60 * 60, lambda n: ungettext('hour', 'hours', n)),
+      (60, lambda n: ungettext('minute', 'minutes', n))
+    )
+    # Convert datetime.date to datetime.datetime for comparison
+    if d.__class__ is not datetime.datetime:
+        d = datetime.datetime(d.year, d.month, d.day)
+    if now:
+        t = now.timetuple()
+    else:
+        t = time.localtime()
+    if d.tzinfo:
+        tz = LocalTimezone(d)
+    else:
+        tz = None
+    now = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], tzinfo=tz)
+
+    # ignore microsecond part of 'd' since we removed it from 'now'
+    delta = now - (d - datetime.timedelta(0, 0, d.microsecond))
+    since = delta.days * 24 * 60 * 60 + delta.seconds
+    if since <= 0:
+        # d is in the future compared to now, stop processing.
+        return u'0 ' + ugettext('minutes')
+    for i, (seconds, name) in enumerate(chunks):
+        count = since // seconds
+        if count != 0:
+            break
+    s = ugettext('%(number)d %(type)s') % {'number': count, 'type': name(count)}
+    if i + 1 < len(chunks):
+        # Now get the second item
+        seconds2, name2 = chunks[i + 1]
+        count2 = (since - (seconds * count)) // seconds2
+        if count2 != 0:
+            s += ugettext(', %(number)d %(type)s') % {'number': count2, 'type': name2(count2)}
+    return s
+
+def timeuntil(d, now=None):
+    """
+    Like timesince, but returns a string measuring the time until
+    the given time.
+    """
+    if now == None:
+        now = datetime.datetime.now()
+    return timesince(now, d)
diff --git a/webapp/django/utils/translation/__init__.py b/webapp/django/utils/translation/__init__.py
new file mode 100644
index 0000000..43ce3e5
--- /dev/null
+++ b/webapp/django/utils/translation/__init__.py
@@ -0,0 +1,111 @@
+"""
+Internationalization support.
+"""
+from django.utils.functional import lazy
+from django.utils.encoding import force_unicode
+
+__all__ = ['gettext', 'gettext_noop', 'gettext_lazy', 'ngettext',
+        'ngettext_lazy', 'string_concat', 'activate', 'deactivate',
+        'get_language', 'get_language_bidi', 'get_date_formats',
+        'get_partial_date_formats', 'check_for_language', 'to_locale',
+        'get_language_from_request', 'templatize', 'ugettext',
+        'ungettext', 'deactivate_all']
+
+# Here be dragons, so a short explanation of the logic won't hurt:
+# We are trying to solve two problems: (1) access settings, in particular
+# settings.USE_I18N, as late as possible, so that modules can be imported
+# without having to first configure Django, and (2) if some other code creates
+# a reference to one of these functions, don't break that reference when we
+# replace the functions with their real counterparts (once we do access the
+# settings).
+
+def delayed_loader(*args, **kwargs):
+    """
+    Replace each real_* function with the corresponding function from either
+    trans_real or trans_null (e.g. real_gettext is replaced with
+    trans_real.gettext or trans_null.gettext). This function is run once, the
+    first time any i18n method is called. It replaces all the i18n methods at
+    once at that time.
+    """
+    import traceback
+    from django.conf import settings
+    if settings.USE_I18N:
+        import trans_real as trans
+    else:
+        import trans_null as trans
+    caller = traceback.extract_stack(limit=2)[0][2]
+    g = globals()
+    for name in __all__:
+        if hasattr(trans, name):
+            g['real_%s' % name] = getattr(trans, name)
+
+    # Make the originally requested function call on the way out the door.
+    return g['real_%s' % caller](*args, **kwargs)
+
+g = globals()
+for name in __all__:
+    g['real_%s' % name] = delayed_loader
+del g, delayed_loader
+
+def gettext_noop(message):
+    return real_gettext_noop(message)
+
+ugettext_noop = gettext_noop
+
+def gettext(message):
+    return real_gettext(message)
+
+def ngettext(singular, plural, number):
+    return real_ngettext(singular, plural, number)
+
+def ugettext(message):
+    return real_ugettext(message)
+
+def ungettext(singular, plural, number):
+    return real_ungettext(singular, plural, number)
+
+ngettext_lazy = lazy(ngettext, str)
+gettext_lazy = lazy(gettext, str)
+ungettext_lazy = lazy(ungettext, unicode)
+ugettext_lazy = lazy(ugettext, unicode)
+
+def activate(language):
+    return real_activate(language)
+
+def deactivate():
+    return real_deactivate()
+
+def get_language():
+    return real_get_language()
+
+def get_language_bidi():
+    return real_get_language_bidi()
+
+def get_date_formats():
+    return real_get_date_formats()
+
+def get_partial_date_formats():
+    return real_get_partial_date_formats()
+
+def check_for_language(lang_code):
+    return real_check_for_language(lang_code)
+
+def to_locale(language):
+    return real_to_locale(language)
+
+def get_language_from_request(request):
+    return real_get_language_from_request(request)
+
+def templatize(src):
+    return real_templatize(src)
+
+def deactivate_all():
+    return real_deactivate_all()
+
+def string_concat(*strings):
+    """
+    Lazy variant of string concatenation, needed for translations that are
+    constructed from multiple parts.
+    """
+    return u''.join([force_unicode(s) for s in strings])
+string_concat = lazy(string_concat, unicode)
diff --git a/webapp/django/utils/translation/trans_null.py b/webapp/django/utils/translation/trans_null.py
new file mode 100644
index 0000000..98c6de6
--- /dev/null
+++ b/webapp/django/utils/translation/trans_null.py
@@ -0,0 +1,53 @@
+# These are versions of the functions in django.utils.translation.trans_real
+# that don't actually do anything. This is purely for performance, so that
+# settings.USE_I18N = False can use this module rather than trans_real.py.
+
+from django.conf import settings
+from django.utils.encoding import force_unicode
+from django.utils.safestring import mark_safe, SafeData
+
+def ngettext(singular, plural, number):
+    if number == 1: return singular
+    return plural
+ngettext_lazy = ngettext
+
+def ungettext(singular, plural, number):
+    return force_unicode(ngettext(singular, plural, number))
+
+activate = lambda x: None
+deactivate = deactivate_all = lambda: None
+get_language = lambda: settings.LANGUAGE_CODE
+get_language_bidi = lambda: settings.LANGUAGE_CODE in settings.LANGUAGES_BIDI
+get_date_formats = lambda: (settings.DATE_FORMAT, settings.DATETIME_FORMAT, settings.TIME_FORMAT)
+get_partial_date_formats = lambda: (settings.YEAR_MONTH_FORMAT, settings.MONTH_DAY_FORMAT)
+check_for_language = lambda x: True
+
+TECHNICAL_ID_MAP = {
+    "DATE_WITH_TIME_FULL": settings.DATETIME_FORMAT,
+    "DATE_FORMAT": settings.DATE_FORMAT,
+    "DATETIME_FORMAT": settings.DATETIME_FORMAT,
+    "TIME_FORMAT": settings.TIME_FORMAT,
+    "YEAR_MONTH_FORMAT": settings.YEAR_MONTH_FORMAT,
+    "MONTH_DAY_FORMAT": settings.MONTH_DAY_FORMAT,
+}
+
+def gettext(message):
+    result = TECHNICAL_ID_MAP.get(message, message)
+    if isinstance(message, SafeData):
+        return mark_safe(result)
+    return result
+
+def ugettext(message):
+    return force_unicode(gettext(message))
+
+gettext_noop = gettext_lazy = _ = gettext
+
+def to_locale(language):
+    p = language.find('-')
+    if p >= 0:
+        return language[:p].lower()+'_'+language[p+1:].upper()
+    else:
+        return language.lower()
+
+def get_language_from_request(request):
+    return settings.LANGUAGE_CODE
diff --git a/webapp/django/utils/translation/trans_real.py b/webapp/django/utils/translation/trans_real.py
new file mode 100644
index 0000000..93bb3c9
--- /dev/null
+++ b/webapp/django/utils/translation/trans_real.py
@@ -0,0 +1,541 @@
+"""Translation helper functions."""
+
+import locale
+import os
+import re
+import sys
+import gettext as gettext_module
+from cStringIO import StringIO
+
+from django.utils.safestring import mark_safe, SafeData
+from django.utils.thread_support import currentThread
+
+# Translations are cached in a dictionary for every language+app tuple.
+# The active translations are stored by threadid to make them thread local.
+_translations = {}
+_active = {}
+
+# The default translation is based on the settings file.
+_default = None
+
+# This is a cache for normalized accept-header languages to prevent multiple
+# file lookups when checking the same locale on repeated requests.
+_accepted = {}
+
+# Format of Accept-Language header values. From RFC 2616, section 14.4 and 3.9.
+accept_language_re = re.compile(r'''
+        ([A-Za-z]{1,8}(?:-[A-Za-z]{1,8})*|\*)   # "en", "en-au", "x-y-z", "*"
+        (?:;q=(0(?:\.\d{,3})?|1(?:.0{,3})?))?   # Optional "q=1.00", "q=0.8"
+        (?:\s*,\s*|$)                            # Multiple accepts per header.
+        ''', re.VERBOSE)
+
+def to_locale(language, to_lower=False):
+    """
+    Turns a language name (en-us) into a locale name (en_US). If 'to_lower' is
+    True, the last component is lower-cased (en_us).
+    """
+    p = language.find('-')
+    if p >= 0:
+        if to_lower:
+            return language[:p].lower()+'_'+language[p+1:].lower()
+        else:
+            return language[:p].lower()+'_'+language[p+1:].upper()
+    else:
+        return language.lower()
+
+def to_language(locale):
+    """Turns a locale name (en_US) into a language name (en-us)."""
+    p = locale.find('_')
+    if p >= 0:
+        return locale[:p].lower()+'-'+locale[p+1:].lower()
+    else:
+        return locale.lower()
+
+class DjangoTranslation(gettext_module.GNUTranslations):
+    """
+    This class sets up the GNUTranslations context with regard to output
+    charset. Django uses a defined DEFAULT_CHARSET as the output charset on
+    Python 2.4. With Python 2.3, use DjangoTranslation23.
+    """
+    def __init__(self, *args, **kw):
+        from django.conf import settings
+        gettext_module.GNUTranslations.__init__(self, *args, **kw)
+        # Starting with Python 2.4, there's a function to define
+        # the output charset. Before 2.4, the output charset is
+        # identical with the translation file charset.
+        try:
+            self.set_output_charset('utf-8')
+        except AttributeError:
+            pass
+        self.django_output_charset = 'utf-8'
+        self.__language = '??'
+
+    def merge(self, other):
+        self._catalog.update(other._catalog)
+
+    def set_language(self, language):
+        self.__language = language
+
+    def language(self):
+        return self.__language
+
+    def __repr__(self):
+        return "<DjangoTranslation lang:%s>" % self.__language
+
+class DjangoTranslation23(DjangoTranslation):
+    """
+    Compatibility class that is only used with Python 2.3.
+    Python 2.3 doesn't support set_output_charset on translation objects and
+    needs this wrapper class to make sure input charsets from translation files
+    are correctly translated to output charsets.
+
+    With a full switch to Python 2.4, this can be removed from the source.
+    """
+    def gettext(self, msgid):
+        res = self.ugettext(msgid)
+        return res.encode(self.django_output_charset)
+
+    def ngettext(self, msgid1, msgid2, n):
+        res = self.ungettext(msgid1, msgid2, n)
+        return res.encode(self.django_output_charset)
+
+def translation(language):
+    """
+    Returns a translation object.
+
+    This translation object will be constructed out of multiple GNUTranslations
+    objects by merging their catalogs. It will construct a object for the
+    requested language and add a fallback to the default language, if it's
+    different from the requested language.
+    """
+    global _translations
+
+    t = _translations.get(language, None)
+    if t is not None:
+        return t
+
+    from django.conf import settings
+
+    # set up the right translation class
+    klass = DjangoTranslation
+    if sys.version_info < (2, 4):
+        klass = DjangoTranslation23
+
+    globalpath = os.path.join(os.path.dirname(sys.modules[settings.__module__].__file__), 'locale')
+
+    if settings.SETTINGS_MODULE is not None:
+        parts = settings.SETTINGS_MODULE.split('.')
+        project = __import__(parts[0], {}, {}, [])
+        projectpath = os.path.join(os.path.dirname(project.__file__), 'locale')
+    else:
+        projectpath = None
+
+    def _fetch(lang, fallback=None):
+
+        global _translations
+
+        loc = to_locale(lang)
+
+        res = _translations.get(lang, None)
+        if res is not None:
+            return res
+
+        def _translation(path):
+            try:
+                t = gettext_module.translation('django', path, [loc], klass)
+                t.set_language(lang)
+                return t
+            except IOError, e:
+                return None
+
+        res = _translation(globalpath)
+
+        # We want to ensure that, for example,  "en-gb" and "en-us" don't share
+        # the same translation object (thus, merging en-us with a local update
+        # doesn't affect en-gb), even though they will both use the core "en"
+        # translation. So we have to subvert Python's internal gettext caching.
+        base_lang = lambda x: x.split('-', 1)[0]
+        if base_lang(lang) in [base_lang(trans) for trans in _translations]:
+            res._info = res._info.copy()
+            res._catalog = res._catalog.copy()
+
+        def _merge(path):
+            t = _translation(path)
+            if t is not None:
+                if res is None:
+                    return t
+                else:
+                    res.merge(t)
+            return res
+
+        for localepath in settings.LOCALE_PATHS:
+            if os.path.isdir(localepath):
+                res = _merge(localepath)
+
+        if projectpath and os.path.isdir(projectpath):
+            res = _merge(projectpath)
+
+        for appname in settings.INSTALLED_APPS:
+            p = appname.rfind('.')
+            if p >= 0:
+                app = getattr(__import__(appname[:p], {}, {}, [appname[p+1:]]), appname[p+1:])
+            else:
+                app = __import__(appname, {}, {}, [])
+
+            apppath = os.path.join(os.path.dirname(app.__file__), 'locale')
+
+            if os.path.isdir(apppath):
+                res = _merge(apppath)
+
+        if res is None:
+            if fallback is not None:
+                res = fallback
+            else:
+                return gettext_module.NullTranslations()
+        _translations[lang] = res
+        return res
+
+    default_translation = _fetch(settings.LANGUAGE_CODE)
+    current_translation = _fetch(language, fallback=default_translation)
+
+    return current_translation
+
+def activate(language):
+    """
+    Fetches the translation object for a given tuple of application name and
+    language and installs it as the current translation object for the current
+    thread.
+    """
+    _active[currentThread()] = translation(language)
+
+def deactivate():
+    """
+    Deinstalls the currently active translation object so that further _ calls
+    will resolve against the default translation object, again.
+    """
+    global _active
+    if currentThread() in _active:
+        del _active[currentThread()]
+
+def deactivate_all():
+    """
+    Makes the active translation object a NullTranslations() instance. This is
+    useful when we want delayed translations to appear as the original string
+    for some reason.
+    """
+    _active[currentThread()] = gettext_module.NullTranslations()
+
+def get_language():
+    """Returns the currently selected language."""
+    t = _active.get(currentThread(), None)
+    if t is not None:
+        try:
+            return to_language(t.language())
+        except AttributeError:
+            pass
+    # If we don't have a real translation object, assume it's the default language.
+    from django.conf import settings
+    return settings.LANGUAGE_CODE
+
+def get_language_bidi():
+    """
+    Returns selected language's BiDi layout.
+    False = left-to-right layout
+    True = right-to-left layout
+    """
+    from django.conf import settings
+    return get_language() in settings.LANGUAGES_BIDI
+
+def catalog():
+    """
+    Returns the current active catalog for further processing.
+    This can be used if you need to modify the catalog or want to access the
+    whole message catalog instead of just translating one string.
+    """
+    global _default, _active
+    t = _active.get(currentThread(), None)
+    if t is not None:
+        return t
+    if _default is None:
+        from django.conf import settings
+        _default = translation(settings.LANGUAGE_CODE)
+    return _default
+
+def do_translate(message, translation_function):
+    """
+    Translates 'message' using the given 'translation_function' name -- which
+    will be either gettext or ugettext. It uses the current thread to find the
+    translation object to use. If no current translation is activated, the
+    message will be run through the default translation object.
+    """
+    global _default, _active
+    t = _active.get(currentThread(), None)
+    if t is not None:
+        result = getattr(t, translation_function)(message)
+    else:
+        if _default is None:
+            from django.conf import settings
+            _default = translation(settings.LANGUAGE_CODE)
+        result = getattr(_default, translation_function)(message)
+    if isinstance(message, SafeData):
+        return mark_safe(result)
+    return result
+
+def gettext(message):
+    return do_translate(message, 'gettext')
+
+def ugettext(message):
+    return do_translate(message, 'ugettext')
+
+def gettext_noop(message):
+    """
+    Marks strings for translation but doesn't translate them now. This can be
+    used to store strings in global variables that should stay in the base
+    language (because they might be used externally) and will be translated
+    later.
+    """
+    return message
+
+def do_ntranslate(singular, plural, number, translation_function):
+    global _default, _active
+
+    t = _active.get(currentThread(), None)
+    if t is not None:
+        return getattr(t, translation_function)(singular, plural, number)
+    if _default is None:
+        from django.conf import settings
+        _default = translation(settings.LANGUAGE_CODE)
+    return getattr(_default, translation_function)(singular, plural, number)
+
+def ngettext(singular, plural, number):
+    """
+    Returns a UTF-8 bytestring of the translation of either the singular or
+    plural, based on the number.
+    """
+    return do_ntranslate(singular, plural, number, 'ngettext')
+
+def ungettext(singular, plural, number):
+    """
+    Returns a unicode strings of the translation of either the singular or
+    plural, based on the number.
+    """
+    return do_ntranslate(singular, plural, number, 'ungettext')
+
+def check_for_language(lang_code):
+    """
+    Checks whether there is a global language file for the given language
+    code. This is used to decide whether a user-provided language is
+    available. This is only used for language codes from either the cookies or
+    session.
+    """
+    from django.conf import settings
+    globalpath = os.path.join(os.path.dirname(sys.modules[settings.__module__].__file__), 'locale')
+    if gettext_module.find('django', globalpath, [to_locale(lang_code)]) is not None:
+        return True
+    else:
+        return False
+
+def get_language_from_request(request):
+    """
+    Analyzes the request to find what language the user wants the system to
+    show. Only languages listed in settings.LANGUAGES are taken into account.
+    If the user requests a sublanguage where we have a main language, we send
+    out the main language.
+    """
+    global _accepted
+    from django.conf import settings
+    globalpath = os.path.join(os.path.dirname(sys.modules[settings.__module__].__file__), 'locale')
+    supported = dict(settings.LANGUAGES)
+
+    if hasattr(request, 'session'):
+        lang_code = request.session.get('django_language', None)
+        if lang_code in supported and lang_code is not None and check_for_language(lang_code):
+            return lang_code
+
+    lang_code = request.COOKIES.get(settings.LANGUAGE_COOKIE_NAME)
+    if lang_code and lang_code in supported and check_for_language(lang_code):
+        return lang_code
+
+    accept = request.META.get('HTTP_ACCEPT_LANGUAGE', '')
+    for accept_lang, unused in parse_accept_lang_header(accept):
+        if accept_lang == '*':
+            break
+
+        # We have a very restricted form for our language files (no encoding
+        # specifier, since they all must be UTF-8 and only one possible
+        # language each time. So we avoid the overhead of gettext.find() and
+        # work out the MO file manually.
+
+        # 'normalized' is the root name of the locale in POSIX format (which is
+        # the format used for the directories holding the MO files).
+        normalized = locale.locale_alias.get(to_locale(accept_lang, True))
+        if not normalized:
+            continue
+        # Remove the default encoding from locale_alias.
+        normalized = normalized.split('.')[0]
+
+        if normalized in _accepted:
+            # We've seen this locale before and have an MO file for it, so no
+            # need to check again.
+            return _accepted[normalized]
+
+        for lang, dirname in ((accept_lang, normalized),
+                (accept_lang.split('-')[0], normalized.split('_')[0])):
+            if lang not in supported:
+                continue
+            langfile = os.path.join(globalpath, dirname, 'LC_MESSAGES',
+                    'django.mo')
+            if os.path.exists(langfile):
+                _accepted[normalized] = lang
+            return lang
+
+    return settings.LANGUAGE_CODE
+
+def get_date_formats():
+    """
+    Checks whether translation files provide a translation for some technical
+    message ID to store date and time formats. If it doesn't contain one, the
+    formats provided in the settings will be used.
+    """
+    from django.conf import settings
+    date_format = ugettext('DATE_FORMAT')
+    datetime_format = ugettext('DATETIME_FORMAT')
+    time_format = ugettext('TIME_FORMAT')
+    if date_format == 'DATE_FORMAT':
+        date_format = settings.DATE_FORMAT
+    if datetime_format == 'DATETIME_FORMAT':
+        datetime_format = settings.DATETIME_FORMAT
+    if time_format == 'TIME_FORMAT':
+        time_format = settings.TIME_FORMAT
+    return date_format, datetime_format, time_format
+
+def get_partial_date_formats():
+    """
+    Checks whether translation files provide a translation for some technical
+    message ID to store partial date formats. If it doesn't contain one, the
+    formats provided in the settings will be used.
+    """
+    from django.conf import settings
+    year_month_format = ugettext('YEAR_MONTH_FORMAT')
+    month_day_format = ugettext('MONTH_DAY_FORMAT')
+    if year_month_format == 'YEAR_MONTH_FORMAT':
+        year_month_format = settings.YEAR_MONTH_FORMAT
+    if month_day_format == 'MONTH_DAY_FORMAT':
+        month_day_format = settings.MONTH_DAY_FORMAT
+    return year_month_format, month_day_format
+
+dot_re = re.compile(r'\S')
+def blankout(src, char):
+    """
+    Changes every non-whitespace character to the given char.
+    Used in the templatize function.
+    """
+    return dot_re.sub(char, src)
+
+inline_re = re.compile(r"""^\s*trans\s+((?:".*?")|(?:'.*?'))\s*""")
+block_re = re.compile(r"""^\s*blocktrans(?:\s+|$)""")
+endblock_re = re.compile(r"""^\s*endblocktrans$""")
+plural_re = re.compile(r"""^\s*plural$""")
+constant_re = re.compile(r"""_\(((?:".*?")|(?:'.*?'))\)""")
+
+def templatize(src):
+    """
+    Turns a Django template into something that is understood by xgettext. It
+    does so by translating the Django translation tags into standard gettext
+    function invocations.
+    """
+    from django.template import Lexer, TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK
+    out = StringIO()
+    intrans = False
+    inplural = False
+    singular = []
+    plural = []
+    for t in Lexer(src, None).tokenize():
+        if intrans:
+            if t.token_type == TOKEN_BLOCK:
+                endbmatch = endblock_re.match(t.contents)
+                pluralmatch = plural_re.match(t.contents)
+                if endbmatch:
+                    if inplural:
+                        out.write(' ngettext(%r,%r,count) ' % (''.join(singular), ''.join(plural)))
+                        for part in singular:
+                            out.write(blankout(part, 'S'))
+                        for part in plural:
+                            out.write(blankout(part, 'P'))
+                    else:
+                        out.write(' gettext(%r) ' % ''.join(singular))
+                        for part in singular:
+                            out.write(blankout(part, 'S'))
+                    intrans = False
+                    inplural = False
+                    singular = []
+                    plural = []
+                elif pluralmatch:
+                    inplural = True
+                else:
+                    raise SyntaxError("Translation blocks must not include other block tags: %s" % t.contents)
+            elif t.token_type == TOKEN_VAR:
+                if inplural:
+                    plural.append('%%(%s)s' % t.contents)
+                else:
+                    singular.append('%%(%s)s' % t.contents)
+            elif t.token_type == TOKEN_TEXT:
+                if inplural:
+                    plural.append(t.contents)
+                else:
+                    singular.append(t.contents)
+        else:
+            if t.token_type == TOKEN_BLOCK:
+                imatch = inline_re.match(t.contents)
+                bmatch = block_re.match(t.contents)
+                cmatches = constant_re.findall(t.contents)
+                if imatch:
+                    g = imatch.group(1)
+                    if g[0] == '"': g = g.strip('"')
+                    elif g[0] == "'": g = g.strip("'")
+                    out.write(' gettext(%r) ' % g)
+                elif bmatch:
+                    for fmatch in constant_re.findall(t.contents):
+                        out.write(' _(%s) ' % fmatch)
+                    intrans = True
+                    inplural = False
+                    singular = []
+                    plural = []
+                elif cmatches:
+                    for cmatch in cmatches:
+                        out.write(' _(%s) ' % cmatch)
+                else:
+                    out.write(blankout(t.contents, 'B'))
+            elif t.token_type == TOKEN_VAR:
+                parts = t.contents.split('|')
+                cmatch = constant_re.match(parts[0])
+                if cmatch:
+                    out.write(' _(%s) ' % cmatch.group(1))
+                for p in parts[1:]:
+                    if p.find(':_(') >= 0:
+                        out.write(' %s ' % p.split(':',1)[1])
+                    else:
+                        out.write(blankout(p, 'F'))
+            else:
+                out.write(blankout(t.contents, 'X'))
+    return out.getvalue()
+
+def parse_accept_lang_header(lang_string):
+    """
+    Parses the lang_string, which is the body of an HTTP Accept-Language
+    header, and returns a list of (lang, q-value), ordered by 'q' values.
+
+    Any format errors in lang_string results in an empty list being returned.
+    """
+    result = []
+    pieces = accept_language_re.split(lang_string)
+    if pieces[-1]:
+        return []
+    for i in range(0, len(pieces) - 1, 3):
+        first, lang, priority = pieces[i : i + 3]
+        if first:
+            return []
+        priority = priority and float(priority) or 1.0
+        result.append((lang, priority))
+    result.sort(lambda x, y: -cmp(x[1], y[1]))
+    return result
diff --git a/webapp/django/utils/tree.py b/webapp/django/utils/tree.py
new file mode 100644
index 0000000..a9028b8
--- /dev/null
+++ b/webapp/django/utils/tree.py
@@ -0,0 +1,153 @@
+"""
+A class for storing a tree graph. Primarily used for filter constructs in the
+ORM.
+"""
+
+from copy import deepcopy
+
+class Node(object):
+    """
+    A single internal node in the tree graph. A Node should be viewed as a
+    connection (the root) with the children being either leaf nodes or other
+    Node instances.
+    """
+    # Standard connector type. Clients usually won't use this at all and
+    # subclasses will usually override the value.
+    default = 'DEFAULT'
+
+    def __init__(self, children=None, connector=None, negated=False):
+        """
+        Constructs a new Node. If no connector is given, the default will be
+        used.
+
+        Warning: You probably don't want to pass in the 'negated' parameter. It
+        is NOT the same as constructing a node and calling negate() on the
+        result.
+        """
+        self.children = children and children[:] or []
+        self.connector = connector or self.default
+        self.subtree_parents = []
+        self.negated = negated
+
+    # We need this because of django.db.models.query_utils.Q. Q. __init__() is
+    # problematic, but it is a natural Node subclass in all other respects.
+    def _new_instance(cls, children=None, connector=None, negated=False):
+        """
+        This is called to create a new instance of this class when we need new
+        Nodes (or subclasses) in the internal code in this class. Normally, it
+        just shadows __init__(). However, subclasses with an __init__ signature
+        that is not an extension of Node.__init__ might need to implement this
+        method to allow a Node to create a new instance of them (if they have
+        any extra setting up to do).
+        """
+        obj = Node(children, connector, negated)
+        obj.__class__ = cls
+        return obj
+    _new_instance = classmethod(_new_instance)
+
+    def __str__(self):
+        if self.negated:
+            return '(NOT (%s: %s))' % (self.connector, ', '.join([str(c) for c
+                    in self.children]))
+        return '(%s: %s)' % (self.connector, ', '.join([str(c) for c in
+                self.children]))
+
+    def __deepcopy__(self, memodict):
+        """
+        Utility method used by copy.deepcopy().
+        """
+        obj = Node(connector=self.connector, negated=self.negated)
+        obj.__class__ = self.__class__
+        obj.children = deepcopy(self.children, memodict)
+        obj.subtree_parents = deepcopy(self.subtree_parents, memodict)
+        return obj
+
+    def __len__(self):
+        """
+        The size of a node if the number of children it has.
+        """
+        return len(self.children)
+
+    def __nonzero__(self):
+        """
+        For truth value testing.
+        """
+        return bool(self.children)
+
+    def __contains__(self, other):
+        """
+        Returns True is 'other' is a direct child of this instance.
+        """
+        return other in self.children
+
+    def add(self, node, conn_type):
+        """
+        Adds a new node to the tree. If the conn_type is the same as the root's
+        current connector type, the node is added to the first level.
+        Otherwise, the whole tree is pushed down one level and a new root
+        connector is created, connecting the existing tree and the new node.
+        """
+        if node in self.children and conn_type == self.connector:
+            return
+        if len(self.children) < 2:
+            self.connector = conn_type
+        if self.connector == conn_type:
+            if isinstance(node, Node) and (node.connector == conn_type or
+                    len(node) == 1):
+                self.children.extend(node.children)
+            else:
+                self.children.append(node)
+        else:
+            obj = self._new_instance(self.children, self.connector,
+                    self.negated)
+            self.connector = conn_type
+            self.children = [obj, node]
+
+    def negate(self):
+        """
+        Negate the sense of the root connector. This reorganises the children
+        so that the current node has a single child: a negated node containing
+        all the previous children. This slightly odd construction makes adding
+        new children behave more intuitively.
+
+        Interpreting the meaning of this negate is up to client code. This
+        method is useful for implementing "not" arrangements.
+        """
+        self.children = [self._new_instance(self.children, self.connector,
+                not self.negated)]
+        self.connector = self.default
+
+    def start_subtree(self, conn_type):
+        """
+        Sets up internal state so that new nodes are added to a subtree of the
+        current node. The conn_type specifies how the sub-tree is joined to the
+        existing children.
+        """
+        if len(self.children) == 1:
+            self.connector = conn_type
+        elif self.connector != conn_type:
+            self.children = [self._new_instance(self.children, self.connector,
+                    self.negated)]
+            self.connector = conn_type
+            self.negated = False
+
+        self.subtree_parents.append(self.__class__(self.children,
+                self.connector, self.negated))
+        self.connector = self.default
+        self.negated = False
+        self.children = []
+
+    def end_subtree(self):
+        """
+        Closes off the most recently unmatched start_subtree() call.
+
+        This puts the current state into a node of the parent tree and returns
+        the current instances state to be the parent.
+        """
+        obj = self.subtree_parents.pop()
+        node = self.__class__(self.children, self.connector)
+        self.connector = obj.connector
+        self.negated = obj.negated
+        self.children = obj.children
+        self.children.append(node)
+
diff --git a/webapp/django/utils/tzinfo.py b/webapp/django/utils/tzinfo.py
new file mode 100644
index 0000000..58cfcd5
--- /dev/null
+++ b/webapp/django/utils/tzinfo.py
@@ -0,0 +1,82 @@
+"Implementation of tzinfo classes for use with datetime.datetime."
+
+import locale
+import time
+from datetime import timedelta, tzinfo
+from django.utils.encoding import smart_unicode
+
+try:
+    DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
+except:
+    # Any problems at all determining the locale and we fallback. See #5846.
+    DEFAULT_ENCODING = 'ascii'
+
+class FixedOffset(tzinfo):
+    "Fixed offset in minutes east from UTC."
+    def __init__(self, offset):
+        if isinstance(offset, timedelta):
+            self.__offset = offset
+            offset = self.__offset.seconds // 60
+        else:
+            self.__offset = timedelta(minutes=offset)
+
+        self.__name = u"%+03d%02d" % (offset / 60, offset % 60)
+
+    def __repr__(self):
+        return self.__name
+
+    def utcoffset(self, dt):
+        return self.__offset
+
+    def tzname(self, dt):
+        return self.__name
+
+    def dst(self, dt):
+        return timedelta(0)
+
+class LocalTimezone(tzinfo):
+    "Proxy timezone information from time module."
+    def __init__(self, dt):
+        tzinfo.__init__(self)
+        self._tzname = self.tzname(dt)
+
+    def __repr__(self):
+        return self._tzname
+
+    def utcoffset(self, dt):
+        if self._isdst(dt):
+            return timedelta(seconds=-time.altzone)
+        else:
+            return timedelta(seconds=-time.timezone)
+
+    def dst(self, dt):
+        if self._isdst(dt):
+            return timedelta(seconds=-time.altzone) - timedelta(seconds=-time.timezone)
+        else:
+            return timedelta(0)
+
+    def tzname(self, dt):
+        try:
+            return smart_unicode(time.tzname[self._isdst(dt)], DEFAULT_ENCODING)
+        except UnicodeDecodeError:
+            return None
+
+    def _isdst(self, dt):
+        tt = (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.weekday(), 0, -1)
+        try:
+            stamp = time.mktime(tt)
+        except (OverflowError, ValueError):
+            # 32 bit systems can't handle dates after Jan 2038, and certain
+            # systems can't handle dates before ~1901-12-01:
+            #
+            # >>> time.mktime((1900, 1, 13, 0, 0, 0, 0, 0, 0))
+            # OverflowError: mktime argument out of range
+            # >>> time.mktime((1850, 1, 13, 0, 0, 0, 0, 0, 0))
+            # ValueError: year out of range
+            #
+            # In this case, we fake the date, because we only care about the
+            # DST flag.
+            tt = (2037,) + tt[1:]
+            stamp = time.mktime(tt)
+        tt = time.localtime(stamp)
+        return tt.tm_isdst > 0
diff --git a/webapp/django/utils/version.py b/webapp/django/utils/version.py
new file mode 100644
index 0000000..cf80856
--- /dev/null
+++ b/webapp/django/utils/version.py
@@ -0,0 +1,39 @@
+import django
+import os.path
+import re
+
+def get_svn_revision(path=None):
+    """
+    Returns the SVN revision in the form SVN-XXXX,
+    where XXXX is the revision number.
+
+    Returns SVN-unknown if anything goes wrong, such as an unexpected
+    format of internal SVN files.
+
+    If path is provided, it should be a directory whose SVN info you want to
+    inspect. If it's not provided, this will use the root django/ package
+    directory.
+    """
+    rev = None
+    if path is None:
+        path = django.__path__[0]
+    entries_path = '%s/.svn/entries' % path
+
+    if os.path.exists(entries_path):
+        entries = open(entries_path, 'r').read()
+        # Versions >= 7 of the entries file are flat text.  The first line is
+        # the version number. The next set of digits after 'dir' is the revision.
+        if re.match('(\d+)', entries):
+            rev_match = re.search('\d+\s+dir\s+(\d+)', entries)
+            if rev_match:
+                rev = rev_match.groups()[0]
+        # Older XML versions of the file specify revision as an attribute of
+        # the first entries node.
+        else:
+            from xml.dom import minidom
+            dom = minidom.parse(entries_path)
+            rev = dom.getElementsByTagName('entry')[0].getAttribute('revision')
+
+    if rev:
+        return u'SVN-%s' % rev
+    return u'SVN-unknown'
diff --git a/webapp/django/utils/xmlutils.py b/webapp/django/utils/xmlutils.py
new file mode 100644
index 0000000..a1eb5fb
--- /dev/null
+++ b/webapp/django/utils/xmlutils.py
@@ -0,0 +1,14 @@
+"""
+Utilities for XML generation/parsing.
+"""
+
+from xml.sax.saxutils import XMLGenerator
+
+class SimplerXMLGenerator(XMLGenerator):
+    def addQuickElement(self, name, contents=None, attrs=None):
+        "Convenience method for adding an element with no children"
+        if attrs is None: attrs = {}
+        self.startElement(name, attrs)
+        if contents is not None:
+            self.characters(contents)
+        self.endElement(name)
diff --git a/webapp/django/views/__init__.py b/webapp/django/views/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/views/__init__.py
diff --git a/webapp/django/views/debug.py b/webapp/django/views/debug.py
new file mode 100644
index 0000000..72631b3
--- /dev/null
+++ b/webapp/django/views/debug.py
@@ -0,0 +1,802 @@
+import os
+import re
+import sys
+import datetime
+
+from django.conf import settings
+from django.template import Template, Context, TemplateDoesNotExist
+from django.utils.html import escape
+from django.http import HttpResponse, HttpResponseServerError, HttpResponseNotFound
+from django.utils.encoding import smart_unicode
+
+HIDDEN_SETTINGS = re.compile('SECRET|PASSWORD|PROFANITIES_LIST')
+
+def linebreak_iter(template_source):
+    yield 0
+    p = template_source.find('\n')
+    while p >= 0:
+        yield p+1
+        p = template_source.find('\n', p+1)
+    yield len(template_source) + 1
+
+def get_safe_settings():
+    "Returns a dictionary of the settings module, with sensitive settings blurred out."
+    settings_dict = {}
+    for k in dir(settings):
+        if k.isupper():
+            if HIDDEN_SETTINGS.search(k):
+                settings_dict[k] = '********************'
+            else:
+                settings_dict[k] = getattr(settings, k)
+    return settings_dict
+
+def technical_500_response(request, exc_type, exc_value, tb):
+    """
+    Create a technical server error response. The last three arguments are
+    the values returned from sys.exc_info() and friends.
+    """
+    reporter = ExceptionReporter(request, exc_type, exc_value, tb)
+    html = reporter.get_traceback_html()
+    return HttpResponseServerError(html, mimetype='text/html')
+
+class ExceptionReporter:
+    """
+    A class to organize and coordinate reporting on exceptions.
+    """
+    def __init__(self, request, exc_type, exc_value, tb):
+        self.request = request
+        self.exc_type = exc_type
+        self.exc_value = exc_value
+        self.tb = tb
+
+        self.template_info = None
+        self.template_does_not_exist = False
+        self.loader_debug_info = None
+
+        # Handle deprecated string exceptions
+        if isinstance(self.exc_type, basestring):
+            self.exc_value = Exception('Deprecated String Exception: %r' % self.exc_type)
+            self.exc_type = type(self.exc_value)
+
+    def get_traceback_html(self):
+        "Return HTML code for traceback."
+
+        if issubclass(self.exc_type, TemplateDoesNotExist):
+            from django.template.loader import template_source_loaders
+            self.template_does_not_exist = True
+            self.loader_debug_info = []
+            for loader in template_source_loaders:
+                try:
+                    source_list_func = getattr(__import__(loader.__module__, {}, {}, ['get_template_sources']), 'get_template_sources')
+                    # NOTE: This assumes exc_value is the name of the template that
+                    # the loader attempted to load.
+                    template_list = [{'name': t, 'exists': os.path.exists(t)} \
+                        for t in source_list_func(str(self.exc_value))]
+                except (ImportError, AttributeError):
+                    template_list = []
+                self.loader_debug_info.append({
+                    'loader': loader.__module__ + '.' + loader.__name__,
+                    'templates': template_list,
+                })
+        if settings.TEMPLATE_DEBUG and hasattr(self.exc_value, 'source'):
+            self.get_template_exception_info()
+
+        frames = self.get_traceback_frames()
+
+        unicode_hint = ''
+        if issubclass(self.exc_type, UnicodeError):
+            start = getattr(self.exc_value, 'start', None)
+            end = getattr(self.exc_value, 'end', None)
+            if start is not None and end is not None:
+                unicode_str = self.exc_value.args[1]
+                unicode_hint = smart_unicode(unicode_str[max(start-5, 0):min(end+5, len(unicode_str))], 'ascii', errors='replace')
+        from django import get_version
+        t = Template(TECHNICAL_500_TEMPLATE, name='Technical 500 template')
+        c = Context({
+            'exception_type': self.exc_type.__name__,
+            'exception_value': smart_unicode(self.exc_value, errors='replace'),
+            'unicode_hint': unicode_hint,
+            'frames': frames,
+            'lastframe': frames[-1],
+            'request': self.request,
+            'request_protocol': self.request.is_secure() and "https" or "http",
+            'settings': get_safe_settings(),
+            'sys_executable': sys.executable,
+            'sys_version_info': '%d.%d.%d' % sys.version_info[0:3],
+            'server_time': datetime.datetime.now(),
+            'django_version_info': get_version(),
+            'sys_path' : sys.path,
+            'template_info': self.template_info,
+            'template_does_not_exist': self.template_does_not_exist,
+            'loader_debug_info': self.loader_debug_info,
+        })
+        return t.render(c)
+
+    def get_template_exception_info(self):
+        origin, (start, end) = self.exc_value.source
+        template_source = origin.reload()
+        context_lines = 10
+        line = 0
+        upto = 0
+        source_lines = []
+        before = during = after = ""
+        for num, next in enumerate(linebreak_iter(template_source)):
+            if start >= upto and end <= next:
+                line = num
+                before = escape(template_source[upto:start])
+                during = escape(template_source[start:end])
+                after = escape(template_source[end:next])
+            source_lines.append( (num, escape(template_source[upto:next])) )
+            upto = next
+        total = len(source_lines)
+
+        top = max(1, line - context_lines)
+        bottom = min(total, line + 1 + context_lines)
+
+        self.template_info = {
+            'message': self.exc_value.args[0],
+            'source_lines': source_lines[top:bottom],
+            'before': before,
+            'during': during,
+            'after': after,
+            'top': top,
+            'bottom': bottom,
+            'total': total,
+            'line': line,
+            'name': origin.name,
+        }
+
+    def _get_lines_from_file(self, filename, lineno, context_lines, loader=None, module_name=None):
+        """
+        Returns context_lines before and after lineno from file.
+        Returns (pre_context_lineno, pre_context, context_line, post_context).
+        """
+        source = None
+        if loader is not None and hasattr(loader, "get_source"):
+            source = loader.get_source(module_name)
+            if source is not None:
+                source = source.splitlines()
+        if source is None:
+            try:
+                f = open(filename)
+                try:
+                    source = f.readlines()
+                finally:
+                    f.close()
+            except (OSError, IOError):
+                pass
+        if source is None:
+            return None, [], None, []
+
+        encoding = 'ascii'
+        for line in source[:2]:
+            # File coding may be specified. Match pattern from PEP-263
+            # (http://www.python.org/dev/peps/pep-0263/)
+            match = re.search(r'coding[:=]\s*([-\w.]+)', line)
+            if match:
+                encoding = match.group(1)
+                break
+        source = [unicode(sline, encoding, 'replace') for sline in source]
+
+        lower_bound = max(0, lineno - context_lines)
+        upper_bound = lineno + context_lines
+
+        pre_context = [line.strip('\n') for line in source[lower_bound:lineno]]
+        context_line = source[lineno].strip('\n')
+        post_context = [line.strip('\n') for line in source[lineno+1:upper_bound]]
+
+        return lower_bound, pre_context, context_line, post_context
+
+    def get_traceback_frames(self):
+        frames = []
+        tb = self.tb
+        while tb is not None:
+            # support for __traceback_hide__ which is used by a few libraries
+            # to hide internal frames.
+            if tb.tb_frame.f_locals.get('__traceback_hide__'):
+                tb = tb.tb_next
+                continue
+            filename = tb.tb_frame.f_code.co_filename
+            function = tb.tb_frame.f_code.co_name
+            lineno = tb.tb_lineno - 1
+            loader = tb.tb_frame.f_globals.get('__loader__')
+            module_name = tb.tb_frame.f_globals.get('__name__')
+            pre_context_lineno, pre_context, context_line, post_context = self._get_lines_from_file(filename, lineno, 7, loader, module_name)
+            if pre_context_lineno is not None:
+                frames.append({
+                    'tb': tb,
+                    'filename': filename,
+                    'function': function,
+                    'lineno': lineno + 1,
+                    'vars': tb.tb_frame.f_locals.items(),
+                    'id': id(tb),
+                    'pre_context': pre_context,
+                    'context_line': context_line,
+                    'post_context': post_context,
+                    'pre_context_lineno': pre_context_lineno + 1,
+                })
+            tb = tb.tb_next
+
+        if not frames:
+            frames = [{
+                'filename': '&lt;unknown&gt;',
+                'function': '?',
+                'lineno': '?',
+                'context_line': '???',
+            }]
+
+        return frames
+
+    def format_exception(self):
+        """
+        Return the same data as from traceback.format_exception.
+        """
+        import traceback
+        frames = self.get_traceback_frames()
+        tb = [ (f['filename'], f['lineno'], f['function'], f['context_line']) for f in frames ]
+        list = ['Traceback (most recent call last):\n']
+        list += traceback.format_list(tb)
+        list += traceback.format_exception_only(self.exc_type, self.exc_value)
+        return list
+
+
+def technical_404_response(request, exception):
+    "Create a technical 404 error response. The exception should be the Http404."
+    try:
+        tried = exception.args[0]['tried']
+    except (IndexError, TypeError):
+        tried = []
+    else:
+        if not tried:
+            # tried exists but is an empty list. The URLconf must've been empty.
+            return empty_urlconf(request)
+
+    t = Template(TECHNICAL_404_TEMPLATE, name='Technical 404 template')
+    c = Context({
+        'root_urlconf': settings.ROOT_URLCONF,
+        'request_path': request.path[1:], # Trim leading slash
+        'urlpatterns': tried,
+        'reason': str(exception),
+        'request': request,
+        'request_protocol': request.is_secure() and "https" or "http",
+        'settings': get_safe_settings(),
+    })
+    return HttpResponseNotFound(t.render(c), mimetype='text/html')
+
+def empty_urlconf(request):
+    "Create an empty URLconf 404 error response."
+    t = Template(EMPTY_URLCONF_TEMPLATE, name='Empty URLConf template')
+    c = Context({
+        'project_name': settings.SETTINGS_MODULE.split('.')[0]
+    })
+    return HttpResponse(t.render(c), mimetype='text/html')
+
+#
+# Templates are embedded in the file so that we know the error handler will
+# always work even if the template loader is broken.
+#
+
+TECHNICAL_500_TEMPLATE = """
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <meta name="robots" content="NONE,NOARCHIVE">
+  <title>{{ exception_type }} at {{ request.path|escape }}</title>
+  <style type="text/css">
+    html * { padding:0; margin:0; }
+    body * { padding:10px 20px; }
+    body * * { padding:0; }
+    body { font:small sans-serif; }
+    body>div { border-bottom:1px solid #ddd; }
+    h1 { font-weight:normal; }
+    h2 { margin-bottom:.8em; }
+    h2 span { font-size:80%; color:#666; font-weight:normal; }
+    h3 { margin:1em 0 .5em 0; }
+    h4 { margin:0 0 .5em 0; font-weight: normal; }
+    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
+    tbody td, tbody th { vertical-align:top; padding:2px 3px; }
+    thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; }
+    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
+    table.vars { margin:5px 0 2px 40px; }
+    table.vars td, table.req td { font-family:monospace; }
+    table td.code { width:100%; }
+    table td.code div { overflow:hidden; }
+    table.source th { color:#666; }
+    table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
+    ul.traceback { list-style-type:none; }
+    ul.traceback li.frame { margin-bottom:1em; }
+    div.context { margin: 10px 0; }
+    div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
+    div.context ol li { font-family:monospace; white-space:pre; color:#666; cursor:pointer; }
+    div.context ol.context-line li { color:black; background-color:#ccc; }
+    div.context ol.context-line li span { float: right; }
+    div.commands { margin-left: 40px; }
+    div.commands a { color:black; text-decoration:none; }
+    #summary { background: #ffc; }
+    #summary h2 { font-weight: normal; color: #666; }
+    #explanation { background:#eee; }
+    #template, #template-not-exist { background:#f6f6f6; }
+    #template-not-exist ul { margin: 0 0 0 20px; }
+    #unicode-hint { background:#eee; }
+    #traceback { background:#eee; }
+    #requestinfo { background:#f6f6f6; padding-left:120px; }
+    #summary table { border:none; background:transparent; }
+    #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
+    #requestinfo h3 { margin-bottom:-1em; }
+    .error { background: #ffc; }
+    .specific { color:#cc3300; font-weight:bold; }
+    h2 span.commands { font-size:.7em;}
+    span.commands a:link {color:#5E5694;}
+    pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
+  </style>
+  <script type="text/javascript">
+  //<!--
+    function getElementsByClassName(oElm, strTagName, strClassName){
+        // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
+        var arrElements = (strTagName == "*" && document.all)? document.all :
+        oElm.getElementsByTagName(strTagName);
+        var arrReturnElements = new Array();
+        strClassName = strClassName.replace(/\-/g, "\\-");
+        var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
+        var oElement;
+        for(var i=0; i<arrElements.length; i++){
+            oElement = arrElements[i];
+            if(oRegExp.test(oElement.className)){
+                arrReturnElements.push(oElement);
+            }
+        }
+        return (arrReturnElements)
+    }
+    function hideAll(elems) {
+      for (var e = 0; e < elems.length; e++) {
+        elems[e].style.display = 'none';
+      }
+    }
+    window.onload = function() {
+      hideAll(getElementsByClassName(document, 'table', 'vars'));
+      hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
+      hideAll(getElementsByClassName(document, 'ol', 'post-context'));
+      hideAll(getElementsByClassName(document, 'div', 'pastebin'));
+    }
+    function toggle() {
+      for (var i = 0; i < arguments.length; i++) {
+        var e = document.getElementById(arguments[i]);
+        if (e) {
+          e.style.display = e.style.display == 'none' ? 'block' : 'none';
+        }
+      }
+      return false;
+    }
+    function varToggle(link, id) {
+      toggle('v' + id);
+      var s = link.getElementsByTagName('span')[0];
+      var uarr = String.fromCharCode(0x25b6);
+      var darr = String.fromCharCode(0x25bc);
+      s.innerHTML = s.innerHTML == uarr ? darr : uarr;
+      return false;
+    }
+    function switchPastebinFriendly(link) {
+      s1 = "Switch to copy-and-paste view";
+      s2 = "Switch back to interactive view";
+      link.innerHTML = link.innerHTML == s1 ? s2 : s1;
+      toggle('browserTraceback', 'pastebinTraceback');
+      return false;
+    }
+    //-->
+  </script>
+</head>
+<body>
+<div id="summary">
+  <h1>{{ exception_type }} at {{ request.path|escape }}</h1>
+  <pre class="exception_value">{{ exception_value|escape }}</pre>
+  <table class="meta">
+    <tr>
+      <th>Request Method:</th>
+      <td>{{ request.META.REQUEST_METHOD }}</td>
+    </tr>
+    <tr>
+      <th>Request URL:</th>
+      <td>{{ request_protocol }}://{{ request.META.HTTP_HOST }}{{ request.path|escape }}</td>
+    </tr>
+    <tr>
+      <th>Exception Type:</th>
+      <td>{{ exception_type }}</td>
+    </tr>
+    <tr>
+      <th>Exception Value:</th>
+      <td><pre>{{ exception_value|escape }}<pre></td>
+    </tr>
+    <tr>
+      <th>Exception Location:</th>
+      <td>{{ lastframe.filename|escape }} in {{ lastframe.function|escape }}, line {{ lastframe.lineno }}</td>
+    </tr>
+    <tr>
+      <th>Python Executable:</th>
+      <td>{{ sys_executable|escape }}</td>
+    </tr>
+    <tr>
+      <th>Python Version:</th>
+      <td>{{ sys_version_info }}</td>
+    </tr>
+    <tr>
+      <th>Python Path:</th>
+      <td>{{ sys_path }}</td>
+    </tr>
+    <tr>
+      <th>Server time:</th>
+      <td>{{server_time|date:"r"}}</td>
+    </tr>
+  </table>
+</div>
+{% if unicode_hint %}
+<div id="unicode-hint">
+    <h2>Unicode error hint</h2>
+    <p>The string that could not be encoded/decoded was: <strong>{{ unicode_hint|escape }}</strong></p>
+</div>
+{% endif %}
+{% if template_does_not_exist %}
+<div id="template-not-exist">
+    <h2>Template-loader postmortem</h2>
+    {% if loader_debug_info %}
+        <p>Django tried loading these templates, in this order:</p>
+        <ul>
+        {% for loader in loader_debug_info %}
+            <li>Using loader <code>{{ loader.loader }}</code>:
+                <ul>{% for t in loader.templates %}<li><code>{{ t.name }}</code> (File {% if t.exists %}exists{% else %}does not exist{% endif %})</li>{% endfor %}</ul>
+            </li>
+        {% endfor %}
+        </ul>
+    {% else %}
+        <p>Django couldn't find any templates because your <code>TEMPLATE_LOADERS</code> setting is empty!</p>
+    {% endif %}
+</div>
+{% endif %}
+{% if template_info %}
+<div id="template">
+   <h2>Template error</h2>
+   <p>In template <code>{{ template_info.name }}</code>, error at line <strong>{{ template_info.line }}</strong></p>
+   <h3>{{ template_info.message }}</h3>
+   <table class="source{% if template_info.top %} cut-top{% endif %}{% ifnotequal template_info.bottom template_info.total %} cut-bottom{% endifnotequal %}">
+   {% for source_line in template_info.source_lines %}
+   {% ifequal source_line.0 template_info.line %}
+       <tr class="error"><th>{{ source_line.0 }}</th>
+       <td>{{ template_info.before }}<span class="specific">{{ template_info.during }}</span>{{ template_info.after }}</td></tr>
+   {% else %}
+      <tr><th>{{ source_line.0 }}</th>
+      <td>{{ source_line.1 }}</td></tr>
+   {% endifequal %}
+   {% endfor %}
+   </table>
+</div>
+{% endif %}
+<div id="traceback">
+  <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);">Switch to copy-and-paste view</a></span></h2>
+  {% autoescape off %}
+  <div id="browserTraceback">
+    <ul class="traceback">
+      {% for frame in frames %}
+        <li class="frame">
+          <code>{{ frame.filename|escape }}</code> in <code>{{ frame.function|escape }}</code>
+
+          {% if frame.context_line %}
+            <div class="context" id="c{{ frame.id }}">
+              {% if frame.pre_context %}
+                <ol start="{{ frame.pre_context_lineno }}" class="pre-context" id="pre{{ frame.id }}">{% for line in frame.pre_context %}<li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ line|escape }}</li>{% endfor %}</ol>
+              {% endif %}
+              <ol start="{{ frame.lineno }}" class="context-line"><li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ frame.context_line|escape }} <span>...</span></li></ol>
+              {% if frame.post_context %}
+                <ol start='{{ frame.lineno|add:"1" }}' class="post-context" id="post{{ frame.id }}">{% for line in frame.post_context %}<li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ line|escape }}</li>{% endfor %}</ol>
+              {% endif %}
+            </div>
+          {% endif %}
+
+          {% if frame.vars %}
+            <div class="commands">
+                <a href="#" onclick="return varToggle(this, '{{ frame.id }}')"><span>&#x25b6;</span> Local vars</a>
+            </div>
+            <table class="vars" id="v{{ frame.id }}">
+              <thead>
+                <tr>
+                  <th>Variable</th>
+                  <th>Value</th>
+                </tr>
+              </thead>
+              <tbody>
+                {% for var in frame.vars|dictsort:"0" %}
+                  <tr>
+                    <td>{{ var.0|escape }}</td>
+                    <td class="code"><div>{{ var.1|pprint|escape }}</div></td>
+                  </tr>
+                {% endfor %}
+              </tbody>
+            </table>
+          {% endif %}
+        </li>
+      {% endfor %}
+    </ul>
+  </div>
+  {% endautoescape %}
+  <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
+  <div id="pastebinTraceback" class="pastebin">
+    <input type="hidden" name="language" value="PythonConsole">
+    <input type="hidden" name="title" value="{{ exception_type|escape }} at {{ request.path|escape }}">
+    <input type="hidden" name="source" value="Django Dpaste Agent">
+    <input type="hidden" name="poster" value="Django">
+    <textarea name="content" id="traceback_area" cols="140" rows="25">
+Environment:
+
+Request Method: {{ request.META.REQUEST_METHOD }}
+Request URL: {{ request_protocol }}://{{ request.META.HTTP_HOST }}{{ request.path|escape }}
+Django Version: {{ django_version_info }}
+Python Version: {{ sys_version_info }}
+Installed Applications:
+{{ settings.INSTALLED_APPS|pprint }}
+Installed Middleware:
+{{ settings.MIDDLEWARE_CLASSES|pprint }}
+
+{% if template_does_not_exist %}Template Loader Error:
+{% if loader_debug_info %}Django tried loading these templates, in this order:
+{% for loader in loader_debug_info %}Using loader {{ loader.loader }}:
+{% for t in loader.templates %}{{ t.name }} (File {% if t.exists %}exists{% else %}does not exist{% endif %})
+{% endfor %}{% endfor %}
+{% else %}Django couldn't find any templates because your TEMPLATE_LOADERS setting is empty!
+{% endif %}
+{% endif %}{% if template_info %}
+Template error:
+In template {{ template_info.name }}, error at line {{ template_info.line }}
+   {{ template_info.message }}{% for source_line in template_info.source_lines %}{% ifequal source_line.0 template_info.line %}
+   {{ source_line.0 }} : {{ template_info.before }} {{ template_info.during }} {{ template_info.after }}
+{% else %}
+   {{ source_line.0 }} : {{ source_line.1 }}
+{% endifequal %}{% endfor %}{% endif %}
+Traceback:
+{% for frame in frames %}File "{{ frame.filename|escape }}" in {{ frame.function|escape }}
+{% if frame.context_line %}  {{ frame.lineno }}. {{ frame.context_line|escape }}{% endif %}
+{% endfor %}
+Exception Type: {{ exception_type|escape }} at {{ request.path|escape }}
+Exception Value: {{ exception_value|escape }}
+</textarea>
+  <br><br>
+  <input type="submit" value="Share this traceback on a public Web site">
+  </div>
+</form>
+</div>
+
+<div id="requestinfo">
+  <h2>Request information</h2>
+
+  <h3 id="get-info">GET</h3>
+  {% if request.GET %}
+    <table class="req">
+      <thead>
+        <tr>
+          <th>Variable</th>
+          <th>Value</th>
+        </tr>
+      </thead>
+      <tbody>
+        {% for var in request.GET.items %}
+          <tr>
+            <td>{{ var.0 }}</td>
+            <td class="code"><div>{{ var.1|pprint }}</div></td>
+          </tr>
+        {% endfor %}
+      </tbody>
+    </table>
+  {% else %}
+    <p>No GET data</p>
+  {% endif %}
+
+  <h3 id="post-info">POST</h3>
+  {% if request.POST %}
+    <table class="req">
+      <thead>
+        <tr>
+          <th>Variable</th>
+          <th>Value</th>
+        </tr>
+      </thead>
+      <tbody>
+        {% for var in request.POST.items %}
+          <tr>
+            <td>{{ var.0 }}</td>
+            <td class="code"><div>{{ var.1|pprint }}</div></td>
+          </tr>
+        {% endfor %}
+      </tbody>
+    </table>
+  {% else %}
+    <p>No POST data</p>
+  {% endif %}
+
+  <h3 id="cookie-info">COOKIES</h3>
+  {% if request.COOKIES %}
+    <table class="req">
+      <thead>
+        <tr>
+          <th>Variable</th>
+          <th>Value</th>
+        </tr>
+      </thead>
+      <tbody>
+        {% for var in request.COOKIES.items %}
+          <tr>
+            <td>{{ var.0 }}</td>
+            <td class="code"><div>{{ var.1|pprint }}</div></td>
+          </tr>
+        {% endfor %}
+      </tbody>
+    </table>
+  {% else %}
+    <p>No cookie data</p>
+  {% endif %}
+
+  <h3 id="meta-info">META</h3>
+  <table class="req">
+    <thead>
+      <tr>
+        <th>Variable</th>
+        <th>Value</th>
+      </tr>
+    </thead>
+    <tbody>
+      {% for var in request.META.items|dictsort:"0" %}
+        <tr>
+          <td>{{ var.0 }}</td>
+          <td class="code"><div>{{ var.1|pprint }}</div></td>
+        </tr>
+      {% endfor %}
+    </tbody>
+  </table>
+
+  <h3 id="settings-info">Settings</h3>
+  <h4>Using settings module <code>{{ settings.SETTINGS_MODULE }}</code></h4>
+  <table class="req">
+    <thead>
+      <tr>
+        <th>Setting</th>
+        <th>Value</th>
+      </tr>
+    </thead>
+    <tbody>
+      {% for var in settings.items|dictsort:"0" %}
+        <tr>
+          <td>{{ var.0 }}</td>
+          <td class="code"><div>{{ var.1|pprint }}</div></td>
+        </tr>
+      {% endfor %}
+    </tbody>
+  </table>
+
+</div>
+
+<div id="explanation">
+  <p>
+    You're seeing this error because you have <code>DEBUG = True</code> in your
+    Django settings file. Change that to <code>False</code>, and Django will
+    display a standard 500 page.
+  </p>
+</div>
+</body>
+</html>
+"""
+
+TECHNICAL_404_TEMPLATE = """
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <title>Page not found at {{ request.path|escape }}</title>
+  <meta name="robots" content="NONE,NOARCHIVE">
+  <style type="text/css">
+    html * { padding:0; margin:0; }
+    body * { padding:10px 20px; }
+    body * * { padding:0; }
+    body { font:small sans-serif; background:#eee; }
+    body>div { border-bottom:1px solid #ddd; }
+    h1 { font-weight:normal; margin-bottom:.4em; }
+    h1 span { font-size:60%; color:#666; font-weight:normal; }
+    table { border:none; border-collapse: collapse; width:100%; }
+    td, th { vertical-align:top; padding:2px 3px; }
+    th { width:12em; text-align:right; color:#666; padding-right:.5em; }
+    #info { background:#f6f6f6; }
+    #info ol { margin: 0.5em 4em; }
+    #info ol li { font-family: monospace; }
+    #summary { background: #ffc; }
+    #explanation { background:#eee; border-bottom: 0px none; }
+  </style>
+</head>
+<body>
+  <div id="summary">
+    <h1>Page not found <span>(404)</span></h1>
+    <table class="meta">
+      <tr>
+        <th>Request Method:</th>
+        <td>{{ request.META.REQUEST_METHOD }}</td>
+      </tr>
+      <tr>
+        <th>Request URL:</th>
+      <td>{{ request_protocol }}://{{ request.META.HTTP_HOST }}{{ request.path|escape }}</td>
+      </tr>
+    </table>
+  </div>
+  <div id="info">
+    {% if urlpatterns %}
+      <p>
+      Using the URLconf defined in <code>{{ settings.ROOT_URLCONF }}</code>,
+      Django tried these URL patterns, in this order:
+      </p>
+      <ol>
+        {% for pattern in urlpatterns %}
+          <li>{{ pattern }}</li>
+        {% endfor %}
+      </ol>
+      <p>The current URL, <code>{{ request_path|escape }}</code>, didn't match any of these.</p>
+    {% else %}
+      <p>{{ reason }}</p>
+    {% endif %}
+  </div>
+
+  <div id="explanation">
+    <p>
+      You're seeing this error because you have <code>DEBUG = True</code> in
+      your Django settings file. Change that to <code>False</code>, and Django
+      will display a standard 404 page.
+    </p>
+  </div>
+</body>
+</html>
+"""
+
+EMPTY_URLCONF_TEMPLATE = """
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en"><head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <meta name="robots" content="NONE,NOARCHIVE"><title>Welcome to Django</title>
+  <style type="text/css">
+    html * { padding:0; margin:0; }
+    body * { padding:10px 20px; }
+    body * * { padding:0; }
+    body { font:small sans-serif; }
+    body>div { border-bottom:1px solid #ddd; }
+    h1 { font-weight:normal; }
+    h2 { margin-bottom:.8em; }
+    h2 span { font-size:80%; color:#666; font-weight:normal; }
+    h3 { margin:1em 0 .5em 0; }
+    h4 { margin:0 0 .5em 0; font-weight: normal; }
+    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
+    tbody td, tbody th { vertical-align:top; padding:2px 3px; }
+    thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; }
+    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
+    ul { margin-left: 2em; margin-top: 1em; }
+    #summary { background: #e0ebff; }
+    #summary h2 { font-weight: normal; color: #666; }
+    #explanation { background:#eee; }
+    #instructions { background:#f6f6f6; }
+    #summary table { border:none; background:transparent; }
+  </style>
+</head>
+
+<body>
+<div id="summary">
+  <h1>It worked!</h1>
+  <h2>Congratulations on your first Django-powered page.</h2>
+</div>
+
+<div id="instructions">
+  <p>Of course, you haven't actually done any work yet. Here's what to do next:</p>
+  <ul>
+    <li>If you plan to use a database, edit the <code>DATABASE_*</code> settings in <code>{{ project_name }}/settings.py</code>.</li>
+    <li>Start your first app by running <code>python {{ project_name }}/manage.py startapp [appname]</code>.</li>
+  </ul>
+</div>
+
+<div id="explanation">
+  <p>
+    You're seeing this message because you have <code>DEBUG = True</code> in your
+    Django settings file and you haven't configured any URLs. Get to work!
+  </p>
+</div>
+</body></html>
+"""
diff --git a/webapp/django/views/decorators/__init__.py b/webapp/django/views/decorators/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/django/views/decorators/__init__.py
diff --git a/webapp/django/views/decorators/cache.py b/webapp/django/views/decorators/cache.py
new file mode 100644
index 0000000..8b620c1
--- /dev/null
+++ b/webapp/django/views/decorators/cache.py
@@ -0,0 +1,47 @@
+"""
+Decorator for views that tries getting the page from the cache and
+populates the cache if the page isn't in the cache yet.
+
+The cache is keyed by the URL and some data from the headers. Additionally
+there is the key prefix that is used to distinguish different cache areas
+in a multi-site setup. You could use the sites.get_current().domain, for
+example, as that is unique across a Django project.
+
+Additionally, all headers from the response's Vary header will be taken into
+account on caching -- just like the middleware does.
+"""
+
+try:
+    from functools import wraps
+except ImportError:
+    from django.utils.functional import wraps  # Python 2.3, 2.4 fallback.
+
+from django.utils.decorators import decorator_from_middleware
+from django.utils.cache import patch_cache_control, add_never_cache_headers
+from django.middleware.cache import CacheMiddleware
+
+cache_page = decorator_from_middleware(CacheMiddleware)
+
+def cache_control(**kwargs):
+
+    def _cache_controller(viewfunc):
+
+        def _cache_controlled(request, *args, **kw):
+            response = viewfunc(request, *args, **kw)
+            patch_cache_control(response, **kwargs)
+            return response
+
+        return wraps(viewfunc)(_cache_controlled)
+
+    return _cache_controller
+
+def never_cache(view_func):
+    """
+    Decorator that adds headers to a response so that it will
+    never be cached.
+    """
+    def _wrapped_view_func(request, *args, **kwargs):
+        response = view_func(request, *args, **kwargs)
+        add_never_cache_headers(response)
+        return response
+    return wraps(view_func)(_wrapped_view_func)
diff --git a/webapp/django/views/decorators/gzip.py b/webapp/django/views/decorators/gzip.py
new file mode 100644
index 0000000..dc6edad
--- /dev/null
+++ b/webapp/django/views/decorators/gzip.py
@@ -0,0 +1,6 @@
+"Decorator for views that gzips pages if the client supports it."
+
+from django.utils.decorators import decorator_from_middleware
+from django.middleware.gzip import GZipMiddleware
+
+gzip_page = decorator_from_middleware(GZipMiddleware)
diff --git a/webapp/django/views/decorators/http.py b/webapp/django/views/decorators/http.py
new file mode 100644
index 0000000..dd4f90e
--- /dev/null
+++ b/webapp/django/views/decorators/http.py
@@ -0,0 +1,39 @@
+"""
+Decorators for views based on HTTP headers.
+"""
+
+try:
+    from functools import wraps
+except ImportError:
+    from django.utils.functional import wraps  # Python 2.3, 2.4 fallback.
+
+from django.utils.decorators import decorator_from_middleware
+from django.middleware.http import ConditionalGetMiddleware
+from django.http import HttpResponseNotAllowed
+
+conditional_page = decorator_from_middleware(ConditionalGetMiddleware)
+
+def require_http_methods(request_method_list):
+    """
+    Decorator to make a view only accept particular request methods.  Usage::
+
+        @require_http_methods(["GET", "POST"])
+        def my_view(request):
+            # I can assume now that only GET or POST requests make it this far
+            # ...
+
+    Note that request methods should be in uppercase.
+    """
+    def decorator(func):
+        def inner(request, *args, **kwargs):
+            if request.method not in request_method_list:
+                return HttpResponseNotAllowed(request_method_list)
+            return func(request, *args, **kwargs)
+        return wraps(func)(inner)
+    return decorator
+
+require_GET = require_http_methods(["GET"])
+require_GET.__doc__ = "Decorator to require that a view only accept the GET method."
+
+require_POST = require_http_methods(["POST"])
+require_POST.__doc__ = "Decorator to require that a view only accept the POST method."
\ No newline at end of file
diff --git a/webapp/django/views/decorators/vary.py b/webapp/django/views/decorators/vary.py
new file mode 100644
index 0000000..ea1b8d3
--- /dev/null
+++ b/webapp/django/views/decorators/vary.py
@@ -0,0 +1,40 @@
+try:
+    from functools import wraps
+except ImportError:
+    from django.utils.functional import wraps  # Python 2.3, 2.4 fallback.
+
+from django.utils.cache import patch_vary_headers
+
+def vary_on_headers(*headers):
+    """
+    A view decorator that adds the specified headers to the Vary header of the
+    response. Usage:
+
+       @vary_on_headers('Cookie', 'Accept-language')
+       def index(request):
+           ...
+
+    Note that the header names are not case-sensitive.
+    """
+    def decorator(func):
+        def inner_func(*args, **kwargs):
+            response = func(*args, **kwargs)
+            patch_vary_headers(response, headers)
+            return response
+        return wraps(func)(inner_func)
+    return decorator
+
+def vary_on_cookie(func):
+    """
+    A view decorator that adds "Cookie" to the Vary header of a response. This
+    indicates that a page's contents depends on cookies. Usage:
+
+        @vary_on_cookie
+        def index(request):
+            ...
+    """
+    def inner_func(*args, **kwargs):
+        response = func(*args, **kwargs)
+        patch_vary_headers(response, ('Cookie',))
+        return response
+    return wraps(func)(inner_func)
diff --git a/webapp/django/views/defaults.py b/webapp/django/views/defaults.py
new file mode 100644
index 0000000..8a8fa47
--- /dev/null
+++ b/webapp/django/views/defaults.py
@@ -0,0 +1,89 @@
+from django.core.exceptions import ObjectDoesNotExist
+from django.template import Context, RequestContext, loader
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.sites.models import Site
+from django import http
+
+def shortcut(request, content_type_id, object_id):
+    "Redirect to an object's page based on a content-type ID and an object ID."
+    # Look up the object, making sure it's got a get_absolute_url() function.
+    try:
+        content_type = ContentType.objects.get(pk=content_type_id)
+        obj = content_type.get_object_for_this_type(pk=object_id)
+    except ObjectDoesNotExist:
+        raise http.Http404, "Content type %s object %s doesn't exist" % (content_type_id, object_id)
+    try:
+        absurl = obj.get_absolute_url()
+    except AttributeError:
+        raise http.Http404, "%s objects don't have get_absolute_url() methods" % content_type.name
+
+    # Try to figure out the object's domain, so we can do a cross-site redirect
+    # if necessary.
+
+    # If the object actually defines a domain, we're done.
+    if absurl.startswith('http://') or absurl.startswith('https://'):
+        return http.HttpResponseRedirect(absurl)
+
+    object_domain = None
+
+    # Otherwise, we need to introspect the object's relationships for a
+    # relation to the Site object
+    opts = obj._meta
+
+    # First, look for an many-to-many relationship to sites
+    for field in opts.many_to_many:
+        if field.rel.to is Site:
+            try:
+                object_domain = getattr(obj, field.name).all()[0].domain
+            except IndexError:
+                pass
+            if object_domain is not None:
+                break
+
+    # Next look for a many-to-one relationship to site
+    if object_domain is None:
+        for field in obj._meta.fields:
+            if field.rel and field.rel.to is Site:
+                try:
+                    object_domain = getattr(obj, field.name).domain
+                except Site.DoesNotExist:
+                    pass
+                if object_domain is not None:
+                    break
+
+    # Fall back to the current site (if possible)
+    if object_domain is None:
+        try:
+            object_domain = Site.objects.get_current().domain
+        except Site.DoesNotExist:
+            pass
+
+    # If all that malarkey found an object domain, use it; otherwise fall back
+    # to whatever get_absolute_url() returned.
+    if object_domain is not None:
+        protocol = request.is_secure() and 'https' or 'http'
+        return http.HttpResponseRedirect('%s://%s%s' % (protocol, object_domain, absurl))
+    else:
+        return http.HttpResponseRedirect(absurl)
+
+def page_not_found(request, template_name='404.html'):
+    """
+    Default 404 handler.
+
+    Templates: `404.html`
+    Context:
+        request_path
+            The path of the requested URL (e.g., '/app/pages/bad_page/')
+    """
+    t = loader.get_template(template_name) # You need to create a 404.html template.
+    return http.HttpResponseNotFound(t.render(RequestContext(request, {'request_path': request.path})))
+
+def server_error(request, template_name='500.html'):
+    """
+    500 error handler.
+
+    Templates: `500.html`
+    Context: None
+    """
+    t = loader.get_template(template_name) # You need to create a 500.html template.
+    return http.HttpResponseServerError(t.render(Context({})))
diff --git a/webapp/django/views/generic/__init__.py b/webapp/django/views/generic/__init__.py
new file mode 100644
index 0000000..95c5fa9
--- /dev/null
+++ b/webapp/django/views/generic/__init__.py
@@ -0,0 +1,3 @@
+class GenericViewError(Exception):
+    """A problem in a generic view."""
+    pass
diff --git a/webapp/django/views/generic/create_update.py b/webapp/django/views/generic/create_update.py
new file mode 100644
index 0000000..634fb1b
--- /dev/null
+++ b/webapp/django/views/generic/create_update.py
@@ -0,0 +1,210 @@
+from django.forms.models import ModelFormMetaclass, ModelForm
+from django.template import RequestContext, loader
+from django.http import Http404, HttpResponse, HttpResponseRedirect
+from django.core.xheaders import populate_xheaders
+from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured
+from django.utils.translation import ugettext
+from django.contrib.auth.views import redirect_to_login
+from django.views.generic import GenericViewError
+
+
+def apply_extra_context(extra_context, context):
+    """
+    Adds items from extra_context dict to context.  If a value in extra_context
+    is callable, then it is called and the result is added to context.
+    """
+    for key, value in extra_context.iteritems():
+        if callable(value):
+            context[key] = value()
+        else:
+            context[key] = value
+
+def get_model_and_form_class(model, form_class):
+    """
+    Returns a model and form class based on the model and form_class
+    parameters that were passed to the generic view.
+
+    If ``form_class`` is given then its associated model will be returned along
+    with ``form_class`` itself.  Otherwise, if ``model`` is given, ``model``
+    itself will be returned along with a ``ModelForm`` class created from
+    ``model``.
+    """
+    if form_class:
+        return form_class._meta.model, form_class
+    if model:
+        # The inner Meta class fails if model = model is used for some reason.
+        tmp_model = model
+        # TODO: we should be able to construct a ModelForm without creating
+        # and passing in a temporary inner class.
+        class Meta:
+            model = tmp_model
+        class_name = model.__name__ + 'Form'
+        form_class = ModelFormMetaclass(class_name, (ModelForm,), {'Meta': Meta})
+        return model, form_class
+    raise GenericViewError("Generic view must be called with either a model or"
+                           " form_class argument.")
+
+def redirect(post_save_redirect, obj):
+    """
+    Returns a HttpResponseRedirect to ``post_save_redirect``.
+
+    ``post_save_redirect`` should be a string, and can contain named string-
+    substitution place holders of ``obj`` field names.
+
+    If ``post_save_redirect`` is None, then redirect to ``obj``'s URL returned
+    by ``get_absolute_url()``.  If ``obj`` has no ``get_absolute_url`` method,
+    then raise ImproperlyConfigured.
+
+    This function is meant to handle the post_save_redirect parameter to the
+    ``create_object`` and ``update_object`` views.
+    """
+    if post_save_redirect:
+        return HttpResponseRedirect(post_save_redirect % obj.__dict__)
+    elif hasattr(obj, 'get_absolute_url'):
+        return HttpResponseRedirect(obj.get_absolute_url())
+    else:
+        raise ImproperlyConfigured(
+            "No URL to redirect to.  Either pass a post_save_redirect"
+            " parameter to the generic view or define a get_absolute_url"
+            " method on the Model.")
+
+def lookup_object(model, object_id, slug, slug_field):
+    """
+    Return the ``model`` object with the passed ``object_id``.  If
+    ``object_id`` is None, then return the the object whose ``slug_field``
+    equals the passed ``slug``.  If ``slug`` and ``slug_field`` are not passed,
+    then raise Http404 exception.
+    """
+    lookup_kwargs = {}
+    if object_id:
+        lookup_kwargs['%s__exact' % model._meta.pk.name] = object_id
+    elif slug and slug_field:
+        lookup_kwargs['%s__exact' % slug_field] = slug
+    else:
+        raise GenericViewError(
+            "Generic view must be called with either an object_id or a"
+            " slug/slug_field.")
+    try:
+        return model.objects.get(**lookup_kwargs)
+    except ObjectDoesNotExist:
+        raise Http404("No %s found for %s"
+                      % (model._meta.verbose_name, lookup_kwargs))
+
+def create_object(request, model=None, template_name=None,
+        template_loader=loader, extra_context=None, post_save_redirect=None,
+        login_required=False, context_processors=None, form_class=None):
+    """
+    Generic object-creation function.
+
+    Templates: ``<app_label>/<model_name>_form.html``
+    Context:
+        form
+            the form for the object
+    """
+    if extra_context is None: extra_context = {}
+    if login_required and not request.user.is_authenticated():
+        return redirect_to_login(request.path)
+
+    model, form_class = get_model_and_form_class(model, form_class)
+    if request.method == 'POST':
+        form = form_class(request.POST, request.FILES)
+        if form.is_valid():
+            new_object = form.save()
+            if request.user.is_authenticated():
+                request.user.message_set.create(message=ugettext("The %(verbose_name)s was created successfully.") % {"verbose_name": model._meta.verbose_name})
+            return redirect(post_save_redirect, new_object)
+    else:
+        form = form_class()
+
+    # Create the template, context, response
+    if not template_name:
+        template_name = "%s/%s_form.html" % (model._meta.app_label, model._meta.object_name.lower())
+    t = template_loader.get_template(template_name)
+    c = RequestContext(request, {
+        'form': form,
+    }, context_processors)
+    apply_extra_context(extra_context, c)
+    return HttpResponse(t.render(c))
+
+def update_object(request, model=None, object_id=None, slug=None,
+        slug_field='slug', template_name=None, template_loader=loader,
+        extra_context=None, post_save_redirect=None, login_required=False,
+        context_processors=None, template_object_name='object',
+        form_class=None):
+    """
+    Generic object-update function.
+
+    Templates: ``<app_label>/<model_name>_form.html``
+    Context:
+        form
+            the form for the object
+        object
+            the original object being edited
+    """
+    if extra_context is None: extra_context = {}
+    if login_required and not request.user.is_authenticated():
+        return redirect_to_login(request.path)
+
+    model, form_class = get_model_and_form_class(model, form_class)
+    obj = lookup_object(model, object_id, slug, slug_field)
+
+    if request.method == 'POST':
+        form = form_class(request.POST, request.FILES, instance=obj)
+        if form.is_valid():
+            obj = form.save()
+            if request.user.is_authenticated():
+                request.user.message_set.create(message=ugettext("The %(verbose_name)s was updated successfully.") % {"verbose_name": model._meta.verbose_name})
+            return redirect(post_save_redirect, obj)
+    else:
+        form = form_class(instance=obj)
+
+    if not template_name:
+        template_name = "%s/%s_form.html" % (model._meta.app_label, model._meta.object_name.lower())
+    t = template_loader.get_template(template_name)
+    c = RequestContext(request, {
+        'form': form,
+        template_object_name: obj,
+    }, context_processors)
+    apply_extra_context(extra_context, c)
+    response = HttpResponse(t.render(c))
+    populate_xheaders(request, response, model, getattr(obj, obj._meta.pk.attname))
+    return response
+
+def delete_object(request, model, post_delete_redirect, object_id=None,
+        slug=None, slug_field='slug', template_name=None,
+        template_loader=loader, extra_context=None, login_required=False,
+        context_processors=None, template_object_name='object'):
+    """
+    Generic object-delete function.
+
+    The given template will be used to confirm deletetion if this view is
+    fetched using GET; for safty, deletion will only be performed if this
+    view is POSTed.
+
+    Templates: ``<app_label>/<model_name>_confirm_delete.html``
+    Context:
+        object
+            the original object being deleted
+    """
+    if extra_context is None: extra_context = {}
+    if login_required and not request.user.is_authenticated():
+        return redirect_to_login(request.path)
+
+    obj = lookup_object(model, object_id, slug, slug_field)
+
+    if request.method == 'POST':
+        obj.delete()
+        if request.user.is_authenticated():
+            request.user.message_set.create(message=ugettext("The %(verbose_name)s was deleted.") % {"verbose_name": model._meta.verbose_name})
+        return HttpResponseRedirect(post_delete_redirect)
+    else:
+        if not template_name:
+            template_name = "%s/%s_confirm_delete.html" % (model._meta.app_label, model._meta.object_name.lower())
+        t = template_loader.get_template(template_name)
+        c = RequestContext(request, {
+            template_object_name: obj,
+        }, context_processors)
+        apply_extra_context(extra_context, c)
+        response = HttpResponse(t.render(c))
+        populate_xheaders(request, response, model, getattr(obj, obj._meta.pk.attname))
+        return response
diff --git a/webapp/django/views/generic/date_based.py b/webapp/django/views/generic/date_based.py
new file mode 100644
index 0000000..c5f1748
--- /dev/null
+++ b/webapp/django/views/generic/date_based.py
@@ -0,0 +1,352 @@
+import datetime
+import time
+
+from django.template import loader, RequestContext
+from django.core.exceptions import ObjectDoesNotExist
+from django.core.xheaders import populate_xheaders
+from django.db.models.fields import DateTimeField
+from django.http import Http404, HttpResponse
+
+def archive_index(request, queryset, date_field, num_latest=15,
+        template_name=None, template_loader=loader,
+        extra_context=None, allow_empty=True, context_processors=None,
+        mimetype=None, allow_future=False, template_object_name='latest'):
+    """
+    Generic top-level archive of date-based objects.
+
+    Templates: ``<app_label>/<model_name>_archive.html``
+    Context:
+        date_list
+            List of years
+        latest
+            Latest N (defaults to 15) objects by date
+    """
+    if extra_context is None: extra_context = {}
+    model = queryset.model
+    if not allow_future:
+        queryset = queryset.filter(**{'%s__lte' % date_field: datetime.datetime.now()})
+    date_list = queryset.dates(date_field, 'year')[::-1]
+    if not date_list and not allow_empty:
+        raise Http404, "No %s available" % model._meta.verbose_name
+
+    if date_list and num_latest:
+        latest = queryset.order_by('-'+date_field)[:num_latest]
+    else:
+        latest = None
+
+    if not template_name:
+        template_name = "%s/%s_archive.html" % (model._meta.app_label, model._meta.object_name.lower())
+    t = template_loader.get_template(template_name)
+    c = RequestContext(request, {
+        'date_list' : date_list,
+        template_object_name : latest,
+    }, context_processors)
+    for key, value in extra_context.items():
+        if callable(value):
+            c[key] = value()
+        else:
+            c[key] = value
+    return HttpResponse(t.render(c), mimetype=mimetype)
+
+def archive_year(request, year, queryset, date_field, template_name=None,
+        template_loader=loader, extra_context=None, allow_empty=False,
+        context_processors=None, template_object_name='object', mimetype=None,
+        make_object_list=False, allow_future=False):
+    """
+    Generic yearly archive view.
+
+    Templates: ``<app_label>/<model_name>_archive_year.html``
+    Context:
+        date_list
+            List of months in this year with objects
+        year
+            This year
+        object_list
+            List of objects published in the given month
+            (Only available if make_object_list argument is True)
+    """
+    if extra_context is None: extra_context = {}
+    model = queryset.model
+    now = datetime.datetime.now()
+
+    lookup_kwargs = {'%s__year' % date_field: year}
+
+    # Only bother to check current date if the year isn't in the past and future objects aren't requested.
+    if int(year) >= now.year and not allow_future:
+        lookup_kwargs['%s__lte' % date_field] = now
+    date_list = queryset.filter(**lookup_kwargs).dates(date_field, 'month')
+    if not date_list and not allow_empty:
+        raise Http404
+    if make_object_list:
+        object_list = queryset.filter(**lookup_kwargs)
+    else:
+        object_list = []
+    if not template_name:
+        template_name = "%s/%s_archive_year.html" % (model._meta.app_label, model._meta.object_name.lower())
+    t = template_loader.get_template(template_name)
+    c = RequestContext(request, {
+        'date_list': date_list,
+        'year': year,
+        '%s_list' % template_object_name: object_list,
+    }, context_processors)
+    for key, value in extra_context.items():
+        if callable(value):
+            c[key] = value()
+        else:
+            c[key] = value
+    return HttpResponse(t.render(c), mimetype=mimetype)
+
+def archive_month(request, year, month, queryset, date_field,
+        month_format='%b', template_name=None, template_loader=loader,
+        extra_context=None, allow_empty=False, context_processors=None,
+        template_object_name='object', mimetype=None, allow_future=False):
+    """
+    Generic monthly archive view.
+
+    Templates: ``<app_label>/<model_name>_archive_month.html``
+    Context:
+        month:
+            (date) this month
+        next_month:
+            (date) the first day of the next month, or None if the next month is in the future
+        previous_month:
+            (date) the first day of the previous month
+        object_list:
+            list of objects published in the given month
+    """
+    if extra_context is None: extra_context = {}
+    try:
+        date = datetime.date(*time.strptime(year+month, '%Y'+month_format)[:3])
+    except ValueError:
+        raise Http404
+
+    model = queryset.model
+    now = datetime.datetime.now()
+
+    # Calculate first and last day of month, for use in a date-range lookup.
+    first_day = date.replace(day=1)
+    if first_day.month == 12:
+        last_day = first_day.replace(year=first_day.year + 1, month=1)
+    else:
+        last_day = first_day.replace(month=first_day.month + 1)
+    lookup_kwargs = {
+        '%s__gte' % date_field: first_day,
+        '%s__lt' % date_field: last_day,
+    }
+
+    # Only bother to check current date if the month isn't in the past and future objects are requested.
+    if last_day >= now.date() and not allow_future:
+        lookup_kwargs['%s__lte' % date_field] = now
+    object_list = queryset.filter(**lookup_kwargs)
+    if not object_list and not allow_empty:
+        raise Http404
+
+    # Calculate the next month, if applicable.
+    if allow_future:
+        next_month = last_day + datetime.timedelta(days=1)
+    elif last_day < datetime.date.today():
+        next_month = last_day + datetime.timedelta(days=1)
+    else:
+        next_month = None
+
+    if not template_name:
+        template_name = "%s/%s_archive_month.html" % (model._meta.app_label, model._meta.object_name.lower())
+    t = template_loader.get_template(template_name)
+    c = RequestContext(request, {
+        '%s_list' % template_object_name: object_list,
+        'month': date,
+        'next_month': next_month,
+        'previous_month': first_day - datetime.timedelta(days=1),
+    }, context_processors)
+    for key, value in extra_context.items():
+        if callable(value):
+            c[key] = value()
+        else:
+            c[key] = value
+    return HttpResponse(t.render(c), mimetype=mimetype)
+
+def archive_week(request, year, week, queryset, date_field,
+        template_name=None, template_loader=loader,
+        extra_context=None, allow_empty=True, context_processors=None,
+        template_object_name='object', mimetype=None, allow_future=False):
+    """
+    Generic weekly archive view.
+
+    Templates: ``<app_label>/<model_name>_archive_week.html``
+    Context:
+        week:
+            (date) this week
+        object_list:
+            list of objects published in the given week
+    """
+    if extra_context is None: extra_context = {}
+    try:
+        date = datetime.date(*time.strptime(year+'-0-'+week, '%Y-%w-%U')[:3])
+    except ValueError:
+        raise Http404
+
+    model = queryset.model
+    now = datetime.datetime.now()
+
+    # Calculate first and last day of week, for use in a date-range lookup.
+    first_day = date
+    last_day = date + datetime.timedelta(days=7)
+    lookup_kwargs = {
+        '%s__gte' % date_field: first_day,
+        '%s__lt' % date_field: last_day,
+    }
+
+    # Only bother to check current date if the week isn't in the past and future objects aren't requested.
+    if last_day >= now.date() and not allow_future:
+        lookup_kwargs['%s__lte' % date_field] = now
+    object_list = queryset.filter(**lookup_kwargs)
+    if not object_list and not allow_empty:
+        raise Http404
+    if not template_name:
+        template_name = "%s/%s_archive_week.html" % (model._meta.app_label, model._meta.object_name.lower())
+    t = template_loader.get_template(template_name)
+    c = RequestContext(request, {
+        '%s_list' % template_object_name: object_list,
+        'week': date,
+    })
+    for key, value in extra_context.items():
+        if callable(value):
+            c[key] = value()
+        else:
+            c[key] = value
+    return HttpResponse(t.render(c), mimetype=mimetype)
+
+def archive_day(request, year, month, day, queryset, date_field,
+        month_format='%b', day_format='%d', template_name=None,
+        template_loader=loader, extra_context=None, allow_empty=False,
+        context_processors=None, template_object_name='object',
+        mimetype=None, allow_future=False):
+    """
+    Generic daily archive view.
+
+    Templates: ``<app_label>/<model_name>_archive_day.html``
+    Context:
+        object_list:
+            list of objects published that day
+        day:
+            (datetime) the day
+        previous_day
+            (datetime) the previous day
+        next_day
+            (datetime) the next day, or None if the current day is today
+    """
+    if extra_context is None: extra_context = {}
+    try:
+        date = datetime.date(*time.strptime(year+month+day, '%Y'+month_format+day_format)[:3])
+    except ValueError:
+        raise Http404
+
+    model = queryset.model
+    now = datetime.datetime.now()
+
+    if isinstance(model._meta.get_field(date_field), DateTimeField):
+        lookup_kwargs = {'%s__range' % date_field: (datetime.datetime.combine(date, datetime.time.min), datetime.datetime.combine(date, datetime.time.max))}
+    else:
+        lookup_kwargs = {date_field: date}
+
+    # Only bother to check current date if the date isn't in the past and future objects aren't requested.
+    if date >= now.date() and not allow_future:
+        lookup_kwargs['%s__lte' % date_field] = now
+    object_list = queryset.filter(**lookup_kwargs)
+    if not allow_empty and not object_list:
+        raise Http404
+
+    # Calculate the next day, if applicable.
+    if allow_future:
+        next_day = date + datetime.timedelta(days=1)
+    elif date < datetime.date.today():
+        next_day = date + datetime.timedelta(days=1)
+    else:
+        next_day = None
+
+    if not template_name:
+        template_name = "%s/%s_archive_day.html" % (model._meta.app_label, model._meta.object_name.lower())
+    t = template_loader.get_template(template_name)
+    c = RequestContext(request, {
+        '%s_list' % template_object_name: object_list,
+        'day': date,
+        'previous_day': date - datetime.timedelta(days=1),
+        'next_day': next_day,
+    }, context_processors)
+    for key, value in extra_context.items():
+        if callable(value):
+            c[key] = value()
+        else:
+            c[key] = value
+    return HttpResponse(t.render(c), mimetype=mimetype)
+
+def archive_today(request, **kwargs):
+    """
+    Generic daily archive view for today. Same as archive_day view.
+    """
+    today = datetime.date.today()
+    kwargs.update({
+        'year': str(today.year),
+        'month': today.strftime('%b').lower(),
+        'day': str(today.day),
+    })
+    return archive_day(request, **kwargs)
+
+def object_detail(request, year, month, day, queryset, date_field,
+        month_format='%b', day_format='%d', object_id=None, slug=None,
+        slug_field='slug', template_name=None, template_name_field=None,
+        template_loader=loader, extra_context=None, context_processors=None,
+        template_object_name='object', mimetype=None, allow_future=False):
+    """
+    Generic detail view from year/month/day/slug or year/month/day/id structure.
+
+    Templates: ``<app_label>/<model_name>_detail.html``
+    Context:
+        object:
+            the object to be detailed
+    """
+    if extra_context is None: extra_context = {}
+    try:
+        date = datetime.date(*time.strptime(year+month+day, '%Y'+month_format+day_format)[:3])
+    except ValueError:
+        raise Http404
+
+    model = queryset.model
+    now = datetime.datetime.now()
+
+    if isinstance(model._meta.get_field(date_field), DateTimeField):
+        lookup_kwargs = {'%s__range' % date_field: (datetime.datetime.combine(date, datetime.time.min), datetime.datetime.combine(date, datetime.time.max))}
+    else:
+        lookup_kwargs = {date_field: date}
+
+    # Only bother to check current date if the date isn't in the past and future objects aren't requested.
+    if date >= now.date() and not allow_future:
+        lookup_kwargs['%s__lte' % date_field] = now
+    if object_id:
+        lookup_kwargs['%s__exact' % model._meta.pk.name] = object_id
+    elif slug and slug_field:
+        lookup_kwargs['%s__exact' % slug_field] = slug
+    else:
+        raise AttributeError, "Generic detail view must be called with either an object_id or a slug/slugfield"
+    try:
+        obj = queryset.get(**lookup_kwargs)
+    except ObjectDoesNotExist:
+        raise Http404, "No %s found for" % model._meta.verbose_name
+    if not template_name:
+        template_name = "%s/%s_detail.html" % (model._meta.app_label, model._meta.object_name.lower())
+    if template_name_field:
+        template_name_list = [getattr(obj, template_name_field), template_name]
+        t = template_loader.select_template(template_name_list)
+    else:
+        t = template_loader.get_template(template_name)
+    c = RequestContext(request, {
+        template_object_name: obj,
+    }, context_processors)
+    for key, value in extra_context.items():
+        if callable(value):
+            c[key] = value()
+        else:
+            c[key] = value
+    response = HttpResponse(t.render(c), mimetype=mimetype)
+    populate_xheaders(request, response, model, getattr(obj, obj._meta.pk.name))
+    return response
diff --git a/webapp/django/views/generic/list_detail.py b/webapp/django/views/generic/list_detail.py
new file mode 100644
index 0000000..27e36bd
--- /dev/null
+++ b/webapp/django/views/generic/list_detail.py
@@ -0,0 +1,145 @@
+from django.template import loader, RequestContext
+from django.http import Http404, HttpResponse
+from django.core.xheaders import populate_xheaders
+from django.core.paginator import Paginator, InvalidPage
+from django.core.exceptions import ObjectDoesNotExist
+
+def object_list(request, queryset, paginate_by=None, page=None,
+        allow_empty=True, template_name=None, template_loader=loader,
+        extra_context=None, context_processors=None, template_object_name='object',
+        mimetype=None):
+    """
+    Generic list of objects.
+
+    Templates: ``<app_label>/<model_name>_list.html``
+    Context:
+        object_list
+            list of objects
+        is_paginated
+            are the results paginated?
+        results_per_page
+            number of objects per page (if paginated)
+        has_next
+            is there a next page?
+        has_previous
+            is there a prev page?
+        page
+            the current page
+        next
+            the next page
+        previous
+            the previous page
+        pages
+            number of pages, total
+        hits
+            number of objects, total
+        last_on_page
+            the result number of the last of object in the
+            object_list (1-indexed)
+        first_on_page
+            the result number of the first object in the
+            object_list (1-indexed)
+        page_range:
+            A list of the page numbers (1-indexed).
+    """
+    if extra_context is None: extra_context = {}
+    queryset = queryset._clone()
+    if paginate_by:
+        paginator = Paginator(queryset, paginate_by, allow_empty_first_page=allow_empty)
+        if not page:
+            page = request.GET.get('page', 1)
+        try:
+            page_number = int(page)
+        except ValueError:
+            if page == 'last':
+                page_number = paginator.num_pages
+            else:
+                # Page is not 'last', nor can it be converted to an int.
+                raise Http404
+        try:
+            page_obj = paginator.page(page_number)
+        except InvalidPage:
+            raise Http404
+        c = RequestContext(request, {
+            '%s_list' % template_object_name: page_obj.object_list,
+            'paginator': paginator,
+            'page_obj': page_obj,
+
+            # Legacy template context stuff. New templates should use page_obj
+            # to access this instead.
+            'is_paginated': page_obj.has_other_pages(),
+            'results_per_page': paginator.per_page,
+            'has_next': page_obj.has_next(),
+            'has_previous': page_obj.has_previous(),
+            'page': page_obj.number,
+            'next': page_obj.next_page_number(),
+            'previous': page_obj.previous_page_number(),
+            'first_on_page': page_obj.start_index(),
+            'last_on_page': page_obj.end_index(),
+            'pages': paginator.num_pages,
+            'hits': paginator.count,
+            'page_range': paginator.page_range,
+        }, context_processors)
+    else:
+        c = RequestContext(request, {
+            '%s_list' % template_object_name: queryset,
+            'paginator': None,
+            'page_obj': None,
+            'is_paginated': False,
+        }, context_processors)
+        if not allow_empty and len(queryset) == 0:
+            raise Http404
+    for key, value in extra_context.items():
+        if callable(value):
+            c[key] = value()
+        else:
+            c[key] = value
+    if not template_name:
+        model = queryset.model
+        template_name = "%s/%s_list.html" % (model._meta.app_label, model._meta.object_name.lower())
+    t = template_loader.get_template(template_name)
+    return HttpResponse(t.render(c), mimetype=mimetype)
+
+def object_detail(request, queryset, object_id=None, slug=None,
+        slug_field='slug', template_name=None, template_name_field=None,
+        template_loader=loader, extra_context=None,
+        context_processors=None, template_object_name='object',
+        mimetype=None):
+    """
+    Generic detail of an object.
+
+    Templates: ``<app_label>/<model_name>_detail.html``
+    Context:
+        object
+            the object
+    """
+    if extra_context is None: extra_context = {}
+    model = queryset.model
+    if object_id:
+        queryset = queryset.filter(pk=object_id)
+    elif slug and slug_field:
+        queryset = queryset.filter(**{slug_field: slug})
+    else:
+        raise AttributeError, "Generic detail view must be called with either an object_id or a slug/slug_field."
+    try:
+        obj = queryset.get()
+    except ObjectDoesNotExist:
+        raise Http404, "No %s found matching the query" % (model._meta.verbose_name)
+    if not template_name:
+        template_name = "%s/%s_detail.html" % (model._meta.app_label, model._meta.object_name.lower())
+    if template_name_field:
+        template_name_list = [getattr(obj, template_name_field), template_name]
+        t = template_loader.select_template(template_name_list)
+    else:
+        t = template_loader.get_template(template_name)
+    c = RequestContext(request, {
+        template_object_name: obj,
+    }, context_processors)
+    for key, value in extra_context.items():
+        if callable(value):
+            c[key] = value()
+        else:
+            c[key] = value
+    response = HttpResponse(t.render(c), mimetype=mimetype)
+    populate_xheaders(request, response, model, getattr(obj, obj._meta.pk.name))
+    return response
diff --git a/webapp/django/views/generic/simple.py b/webapp/django/views/generic/simple.py
new file mode 100644
index 0000000..0a68b82
--- /dev/null
+++ b/webapp/django/views/generic/simple.py
@@ -0,0 +1,37 @@
+from django.template import loader, RequestContext
+from django.http import HttpResponse, HttpResponsePermanentRedirect, HttpResponseGone
+
+def direct_to_template(request, template, extra_context=None, mimetype=None, **kwargs):
+    """
+    Render a given template with any extra URL parameters in the context as
+    ``{{ params }}``.
+    """
+    if extra_context is None: extra_context = {}
+    dictionary = {'params': kwargs}
+    for key, value in extra_context.items():
+        if callable(value):
+            dictionary[key] = value()
+        else:
+            dictionary[key] = value
+    c = RequestContext(request, dictionary)
+    t = loader.get_template(template)
+    return HttpResponse(t.render(c), mimetype=mimetype)
+
+def redirect_to(request, url, **kwargs):
+    """
+    Redirect to a given URL.
+
+    The given url may contain dict-style string formatting, which will be
+    interpolated against the params in the URL.  For example, to redirect from
+    ``/foo/<id>/`` to ``/bar/<id>/``, you could use the following URLconf::
+
+        urlpatterns = patterns('',
+            ('^foo/(?P<id>\d+)/$', 'django.views.generic.simple.redirect_to', {'url' : '/bar/%(id)s/'}),
+        )
+
+    If the given url is ``None``, a HttpResponseGone (410) will be issued.
+    """
+    if url is not None:
+        return HttpResponsePermanentRedirect(url % kwargs)
+    else:
+        return HttpResponseGone()
diff --git a/webapp/django/views/i18n.py b/webapp/django/views/i18n.py
new file mode 100644
index 0000000..e141c1d
--- /dev/null
+++ b/webapp/django/views/i18n.py
@@ -0,0 +1,193 @@
+from django import http
+from django.utils.translation import check_for_language, activate, to_locale, get_language
+from django.utils.text import javascript_quote
+from django.conf import settings
+import os
+import gettext as gettext_module
+
+def set_language(request):
+    """
+    Redirect to a given url while setting the chosen language in the
+    session or cookie. The url and the language code need to be
+    specified in the request parameters.
+
+    Since this view changes how the user will see the rest of the site, it must
+    only be accessed as a POST request. If called as a GET request, it will
+    redirect to the page in the request (the 'next' parameter) without changing
+    any state.
+    """
+    next = request.REQUEST.get('next', None)
+    if not next:
+        next = request.META.get('HTTP_REFERER', None)
+    if not next:
+        next = '/'
+    response = http.HttpResponseRedirect(next)
+    if request.method == 'POST':
+        lang_code = request.POST.get('language', None)
+        if lang_code and check_for_language(lang_code):
+            if hasattr(request, 'session'):
+                request.session['django_language'] = lang_code
+            else:
+                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
+    return response
+
+NullSource = """
+/* gettext identity library */
+
+function gettext(msgid) { return msgid; }
+function ngettext(singular, plural, count) { return (count == 1) ? singular : plural; }
+function gettext_noop(msgid) { return msgid; }
+"""
+
+LibHead = """
+/* gettext library */
+
+var catalog = new Array();
+"""
+
+LibFoot = """
+
+function gettext(msgid) {
+  var value = catalog[msgid];
+  if (typeof(value) == 'undefined') {
+    return msgid;
+  } else {
+    return (typeof(value) == 'string') ? value : value[0];
+  }
+}
+
+function ngettext(singular, plural, count) {
+  value = catalog[singular];
+  if (typeof(value) == 'undefined') {
+    return (count == 1) ? singular : plural;
+  } else {
+    return value[pluralidx(count)];
+  }
+}
+
+function gettext_noop(msgid) { return msgid; }
+"""
+
+SimplePlural = """
+function pluralidx(count) { return (count == 1) ? 0 : 1; }
+"""
+
+InterPolate = r"""
+function interpolate(fmt, obj, named) {
+  if (named) {
+    return fmt.replace(/%\(\w+\)s/g, function(match){return String(obj[match.slice(2,-2)])});
+  } else {
+    return fmt.replace(/%s/g, function(match){return String(obj.shift())});
+  }
+}
+"""
+
+PluralIdx = r"""
+function pluralidx(n) {
+  var v=%s;
+  if (typeof(v) == 'boolean') {
+    return v ? 1 : 0;
+  } else {
+    return v;
+  }
+}
+"""
+
+def null_javascript_catalog(request, domain=None, packages=None):
+    """
+    Returns "identity" versions of the JavaScript i18n functions -- i.e.,
+    versions that don't actually do anything.
+    """
+    return http.HttpResponse(NullSource + InterPolate, 'text/javascript')
+
+def javascript_catalog(request, domain='djangojs', packages=None):
+    """
+    Returns the selected language catalog as a javascript library.
+
+    Receives the list of packages to check for translations in the
+    packages parameter either from an infodict or as a +-delimited
+    string from the request. Default is 'django.conf'.
+
+    Additionally you can override the gettext domain for this view,
+    but usually you don't want to do that, as JavaScript messages
+    go to the djangojs domain. But this might be needed if you
+    deliver your JavaScript source from Django templates.
+    """
+    if request.GET:
+        if 'language' in request.GET:
+            if check_for_language(request.GET['language']):
+                activate(request.GET['language'])
+    if packages is None:
+        packages = ['django.conf']
+    if type(packages) in (str, unicode):
+        packages = packages.split('+')
+    packages = [p for p in packages if p == 'django.conf' or p in settings.INSTALLED_APPS]
+    default_locale = to_locale(settings.LANGUAGE_CODE)
+    locale = to_locale(get_language())
+    t = {}
+    paths = []
+    # first load all english languages files for defaults
+    for package in packages:
+        p = __import__(package, {}, {}, [''])
+        path = os.path.join(os.path.dirname(p.__file__), 'locale')
+        paths.append(path)
+        try:
+            catalog = gettext_module.translation(domain, path, ['en'])
+            t.update(catalog._catalog)
+        except IOError:
+            # 'en' catalog was missing. This is harmless.
+            pass
+    # next load the settings.LANGUAGE_CODE translations if it isn't english
+    if default_locale != 'en':
+        for path in paths:
+            try:
+                catalog = gettext_module.translation(domain, path, [default_locale])
+            except IOError:
+                catalog = None
+            if catalog is not None:
+                t.update(catalog._catalog)
+    # last load the currently selected language, if it isn't identical to the default.
+    if locale != default_locale:
+        for path in paths:
+            try:
+                catalog = gettext_module.translation(domain, path, [locale])
+            except IOError:
+                catalog = None
+            if catalog is not None:
+                t.update(catalog._catalog)
+    src = [LibHead]
+    plural = None
+    if '' in t:
+        for l in t[''].split('\n'):
+            if l.startswith('Plural-Forms:'):
+                plural = l.split(':',1)[1].strip()
+    if plural is not None:
+        # this should actually be a compiled function of a typical plural-form:
+        # Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
+        plural = [el.strip() for el in plural.split(';') if el.strip().startswith('plural=')][0].split('=',1)[1]
+        src.append(PluralIdx % plural)
+    else:
+        src.append(SimplePlural)
+    csrc = []
+    pdict = {}
+    for k, v in t.items():
+        if k == '':
+            continue
+        if type(k) in (str, unicode):
+            csrc.append("catalog['%s'] = '%s';\n" % (javascript_quote(k), javascript_quote(v)))
+        elif type(k) == tuple:
+            if k[0] not in pdict:
+                pdict[k[0]] = k[1]
+            else:
+                pdict[k[0]] = max(k[1], pdict[k[0]])
+            csrc.append("catalog['%s'][%d] = '%s';\n" % (javascript_quote(k[0]), k[1], javascript_quote(v)))
+        else:
+            raise TypeError, k
+    csrc.sort()
+    for k,v in pdict.items():
+        src.append("catalog['%s'] = [%s];\n" % (javascript_quote(k), ','.join(["''"]*(v+1))))
+    src.extend(csrc)
+    src.append(LibFoot)
+    src.append(InterPolate)
+    src = ''.join(src)
+    return http.HttpResponse(src, 'text/javascript')
diff --git a/webapp/django/views/static.py b/webapp/django/views/static.py
new file mode 100644
index 0000000..5a4d3ab
--- /dev/null
+++ b/webapp/django/views/static.py
@@ -0,0 +1,133 @@
+"""
+Views and functions for serving static files. These are only to be used
+during development, and SHOULD NOT be used in a production setting.
+"""
+
+import mimetypes
+import os
+import posixpath
+import re
+import stat
+import urllib
+from email.Utils import parsedate_tz, mktime_tz
+
+from django.template import loader
+from django.http import Http404, HttpResponse, HttpResponseRedirect, HttpResponseNotModified
+from django.template import Template, Context, TemplateDoesNotExist
+from django.utils.http import http_date
+
+def serve(request, path, document_root=None, show_indexes=False):
+    """
+    Serve static files below a given point in the directory structure.
+
+    To use, put a URL pattern such as::
+
+        (r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root' : '/path/to/my/files/'})
+
+    in your URLconf. You must provide the ``document_root`` param. You may
+    also set ``show_indexes`` to ``True`` if you'd like to serve a basic index
+    of the directory.  This index view will use the template hardcoded below,
+    but if you'd like to override it, you can create a template called
+    ``static/directory_index``.
+    """
+
+    # Clean up given path to only allow serving files below document_root.
+    path = posixpath.normpath(urllib.unquote(path))
+    path = path.lstrip('/')
+    newpath = ''
+    for part in path.split('/'):
+        if not part:
+            # Strip empty path components.
+            continue
+        drive, part = os.path.splitdrive(part)
+        head, part = os.path.split(part)
+        if part in (os.curdir, os.pardir):
+            # Strip '.' and '..' in path.
+            continue
+        newpath = os.path.join(newpath, part).replace('\\', '/')
+    if newpath and path != newpath:
+        return HttpResponseRedirect(newpath)
+    fullpath = os.path.join(document_root, newpath)
+    if os.path.isdir(fullpath):
+        if show_indexes:
+            return directory_index(newpath, fullpath)
+        raise Http404, "Directory indexes are not allowed here."
+    if not os.path.exists(fullpath):
+        raise Http404, '"%s" does not exist' % fullpath
+    # Respect the If-Modified-Since header.
+    statobj = os.stat(fullpath)
+    if not was_modified_since(request.META.get('HTTP_IF_MODIFIED_SINCE'),
+                              statobj[stat.ST_MTIME], statobj[stat.ST_SIZE]):
+        return HttpResponseNotModified()
+    mimetype = mimetypes.guess_type(fullpath)[0] or 'application/octet-stream'
+    contents = open(fullpath, 'rb').read()
+    response = HttpResponse(contents, mimetype=mimetype)
+    response["Last-Modified"] = http_date(statobj[stat.ST_MTIME])
+    response["Content-Length"] = len(contents)
+    return response
+
+DEFAULT_DIRECTORY_INDEX_TEMPLATE = """
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+    <meta http-equiv="Content-Language" content="en-us" />
+    <meta name="robots" content="NONE,NOARCHIVE" />
+    <title>Index of {{ directory|escape }}</title>
+  </head>
+  <body>
+    <h1>Index of {{ directory|escape }}</h1>
+    <ul>
+      {% for f in file_list %}
+      <li><a href="{{ f|urlencode }}">{{ f|escape }}</a></li>
+      {% endfor %}
+    </ul>
+  </body>
+</html>
+"""
+
+def directory_index(path, fullpath):
+    try:
+        t = loader.get_template('static/directory_index')
+    except TemplateDoesNotExist:
+        t = Template(DEFAULT_DIRECTORY_INDEX_TEMPLATE, name='Default directory index template')
+    files = []
+    for f in os.listdir(fullpath):
+        if not f.startswith('.'):
+            if os.path.isdir(os.path.join(fullpath, f)):
+                f += '/'
+            files.append(f)
+    c = Context({
+        'directory' : path + '/',
+        'file_list' : files,
+    })
+    return HttpResponse(t.render(c))
+
+def was_modified_since(header=None, mtime=0, size=0):
+    """
+    Was something modified since the user last downloaded it?
+
+    header
+      This is the value of the If-Modified-Since header.  If this is None,
+      I'll just return True.
+
+    mtime
+      This is the modification time of the item we're talking about.
+
+    size
+      This is the size of the item we're talking about.
+    """
+    try:
+        if header is None:
+            raise ValueError
+        matches = re.match(r"^([^;]+)(; length=([0-9]+))?$", header,
+                           re.IGNORECASE)
+        header_mtime = mktime_tz(parsedate_tz(matches.group(1)))
+        header_len = matches.group(3)
+        if header_len and int(header_len) != size:
+            raise ValueError
+        if mtime > header_mtime:
+            raise ValueError
+    except (AttributeError, ValueError):
+        return True
+    return False
diff --git a/webapp/git_upload.py b/webapp/git_upload.py
new file mode 100755
index 0000000..a6fa768
--- /dev/null
+++ b/webapp/git_upload.py
@@ -0,0 +1,253 @@
+#!/usr/bin/env python2.5
+#
+# Copyright 2007 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import getpass
+import logging
+import optparse
+import os
+import subprocess
+import sys
+from tempfile import mkstemp
+
+from codereview.proto_client import HttpRpc, Proxy
+from codereview.review_pb2 import ReviewService_Stub
+from codereview.upload_bundle_pb2 import *
+
+try:
+  import readline
+except ImportError:
+  pass
+
+MAX_SEGMENT_SIZE = 1020 * 1024
+
+# The logging verbosity:
+#  0: Errors only.
+#  1: Status messages.
+#  2: Info logs.
+#  3: Debug logs.
+verbosity = 1
+
+def StatusUpdate(msg):
+  """Print a status message to stdout.
+
+  If 'verbosity' is greater than 0, print the message.
+
+  Args:
+    msg: The string to print.
+  """
+  if verbosity > 0:
+    print msg
+
+
+def ErrorExit(msg):
+  """Print an error message to stderr and exit."""
+  print >>sys.stderr, msg
+  sys.exit(1)
+
+
+def RunShell(command, args=(), silent_ok=False):
+  command = "%s %s" % (command, " ".join(args))
+  logging.info("Running %s", command)
+  stream = os.popen(command, "r")
+  data = stream.read()
+  if stream.close():
+    ErrorExit("Got error status from %s" % command)
+  if not silent_ok and not data:
+    ErrorExit("No output from %s" % command)
+  return data
+
+
+def RunGit(*args):
+  argv = ["git"]
+  argv += args
+  retcode = subprocess.call(argv)
+  if retcode != 0:
+    raise OSError, retcode
+
+def GitVal(*args):
+  data = RunShell("git", args)
+  if data.rfind("\n") == len(data) - 1:
+    return data[0 : len(data) - 1]
+  return data
+
+
+parser = optparse.OptionParser(usage="%prog [options] [-- diff_options]")
+
+# Logging
+group = parser.add_option_group("Logging options")
+group.add_option("-q", "--quiet", action="store_const", const=0,
+                 dest="verbose", help="Print errors only.")
+group.add_option("-v", "--verbose", action="store_const", const=2,
+                 dest="verbose", default=1,
+                 help="Print info level logs (default).")
+group.add_option("--noisy", action="store_const", const=3,
+                 dest="verbose", help="Print all logs.")
+
+# Review server
+group = parser.add_option_group("Review server options")
+group.add_option("-s", "--server", action="store", dest="server",
+                 default="codereview.appspot.com",
+                 metavar="SERVER",
+                 help=("The server to upload to. The format is host[:port]. "
+                       "Defaults to 'codereview.appspot.com'."))
+group.add_option("-e", "--email", action="store", dest="email",
+                 metavar="EMAIL", default=None,
+                 help="The username to use. Will prompt if omitted.")
+group.add_option("-H", "--host", action="store", dest="host",
+                 metavar="HOST", default=None,
+                 help="Overrides the Host header sent with all RPCs.")
+group.add_option("--no_cookies", action="store_false",
+                 dest="save_cookies", default=True,
+                 help="Do not save authentication cookies to local disk.")
+
+# Git
+group = parser.add_option_group("Git options")
+group.add_option("-p", "--project", action="store", dest="dest_project",
+                 metavar="PROJECT",
+                 help=("Name of the Git repository to submit into."))
+group.add_option("-b", "--branch", action="store", dest="dest_branch",
+                 metavar="BRANCH",
+                 help=("Name of the branch the changes are proposed for."))
+group.add_option("-B", "--base", action="store", dest="base_commit",
+                 default="refs/remotes/origin/master",
+                 metavar="COMMIT",
+                 help=("Base commit for the bundle."))
+
+def GetRpcServer(options):
+  """Returns an RpcServer.
+
+  Returns:
+    A new RpcServer, on which RPC calls can be made.
+  """
+
+  def GetUserCredentials():
+    """Prompts the user for a username and password."""
+    email = options.email
+    if email is None:
+      email = raw_input("Email: ").strip()
+    password = getpass.getpass("Password for %s: " % email)
+    return (email, password)
+
+  # If this is the dev_appserver, use fake authentication.
+  host = (options.host or options.server).lower()
+  if host == "localhost" or host.startswith("localhost:"):
+    email = options.email
+    if email is None:
+      email = "test@example.com"
+      logging.info("Using debug user %s.  Override with --email" % email)
+
+    server = HttpRpc(
+        options.server,
+        lambda: (email, "password"),
+        host_override=options.host,
+        extra_headers={"Cookie":
+                       'dev_appserver_login="%s:False"' % email})
+    # Don't try to talk to ClientLogin.
+    server.authenticated = True
+    return server
+
+  if options.save_cookies:
+    cookie_file = ".gerrit_cookies"
+  else:
+    cookie_file = None
+
+  return HttpRpc(options.server, GetUserCredentials,
+                 host_override=options.host,
+                 cookie_file=cookie_file)
+
+
+def RealMain(argv, data=None):
+  logging.basicConfig(format=("%(asctime).19s %(levelname)s %(filename)s:"
+                              "%(lineno)s %(message)s "))
+  os.environ['LC_ALL'] = 'C'
+  options, args = parser.parse_args(argv[1:])
+
+  global verbosity
+  verbosity = options.verbose
+  if verbosity >= 3:
+    logging.getLogger().setLevel(logging.DEBUG)
+  elif verbosity >= 2:
+    logging.getLogger().setLevel(logging.INFO)
+
+  srv = GetRpcServer(options)
+  review = Proxy(ReviewService_Stub(srv))
+
+  git_dir = GitVal("rev-parse","--git-dir")
+
+  revlist = GitVal("rev-list",
+                   "^" + options.base_commit,
+                   "HEAD").split("\n")
+
+  tmp_fd, tmp_bundle = mkstemp(".bundle", ".gpq", git_dir)
+  os.close(tmp_fd)
+
+  try:
+    RunGit("bundle", "create",
+           tmp_bundle,
+           "^" + options.base_commit,
+           "HEAD")
+    fd = open(tmp_bundle, "rb")
+
+    bundle_id = None
+    segment_id = 0
+    next_data = fd.read(MAX_SEGMENT_SIZE)
+
+    while len(next_data) > 0:
+      this_data = next_data
+      next_data = fd.read(MAX_SEGMENT_SIZE)
+      segment_id += 1
+    
+      if bundle_id is None:
+        req = UploadBundleRequest()
+        req.dest_project = options.dest_project
+        req.dest_branch = options.dest_branch
+        for c in revlist:
+          req.contained_object.append(c)
+      else:
+        req = UploadBundleContinue()
+        req.bundle_id = bundle_id
+        req.segment_id = segment_id
+
+      req.bundle_data = this_data
+      if len(next_data) > 0:
+        req.partial_upload = True
+      else:
+        req.partial_upload = False
+
+      if bundle_id is None:
+        rsp = review.UploadBundle(req)
+      else:
+        rsp = review.ContinueBundle(req)
+
+      if rsp.status_code == UploadBundleResponse.CONTINUE:
+        bundle_id = rsp.bundle_id
+      else:
+        print rsp
+        break
+  finally:
+    os.unlink(tmp_bundle)
+
+def main():
+  try:
+    RealMain(sys.argv)
+  except KeyboardInterrupt:
+    print
+    StatusUpdate("Interrupted.")
+    sys.exit(1)
+
+
+if __name__ == "__main__":
+  main()
diff --git a/webapp/index.yaml b/webapp/index.yaml
new file mode 100644
index 0000000..5ff815c
--- /dev/null
+++ b/webapp/index.yaml
@@ -0,0 +1,176 @@
+indexes:
+
+# AUTOGENERATED
+
+# This index.yaml is automatically updated whenever the dev_appserver
+# detects that a new type of query is run.  If you want to manage the
+# index.yaml file manually, remove the above marker line (the line
+# saying "# AUTOGENERATED").  If you want to manage some indexes
+# manually, move them above the marker line.  The index.yaml file is
+# automatically uploaded to the admin console when you next deploy
+# your application using appcfg.py.
+
+# Used 2 times in query history.
+- kind: Account
+  properties:
+  - name: cla_verified
+  - name: welcomed
+  - name: individual_cla_version
+
+# Unused in query history -- copied from input.
+- kind: Account
+  properties:
+  - name: welcomed
+  - name: cla_verified
+  - name: individual_cla_version
+
+# Used 826 times in query history.
+- kind: Branch
+  properties:
+  - name: status
+  - name: merge_submitted
+
+# Used 22 times in query history.
+- kind: BuildAttempt
+  properties:
+  - name: success
+  - name: started
+
+# Used 42 times in query history.
+- kind: Change
+  properties:
+  - name: claimed
+  - name: closed
+  - name: dest_project
+  - name: modified
+    direction: desc
+
+# Used 9 times in query history.
+- kind: Change
+  properties:
+  - name: closed
+  - name: modified
+    direction: desc
+
+# Used 108 times in query history.
+- kind: Change
+  properties:
+  - name: closed
+  - name: owner
+  - name: modified
+    direction: desc
+
+# Used 54 times in query history.
+- kind: Change
+  properties:
+  - name: closed
+  - name: reviewers
+  - name: modified
+    direction: desc
+
+# Unused in query history -- copied from input.
+- kind: Change
+  properties:
+  - name: modified
+    direction: desc
+
+# Unused in query history -- copied from input.
+- kind: Change
+  properties:
+  - name: owner
+  - name: modified
+    direction: desc
+
+# Unused in query history -- copied from input.
+- kind: Change
+  properties:
+  - name: reviewers
+  - name: modified
+    direction: desc
+
+# Used 8 times in query history.
+- kind: Comment
+  properties:
+  - name: left
+  - name: lineno
+  - name: patch
+  - name: date
+
+# Unused in query history -- copied from input.
+- kind: Comment
+  properties:
+  - name: left
+  - name: patch
+  - name: date
+
+# Used 13 times in query history.
+- kind: Comment
+  properties:
+  - name: patch
+  - name: date
+
+# Unused in query history -- copied from input.
+- kind: Comment
+  ancestor: yes
+
+# Unused in query history -- copied from input.
+- kind: Comment
+  ancestor: yes
+  properties:
+  - name: author
+  - name: draft
+
+# Used 99 times in query history.
+- kind: Message
+  properties:
+  - name: change
+  - name: date
+
+# Unused in query history -- copied from input.
+- kind: Message
+  ancestor: yes
+
+# Used 132 times in query history.
+- kind: Patch
+  properties:
+  - name: patchset
+  - name: filename
+
+# Unused in query history -- copied from input.
+- kind: Patch
+  ancestor: yes
+
+# Used 361 times in query history.
+- kind: PatchSet
+  properties:
+  - name: change
+  - name: id
+
+# Unused in query history -- copied from input.
+- kind: PatchSet
+  ancestor: yes
+
+# Unused in query history -- copied from input.
+- kind: PatchSetFilenames
+  ancestor: yes
+
+# Unused in query history -- copied from input.
+- kind: ReceivedBundle
+  properties:
+  - name: owner
+  - name: created
+    direction: desc
+
+# Used 900 times in query history.
+- kind: ReceivedBundle
+  properties:
+  - name: state
+  - name: created
+
+# Used 14 times in query history.
+- kind: ReceivedBundleSegment
+  ancestor: yes
+
+# Used 113 times in query history.
+- kind: ReviewStatus
+  ancestor: yes
diff --git a/webapp/main.py b/webapp/main.py
new file mode 100644
index 0000000..a6cfa93
--- /dev/null
+++ b/webapp/main.py
@@ -0,0 +1,128 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Main program for Gerrit.
+
+This is also a template for running a Django app under Google App
+Engine, especially when using a newer version of Django than provided
+in the App Engine standard library.
+
+The site-specific code is all in other files: urls.py, models.py,
+views.py, settings.py.
+"""
+
+# Standard Python imports.
+import os
+import sys
+import logging
+
+# Log a message each time this module get loaded.
+logging.info('Loading %s, app version = %s',
+             __name__, os.getenv('CURRENT_VERSION_ID'))
+
+# Delete the preloaded copy of Django.
+for key in [key for key in sys.modules if key.startswith('django')]:
+  del sys.modules[key]
+
+# Force sys.path to have our own directory first, so we can import from it.
+sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
+sys.path.insert(0, os.path.abspath('django.zip'))
+sys.path.insert(0, os.path.abspath('froofle.zip'))
+sys.path.insert(0, os.path.abspath('codereview.zip'))
+
+# Fail early if we can't import Django.  Log identifying information.
+import django
+logging.info('django.__file__ = %r, django.VERSION = %r',
+             django.__file__, django.VERSION)
+assert django.VERSION[0] >= 1,"This Django version is too old"
+
+# AppEngine imports.
+from google.appengine.ext.webapp import util
+
+# Helper to enter the debugger.  This passes in __stdin__ and
+# __stdout__, because stdin and stdout are connected to the request
+# and response streams.  You must import this from __main__ to use it.
+# (I tried to make it universally available via __builtin__, but that
+# doesn't seem to work for some reason.)
+def BREAKPOINT():
+  import pdb
+  p = pdb.Pdb(None, sys.__stdin__, sys.__stdout__)
+  p.set_trace()
+
+# Custom Django configuration.
+from django.conf import settings
+settings._target = None
+os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
+
+# Import various parts of Django.
+import django.core.handlers.wsgi
+import django.core.signals
+import django.db
+import django.dispatch.dispatcher
+import django.forms
+
+# Work-around to avoid warning about django.newforms in djangoforms.
+django.newforms = django.forms
+
+def log_exception(*args, **kwds):
+  """Django signal handler to log an exception."""
+  cls, err = sys.exc_info()[:2]
+  logging.exception('Exception in request: %s: %s', cls.__name__, err)
+
+# Log all exceptions detected by Django.
+django.core.signals.got_request_exception.connect(log_exception)
+
+# Unregister Django's default rollback event handler.
+django.core.signals.got_request_exception.disconnect(
+    django.db._rollback_on_exception)
+
+correct_path = None
+def real_main():
+  """Main program.
+  """
+  global correct_path
+
+  if correct_path is None:
+    correct_path = list(sys.path)
+  else:
+    sys.path[:] = correct_path
+
+  application = django.core.handlers.wsgi.WSGIHandler()
+  util.run_wsgi_app(application)
+
+def profile_main():
+  """Main program for profiling.
+  """
+  import cProfile, pstats, StringIO
+  prof = cProfile.Profile()
+  prof = prof.runctx('real_main()', globals(), locals())
+  stream = StringIO.StringIO()
+  stats = pstats.Stats(prof, stream=stream)
+  # stats.strip_dirs()  # Don't; too many modules are named __init__.py.
+  stats.sort_stats('time')  # 'time', 'cumulative' or 'calls'
+  stats.print_stats()  # Optional arg: how many to print
+  # The rest is optional.
+  # stats.print_callees()
+  # stats.print_callers()
+  print '\n<hr>'
+  print '<h1>Profile</h1>'
+  print '<pre>'
+  print stream.getvalue()[:1000000]
+  print '</pre>'
+
+# Set this to profile_main to enable profiling.
+main = real_main
+
+if __name__ == '__main__':
+  main()
diff --git a/webapp/settings.py b/webapp/settings.py
new file mode 100644
index 0000000..aed92fc
--- /dev/null
+++ b/webapp/settings.py
@@ -0,0 +1,40 @@
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Minimal Django settings."""
+
+import os
+
+APPEND_SLASH = False
+DEBUG = os.environ['SERVER_SOFTWARE'].startswith('Dev')
+INSTALLED_APPS = (
+    'codereview',
+)
+MIDDLEWARE_CLASSES = (
+    'codereview.middleware.NoCacheMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    'django.middleware.http.ConditionalGetMiddleware',
+    'codereview.middleware.AddUserToRequestMiddleware',
+    'codereview.middleware.ClearXsrfKeyMiddleware',
+)
+ROOT_URLCONF = 'codereview.urls'
+TEMPLATE_CONTEXT_PROCESSORS = ()
+TEMPLATE_DEBUG = DEBUG
+TEMPLATE_DIRS = (
+    os.path.join(os.path.dirname(__file__), 'templates'),
+    )
+TEMPLATE_LOADERS = (
+    'django.template.loaders.filesystem.load_template_source',
+    )
+
diff --git a/webapp/static/ajax.js b/webapp/static/ajax.js
new file mode 100644
index 0000000..bc80e9b
--- /dev/null
+++ b/webapp/static/ajax.js
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var PROGRESS_ELEMENT_ID = "ajax_progress";
+var CONNECTION_ERROR_ELEMENT_ID = "ajax_error";
+
+var g_filesLoading = 0;
+
+/**
+ * Asynchronously get a url that contains a json file, and call the callback
+ * when done.
+ *
+ * The callback should have the following prototype:
+ *  callback(boolean success, Object result)
+ *
+ * Returns an object that can be used to cancel the request.
+ */
+function get_file_contents(url, callback) {
+    var running = true;
+
+    function set_progress_visibility(visible) {
+        var progress = document.getElementById(PROGRESS_ELEMENT_ID);
+        if (progress) {
+            progress.style.display = visible ? "block" : "none";
+        }
+    }
+
+    show_bad_connection_error(null);
+
+    var req;
+    if (window.XMLHttpRequest) {
+        req = new XMLHttpRequest();
+    } else if (window.ActiveXObject) {
+        req = new ActiveXObject("Microsoft.XMLHTTP");
+    } else {
+        return;
+    }
+
+    g_filesLoading++;
+    if (g_filesLoading > 0) {
+        set_progress_visibility(true);
+    }
+
+    req.open("GET", url, true);
+
+    req.onreadystatechange = function() {
+        if (req.readyState == 4) {
+            if (req.status == 200) {
+                callback(true, req.responseText);
+            } else {
+                callback(false, null);
+            }
+            g_filesLoading--;
+            if (g_filesLoading == 0) {
+                set_progress_visibility(false);
+            }
+            running = false;
+        }
+    };
+
+    req.send(null);
+
+
+    var controller = new Object();
+    controller.cancel = function() {
+        req.abort();
+        if (running) {
+            g_filesLoading--;
+            if (g_filesLoading == 0) {
+                set_progress_visibility(false);
+            }
+            running = false;
+        }
+    };
+    return controller;
+}
+
+/**
+ * like get_file_contents, but converts the result to a json object
+ */
+function get_json(url, callback) {
+    return get_file_contents(url, function(success, data) {
+                callback(success, eval("(" + data + ")"));
+            });
+}
+
+function show_bad_connection_error(err) {
+    var errorDiv = document.getElementById(CONNECTION_ERROR_ELEMENT_ID);
+    if (errorDiv) {
+        if (err) {
+            errorDiv.style.display = "block";
+        } else {
+            errorDiv.style.display = "none";
+        }
+    }
+}
+
+
diff --git a/webapp/static/android_heart.png b/webapp/static/android_heart.png
new file mode 100644
index 0000000..2b05dbd
--- /dev/null
+++ b/webapp/static/android_heart.png
Binary files differ
diff --git a/webapp/static/application_version b/webapp/static/application_version
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/static/application_version
diff --git a/webapp/static/bug.png b/webapp/static/bug.png
new file mode 100644
index 0000000..e832ce9
--- /dev/null
+++ b/webapp/static/bug.png
Binary files differ
diff --git a/webapp/static/check.png b/webapp/static/check.png
new file mode 100644
index 0000000..3e7db83
--- /dev/null
+++ b/webapp/static/check.png
Binary files differ
diff --git a/webapp/static/closedtriangle.gif b/webapp/static/closedtriangle.gif
new file mode 100644
index 0000000..d9e63a5
--- /dev/null
+++ b/webapp/static/closedtriangle.gif
Binary files differ
diff --git a/webapp/static/corp_cla.html b/webapp/static/corp_cla.html
new file mode 100644
index 0000000..1808425
--- /dev/null
+++ b/webapp/static/corp_cla.html
@@ -0,0 +1,110 @@
+<html>
+<body>
+<div style="text-align: left;">
+
+
+<font
+size="4">Android Open Source Project<br>Corporate Contributor License Grant ("Grant"), v1.0</font></h2><h3 class="title" style="text-align: center;"><a href="http://code.google.com/legal/corporate-cla-v1.0.html" style="color: rgb(85, 26, 139);"><span style="background-color: rgb(255, 255, 0);">http://code.google.com/legal/corporate-cla-v1.0.html</span></a></h3><p>In order to clarify the intellectual property license granted with
+Contributions from any person or entity, the Android Open Source
+Project (the "Project") must have a Contributor License Grant
+("Grant") on file that has been signed by each Contributor, indicating
+agreement to the license terms below. This license is for your
+protection as a Contributor as well as the protection of the Project
+and the Android Open Source Project Leads (the "Project Leads");
+it does not change your rights to use your own Contributions for
+any other purpose.</p><p>This version of the Grant allows an entity
+(the "Corporation") to submit Contributions to the Project Leads,
+to authorize Contributions submitted by its designated employees
+to the Project Leads, and to grant copyright and patent licenses
+thereto. If you have not already done so, please complete and send
+an original signed Grant to</p><blockquote>Google Inc.<br>Attn:
+Open Source Program Office<br>1600 Amphitheatre Pkwy<br>Building
+43<br>Mountain View, CA 94043<br>U.S.A.<br></blockquote><p>Scanned
+agreements may also be emailed in PDF form to
+cla-submissions@google.com</p><p>If necessary, you may send it by
+facsimile to (650) 887-1625. Please read this document carefully
+before signing and keep a copy for your records.</p><pre style="border: 1px solid silver; margin: 2em; padding: 0.5em; color: rgb(0, 112, 0); font-size: 100%; background-color: rgb(245, 245, 245);">Corporation name: ___________________________________________________<br><br><br><br>Corporation address: ________________________________________________<br><br><br><br>_____________________________________________________________________<br><br><br><br>_____________________________________________________________________<br><br><br><br>Point of Contact: ___________________________________________________<br><br><br><br>E-Mail: ____________________________________________________________<br><br><br><br>Telephone: _____________________<br><br><br><br>Fax: ___________________________<br><br></pre><p>You accept and agree
+to the following terms and conditions for Your present and future
+Contributions submitted to the Project. Except for the license
+granted herein to the Project Leads and recipients of software
+distributed by the Project Leads, You reserve all right, title, and
+interest in and to Your Contributions.</p><ol><li style="margin-bottom:
+0.25em;"><p>Definitions.</p><p>"You" (or "Your") shall mean the
+copyright owner or legal entity authorized by the copyright owner
+that is making this Grant to the Project Leads. For legal entities,
+the entity making a Contribution and all other entities that control,
+are controlled by, or are under common control with that entity are
+considered to be a single Contributor. For the purposes of this
+definition, "control" means (i) the power, direct or indirect, to
+cause the direction or management of such entity, whether by contract
+or otherwise, or (ii) ownership of fifty percent (50%) or more of
+the outstanding shares, or (iii) beneficial ownership of such
+entity.</p><p>"Contribution" shall mean the code, documentation or
+other original works of authorship expressly identified in Schedule
+B, as well as any original work of authorship, including any
+modifications or additions to an existing work, that is intentionally
+submitted by You to the Project Leads for inclusion in, or documentation
+of, any of the products managed or maintained by the Project Leads
+(the "Work"). For the purposes of this definition, "submitted" means
+any form of electronic, verbal, or written communication sent to
+the Project Leads or their representatives, including but not limited
+to communication on electronic mailing lists, source code control
+systems, and issue tracking systems that are managed by, or on
+behalf of, the Project Leads for the purpose of discussing and
+improving the Work, but excluding communication that is conspicuously
+marked or otherwise designated in writing by You as "Not a
+Contribution."</p></li><li style="margin-bottom: 0.25em;"><p>Grant
+of Copyright License. Subject to the terms and conditions of this
+Grant, You hereby grant to the Project Leads and to recipients of
+software distributed by the Project Leads a perpetual, worldwide,
+non-exclusive, no-charge, royalty-free, irrevocable copyright license
+to reproduce, prepare derivative works of, publicly display, publicly
+perform, sublicense, and distribute Your Contributions and such
+derivative works.</p></li><li style="margin-bottom: 0.25em;"><p>Grant
+of Patent License. Subject to the terms and conditions of this
+Grant, You hereby grant to the Project Leads and to recipients of
+software distributed by the Project Leads a perpetual, worldwide,
+non-exclusive, no-charge, royalty-free, irrevocable (except as
+stated in this section) patent license to make, have made, use,
+offer to sell, sell, import, and otherwise transfer the Work, where
+such license applies only to those patent claims licensable by You
+that are necessarily infringed by Your Contribution(s) alone or by
+combination of Your Contribution(s) with the Work to which such
+Contribution(s) was submitted. If any entity institutes patent
+litigation against You or any other entity (including a cross-claim
+or counterclaim in a lawsuit) alleging that your Contribution, or
+the Work to which you have contributed, constitutes direct or
+contributory patent infringement, then any patent licenses granted
+to that entity under this Grant for that Contribution or Work shall
+terminate as of the date such litigation is filed.</p></li><li
+style="margin-bottom: 0.25em;"><p>You represent that You are legally
+entitled to grant the above license. You represent further that
+each employee of the Corporation designated on Schedule A below (or
+in a subsequent written modification to that Schedule) is authorized
+to submit Contributions on behalf of the Corporation.</p></li><li
+style="margin-bottom: 0.25em;"><p>You represent that each of Your
+Contributions is Your original creation (see section 7 for submissions
+on behalf of others).</p></li><li style="margin-bottom: 0.25em;"><p>You
+are not expected to provide support for Your Contributions, except
+to the extent You desire to provide support. You may provide support
+for free, for a fee, or not at all. Unless required by applicable
+law or agreed to in writing, You provide Your Contributions on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+express or implied, including, without limitation, any warranties
+or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS
+FOR A PARTICULAR PURPOSE.</p></li><li style="margin-bottom: 0.25em;"><p>Should You wish to submit work that is not Your original
+creation, You may submit it to the Project Leads separately from
+any Contribution, identifying the complete details of its source
+and of any license or other restriction (including, but not limited
+to, related patents, trademarks, and license agreements) of which
+you are personally aware, and conspicuously marking the work as
+"Submitted on behalf of a third-party: [named here]". <span
+style="background-color: rgb(255, 255, 0);"></span><span
+style="background-color: rgb(255, 255, 0);"><br></span></p></li><li
+style="margin-bottom: 0.25em;"><p>It is your responsibility to
+notify the Project Leads when any change is required to the list
+of designated employees authorized to submit Contributions on behalf
+of the Corporation, or to the Corporation's Point of Contact with
+the Project.</p></li></ol><pre style="border: 1px solid silver; margin: 2em; padding: 0.5em; color: rgb(0, 112, 0); font-size: 100%; background-color: rgb(245, 245, 245);"> <br><br><br>Please sign: __________________________________   Date: _______________<br><br> <br><br>Title: _______________________________________________________________<br><br> <br><br>Corporation: __________________________________________________________<br><br></pre><h3><font size="3">Schedule A</font></h3>[Initial list of designated employees.  NB: authorization is not tied to particular Contributions.]<h3><font size="3">Schedule B</font></h3>[Identification of optional concurrent software grant. Would be left blank or omitted if there is no concurrent software grant.]<br>
+</body>
+</html>
diff --git a/webapp/static/customLogo.png b/webapp/static/customLogo.png
new file mode 100644
index 0000000..87a7f38
--- /dev/null
+++ b/webapp/static/customLogo.png
Binary files differ
diff --git a/webapp/static/favicon.ico b/webapp/static/favicon.ico
new file mode 100644
index 0000000..bc024d6
--- /dev/null
+++ b/webapp/static/favicon.ico
Binary files differ
diff --git a/webapp/static/opentriangle.gif b/webapp/static/opentriangle.gif
new file mode 100644
index 0000000..fefe684
--- /dev/null
+++ b/webapp/static/opentriangle.gif
Binary files differ
diff --git a/webapp/static/robots.txt b/webapp/static/robots.txt
new file mode 100644
index 0000000..c033917
--- /dev/null
+++ b/webapp/static/robots.txt
@@ -0,0 +1,8 @@
+# Directions for web crawlers.
+# See http://www.robotstxt.org/wc/norobots.html.
+
+User-agent: HTTrack
+User-agent: puf
+User-agent: MSIECrawler
+User-agent: Nutch
+Disallow: /
diff --git a/webapp/static/script.js b/webapp/static/script.js
new file mode 100644
index 0000000..463e24c
--- /dev/null
+++ b/webapp/static/script.js
@@ -0,0 +1,2805 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Generic helpers
+
+/**
+ * Create a new XMLHttpRequest in a cross-browser-compatible way.
+ * @return XMLHttpRequest object
+ */
+function M_getXMLHttpRequest() {
+  try {
+    return new XMLHttpRequest();
+  } catch (e) { }
+
+  try {
+    return new ActiveXObject("Msxml2.XMLHTTP");
+  } catch (e) { }
+
+  try {
+    return new ActiveXObject("Microsoft.XMLHTTP");
+  } catch (e) { }
+
+  return null;
+}
+
+/**
+ * Finds the element's parent in the DOM tree.
+ * @param {Element} element The element whose parent we want to find
+ * @return The parent element of the given element
+ */
+function M_getParent(element) {
+  if (element.parentNode) {
+    return element.parentNode;
+  } else if (element.parentElement) {
+    // IE compatibility. Why follow standards when you can make up your own?
+    return element.parentElement;
+  }
+  return null;
+}
+
+/**
+ * Finds the event's target in a way that works on all browsers.
+ * @param {Event} e The event object whose target we want to find
+ * @return The element receiving the event
+ */
+function M_getEventTarget(e) {
+  var src = e.srcElement ? e.srcElement : e.target;
+  return src;
+}
+
+/**
+ * Function to determine if we are in a KHTML-based browser(Konq/Safari).
+ * @return Boolean of whether we are in a KHTML browser
+ */
+function M_isKHTML() {
+  var agt = navigator.userAgent.toLowerCase();
+  return (agt.indexOf("safari") != -1) || (agt.indexOf("khtml") != -1);
+}
+
+/**
+ * Function to determine if we are running in an IE browser.
+ * @return Boolean of whether we are running in IE
+ */
+function M_isIE() {
+  return (navigator.userAgent.toLowerCase().indexOf("msie") != -1) &&
+         !window.opera;
+}
+
+/**
+ * Stop the event bubbling in a browser-independent way. Sometimes required
+ * when it is not easy to return true when an event is handled.
+ * @param {Window} win The window in which this event is happening
+ * @param {Event} e The event that we want to cancel
+ */
+function M_stopBubble(win, e) {
+  if (!e) {
+    e = win.event;
+  }
+  e.cancelBubble = true;
+  if (e.stopPropagation) {
+    e.stopPropagation();
+  }
+}
+
+/**
+ * Return distance in pixels from the top of the document to the given element.
+ * @param {Element} element The element whose offset we want to find
+ * @return Integer value of the height of the element from the top
+ */
+function M_getPageOffsetTop(element) {
+  var y = element.offsetTop;
+  if (element.offsetParent != null) {
+    y += M_getPageOffsetTop(element.offsetParent);
+  }
+  return y;
+}
+
+/**
+ * Return distance in pixels of the given element from the left of the document.
+ * @param {Element} element The element whose offset we want to find
+ * @return Integer value of the horizontal position of the element
+ */
+function M_getPageOffsetLeft(element) {
+  var x = element.offsetLeft;
+  if (element.offsetParent != null) {
+    x += M_getPageOffsetLeft(element.offsetParent);
+  }
+  return x;
+}
+
+/**
+ * Find the height of the window viewport.
+ * @param {Window} win The window whose viewport we would like to measure
+ * @return Integer value of the height of the given window
+ */
+function M_getWindowHeight(win) {
+  return M_getWindowPropertyByBrowser_(win, M_getWindowHeightGetters_);
+}
+
+/**
+ * Find the vertical scroll position of the given window.
+ * @param {Window} win The window whose scroll position we want to find
+ * @return Integer value of the scroll position of the given window
+ */
+function M_getScrollTop(win) {
+  return M_getWindowPropertyByBrowser_(win, M_getScrollTopGetters_);
+}
+
+/**
+ * Scroll the target element into view at 1/3rd of the window height only if
+ * the scrolling direction matches the direction that was asked for.
+ * @param {Window} win The window in which the element resides
+ * @param {Element} element The element that we want to bring into view
+ * @param {Integer} direction Positive for scroll down, negative for scroll up
+ */
+function M_scrollIntoView(win, element, direction) {
+  var elTop = M_getPageOffsetTop(element);
+  var winHeight = M_getWindowHeight(win);
+  var targetScroll = elTop - winHeight / 3;
+  var scrollTop = M_getScrollTop(win);
+
+  if ((direction > 0 && scrollTop < targetScroll) ||
+      (direction < 0 && scrollTop > targetScroll)) {
+    win.scrollTo(M_getPageOffsetLeft(element), targetScroll);
+  }
+}
+
+/**
+ * Returns whether the element is visible.
+ * @param {Window} win The window that the element resides in
+ * @param {Element} element The element whose visibility we want to determine
+ * @return Boolean of whether the element is visible in the window or not
+ */
+function M_isElementVisible(win, element) {
+  var elTop = M_getPageOffsetTop(element);
+  var winHeight = M_getWindowHeight(win);
+  var winTop = M_getScrollTop(win);
+  if (elTop < winTop || elTop > winTop + winHeight) {
+    return false;
+  }
+  return true;
+}
+
+// Cross-browser compatibility quirks and methodology borrowed from
+// common.js
+
+var M_getWindowHeightGetters_ = {
+  ieQuirks_: function(win) {
+    return win.document.body.clientHeight;
+  },
+  ieStandards_: function(win) {
+    return win.document.documentElement.clientHeight;
+  },
+  dom_: function(win) {
+    return win.innerHeight;
+  }
+};
+
+var M_getScrollTopGetters_ = {
+  ieQuirks_: function(win) {
+    return win.document.body.scrollTop;
+  },
+  ieStandards_: function(win) {
+    return win.document.documentElement.scrollTop;
+  },
+  dom_: function(win) {
+    return win.pageYOffset;
+  }
+};
+
+/**
+ * Slightly modified from common.js: Konqueror has the CSS1Compat property
+ * but requires the standard DOM functionlity, not the IE one.
+ */
+function M_getWindowPropertyByBrowser_(win, getters) {
+  try {
+    if (!M_isKHTML() && "compatMode" in win.document &&
+        win.document.compatMode == "CSS1Compat") {
+      return getters.ieStandards_(win);
+    } else if (M_isIE()) {
+      return getters.ieQuirks_(win);
+    }
+  } catch (e) {
+    // Ignore for now and fall back to DOM method
+  }
+
+  return getters.dom_(win);
+}
+
+// Global search box magic (global.html)
+
+/**
+ * Handle the onblur action of the search box, replacing it with greyed out
+ * instruction text when it is empty.
+ * @param {Element} element The search box element
+ */
+function M_onSearchBlur(element) {
+  var defaultMsg = "Enter a changelist#, user, or group";
+  if (element.value.length == 0 || element.value == defaultMsg) {
+    element.style.color = "gray";
+    element.value = defaultMsg;
+  } else {
+    element.style.color = "";
+  }
+}
+
+/**
+ * Handle the onfocus action of the search box, emptying it out if no new text
+ * was entered.
+ * @param {Element} element The search box element
+ */
+function M_onSearchFocus(element) {
+  if (element.style.color == "gray") {
+    element.style.color = "";
+    element.value = "";
+  }
+}
+
+// Inline diffs (changelist.html)
+
+/**
+ * Creates an iframe to load the diff in the background and when that's done,
+ * calls a function to transfer the contents of the iframe into the current DOM.
+ * @param {Integer} suffix The number associated with that diff
+ * @param {String} url The URL that the diff should be fetched from
+ * @return false (for event bubbling purposes)
+ */
+function M_showInlineDiff(suffix, url) {
+  var hide = document.getElementById("hide-" + suffix);
+  var show = document.getElementById("show-" + suffix);
+  var frameDiv = document.getElementById("frameDiv-" + suffix);
+  var dumpDiv = document.getElementById("dumpDiv-" + suffix);
+  var diffTR = document.getElementById("diffTR-" + suffix);
+  var hideAll = document.getElementById("hide-alldiffs");
+  var showAll = document.getElementById("show-alldiffs");
+
+  /* Twiddle the "show/hide all diffs" link */
+  if (hide.style.display != "") {
+    M_CL_hiddenInlineDiffCount -= 1;
+    if (M_CL_hiddenInlineDiffCount == M_CL_maxHiddenInlineDiffCount) {
+      showAll.style.display = "inline";
+      hideAll.style.display = "none";
+    } else {
+      showAll.style.display = "none";
+      hideAll.style.display = "inline";
+    }
+  }
+
+  hide.style.display = "";
+  show.style.display = "none";
+  dumpDiv.style.display = "block"; // XXX why not ""?
+  diffTR.style.display = "";
+  if (!frameDiv.innerHTML) {
+    if (M_isKHTML()) {
+      frameDiv.style.display = "block"; // XXX why not ""?
+    }
+    frameDiv.innerHTML = "<iframe src='" + url + "'" +
+    " onload='M_dumpInlineDiffContent(this, \"" + suffix + "\")'"+
+    "height=1>your browser does not support iframes!</iframe>";
+  }
+  return false;
+}
+
+/**
+ * Hides the diff that was retrieved with M_showInlineDiff.
+ * @param {Integer} suffix The number associated with the diff we want to hide
+ */
+function M_hideInlineDiff(suffix) {
+  var hide = document.getElementById("hide-" + suffix);
+  var show = document.getElementById("show-" + suffix);
+  var dumpDiv = document.getElementById("dumpDiv-" + suffix);
+  var diffTR = document.getElementById("diffTR-" + suffix);
+  var hideAll = document.getElementById("hide-alldiffs");
+  var showAll = document.getElementById("show-alldiffs");
+
+  /* Twiddle the "show/hide all diffs" link */
+  if (hide.style.display != "none") {
+    M_CL_hiddenInlineDiffCount += 1;
+    if (M_CL_hiddenInlineDiffCount == M_CL_maxHiddenInlineDiffCount) {
+      showAll.style.display = "inline";
+      hideAll.style.display = "none";
+    } else {
+      showAll.style.display = "none";
+      hideAll.style.display = "inline";
+    }
+  }
+
+  hide.style.display = "none";
+  show.style.display = "inline";
+  diffTR.style.display = "none";
+  dumpDiv.style.display = "none";
+  return false;
+}
+
+/**
+ * Dumps the content of the given iframe into the appropriate div in order
+ * for the diff to be displayed.
+ * @param {Element} iframe The IFRAME that contains the diff data
+ * @param {Integer} suffix The number associated with the diff
+ */
+function M_dumpInlineDiffContent(iframe, suffix) {
+  var dumpDiv = document.getElementById("dumpDiv-" + suffix);
+  dumpDiv.style.display = "block"; // XXX why not ""?
+  dumpDiv.innerHTML = iframe.contentWindow.document.body.innerHTML;
+  // TODO: The following should work on all browsers instead of the
+  // innerHTML hack above. At this point I don't remember what the exact
+  // problem was, but it didn't work for some reason.
+  // dumpDiv.appendChild(iframe.contentWindow.document.body);
+  if (M_isKHTML()) {
+    var frameDiv = document.getElementById("frameDiv-" + suffix);
+    frameDiv.style.display = "none";
+  }
+}
+
+/**
+ * Goes through all the diffs and triggers the onclick action on them which
+ * should start the mechanism for displaying them.
+ * @param {Integer} num The number of diffs to display (0-indexed)
+ */
+function M_showAllDiffs(num) {
+  for (var i = 0; i < num; i++) {
+    var link = document.getElementById('show-' + i);
+    // Since the user may not have JS, the template only shows the diff inline
+    // for the onclick action, not the href. In order to activate it, we must
+    // call the link's onclick action.
+    if (link.className.indexOf("reverted") == -1) {
+      link.onclick();
+    }
+  }
+}
+
+/**
+ * Goes through all the diffs and hides them by triggering the hide link.
+ * @param {Integer} num The number of diffs to hide (0-indexed)
+ */
+function M_hideAllDiffs(num) {
+  for (var i = 0; i < num; i++) {
+    var link = document.getElementById('hide-' + i);
+    // If the user tries to hide, that means they have JS, which in turn means
+    // that we can just set href in the href of the hide link.
+    link.onclick();
+  }
+}
+
+// Inline comment submission forms (changelist.html, file.html)
+
+/**
+ * Changes the elements display style to "" which renders it visible.
+ * @param {String} id The id of the target element
+ */
+function M_showElement(id) {
+  var elt = document.getElementById(id);
+  if (elt) elt.style.display = "";
+}
+
+/**
+ * Changes the elements display style to "none" which renders it invisible.
+ * @param {String} id The id of the target element
+ */
+function M_hideElement(id) {
+  var elt = document.getElementById(id);
+  if (elt) elt.style.display = "none";
+}
+
+/**
+ * Toggle the visibility of a section. The little indicator triangle will also
+ * be toggled.
+ * @param {String} id The id of the target element
+ */
+var isSectionOpen = new Array();
+function M_toggleSection(id) {
+  var sectionStyle = document.getElementById(id).style;
+  var pointerStyle = document.getElementById(id + "-pointer").style;
+
+  if (sectionStyle.display == "none") {
+    sectionStyle.display = "";
+    pointerStyle.backgroundImage = "url('/static/opentriangle.gif')";
+    isSectionOpen[id] = true;
+  } else {
+    sectionStyle.display = "none";
+    pointerStyle.backgroundImage = "url('/static/closedtriangle.gif')";
+    isSectionOpen[id] = false;
+  }
+}
+
+var patchSetState = new Array();
+function M_onPatchSetReady() {
+  if (http_request.readyState != 4)
+    return;
+
+  var id = http_request.div_id;
+  var s = document.getElementById(id);
+  if (http_request.status == 200) {
+	patchSetState[id] = 1;
+    s.innerHTML = http_request.responseText;
+  } else {
+	patchSetState[id] = -1;
+    s.innerHTML = '<div style="color:red">'
+	  + 'Could not load the patchset.<br />'
+	  + http_request.status
+	  + '</div>';
+  }
+}
+
+/**
+ * Toggle the visiblity of a PatchSet section.
+ * @param {String} change_id the id of the change.
+ * @param {String} patchset_id the id of the patchset.
+ */
+function M_togglePatchSetSection(change_id, patchset_id) {
+  var id = 'ps-' + patchset_id;
+  M_toggleSection(id);
+  if (isSectionOpen[id]) {
+    if (patchSetState[id] == 1)
+      return;
+
+    var s = document.getElementById(id);
+    http_request = M_getXMLHttpRequest();
+    if (!http_request) {
+      patchSetState[id] = -1;
+      s.innerHTML = '<div style="color:red">Could not load.</div>';
+      return;
+    }
+
+    s.innerHTML = '<div>Loading...</div>';
+    var u = '/' + change_id + '/ajax_patchset/' + patchset_id;
+    http_request.open('GET', u, true);
+    http_request.onreadystatechange = M_onPatchSetReady;
+    http_request.div_id = id;
+    http_request.send(null);
+  }
+}
+
+function M_onPagedReady () {
+  if (http_request.readyState != 4)
+    return;
+
+  var section = http_request.section_name;
+  var links = document.getElementById('paged-' + section + '-links');
+  var progs = document.getElementById('paged-' + section + '-progress');
+
+  if (http_request.status != 200) {
+    links.style.display = '';
+    progs.style.display = 'none';
+    return;
+  }
+
+  var t = document.getElementById(http_request.table_id);
+  var last;
+  for (var i = 0; i < t.rows.length;) {
+    var r = t.rows[i];
+    if (r.className.indexOf('pagedrow-'+section) >= 0) {
+      t.deleteRow(i);
+      last = t.rows[i];
+    } else {
+      i++;
+    }
+  }
+
+  var text = http_request.responseText;
+  var lf = text.indexOf('\n');
+  var info = text.substring(0,lf).split(',');
+
+  var tmp = document.createElement('table');
+  tmp.innerHTML = text.substring(lf + 1);
+  while (0 < tmp.rows.length) {
+    if (last)
+      last.parentNode.insertBefore(tmp.rows[0], last);
+    else
+      t.tBodies[0].appendChild(tmp.rows[0]);
+  }
+
+  var opos = document.getElementById('paged-'+section+'-opos');
+  var oend = document.getElementById('paged-'+section+'-oend');
+
+  var opre = document.getElementById('paged-'+section+'-opre');
+  var onex = document.getElementById('paged-'+section+'-onex');
+
+  var prev = document.getElementById('paged-'+section+'-prev');
+  var next = document.getElementById('paged-'+section+'-next');
+
+  opos.innerHTML = info[0];
+  oend.innerHTML = info[1];
+  opre.innerHTML = info[2];
+  onex.innerHTML = info[3];
+
+  prev.style.display = info[2]!='' && parseInt(info[2]) ? '' : 'none';
+  next.style.display = info[3]!='' && parseInt(info[3]) ? '' : 'none';
+
+  links.style.display = '';
+  progs.style.display = 'none';
+
+  if (http_request.after_update)
+    http_request.after_update();
+}
+
+function M_PagedExec(base_url, section, table_id, offset, after) {
+  http_request = M_getXMLHttpRequest();
+  if (!http_request)
+    return;
+
+  var links = document.getElementById('paged-' + section + '-links');
+  var progs = document.getElementById('paged-' + section + '-progress');
+
+  links.style.display = 'none';
+  progs.style.display = '';
+
+  http_request.open('GET', base_url + '/' + offset, true);
+  http_request.onreadystatechange = M_onPagedReady;
+  http_request.section_name = section;
+  http_request.table_id = table_id;
+  http_request.after_update = after;
+  http_request.send(null);
+}
+
+function M_PagedPrev(base_url, section, table_id, after) {
+  var p = document.getElementById('paged-' + section + '-opre');
+  M_PagedExec(base_url, section, table_id, p.textContent, after);
+}
+
+function M_PagedNext(base_url, section, table_id, after) {
+  var p = document.getElementById('paged-' + section + '-onex');
+  M_PagedExec(base_url, section, table_id, p.textContent, after);
+}
+
+/**
+ * Toggle the visibility of the "Quick LGTM" link on the changelist page.
+ * @param {String} id The id of the target element
+ */
+function M_toggleQuickLGTM(id) {
+  M_toggleSection(id);
+  window.scrollTo(0, document.body.offsetHeight);
+}
+
+// Comment expand/collapse
+
+/**
+ * Toggles whether the specified changelist comment is expanded/collapsed.
+ * @param {Integer} cid The comment id, 0-indexed
+ */
+function M_switchChangelistComment(cid) {
+  M_switchCommentCommon_('cl', String(cid));
+}
+
+/**
+ * Toggles whether the specified file comment is expanded/collapsed.
+ * @param {Integer} cid The comment id, 0-indexed
+ */
+function M_switchFileComment(cid) {
+  M_switchCommentCommon_('file', String(cid));
+}
+
+/**
+ * Toggles whether the specified inline comment is expanded/collapsed.
+ * @param {Integer} cid The comment id, 0-indexed
+ * @param {Integer} lineno The lineno associated with the comment
+ * @param {String} side The side (a/b) associated with the comment
+ */
+function M_switchInlineComment(cid, lineno, side) {
+  M_switchCommentCommon_('inline', String(cid) + "-" + lineno + "-" + side);
+}
+
+/**
+ * Toggles whether the specified comment is expanded/collapsed on
+ * comment_form.html.
+ * @param {Integer} cid The comment id, 0-indexed
+ */
+function M_switchReviewComment(cid) {
+  M_switchCommentCommon_('cl', String(cid));
+}
+
+/**
+ * Toggle whether a moved_out region is expanded/collapsed.
+ * @param {Integer} start_line the line number of the first line to toggle
+ * @param {Integer} end_line the line number of the first line not to toggle
+ * We toggle all lines in [first_line, end_line).
+ */
+function M_switchMoveOut(start_line, end_line) {
+  for (var x = start_line; x < end_line; x++) {
+    var regionname = "move_out-" + x;
+    var region = document.getElementById(regionname);
+    if (region.style.display == "none") {
+      region.style.display = "";
+    } else {
+      region.style.display = "none";
+    }
+  }
+  hookState.gotoHook(0);
+}
+
+/**
+ * Used to expand all comments, hiding the preview and showing the comment.
+ * @param {String} prefix The level of the comment -- one of
+ *                        ('cl', 'file', 'inline')
+ * @param {Integer} num_comments The number of comments to show
+ */
+function M_showAllComments(prefix, num_comments) {
+  for (var i = 0; i < num_comments; i++) {
+    document.getElementById(prefix + "-preview-" + i).style.visibility =
+        "hidden";
+    document.getElementById(prefix + "-comment-" + i).style.display = "";
+  }
+}
+
+/**
+ * Used to collpase all comments, showing the preview and hiding the comment.
+ * @param {String} prefix The level of the comment -- one of
+ *                        ('cl', 'file', 'inline')
+ * @param {Integer} num_comments The number of comments to hide
+ */
+function M_hideAllComments(prefix, num_comments) {
+  for (var i = 0; i < num_comments; i++) {
+    document.getElementById(prefix + "-preview-" + i).style.visibility =
+        "visible";
+    document.getElementById(prefix + "-comment-" + i).style.display = "none";
+  }
+}
+
+// Common methods for comment handling (changelist.html, file.html,
+// comment_form.html)
+
+/**
+ * Toggles whether the specified comment is expanded/collapsed. Works in
+ * the review form.
+ * @param {String} prefix The prefix of the comment element name.
+ * @param {String} suffix The suffix of the comment element name.
+ */
+function M_switchCommentCommon_(prefix, suffix) {
+  prefix && (prefix +=  '-');
+  suffix && (suffix =  '-' + suffix);
+  var previewSpan = document.getElementById(prefix + 'preview' + suffix);
+  var commentDiv = document.getElementById(prefix + 'comment' + suffix);
+  if (!previewSpan || !commentDiv) {
+    alert('Failed to find comment element: ' +
+          prefix + 'comment' + suffix + '. Please send ' +
+          'this message with the URL to the app owner');
+    return;
+  }
+  if (previewSpan.style.visibility == 'hidden') {
+    previewSpan.style.visibility = 'visible';
+    commentDiv.style.display = 'none';
+  } else {
+    previewSpan.style.visibility = 'hidden';
+    commentDiv.style.display = '';
+  }
+}
+
+/**
+ * Expands all inline comments.
+ */
+function M_expandAllInlineComments() {
+  M_showAllInlineComments();
+  var comments = document.getElementsByName("inline-comment");
+  var commentsLength = comments.length;
+  for (var i = 0; i < commentsLength; i++) {
+    comments[i].style.display = "";
+  }
+  var previews = document.getElementsByName("inline-preview");
+  var previewsLength = previews.length;
+  for (var i = 0; i < previewsLength; i++) {
+    previews[i].style.display = "none";
+  }
+}
+
+/**
+ * Collapses all inline comments.
+ */
+function M_collapseAllInlineComments() {
+  M_showAllInlineComments();
+  var comments = document.getElementsByName("inline-comment");
+  var commentsLength = comments.length;
+  for (var i = 0; i < commentsLength; i++) {
+    comments[i].style.display = "none";
+  }
+  var previews = document.getElementsByName("inline-preview");
+  var previewsLength = previews.length;
+  for (var i = 0; i < previewsLength; i++) {
+    previews[i].style.display = "";
+  }
+}
+
+// Non-inline comment actions
+
+/**
+ * Sets up a reply form for a given comment (non-inline).
+ * @param {String} author The author of the comment being replied to
+ * @param {String} written_time The formatted time when that comment was written
+ * @param {String} ccs A string containing the ccs to default to
+ * @param {Integer} cid The number of the comment being replied to, so that the
+ *                      form may be placed in the appropriate location
+ * @param {String} prefix The level of the comment -- one of
+ *                        ('cl', 'file', 'inline')
+ * @param {Integer} opt_lineno (optional) The line number the comment should be
+ *                                        attached to
+ * @param {String} opt_snapshot (optional) The snapshot ID of the comment being
+ *                                         replied to
+ */
+function M_replyToComment(author, written_time, ccs, cid, prefix, opt_lineno,
+                          opt_snapshot) {
+  var form = document.getElementById("comment-form-" + cid);
+  if (!form) {
+    form = document.getElementById("dareplyform");
+    if (!form) {
+      form = document.getElementById("daform"); // XXX for file.html
+    }
+    form = form.cloneNode(true);
+    form.name = form.id = "comment-form-" + cid;
+    M_createResizer_(form, cid);
+    document.getElementById(prefix + "-comment-" + cid).appendChild(form);
+  }
+  form.style.display = "";
+  form.reply_to.value = cid;
+  form.ccs.value = ccs;
+  if (typeof opt_lineno != 'undefined' && typeof opt_snapshot != 'undefined') {
+    form.lineno.value = opt_lineno;
+    form.snapshot.value = opt_snapshot;
+  }
+  form.text.value = "On " + written_time + ", " + author + " wrote:\n";
+  var divs = document.getElementsByName("comment-text-" + cid);
+  M_setValueFromDivs(divs, form.text);
+  form.text.value += "\n";
+  form.text.focus();
+}
+
+
+/**
+/* TODO(andi): docstring
+ */
+function M_replyToMessage(message_id, written_time, author) {
+  var form = document.getElementById('message-reply-form');
+  form = form.cloneNode(true);
+  if (typeof form.message == 'undefined') {
+    var form_template = document.getElementById('message-reply-form');
+    form = document.createElement('form');
+    form.setAttribute('method', 'POST');
+    form.setAttribute('action', form_template.getAttribute('action'));
+    form.innerHTML = form_template.innerHTML;
+  }
+  container = document.getElementById('message-reply-'+message_id);
+  container.appendChild(form);
+  container.style.display = '';
+  form.discard.onclick = function () {
+    document.getElementById('message-reply-href-'+message_id).style.display = "";
+    document.getElementById('message-reply-'+message_id).innerHTML = "";
+    document.getElementById('message-reply-'+message_id).style.display = "none";
+  }
+  form.send_mail.id = 'message-reply-send-mail-'+message_id;
+  var lbl = document.getElementById(form.send_mail.id).nextSibling.nextSibling;
+  lbl.setAttribute('for', form.send_mail.id);
+  form.message.value = "On " + written_time + ", " + author + " wrote:\n";
+  var divs = document.getElementsByName("cl-message-" + message_id);
+  M_setValueFromDivs(divs, form.message);
+  form.message.value += "\n";
+  form.message.focus();
+  M_addTextResizer_(form);
+  document.getElementById('message-reply-href-'+message_id).style.display = "none";
+}
+
+
+/**
+ * Edits a non-inline draft comment.
+ * @param {Integer} cid The number of the comment to be edited
+ */
+function M_editComment(cid) {
+  var suffix = String(cid);
+  var form = document.getElementById("comment-form-" + suffix);
+  if (!form) {
+    alert("Form " + suffix + " does not exist. Please send this message " +
+          "with the URL to the app owner");
+    return false;
+  }
+  var texts = document.getElementsByName("comment-text-" + suffix);
+  var textsLength = texts.length;
+  for (var i = 0; i < textsLength; i++) {
+    texts[i].style.display = "none";
+  }
+  M_hideElement("edit-link-" + suffix);
+  M_hideElement("undo-link-" + suffix);
+  form.style.display = "";
+  form.text.focus();
+}
+
+/**
+ * Used to cancel comment editing, this will revert the text of the comment
+ * and hide its form.
+ * @param {Element} form The form that contains this comment
+ * @param {Integer} cid The number of the comment being hidden
+ */
+function M_resetAndHideComment(form, cid) {
+  form.text.blur();
+  form.text.value = form.oldtext.value;
+  form.style.display = "none";
+  var texts = document.getElementsByName("comment-text-" + cid);
+  var textsLength = texts.length;
+  for (var i = 0; i < textsLength; i++) {
+    texts[i].style.display = "";
+  }
+  M_showElement("edit-link-" + cid);
+}
+
+/**
+ * Removing a draft comment is the same as setting its text contents to nothing.
+ * @param {Element} form The form containing the draft comment to be discarded
+ * @return true in order for the form submission to continue
+ */
+function M_removeComment(form) {
+  form.text.value = "";
+  return true;
+}
+
+
+// Inline comments (file.html)
+
+/**
+ * Helper method to assign an onclick handler to an inline 'Cancel' button.
+ * @param {Element} form The form containing the cancel button
+ * @param {Function} cancelHandler A function with one 'form' argument
+ * @param {Array} opt_handlerParams An array whose first three elements are:
+ *   {String} cid The number of the comment
+ *   {String} lineno The line number of the comment
+ *   {String} side 'a' or 'b'
+ */
+function M_assignToCancel_(form, cancelHandler, opt_handlerParams) {
+  var elementsLength = form.elements.length;
+  for (var i = 0; i < elementsLength; ++i) {
+    if (form.elements[i].getAttribute("name") == "cancel") {
+      form.elements[i].onclick = function() {
+        if (typeof opt_handlerParams != "undefined") {
+          var cid = opt_handlerParams[0];
+          var lineno = opt_handlerParams[1];
+          var side = opt_handlerParams[2];
+          cancelHandler(form, cid, lineno, side);
+        } else {
+          cancelHandler(form);
+        }
+      };
+      return;
+    }
+  }
+}
+
+/**
+ * Helper method to assign an onclick handler to an inline '[+]' link.
+ * @param {Element} form The form containing the resizer
+ * @param {String} suffix The suffix of the comment form id: lineno-side
+ */
+function M_createResizer_(form, suffix) {
+  if (!form.hasResizer) {
+    var resizer = document.getElementById("resizer").cloneNode(true);
+    resizer.onclick = function() {
+      var form = document.getElementById("comment-form-" + suffix);
+      if (!form) return;
+      form.text.rows += 5;
+      form.text.focus();
+    };
+
+    // Using form.elements would be far more concise, but this hack is
+    // necessary because Konqueror/Safari don't populate form.elements at this
+    // point if the form is cloned.
+    var formContainer = null;
+    for (formContainer = form.firstChild; formContainer;
+         formContainer = formContainer.nextSibling) {
+      if (formContainer.getAttribute &&
+          formContainer.getAttribute("name") == "form-container") break;
+    }
+    if (!formContainer) return;
+
+    for (var n = formContainer.firstChild; n; n = n.nextSibling) {
+      if (n.nodeName == "TEXTAREA") {
+        formContainer.insertBefore(resizer, n.nextSibling);
+        resizer.style.display = "";
+      }
+    }
+    form.hasResizer = true;
+  }
+}
+
+/**
+ * Like M_createResizer_(), but updates the form's first textarea field.
+ * This is assumed not to be the last field.
+ * @param {Element} form The form whose textarea field to update.
+ */
+function M_addTextResizer_(form) {
+  var elementsLength = form.elements.length;
+  for (var i = 0; i < elementsLength; ++i) {
+    var node = form.elements[i];
+    if (node.nodeName == "TEXTAREA") {
+      var parent = M_getParent(node);
+      var resizer = document.getElementById("resizer").cloneNode(true);
+      var next = node.nextSibling;
+      parent.insertBefore(resizer, next);
+      resizer.onclick = function() {
+	node.rows += 5;
+	node.focus();
+      };
+      resizer.style.display = "";
+      if (next && next.className == "resizer") { // Remove old resizer.
+	parent.removeChild(next);
+      }
+      break;
+    }
+  }
+}
+
+/**
+ * Helper method to assign an onclick handler to an inline 'Save' button.
+ * @param {Element} form The form containing the save button
+ * @param {String} cid The number of the comment
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ */
+function M_assignToSave_(form, cid, lineno, side) {
+  var elementsLength = form.elements.length;
+  for (var i = 0; i < elementsLength; ++i) {
+    if (form.elements[i].getAttribute("name") == "save") {
+      form.elements[i].onclick = function() {
+        return M_submitInlineComment(form, cid, lineno, side);
+      };
+      return;
+    }
+  }
+}
+
+/**
+ * Creates an inline comment at the given line number and side of the diff.
+ * @param {String} lineno The line number of the new comment
+ * @param {String} side Either 'a' or 'b' signifying the side of the diff
+ */
+function M_createInlineComment(lineno, side) {
+  // The first field of the suffix is typically the cid, but we choose '-1'
+  // here since the backend has not assigned the new comment a cid yet.
+  var suffix = "-1-" + lineno + "-" + side;
+  var form = document.getElementById("comment-form-" + suffix);
+  if (!form) {
+    form = document.getElementById("dainlineform").cloneNode(true);
+    if (typeof form.save == "undefined") {
+      // For Opera form elements of the cloned form aren't accessible
+      // by name but using innerHTML works.
+      form = document.createElement("form");
+      form.innerHTML = document.getElementById("dainlineform").innerHTML;
+    }
+    form.name = form.id = "comment-form-" + suffix;
+    M_assignToCancel_(form, M_removeTempInlineComment);
+    M_createResizer_(form, suffix);
+    M_assignToSave_(form, "-1", lineno, side);
+    // There is a "text" node before the "div" node
+    form.childNodes[1].setAttribute("name", "comment-border");
+    var id = (side == 'a' ? "old" : "new") + "-line-" + lineno;
+    var td = document.getElementById(id);
+    td.appendChild(form);
+    var tr = M_getParent(td);
+    tr.setAttribute("name", "hook");
+    hookState.updateHooks();
+  }
+  form.style.display = "";
+  form.lineno.value = lineno;
+  if (side == 'b') {
+    form.snapshot.value = new_snapshot;
+  } else {
+    form.snapshot.value = old_snapshot;
+  }
+  form.side.value = side;
+  var savedDraftKey = "new-" + form.lineno.value + "-" + form.snapshot.value;
+  M_restoreDraftText_(savedDraftKey, form);
+  form.text.focus();
+  hookState.gotoHook(0);
+}
+
+/**
+ * Removes a never-submitted 'Reply' inline comment from existence (created via
+ * M_replyToInlineComment).
+ * @param {Element} form The form that contains the comment to be removed
+ * @param {String} cid The number of the comment
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ */
+function M_removeTempReplyInlineComment(form, cid, lineno, side) {
+  var divInlineComment = M_getParent(form);
+  var divCommentBorder = M_getParent(divInlineComment);
+  var td = M_getParent(divCommentBorder);
+  var tr = M_getParent(td);
+  form.cancel.blur();
+  // The order of the subsequent lines is sensitive to browser compatibility.
+  var suffix = cid + "-" + lineno + "-" + side;
+  M_saveDraftText_("reply-" + suffix, form.text.value);
+  divInlineComment.removeChild(form);
+  M_updateRowHook(tr);
+}
+
+/**
+ * Removes a never-submitted inline comment from existence (created via
+ * M_createInlineComment). Saves the existing text for the next time a draft is
+ * created on the same line.
+ * @param {Element} form The form that contains the comment to be removed
+ */
+function M_removeTempInlineComment(form) {
+  var td = M_getParent(form);
+  var tr = M_getParent(td);
+  // The order of the subsequent lines is sensitive to browser compatibility.
+  var savedDraftKey = "new-" + form.lineno.value + "-" + form.snapshot.value;
+  M_saveDraftText_(savedDraftKey, form.text.value);
+  form.cancel.blur();
+  td.removeChild(form);
+  M_updateRowHook(tr);
+}
+
+/**
+ * Helper to edit a draft inline comment.
+ * @param {String} cid The number of the comment
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ * @return {Element} The form that contains the comment
+ */
+function M_editInlineCommentCommon_(cid, lineno, side) {
+  var suffix = cid + "-" + lineno + "-" + side;
+  var form = document.getElementById("comment-form-" + suffix);
+  if (!form) {
+    alert("Form " + suffix + " does not exist. Please send this message " +
+          "with the URL to the app owner");
+    return false;
+  }
+  M_createResizer_(form, suffix);
+  var texts = document.getElementsByName("comment-text-" + suffix);
+  var textsLength = texts.length;
+  for (var i = 0; i < textsLength; i++) {
+    texts[i].style.display = "none";
+  }
+  M_hideElement("edit-link-" + suffix);
+  M_hideElement("undo-link-" + suffix);
+  form.style.display = "";
+  var parent = document.getElementById("inline-comment-" + suffix);
+  if (parent && parent.style.display == "none") {
+    M_switchInlineComment(cid, lineno, side);
+  }
+  form.text.focus();
+  hookState.gotoHook(0);
+  return form;
+}
+
+/**
+ * Edits a draft inline comment.
+ * @param {String} cid The number of the comment
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ */
+function M_editInlineComment(cid, lineno, side) {
+  M_editInlineCommentCommon_(cid, lineno, side);
+}
+
+/**
+ * Restores a canceled draft inline comment for editing.
+ * @param {String} cid The number of the comment
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ */
+function M_restoreEditInlineComment(cid, lineno, side) {
+  var form = M_editInlineCommentCommon_(cid, lineno, side);
+  var savedDraftKey = "edit-" + cid + "-" + lineno + "-" + side;
+  M_restoreDraftText_(savedDraftKey, form, false);
+}
+
+/**
+ * Helper to reply to an inline comment.
+ * @param {String} author The author of the comment being replied to
+ * @param {String} written_time The formatted time when that comment was written
+ * @param {String} ccs A string containing the ccs to default to
+ * @param {String} cid The number of the comment being replied to, so that the
+ *                     form may be placed in the appropriate location
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ * @param {String} opt_reply The response to pre-fill with.
+ * @param {Boolean} opt_submit This will submit the comment right after
+ *                             creation. Only makes sense when opt_reply is set
+ * @return {Element} The form that contains the comment
+ */
+function M_replyToInlineCommentCommon_(author, written_time, cid, lineno,
+                                       side, opt_reply, opt_submit) {
+  var suffix = cid + "-" + lineno + "-" + side;
+  var form = document.getElementById("comment-form-" + suffix);
+  if (!form) {
+    form = document.getElementById("dainlineform").cloneNode(true);
+    form.name = form.id = "comment-form-" + suffix;
+    M_assignToCancel_(form, M_removeTempReplyInlineComment,
+                      [cid, lineno, side]);
+    M_assignToSave_(form, cid, lineno, side);
+    M_createResizer_(form, suffix);
+    var parent = document.getElementById("inline-comment-" + suffix);
+    if (parent.style.display == "none") {
+      M_switchInlineComment(cid, lineno, side);
+    }
+    parent.appendChild(form);
+  }
+  form.style.display = "";
+  form.lineno.value = lineno;
+  if (side == 'b') {
+    form.snapshot.value = new_snapshot;
+  } else {
+    form.snapshot.value = old_snapshot;
+  }
+  form.side.value = side;
+  if (!M_restoreDraftText_("reply-" + suffix, form, false) ||
+      typeof opt_reply != "undefined") {
+    form.text.value = "On " + written_time + ", " + author + " wrote:\n";
+    var divs = document.getElementsByName("comment-text-" + suffix);
+    M_setValueFromDivs(divs, form.text);
+    form.text.value += "\n";
+    if (typeof opt_reply != "undefined") {
+      form.text.value += opt_reply;
+    }
+    if (opt_submit) {
+      M_submitInlineComment(form, cid, lineno, side);
+      return;
+    }
+  }
+  form.text.focus();
+  hookState.gotoHook(0);
+  return form;
+}
+
+/**
+ * Replies to an inline comment.
+ * @param {String} author The author of the comment being replied to
+ * @param {String} written_time The formatted time when that comment was written
+ * @param {String} ccs A string containing the ccs to default to
+ * @param {String} cid The number of the comment being replied to, so that the
+ *                     form may be placed in the appropriate location
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ * @param {String} opt_reply The response to pre-fill with.
+ * @param {Boolean} opt_submit This will submit the comment right after
+ *                             creation. Only makes sense when opt_reply is set
+ */
+function M_replyToInlineComment(author, written_time, cid, lineno, side,
+                                opt_reply, opt_submit) {
+  M_replyToInlineCommentCommon_(author, written_time, cid, lineno, side,
+                                opt_reply, opt_submit);
+}
+
+/**
+ * Restores a canceled draft inline comment for reply.
+ * @param {String} author The author of the comment being replied to
+ * @param {String} written_time The formatted time when that comment was written
+ * @param {String} ccs A string containing the ccs to default to
+ * @param {String} cid The number of the comment being replied to, so that the
+ *                     form may be placed in the appropriate location
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ */
+function M_restoreReplyInlineComment(author, written_time, cid, lineno,
+                                     side) {
+  var form = M_replyToInlineCommentCommon_(author, written_time, cid,
+                                           lineno, side);
+  var savedDraftKey = "reply-" + cid + "-" + lineno + "-" + side;
+  M_restoreDraftText_(savedDraftKey, form, false);
+}
+
+/**
+ * Updates an inline comment td with the given HTML.
+ * @param {Element} td The TD that contains the inline comment
+ * @param {String} html The text to be put into .innerHTML of the td
+ */
+function M_updateInlineComment(td, html) {
+  var tr = M_getParent(td);
+  if (!tr) {
+    alert("TD had no parent. Please notify the app owner.");
+    return;
+  }
+  // The server sends back " " to make things empty, for Safari
+  if (html.length <= 1) {
+    td.innerHTML = "";
+    M_updateRowHook(tr);
+  } else {
+    td.innerHTML = html;
+    tr.name = "hook";
+    hookState.updateHooks();
+  }
+}
+
+/**
+ * Updates a comment tr's name, depending on whether there are now comments
+ * in it or not. Also updates the hook cache if required. Assumes that the
+ * given TR already has name == "hook" and only tries to remove it if all
+ * are empty.
+ * @param {Element} tr The TR containing the potential comments
+ */
+function M_updateRowHook(tr) {
+  if (!(tr && tr.cells)) return;
+  // If all of the TR's cells are empty, remove the hook name
+  var i = 0;
+  var numCells = tr.cells.length;
+  for (i = 0; i < numCells; i++) {
+    if (tr.cells[i].innerHTML != "") {
+      break;
+    }
+  }
+  if (i == numCells) {
+    tr.setAttribute("name",  "");
+    hookState.updateHooks();
+  }
+  hookState.gotoHook(0);
+}
+
+/**
+ * Submits an inline comment and updates the DOM in AJAX fashion with the new
+ * comment data for that line.
+ * @param {Element} form The form containing the submitting comment
+ * @param {String} cid The number of the comment
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ * @return true if AJAX fails and the form should be submitted the "old" way,
+ *         or false if the form is submitted using AJAX, preventing the regular
+ *         form submission from proceeding
+ */
+function M_submitInlineComment(form, cid, lineno, side) {
+  var td = null;
+  if (form.side.value == 'a') {
+    td = document.getElementById("old-line-" + form.lineno.value);
+  } else {
+    td = document.getElementById("new-line-" + form.lineno.value);
+  }
+  if (!td) {
+    alert("Could not find snapshot " + form.snapshot.value + "! Please let " +
+          "the app owner know.");
+    return true;
+  }
+
+  // Clear saved draft state for affected new, edited, and replied comments
+  if (typeof cid != "undefined" && typeof lineno != "undefined" && side) {
+    var suffix = cid + "-" + lineno + "-" + side;
+    M_clearDraftText_("new-" + lineno + "-" + form.snapshot.value);
+    M_clearDraftText_("edit-" + suffix);
+    M_clearDraftText_("reply-" + suffix);
+    M_hideElement("undo-link-" + suffix);
+  }
+
+  var httpreq = M_getXMLHttpRequest();
+  if (!httpreq) {
+    // No AJAX. Oh well. Go ahead and submit this the old way.
+    return true;
+  }
+
+  // Konqueror jumps to a random location for some reason
+  var scrollTop = M_getScrollTop(window);
+
+  var aborted = false;
+
+  reenable_form = function() {
+    form.save.disabled = false;
+    form.cancel.disabled = false;
+    if (form.discard != null) {
+      form.discard.disabled = false;
+    }
+    form.text.disabled = false;
+    form.style.cursor = "auto";
+  };
+
+  // This timeout can potentially race with the request coming back OK. In
+  // general, if it hasn't come back for 60 seconds, it won't ever come back.
+  var httpreq_timeout = setTimeout(function() {
+    aborted = true;
+    httpreq.abort();
+    reenable_form();
+    alert("Comment could not be submitted for 60 seconds. Please ensure " +
+          "connectivity (and that the server is up) and try again.");
+  }, 60000);
+
+  httpreq.onreadystatechange = function () {
+    // Firefox 2.0, at least, runs this with readyState = 4 but all other
+    // fields unset when the timeout aborts the request, against all
+    // documentation.
+    if (httpreq.readyState == 4 && !aborted) {
+      clearTimeout(httpreq_timeout);
+      if (httpreq.status == 200) {
+        M_updateInlineComment(td, httpreq.responseText);
+      } else {
+        reenable_form();
+        alert("An error occurred while trying to submit the comment: " +
+              httpreq.statusText);
+      }
+      if (M_isKHTML()) {
+        window.scrollTo(0, scrollTop);
+      }
+    }
+  }
+  httpreq.open("POST", "/inline_draft", true);
+  httpreq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+  var req = [];
+  var len = form.elements.length;
+  for (var i = 0; i < len; i++) {
+    var element = form.elements[i];
+    if (element.type == "hidden" || element.type == "textarea") {
+      req.push(element.name + "=" + encodeURIComponent(element.value));
+    }
+  }
+  req.push("side=" + side);
+
+  // Disable forever. If this succeeds, then the form will end up getting
+  // rewritten, and if it fails, the page should get a refresh anyways.
+  form.save.blur();
+  form.save.disabled = true;
+  form.cancel.blur();
+  form.cancel.disabled = true;
+  if (form.discard != null) {
+    form.discard.blur();
+    form.discard.disabled = true;
+  }
+  form.text.blur();
+  form.text.disabled = true;
+  form.style.cursor = "wait";
+
+  // Send the request
+  httpreq.send(req.join("&"));
+
+  // No need to resubmit this form.
+  return false;
+}
+
+/**
+ * Removes a draft inline comment.
+ * @param {Element} form The form that contains the comment to be removed
+ * @param {String} cid The number of the comment
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ */
+function M_removeInlineComment(form, cid, lineno, side) {
+  // Update state to save the canceled edit text
+  var snapshot = side == "a" ? old_snapshot : new_snapshot;
+  var savedDraftKey = "new-" + lineno + "-" + snapshot;
+  var savedText = form.text.value;
+  form.text.value = "";
+  var ret = M_submitInlineComment(form, cid, lineno, side);
+  M_saveDraftText_(savedDraftKey, savedText);
+  return ret;
+}
+
+/**
+ * Combines all the divs from a single comment (generated by multiple buckets)
+ * and undoes the escaping work done by Django filters, and inserts the result
+ * into a given textarea.
+ * @param {Array} divs An array of div elements to be combined
+ * @param {Element} text The textarea whose value needs to be updated
+ */
+function M_setValueFromDivs(divs, text) {
+  lines = [];
+  var divsLength = divs.length;
+  for (var i = 0; i < divsLength; i++) {
+    lines = lines.concat(divs[i].innerHTML.split("\n"));
+  }
+  for (var i = 0; i < lines.length; i++) {
+    // Undo the <a> tags added by urlize and enliven
+    lines[i] = lines[i].replace(/<a[^>]*>/ig, "");
+    lines[i] = lines[i].replace(/<\/a>/ig, "");
+    // Undo the escape Django filter
+    lines[i] = lines[i].replace(/&gt;/ig, ">");
+    lines[i] = lines[i].replace(/&lt;/ig, "<");
+    lines[i] = lines[i].replace(/&quot;/ig, "\"");
+    lines[i] = lines[i].replace(/&#39;/ig, "'");
+    lines[i] = lines[i].replace(/&amp;/ig, "&"); // Must be last
+    text.value += "> " + lines[i] + "\n";
+  }
+}
+
+/**
+ * Undo an edit of a draft inline comment, i.e. discard changes.
+ * @param {Element} form The form containing the edits
+ * @param {String} cid The number of the comment
+ * @param {String} lineno The line number of the comment
+ * @param {String} side 'a' or 'b'
+ */
+function M_resetAndHideInlineComment(form, cid, lineno, side) {
+  // Update canceled edit state
+  var suffix = cid + "-" + lineno + "-" + side;
+  M_saveDraftText_("edit-" + suffix, form.text.value);
+  if (form.text.value != form.oldtext.value) {
+    M_showElement("undo-link-" + suffix);
+  }
+
+  form.text.blur();
+  form.text.value = form.oldtext.value;
+  form.style.display = "none";
+  var texts = document.getElementsByName("comment-text-" + suffix);
+  var textsLength = texts.length;
+  for (var i = 0; i < textsLength; i++) {
+    texts[i].style.display = "";
+  }
+  M_showElement("edit-link-" + suffix);
+  hookState.gotoHook(0);
+}
+
+/**
+ * Toggles whether we display quoted text or not, both for inline and regular
+ * comments. Inline comments will have lineno and side defined.
+ * @param {String} cid The comment number
+ * @param {String} bid The bucket number in that comment
+ * @param {String} lineno (optional) Line number of the comment
+ * @param {String} side (optional) 'a' or 'b'
+ */
+function M_switchQuotedText(cid, bid, lineno, side) {
+  var tmp = ""
+  if (typeof lineno != 'undefined' && typeof side != 'undefined')
+    tmp = "-" + lineno + "-" + side;
+  var div = document.getElementById("comment-text-" + cid + tmp + "-" + bid)
+  if (div.style.display == "none") {
+    div.style.display = "";
+  } else {
+    div.style.display = "none";
+  }
+  if (tmp != "") {
+    hookState.gotoHook(0);
+  }
+}
+
+/**
+ * Handler for the double click event in the code table element. Creates a new
+ * inline comment for that line of code on the right side of the diff.
+ * @param {Event} evt The event object for this double-click event
+ */
+function M_handleTableDblClick(evt) {
+  if (!logged_in) {
+    if (!login_warned) {
+      login_warned = true;
+      alert("Please sign in to enter inline comments.");
+    }
+    return;
+  }
+  var evt = evt ? evt : (event ? event : null);
+  var target = M_getEventTarget(evt);
+  if (target.tagName == 'INPUT' || target.tagName == 'TEXTAREA') {
+    return;
+  }
+  while (target != null && target.tagName != 'TD') {
+    target = M_getParent(target);
+  }
+  if (target == null) {
+    return;
+  }
+  var side = null;
+  if (target.id.substr(0, 7) == "newcode") {
+    side = 'b';
+  } else if (target.id.substr(0, 7) == "oldcode") {
+    side = 'a';
+  }
+  if (side != null) {
+    M_createInlineComment(parseInt(target.id.substr(7)), side);
+  }
+}
+
+/**
+ * Makes all inline comments visible. This is the default view.
+ */
+function M_showAllInlineComments() {
+  var hide = document.getElementById("hide-all-inline");
+  var show = document.getElementById("show-all-inline");
+  hide.style.display = "";
+  var elements = document.getElementsByName("comment-border");
+  var elementsLength = elements.length;
+  for (var i = 0; i < elementsLength; i++) {
+    var tr = M_getParent(M_getParent(elements[i]));
+    tr.style.display = "";
+    tr.name = "hook";
+  }
+  show.style.display = "none";
+  hookState.updateHooks();
+}
+
+/**
+ * Hides all inline comments, to make code easier ot read.
+ */
+function M_hideAllInlineComments() {
+  var hide = document.getElementById("hide-all-inline");
+  var show = document.getElementById("show-all-inline");
+  show.style.display = "";
+  var elements = document.getElementsByName("comment-border");
+  var elementsLength = elements.length;
+  for (var i = 0; i < elementsLength; i++) {
+    var tr = M_getParent(M_getParent(elements[i]));
+    tr.style.display = "none";
+    tr.name = "";
+  }
+  hide.style.display = "none";
+  hookState.updateHooks();
+}
+
+/**
+ * Flips between making inline comments visible and invisible.
+ */
+function M_toggleAllInlineComments() {
+  var show = document.getElementById("show-all-inline");
+  if (!show) {
+    return;
+  }
+  if (show.style.display == "none") {
+    M_hideAllInlineComments();
+  } else {
+    M_showAllInlineComments();
+  }
+}
+
+// File view keyboard navigation
+
+/**
+ * M_HookState class. Keeps track of the current 'hook' that we are on and
+ * responds to n/p/N/P events.
+ * @param {Window} win The window that the table is in.
+ * @constructor
+ */
+function M_HookState(win) {
+  /**
+   * -2 == top of page; -1 == diff; or index into hooks array
+   * @type Integer
+   */
+  this.hookPos = -2;
+
+  /**
+   * A cache of visible table rows with tr.name == "hook"
+   * @type Array
+   */
+  this.visibleHookCache = [];
+
+  /**
+   * The indicator element that we move around
+   * @type Element
+   */
+  this.indicator = document.getElementById("hook-sel");
+
+  /**
+   * Caches whether we are in an IE browser
+   * @type Boolean
+   */
+  this.isIE = M_isIE();
+
+  /**
+   * The window that the table with the hooks is in
+   * @type Window
+   */
+  this.win = win;
+}
+
+/**
+ * Find all the hook locations in a browser-portable fashion, and store them
+ * in a cache.
+ * @return Array of TR elements.
+ */
+M_HookState.prototype.computeHooks_ = function() {
+  var allHooks = null;
+  if (this.isIE) {
+    // IE only recognizes the 'name' attribute on tags that are supposed to
+    // have one, such as... not TR.
+    var tmpHooks = document.getElementsByTagName("TR");
+    var tmpHooksLength = tmpHooks.length;
+    allHooks = [];
+    for (var i = 0; i < tmpHooksLength; i++) {
+      if (tmpHooks[i].name == "hook") {
+        allHooks.push(tmpHooks[i]);
+      }
+    }
+  } else {
+    allHooks = document.getElementsByName("hook");
+  }
+  var visibleHooks = [];
+  var allHooksLength = allHooks.length;
+  for (var i = 0; i < allHooksLength; i++) {
+    var hook = allHooks[i];
+    if (hook.style.display == "") {
+      visibleHooks.push(hook);
+    }
+  }
+  this.visibleHookCache = visibleHooks;
+  return visibleHooks;
+};
+
+/**
+ * Recompute all the hook positions, update the hookPos, and update the
+ * indicator's position if necessary, but do not scroll.
+ */
+M_HookState.prototype.updateHooks = function() {
+  var curHook = null;
+  if (this.hookPos >= 0 && this.hookPos < this.visibleHookCache.length) {
+    curHook = this.visibleHookCache[this.hookPos];
+  }
+  this.computeHooks_();
+  var newHookPos = -1;
+  if (curHook != null) {
+    for (var i = 0; i < this.visibleHookCache.length; i++) {
+      if (this.visibleHookCache[i] == curHook) {
+        newHookPos = i;
+        break;
+      }
+    }
+  }
+  if (newHookPos != -1) {
+    this.hookPos = newHookPos;
+  }
+  this.gotoHook(0);
+};
+
+/**
+ * Update the indicator's position to be at the top of the table row.
+ * @param {Element} tr The tr whose top the indicator will be lined up with.
+ */
+M_HookState.prototype.updateIndicator_ = function(tr) {
+  // Find out where the table's top is, and add one so that when we align
+  // the position indicator, it takes off 1px from one tr and 1px from another.
+  // This must be computed every time since the top of the table may move due
+  // to window resizing.
+  var tableTop = M_getPageOffsetTop(document.getElementById("table-top")) + 1;
+
+  this.indicator.style.top = String(M_getPageOffsetTop(tr) -
+                                    tableTop) + "px";
+  var totWidth = 0;
+  var numCells = tr.cells.length;
+  for (var i = 0; i < numCells; i++) {
+    totWidth += tr.cells[i].clientWidth;
+  }
+  this.indicator.style.left = "0px";
+  this.indicator.style.width = totWidth + "px";
+  this.indicator.style.display = "";
+};
+
+/**
+ * Update the indicator's position, and potentially scroll to the proper
+ * location. Computes the new position based on current scroll position, and
+ * whether the previously selected hook was visible.
+ * @param {Integer} direction Scroll direction: -1 for up only, 1 for down only,
+ *                            0 for no scrolling.
+ */
+M_HookState.prototype.gotoHook = function(direction) {
+  var hooks = this.visibleHookCache;
+
+  // Hide the current selection image
+  this.indicator.style.display = "none";
+
+  // Add a border to all td's in the selected row
+  if (this.hookPos < -1) {
+    if (direction != 0) {
+      window.scrollTo(0, 0);
+    }
+    this.hookPos = -2;
+  } else if (this.hookPos == -1) {
+    var diffs = document.getElementsByName("diffs");
+    if (diffs && diffs.length >= 1) {
+      diffs = diffs[0];
+    }
+    if (diffs && direction != 0) {
+      window.scrollTo(0, M_getPageOffsetTop(diffs));
+    }
+    this.updateIndicator_(document.getElementById("thecode").rows[0]);
+  } else {
+    if (this.hookPos < hooks.length) {
+      var hook = hooks[this.hookPos];
+      for (var i = 0; i < hook.cells.length; i++) {
+        var td = hook.cells[i];
+        if (td.id != null && td.id != "") {
+          if (direction != 0) {
+            M_scrollIntoView(this.win, td, direction);
+          }
+          break;
+        }
+      }
+      // Found one!
+      this.updateIndicator_(hook);
+    } else {
+      if (direction != 0) {
+        window.scrollTo(0, document.body.offsetHeight);
+      }
+      this.hookPos = hooks.length;
+      var thecode = document.getElementById("thecode");
+      this.updateIndicator_(thecode.rows[thecode.rows.length - 1]);
+    }
+  }
+};
+
+/**
+ * Set this.hookPos to the next desired hook.
+ * @param {Boolean} findComment Whether to look only for comment hooks
+ */
+M_HookState.prototype.incrementHook_ = function(findComment) {
+  var hooks = this.visibleHookCache;
+  if (findComment) {
+    this.hookPos = Math.max(0, this.hookPos + 1);
+    while (this.hookPos < hooks.length &&
+           hooks[this.hookPos].className != "inline-comments") {
+      this.hookPos++;
+    }
+  } else {
+    this.hookPos = Math.min(hooks.length, this.hookPos + 1);
+  }
+};
+
+/**
+ * Set this.hookPos to the previous desired hook.
+ * @param {Boolean} findComment Whether to look only for comment hooks
+ */
+M_HookState.prototype.decrementHook_ = function(findComment) {
+  var hooks = this.visibleHookCache;
+  if (findComment) {
+    this.hookPos = Math.min(hooks.length - 1, this.hookPos - 1);
+    while (this.hookPos >= 0 &&
+           hooks[this.hookPos].className != "inline-comments") {
+      this.hookPos--;
+    }
+  } else {
+    this.hookPos = Math.max(-2, this.hookPos - 1);
+  }
+};
+
+/**
+ * Find the first document element in sorted array elts whose vertical position
+ * is greater than the given height from the top of the document. Optionally
+ * look only for comment elements.
+ *
+ * @param {Integer} height The height in pixels from the top
+ * @param {Array.<Element>} elts Document elements
+ * @param {Boolean} findComment Whether to look only for comment elements
+ * @return {Integer} The index of such an element, or elts.length otherwise
+ */
+function M_findElementAfter_(height, elts, findComment) {
+  for (var i = 0; i < elts.length; ++i) {
+    if (M_getPageOffsetTop(elts[i]) > height) {
+      if (!findComment || elts[i].className == "inline-comments") {
+        return i;
+      }
+    }
+  }
+  return elts.length;
+}
+
+/**
+ * Find the last document element in sorted array elts whose vertical position
+ * is less than the given height from the top of the document. Optionally
+ * look only for comment elements.
+ *
+ * @param {Integer} height The height in pixels from the top
+ * @param {Array.<Element>} elts Document elements
+ * @param {Boolean} findComment Whether to look only for comment elements
+ * @return {Integer} The index of such an element, or -1 otherwise
+ */
+function M_findElementBefore_(height, elts, findComment) {
+  for (var i = elts.length - 1; i >= 0; --i) {
+    if (M_getPageOffsetTop(elts[i]) < height) {
+      if (!findComment || elts[i].className == "inline-comments") {
+        return i;
+      }
+    }
+  }
+  return -1;
+}
+
+/**
+ * Move to the next hook indicator and scroll.
+ * @param opt_findComment {Boolean} Whether to look only for comment hooks
+ */
+M_HookState.prototype.gotoNextHook = function(opt_findComment) {
+  // If the current hook is not on the page, select the first hook that is
+  // either on the screen or below.
+  var hooks = this.visibleHookCache;
+  var diffs = document.getElementsByName("diffs");
+  var thecode = document.getElementById("thecode");
+  var findComment = Boolean(opt_findComment);
+  if (diffs && diffs.length >= 1) {
+    diffs = diffs[0];
+  }
+  if (this.hookPos >= 0 && this.hookPos < hooks.length &&
+      M_isElementVisible(this.win, hooks[this.hookPos].cells[0])) {
+    this.incrementHook_(findComment);
+  } else if (this.hookPos == -2 &&
+             (M_isElementVisible(this.win, diffs) ||
+              M_getScrollTop(this.win) < M_getPageOffsetTop(diffs))) {
+    this.incrementHook_(findComment)
+  } else if (this.hookPos < hooks.length || (this.hookPos >= hooks.length &&
+             !M_isElementVisible(
+               this.win, thecode.rows[thecode.rows.length - 1].cells[0]))) {
+    var scrollTop = M_getScrollTop(this.win);
+    this.hookPos = M_findElementAfter_(scrollTop, hooks, findComment);
+  }
+  this.gotoHook(1);
+};
+
+/**
+ * Move to the previous hook indicator and scroll.
+ * @param opt_findComment {Boolean} Whether to look only for comment hooks
+ */
+M_HookState.prototype.gotoPrevHook = function(opt_findComment) {
+  // If the current hook is not on the page, select the last hook that is
+  // above the bottom of the screen window.
+  var hooks = this.visibleHookCache;
+  var diffs = document.getElementsByName("diffs");
+  var findComment = Boolean(opt_findComment);
+  if (diffs && diffs.length >= 1) {
+    diffs = diffs[0];
+  }
+  if (this.hookPos == 0 && findComment) {
+    this.hookPos = -2;
+  } else if (this.hookPos >= 0 && this.hookPos < hooks.length &&
+      M_isElementVisible(this.win, hooks[this.hookPos].cells[0])) {
+    this.decrementHook_(findComment);
+  } else if (this.hookPos > hooks.length) {
+    this.hookPos = hooks.length;
+  } else if (this.hookPos == -1 && M_isElementVisible(this.win, diffs)) {
+    this.decrementHook_(findComment);
+  } else if (this.hookPos == -2 && M_getScrollTop(this.win) == 0) {
+  } else {
+    var scrollBot = M_getScrollTop(this.win) + M_getWindowHeight(this.win);
+    this.hookPos = M_findElementBefore_(scrollBot, hooks, findComment);
+  }
+  // The top of the diffs table is irrelevant if we want comment hooks.
+  if (findComment && this.hookPos <= -1) {
+    this.hookPos = -2;
+  }
+  this.gotoHook(-1);
+};
+
+/**
+ * If the currently selected hook is a comment, either respond to it or edit
+ * the draft if there is one already. Prefer the right side of the table.
+ */
+M_HookState.prototype.respond = function() {
+  var hooks = this.visibleHookCache;
+  if (this.hookPos >= 0 && this.hookPos < hooks.length &&
+      M_isElementVisible(this.win, hooks[this.hookPos].cells[0])) {
+    // Go through this tr and try responding to the last comment. The general
+    // hope is that these are returned in DOM order
+    var comments = hooks[this.hookPos].getElementsByTagName("div");
+    var commentsLength = comments.length;
+    if (comments && commentsLength > 0) {
+      var last = null;
+      for (var i = commentsLength - 1; i >= 0; i--) {
+        if (comments[i].getAttribute("name") == "comment-border") {
+          last = comments[i];
+          break;
+        }
+      }
+      if (last) {
+        var links = last.getElementsByTagName("a");
+        if (links) {
+          for (var i = links.length - 1; i >= 0; i--) {
+            if (links[i].getAttribute("name") == "comment-reply" &&
+                links[i].style.display != "none") {
+              document.location.href = links[i].href;
+              return;
+            }
+          }
+        }
+      }
+    }
+    // Create a comment at this line
+    // TODO: Implement this in a sane fashion, e.g. opens up a comment
+    // at the end of the diff chunk.
+    /*
+    var tr = hooks[this.hookPos];
+    for (var i = tr.cells.length - 1; i >= 0; i--) {
+      if (tr.cells[i].id.substr(0, 7) == "newcode") {
+        createInlineComment(parseInt(tr.cells[i].id.substr(7)), 'b');
+        return;
+      } else if (tr.cells[i].id.substr(0, 7) == "oldcode") {
+        createInlineComment(parseInt(tr.cells[i].id.substr(7)), 'a');
+        return;
+      }
+    }
+    */
+  }
+};
+
+// Intra-line diff handling
+
+/**
+ * IntraLineDiff class. Initializes structures to keep track of highlighting
+ * state.
+ * @constructor
+ */
+function M_IntraLineDiff() {
+  /**
+   * Whether we are showing intra-line changes or not
+   * @type Boolean
+   */
+  this.intraLine = true;
+
+  /**
+   * "oldreplace" css rule
+   * @type CSSStyleRule
+   */
+  this.oldReplace = null;
+
+  /**
+   * "oldlight" css rule
+   * @type CSSStyleRule
+   */
+  this.oldLight = null;
+
+  /**
+   * "newreplace" css rule
+   * @type CSSStyleRule
+   */
+  this.newReplace = null;
+
+  /**
+   * "newlight" css rule
+   * @type CSSStyleRule
+   */
+  this.newLight = null;
+
+  /**
+   * backup of the "oldreplace" css rule's background color
+   * @type DOMString
+   */
+  this.saveOldReplaceBkgClr = null;
+
+  /**
+   * backup of the "newreplace" css rule's background color
+   * @type DOMString
+   */
+  this.saveNewReplaceBkgClr = null;
+
+  /**
+   * "oldreplace1" css rule's background color
+   * @type DOMString
+   */
+  this.oldIntraBkgClr = null;
+
+  /**
+   * "newreplace1" css rule's background color
+   * @type DOMString
+   */
+  this.newIntraBkgClr = null;
+
+  this.findStyles_();
+}
+
+/**
+ * Finds the styles in the document and keeps references to them in this class
+ * instance.
+ */
+M_IntraLineDiff.prototype.findStyles_ = function() {
+  var ss = document.styleSheets[0];
+  var rules = [];
+  if (ss.cssRules) {
+    rules = ss.cssRules;
+  } else if (ss.rules) {
+    rules = ss.rules;
+  }
+  for (var i = 0; i < rules.length; i++) {
+    var rule = rules[i];
+    if (rule.selectorText == ".oldreplace1") {
+      this.oldIntraBkgClr = rule.style.backgroundColor;
+    } else if (rule.selectorText == ".newreplace1") {
+      this.newIntraBkgClr = rule.style.backgroundColor;
+    } else if (rule.selectorText == ".oldreplace") {
+      this.oldReplace = rule;
+      this.saveOldReplaceBkgClr = this.oldReplace.style.backgroundColor;
+    } else if (rule.selectorText == ".newreplace") {
+      this.newReplace = rule;
+      this.saveNewReplaceBkgClr = this.newReplace.style.backgroundColor;
+    } else if (rule.selectorText == ".oldlight") {
+      this.oldLight = rule;
+    } else if (rule.selectorText == ".newlight") {
+      this.newLight = rule;
+    }
+  }
+};
+
+/**
+ * Toggle the highlighting of the intra line diffs, alternatively turning
+ * them on and off.
+ */
+M_IntraLineDiff.prototype.toggle = function() {
+  if (this.intraLine) {
+    this.oldReplace.style.backgroundColor = this.oldIntraBkgClr;
+    this.oldLight.style.backgroundColor = this.oldIntraBkgClr;
+    this.newReplace.style.backgroundColor = this.newIntraBkgClr;
+    this.newLight.style.backgroundColor = this.newIntraBkgClr;
+    this.intraLine = false;
+  } else {
+    this.oldReplace.style.backgroundColor = this.saveOldReplaceBkgClr;
+    this.oldLight.style.backgroundColor = this.saveOldReplaceBkgClr;
+    this.newReplace.style.backgroundColor = this.saveNewReplaceBkgClr;
+    this.newLight.style.backgroundColor = this.saveNewReplaceBkgClr;
+    this.intraLine = true;
+  }
+};
+
+/**
+ * A click handler common to just about every page, set in global.html.
+ * @param {Event} evt The event object that triggered this handler.
+ * @return false if the event was handled.
+ */
+function M_clickCommon(evt) {
+  if (helpDisplayed) {
+    var help = document.getElementById("help");
+    help.style.display = "none";
+    helpDisplayed = false;
+    return false;
+  }
+  return true;
+}
+
+/**
+ * Common keypress handling code for all pages.
+ * @param {Event} evt The event object that triggered this callback
+ * @param {function(string)} handler Handles the specific key pressed;
+ *        returns false if the key press was handled.
+ * @param {function(Event, Node, int, string)} input_handler
+ *        Handles the event in case that the event source is an input field.
+ *        returns false if the key press was handled.
+ * @return false if the event was handled
+ */
+function M_keyPressCommon(evt, handler, input_handler) {
+  var evt = (evt) ? evt : ((event) ? event : null);
+  if (evt) {
+    var src = M_getEventTarget(evt);
+    var nodename = src.nodeName;
+    var key, code;
+    if (evt.keyCode) {
+      code = evt.keyCode;
+    } else if (evt.which) {
+      code = evt.which;
+    }
+    key = String.fromCharCode(code);
+    if (nodename == "TEXTAREA" || nodename == "INPUT" ) {
+      if (typeof input_handler != 'undefined') {
+        return input_handler(evt, src, code, key);
+      }
+      return true;
+    }
+    if (evt.altKey || evt.altLeft ||
+        evt.ctrlKey || evt.ctrlLeft ||
+        evt.metaKey) {
+      // Ignore if any modifier keys are set
+      return true;
+    }
+    if (key == '?' ||
+	code == (window.event ? 27 /* ESC */ : evt.DOM_VK_ESCAPE)) {
+      var help = document.getElementById("help");
+      if (help && typeof helpDisplayed != "undefined") {
+	// Only allow the help to be turned on with the ? key.
+	if (helpDisplayed || key == '?') {
+	  helpDisplayed = !helpDisplayed;
+	}
+	help.style.display = helpDisplayed ? "" : "none";
+      }
+      return false;
+    }
+    return handler(key);
+  }
+  return true;
+}
+
+/**
+ * Helper event handler for the keypress event in a comment textarea.
+ * @param {Event} evt The event object that triggered this callback
+ * @param {Node} src The textarea document element
+ * @param {int} code The key code of the key press
+ * @param {String} key The string describing the key press
+ * @return false if the key press was handled
+ */
+function M_commentTextKeyPress_(evt, src, code, key) {
+  if (src.nodeName == "TEXTAREA") {
+    if (evt.ctrlKey || evt.ctrlLeft) {
+      if (key == 's' || code == 19 /* ASCII code for ^S */) {
+        // Save the form corresponding to this text area.
+        M_disableCarefulUnload();
+        if (src.form.save.onclick) {
+          return src.form.save.onclick();
+        } else {
+          src.form.submit();
+          return false;
+        }
+      }
+    } else if (evt.altKey || evt.altLeft) {
+    } else if (evt.shiftKey || evt.shiftLeft) {
+    } else if (evt.metaKey) {
+    } else {
+      if (code == (window.event ? 27 /* ASCII code for Escape */
+                                : evt.DOM_VK_ESCAPE)) {
+        return src.form.cancel.onclick();
+      }
+    }
+  }
+  return true;
+}
+
+/**
+ * Event handler for the keypress event in the file view.
+ * @param {Event} evt The event object that triggered this callback
+ * @return false if the key press was handled
+ */
+function M_keyPress(evt) {
+  return M_keyPressCommon(evt, function(key) {
+    if (key == 'n') {
+      // next diff
+      if (hookState) hookState.gotoNextHook();
+    } else if (key == 'p') {
+      // previous diff
+      if (hookState) hookState.gotoPrevHook();
+    } else if (key == 'N') {
+      // next comment
+      if (hookState) hookState.gotoNextHook(true);
+    } else if (key == 'P') {
+      // previous comment
+      if (hookState) hookState.gotoPrevHook(true);
+    } else if (key == 'j') {
+      // next file
+      var nextFile = document.getElementById('nextFile');
+      if (nextFile) {
+        document.location.href = nextFile.href;
+      } else {
+        M_upToChangelist();
+      }
+    } else if (key == 'k') {
+      // prev file
+      var prevFile = document.getElementById('prevFile');
+      if (prevFile) {
+        document.location.href = prevFile.href;
+      } else {
+        M_upToChangelist();
+      }
+    } else if (key == 'm') {
+      document.location.href = publish_link;
+    } else if (key == 'u') {
+      // up to CL
+      M_upToChangelist();
+    } else if (key == 'i') {
+      // toggle intra line diff
+      if (intraLineDiff) intraLineDiff.toggle();
+    } else if (key == 's') {
+      // toggle show/hide inline comments
+      M_toggleAllInlineComments();
+    } else if (key == 'e') {
+      M_expandAllInlineComments();
+    } else if (key == 'c') {
+      M_collapseAllInlineComments();
+    } else if (key == '\r' || key == '\n') {
+      // respond to current comment
+      if (hookState) hookState.respond();
+    } else {
+      return true;
+    }
+    return false;
+  }, M_commentTextKeyPress_);
+}
+
+/**
+ * Event handler for the keypress event in the changelist view.
+ * @param {Event} evt The event object that triggered this callback
+ * @return false if the key press was handled
+ */
+function M_changelistKeyPress(evt) {
+  return M_keyPressCommon(evt, function(key) {
+    if (key == 'o' || key == '\r' || key == '\n') {
+      if (dashboardState) {
+	var child = dashboardState.curTR.cells[1].firstChild;
+	while (child && child.nextSibling && child.nodeName != "A") {
+	  child = child.nextSibling;
+	}
+	if (child && child.nodeName == "A") {
+	  location.href = child.href;
+	}
+      }
+    } else if (key == 'i') {
+      if (dashboardState) {
+	var child = dashboardState.curTR.cells[2].firstChild;
+	while (child && child.nextSibling &&
+	       (child.nodeName != "A" || child.style.display == "none")) {
+	  child = child.nextSibling;
+	}
+	if (child && child.nodeName == "A") {
+	  child.onclick();
+	}
+      }
+    } else if (key == 'I') {
+      if (M_CL_hiddenInlineDiffCount == M_CL_maxHiddenInlineDiffCount) {
+        M_showAllDiffs(M_CL_maxHiddenInlineDiffCount);
+      } else {
+	M_hideAllDiffs(M_CL_maxHiddenInlineDiffCount);
+      }
+    } else if (key == 'k') {
+      if (dashboardState) dashboardState.gotoPrev();
+    } else if (key == 'j') {
+      if (dashboardState) dashboardState.gotoNext();
+    } else if (key == 'm') {
+      document.location.href = publish_link;
+    } else if (key == 'u') {
+      // back to dashboard
+      document.location.href = '/';
+    } else {
+      return true;
+    }
+    return false;
+  });
+}
+
+/**
+ * Goes from the file view back up to the changelist view.
+ */
+function M_upToChangelist() {
+  var upCL = document.getElementById('upCL');
+  if (upCL) {
+    document.location.href = upCL.href;
+  }
+}
+
+/**
+ * Asynchronously request static analysis warnings as comments.
+ * @param {String} cl The current changelist
+ * @param {String} depot_path The id of the target element
+ * @param {String} a The version number of the left side to be analyzed
+ * @param {String} b The version number of the right side to be analyzed
+ */
+function M_getBugbotComments(cl, depot_path, a, b) {
+  var httpreq = M_getXMLHttpRequest();
+  if (!httpreq) {
+    return;
+  }
+
+  // Konqueror jumps to a random location for some reason
+  var scrollTop = M_getScrollTop(window);
+
+  httpreq.onreadystatechange = function () {
+    // Firefox 2.0, at least, runs this with readyState = 4 but all other
+    // fields unset when the timeout aborts the request, against all
+    // documentation.
+    if (httpreq.readyState == 4) {
+      if (httpreq.status == 200) {
+        M_updateWarningStatus(httpreq.responseText);
+      }
+      if (M_isKHTML()) {
+        window.scrollTo(0, scrollTop);
+      }
+    }
+  }
+  httpreq.open("GET", "/warnings/" + cl + "/" + depot_path +
+               "?a=" + a + "&b=" + b, true);
+  httpreq.send(null);
+}
+
+/**
+ * Updates a warning status td with the given HTML.
+ * @param {String} result The new html to replace the existing content
+ */
+function M_updateWarningStatus(result) {
+  var elem = document.getElementById("warnings");
+  elem.innerHTML = result;
+  if (hookState) hookState.updateHooks();
+}
+
+/* Ripped off from Caribou */
+var M_CONFIRM_DISCARD_NEW_MSG = "Your draft comment has not been saved " +
+                                "or sent.\n\nDiscard your comment?";
+
+var M_useCarefulUnload = true;
+
+
+/**
+ * Return an alert if the specified textarea is visible and non-empty.
+ */
+function M_carefulUnload(text_area_id) {
+  return function () {
+    var text_area = document.getElementById(text_area_id);
+    if (!text_area) return;
+    var text_parent = M_getParent(text_area);
+    if (M_useCarefulUnload && text_area.style.display != "none"
+                           && text_parent.style.display != "none"
+                           && goog.string.trim(text_area.value)) {
+      return M_CONFIRM_DISCARD_NEW_MSG;
+    }
+  };
+}
+
+function M_disableCarefulUnload() {
+  M_useCarefulUnload = false;
+}
+
+// History Table
+
+/**
+ * Toggles visibility of the snapshots that belong to the given parent.
+ * @param {String} parent The parent's index
+ * @param {Boolean} opt_show If present, whether to show or hide the group
+ */
+function M_toggleGroup(parent, opt_show) {
+  var children = M_historyChildren[parent];
+  if (children.length == 1) {  // No children.
+    return;
+  }
+
+  var show = (typeof opt_show != "undefined") ? opt_show :
+    (document.getElementById("history-" + children[1]).style.display != "");
+  for (var i = 1; i < children.length; i++) {
+    var child = document.getElementById("history-" + children[i]);
+    child.style.display = show ? "" : "none";
+  }
+
+  var arrow = document.getElementById("triangle-" + parent);
+  if (arrow) {
+    arrow.className = "triangle-" + (show ? "open" : "closed");
+  }
+}
+
+/**
+ * Makes the given groups visible.
+ * @param {Array.<Number>} parents The indexes of the parents of the groups
+ *     to show.
+ */
+function M_expandGroups(parents) {
+  for (var i = 0; i < parents.length; i++) {
+    M_toggleGroup(parents[i], true);
+  }
+  document.getElementById("history-expander").style.display = "none";
+  document.getElementById("history-collapser").style.display = "";
+}
+
+/**
+ * Hides the given parents, except for groups that contain the
+ * selected radio buttons.
+ * @param {Array.<Number>} parents The indexes of the parents of the groups
+ *     to hide.
+ */
+function M_collapseGroups(parents) {
+  // Find the selected snapshots
+  var parentsToLeaveOpen = {};
+  var form = document.getElementById("history-form");
+  var formLength = form.a.length;
+  for (var i = 0; i < formLength; i++) {
+    if (form.a[i].checked || form.b[i].checked) {
+      var element = "history-" + form.a[i].value;
+      var name = document.getElementById(element).getAttribute("name");
+      if (name != "parent") {
+        // The name of a child is "parent-%d" % parent_index.
+        var parentIndex = Number(name.match(/parent-(\d+)/)[1]);
+        parentsToLeaveOpen[parentIndex] = true;
+      }
+    }
+  }
+
+  // Collapse the parents we need to collapse.
+  for (var i = 0; i < parents.length; i++) {
+    if (!(parents[i] in parentsToLeaveOpen)) {
+      M_toggleGroup(parents[i], false);
+    }
+  }
+  document.getElementById("history-expander").style.display = "";
+  document.getElementById("history-collapser").style.display = "none";
+}
+
+/**
+ * Expands the reverted files section of the files list in the changelist view.
+ *
+ * @param {String} tableid The id of the table element that contains hidden TR's
+ * @param {String} hide The id of the element to hide after this is completed.
+ */
+function M_showRevertedFiles(tableid, hide) {
+  var table = document.getElementById(tableid);
+  if (!table) return;
+  var rowsLength = table.rows.length;
+  for (var i = 0; i < rowsLength; i++) {
+    var row = table.rows[i];
+    if (row.getAttribute("name") == "afile") row.style.display = "";
+  }
+  if (dashboardState) dashboardState.initialize();
+  var h = document.getElementById(hide);
+  if (h) h.style.display = "none";
+}
+
+// Undo draft cancel
+
+/**
+ * An associative array mapping keys that identify inline comments to draft
+ * text values.
+ *   New inline comments have keys 'new-lineno-snapshot_id'
+ *   Edit inline comments have keys 'edit-cid-lineno-side'
+ *   Reply inline comments have keys 'reply-cid-lineno-side'
+ * @type Object
+ */
+var M_savedInlineDrafts = new Object();
+
+/**
+ * Saves draft text from a form.
+ * @param {String} draftKey The key identifying the saved draft text
+ * @param {String} text The draft text to be saved
+ */
+function M_saveDraftText_(draftKey, text) {
+  M_savedInlineDrafts[draftKey] = text;
+}
+
+/**
+ * Clears saved draft text. Does nothing with an invalid key.
+ * @param {String} draftKey The key identifying the saved draft text
+ */
+function M_clearDraftText_(draftKey) {
+  delete M_savedInlineDrafts[draftKey];
+}
+
+/**
+ * Restores saved draft text to a form. Does nothing with an invalid key.
+ * @param {String} draftKey The key identifying the saved draft text
+ * @param {Element} form The form that contains the comment to be restored
+ * @param {Element} opt_selectAll Whether the restored text should be selected.
+ *                                True by default.
+ * @return {Boolean} true if we found a saved draft and false otherwise
+ */
+function M_restoreDraftText_(draftKey, form, opt_selectAll) {
+  if (M_savedInlineDrafts[draftKey]) {
+    form.text.value = M_savedInlineDrafts[draftKey];
+    if (typeof opt_selectAll == 'undefined' || opt_selectAll) {
+      form.text.select();
+    }
+    return true;
+  }
+  return false;
+}
+
+// Dashboard CL navigation
+
+/**
+ * M_DashboardState class. Keeps track of the current position of
+ * the selector on the dashboard, and moves it on keypress.
+ * @param {Window} win The window that the dashboard table is in.
+ * @param {String} trName The name of TRs that we will move between.
+ * @param {String} cookieName The cookie name to store the marker position into.
+ * @constructor
+ */
+function M_DashboardState(win, trName, cookieName) {
+  /**
+   * The position of the marker, 0-indexed into the trCache array.
+   * @ype Integer
+   */
+  this.trPos = 0;
+
+  /**
+   * The current TR object that the marker is pointing at.
+   * @type Element
+   */
+  this.curTR = null;
+
+  /**
+   * Array of tr rows that we are moving between. Computed once (updateable).
+   * @type Array
+   */
+  this.trCache = [];
+
+  /**
+   * The window that the table is in, used for positioning information.
+   * @type Window
+   */
+  this.win = win;
+
+  /**
+   * The expected name of tr's that we are going to cache.
+   * @type String
+   */
+  this.trName = trName;
+
+  /**
+   * The name of the cookie value where the marker position is stored.
+   * @type String
+   */
+  this.cookieName = cookieName;
+
+  this.initialize();
+}
+
+/**
+ * Initializes the clCache array, and moves the marker into the first position.
+ */
+M_DashboardState.prototype.initialize = function() {
+  var filter = function(arr, lambda) {
+    var ret = [];
+    var arrLength = arr.length;
+    for (var i = 0; i < arrLength; i++) {
+      if (lambda(arr[i])) {
+	ret.push(arr[i]);
+      }
+    }
+    return ret;
+  };
+  var cache;
+  if (M_isIE()) {
+    // IE does not recognize the 'name' attribute on TR tags
+    cache = filter(document.getElementsByTagName("TR"),
+		   function (elem) { return elem.name == this.trName; });
+  } else {
+    cache = document.getElementsByName(this.trName);
+  }
+
+  this.trCache = filter(cache, function (elem) {
+    return elem.style.display != "none";
+  });
+
+  if (document.cookie && this.cookieName) {
+    cookie_values = document.cookie.split(";");
+    for (var i=0; i<cookie_values.length; i++) {
+      name = cookie_values[i].split("=")[0].replace(/ /g, '');
+      if (name == this.cookieName) {
+        this.trPos = cookie_values[i].split("=")[1];
+      }
+    }
+  }
+
+  this.goto_(0);
+}
+
+/**
+ * Moves the cursor to the curCL position, and potentially scrolls the page to
+ * bring the cursor into view.
+ * @param {Integer} direction Positive for scrolling down, negative for
+ *                            scrolling up, and 0 for no scrolling.
+ */
+M_DashboardState.prototype.goto_ = function(direction) {
+  var oldTR = this.curTR;
+  if (oldTR) {
+    oldTR.cells[0].firstChild.style.visibility = "hidden";
+  }
+  this.curTR = this.trCache[this.trPos];
+  this.curTR.cells[0].firstChild.style.visibility = "";
+  if (this.cookieName) {
+    document.cookie = this.cookieName+'='+this.trPos;
+  }
+
+  if (!M_isElementVisible(this.win, this.curTR)) {
+    M_scrollIntoView(this.win, this.curTR, direction);
+  }
+}
+
+/**
+ * Moves the cursor up one.
+ */
+M_DashboardState.prototype.gotoPrev = function() {
+  if (this.trPos > 0) this.trPos--;
+  this.goto_(-1);
+}
+
+/**
+ * Moves the cursor down one.
+ */
+M_DashboardState.prototype.gotoNext = function() {
+  if (this.trPos < this.trCache.length - 1) this.trPos++;
+  this.goto_(1);
+}
+
+/**
+ * Event handler for dashboard key presses. Dispatches cursor moves, as well as
+ * opening CLs.
+ */
+function M_dashboardKeyPress(evt) {
+  return M_keyPressCommon(evt, function(key) {
+    if (key == 'k') {
+      if (dashboardState) dashboardState.gotoPrev();
+    } else if (key == 'j') {
+      if (dashboardState) dashboardState.gotoNext();
+    } else if (key == 'o' || key == '\r' || key == '\n') {
+      if (dashboardState) {
+	var child = dashboardState.curTR.cells[2].firstChild;
+	while (child && child.nodeName != "A") {
+	  child = child.firstChild;
+	}
+	if (child) {
+	  location.href = child.href;
+	}
+      }
+    } else {
+      return true;
+    }
+    return false;
+  });
+}
+
+/*
+ * Function to request more context between diff chunks.
+ * See _ShortenBuffer() in codereview/engine.py.
+ */
+function M_expandSkipped(id_before, id_after, where, id_skip) {
+  links = document.getElementById('skiplinks-'+id_skip).childNodes;
+  for (var i=0; i<links.length; i++) {
+	links[i].href = '#skiplinks-'+id_skip;
+  }
+  tr = document.getElementById('skip-'+id_skip);
+  var httpreq = M_getXMLHttpRequest();
+  if (!httpreq) {
+    html = '<td colspan="2" style="text-align: center;">';
+    html = html + 'Failed to retrieve additional lines. ';
+    html = html + 'Please update your context settings.';
+    html = html + '</td>';
+    tr.innerHTML = html;
+  }
+  aborted = false;
+  httpreq.onreadystatechange = function () {
+    if (httpreq.readyState == 4 && !aborted) {
+      if (httpreq.status == 200) {
+        response = eval('('+httpreq.responseText+')');
+        for (var i=0; i<response.length; i++) {
+          var data = response[i];
+          var row = document.createElement("tr");
+          for (var j=0; j<data[0].length; j++) {
+            row.setAttribute(data[0][j][0], data[0][j][1]);
+          }
+          if ( where == 't' ) {
+            tr.parentNode.insertBefore(row, tr);
+          } else {
+            tr.parentNode.insertBefore(row, tr.nextSibling);
+          }
+          row.innerHTML = data[1];
+        }
+        var curr = document.getElementById('skipcount-'+id_skip);
+        var new_count = parseInt(curr.innerHTML)-response.length/2;
+        if ( new_count > 0 ) {
+          if ( where == 'b' ) {
+            var new_before = id_before;
+            var new_after = id_after-response.length/2;
+          } else {
+            var new_before = id_before+response.length/2;
+            var new_after = id_after;
+          }
+          curr.innerHTML = new_count;
+          if ( new_count <= 10 ) {
+  	    html = '<a href="javascript:M_expandSkipped('+new_before;
+            html += ','+new_after+',\'b\','+id_skip+');">Show</a>  ';
+          } else {
+            var html = '<a href="javascript:M_expandSkipped('+new_before;
+            html += ','+new_after+',\'t\', '+id_skip+');">Show 10 above</a> ';
+            html += '<a href="javascript:M_expandSkipped('+new_before;
+            html += ','+new_after+',\'b\','+id_skip+');">Show 10 below</a> ';
+          }
+          document.getElementById('skiplinks-'+(id_skip)).innerHTML = html;
+        } else {
+          tr.parentNode.removeChild(tr);
+        }
+        if (hookState.hookPos != -2 &&
+            M_isElementVisible(window, hookState.indicator)) {
+          hookState.gotoHook(-1);
+        }
+      }
+    }
+  }
+
+  url = skipped_lines_url+id_before+'/'+id_after+'/'+where;
+  httpreq.open('GET', url, true);
+  httpreq.send('');
+}
+
+/**
+ * Finds the element position.
+ */
+function M_getElementPosition(obj) {
+  var curleft = curtop = 0;
+  if (obj.offsetParent) {
+    do {
+      curleft += obj.offsetLeft;
+      curtop += obj.offsetTop;
+    } while (obj = obj.offsetParent);
+  }
+  return [curleft,curtop];
+}
+
+/**
+ * Position the user info popup according to the mouse event coordinates
+ */
+function M_positionUserInfoPopup(obj, userPopupDiv) {
+  pos = M_getElementPosition(obj);
+  userPopupDiv.style.left = pos[0] + "px";
+  userPopupDiv.style.top = pos[1] + 20 + "px";
+}
+
+/**
+ * Brings up user info popup using ajax
+ */
+function M_showUserInfoPopup(obj) {
+  var DIV_ID = "userPopupDiv";
+  var userPopupDiv = document.getElementById(DIV_ID);
+  var url = obj.getAttribute("href")
+  var index = url.indexOf("/user/");
+  var user_key = url.substring(index + 6);
+
+  if (!userPopupDiv) {
+    var userPopupDiv = document.createElement("div");
+    userPopupDiv.className = "popup";
+    userPopupDiv.id = DIV_ID;
+    userPopupDiv.filter = 'alpha(opacity=85)';
+    userPopupDiv.opacity = '0.85';
+    userPopupDiv.innerHTML = "";
+    userPopupDiv.onmouseout = function() {
+      userPopupDiv.style.visibility = 'hidden';
+    }
+    document.body.appendChild(userPopupDiv);
+  }
+  M_positionUserInfoPopup(obj, userPopupDiv);
+
+  var httpreq = M_getXMLHttpRequest();
+  if (!httpreq) {
+    return true;
+  }
+
+  var aborted = false;
+  var httpreq_timeout = setTimeout(function() {
+    aborted = true;
+    httpreq.abort();
+  }, 5000);
+
+  httpreq.onreadystatechange = function () {
+    if (httpreq.readyState == 4 && !aborted) {
+      clearTimeout(httpreq_timeout);
+      if (httpreq.status == 200) {
+        userPopupDiv = document.getElementById(DIV_ID);
+        userPopupDiv.innerHTML=httpreq.responseText;
+        userPopupDiv.style.visibility = "visible";
+      } else {
+        //Better fail silently here because it's not
+        //critical functionality
+      }
+    }
+  }
+  httpreq.open("GET", "/user_popup/" + user_key, true);
+  httpreq.send(null);
+  obj.onmouseout = function() {
+    aborted = true;
+    userPopupDiv.style.visibility = 'hidden';
+    obj.onmouseout = null;
+  }
+}
+
+/**
+ * TODO(jiayao,andi): docstring
+ */
+function M_showPopUp(obj, id) {
+  var popup = document.getElementById(id);
+  var pos = M_getElementPosition(obj);
+  popup.style.left = pos[0]+'px';
+  popup.style.top = pos[1]+20+'px';
+  popup.style.visibility = 'visible';
+  obj.onmouseout = function() {
+    popup.style.visibility = 'hidden';
+    obj.onmouseout = null;
+  }
+}
+
+/**
+ * TODO(andi): docstring
+ */
+function M_jumpToPatch(select, change, patchset, unified) {
+  if ( unified ) {
+    part = 'patch';
+  } else {
+    part = 'diff';
+  }
+  document.location.href = '/'+change+'/'+part+'/'+patchset+'/'+select.value;
+}
+
+/**
+ * Add or remove a star to/from the given change.
+ * @param {Integer} id The change id.
+ * @param {String} url The url fragment to append: "/star" or "/unstar".
+ */
+function M_setChangeStar_(id, url, xsrf) {
+  var httpreq = M_getXMLHttpRequest();
+  if (!httpreq) {
+    return true;
+  }
+  httpreq.onreadystatechange = function () {
+    if (httpreq.readyState == 4) {
+      if (httpreq.status == 200) {
+	  var elem = document.getElementById("change-star-" + id);
+	  elem.innerHTML = httpreq.responseText;
+      }
+    }
+  }
+
+  body = ''
+  body += 'change_id=' + escape('' + id);
+  body += '&'
+  body += 'xsrf=' + xsrf.replace(/\+/g, '%2B')
+
+  httpreq.open("POST", url, true);
+  httpreq.setRequestHeader('Content-Type',
+                           'application/x-www-form-urlencoded');
+  httpreq.send(body)
+}
diff --git a/webapp/static/star-dark.gif b/webapp/static/star-dark.gif
new file mode 100644
index 0000000..e8dc0a3
--- /dev/null
+++ b/webapp/static/star-dark.gif
Binary files differ
diff --git a/webapp/static/star-lite.gif b/webapp/static/star-lite.gif
new file mode 100644
index 0000000..77619f0
--- /dev/null
+++ b/webapp/static/star-lite.gif
Binary files differ
diff --git a/webapp/static/style.css b/webapp/static/style.css
new file mode 100644
index 0000000..41adbdc
--- /dev/null
+++ b/webapp/static/style.css
@@ -0,0 +1,549 @@
+div {
+}
+
+body {
+  min-width: 600px;
+  margin: 0;
+  padding: 5px 5px 0 5px;
+  border: 0px;
+}
+
+
+/* ****** Common styles ****** */
+
+/* the little gray help text */
+.tips {
+  color: #777;
+  font-size: 12px; 
+}
+
+
+/* ****** The stuff at the top ****** */
+
+#top_nav, #masthead {
+  margin: 0 -5px 0 -5px;
+  padding: 0px 5px 0 5px;
+  border-bottom: 1px solid #b0bdcc;
+}
+
+#top_nav_left {
+  float: left;
+}
+
+#top_nav_right {
+  text-align: right;
+  right: 0;
+}
+
+#masthead {
+  height: 86px;
+}
+
+#masthead_logotype {
+  padding: 0;
+  margin: 7px 0 0 2px;
+  float: left;
+}
+
+#masthead_bugdroid {
+  margin-right: -5px;
+  float: right;
+}
+
+
+/* ****** Left nav bar ****** */
+
+#left_nav, #main_content {
+  float: left;
+}
+
+#left_nav {
+  font-family: Arial,Verdana,sans-serif;
+  font-size: 13px;
+  width: 155px;
+  margin-top: 5px;
+}
+
+.left_nav_box {
+  margin: 10px 0 6px 0;
+  overflow: hidden;
+  border: 1px solid #b0bdcc;
+  background-color: #d4e9a9;
+}
+
+#left_nav h4 {
+  font-weight: bold;
+  margin: 0;
+  padding: 3px 5px 3px 5px;
+  background-color: #a5c639;
+  color: white;
+}
+
+#left_nav ul {
+  list-style: none;
+  margin: 5px;
+  padding: 0;
+}
+
+#left_nav ul li {
+  font-family: Verdana,sans-serif;
+  font-size: 12px;
+}
+
+#left_nav ul a {
+  outline-color: -moz-use-text-color;
+  outline-style: none;
+  outline-width: medium;
+  color: #336600;
+}
+
+#left_nav ul a:visited {
+  color: #551a8b;
+}
+
+#left_nav ul a:hover {
+  color: #551a8b;
+}
+
+/* ****** Right / expandable column ****** */
+#main_content_parent {
+  float: right;
+  position: absolute;
+  margin-top: 8px;
+  left: 180px;
+  right: 25px;
+}
+
+#page_footer {
+  color: #b0bdcc;
+  padding-bottom: 15px;
+  text-align: right;
+  right: 0;
+}
+
+/* ****** Main content ****** */
+
+#main_content {
+  width: 100%;
+  min-width: 435px;
+  font-family: Arial,Verdana,sans-serif;
+  font-size: 11pt;
+  padding: 0 0 20px 0;
+}
+
+h1 {
+  margin: 3px 0 8px 0;
+  padding: 0;
+  font-size: 16pt;
+  font-weight: bold;
+}
+
+/* ****** Changes ****** */
+
+.change-list {
+  width: 100%;
+  border-collapse: separate;
+  border-spacing: 0;
+}
+
+.change-list th {
+  background-color: #d4e9a9;
+}
+
+.change-list .header-columns, .change-list .header-title {
+  border-top: solid 8px white;
+}
+
+.change-list .pagination {
+  font-weight: normal;
+  text-align: right;
+}
+
+.change-list td, .change-list th {
+  text-align: left;
+  padding: 2px 6px 1px 6px;
+  margin: 0;
+}
+
+.change-list .header-columns {
+  font-weight: normal;
+  padding-top: 1px;
+}
+
+.change-list .header-columns {
+  border: 1px solid white;
+}
+
+.change-list td {
+  border-bottom: 1px solid #d4e9a9;
+  border-right: 1px solid #d4e9a9;
+}
+
+.change-list td:first-child {
+  border-bottom: 1px solid #d4e9a9;
+  border-left: 1px solid #d4e9a9;
+}
+
+.change-list td.selection {
+  border-right: hidden;
+  width: 14px;
+}
+
+.change-list td.star {
+  border-bottom: 1px solid #d4e9a9;
+  border-right: hidden;
+}
+
+.change-list .disabled {
+  color: #444;
+}
+
+/* ****** User Info Popup ****** */
+
+.popup {
+  visibility: hidden;
+  background-color: #a5c639;
+  border: 4px solid white;
+  position: absolute;
+}
+
+.popup-name {
+  background-color: #a5c639;
+  color: white;
+  margin: 4px 4px 0 4px;
+  border-left: 2px solid white;
+  border-top: 2px solid white;
+  border-right: 2px solid white;
+  padding: 3px 8px 3px 8px;
+}
+
+.popup-info {
+  background-color: white;
+  margin: 0 4px 4px 4px;
+  padding: 11px;
+}
+
+/* ****** User Info Popup ****** */
+
+.settings {
+  width: 100%;
+  margin-bottom: 20px;
+  border-collapse: collapse;
+  border-spacing: 0;
+  border: 1px solid #b0bdcc;
+}
+
+.settings th, .settings td {
+  border: 2px solid white;
+  text-align: left;
+  vertical-align: top;
+}
+
+.settings thead th {
+  background-color: #a5c639;
+  color: white;
+  padding: 1px 10px 1px 10px;
+}
+
+.settings tbody th, .settings tbody td {
+  background-color: #d4e9a9;
+  padding: 5px 10px 5px 10px;
+  white-space: nowrap;
+}
+
+.settings tbody td {
+  width: 100%;
+}
+
+
+/* ****** User Info Popup ****** */
+
+.project-field {
+  display: block;
+}
+
+
+/* ****** Change page ****** */
+
+.toggled_section {
+  margin: 0 0 20px 0;
+  padding: 0 0 0 15px;
+}
+
+.toggled_section h2 {
+  margin: 0 0 10px 0;
+  padding: 0;
+}
+
+.toggled_section_pointer {
+  margin-left: -15px;
+  padding-left: 15px;
+  background-image: url('/static/closedtriangle.gif');
+  background-position: center left;
+  background-repeat: no-repeat;
+  background-align: left;
+  text-decoration: none;
+  color: black;
+}
+
+.opentriangle {
+  background-image: url('/static/opentriangle.gif');
+}
+
+.change_description {
+  padding: 0;
+  margin: 0;
+}
+
+.change_details th {
+  text-align: left;
+  padding-right: 10px;
+}
+
+table.change_info_table {
+  border-collapse: collapse;
+  border-spacing: 0;
+  border-top: hidden;
+}
+
+table.change_info_table th {
+  border: 2px solid white;
+  font-weight: normal;
+  text-align: left;
+  vertical-align: top;
+  background-color: #d4e9a9;
+  padding: 2px 4px 0px 6px;
+  white-space: nowrap;
+  border-bottom: hidden;
+}
+
+table.change_info_table th.leftmost {
+  border-left: 2px solid #d4e9a9;
+}
+
+table.change_info_table th.rightmost {
+  border-right: 1px solid #d4e9a9;
+}
+
+table.change_info_table td {
+  border: 1px solid #d4e9a9;
+  padding: 2px 6px 1px 6px;
+}
+
+table.change_info_table .score {
+  text-align: center;
+}
+
+table.change_info_table .hint {
+  border: none;
+  background-color: white;
+  color: #444;
+}
+
+.change_actions {
+  margin-top: 5px;
+}
+
+.change_actions .action {
+  padding-right: 30px;
+  vertical-align: top;
+}
+
+.change_status {
+  margin: 5px 0 0 0;
+}
+
+.change_status ul {
+  margin: 0;
+  padding: 0 0 0 20px;
+}
+
+/** messages **/
+
+.message {
+  border: 1px solid #d4e9a9;
+  margin-top: 5px;
+  margin-bottom: 5px;
+}
+
+.message .header {
+  background-color: #d4e9a9;
+  white-space: nowrap;
+  cursor: pointer;
+  overflow: hidden;
+}
+
+.message .message-body {
+  padding: 5px;
+}
+
+.message .message-body pre {
+  margin: 0;
+  padding: 0;
+  font-size: 13px;
+}
+
+.message .message-actions {
+  padding: 0 5px 0 5px;
+  border-top: 1px solid #d4e9a9;
+  font-size: 12px;
+}
+
+.message .message-reply {
+  padding: 5px 5px 5px 5px;
+}
+
+/* ****** Diff page ****** */
+
+.code_diff {
+  margin-top: 90px;
+  margin-left: -100px;
+  width: 100%;
+  display: table;
+  border: 1px solid #b0bdcc;
+}
+
+.code_diff .codenav {
+  background-color: #d4e9a9;
+  padding: 2px 5px 2px 5px;
+  text-align: center;
+}
+
+.code_diff th {
+  padding: 3px 0 3px 0;
+  font-size: 12px;
+  min-width: 450px;
+}
+
+.comment-border textarea {
+  margin: 5px 5px 5px 0;
+  font-size: 12px;
+}
+
+.comment-border {
+  background-color: #d4e9a9;
+  padding: 5px;
+  font-size: 12px;
+}
+
+div.inline-comment-title {
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis; /* An IE-only feature */
+  cursor: pointer;
+}
+
+.comment-text {
+  font-family: monospace;
+  font-size: 12px;
+  padding: 5px;
+}
+
+/** begin code **/
+
+/* Old/new styles for replace, delete, insert, equal, blank (no text) */
+.olddark, .newdark, .oldreplace, .olddelete, .oldinsert, .oldequal, .oldblank,
+.oldlight, .newlight, .oldreplace1, .newreplace1,
+.newreplace, .newdelete, .newinsert, .newequal, .newblank,
+.oldmove, .oldchangemove, .oldchangemove1, .oldmove_out, .oldchangemove_out,
+.newmove, .newchangemove, .newchangemove1,
+.udiffadd, .udiffremove, .udiff, .debug-info {
+  white-space: pre;
+  font-family: monospace;
+  font-size: 12px;
+  vertical-align: top;
+}
+
+.oldlight {
+  background-color: #fee;
+  font-size: 100%;
+}
+
+.newlight {
+  background-color: #dfd;
+  font-size: 100%;
+}
+
+.olddark {
+  background-color: #faa;
+  font-size: 100%;
+}
+
+.newdark {
+  background-color: #9f9;
+  font-size: 100%;
+}
+
+.oldblank, .newblank {
+  background-color: #eee;
+}
+
+.oldreplace1 {
+  background-color: #faa;
+}
+
+.newreplace1 {
+  background-color: #9f9;
+}
+
+.newchangemove1 {
+  background-color: #9f9;
+}
+
+.oldreplace {
+  background-color: #fee;
+}
+
+.olddelete {
+  background-color: #faa;
+}
+
+.newreplace {
+  background-color: #dfd;
+}
+
+.newchangemove {
+  background-color: #dfd;
+}
+
+.newinsert {
+  background-color: #9f9;
+}
+
+.oldinsert, newdelete {
+  background-color: #ddd;
+}
+
+.oldequal, .newequal, .newmove {
+  background-color: #fff;
+}
+
+.oldmove, .oldchangemove, .oldchangemove1, .moved_header, .moved_lno {
+  background-color: #ff9;
+}
+
+.oldmove_out, .oldchangemove_out, .moved_out_header {
+  background-color: #fc8;
+}
+
+.movelight {
+  background-color: #ff9;
+  font-size: 100%;
+}
+
+.oldmovedark {
+  background-color: #faa;
+  font-size: 100%;
+}
+
+.newmovedark {
+  background-color: #9f9;
+  font-size: 100%;
+}
+
+#signin-link {
+  margin-top: 20px;
+}
+
+/** end code **/
+
diff --git a/webapp/static/widgets.js b/webapp/static/widgets.js
new file mode 100644
index 0000000..3187d1a
--- /dev/null
+++ b/webapp/static/widgets.js
@@ -0,0 +1,358 @@
+/*
+ * Copyright (C) 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// utilities
+// =============================================================================
+
+function trim(str)
+{
+    return str.replace(/^\s+|\s+$/g, '');
+}
+
+function add_input(mom, type, name, value)
+{
+    var input = document.createElement("input");
+    input.type = type;
+    if (name) input.name = name
+    if (value) input.value = value;
+    mom.appendChild(input);
+    return input;
+}
+
+function add_option(select, text, value, selected)
+{
+    var opt = document.createElement("option");
+    opt.text = text;
+    opt.value = value;
+    opt.selected = selected;
+    select.appendChild(opt);
+    return opt;
+}
+
+function set_error(me, error)
+{
+    var o = me.error_div;
+    if (error) {
+        var N = o.childNodes.length;
+        for (var i=0; i<N; i++) {
+            o.removeChild(o.childNodes[0]);
+        }
+        o.appendChild(document.createTextNode(error));
+        o.style.display = "block";
+    } else {
+        o.style.display = "none";
+    }
+}
+
+// UserGroupField
+// =============================================================================
+
+function UserGroupField_add_keydown(ev, me)
+{
+    if (ev.keyCode == 13) {
+        // enter
+        UserGroupField_add(me);
+        return false;
+    }
+    return true;
+}
+
+function UserGroupField_insertEntry(me, entry)
+{
+    var type = entry["type"];
+    var key = entry["key"];
+    var display_name;
+    if (type == "user") {
+        display_name = entry["real_name"] + " <" + entry["email"] + ">";
+    } else if (type == "group") {
+        display_name = "Group: " + entry["name"];
+    }
+
+    var tr = me.table.insertRow(me.table.rows.length-1);
+    var td = tr.insertCell(-1);
+    td.appendChild(document.createTextNode(display_name));
+    var td = tr.insertCell(-1);
+    var input = document.createElement("input");
+    var input = add_input(td, "button", null, "delete");
+    input.onclick = function () { UserGroupField_delete(me, tr); };
+    add_input(td, "hidden", me.name + "_keys", key);
+
+    me.people[me.people.length] = key;
+}
+
+function UserGroupField_insertField(mom, name, allow_users, allow_groups, initial)
+{
+    var me = new Object();
+    me.name = name;
+    me.allow_users = allow_users;
+    me.allow_groups = allow_groups;
+    me.people = []; // The users and groups already added
+
+    // the table
+    me.table = document.createElement("table");
+
+    // the add field button
+    var tr = me.table.insertRow(-1);
+    var td = tr.insertCell(-1);
+    me.add_text = add_input(td, "text", name + "_add", "");
+    me.add_text.onkeypress = function(ev) {
+            return UserGroupField_add_keydown(ev, me);
+        };
+    var td = tr.insertCell(-1);
+    var add_button = add_input(td, "button", null, "add");
+    add_button.onclick = function() {
+            UserGroupField_add(me);
+        };
+    var td = tr.insertCell(-1);
+    me.error_div = document.createElement("div");
+    me.error_div.style.display = "none";
+    me.error_div.style.color = "red"; // TODO(joeo) CSS!
+    td.appendChild(me.error_div);
+
+    for (var i=0; i<initial.length; i++) {
+        UserGroupField_insertEntry(me, initial[i]);
+    }
+
+    mom.appendChild(me.table);
+}
+
+function UserGroupField_add(me)
+{
+    // figure out the value they want
+    var val = trim(me.add_text.value);
+    if (val.length == 0) {
+        // bail if it is empty
+        me.add_text.value = "";
+        return;
+    }
+
+    if (me.add_text.ajaxController) {
+        me.add_text.ajaxController.cancel();
+    }
+    me.add_text.ajaxController = get_json(
+            "/admin/people_info?op=get_user_info&id=" + escape(val)
+                + "&allow_users=" + me.allow_users + "&allow_groups=" + me.allow_groups,
+            function(success, result) {
+                if (!success) {
+                    show_bad_connection_error("UserGroupField_add_callback");
+                    return;
+                }
+                
+                if (!result) {
+                    if (me.allow_users && me.allow_groups) {
+                        set_error(me, "Not a registered email address or group name.");
+                    } else if (me.allow_users) {
+                        set_error(me, "Not a registered email address.");
+                    } else if (me.allow_groups) {
+                        set_error(me, "Not a registered group name.");
+                    }
+                    return;
+                }
+
+                // check to make sure it is not a duplicate
+                var key = result["key"];
+                var type = result["type"];
+                for (var i=0; i<me.people.length; i++) {
+                    if (me.people[i] == key) {
+                        if (type == "user") {
+                            set_error(me, "That user is already added.");
+                        } else {
+                            set_error(me, "That group is already added.");
+                        }
+                        return;
+                    }
+                }
+
+                // add the new row and hidden inputs
+                UserGroupField_insertEntry(me, result);
+
+                // clear the error and text box
+                set_error(me, null);
+                me.add_text.value = "";
+            });
+}
+
+function UserGroupField_delete(me, tr)
+{
+    me.table.deleteRow(tr);
+}
+
+
+// ApproversField
+// =============================================================================
+
+function ApproversField_insertEntry(me, entry)
+{
+    var files;
+    var key;
+    var approvers;
+    var verifiers;
+    var bad_files;
+    if (entry) {
+        files = entry["files"];
+        bad_files = entry["bad_files"];
+        key = entry["key"];
+        approvers = entry["approvers"];
+        verifiers = entry["verifiers"];
+    } else {
+        files = "";
+        bad_files = "";
+        key = "added_" + me.key_index;
+        me.key_index = me.key_index + 1;
+        approvers = [];
+        verifiers = [];
+    }
+    var field_key = me.name + "_" + key;
+
+    var tr = me.table.insertRow(me.table.rows.length);
+    var td = tr.insertCell(-1);
+
+    var style = me.styles["approval"];
+    if (style) {
+        td.className = style;
+    }
+
+    if (bad_files.length > 0) {
+        var bad_files_div = document.createElement("div");
+        td.appendChild(bad_files_div);
+        bad_files_div.className = "bad_files";
+        bad_files_div.appendChild(document.createTextNode("Illegal file paths:"));
+        var bad_files_ul = document.createElement("ul");
+        bad_files_div.appendChild(bad_files_ul);
+        for (var i in bad_files) {
+            var bad_file_li = document.createElement("li");
+            bad_files_ul.appendChild(bad_file_li);
+            bad_file_li.appendChild(document.createTextNode(bad_files[i]));
+        }
+    }
+
+    var textarea = document.createElement("textarea");
+    textarea.name = field_key + "_files";
+    textarea.cols = 100;
+    textarea.rows = 5;
+    textarea.appendChild(document.createTextNode(files));
+    td.appendChild(textarea);
+
+    me.keys_field = add_input(td, "hidden", me.name + "_keys", key);
+
+    var field_table = document.createElement("table");
+    field_table.width = "100%";
+    td.appendChild(field_table);
+    var field_tr = field_table.insertRow(-1);
+    var field_td = document.createElement("th");
+    field_tr.appendChild(field_td);
+    field_td.appendChild(document.createTextNode("Approvers"));
+    field_td = document.createElement("th");
+    field_tr.appendChild(field_td);
+    field_td.appendChild(document.createTextNode("Verifiers"));
+    var field_tr = field_table.insertRow(-1);
+    field_td = field_tr.insertCell(-1);
+    UserGroupField_insertField(field_td, field_key + "_approvers", true, true, approvers);
+    
+    field_td = field_tr.insertCell(-1);
+    UserGroupField_insertField(field_td, field_key + "_verifiers", true, true, verifiers);
+
+    
+    var td = tr.insertCell(-1);
+    td.vAlign = "top";
+    var input = add_input(td, "button", null, "delete");
+    input.onclick = function () { ApproversField_delete(me, tr); };
+    if (style) {
+        td.className = style;
+    }
+}
+
+function ApproversField_insertField(mom, name, initial, styles)
+{
+    var me = new Object();
+    me.name = name;
+    me.key_index = 0;
+    me.styles = styles;
+
+    mom = document.getElementById(mom);
+
+    me.div = document.createElement("div");
+    me.table = document.createElement("table");
+    me.div.appendChild(me.table);
+
+    for (var i=0; i<initial.length; i++) {
+        ApproversField_insertEntry(me, initial[i]);
+    }
+
+    var add_button = add_input(me.div, "button", null, "Add Approver");
+    add_button.onclick = function() { ApproversField_add(me); };
+
+    mom.appendChild(me.div);
+}
+
+function ApproversField_add(me)
+{
+    ApproversField_insertEntry(me, null);
+}
+
+function ApproversField_delete(me, tr)
+{
+    me.table.deleteRow(tr);
+}
+
+
+// ApproversField
+// =============================================================================
+
+function ProjectField_insertEntry(me, name, project_list, value)
+{
+    var s = document.createElement("select");
+    s.name = name;
+    s.className = "project-field"
+    me.mom.appendChild(s);
+    add_option(s, "--", null, value == null);
+    for (var i in project_list) {
+        var p = project_list[i];
+        add_option(s, p["name"], p["key"], p["key"] == value);
+    }
+    me.last = s;
+
+    s.onclick = function() {
+            if (s.selectedIndex == 0) {
+                // the -- item
+                if (s != me.last) {
+                    me.mom.removeChild(s);
+                }
+            } else {
+                if (s == me.last) {
+                    ProjectField_insertEntry(me, name, project_list, "--");
+                }
+            }
+        };
+}
+
+function ProjectField_insertField(mom, name, project_list, initial)
+{
+    var me = new Object();
+    me.mom = mom;
+
+    var current = new Array(initial.length);
+    for (var i in initial) {
+        current[i] = initial[i];
+    }
+
+    for (var i in current) {
+        ProjectField_insertEntry(me, name, project_list, current[i]);
+    }
+    ProjectField_insertEntry(me, name, project_list, null);
+}
+
diff --git a/webapp/static/x.png b/webapp/static/x.png
new file mode 100644
index 0000000..825397b
--- /dev/null
+++ b/webapp/static/x.png
Binary files differ
diff --git a/webapp/static/zippyplus.gif b/webapp/static/zippyplus.gif
new file mode 100644
index 0000000..596b212
--- /dev/null
+++ b/webapp/static/zippyplus.gif
Binary files differ
diff --git a/webapp/templates/404.html b/webapp/templates/404.html
new file mode 100644
index 0000000..e45a7d3
--- /dev/null
+++ b/webapp/templates/404.html
@@ -0,0 +1 @@
+<h1>404 Not Found</h1>
diff --git a/webapp/templates/500.html b/webapp/templates/500.html
new file mode 100644
index 0000000..58e8bf1
--- /dev/null
+++ b/webapp/templates/500.html
@@ -0,0 +1 @@
+<h1>500 Server Error</h1>
diff --git a/webapp/templates/admin.html b/webapp/templates/admin.html
new file mode 100644
index 0000000..0ae226e
--- /dev/null
+++ b/webapp/templates/admin.html
@@ -0,0 +1,7 @@
+{%extends "admin_base.html"%}
+{%block title1%}Admin{%endblock%}
+{%block body%}
+
+
+{%endblock%}
+
diff --git a/webapp/templates/admin_base.html b/webapp/templates/admin_base.html
new file mode 100644
index 0000000..134134f
--- /dev/null
+++ b/webapp/templates/admin_base.html
@@ -0,0 +1,21 @@
+{%extends "base.html"%}
+
+{%block mainmenu2%}
+  <div class="left_nav_box">
+  <h4>Admin</h4>
+  <ul>
+  {% if request.user_is_admin %}
+    <li><a href="{%url codereview.people.admin_users%}">Users</a></li>
+    <li><a href="{%url codereview.people.admin_groups%}">Groups</a></li>
+  {% endif %}
+  {% if request.user_is_admin or request.projects_owned_by_user %}
+    <li><a href="{%url codereview.project.project_list%}">Projects</a></li>
+  {% endif %}
+  {% if is_gae_admin %}
+    <li><a href="{%url codereview.views.admin_settings%}">Settings</a></li>
+  {% endif %}
+  </ul>
+  </div><!-- div class="left_nav_box" -->
+{%endblock%}
+
+
diff --git a/webapp/templates/admin_datastore_delete.html b/webapp/templates/admin_datastore_delete.html
new file mode 100644
index 0000000..d5a36d1
--- /dev/null
+++ b/webapp/templates/admin_datastore_delete.html
@@ -0,0 +1,47 @@
+{%extends "admin_base.html"%}
+{%block title1%}Data Store Delete{%endblock%}
+{%block body%}
+
+<h2>Data Store Delete</h2>
+
+<div id="warning-message">
+<p>If you really mean to delete your data
+store enter <code>DELETE EVERYTHING</code>
+into the box below.
+</p>
+
+<p><b><i><font color="rd">
+Once started, there is no going back from this operation.
+</font></i></b></p>
+</div>
+
+<p id="active-message" style="display:none">
+<font color="red"><blink>Deleting... please wait ...</blink></font>
+</p>
+
+<form
+  name="delete_form"
+  method="POST"
+  action="{%url codereview.views.admin_datastore_delete%}">
+<table>
+{{form}}
+<tr><td><input type="submit" value="Delete Everything" /></td></tr>
+</table>
+</form>
+
+<script type="text/javascript"><!--
+if (document.delete_form.really.value == 'DELETE EVERYTHING') {
+  var hide;
+
+  hide = document.getElementById('warning-message');
+  hide.style.display = 'none';
+
+  hide = document.getElementById('active-message');
+  hide.style.display = 'inline';
+
+  setTimeout('document.delete_form.submit()', 500);
+}
+// -->
+</script>
+
+{%endblock%}
diff --git a/webapp/templates/admin_datastore_upgrade.html b/webapp/templates/admin_datastore_upgrade.html
new file mode 100644
index 0000000..33aae7f
--- /dev/null
+++ b/webapp/templates/admin_datastore_upgrade.html
@@ -0,0 +1,45 @@
+{%extends "admin_base.html"%}
+{%block title1%}Data Store Upgrade{%endblock%}
+{%block body%}
+
+<h2>Data Store Upgrade</h2>
+
+<div id="warning-message">
+<p>If you really mean to upgrade your data store enter
+<code>UPGRADE</code> into the box below.</p>
+
+<p><b><i><font color="rd">
+Once started, there is no going back from this operation.
+</font></i></b></p>
+</div>
+
+<p id="active-message" style="display:none">
+<font color="red"><blink>Upgrading... please wait ...</blink></font>
+</p>
+
+<form
+  name="upgrade_form"
+  method="POST"
+  action="{%url codereview.views.admin_datastore_upgrade%}">
+<table>
+{{form}}
+<tr><td><input type="submit" value="Upgrade" /></td></tr>
+</table>
+</form>
+
+<script type="text/javascript"><!--
+if (document.upgrade_form.really.value == 'UPGRADE') {
+  var hide;
+
+  hide = document.getElementById('warning-message');
+  hide.style.display = 'none';
+
+  hide = document.getElementById('active-message');
+  hide.style.display = 'inline';
+
+  setTimeout('document.upgrade_form.submit()', 500);
+}
+// -->
+</script>
+
+{%endblock%}
diff --git a/webapp/templates/admin_group.html b/webapp/templates/admin_group.html
new file mode 100644
index 0000000..086b1e3
--- /dev/null
+++ b/webapp/templates/admin_group.html
@@ -0,0 +1,33 @@
+{%extends "admin_base.html"%}
+{%block title1%}Users{%endblock%}
+{%block body%}
+
+{%if group%}
+<h2>Group {{group.name}}</h2>
+{%else%}
+<h2>New Group</h2>
+{%endif%}
+
+<form
+{%if group%}
+action="{%url codereview.people.admin_group group.name%}"
+{%else%}
+action="{%url codereview.people.admin_group_new%}"
+{%endif%}
+method="post">
+<table>
+{{form}}
+<tr><td><input name="save" type="submit" value="Save"></td></tr>
+</table>
+</form>
+
+{%if group and is_gae_admin%}
+<h2>Delete Group {{group.name}}</h2>
+
+<form action="{{del_url}}" method="post">
+{{del_url|form_xsrf}}
+<input type="submit" value="Delete Group"> There is no undo!
+</form>
+{%endif%}
+
+{%endblock%}
diff --git a/webapp/templates/admin_groups.html b/webapp/templates/admin_groups.html
new file mode 100644
index 0000000..7c4eea2
--- /dev/null
+++ b/webapp/templates/admin_groups.html
@@ -0,0 +1,23 @@
+{%extends "admin_base.html"%}
+{%block title1%}Groups{%endblock%}
+{%block body%}
+
+<h2>Groups</h2>
+
+<p><a href="{%url codereview.people.admin_group_new%}">New Group</a></p>
+<div class="change-list" style="width: inherit;">
+  <table id="queues" style="width: inherit;">
+    <tr>
+        <th>Name</th>
+        <th>Description</th>
+    </tr>
+    {%for group in groups%}
+    <tr>
+        <td><a href="{%url codereview.people.admin_group group.name%}">{{group.name}}</a></td>
+        <td>{{group.comment}}</td>
+    </tr>
+    {%endfor%}
+  </table>
+</div>
+
+{%endblock%}
diff --git a/webapp/templates/admin_project.html b/webapp/templates/admin_project.html
new file mode 100644
index 0000000..8bda24a
--- /dev/null
+++ b/webapp/templates/admin_project.html
@@ -0,0 +1,57 @@
+{%extends "admin_base.html"%}
+{%block title1%}Users{%endblock%}
+{%block body%}
+
+{%if project%}
+<h2>Project {{project.name}}</h2>
+{%else%}
+<h2>New Project</h2>
+{%endif%}
+
+<form
+{%if project%}
+action="{%url codereview.project.project_edit project.name%}"
+{%else%}
+action="{%url codereview.project.project_new%}"
+{%endif%}
+method="post">
+
+{{form.xsrf}}
+{%if form.xsrf.errors%}
+<ul>
+  {%for e in form.xsrf.errors%}
+    <li>{{e}}</li>
+  {%endfor%}
+</ul>
+{%endif%}
+
+<table class="largeform">
+<tr><th class="largeform_field">{{form.name.label_tag}}</th></tr>
+<tr><td class="largeform_field">{{form.name}}</td></tr>
+
+<tr><th class="largeform_field">{{form.comment.label_tag}}</th></tr>
+<tr><td class="largeform_field">{{form.comment}}</td></tr>
+
+<tr><th class="largeform_field">{{form.owners.label_tag}}</th></tr>
+<tr><td class="largeform_field">{{form.owners}}</td></tr>
+
+<tr><th class="largeform_field">Code Review</th></tr>
+<tr><td class="largeform_field">{{form.code_reviews}}</td></tr>
+
+
+<tr><td>
+    <input name="save" type="submit" value="Save">
+</td></tr>
+</table>
+</form>
+
+{%if project and is_gae_admin%}
+<h2>Delete Project {{project.name}}</h2>
+
+<form action="{{del_url}}" method="post">
+{{del_url|form_xsrf}}
+<input type="submit" value="Delete Project"> There is no undo!
+</form>
+{%endif%}
+
+{%endblock%}
diff --git a/webapp/templates/admin_projects.html b/webapp/templates/admin_projects.html
new file mode 100644
index 0000000..2ad86d0
--- /dev/null
+++ b/webapp/templates/admin_projects.html
@@ -0,0 +1,26 @@
+{%extends "admin_base.html"%}
+{%block title1%}Project{%endblock%}
+{%block body%}
+
+<h2>Projects</h2>
+
+{% if request.user_is_admin %}
+<p><a href="{%url codereview.project.project_new%}">New Project</a></p>
+{% endif %}
+
+<div class="change-list" style="width: inherit;">
+  <table id="queues" style="width: inherit;">
+    <tr>
+        <th>Name</th>
+        <th>Description</th>
+    </tr>
+    {%for project in projects%}
+    <tr>
+        <td><a href="{%url codereview.project.project_edit project.name%}">{{project.name}}</a></td>
+        <td>{{project.comment}}</td>
+    </tr>
+    {%endfor%}
+  </table>
+</div>
+
+{%endblock%}
diff --git a/webapp/templates/admin_settings.html b/webapp/templates/admin_settings.html
new file mode 100644
index 0000000..5d57787
--- /dev/null
+++ b/webapp/templates/admin_settings.html
@@ -0,0 +1,25 @@
+{%extends "admin_base.html"%}
+{%block title1%}Settings{%endblock%}
+{%block body%}
+
+<h2>Settings</h2>
+
+<h3>Internal API Key:</h3>
+<code>{{settings.internal_api_key}}</code><br/>
+
+<h3>"From" email:</h3>
+<code>{%if settings.from_email %}{{settings.from_email}}{%else%}NONE SET{%endif%}</code>
+<form method="get" action="/admin/settings/from_email" style="margin-left: 30px; display: inline;">
+  <input type="submit" value="Edit"/>
+</form>
+<form method="post" action="/admin/settings/from_email_test"  style="display: inline;">
+  <input type="hidden" name="xsrf" value="{{from_email_test_xsrf}}"/>
+  <input type="submit" value="Test" />
+</form>
+
+<h3>Track code for <a href="http://www.google.com/analytics/">Google Analytics</a>:</h3>
+<form method="get" action="/admin/settings/analytics">
+  <code>{%if settings.analytics %}{{settings.analytics}}{%else%}NONE SET{%endif%}</code>
+  <input type="submit" value="Edit" style="margin-left: 30px;"/>
+</form>
+{%endblock%}
diff --git a/webapp/templates/admin_settings_analytics.html b/webapp/templates/admin_settings_analytics.html
new file mode 100644
index 0000000..3968f9d
--- /dev/null
+++ b/webapp/templates/admin_settings_analytics.html
@@ -0,0 +1,12 @@
+{%extends "admin_base.html"%}
+{%block title1%}Settings: Analytics{%endblock%}
+{%block body%}
+
+<form action="/admin/settings/analytics" method="post">
+<table>
+{{form}}
+<tr><td><input name="save" type="submit" value="Save"></td></tr>
+</table>
+</form>
+
+{%endblock%}
diff --git a/webapp/templates/admin_settings_from_email.html b/webapp/templates/admin_settings_from_email.html
new file mode 100644
index 0000000..3d130a6
--- /dev/null
+++ b/webapp/templates/admin_settings_from_email.html
@@ -0,0 +1,12 @@
+{%extends "admin_base.html"%}
+{%block title1%}Settings: From email{%endblock%}
+{%block body%}
+
+<form action="/admin/settings/from_email" method="post">
+<table>
+{{form}}
+<tr><td><input name="save" type="submit" value="Save"></td></tr>
+</table>
+</form>
+
+{%endblock%}
diff --git a/webapp/templates/admin_settings_from_email_test.html b/webapp/templates/admin_settings_from_email_test.html
new file mode 100644
index 0000000..1af151d
--- /dev/null
+++ b/webapp/templates/admin_settings_from_email_test.html
@@ -0,0 +1,13 @@
+{%extends "admin_base.html"%}
+{%block title1%}Settings{%endblock%}
+{%block body%}
+
+<h1>From Email</h1>
+
+<b>Status</b>
+<pre style="border: 1px solid gray; min-height: 10px;">{{status}}</pre>
+<b>Email</b>
+<pre style="border: 1px solid gray; min-height: 10px;">{{address}}</pre>
+
+{%endblock%}
+
diff --git a/webapp/templates/admin_user.html b/webapp/templates/admin_user.html
new file mode 100644
index 0000000..ce1c188
--- /dev/null
+++ b/webapp/templates/admin_user.html
@@ -0,0 +1,79 @@
+{%extends "admin_base.html"%}
+{%block title1%}Users{%endblock%}
+{%block body%}
+
+<h2>User {{email}}</h2>
+
+<form action="{%url codereview.people.admin_user email%}" method="POST">
+{{form.xsrf}}
+{%if form.xsrf.errors%}
+<ul>
+  {%for e in form.xsrf.errors%}
+    <li>{{e}}</li>
+  {%endfor%}
+</ul>
+{%endif%}
+
+{{form.dest}}
+
+<table class="largeform">
+<tr><th class="largeform_field">User Information</th></tr>
+<tr><td class="largeform_field">
+<table>
+  <tr><th>Name:</th>
+      <td>{{form.real_name}}{{form.real_name.errors}}</td>
+  </tr>
+  <tr><th>Preferred Email:</th>
+      <td>{{form.preferred_email}}{{form.preferred_email.errors}}</td>
+  </tr>
+  <tr><th>Mailing address:</th>
+      <td>{{form.mailing_address}}{{form.mailing_address.errors}}</td>
+  </tr>
+  <tr><th>Country:</th>
+      <td>{{form.mailing_address_country}}{{form.mailing_address_country.errors}}</td>
+  </tr>
+  <tr><th>Phone Number:</th>
+      <td>{{form.phone_number}}{{form.phone_number.errors}}</td>
+  </tr>
+  <tr><th>Fax Number:</th>
+      <td>{{form.fax_number}}{{form.fax_number.errors}}</td>
+  </tr>
+</table>
+</table>
+
+<table class="largeform">
+<tr><th class="largeform_field">Groups</th></tr>
+<tr><td class="largeform_field">{{form.groups}}</td></tr>
+</table>
+
+<table class="largeform">
+<tr><th class="largeform_field">Contributor License Agreement</th></tr>
+<tr><td class="largeform_field">
+<table>
+  <tr><th>CLA Verified:</th>
+      <td>{{form.cla_verified}}
+      <font color="#555">Changes to this field are logged.</font>
+      </td>
+  </tr>
+  <tr><th>CLA Verified By:</th>
+      <td>{{form.initial.cla_verified_by}}</td>
+  </tr>
+  <tr><th>CLA First Verified:</th>
+      <td>{{form.initial.cla_verified_timestamp}}</td>
+  </tr>
+  <tr><th>Individual CLA Version:</th>
+      <td>{{form.initial.individual_cla_version}}</td>
+  </tr>
+  <tr><th>Individual CLA Timestamp:</th>
+      <td>{{form.initial.individual_cla_timestamp}}</td>
+  </tr>
+  <tr><th>Comments:</th>
+      <td>{{form.cla_comments}}</td>
+  </tr>
+</table>
+</table>
+
+<input name="save" type="submit" value="Save">
+</form>
+
+{%endblock%}
diff --git a/webapp/templates/admin_users.html b/webapp/templates/admin_users.html
new file mode 100644
index 0000000..cb3661f
--- /dev/null
+++ b/webapp/templates/admin_users.html
@@ -0,0 +1,27 @@
+{%extends "admin_base.html"%}
+{%block title1%}Users{%endblock%}
+{%block body%}
+
+<a href="/admin/users">All Users</a>
+|
+<a href="/admin/users/verify_cla">Users w/ unverified CLA</a>
+
+
+<h2>Users</h2>
+
+<div class="change-list" style="width: inherit;">
+  <table id="queues" style="width: inherit;">
+    <tr>
+        <th>Name</th>
+        <th>Email</th>
+    </tr>
+    {%for user in users%}
+    <tr>
+        <td>{{user.real_name}}</td>
+        <td><a href="{%url codereview.people.admin_user user.email%}">{{user.email}}</a></td>
+    </tr>
+    {%endfor%}
+  </table>
+</div>
+
+{%endblock%}
diff --git a/webapp/templates/all.html b/webapp/templates/all.html
new file mode 100644
index 0000000..f793438
--- /dev/null
+++ b/webapp/templates/all.html
@@ -0,0 +1,47 @@
+{%extends "changes_base.html"%}
+
+{%block title1%}Recent Changes -{%endblock%}
+
+{%block body%}
+
+<script language="JavaScript" type="text/javascript"><!--
+function keyPressIntermediary(evt) {
+  return M_dashboardKeyPress(evt);
+}
+document.onkeypress = keyPressIntermediary;
+-->
+</script>
+
+
+<h1>Recent Changes</h1>
+
+<table class="change-list">
+<tr><td colspan="8" class="pagination" style="border: none;">
+  {%if newest%}
+    <a class="novisit" href="{{newest}}">&laquo; Newest</a>
+  {%endif%}
+  {%if prev%}
+    <a class="novisit" href="{{prev}}">&lsaquo; Newer</a>
+  {%endif%}
+  <b>{{first}}{%if last%} - {{last}}{%endif%}</b>
+  {%if next%}<a class="novisit" href="{{next}}">Older &rsaquo;</a>
+  {%else%}<span style="color:gray">Older &rsaquo;</span>{%endif%}
+</td></tr>
+
+{%include "change_heading.html"%}
+
+{%if not changes%}
+  <tr><td colspan="8"><span class="disabled">(None)</span></td></tr>
+{%else%}
+  {%for change in changes%}
+    {%include "change_row.html"%}
+  {%endfor%}
+{%endif%}
+
+</table>
+
+<script language="JavaScript" type="text/javascript"><!--
+var dashboardState = new M_DashboardState(window,'change');
+-->
+</script>
+{%endblock%}
diff --git a/webapp/templates/base.html b/webapp/templates/base.html
new file mode 100644
index 0000000..206a8fa
--- /dev/null
+++ b/webapp/templates/base.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+  "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+  <title>
+    {%if is_dev%}
+      (DEV)
+    {%endif%}
+    {%block title1%}
+      {%if patch%}{{patch.filename}} -{%endif%}
+    {%endblock%}
+    {%block title2%}
+      {%if change%}Change {{change.key.id}}: {{change.subject|truncatewords:11}} -{%endif%}
+    {%endblock%}
+    Code Review
+  </title>
+  <link rel="icon" href="/favicon.ico" />
+  <link type="text/css" rel="stylesheet" href="/static/style.css" />
+  <script type="text/javascript" src="/static/ajax.js"></script>
+  <script type="text/javascript" src="/static/script.js"></script>
+  <script type="text/javascript" src="/static/widgets.js"></script>
+{%if star_url%}
+  <script type="text/javascript"><!--
+  function M_addChangeStar(id) {
+    return M_setChangeStar_(id, '{{star_url}}', '{{star_url|bare_xsrf}}');
+  }
+  function M_removeChangeStar(id) {
+    return M_setChangeStar_(id, '{{unstar_url}}', '{{unstar_url|bare_xsrf}}');
+  }
+  // -->
+  </script>
+{%endif%}
+{%block additionalhead%}{%endblock%}
+</head>
+<body>
+
+<div id="ajax_progress" class="ajax_progress" style="display: none;">
+    Loading
+</div>
+<div id="ajax_error" style="display: none;">
+    There was an error connecting to the server.  Please try again.
+</div>
+
+<!-- Begin help window -->
+<script type="text/javascript"><!--
+var helpDisplayed = false;
+document.onclick = M_clickCommon;
+{%if change%}
+var publish_link = "{%url codereview.views.publish change.key.id%}";
+{%endif%}
+// -->
+</script>
+<div id="help" style="display: none;">
+{%block help%}{%endblock%}
+<div style="font-size: medium; text-align: center;">Keyboard Shortcuts</div>
+<hr />
+<table width="100%">
+
+  <tr valign="top">
+    <td>
+      <table width="100%">
+        <tr>
+          <td></td><th>File</th>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">u</span> <b>:</b></td><td>up to change</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">m</span> <b>:</b></td><td>publish + mail comments</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">j</span> / <span class="letter">k</span> <b>:</b></td><td>jump to file after / before current file</td>
+        </tr>
+        <tr>
+          <td></td><th>Side-by-side diff</th>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">i</span> <b>:</b></td><td>toggle intra-line diffs</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">e</span> <b>:</b></td><td>expand all comments</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">c</span> <b>:</b></td><td>collapse all comments</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">s</span> <b>:</b></td><td>toggle showing all comments</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">n</span> / <span class="letter">p</span> <b>:</b></td><td>next / previous diff chunk or comment</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">N</span> / <span class="letter">P</span> <b>:</b></td><td>next / previous comment</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">&lt;Enter&gt;</span> <b>:</b></td><td>respond to / edit current comment</td>
+        </tr>
+      </table>
+    </td>
+    <td>
+      <table width="100%"> 
+        <tr>
+         <td></td><th>Change</th>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">u</span> <b>:</b></td><td>up to list of changes</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">m</span> <b>:</b></td><td>publish + mail comments</td>
+        </tr>
+        <tr><td>&nbsp;</td></tr>
+        <tr><td></td><th>Change List</th></tr>
+        <tr>
+          <td class="shortcut"><span class="letter">j</span> / <span class="letter">k</span> <b>:</b></td><td>jump to change after / before current change</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">o</span> / <span class="letter">&lt;Enter&gt;</span> <b>:</b></td><td>open current change</td>
+        </tr>
+        <tr><td>&nbsp;</td></tr>
+        <tr><td>&nbsp;</td></tr>
+        <tr>
+          <td></td><th>Comment editing</th>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">&lt;Ctrl&gt;</span> + <span class="letter">s</span> <b>:</b></td><td>save comment</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">&lt;Esc&gt;</span> <b>:</b></td><td>cancel edit</td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+
+</table>
+</div>
+<!-- End help window -->
+
+<div id="top_nav">
+<div id="top_nav_left">
+{%if is_dev%}
+  <font style="color:green; font-weight:bold">DEVELOPMENT SERVER</font>
+{%endif%}
+</div>
+
+<div id="top_nav_right">
+{%if user%}
+  <b>{{user.email}} ({{user|real_name:"x"}})</b> |
+  <a class="novisit" href="{%url codereview.settings.settings%}">Settings</a> |
+{%endif%}
+{%if is_dev%}
+  <a class="novisit" target="_blank" href="/_ah/admin">Dev Admin</a> |
+{%endif%}
+{%if user%}
+  <a class="novisit" href="{{sign_out}}">Sign out</a>
+{% else %}
+  <a class="novisit" href="{{sign_in}}">Sign in</a>
+{%endif%}
+</div><!-- top_nav_right -->
+</div><!-- top_nav -->
+
+<div id="masthead">
+<a href="/"><img id="masthead_logotype" src="/static/customLogo.png" border="0" /></a>
+<img id="masthead_bugdroid"  src="/static/android_heart.png"/>
+</div>
+
+<div id="left_nav">
+  {%if user %}
+  <div class="left_nav_box">
+    <h4>Tools</h4>
+    <ul>
+      <li><a href="{%url codereview.views.mine %}">Code Review</a></li>
+      {%if request.show_admin_tab %}
+      <li><a href="{%url codereview.views.admin %}">Admin</a></li>
+      {%endif %}
+    </ul>
+  </div><!-- div class="left_nav_box" -->
+  {%endif %}
+{%block mainmenu2%}{%endblock%}
+</div>
+
+
+<div id="main_content_parent">
+<div id="main_content">
+{%block body%}BODY GOES HERE{%endblock%}
+</div><!-- main_content -->
+<div id="page_footer">
+Gerrit &mdash; {%include "live_revision.html"%}
+</div><!-- page_footer -->
+</div><!-- main_content_parent -->
+{%if analytics%}
+<script type="text/javascript">
+  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." :
+  "http://www.");
+  document.write(unescape("%3Cscript src='" + gaJsHost +
+  "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+  var pageTracker = _gat._getTracker("{{analytics}}");
+  pageTracker._trackPageview();
+</script>
+{%endif%}
+</body>
+</html>
diff --git a/webapp/templates/bundle_heading.html b/webapp/templates/bundle_heading.html
new file mode 100644
index 0000000..5caf258
--- /dev/null
+++ b/webapp/templates/bundle_heading.html
@@ -0,0 +1,9 @@
+<tr align="left">
+  <th class="first" colspan="3" align="right">Id</th>
+  <th>Status</th>
+  <th>Owner</th>
+  <th colspan="2">Repository</th>
+  <th colspan="2">Branch</th>
+  <th>Submitted</th>
+  <th>Last updated</th>
+</tr>
diff --git a/webapp/templates/bundle_row.html b/webapp/templates/bundle_row.html
new file mode 100644
index 0000000..38ac75e
--- /dev/null
+++ b/webapp/templates/bundle_row.html
@@ -0,0 +1,14 @@
+<tr name="change">
+  <td class="first" width="14"><img src="/static/closedtriangle.gif" 
+    style="visibility: hidden;" width="12" height="9" /></td>
+  <td width="17" align="center"></td>
+  <td align="right">
+    <div class="subject">{{bundle.key.id}}</div>
+  </td>
+  <td align="left">{{bundle.state}}</td>
+  <td><div class="users">{{bundle.owner|show_user}}</div></td>
+  <td colspan="2" align="left">{{bundle.dest_project.name}}</td>
+  <td colspan="2" align="left">{%if bundle.dest_branch %}{{bundle.dest_branch.short_name}}{%endif %}</td>
+  <td><div class="date">{{bundle.created|timesince}}</div></td>
+  <td><div class="date">{{bundle.modified|timesince}}</div></td>
+</tr>
diff --git a/webapp/templates/change.html b/webapp/templates/change.html
new file mode 100644
index 0000000..3a2ff07
--- /dev/null
+++ b/webapp/templates/change.html
@@ -0,0 +1,310 @@
+{%extends "change_base.html"%}
+
+{%block change_body%}
+
+{%if last_patchset.draft_count%}
+  <div class="error">
+    You have <b>{{last_patchset.draft_count}} draft</b>
+    comment{{last_patchset.draft_count|pluralize}}. Drafts are not viewable by others;
+    use <a class="novisit" href="{%url codereview.views.publish change.key.id%}">
+    Publish+Mail Comments</a> ('m') to let others view them.
+  </div>
+{%endif%}
+
+
+<div class="toggled_section">
+  <h2><a id="change-description-pointer"
+     href="javascript:M_toggleSection('change-description')"
+     class="toggled_section_pointer opentriangle">
+    Description</a></h2>
+  <div id="change-description">
+  <table width="100%" style=""><tr><td style="vertical-align: top;">
+{%if change.description%}
+    <pre class="change_description">{{change.description|wordwrap:80|urlize}}</pre>
+{%endif%}</td><td style="vertical-align: top;" align="right">
+    <table class="change_details">
+      <tr>
+        <th>Project</th>
+        <td>{{change.dest_project.name}}</td>
+      </tr>
+      <tr>
+        <th>Branch</th>
+        <td>{{change.dest_branch.short_name}}</td>
+      </tr>
+      <tr>
+        <th>Created</th>
+        <td>{{change.created|timesince}} ago by {{change.owner|show_user}}</td>
+      </tr>
+      <tr>
+        <th>Modified</th>
+        <td>{{change.modified|timesince}} ago</td>
+      </tr>
+    </table>
+  </td></tr>
+  </table>
+  </div>
+</div>
+
+<div class="toggled_section">
+  <h2>
+    <a id="ps-dependson-pointer"
+       href="javascript:M_toggleSection('ps-dependson')"
+       class="toggled_section_pointer {%if show_dependencies %}opentriangle{% endif %}">
+        Dependencies
+    </a>
+  </h2>
+  <div id="ps-dependson"
+       style="{%if not show_dependencies %}display:none{% endif %}">
+    <table class="change-list">
+      {%include "change_heading.html"%}
+      <tr><th colspan="8" class="header-title">Depends On</th></tr>
+      {%if not depends_on%}
+        <tr><td colspan="8" class="disabled">(None)</td></tr>
+      {%else%}
+        {%for change in depends_on%}
+          {%include "change_row.html"%}
+        {%endfor%}
+      {%endif%}
+
+      <tr><th colspan="8" class="header-title">Needed By</th></tr>
+      {%if not needed_by%}
+        <tr><td colspan="8" class="disabled">(None)</td></tr>
+      {%else%}
+        {%for change in needed_by%}
+          {%include "change_row.html"%}
+        {%endfor%}
+      {%endif%}
+    </table>
+  </div>
+</div>
+
+<div class="toggled_section">
+  <h2>
+    <a id="ps-approvals-pointer"
+       href="javascript:M_toggleSection('ps-approvals')"
+       class="toggled_section_pointer opentriangle">
+        Approvals
+    </a>
+  </h2>
+  <div id="ps-approvals" style="padding-left:4px;">
+    <table class="change_info_table" cellpadding="0" cellspacing="0" border="0" id="">
+      <tr>
+        <th class="leftmost">Reviewer</th>
+        <th class="score">Verified</th>
+        <th class="score rightmost">Code review</th>
+        <th class="hint"></th>
+      </tr>
+      <tr>
+        <td>{{change.owner|show_user}}</td>
+        <td class="score">{%if author_status.verified %}<img src="/static/check.png">{%endif%}</td>
+        <td class="score">{{author_status.lgtm|review_status_icons}}</td>
+        <td class="hint">{% ifequal author_status.lgtm "lgtm" %}Self approved.{% endifequal %}</td>
+      </tr>
+      {% for rs in review_status %}
+      <tr>
+        <td>{{rs.user|show_user}}</td>
+        <td class="score">{%if rs.verified %}<img src="/static/check.png">{%endif%}</td>
+        <td class="score">{{rs.lgtm|review_status_icons}}</td>
+        <td class="hint">{{rs.lgtm|review_status_text}}</font>
+      </tr>
+      {% endfor %}
+    </table>
+
+    {%if user%}
+    <table class="change_actions"><tr>
+      <td class="action">
+        <form method="get" action="{%url codereview.views.publish change.key.id%}">
+          <input type="submit" value="Publish+Mail Comments" />
+        </form>
+      </td>
+
+      <td class="action">
+        <form action="{{merge_url}}" method="post">
+          {{merge_url|form_xsrf}}
+          <input type="submit"
+            {%if show_submit_button %}{%else%}disabled{%endif%}
+              value="{%if show_submit_button %}Submit Patch Set {{last_patchset.id}}{%else%}Can't Submit{%endif%}"/>
+        </form>
+        <div class="change_status">
+          {%if last_patchset and not last_patchset.complete%}
+            Patch Set Still Uploading
+          {%endif%}
+          {%if change.is_submitted%}
+            {%if change.merged%}
+              Merged
+            {%else%}
+              Merge Pending
+            {%endif%}
+          {%else%}
+            {%if ready_to_submit%}
+              {%if user_can_submit%}
+              {%else%}
+                Ready to submit
+              {%endif%}
+            {%else%}
+              <ul>
+                {%if last_patchset and not last_patchset.complete%}
+                  <li>Patch Set Still Uploading</li>
+                {%endif%}
+                {%if is_rejected %}
+                  <li>Change Rejected</li>
+                {%endif%}
+                {%if not is_approved %}
+                  <li>Needs Code Review</li>
+                {%endif%}
+                {%if not is_verified %}
+                  <li>Needs Verification</li>
+                {%endif%}
+              </ul>
+            {%endif%}
+          {%endif%}
+      </td>
+
+      {%ifequal change.owner user %}
+      <td class="action">
+        <form method="get" action="{%url codereview.views.edit change.key.id%}">
+          <input type="submit" value="Edit Change"/>
+        </form>
+      </td>
+      {%endifequal%}
+    </tr></table>
+    {%endif%}
+  </div>
+</div>
+
+{%for patchset in patchsets%}
+<div class="toggled_section">
+  <h2>
+    <a id="ps-{{patchset.key.id}}-pointer"
+       href="javascript:M_togglePatchSetSection('{{change.key.id}}','{{patchset.key.id}}')"
+       class="toggled_section_pointer {%if forloop.last%}opentriangle{%endif%}">
+      Patch Set {{patchset.id}}
+      {%if patchset.message%}: {{patchset.message}}{%endif%}
+    </a>
+  </h2>
+  {%if forloop.last%}
+    <div id="ps-{{patchset.key.id}}">
+      {%include "patchset.html"%}
+    </div>
+  {%else%}
+    <div id="ps-{{patchset.key.id}}"
+         style="display:none">
+    </div>
+  {%endif%}
+</div>
+{%endfor%}
+
+{%if messages%}
+<div class="toggled_section">
+  <h2>
+    <a id="messages-pointer"
+       href="javascript:M_toggleSection('messages')"
+       class="toggled_section_pointer opentriangle">
+      Messages
+    </a>
+  </h2>
+
+  {%if messages%}<div><i>Total messages: {{messages|length}}</i></div>{%endif%}
+
+  <div id="messages">
+    <div style="margin-bottom: .5em;">
+      <a href="javascript:M_showAllComments('cl', {{messages|length}})">
+        Expand All Messages</a>
+      |
+      <a href="javascript:M_hideAllComments('cl', {{messages|length}})">
+        Collapse All Messages</a>
+    </div>
+ 
+    {%for message in messages%}
+      <div class="message">
+        <div class="header">
+          <table border="0" width="100%" cellspacing="0" cellpadding="0">
+            <tr class="comment_title"
+                onclick="M_switchChangelistComment({{forloop.counter0}})">
+              <td style="padding-left: 5px; white-space: nowrap;">
+                <b>{{message.sender|real_name}}</b>
+              </td>
+              <td>
+                <table style="table-layout:fixed; white-space: nowrap;"
+                       width="100%">
+                  <tr>
+                    <td>
+                      <div style="white-space: nowrap; overflow: hidden;{%if forloop.last%} visibility: hidden;{%endif%}"
+                           class="extra"
+                           id="cl-preview-{{forloop.counter0}}">
+                          {{message.text|truncatewords:15}}
+                       </div>
+                    </td>
+                  </tr>
+                </table>
+              </td>
+              <td align="right" style="white-space: nowrap; padding-right: 5px;">
+                {{message.date|timesince}} ago
+              </td>
+            </tr>
+          </table>
+        </div>
+
+        <div id="cl-comment-{{forloop.counter0}}"
+             {%if forloop.last%}{%else%}style="display: none;"{%endif%}>
+          <div class="message-body">
+            <pre name="cl-message-{{forloop.counter0}}"
+            >{{message.text|wordwrap:80|urlize}}</pre>
+          </div>
+          <div class="message-actions">
+            {%if user%}
+              <a href="javascript:M_replyToMessage('{{forloop.counter0}}', '{{message.date|date:"Y/m/d H:i:s"}}', '{{message.sender|real_name:"x"}}')"
+                 id="message-reply-href-{{forloop.counter0}}">Reply</a>
+              <div class="message-reply" id="message-reply-{{forloop.counter0}}"
+                   style="display:none;"></div>
+            {%else%}
+              <a href="{{sign_in}}">Sign in</a> to reply to this message.
+            {%endif%}
+          </div>
+        </div>
+
+      </div>
+    {%endfor%}
+    
+    
+    <div>
+      <a href="javascript:M_showAllComments('cl', {{messages|length}})">
+      Expand All Messages</a>
+      |
+      <a href="javascript:M_hideAllComments('cl', {{messages|length}})">
+      Collapse All Messages</a>
+    </div>
+
+  </div>
+</div>
+{%endif%}
+
+
+<script language="JavaScript" type="text/javascript">
+  <!--
+    document.onkeypress = function(evt) { return M_changelistKeyPress(evt); }
+  // -->
+</script>
+
+
+{%if user%}
+  <div style="display:none;">
+    <form method="POST" action="{{reply_url}}" id="message-reply-form">
+      <div>
+        <textarea rows="7" cols="70" name="message"></textarea>
+      </div>
+      {{reply_url|form_xsrf}}
+      <input type="hidden" name="message_only" value="1" />
+      <input type="submit" value="Send Message" />
+      <input type="button" value="Discard" name="discard" />
+      <input type="checkbox" name="send_mail" value="1" 
+             id="message-reply-send-mail" checked="checked" />
+      <label>Send mail to reviewers</label>
+    </form>
+  </div>
+  <a id="resizer" class="resizer" style="display:none;cursor:pointer">
+    <img src="/static/zippyplus.gif">
+  </a>
+{%endif%}
+
+{%endblock%}
diff --git a/webapp/templates/change_base.html b/webapp/templates/change_base.html
new file mode 100644
index 0000000..b23a687
--- /dev/null
+++ b/webapp/templates/change_base.html
@@ -0,0 +1,35 @@
+{%extends "changes_base.html"%}
+
+{%block body%}
+  <h1>
+    {%include "change_star.html"%}
+    <a href="{%url codereview.views.show change.key.id%}"
+               onmouseover="M_showPopUp(this, 'popup-change');">
+            Change {{change.key.id}}</a>:
+    {{change.subject|truncatewords:11}}
+    {%if change.merged %} (Merged)
+    {%else%}{%if change.closed %} (Closed) {%endif%}
+    {%endif%}
+  </h1>
+
+  {%block change_body%}BODY GOES HERE{%endblock%}
+
+{%endblock%}
+
+
+{%block popup%}
+  {%if change%}
+    <div class="popup" id="popup-change">
+      <b>Change {{change.key.id}}: {{change.subject|truncatewords:11}}
+      {%if change.merged %} (Merged)
+      {%else%}{%if change.closed %} (Closed) {%endif%}
+      {%endif%}</b><br/>
+      Created {{change.created|timesince}} ago by {{change.owner|real_name}}<br/>
+      Modified {{change.modified|timesince}} ago<br/>
+      Reviewers: {{change.reviewers|real_names}}<br/>
+      Comments: {{change.num_comments}}
+      {%if change.num_drafts%} <span style="color: red;">+
+	{{change.num_drafts}} drafts</span>{%endif%}
+    </div>
+  {%endif%}
+{%endblock%}
diff --git a/webapp/templates/change_heading.html b/webapp/templates/change_heading.html
new file mode 100644
index 0000000..5aad090
--- /dev/null
+++ b/webapp/templates/change_heading.html
@@ -0,0 +1,8 @@
+<tr align="left">
+  <th class="header-columns" colspan="3" style="text-align: right;">Id</th>
+  <th class="header-columns">Subject</th>
+  <th class="header-columns" width="10%">Owner</th>
+  <th class="header-columns">Reviewers</th>
+  <th class="header-columns" width="8%">Comments</th>
+  <th class="header-columns" width="8%" style="white-space:nowrap">Last Update</th>
+</tr>
diff --git a/webapp/templates/change_pagedrow.html b/webapp/templates/change_pagedrow.html
new file mode 100644
index 0000000..5dfbb86
--- /dev/null
+++ b/webapp/templates/change_pagedrow.html
@@ -0,0 +1,4 @@
+{{change_opos}},{{change_oend}},{{change_prev}},{{change_next}}
+{%for change in change_list%}
+{%include "change_row.html"%}
+{%endfor%}
diff --git a/webapp/templates/change_revision_unknown.html b/webapp/templates/change_revision_unknown.html
new file mode 100644
index 0000000..7119535
--- /dev/null
+++ b/webapp/templates/change_revision_unknown.html
@@ -0,0 +1,5 @@
+{%extends "change_base.html"%}
+
+{% block body %}
+Revision <code>{{hash}}</code> not found.
+{% endblock %}
diff --git a/webapp/templates/change_revision_uploading.html b/webapp/templates/change_revision_uploading.html
new file mode 100644
index 0000000..f41b52e
--- /dev/null
+++ b/webapp/templates/change_revision_uploading.html
@@ -0,0 +1,12 @@
+{%extends "change_base.html"%}
+
+{%block additionalhead%}
+<meta http-equiv="Refresh" content="5; URL=/r/{{hash}}" />
+{%endblock%}
+
+{% block body %}
+<p>The upload of <code>{{hash}}</code> is still being processed.</p>
+<p>Please try again in a few seconds.</p>
+<p>If your browser does not automatically refresh this page,
+<a href="/r/{{hash}}">click here</a>.</p>
+{% endblock %}
diff --git a/webapp/templates/change_row.html b/webapp/templates/change_row.html
new file mode 100644
index 0000000..4faf16b
--- /dev/null
+++ b/webapp/templates/change_row.html
@@ -0,0 +1,27 @@
+<tr
+    class="pagedrow-{{change.paginate_row_type}}"
+    {%if change.num_drafts%}style="color:red"{%endif%}
+    name="change">
+  <td class="selection"><img src="/static/closedtriangle.gif"
+            style="visibility: hidden;" width="12" height="9" /></td>
+  <td class="star" width="17" align="center">{%include "change_star.html"%}</td>
+  <td class="id" align="right"><div class="subject"><a class="noul"
+         href="{%url codereview.views.show change.key.id%}">{{change.key.id}}</a>
+     </div>
+  </td>
+  <td><a href="{%url codereview.views.show change.key.id%}">
+        {{change.subject|truncatewords:11}}</a>
+      {%if change.merged%} (Merged)
+      {%else%}{%if change.closed and not closed_changes%} (Closed) {%endif%}
+      {%endif%}</td>
+  <td><div>{{change.owner|show_user}}</div></td>
+  <td><div>{{change.reviewers|show_users}}</div></td>
+  <td>{%firstof change.num_comments%}
+      {%if change.num_drafts%}
+        <span style="color:red">+
+          {{change.num_drafts}} draft{{change.num_drafts|pluralize}}
+        </span>
+      {%endif%}
+  </td>
+  <td>{{change.modified|abbrevtimesince}}</td>
+</tr>
diff --git a/webapp/templates/change_star.html b/webapp/templates/change_star.html
new file mode 100644
index 0000000..2083e0f
--- /dev/null
+++ b/webapp/templates/change_star.html
@@ -0,0 +1,11 @@
+<span id="change-star-{{change.key.id}}">
+  {%if change.is_starred%}
+    <a href="javascript:M_removeChangeStar({{change.key.id}})">
+      <img src="/static/star-lite.gif" width="15" height="15" border="0"></a>
+  {%else%}
+    {%if request.user%}
+      <a href="javascript:M_addChangeStar({{change.key.id}})">
+	<img src="/static/star-dark.gif" width="15" height="15" border="0"></a>
+    {%endif%}
+  {%endif%}
+</span>
diff --git a/webapp/templates/changes_base.html b/webapp/templates/changes_base.html
new file mode 100644
index 0000000..c25fc64
--- /dev/null
+++ b/webapp/templates/changes_base.html
@@ -0,0 +1,25 @@
+{%extends "base.html" %}
+
+{%block mainmenu2 %}
+  <div class="left_nav_box">
+  <h4>Code Reviews</h4>
+  {%if user %}
+  <ul>
+    <li><a href="{%url codereview.views.mine %}">My Changes</a></li>
+    <li><a href="{%url codereview.views.unclaimed %}">Unclaimed Changes</a></li>
+    <li><a href="{%url codereview.views.all %}">Recent Changes</a></li>
+    <li><a href="{%url codereview.views.starred %}">Starred Changes</a></li>
+  </ul>
+  {%else%}
+  <ul>
+    <li><a href="{%url codereview.views.index %}">Recent Changes</a></li>
+    <li id="signin-link">
+      <a class="novisit" href="{{sign_in}}">Sign in</a> with your
+      <a href="https://www.google.com/accounts/NewAccount">Google Account</a>
+      to add comments.
+    </li>
+  </ul>
+  {%endif%}
+  </div><!-- div class="left_nav_box" -->
+{%endblock%}
+
diff --git a/webapp/templates/context_select.html b/webapp/templates/context_select.html
new file mode 100644
index 0000000..5679903
--- /dev/null
+++ b/webapp/templates/context_select.html
@@ -0,0 +1,12 @@
+<form method="GET" action="">
+  <label for="id_context">Context:</label>
+  <select id="context" name="context" 
+  onchange="this.form.elements[1].disabled=true; this.form.submit()">
+    {%for val in context_values%}
+      <option value="{{val}}"
+      {%ifequal val context%} selected="selected"{%endifequal%}>
+      {{val}} lines</option>
+    {%endfor%}
+  </select>
+  <input type="submit" value="Adjust context" />
+</form>
diff --git a/webapp/templates/delete_loop.html b/webapp/templates/delete_loop.html
new file mode 100644
index 0000000..6566920
--- /dev/null
+++ b/webapp/templates/delete_loop.html
@@ -0,0 +1,8 @@
+{%extends "change_base.html"%}
+{%block title1%}Deleting Change -{%endblock%}
+{%block change_body%}
+<form action="{{del_url}}" method="post">
+<input type="hidden" value="{{del_url|xsrf}}" />
+<input type="submit" value="Continue">
+</form>
+{%endblock%}
diff --git a/webapp/templates/diff.html b/webapp/templates/diff.html
new file mode 100644
index 0000000..020bab1
--- /dev/null
+++ b/webapp/templates/diff.html
@@ -0,0 +1,130 @@
+{%extends "change_base.html"%}
+
+{%block change_body%}
+
+<script language="JavaScript" type="text/javascript"><!--
+function keyPressIntermediary(evt) {
+  return M_keyPress(evt);
+}
+document.onkeypress = keyPressIntermediary;
+{%if user%}
+logged_in = true;
+{%else%}
+logged_in = false;
+login_warned = false;
+{%endif%}
+// -->
+</script>
+
+
+{%if user%}
+<!-- Form used by in-line comment JS; XXX filled in by JS code -->
+<form id="dainlineform" style="display: none;"
+      action="{{inline_draft_url}}" method="post">
+  <div class="comment-border" name="form-container">
+    {{inline_draft_url|form_xsrf}}
+    <input type="hidden" name="snapshot" value="XXX">
+    <input type="hidden" name="lineno" value="XXX">
+    <input type="hidden" name="side" value="XXX">
+    <input type="hidden" name="change" value="{{change.key.id}}">
+    <input type="hidden" name="patchset" value="{{patchset.key.id}}">
+    <input type="hidden" name="patch" value="{{patch.id}}">
+    <textarea name="text" cols="60" rows="5"></textarea><br>
+    <input type="submit" name="save" value="Save"
+           onclick="return M_submitInlineComment(this.form);">
+    <input type="reset" name="cancel" value="Cancel"
+           onclick="M_removeTempInlineComment(this.form)">
+  </div>
+  <div class="comment-border" style="padding: 0pt;"></div>
+</form>
+<a id="resizer" style="display:none;cursor:pointer"><img src="/static/zippyplus.gif"></a>
+{%endif%}
+
+
+
+
+<table style="width: 100%; margin-top: 5px;"><tr>
+  {%if user%}
+  <td style="vertical-align: top; padding-right: 50px;">
+    <div>
+      <form method="get" action="{%url codereview.views.publish change.key.id%}">
+        <input type="submit" value="Publish &amp; Mail Comments" />
+      </form>
+    </div>
+    <div class="tips" style="margin-top: 5px;">
+      Double-click a line to add a draft in-line comment.<br/>
+      Use n/p to move between diff chunks.<br/>
+      <span style="color:#f77">Draft comments are only viewable by you.</span>
+      {%else%}
+      Please Sign in to add in-line comments.
+    </div>
+  </td>
+  {%endif%}
+  <td style="vertical-align: top;">
+    <div style="text-align: left;">
+      <div>{%include "context_select.html"%}</div>
+      <div style="margin-top: 5px;">
+        Jump to:
+        <select onchange="M_jumpToPatch(this, {{change.key.id}}, {{patchset.key.id}});">
+          {%for jump_patch in patchset.patches %}
+            <option value="{{jump_patch.id}}"
+              {%ifequal jump_patch.id patch.id%} selected="selected"{%endifequal%}
+              >{{jump_patch.filename}}</option>
+          {% endfor %}
+        </select>
+      </div>
+      <div style="margin-top: 3px;">
+        <b>Patch Set: {%if patchset.message%}{{patchset.message}}{%endif%}</b>
+        Uploaded {{patchset.created|timesince}} ago
+        {%ifnotequal patchset.owner change.owner%}
+          by <b>{{patchset.owner|show_user}}</b>
+        {%endifnotequal%}
+      </div>
+    </div>
+
+
+  </td>
+  <td>
+  </td>
+</tr></table>
+
+
+<div class="code_diff">
+{%include "diff_navigation.html"%}
+
+<div style="position:relative;" id="table-top">
+
+<span id="hook-sel" style="display:none;"></span>
+
+<table border="0" cellpadding="0" cellspacing="0" id="thecode" style="width: 100%;"
+       ondblclick="M_handleTableDblClick(event)">
+<colgroup style="width: 50%;">
+<colgroup style="width: 50%;">
+<tr><th>OLD</th><th>NEW</th></tr>
+
+{%for row in rows%}{{row|safe}}{%endfor%}
+
+<tr><th>OLD</th><th>NEW</th></tr>
+
+</table>
+
+</div>
+{%include "diff_navigation.html"%}
+</div>
+
+</script>
+<script language="JavaScript" type="text/javascript"><!--
+var old_snapshot = "old";
+var new_snapshot = "new";
+var intraLineDiff = new M_IntraLineDiff();
+var hookState = new M_HookState(window);
+hookState.updateHooks();
+
+var skipped_lines_url =
+'/{{change.key.id}}/diff_skipped_lines/{{patchset.key.id}}/{{patch.id}}/'
+;
+
+// -->
+</script>
+{%endblock%}
+
diff --git a/webapp/templates/diff2.html b/webapp/templates/diff2.html
new file mode 100644
index 0000000..cbacf00
--- /dev/null
+++ b/webapp/templates/diff2.html
@@ -0,0 +1,202 @@
+{%extends "change_base.html"%}
+{%block title1%}{{patch_right.filename}} -{%endblock%}
+{%block body%}
+
+<script language="JavaScript" type="text/javascript"><!--
+function keyPressIntermediary(evt) {
+  return M_keyPress(evt);
+}
+document.onkeypress = keyPressIntermediary;
+{%if user%}
+logged_in = true;
+{%else%}
+logged_in = false;
+login_warned = false;
+{%endif%}
+// -->
+</script>
+
+{%if user%}
+<!-- Form used by in-line comment JS; XXX filled in by JS code -->
+<form id="dainlineform" style="display: none;"
+      action="{{inline_draft_url}}" method="post">
+  <div class="comment-border" name="form-container">
+    {{inline_draft_url|form_xsrf}}
+    <input type="hidden" name="snapshot" value="XXX">
+    <input type="hidden" name="lineno" value="XXX">
+    <input type="hidden" name="side" value="XXX">
+    <input type="hidden" name="change" value="{{change.key.id}}">
+    <input type="hidden" name="ps_left" value="{{ps_left.key.id}}">
+    <input type="hidden" name="patch_left" value="{{patch_left.key.id}}">
+    <input type="hidden" name="ps_right" value="{{ps_right.key.id}}">
+    <input type="hidden" name="patch_right" value="{{patch_right.key.id}}">
+    <textarea name="text" cols="60" rows="5"></textarea><br>
+    <input type="submit" name="save" value="Save"
+           onclick="return M_submitInlineComment(this.form);">
+    <input type="reset" name="cancel" value="Cancel"
+           onclick="M_removeTempInlineComment(this.form)">
+  </div>
+  <div class="comment-border" style="padding: 0pt;"></div>
+</form>
+<a id="resizer" style="display:none;cursor:pointer"><img src="/static/zippyplus.gif"></a>
+{%endif%}
+
+<div style="float: left;">
+  <h2 style="margin-bottom: 0em; margin-top: 0em;">Delta Between Two Patch Sets: {{patch_right.filename}}</h2>
+  <div style="margin-top: .2em;">
+    {%include "change_star.html"%}
+    <b>Change <a href="{%url codereview.views.show change.key.id%}" onmouseover="M_showPopUp(this, 'popup-change');" id="upCL">{{change.key.id}}</a>:</b>
+  {{change.subject|truncatewords:11}}
+  {%if change.merged%} (Merged)
+  {%else%}{%if change.closed%} (Closed) {%endif%}
+  {%endif%}
+  </div>
+  <div style="margin-top: .4em;">
+    <b>Left Patch Set: {%if ps_left.message%}{{ps_left.message}}{%endif%}</b>
+    <span class="extra">
+    Created {{ps_left.created|timesince}} ago
+    {%ifnotequal ps_left.owner change.owner%}
+    by <b>{{ps_left.owner|show_user}}</b>{%endifnotequal%}
+    </span>
+  </div>
+  <div style="margin-top: .4em;">
+    <b>Right Patch Set: {%if ps_right.message%}{{ps_right.message}}{%endif%}</b>
+    <span class="extra">
+    Created {{ps_right.created|timesince}} ago
+    {%ifnotequal ps_right.owner change.owner%}
+    by <b>{{ps_right.owner|show_user}}</b>{%endifnotequal%}
+    </span>
+  </div>
+  <div style="margin-top: .4em;" class="help">
+    Use n/p to move between diff chunks;
+    N/P to move between comments.
+    {%if user%}
+    Double-click a line to add a draft in-line comment.
+    <br><span style="color:red">Draft comments are only viewable by you;</span>
+    use <a href="{%url codereview.views.publish change.key.id%}" class="novisit">Publish+Mail Comments</a> ('m') to let others view them.
+    {%else%}
+    Please Sign in to add in-line comments.
+    {%endif%}
+  </div>
+</div>
+<div style="float: right; color: #333333; background-color: #eeeeec; border: 1px solid lightgray; -moz-border-radius: 5px 5px 5px 5px; padding: 5px;">
+  <div>{%include "context_select.html"%}</div>
+  <div>
+    Jump to: <select onchange="M_jumpToPatch(this, {{change.key.id}}, {{patchset.key.id}});">
+      {% for jump_patch in ps_right.patches %}
+        <option value="{{jump_patch.id}}"
+         {%ifequal jump_patch.id patch.id%} selected="selected"{%endifequal%}>{{jump_patch.filename}}</option>
+      {% endfor %}
+    </select>
+  </div>
+  <div>
+    Left: <a href="{%url codereview.views.diff change.key.id,ps_left.key.id,patch_left.key.id%}"
+             title="View regular side by side diff">Side by side diff</a>
+          |
+          <a href="{%url codereview.views.download_patch change.key.id,ps_left.key.id,patch_left.key.id%}"
+             title="Download patch for {{patch_left.filename}}">Download</a>
+          <br/>
+    Right: <a href="{%url codereview.views.diff change.key.id,ps_right.key.id,patch_right.key.id%}"
+              title="View regular side by side diff">Side by side diff</a>
+           |
+           <a href="{%url codereview.views.download_patch change.key.id,ps_right.key.id,patch_right.key.id%}"
+             title="Download patch for {{patch_right.filename}}">Download</a>
+    {%if user%}
+  </div>
+  <div style="margin-top: 5px;">
+    <a class="novisit" href="{%url codereview.views.publish change.key.id%}">Publish+Mail
+    Comments</a> ('m')
+    {%endif%}
+  </div>
+</div>
+<div style="clear: both;"></div>
+
+
+<div class="code" style="margin-top: 1.3em; display: table; margin-left: auto; margin-right: auto;">
+<div class="codenav">
+{%comment%}
+For some reason,
+{%url codereview.views.diff change.key.id,patchset.key.id,patch.prev.key.id%}
+doesn't work.  Go figure.  Bleah.  So use absolute URLs.
+{%endcomment%}
+{%if patch_right.prev%}
+<a id="prevFile" 
+   href="/{{change.key.id}}/diff2/{{ps_left.key.id}}:{{ps_right.key.id}}/{{patch_right.prev.key.id}}">
+&laquo; {{patch_right.prev.filename}}</a> ('k'){%else%}
+<span class="disabled">&laquo; no previous file</span>{%endif%}
+|
+{%if patch_right.next%}
+<a id="nextFile"
+   href="/{{change.key.id}}/diff2/{{ps_left.key.id}}:{{ps_right.key.id}}/{{patch_right.next.key.id}}">
+{{patch_right.next.filename}} &raquo;</a> ('j'){%else%}
+<span class="disabled">no next file &raquo;</span>{%endif%}
+|
+<a href="javascript:if (intraLineDiff) intraLineDiff.toggle()">
+Toggle Intra-line Diffs</a> ('i')
+|
+<a href="javascript:M_expandAllInlineComments()">Expand Comments</a> ('e')
+|
+<a href="javascript:M_collapseAllInlineComments()">Collapse Comments</a> ('c')
+|
+<a id="show-all-inline"
+   style="display:none"
+   href="javascript:M_showAllInlineComments()">Show Comments</a>
+<a id="hide-all-inline"
+   href="javascript:M_hideAllInlineComments()">Hide Comments</a> ('s')
+</div>
+<div style="position:relative" id="table-top">
+
+<span id="hook-sel" style="display:none;"></span>
+
+<table border="0" cellpadding="0" cellspacing="0" id="thecode"
+       ondblclick="M_handleTableDblClick(event)">
+
+<tr><th>LEFT</th><th>RIGHT</th></tr>
+
+{%for row in rows%}{{row|safe}}{%endfor%}
+
+<tr><th>LEFT</th><th>RIGHT</th></tr>
+
+</table>
+
+</div>
+
+<div class="codenav">
+{%if patch_right.prev%}
+<a id="prevFile"
+   href="/{{change.key.id}}/diff2/{{ps_left.key.id}}:{{ps_right.key.id}}/{{patch_right.prev.key.id}}">
+&laquo; {{patch_right.prev.filename}}</a> ('k'){%else%}
+<span class="disabled">&laquo; no previous file</span>{%endif%}
+|
+{%if patch_right.next%}
+<a id="nextFile"
+   href="/{{change.key.id}}/diff2/{{ps_left.key.id}}:{{ps_right.key.id}}/{{patch_right.next.key.id}}">
+{{patch_right.next.filename}} &raquo;</a> ('j'){%else%}
+<span class="disabled">no next file &raquo;</span>{%endif%}
+|
+<a href="javascript:if (intraLineDiff) intraLineDiff.toggle()">
+Toggle Intra-line Diffs</a> ('i')
+|
+<a href="javascript:M_expandAllInlineComments()">Expand Comments</a> ('e')
+|
+<a href="javascript:M_collapseAllInlineComments()">Collapse Comments</a> ('c')
+|
+<a href="javascript:M_toggleAllInlineComments()">
+Toggle Comments</a> ('s')
+</div>
+
+</div>
+</script>
+<script language="JavaScript" type="text/javascript"><!--
+var old_snapshot = "new";
+var new_snapshot = "new";
+var intraLineDiff = new M_IntraLineDiff();
+var hookState = new M_HookState(window);
+hookState.updateHooks();
+
+var skipped_lines_url = ('/' + {{change.key.id}} + '/diff2_skipped_lines/' +
+                         {{ps_left.key.id}} + ':' + {{ps_right.key.id}} + '/' +
+                         {{patch_id}} + '/');
+// -->
+</script>
+{%endblock%}
diff --git a/webapp/templates/diff_navigation.html b/webapp/templates/diff_navigation.html
new file mode 100644
index 0000000..7bb925d
--- /dev/null
+++ b/webapp/templates/diff_navigation.html
@@ -0,0 +1,36 @@
+<div class="tips codenav">
+{%comment%}
+For some reason,
+{%url codereview.views.diff change.key.id,patchset.key.id,patch.prev.key.id%}
+doesn't work.  Go figure.  Bleah.  So use absolute URLs.
+{%endcomment%}
+{%if patch.prev%}
+<a id="prevFile" 
+   href="/{{change.key.id}}/diff/{{patchset.key.id}}/{%spaceless%}
+   {{patch.prev.id}}{%if context%}?context={{context}}{%endif%}
+   {%endspaceless%}">
+&laquo; {{patch.prev.filename}}</a> ('k'){%else%}
+<span class="disabled">&laquo; no previous file</span>{%endif%}
+|
+{%if patch.next%}
+<a id="nextFile"
+   href="/{{change.key.id}}/diff/{{patchset.key.id}}/{%spaceless%}
+   {{patch.next.id}}{%if context %}?context={{context}}{%endif%}
+   {%endspaceless%}">
+{{patch.next.filename}} &raquo;</a> ('j'){%else%}
+<span class="disabled">no next file &raquo;</span>{%endif%}
+|
+
+<a href="javascript:if (intraLineDiff) intraLineDiff.toggle()">
+Toggle Intra-line Diffs</a> ('i')
+|
+<a href="javascript:M_expandAllInlineComments()">Expand Comments</a> ('e')
+|
+<a href="javascript:M_collapseAllInlineComments()">Collapse Comments</a> ('c')
+|
+<a id="show-all-inline"
+   style="display:none"
+   href="javascript:M_showAllInlineComments()">Show Comments</a>
+<a id="hide-all-inline"
+   href="javascript:M_hideAllInlineComments()">Hide Comments</a> ('s')
+</div>
diff --git a/webapp/templates/edit.html b/webapp/templates/edit.html
new file mode 100644
index 0000000..119b8c6
--- /dev/null
+++ b/webapp/templates/edit.html
@@ -0,0 +1,33 @@
+{%extends "change_base.html"%}
+{%block title1%}Edit Change -{%endblock%}
+{%block change_body%}
+<form action="{%url codereview.views.edit change.key.id%}"
+      method="post" id="edit-form">
+<table>
+{{form}}
+<tr><td><input type="submit" value="Update Change"></td></tr>
+</table>
+</form>
+
+<a id="resizer" style="display:none;cursor:pointer">
+<img src="/static/zippyplus.gif"></a>
+<script language="JavaScript" type="text/javascript"><!--
+M_addTextResizer_(document.getElementById("edit-form"));
+--></script>
+
+<p>
+<ul>
+<li>Owner: {{change.owner|show_user}}
+<li>Created: {{change.created|date:"Y/m/d H:i:s"}}
+<li>Last updated: {{change.modified|date:"Y/m/d H:i:s"}}
+</ul>
+</p>
+
+<h2>Delete This Change</h2>
+
+<form action="{{del_url}}" method="post">
+{{del_url|form_xsrf}}
+<input type="submit" value="Delete Change"> There is no undo!
+</form>
+
+{%endblock%}
diff --git a/webapp/templates/inline_comment.html b/webapp/templates/inline_comment.html
new file mode 100644
index 0000000..a832a15
--- /dev/null
+++ b/webapp/templates/inline_comment.html
@@ -0,0 +1,67 @@
+{%for c in comments%}
+<div class="comment-border{%if c.confidence%} conf{{c.confidence}}{%endif%} {{c.backend}}" name="comment-border">
+<div class="inline-comment-title" onclick="M_switchInlineComment({{forloop.counter0}}, {{lineno}}, '{{side}}')">
+{%if c.draft%}<b>(Draft)</b>{%else%}<b>{{c.author|real_name}}</b>{%endif%}
+{%if c.confidence_text%} <b>(confidence {{c.confidence_text}})</b>{%endif%}
+{{c.date|date:"Y/m/d H:i:s"}}
+<span id="inline-preview-{{forloop.counter0}}-{{lineno}}-{{side}}" 
+  class="extra" name="inline-preview"
+  {%if c.draft%}style="visibility: hidden"{%endif%}>{{c.shorttext}}</span>
+</div>
+<div id="inline-comment-{{forloop.counter0}}-{{lineno}}-{{side}}"
+     class="inline-comment"
+     name="inline-comment"
+     {%if c.draft%}ondblclick="M_editInlineComment({{forloop.counter0}}, {{lineno}}, '{{side}}'); M_stopBubble(window, event);"{%endif%}
+     {%if not c.draft%}style="display: none"{%endif%}>
+{%for bucket in c.buckets%}
+{%if bucket.quoted%}
+<div><a class="comment-hide-link" href="javascript:M_switchQuotedText({{forloop.parentloop.counter0}}, {{forloop.counter0}}, {{lineno}}, '{{side}}')">(Un)hide quoted text</a></div>
+{%endif%}
+<div name="comment-text-{{forloop.parentloop.counter0}}-{{lineno}}-{{side}}"
+id="comment-text-{{forloop.parentloop.counter0}}-{{lineno}}-{{side}}-{{forloop.counter0}}"
+class="{%if bucket.quoted%}comment-text-quoted{%else%}comment-text{%endif%}"
+{%if bucket.quoted%}style="display: none"{%endif%}
+>{{bucket.text|wordwrap:"80"|escape|urlize}}</div>
+{%endfor%}
+{%if c.draft%}
+<a name="comment-reply"
+   id="edit-link-{{forloop.counter0}}-{{lineno}}-{{side}}"
+   href="javascript:M_editInlineComment({{forloop.counter0}}, {{lineno}}, '{{side}}')"><b>Edit</b></a>
+<a name="comment-reply"
+   id="undo-link-{{forloop.counter0}}-{{lineno}}-{{side}}"
+   style="display:none"
+   href="javascript:M_restoreEditInlineComment({{forloop.counter0}}, {{lineno}}, '{{side}}')"><b>Undo cancel</b></a>
+<form id="comment-form-{{forloop.counter0}}-{{lineno}}-{{side}}"
+      name="comment-form-{{forloop.counter0}}-{{lineno}}-{{side}}"
+      style="display:none" action="{{inline_draft_url}}" method = "POST">
+<div name="form-container">
+{{inline_draft_url|form_xsrf}}
+<input type="hidden" name="change" value="{{change.key.id}}">
+<input type="hidden" name="patchset" value="{{patchset.key.id}}">
+<input type="hidden" name="patch" value="{{patch.id}}">
+<input type="hidden" name="snapshot" value="{{snapshot}}">
+<input type="hidden" name="side" value="{{side}}">
+<input type="hidden" name="file" value="{{file.depot_path|escape}}">
+<input type="hidden" name="lineno" value="{{lineno}}">
+<input type="hidden" name="oldtext" value="{{c.text}}">
+{%if c.message_id%}<input type="hidden" name="message_id" value="{{c.message_id}}">{%endif%}
+<textarea name="text" cols="60" rows="5">{{c.text}}</textarea><br>
+<input type="submit" name="save" value="Save" onclick="return M_submitInlineComment(this.form, {{forloop.counter0}}, {{lineno}}, '{{side}}')">
+<input type="reset" name="cancel" value="Cancel" onclick="M_resetAndHideInlineComment(this.form, {{forloop.counter0}}, {{lineno}}, '{{side}}')">
+<input type="submit" name="discard" value="Discard" onclick="return M_removeInlineComment(this.form, {{forloop.counter0}}, {{lineno}}, '{{side}}')">
+</div>
+</form>
+{%else%}
+{%if user%}
+<a name="comment-reply"
+   href="javascript:M_replyToInlineComment('{{c.author|real_name:"x"}}', '{{c.date|date:"Y/m/d H:i:s"}}', {{forloop.counter0}}, {{lineno}}, '{{side}}')"
+><b>Reply</b></a>
+{%if c.backend%}<a href="javascript:M_replyToInlineComment('{{c.author|real_name:"x"}}', '{{c.date|date:"Y/m/d H:i:s"}}', {{forloop.counter0}}, {{lineno}}, '{{side}}', 'Please fix.', true)"><b>Please fix</b></a>
+{%else%}<a href="javascript:M_replyToInlineComment('{{c.author|real_name:"x"}}', '{{c.date|date:"Y/m/d H:i:s"}}', {{forloop.counter0}}, {{lineno}}, '{{side}}', 'Done.', true)"><b>Done</b></a>{%endif%}
+{%ifequal c.backend "bugbot"%} &nbsp; <a target="_blank" href="http://bugbotexp{{file.depot_path|escape}}"><b>&raquo; Suppress</b></a>{%endifequal%}
+{%endif%}
+{%endif%}
+</div>
+</div>
+{%endfor%}
+<div class="comment-border" style="padding: 0"></div>
diff --git a/webapp/templates/live_revision.html b/webapp/templates/live_revision.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/webapp/templates/live_revision.html
diff --git a/webapp/templates/mails/clean_merge.txt b/webapp/templates/mails/clean_merge.txt
new file mode 100644
index 0000000..de8fdf6
--- /dev/null
+++ b/webapp/templates/mails/clean_merge.txt
@@ -0,0 +1,10 @@
+{%autoescape off%}
+Hi.
+
+Your change has been successfully merged into the git repository.
+
+For more details, see {%autoescape off%}{{url}}{%endautoescape%}
+
+-Your friendly git merger
+
+{%endautoescape%}
diff --git a/webapp/templates/mails/comment.txt b/webapp/templates/mails/comment.txt
new file mode 100644
index 0000000..32f251a
--- /dev/null
+++ b/webapp/templates/mails/comment.txt
@@ -0,0 +1,7 @@
+{%autoescape off%}{%if message%}{{message|wordwrap:"72"}}
+
+{%endif%}{%if details%}{{details|wordwrap:"72"}}
+{%endif%}{%endautoescape%}
+--
+To respond, visit {%autoescape off%}{{url}}{%endautoescape%}
+
diff --git a/webapp/templates/mails/from_email_test.txt b/webapp/templates/mails/from_email_test.txt
new file mode 100644
index 0000000..3a6891d
--- /dev/null
+++ b/webapp/templates/mails/from_email_test.txt
@@ -0,0 +1,8 @@
+
+Test.
+
+If you received this email in error, we apologize.  Please reply-all and
+we'll make sure it doesn't happen again.
+
+
+
diff --git a/webapp/templates/mails/missing_dependency.txt b/webapp/templates/mails/missing_dependency.txt
new file mode 100644
index 0000000..97f69e4
--- /dev/null
+++ b/webapp/templates/mails/missing_dependency.txt
@@ -0,0 +1,13 @@
+{%autoescape off%}
+Hi.
+
+Your change could not be merged because of a missing dependency.  As
+soon as change XXX is submitted, your change will be submitted
+automatically.
+
+Your change: {%autoescape off%}{{url}}{%endautoescape%}
+The missing change: {%autoescape off%}{{url}}{%endautoescape%}
+
+-Your friendly git merger
+
+{%endautoescape%}
diff --git a/webapp/templates/mails/path_conflict.txt b/webapp/templates/mails/path_conflict.txt
new file mode 100644
index 0000000..2ba59b9
--- /dev/null
+++ b/webapp/templates/mails/path_conflict.txt
@@ -0,0 +1,10 @@
+{%autoescape off%}
+Hi.
+
+Your change has not been successfully merged into the git repository.
+
+You need to resolve the following files before it can be submitted:
+
+-Your friendly git merger
+
+{%endautoescape%}
diff --git a/webapp/templates/patch.html b/webapp/templates/patch.html
new file mode 100644
index 0000000..3a17018
--- /dev/null
+++ b/webapp/templates/patch.html
@@ -0,0 +1,163 @@
+{%extends "change_base.html"%}
+{%block body%}
+
+<script language="JavaScript" type="text/javascript"><!--
+function keyPressIntermediary(evt) {
+  return M_keyPress(evt);
+}
+document.onkeypress = keyPressIntermediary;
+{%if user%}
+logged_in = true;
+{%else%}
+logged_in = false;
+login_warned = false;
+{%endif%}
+// -->
+</script>
+
+{%if user%}
+<!-- Form used by in-line comment JS; XXX filled in by JS code -->
+<form id="dainlineform" style="display: none;"
+      action="{{inline_draft_url}}" method="post">
+  <div class="comment-border" name="form-container">
+    {{inline_draft_url|form_xsrf}}
+    <input type="hidden" name="snapshot" value="XXX">
+    <input type="hidden" name="lineno" value="XXX">
+    <input type="hidden" name="side" value="XXX">
+    <input type="hidden" name="change" value="{{change.key.id}}">
+    <input type="hidden" name="patchset" value="{{patchset.key.id}}">
+    <input type="hidden" name="patch" value="{{patch.id}}">
+    <textarea name="text" cols="60" rows="5"></textarea><br>
+    <input type="submit" name="save" value="Save"
+           onclick="return M_submitInlineComment(this.form);">
+    <input type="reset" name="cancel" value="Cancel"
+           onclick="M_removeTempInlineComment(this.form)">
+  </div>
+  <div class="comment-border" style="padding: 0pt;"></div>
+</form>
+<a id="resizer" style="display:none;cursor:pointer"><img src="/static/zippyplus.gif"></a>
+{%endif%}
+
+<div style="float: left;">
+  <h2 style="margin-bottom: 0em; margin-top: 0em;">Unified Diff: {{patch.filename}}</h2>
+  {%ifnotequal patch.nav_type "patch"%}
+    <span style="color:red">Side-by-side diff isn't available for this file because of its large size.</span>
+  {%endifnotequal%}
+  <div style="margin-top: .2em;">{%include "change_star.html"%}
+    <b>Change <a href="{%url codereview.views.show change.key.id%}" onmouseover="M_showPopUp(this, 'popup-change');" id="upCL">{{change.key.id}}</a>:</b>
+  {{change.subject|truncatewords:11}}
+  {%if change.merged%} (Merged)
+  {%else%}{%if change.closed%} (Closed) {%endif%}
+  {%endif%}
+  </div>
+  <div style="margin-top: .4em;">
+    <b>Patch Set: {%if patchset.message%}{{patchset.message}}{%endif%}</b>
+    <span class="extra">
+    Created {{patchset.created|timesince}} ago
+    {%ifnotequal patchset.owner change.owner%}
+    by <b>{{patchset.owner|show_user}}</b>{%endifnotequal%}
+    </span>
+  </div>
+  <div style="margin-top: .4em;" class="help">
+    Use n/p to move between diff chunks;
+    N/P to move between comments.
+    {%if user%}
+    Double-click a line to add a draft in-line comment.
+    <br><span style="color:red">Draft comments are only viewable by you;</span>
+    use <a href="{%url codereview.views.publish change.key.id%}" class="novisit">Publish+Mail Comments</a> ('m') to let others view them.
+    {%else%}
+    Please Sign in to add in-line comments.
+    {%endif%}
+  </div>
+</div>
+<div style="float: right; color: #333333; background-color: #eeeeec; border: 1px solid lightgray; -moz-border-radius: 5px 5px 5px 5px; padding: 5px;">
+  <div>
+    Jump to: <select onchange="M_jumpToPatch(this, {{change.key.id}}, {{patchset.key.id}}, true);">
+      {% for jump_patch in patchset.patch_set %}
+        <option value="{{jump_patch.id}}"
+         {%ifequal jump_patch.id patch.id%} selected="selected"{%endifequal%}>{{jump_patch.filename}}</option>
+      {% endfor %}
+    </select>
+  </div>
+  <div style="margin-top: 5px;">
+    <a href="{%url codereview.views.diff change.key.id,patchset.key.id,patch.id%}">
+    View side by-side-diff with in-line comments</a>
+  </div>
+  <div style="margin-top: 5px;">
+    <a href="{%url codereview.views.download_patch change.key.id,patchset.key.id,patch.id%}"
+       title="Download patch for {{patch.filename}}">
+      Download patch
+    </a>
+  </div>
+  {%if user%}
+  <div style="margin-top: 5px;">
+    <a class="novisit" href="{%url codereview.views.publish change.key.id%}">Publish+Mail
+    Comments</a> ('m')
+  </div>
+  {%endif%}
+</div>
+<div style="clear: both;"></div>
+
+<div class="code" style="margin-top: 1.3em; display: table; margin-left: auto; margin-right: auto;">
+
+<div class="codenav">
+{%if patch.prev%}
+<a id="prevFile" 
+   href="{%url codereview.views.patch change.key.id,patchset.key.id,patch.prev.id%}">
+&laquo; {{patch.prev.filename}}</a> ('k'){%else%}
+<span class="disabled">&laquo; no previous file</span>{%endif%}
+|
+{%if patch.next%}
+<a id="nextFile"
+   href="{%url codereview.views.patch change.key.id,patchset.key.id,patch.next.id%}">
+{{patch.next.filename}} &raquo;</a> ('j'){%else%}
+<span class="disabled">no next file &raquo;</span>{%endif%}
+|
+<a href="javascript:M_expandAllInlineComments()">Expand Comments</a> ('e')
+|
+<a href="javascript:M_collapseAllInlineComments()">Collapse Comments</a> ('c')
+|
+<a id="show-all-inline"
+   style="display:none"
+   href="javascript:M_showAllInlineComments()">Show Comments</a>
+<a id="hide-all-inline"
+   href="javascript:M_hideAllInlineComments()">Hide Comments</a> ('s')
+</div>
+
+<div style="position:relative" id="table-top">
+
+<span id="hook-sel" style="display:none;"></span>
+
+<table style="padding: 5px;" cellpadding="0" cellspacing="0" id="thecode"
+       ondblclick="M_handleTableDblClick(event)">
+{%for row in rows%}{{row|safe}}{%endfor%}
+</table>
+
+</div>
+<div class="codenav">
+{%if patch.prev%}
+<a id="prevFile"
+   href="{%url codereview.views.patch change.key.id,patchset.key.id,patch.prev.id%}">
+&laquo; {{patch.prev.filename}}</a> ('k'){%else%}
+<span class="disabled">&laquo; no previous file</span>{%endif%}
+|
+{%if patch.next%}
+<a id="nextFile"
+   href="{%url codereview.views.patch change.key.id,patchset.key.id,patch.next.id%}">
+{{patch.next.filename}} &raquo;</a> ('j'){%else%}
+<span class="disabled">no next file &raquo;</span>{%endif%}
+</div>
+</div>
+
+</script>
+<script language="JavaScript" type="text/javascript"><!--
+var old_snapshot = "old";
+var new_snapshot = "new";
+var intraLineDiff = new M_IntraLineDiff();
+var hookState = new M_HookState(window);
+hookState.updateHooks();
+
+
+// -->
+</script>
+{%endblock%}
diff --git a/webapp/templates/patchset.html b/webapp/templates/patchset.html
new file mode 100644
index 0000000..f029cac
--- /dev/null
+++ b/webapp/templates/patchset.html
@@ -0,0 +1,81 @@
+{%if patchset.n_comments or patchset.n_drafts%}
+  <div>
+    <i>Total comments:</i> {{patchset.n_comments}}
+    {%if patchset.n_drafts%}
+      <span style="color:red">
+        <b>+ {{patchset.n_drafts}} draft{{patchset.n_drafts|pluralize}}</b>
+      </span>
+    {%endif%}
+  </div>
+{%endif%}
+
+<div class="change-list">
+  <div class="pagination">
+    <div style="float: left;">
+      <i>Created:</i> {{patchset.created|timesince}} ago
+      {%ifnotequal patchset.owner change.owner%}
+      by <b>{{patchset.owner|real_name}}</b>{%endifnotequal%}
+    </div>
+    <div style="clear:both;"></div>
+  </div>
+ 
+{%if patchset.freaking_huge%}
+  <div style="margin-top: 5px; float: left;" class="error">
+  Patch Set {{patchset.id}} has too many files.
+  </div>
+  <div style="clear:both;"></div>
+{%else%}
+  <table class="change_info_table" style="clear:both;">
+    <tr align="left">
+      <th class="leftmost"></th>
+      <th>Side-by-side diffs</th>
+      <th>Delta from patch set</th>
+      <th>Comments</th>
+      <th colspan="3" class="rightmost">Unified diffs</th>
+    </tr>
+  {%for patch in patchset.patches%}
+    <tr>
+      <td>{%if patch.status%}{{patch.status}}{%endif%}</td>
+      <td>
+        <a class="noul"
+           href="{%url codereview.views.diff change.key.id,patch.patchset.key.id,patch.id%}"
+          >{{patch.filename}}
+        </a>
+      </td>
+      <td>{%comment%}{%for other in patchsets%}{%ifnotequal other patchset%}{%for opatch in other.patches%}{%ifequal opatch.filename patch.filename%}{%ifnotequal opatch.patch_hash patch.patch_hash%}
+      <a href="/{{change.key.id}}/diff2/{{other.key.id}}:{{patchset.key.id}}/{{patch.id}}" title="Delta from patch set {{forloop.parentloop.counter}}">{{forloop.parentloop.counter}}</a>&nbsp;{%endifnotequal%}{%endifequal%}{%endfor%}{%endifnotequal%}{%endfor%}
+      {%endcomment%}
+      </td>
+      <td>
+        {%if patch.num_comments or patch.num_drafts%}<b>{%endif%}
+          {{patch.num_comments}} comment{{patch.num_comments|pluralize}}
+          {%if patch.num_drafts%}
+          <span style="color:red">+
+            {{patch.num_drafts}} draft{{patch.num_drafts|pluralize}}
+          </span>
+        {%endif%}
+        {%if patch.num_comments or patch.num_drafts%}</b>{%endif%}
+      </td>
+      <td>
+        <a href="{%url codereview.views.patch change.key.id,patch.patchset.key.id,patch.id%}">
+          View
+        </a>
+      </td>
+      <td>
+        <a href="{%url codereview.views.download_patch change.key.id,patch.patchset.key.id,patch.id%}"
+           title="Download patch for {{patch.filename}}">
+          Download
+        </a>
+      </td>
+    </tr>
+  {%endfor%}
+  </table>
+{%endif%}
+
+  {%if not patchset.complete%}
+    <div style="margin-top: 5px; float: left;" class="error">
+    Patch Set {{patchset.id}} is still being uploaded ...
+    </div>
+    <div style="clear:both;"></div>
+  {%endif%}
+</div>
diff --git a/webapp/templates/patchset_patchrow.html b/webapp/templates/patchset_patchrow.html
new file mode 100644
index 0000000..422aa50
--- /dev/null
+++ b/webapp/templates/patchset_patchrow.html
@@ -0,0 +1,34 @@
+<tr>
+  <td>{%if patch.status%}{{patch.status}}{%endif%}</td>
+  <td>
+    <a class="noul"
+       href="{%url codereview.views.diff change.key.id,patch.patchset.key.id,patch.id%}"
+      >{{patch.filename}}
+    </a>
+  </td>
+  <td>{%comment%}{%for other in patchsets%}{%ifnotequal other patchset%}{%for opatch in other.patches%}{%ifequal opatch.filename patch.filename%}{%ifnotequal opatch.patch_hash patch.patch_hash%}
+  <a href="/{{change.key.id}}/diff2/{{other.key.id}}:{{patchset.key.id}}/{{patch.id}}" title="Delta from patch set {{forloop.parentloop.counter}}">{{forloop.parentloop.counter}}</a>&nbsp;{%endifnotequal%}{%endifequal%}{%endfor%}{%endifnotequal%}{%endfor%}
+  {%endcomment%}
+  </td>
+  <td>
+    {%if patch.num_comments or patch.num_drafts%}<b>{%endif%}
+      {{patch.num_comments}} comment{{patch.num_comments|pluralize}}
+      {%if patch.num_drafts%}
+      <span style="color:red">+
+        {{patch.num_drafts}} draft{{patch.num_drafts|pluralize}}
+      </span>
+    {%endif%}
+    {%if patch.num_comments or patch.num_drafts%}</b>{%endif%}
+  </td>
+  <td>
+    <a href="{%url codereview.views.patch change.key.id,patch.patchset.key.id,patch.id%}">
+      View
+    </a>
+  </td>
+  <td>
+    <a href="{%url codereview.views.download_patch change.key.id,patch.patchset.key.id,patch.id%}"
+       title="Download patch for {{patch.filename}}">
+      Download
+    </a>
+  </td>
+</tr>
diff --git a/webapp/templates/publish.html b/webapp/templates/publish.html
new file mode 100644
index 0000000..d4303ef
--- /dev/null
+++ b/webapp/templates/publish.html
@@ -0,0 +1,39 @@
+{%extends "change_base.html"%}
+{%block title1%}Publish+Mail -{%endblock%}
+{%block change_body%}
+<h2>Publish + Mail Draft Comments</h2>
+
+<div>
+  <form action="{%url codereview.views.publish change.key.id%}"
+        method="post" id="publish-form">
+  <table>
+  {{form}}
+  <tr>
+    <td></td>
+    <td>
+  {%ifequal user change.owner%}
+      <input type="submit" value="Publish Comments">
+  {%else%}
+      <input type="submit" value="Publish Comments + Approvals">
+  {%endifequal%}
+     </td>
+  </tr>
+  </table>
+  </form>
+
+  <a id="resizer" style="display:none;cursor:pointer">
+  <img src="/static/zippyplus.gif"></a>
+  <script language="JavaScript" type="text/javascript"><!--
+  M_addTextResizer_(document.getElementById("publish-form"));
+  --></script>
+
+</div>
+{%if preview%}
+<div style="margin-top: 3em;">
+  <h3>Unpublished Drafts:</h3>
+  <pre class="description">{{preview|wordwrap:"80"|urlize}}</pre>
+</div>
+{%endif%}
+<div style="clear:both"></div>
+
+{%endblock%}
diff --git a/webapp/templates/settings.html b/webapp/templates/settings.html
new file mode 100644
index 0000000..8139287
--- /dev/null
+++ b/webapp/templates/settings.html
@@ -0,0 +1,42 @@
+{%extends "base.html"%}
+{%block title1%}Settings -{%endblock%}
+{%block body%}
+<h1>Settings for {{user.email}}</h1>
+
+<form action="{%url codereview.settings.settings%}" method="POST">
+
+{{form.xsrf}}
+{%if form.xsrf.errors%}
+<ul>
+  {%for e in form.xsrf.errors%}
+    <li>{{e}}</li>
+  {%endfor%}
+</ul>
+{%endif%}
+
+<table class="settings">
+<thead>
+<tr><th colspan="2">Display Options</th></tr>
+</thead>
+<tbody>
+<tr><th>Diff context</th>
+    <td>{{form.context}}{{form.context.errors}}</td></tr>
+</td></tr>
+</tbody>
+</table>
+
+
+<table class="settings">
+<thead>
+<tr><th colspan="2">Projects</th></tr>
+</thead>
+<tbody>
+<tr><th>View unclaimed changes<br/>for projects</th>
+    <td>{{form.unclaimed_changes_projects}}</td></tr>
+</tbody>
+</table>
+
+<input type="submit" value="Update Settings">
+</form>
+
+{%endblock%}
diff --git a/webapp/templates/settings_welcome_1.html b/webapp/templates/settings_welcome_1.html
new file mode 100644
index 0000000..49a9b8e
--- /dev/null
+++ b/webapp/templates/settings_welcome_1.html
@@ -0,0 +1,38 @@
+{%extends "base.html"%}
+{%block title1%}Settings -{%endblock%}
+{%block body%}
+<h2>Hi!</h2>
+
+<form name="welcome" action="{{post_url}}" method="POST">
+
+{{form.xsrf}}
+{%if form.xsrf.errors%}
+<ul>
+  {%for e in form.xsrf.errors%}
+    <li>{{e}}</li>
+  {%endfor%}
+</ul>
+{%endif%}
+
+{{form.dest}}
+<input type="hidden" name="step" value="1" />
+
+<p>Hi, welcome to Android.  Before we can get going, we need a little bit of
+information from you.</p>
+
+<table>
+<table class="largeform">
+<tr><th class="largeform_field">Your name</th></tr>
+<tr><td class="largeform_field">{{form.real_name}}
+
+<p>We like to maintain a friendly atmosphere here, and we feel that calling people
+by their real name helps that.
+<p><i>Also, we can't accept code submitted without
+knowing who really submitted it.</i>
+</td></tr>
+</table>
+
+<input type="submit" value="Continue">
+</form>
+
+{%endblock%}
diff --git a/webapp/templates/settings_welcome_2.html b/webapp/templates/settings_welcome_2.html
new file mode 100644
index 0000000..7d61b0a
--- /dev/null
+++ b/webapp/templates/settings_welcome_2.html
@@ -0,0 +1,60 @@
+{%extends "base.html"%}
+{%block title1%}Settings -{%endblock%}
+{%block body%}
+<h2>Hi!</h2>
+
+<form name="welcome" action="{{post_url}}" method="POST">
+
+{{form.xsrf}}
+{%if form.xsrf.errors%}
+<ul>
+  {%for e in form.xsrf.errors%}
+    <li>{{e}}</li>
+  {%endfor%}
+</ul>
+{%endif%}
+
+{{form.dest}}
+<input type="hidden" name="step" value="2" />
+
+<p>Hi, welcome to Android.  Before we can get going, we need a little bit of
+information from you.</p>
+
+<table class="largeform">
+<tr><th class="largeform_field">Contributor License Grant</th></tr>
+<tr><td class="largeform_field">
+If you're going to contribute code, we need you to sign a "contributor
+license grant."  This affirms that you are granting the Android Project 
+the right to use the code you contribute.  Please read the agreement for all
+of the details.
+<p>Which one would you like?</p>
+<ul style="list-style: none;">
+  <li><input type="radio" id="id_cla_none" value="none" name="cla"
+      {% ifequal form.initial.cla 'none' %}checked{% endifequal %}
+      /><label
+      for="id_cla_none"> <b>None right now.</b>
+      If you don't want to do this now, you can go to your user settings
+      page and do it later.<br/>
+      </label></li>
+  <li><input type="radio" id="id_cla_individual" value="individual" name="cla"
+      {% ifequal form.initial.cla 'individual' %}checked{% endifequal %}
+      /><label for="id_cla_individual"> <b>Individual.</b>
+      If you are going to be contributing code on your own, this is the one
+      you want.  You can sign this one online.</label></li>
+  <li><input type="radio" id="id_cla_corporate" value="corporate" name="cla"
+      {% ifequal form.initial.cla 'corporate' %}checked{% endifequal %}
+      /><label for="id_cla_corporate"> <b>Corporate.</b>
+      If you are going to be contributing code
+      on behalf of your company, this is the one you want.  We'll give
+      you a form that will need to printed, signed and sent back via
+      post, email or fax.</label></li>
+</ul>
+</table>
+
+<input type="button" name="back" value="Back" onclick="document.welcome.submit();">
+<input type="submit" name="continue" value="Continue">
+
+</form>
+
+{%endblock%}
+
diff --git a/webapp/templates/settings_welcome_3_corporate.html b/webapp/templates/settings_welcome_3_corporate.html
new file mode 100644
index 0000000..87340c4
--- /dev/null
+++ b/webapp/templates/settings_welcome_3_corporate.html
@@ -0,0 +1,69 @@
+{%extends "base.html"%}
+{%block title1%}Settings -{%endblock%}
+{%block body%}
+<h2>Hi!</h2>
+
+<form name="welcome" action="{{post_url}}" method="POST">
+
+{{form.xsrf}}
+{%if form.xsrf.errors%}
+<ul>
+  {%for e in form.xsrf.errors%}
+    <li>{{e}}</li>
+  {%endfor%}
+</ul>
+{%endif%}
+
+{{form.dest}}
+<input type="hidden" name="step" value="3corp" />
+
+<p>Hi, welcome to Android.  Before we can get going, we need a little bit of
+information from you.</p>
+
+<hr/>
+
+<table class="largeform">
+<tr><th class="largeform_field">Contributor License Grant</th></tr>
+<tr><td class="largeform_field">
+Please print out this document:
+<div style="padding-left: 30px; font-family: monospace;"><br/><a href="/static/corp_cla.html" target="_blank">Corporate Contributor License Agreement</a></div>
+
+<p>Next have an authorized person sign it.
+
+<p>Then send it via one of the following methods:
+
+<p>Email a scanned copy to:
+<div style="padding-left: 30px; font-family: monospace;">
+    cla-submissions@google.com
+</div>
+
+<p>Fax to:
+<div style="padding-left: 30px; font-family: monospace;">
+    (650) 887-1625
+</div>
+
+<p>Or via post to:
+
+<div style="padding-left: 30px; font-family: monospace;">
+    Google Inc.<br/>
+    Attn: Open Source Program Office<br/>
+    1600 Amphitheatre Pkwy<br/>
+    Building 43<br/>
+    Mountain View, CA 94043<br/>
+    U.S.A.<br/>
+</div>
+
+<p>We will contact you with further details when we receive your completed paperwork.
+
+</td></tr>
+</table>
+<hr/>
+
+
+<input type="button" name="back" value="Back" onclick="document.welcome.submit();">
+<input type="submit" name="continue" value="Continue">
+
+</form>
+
+{%endblock%}
+
diff --git a/webapp/templates/settings_welcome_3_individual.html b/webapp/templates/settings_welcome_3_individual.html
new file mode 100644
index 0000000..e19c1d0
--- /dev/null
+++ b/webapp/templates/settings_welcome_3_individual.html
@@ -0,0 +1,161 @@
+{%extends "base.html"%}
+{%block title1%}Settings -{%endblock%}
+{%block body%}
+<h2>Hi!</h2>
+
+<form name="welcome" action="{{post_url}}" method="POST">
+
+{{form.xsrf}}
+{%if form.xsrf.errors%}
+<ul>
+  {%for e in form.xsrf.errors%}
+    <li>{{e}}</li>
+  {%endfor%}
+</ul>
+{%endif%}
+
+{{form.dest}}
+<input type="hidden" name="step" value="3ind" />
+
+<p>Hi, welcome to Android.  Before we can get going, we need a little bit of
+information from you.</p>
+
+<table class="largeform">
+<tr><th class="largeform_field">Individual Contributor License Grant</th></tr>
+<tr><td class="largeform_field">
+
+<p
+{% if form.i_agree.errors %}
+    style="color: red;"
+{% endif %}
+>Please read the following, and agree to it by typing the words "I AGREE" in the box below.</p>
+
+
+<hr>
+
+<div style="padding: 0 30px 0 30px;">
+
+
+<div dir="ltr"><p style="margin:0px">In
+order to clarify the intellectual property license granted with
+Contributions from any person or entity, the Android Open Source
+Project (the "Project") must have a Contributor License Grant ("Grant")
+on file that has been signed by each Contributor, indicating agreement
+to the license terms below. This license is for your protection as a
+Contributor as well as the protection of the Project and the Android
+Open Source Project Leads (the "Project Leads"); it does not change
+your rights to use your own Contributions for any other purpose.  If
+you have not already done so, please complete and send an original
+signed Grant to</p><blockquote style="border:1px dashed rgb(221, 221, 221);padding:10px">Google Inc.<br />Attn: Open Source Program Office<br />1600 Amphitheatre Pkwy<br />Building 43<br />Mountain View, CA 94043<br />U.S.A.<br /></blockquote><p style="margin:0px">Scanned
+agreements may also be emailed in PDF form to
+cla-submissions@google.com, sent by facsimile to (650) 887-1625, or
+signed electronically with the form below.</p><p style="margin:0px">Please read this document carefully before signing and keep a copy for your records.</p><pre style="border:1px solid silver;margin:2em;padding:0.5em;color:rgb(0, 112, 0);font-size:100%;background-color:rgb(245, 245, 245)"> <br /><br />Full name: ____________________________  E-Mail: ______________________<br />   <br />    <br />   <br />Mailing Address: ______________________  Telephone: ___________________<br />   <br />    <br />   <br />_______________________________________  Facsimile: ___________________<br />   <br />    <br />   <br />_______________________________________  Country:   ___________________<br />   <br />   <br /></pre><p style="margin:0px">You
+accept and agree to the following terms and conditions for Your present
+and future Contributions submitted to the Project. Except for the
+license granted herein to the Project Leads and recipients of software
+distributed by the Project Leads, You reserve all right, title, and
+interest in and to Your Contributions.</p><p style="margin:0px"><br /></p><ol style="margin-top:0px;margin-bottom:0px"><li style="margin-top:0px;margin-bottom:0px"><p style="margin:0px">Definitions.
+"You" (or "Your") shall mean the copyright owner or legal entity
+authorized by the copyright owner that is making this Grant. For legal
+entities, the entity making a Contribution and all other entities that
+control, are controlled by, or are under common control with that
+entity are considered to be a single Contributor. For the purposes of
+this definition, "control" means (i) the power, direct or indirect, to
+cause the direction or management of such entity, whether by contract
+or otherwise, or (ii) ownership of fifty percent (50%) or more of the
+outstanding shares, or (iii) beneficial ownership of such entity.
+"Contribution" shall mean any original work of authorship, including
+any modifications or additions to an existing work, that is
+intentionally submitted by You to the Project Leads for inclusion in,
+or documentation of, any of the products managed or maintained by the
+Project Leads (the "Work"). For the purposes of this definition,
+"submitted" means any form of electronic, verbal, or written
+communication sent to the Project Leads or their representatives,
+including but not limited to communication on electronic mailing lists,
+source code control systems, and issue tracking systems that are
+managed by, or on behalf of, the Project Leads for the purpose of
+discussing and improving the Work, but excluding communication that is
+conspicuously marked or otherwise designated in writing by You as "Not
+a Contribution."</p></li><li style="margin-top:0px;margin-bottom:0px"><p style="margin:0px">Grant
+of Copyright License. Subject to the terms and conditions of this
+Grant, You hereby grant to the Project Leads and to recipients of
+software distributed by the Project Leads a perpetual, worldwide,
+non-exclusive, no-charge, royalty-free, irrevocable copyright license
+to reproduce, prepare derivative works of, publicly display, publicly
+perform, sublicense, and distribute Your Contributions and such
+derivative works.</p></li><li style="margin-top:0px;margin-bottom:0px"><p style="margin:0px">Grant
+of Patent License. Subject to the terms and conditions of this Grant,
+You hereby grant to the Project Leads and to recipients of software
+distributed by the Project Leads a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+and otherwise transfer the Work, where such license applies only to
+those patent claims licensable by You that are necessarily infringed by
+Your Contribution(s) alone or by combination of Your Contribution(s)
+with the Work to which such Contribution(s) was submitted. If any
+entity institutes patent litigation against You or any other entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+your Contribution, or the Work to which you have contributed,
+constitutes direct or contributory patent infringement, then any patent
+licenses granted to that entity under this Grant for that Contribution
+or Work shall terminate as of the date such litigation is filed.</p></li><li style="margin-top:0px;margin-bottom:0px"><p style="margin:0px">You
+represent that you are legally entitled to grant the above license. If
+your employer(s) has rights to intellectual property that you create
+that includes your Contributions, you represent that you have received
+permission to make Contributions on behalf of that employer, that your
+employer has waived such rights for your Contributions to the Project
+Leads, or that your employer has executed a separate Corporate
+Contributor License Grant with the Project Leads.</p></li><li style="margin-top:0px;margin-bottom:0px"><p style="margin:0px">You
+represent that each of Your Contributions is Your original creation
+(see section 7 for submissions on behalf of others). You represent that
+Your Contribution submissions include complete details of any
+third-party license or other restriction (including, but not limited
+to, related patents and trademarks) of which you are personally aware
+and which are associated with any part of Your Contributions.</p></li><li style="margin-top:0px;margin-bottom:0px"><p style="margin:0px">You
+are not expected to provide support for Your Contributions, except to
+the extent You desire to provide support. You may provide support for
+free, for a fee, or not at all. Unless required by applicable law or
+agreed to in writing, You provide Your Contributions on an "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions of
+TITLE, NON- INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR
+PURPOSE.</p></li><li style="margin-top:0px;margin-bottom:0px"><p style="margin:0px">Should
+You wish to submit work that is not Your original creation, You may
+submit it to the Project Leads separately from any Contribution,
+identifying the complete details of its source and of any license or
+other restriction (including, but not limited to, related patents,
+trademarks, and license agreements) of which you are personally aware,
+and conspicuously marking the work as "Submitted on behalf of a
+third-party: [named here]".  <span style="background-color:rgb(255, 255, 0)"><br /></span></p></li><li style="margin-top:0px;margin-bottom:0px"><p style="margin:0px">You
+agree to notify the Project Leads of any facts or circumstances of
+which you become aware that would make these representations inaccurate
+in any respect.</p></li></ol></div>
+
+
+</div>
+
+<p>I agree: {{form.i_agree}}</p>
+<hr/>
+<p>We need to collect the following information as well:
+<table>
+<tr><td><b>Mailing Address</b></td>
+    <td>{{form.mailing_address}}{{form.mailing_address.errors}}</td></tr>
+<tr><td><b>Country</b></td>
+    <td>{{form.mailing_address_country}}{{form.mailing_address_country.errors}}</td></tr>
+<tr><td><b>Phone Number</b></td>
+    <td>{{form.phone_number}}{{form.phone_number.errors}}</td></tr>
+<tr><td><b>Fax Number (optional)</b></td>
+    <td>{{form.fax_number}}{{form.fax_number.errors}}</td></tr>
+</table>
+</p>
+
+</td></tr>
+</table>
+
+<input type="button" name="back" value="Back" onclick="document.welcome.submit();">
+<input type="submit" name="continue" value="Continue">
+
+</form>
+
+{%endblock%}
+
diff --git a/webapp/templates/settings_welcome_4.html b/webapp/templates/settings_welcome_4.html
new file mode 100644
index 0000000..a362578
--- /dev/null
+++ b/webapp/templates/settings_welcome_4.html
@@ -0,0 +1,26 @@
+{%extends "base.html"%}
+{%block title1%}Settings -{%endblock%}
+{%block body%}
+<h2>Hi!</h2>
+
+<form name="welcome" action="{{post_url}}" method="POST">
+
+{{form.xsrf}}
+{%if form.xsrf.errors%}
+<ul>
+  {%for e in form.xsrf.errors%}
+    <li>{{e}}</li>
+  {%endfor%}
+</ul>
+{%endif%}
+
+{{form.dest}}
+<input type="hidden" name="step" value="4" />
+
+<p>Thanks!  Happy androiding.</p>
+
+
+<input type="submit" value="Done">
+</form>
+
+{%endblock%}
diff --git a/webapp/templates/starred.html b/webapp/templates/starred.html
new file mode 100644
index 0000000..dbe21cb
--- /dev/null
+++ b/webapp/templates/starred.html
@@ -0,0 +1,32 @@
+{%extends "changes_base.html"%}
+
+{%block title1%}Starred Changes -{%endblock%}
+
+{%block body%}
+
+<script language="JavaScript" type="text/javascript"><!--
+function keyPressIntermediary(evt) {
+  return M_dashboardKeyPress(evt);
+}
+document.onkeypress = keyPressIntermediary;
+-->
+</script>
+
+<h1>Starred Changes</h1>
+
+<table class="change-list">
+  {%include "change_heading.html"%}
+  {%if not changes%}
+    <tr><td colspan="8"><span class="disabled">(None)</span></td></tr>
+  {%else%}
+    {%for change in changes%}
+      {%include "change_row.html"%}
+    {%endfor%}
+  {%endif%}
+</table>
+
+<script language="JavaScript" type="text/javascript"><!--
+var dashboardState = new M_DashboardState(window,'change');
+-->
+</script>
+{%endblock%}
diff --git a/webapp/templates/unclaimed.html b/webapp/templates/unclaimed.html
new file mode 100644
index 0000000..2c6c6fd
--- /dev/null
+++ b/webapp/templates/unclaimed.html
@@ -0,0 +1,49 @@
+{%extends "changes_base.html"%}
+{%block title1%}Unclaimed changes -{%endblock%}
+
+{%block body%}
+
+<script language="JavaScript" type="text/javascript"><!--
+function keyPressIntermediary(evt) {
+  return M_dashboardKeyPress(evt);
+}
+document.onkeypress = keyPressIntermediary;
+-->
+</script>
+
+
+<h1>Unclaimed changes</h1>
+<table class="change-list">
+  
+{%include "change_heading.html"%}
+
+{% if not projects %}
+<tr>
+  <td colspan="8">
+    <span class="disabled">(None)</span>
+  </td>
+</tr>
+{% endif %}
+
+{% for project in projects %}
+<tr>
+  <th colspan="8" class="header-title">Project: {{project.name}}</th>
+</tr>
+
+{%if not project.changes%}
+  <tr>
+    <td colspan="8">
+      <span class="disabled">(None)</span>
+    </td>
+  </tr>
+{%else%}
+  {%for change in project.changes%}
+    {%include "change_row.html"%}
+  {%endfor%}
+{%endif%}
+
+{%endfor%}
+
+</table>
+
+{%endblock%}
diff --git a/webapp/templates/user.html b/webapp/templates/user.html
new file mode 100644
index 0000000..396b8e9
--- /dev/null
+++ b/webapp/templates/user.html
@@ -0,0 +1,133 @@
+{%extends "changes_base.html"%}
+
+{%block title1%}Changes for {{email|real_name}} -{%endblock%}
+
+{%block body%}
+
+<script language="JavaScript" type="text/javascript"><!--
+function keyPressIntermediary(evt) {
+  return M_dashboardKeyPress(evt);
+}
+document.onkeypress = keyPressIntermediary;
+-->
+</script>
+
+
+<h1>Changes for {{email|real_name}}</h1>
+<table class="change-list" id="user-queues">
+{%include "change_heading.html"%}
+
+<tr>
+<th colspan="6" class="header-title">Changes Created by {{email|real_name}}</th>
+<th colspan="2" class="header-title pagination">
+  {%if mine_list%}
+    <span id="paged-mine-links">
+    <a href="javascript:M_PagedPrev('/ajax_user_mine/{{email}}','mine','user-queues',M_OnAfterPaged)"
+      id="paged-mine-prev"
+      {%if not mine_prev%}style="display:none"{%endif%}
+    >&lt; Newer</a>
+    <span id="paged-mine-opos">{{mine_opos}}</span>
+    -
+    <span id="paged-mine-oend">{{mine_oend}}</span>
+    <a href="javascript:M_PagedNext('/ajax_user_mine/{{email}}','mine','user-queues',M_OnAfterPaged)"
+      id="paged-mine-next"
+      {%if not mine_next%}style="display:none"{%endif%}
+    >Older &gt;</a>
+    </span>
+    <span id="paged-mine-progress" style="display:none" class="ajax_progress">Loading</span>
+    <span id="paged-mine-opre" style="display:none">{{mine_prev}}</span>
+    <span id="paged-mine-onex" style="display:none">{{mine_next}}</span>
+  {%endif%}
+</th>
+</tr>
+{%if not mine_list%}
+<tr>
+  <td colspan="8">
+    <span class="disabled">(None)</span>
+  </td>
+</tr>
+{%else%}
+{%for change in mine_list%}
+  {%include "change_row.html"%}
+{%endfor%}
+{%endif%}
+
+<tr>
+<th colspan="6" class="header-title">Changes Reviewable by {{email|real_name}}</th>
+<th colspan="2" class="header-title pagination">
+  {%if review_list%}
+    <span id="paged-review-links">
+    <a href="javascript:M_PagedPrev('/ajax_user_review/{{email}}','review','user-queues',M_OnAfterPaged)"
+      id="paged-review-prev"
+      {%if not review_prev%}style="display:none"{%endif%}
+    >&lt; Newer</a>
+    <span id="paged-review-opos">{{review_opos}}</span>
+    -
+    <span id="paged-review-oend">{{review_oend}}</span>
+    <a href="javascript:M_PagedNext('/ajax_user_review/{{email}}','review','user-queues',M_OnAfterPaged)"
+      id="paged-review-next"
+      {%if not review_next%}style="display:none"{%endif%}
+    >Older &gt;</a>
+    </span>
+    <span id="paged-review-progress" style="display:none" class="ajax_progress">Loading</span>
+    <span id="paged-review-opre" style="display:none">{{review_prev}}</span>
+    <span id="paged-review-onex" style="display:none">{{review_next}}</span>
+  {%endif%}
+</th>
+</tr>
+{%if not review_list%}
+<tr>
+  <td colspan="8">
+    <span class="disabled">(None)</span>
+  </td>
+</tr>
+{%else%}
+{%for change in review_list%}
+  {%include "change_row.html"%}
+{%endfor%}
+{%endif%}
+
+<tr>
+<th colspan="6" class="header-title">Recently Closed Changes Created by {{email|real_name}}</th>
+<th colspan="2" class="header-title pagination">
+  {%if closed_list%}
+    <span id="paged-closed-links">
+    <a href="javascript:M_PagedPrev('/ajax_user_closed/{{email}}','closed','user-queues',M_OnAfterPaged)"
+      id="paged-closed-prev"
+      {%if not closed_prev%}style="display:none"{%endif%}
+    >&lt; Newer</a>
+    <span id="paged-closed-opos">{{closed_opos}}</span>
+    -
+    <span id="paged-closed-oend">{{closed_oend}}</span>
+    <a href="javascript:M_PagedNext('/ajax_user_closed/{{email}}','closed','user-queues',M_OnAfterPaged)"
+      id="paged-closed-next"
+      {%if not closed_next%}style="display:none"{%endif%}
+    >Older &gt;</a>
+    </span>
+    <span id="paged-closed-progress" style="display:none" class="ajax_progress">Loading</span>
+    <span id="paged-closed-opre" style="display:none">{{closed_prev}}</span>
+    <span id="paged-closed-onex" style="display:none">{{closed_next}}</span>
+  {%endif%}
+</th>
+</tr>
+{%if not closed_list%}
+<tr>
+  <td colspan="8">
+    <span class="disabled">(None)</span>
+  </td>
+</tr>
+{%else%}
+{%for change in closed_list%}
+  {%include "change_row.html"%}
+{%endfor%}
+{%endif%}
+</table>
+
+<script language="JavaScript" type="text/javascript"><!--
+var dashboardState = new M_DashboardState(window,'change', 'M_myDashboardChangeMarker');
+function M_OnAfterPaged() {
+  dashboardState = new M_DashboardState(window,'change', 'M_myDashboardChangeMarker');
+}
+-->
+</script>
+{%endblock%}
diff --git a/webapp/templates/user_popup.html b/webapp/templates/user_popup.html
new file mode 100644
index 0000000..95e8067
--- /dev/null
+++ b/webapp/templates/user_popup.html
@@ -0,0 +1,7 @@
+<div class="popup-name">
+<b>{{account.real_name}}</b><br/>
+{{account.email}}
+</div>
+<div class="popup-info">
+{%if not account.cla_verified%}<br/><i>No CLA</i>{%endif%}
+</div>
